android本地化的字符串资源,里面有不可翻译的词



让字符串资源:

<string name="pin_code_title">Please enter PIN code</string>

<string name="enter_btc_tokens_amount">Enter amount of BTC tokens you want to send</string>

我使用谷歌翻译服务,我上传字符串.xml自动翻译。我希望谷歌保留"pin";和";BTC"(以及其他一些品牌名称)无法翻译。这就是我的问题。如果可以,Google会翻译整个字符串。

我已经检查了android字符串资源文档

我看到但仍然不喜欢的解决方案:

  1. 声明参数:<string name="pin_code_title">Please enter %s</string><string name="enter_btc_tokens_amount">Enter amount of %s you want to send</string>,然后从Kotlin调用textView.text=...。我不喜欢它,因为我在布局中使用字符串资源。

  2. 在xml中使用"实体"这里描述。我看到翻译服务不支持xml实体。我希望谷歌翻译xml文件,但保持实体未翻译。

在可翻译字符串中保留一些未翻译的单词的最佳实践是什么?

我推荐LikeTheSalad gradle插件

我们在生产中使用了一段时间,没有任何问题。

使用资源A作为资源b内部嵌套资源的简单直观的方法。

我为你的目的调整了repo描述的例子:

<resources>
<string name="pin" translatable="false">PIN</string>
<string name="pin_code_title">Please enter ${pin} code</string>
</resources>

这样,谷歌会翻译Please enter ${pin} code(我相信他们不会翻译${pin}),但在最终的APK中,资源将正确生成:Please enter PIN code.

最新更新