Android string resources#
Android specific file format for translating applications.
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 intepreting 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>
Weblate configuration#
Typical Weblate Component configuration |
|
---|---|
File mask |
|
Monolingual base language file |
|
Template for new translations |
Empty |
File format |
Android String Resource |