All Toolkit content including instruction sets for different RDT types can be found on GitHub. Both the App text AND the RDT instructions can be translated.
Currently the Rapid Diagnostics Toolkit is available in:
French (not fully translated for all RDTs)
Portuguese (not fully translated for all RDTs)
Malagasy (not fully translated for all RDTs)
The Settings menu in the Android App can be used to select one of these languages
1) APK App Translations
The application translations are managed through standard Android SDK translation assets. Software developers can use the Android Studio built-in translation tools to add new languages or easily update translations.
For non-technical teams who want to add a new language for translation, the main translation file can be found online here. This file can be edited with any text editor, changing the inside of the XML <string> tags.
XML escaping will need to be used: primarily, apostrophe characters will need to be escaped with backslashes, so “it's” -> “it\'s”
Placeholders (%s, %d) will need to be retained.
New languages need to be added by creating a new strings-LANGCODE folder in the resources directory with the appropriate android ISO langcode for the new locale, and placing the translate strings.xml file inside that folder
2) “Folio” Translations (for Test Instructions)
“Dynamic” content about tests or classifiers, like Job Aids or test instructions, are translated in a different format. This content is maintained inside of a “Folio” file which may or may not be part of the hard coded application.
Currently, the folio files are maintained as Android App Assets, and the folios for each test and job aid are maintained independently (along with their multimedia files). To update translations for these, the appropriate folio.json file needs to be changed directly.
An example app folio file can be found in the code for a Job Aid interpreting the Care Start Pf/Pv test results.
To add a new language for translation, one of the existing blocks should be copied and pasted to the end of the list, changing the ‘lang’ key to the same ISO langcode mentioned above for the APK translations, and then the test of each string updated.
Submitting Translation Changes
New or updated translations can be submitted to GitHub via Pull Requests to the repository
When switching between languages, it does not switch properly
Documented in GitHub, this known bug due to the localization layer, which allows translating into locales other than those present on the local device. Its not considered a high priority issue to fix since the intent isn't to swap locales/languages during every day use, but rather to just provide a setting to set the device language at time of installation and first use.
Workaround - You can trigger the translation in full by restarting the RDToolkit or device.