Skip to content

Instantly share code, notes, and snippets.

@imankulov
Last active December 14, 2020 15:38
Show Gist options
  • Save imankulov/075d878bf56d1502c907 to your computer and use it in GitHub Desktop.
Save imankulov/075d878bf56d1502c907 to your computer and use it in GitHub Desktop.

Overview of localization tools.

I have collected a large number of proposals from Artyom, Roman, Nuno, Goncalo, selected 8 of them in my opinion the most successful platforms and checked how well they fit us.

I checked which of service fit us on the basis of features reviews from Goncalo, Nuno, and Roman, and tested following features:

  • Format support - localization formats which we can upload / download to / from service
  • Integrate with - Parameter indicates that the service is integrated with the app store. Since Nuno reported problems that changing in the localization files have to wait long for a confirmation.
  • Quality checks - checks on the correctness of the translation
  • Prulals - supports multiple forms and checks their spelling
  • Glossary - helps to standardize the way terms in your project are translated
  • Translation history - ...
  • Translation memory - system to provide automatic suggestions based on similarities between source strings
  • VCS - can we use a repository on github / bitbucket
  • Automatically download / upload strings - can we automatically update our strings
  • Opensource - the service is open and we can install it locally
  • Comment for translation - ...
  • Suggestion voting - translators offer translation and reviewer selects the most appropriate option
  • API - ...
  • User notification - notify the service user of the changes in the project
  • The hierarchy of users (Administrator, manager, translator) - the hierarchy of users for more safe translations
  • Group people by team - group of people on the team
  • Work on command line (console) - the ability to work through the console and automate some action

Regarding seamless integration with iOS (upgrade strings without updating the app). Unfortunately, it looks like all services provide an ability to translate nothing more but a description of the app in the AppStore, and I haven't found any way to make localization work dynamically :(

Regarding 'Quality checks': none of the services enforce quality checks - this means that user can push translations with errors, but many services provide 'suggestions': a translator can make a translation which raises an "automated warning", but it only be marked as a suggestion in this case, and it's up to the reviewer to validate it and to push it to production.

I also checked the reviews about each platform, in order to understand what other user may miss. As a result, I created a table which shows how different features are supported in different services. I also gave an overview of the most appropriate services.

https://docs.google.com/spreadsheets/d/1_MaEM-TxfptPDJrmJOBxAl03vCVgj2AZD_O56XfL-a4/edit?usp=sharing

An important question is which service model to use. Wheter we should use an Open Source code locally instalable products, or we should stick to paid third-party services?

Pros local services:

  • Extensibility (eg do authentication with todoist)
  • Free
  • Safety (we don't have to keep our translations somewhere else)

Minuses:

  • It is up to us to set up and configure them
  • Sometimes they don't have any commercial support and their development is slow

To sum up. I like three services: Transifex, lingohub and Weblate.

  • Transifex - rich in features but doesn't have VCS and updatings (what's updatings)
  • lingohub - has VCS and good system of checks, but does not have a glossary
  • Weblate can be installed locally and has a lot of features, but it's hard to configure.

More information about these services I described in reviews:

https://docs.google.com/document/d/10Zq4kPIE_mPW6XccSQLF3gTemOTLkjlQ7wL5YfgVCfI/edit?usp=sharing

https://docs.google.com/document/d/1zu2bKRQLXDZjTyDblXurmwzRekvVZlB-bI6JbXLdsqU/edit?usp=sharing

https://docs.google.com/document/d/1R6UfVDwCAfn4khX7Y4tpLR5pjQGwJlOQnb85OT1WRuQ/edit?usp=sharing

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment