如何翻译原生文本中的格式化文本?

时间:2017-09-30 09:14:11

标签: react-native internationalization

我使用react-native-i18n翻译我的应用程序。我有一个“格式化”的文本,如:

<Text>Normal text <Text bold>this is bold</Text> back to normal</Text>

是否可以将此文本翻译为1或2个字符串而不是3?

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更精细。