大写内插语言键

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