Android 带占位符的 RTL 翻译
Android RTL translation with placeholders
我正在尝试使用阿拉伯语翻译编辑我的 android strings.xml 文件。但是,我遇到了问题。例如,我有这样的东西:
<string name="test">اختبار</string>
当我输入类似 %1$s 的内容来添加占位符时,带有占位符的字符串也被混淆了。
正确的做法是什么?谢谢
BiDi 字符串中的占位符 (ascii) 很棘手。如果你知道这个 %1$s
最终会被一个阿拉伯语的名字代替,这是可以控制的;但如果替换可以是英文或混合文本,则需要一个漫长而仔细的 QA 来检查所有特殊情况。
不要尝试在 Android Studio 文本编辑器中为文件 res/values-ar/strings.xml 编辑阿拉伯语文本;请改用翻译编辑器。
官方指南https://developer.android.com/studio/write/translations-editor.html对这个编辑器的描述非常详细,但是它遗漏了一个小技巧是[=41的使用=] 文本方向 菜单。要使用阿拉伯字符串,您需要将其设置为从右到左。
这不会影响编辑器中的阿拉伯语栏,甚至不会影响翻译在底部文本框中的显示方式:
但是当你点击...按钮进行翻译时,你会得到RTL的翻译:
现在您可以了解用实际数据替换占位符时的外观了。
我正在尝试使用阿拉伯语翻译编辑我的 android strings.xml 文件。但是,我遇到了问题。例如,我有这样的东西:
<string name="test">اختبار</string>
当我输入类似 %1$s 的内容来添加占位符时,带有占位符的字符串也被混淆了。
正确的做法是什么?谢谢
BiDi 字符串中的占位符 (ascii) 很棘手。如果你知道这个 %1$s
最终会被一个阿拉伯语的名字代替,这是可以控制的;但如果替换可以是英文或混合文本,则需要一个漫长而仔细的 QA 来检查所有特殊情况。
不要尝试在 Android Studio 文本编辑器中为文件 res/values-ar/strings.xml 编辑阿拉伯语文本;请改用翻译编辑器。
官方指南https://developer.android.com/studio/write/translations-editor.html对这个编辑器的描述非常详细,但是它遗漏了一个小技巧是[=41的使用=] 文本方向 菜单。要使用阿拉伯字符串,您需要将其设置为从右到左。
这不会影响编辑器中的阿拉伯语栏,甚至不会影响翻译在底部文本框中的显示方式:
但是当你点击...按钮进行翻译时,你会得到RTL的翻译:
现在您可以了解用实际数据替换占位符时的外观了。