javascript - i18next - 应用自定义格式
问题描述
我有 2 个命名空间:
- 第一个是全球性的,包含与业务相关的词汇表
- 第二个范围是特定页面
// global ns
{
"amendment": "amendment"
}
// page ns
{
"action": "Enter your $t(global:amendment) below."
}
我在反应组件中的用例:
import React from 'react'
import { useTranslation } from 'react-i18next';
export function MyComponent() {
const { t, i18n } = useTranslation();
return (
<div>
<h1>{t('amendment')}</h1>
<p>{t('action')}</p>
</div>
)
}
我想h1
使用大写转换来格式化元素中包含的文本。
实现这一目标的最佳方法是什么?
我已经考虑使用上下文并执行以下操作:
// global ns
{
"amendment": "amendment",
"amendment_uppercase": "Amendment"
}
import React from 'react'
import { useTranslation } from 'react-i18next';
export function MyComponent() {
const { t, i18n } = useTranslation();
return (
<div>
<h1>{t('amendment', {context: 'uppercase'})}</h1>
<p>{t('action')}</p>
</div>
)
}
这里的问题是我必须复制所有的翻译键,而且我有很多全球词汇表。
解决方案
我会应用t方法结果的格式。
就像是:
import React from 'react'
import { useTranslation } from 'react-i18next';
export function MyComponent() {
const { t, i18n } = useTranslation();
return (
<div>
<h1>{t('amendment').toUpperCase()}</h1>
<p>{t('action')}</p>
</div>
)
}
推荐阅读
- laravel - 当我使用 laravel 的 DB 外观进行简单连接时,我得到了与结果相同的行
- tensorflow - 如何使用训练有素的 Keras CNN 模型对新的未标记数据进行预测
- javascript - 变量在二维数组的索引中没有指定错误
- c++ - 从 10.3 项目调用 c++ 函数(bcb6 dll/lib)函数
- neural-network - 卷积层以错误的方式卷积(Pytorch)?
- chisel - 这些 `a.bits.user.amba_prot` 信号是什么?为什么它们只是在我的 HarnessBinder 中有条件地未初始化?
- android - is it possible to use usb wifi adapter in android emulator
- java - 有没有一种有效地迭代这些不同索引的好方法?
- angular - 在 Angular 中出现错误,因为 ɵɵFactoryTarget 未定义
- wordpress - 当屏幕尺寸从桌面移动到平板电脑和移动设备时,我遇到了图像消失的问题