I’m trying to edit my android strings.xml file with arabic translations. However, I’m having issues. For example, I have something like this:
<string name="test">اختبار</string>
When I type something like %1$s to add a placeholder, the string with the placeholder is also mixed up.
What’s the right approach to do this? Thanks
Placeholders (ascii) in BiDi strings are tricky. If you know that this %1$s
will eventually be substituted by a name in Arabic, it's manageable; but if the substitution can be English or mixed text, you need a long and careful QA to check all special cases.
Don't try to edit Arabic text in Android Studio text editor for file res/values-ar/strings.xml; use the Translations Editor instead.
The official guide https://developer.android.com/studio/write/translations-editor.html describes the this editor in great detail, but one little trick that it misses is the use of View/BiDi Text Direction menu. To work with Arabic strings, you want to set it to Right-to-Left.
This will not effect the Arabic column in your Editor, and not even the way the translation is displayed in the text box at the bottom:
But when you click the ... button for translation, you will get the translation in RTL:
Now you can understand how your placeholder(s) will look when replaced with actual data.