我使用react-native-i18n翻译我的应用程序。我有一个“格式化”的文本,如:
<Text>Normal text <Text bold>this is bold</Text> back to normal</Text>
是否可以将此文本翻译为1或2个字符串而不是3?
答案 0 :(得分:0)
理论上,您可以将翻译后的文字看起来像降价,例如
Normal text **bold text** back to normal
然后使用一些函数来创建文本元素,并在代码中使用它们。
function textElements(text){
return text.split('**').map((str, i) =>
i % 2 == 0 ?
<Text key={key}>{str}</Text> :
<Text bold key={key}>{str}</Text bold>;
}
这是否构成了更容易或更难阅读的代码,嗯,我认为这是一个意见问题。
答案 1 :(得分:0)
您可以在react-native中使用嵌套的<Text>
组件。您可以继续在主<Text>
内为嵌套<Text>
使用不同的样式。如下所示
<Text style={{fontWeight: 'bold'}}>
I am bold
<Text style={{fontWeight: 'normal'}}>
and normal
</Text>
</Text>
答案 2 :(得分:0)
最后,我已切换到i18next。它有一个相当不错的反应原生支持,并且似乎比react-native-i18n更精细。