React-Native,创建与i18n相关的动态字符串

时间:2018-04-10 04:48:31

标签: string reactjs react-native

我正在使用react-native-i18n开发多语言环境应用。在某些字符串中,我必须放置一个动态字符串,如:

var str = 'Hello dear '+ user.name +', good morning!'

我不想在语言json文件中定义两个参数(因为我的代码很脏而且一些langs在运动上不同)才能有这样的代码:

var str = lang.t('hello')+ ' ' + user.name + lang.t('goodMorning')

我需要的语法类似于JavaC#中的语法:

var str = string.format(lang.t('helloMorning'), user.name)

/////////////// en.json:

{ "helloMorning":"Hello dear %s, good morning!" }

2 个答案:

答案 0 :(得分:1)

像这样定义你的翻译。

{
  "greeting": "Hello, %{name}. Good morning!"
}

然后在渲染中传递这样的参数。

i18n.t('greeting', {
  name: 'Ali'
})

答案 1 :(得分:0)

使用 i18n 钩子

const { t, i18n } = useTranslation();

定义翻译json

{"greeting": "Hello, {{name}}.Good morning!"}

jsx

{t('greeting', { name: "sumit" })};