我正在使用i18n来翻译我的多语言React项目。 我的句子中包含(:)字符:
"e.g https://192.168.1.15 or https://example.com"
我想将其翻译成波斯语:
"مثال: https://192.168.1.15 یا https://example.com"
我将其放在我的翻译文件中,如下所示:
export default {
"e.g https://192.168.1.15 or https://example.com": "مثال: https://192.168.1.15 یا https://example.com",
}
但不起作用。我意识到问题是“:”。我看到的是这样:
"//192.168.1.15 or httpsfalse//example.com"
如何在i18n的翻译中使用(:)字符?
答案 0 :(得分:0)
“:”在翻译密钥中具有特殊含义,表示该密钥所属的命名空间是什么。
我的一个翻译键也有类似的问题,解决方案是忽略该特定键中的名称空间。
t("Welcome to React :)", {nsSeparator: false})
// ---------------------------^ this will make the lib to ignore the ":"
有关更多信息,您可以阅读此bug
答案 1 :(得分:0)
我使用了此解决方案:
t("e.g.", {
urlIP: "https://192.168.1.15",
urlDomain: "https://example.com",
})
并将此代码放在我的翻译文件中:
en.js:
"e.g.": "e.g. {{urlIP}} or {{urlDomain}}",
fa.js:
"e.g.": "مثال: {{urlIP}} یا {{urlDomain}}",
这不是最好的解决方案,我认为有更好的方法来解决此问题,但目前仍然有效。
如果您知道更好的解决方案,很高兴收到您的来信。