将 https link 放入 i18n 翻译文件中进行反应

put https link in i18n translation file in react

我正在使用 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 翻译中使用 (:) 字符?

":" 在翻译键中有特殊含义,表示该键所属的命名空间是什么。

我的一个翻译密钥也有类似的问题,解决方案是忽略该特定密钥中的命名空间。

t("Welcome to React :)", {nsSeparator: false})
// ---------------------------^ this will make the lib to ignore the ":"

更多信息,您可以阅读这篇bug

我使用了这个解决方案:

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}}",

这不是最好的解决方案,我认为有更好的方法来解决这个问题,但目前有效。

如果您知道更好的解决方案,很高兴收到您的来信。