This script is useful for extracting all strings from a multimodule Android project. It supports different output formats which may be useful for you. Currently supported csv, yaml, dynodict-yaml. JSON is coming soon.
NOTE: Before starting using this tool, please run in your project root otherwise you may get a lot of rubbish strings in the output file:
./gradlew cleanThis tool can be installed via PIP repositiory by running the following command:
pip install android-text-toolor if you use Poetry, run this:
poetry add android-text-toolRun the tool in the root directory of your project(please, don't forget to clean it before to prevent extracting strings from different libraries you use).
android-text-tool . -f csvAs a result, you'll get a CSV file which contains all string resources from your project.
android-text-tool [-h] -f {csv,yaml,dynodict} [-l DEFAULT_LANGUAGE] pathPositional arguments:
path- the path of the Android project to scan.
Optional arguments:
-f {csv,yaml,dynodict},--format {csv,yaml,dynodict}- the output format to save the translations. Default is csv.-l DEFAULT_LANGUAGE,--default-language DEFAULT_LANGUAGE- the default language for the translations. This language code will be used for strings insidevaluefolder. Default is en.
This is a comma-separated sheet.
Example:
key,es,ht,fr,en
translation1,Test1,Test1,Test1,Test1
translation2,Test1,Test1,Test1,Test1
translation3,Test1,Test1,Test1,Test1Example:
languages:
- en
- ht
- es
- fr
name: Exported project - 2023-11-03T02:29:50
translations:
- key: strings.xml
translations:
- key: translation1
values:
en: Test1
fr: Test1
ht: Test1
- key: translation2
values:
en: Test1
fr: Test1
ht: Test1This format is for a tool which is going to be released soon. It's under development. Please, do not use it.