поместите ссылку https в файл перевода i18n в 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?


person Zahra Talebi    schedule 15.07.2020    source источник
comment
Непонятно, в чем проблема из того, что вы написали, можете ли вы предоставить небольшое репо, в котором воспроизводится проблема? или codeandbox, codeandbox.io/s/8187wm9yj8   -  person felixmosh    schedule 16.07.2020
comment
проблема заключается в использовании символа: в переводе. Как я могу перевести предложения, содержащие символ:?   -  person Zahra Talebi    schedule 19.07.2020
comment
Можете ли вы использовать специальный ключ, в котором не используются специальные символы? e.g. exampleUrl: مثال: 192.168.1.15 یا example.com`   -  person Robert Cooper    schedule 19.07.2020
comment
Спасибо. да, я использовал аналогичное решение и разместил его в разделе ответов. но я думаю, что это не лучший способ решить проблему   -  person Zahra Talebi    schedule 19.07.2020


Ответы (2)


: имеет особое значение внутри ключа перевода, это означает, какому пространству имен принадлежит этот ключ.

У меня была аналогичная проблема с одним из моих ключей перевода, решение заключалось в том, чтобы игнорировать пространство имен в этом конкретном ключе.

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

Дополнительную информацию можно найти в этой ошибке.

person felixmosh    schedule 19.07.2020
comment
К сожалению, это решение не работает для меня: (( - person Zahra Talebi; 19.07.2020
comment
Какую версию i18next вы используете? это починили на прошлой неделе ... - person felixmosh; 19.07.2020
comment

Я использовал это решение:

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

Это не лучшее решение, и я думаю, что есть способ лучше решить эту проблему, но пока он работает.

Если вы знаете лучшее решение, я рад вас слышать.

person Zahra Talebi    schedule 19.07.2020