我正在使用react-native-i18n
开发多语言环境应用。在某些字符串中,我必须放置一个动态字符串,如:
var str = 'Hello dear '+ user.name +', good morning!'
我不想在语言json文件中定义两个参数(因为我的代码很脏而且一些langs在运动上不同)才能有这样的代码:
var str = lang.t('hello')+ ' ' + user.name + lang.t('goodMorning')
我需要的语法类似于Java
和C#
中的语法:
var str = string.format(lang.t('helloMorning'), user.name)
/////////////// en.json:
{
"helloMorning":"Hello dear %s, good morning!"
}
答案 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" })};