Android string resources¶
Android specific file format for translating applications.
The same file format is also used by JetBrains Compose Multiplatform Kotlin Resources.
Android string resources are monolingual, the Monolingual base language file is
stored in a different location from the other files – res/values/strings.xml
.
Weblate does following escaping of strings:
If a strings is valid XML, it is inserted as XML to translation.
?
and@
are escaped with a\\
at the beginning of the string to avoid interpreting them as style or resource references.In case string contains multiple spaces, it is quoted with double quotes (
"
).Newlines are escaped as
\\n
, but the actual newline is kept for readability as well.
Note
Android string-array structures are not currently supported. To work around this, you can break your string arrays apart:
<string-array name="several_strings">
<item>First string</item>
<item>Second string</item>
</string-array>
become:
<string-array name="several_strings">
<item>@string/several_strings_0</item>
<item>@string/several_strings_1</item>
</string-array>
<string name="several_strings_0">First string</string>
<string name="several_strings_1">Second string</string>
The string-array that points to the string elements should be stored in a different file, and not be made available for translation.
This script may help pre-process your existing strings.xml files and translations: https://gist.github.com/paour/11291062
Hint
To avoid translating some strings, these can be marked as non-translatable. This can be especially useful for string references:
<string name="foobar" translatable="false">@string/foo</string>
See also
Android string resources documentation, JetBrains Compose Multiplatform Kotlin Resources, Android string resources
Weblate configuration for Android resource strings¶
Typical Weblate Component configuration |
|
---|---|
File mask |
|
Monolingual base language file |
|
Template for new translations |
Empty |
File format |
Android String Resource |
Weblate configuration for JetBrains Compose Multiplatform Kotlin Resources¶
Typical Weblate Component configuration |
|
---|---|
File mask |
|
Monolingual base language file |
|
Template for new translations |
Empty |
File format |
Android String Resource |