Android Strings Resource Language Diff tool

In the event any additional languages are intended to be supported by your app. You can use this strings-diff tool to ensure all translations from english to the language in question are accounted for.

To use this tool simply first copy and paste the language-diff-tool.jar tool into the root directory of the current project you are attempting to apply language changes.

This tool offers the following features:

  • Search for any string resources in english not supported in an alternte language and provide a xml document containing the missing strings found.
  • Process a CSV file witch in the following formats:
    • A simple 2 column file containing english to alternate language translations
    • An advanced 3 column file containing english text, the alternate language translation, and the shared string res id
  • Export a csv of all string in application for both english anf the alternate language

Searching for missing translations

WHen using this tool to search for missing translations within your app simply open a terminal window inside the current project directory and type the following:

C:\Users\...\android-project> java -jar language-diff-tool.jar -les  

The -l option is where you specify the language to diff against. Once the program executes a missing-es-translations.xml file will be generated listing any strings in english that need to be translated to the respective language.

Passing a CSV file

This will allow you to automate updating your project with any translations that may need to be updated or added within your resource file. To pass a csv file to the tool simply type the following in the terminal within your project:

C:\Users\...\android-project> java -jar language-diff-tool.jar -les -csv path/to/file.csv

It’s important to note that the csv file path is relative to the source directory provided to the tool which can be set with the -s command which is also used to find the string files within your project. So be sure to include the csv file within the project directory you are using this tool in.

Once started the csv file will be scanned for any matching english strings with the values provided. After the tool has run a diff report will be provided which generates a skipped-english-translations.xml file for any skipped translations that could not be found as well as a skipped-alt-lang-translations for any translations that could not be found in the alt res file. Please note that the tool is not case sensative when processing a simple 2 column csv file and allows for minor grammatical errors when searching for matching english strings.

Expected Simple CSV format

To correctly process the csv file it must be in the following format:

English Spanish
Hello Hola
Goodbye! Adios!
System Error Error del sistema

The csv must consist of only 2 columns with english on the left and spanish/german/etc. on the other column. This is great for quick imports of translations when you only need to update a few translations in the alternate language. However, this only updates strings in the alternate resource file, to update both english and spanish resources refer to the second csv format below.

Expected Advanced CSV format

To correctly process the csv file it must be in the following format:

English Spanish ResId
Hello Hola greeting_msg
Goodbye! Adios! exit_title
System Error Error del sistema error_result_title

The csv must consist of only 3 columns with english, alternate-language, & string-res-id. Once the tool has finished processing, a diff report will be provided listing any skipped translations during processing. This format can be generated manually or automatically via csv export as described below. This format is great if you want to update both english strings & the alternate language at the same time when importing the translations.

Exporting A CSV File

To export all the strings within your app you can use the following command -exportcsv. This will generate a csv file containing 3 columns english, alternate-resource, and string-res-id which can be updated and used by this tool to modify the same strings with the res-id’s found in the file.

Below is an example of using the export command:

C:\Users\...\android-project> java -jar language-diff-tool.jar -les -exportcsv path/to/file.csv

Once the command has run a file named string-translations.csv will be generated.

Ignoring strings

In the event if you do not want a string to be considered by this tool to be “not translated” and included in the missing translations file. You can add the translatable="false" flag to the string resource to have it not considered by the tool.


View Github