I'm using react-native-i18n to develop a multi-locale app. In some strings I have to put a dynamic string like:
var str = 'Hello dear '+ user.name +', good morning!'
I don't want to define two params in languages json files (due to makes my code dirty and some langs are different in motion) to have such code:
var str = lang.t('hello')+ ' ' + user.name + lang.t('goodMorning')
I need a syntax like what we have in Java and C#:
var str = string.format(lang.t('helloMorning'), user.name)
/////////////// en.json:
{
"helloMorning":"Hello dear %s, good morning!"
}
use i18n hook
const { t, i18n } = useTranslation();
define translation json
{"greeting": "Hello, {{name}}.Good morning!"}
jsx
{t('greeting', { name: "sumit" })};
Define your translations like this.
{
"greeting": "Hello, %{name}. Good morning!"
}
And then in your render, pass parameters like this.
i18n.t('greeting', {
name: 'Ali'
})
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With