Mobile i18n Technical Approach
Dec 1, 2023 Meeting Notes
Attendees: @Edward Zarecor @Brian Smith @Mian Khalid @Volodymyr Chekyrta @Anton Yarmolenko @Saeed Bashir
Recording: https://drive.google.com/file/d/1OBDotDCARk2scBFYKizTmU-Vpn73bz_Q/view?usp=sharing
Goals
Understand existing tools for translation and technical approach for Atlas
Align on goals for mobile approach
Consistent translations for iOS and Android
Integrate with existing processes and tools like Transifex
Leverage work of the Translations working group
Approach alignment
Should we have a single format so we can share translations between apps?
This would be a consistency win
Would require developing new tooling
Was a goal of the edX mobile team, but not done yet.
@Volodymyr Chekyrta is aware of differences in the way that plurals are handled
Trying to combine string would add some complexity, @Brian Smith argues for keeping them separate
@Mian Khalid notes that separation double the cost of translation
https://help.transifex.com/en/collections/3519116-file-formats
Try a spike to see if we can make this happen?
Probably investigate plurals issue before diving too deeply.
There’s this article about a possible approach, How to Share Translations Between iOS and Android
@Brian Smith suggests using one of the native formats
However, this creates a dependency between the apps that is new, if we, say, choose ios, the string would have to exist there to be available in Android.
There will be product specific strings.
Notes
[Brian] Discovery - Transifex pull in different formats:
It does seem to be possible to get translations in different formats using
tx pull
, but it’s not clear if it’s possible to pull down the source strings in different formats (Using the client )There is also https://pypi.org/project/transifex-python/ Python
API docs make me think it might be possible https://transifex.github.io/openapi/index.html#tag/Resource-Strings/paths/~1resource_strings_async_downloads/post
It’s not clear what happens if the post to
resource_strings_async_downloads
hasfile_type
inattributes
that doesn’t match the uploaded source