大写内插语言键
Capitalising interpolated language keys
问题:
使用 i18next,您可以将变量插入字符串中,例如 "AddNew": "Add new {{item}}"
现在我有一种语言,语法要求 {{item}} 必须是第一个词,例如 "AddNew": "{{item}} toevoegen"
。
在 docs 中,它们显示了对格式的一些支持,但这些都与日期或数字有关。我正在寻找一种方法来添加大写格式功能,例如:"AddNew": "{{item, capitalise }} toevoegen"
目前我有但没有用的东西
首字母大写的函数
export function capitalizeFirstLetter(string: string): string {
return string.charAt(0).toUpperCase() + string.slice(1);
};
并尝试将其添加到格式化程序
i18n.services.formatter?.add('capitalize', (value, lng, options) => {
return capitalizeFirstLetter(value);
});
现在我必须在 .formatter
之后添加一个 ?
才能让 TS 不抱怨。但我猜这也是问题所在,formatter
未定义。我只能从 i18next 库中导入带有大写字母的 Formatter 和 Services,所以我有点不知道如何继续。
确保在调用 i18next.init()
后添加自定义格式化程序:https://www.i18next.com/translation-function/formatting#adding-custom-format-function
问题:
使用 i18next,您可以将变量插入字符串中,例如 "AddNew": "Add new {{item}}"
现在我有一种语言,语法要求 {{item}} 必须是第一个词,例如 "AddNew": "{{item}} toevoegen"
。
在 docs 中,它们显示了对格式的一些支持,但这些都与日期或数字有关。我正在寻找一种方法来添加大写格式功能,例如:"AddNew": "{{item, capitalise }} toevoegen"
目前我有但没有用的东西
首字母大写的函数
export function capitalizeFirstLetter(string: string): string {
return string.charAt(0).toUpperCase() + string.slice(1);
};
并尝试将其添加到格式化程序
i18n.services.formatter?.add('capitalize', (value, lng, options) => {
return capitalizeFirstLetter(value);
});
现在我必须在 .formatter
之后添加一个 ?
才能让 TS 不抱怨。但我猜这也是问题所在,formatter
未定义。我只能从 i18next 库中导入带有大写字母的 Formatter 和 Services,所以我有点不知道如何继续。
确保在调用 i18next.init()
后添加自定义格式化程序:https://www.i18next.com/translation-function/formatting#adding-custom-format-function