I'm creating an open source software for which the user interface is translated to various languages by contributors (about 30 languages at the moment). The translation platform is online and the nature of benevolent contributions is such that not all languages have a complete translation. Several languages are fully translated but others are at 50% and some at less than 20%.

Personally I find it a bit disappointing/unprofessional to select a language just to find out that only a few parts of the UI are translated and the rest is in English. However I understand that some users might prefer this to nothing.

I've considered only including languages that have a certain threshold of translation, like more than 66% of strings or some other arbitrary number for the main/stable version of the application, and include them all in the more bleeding-edge version of the application.

Is there a best practice or an accepted sweet spot to include a language as an option even though its translation is not complete? Is there a better way to go about this?


2 Answers 2


I do prefer partial translation rather than nothing. However, please ensure that your language switcher works. One thing non-English users can tell you is that unless your entire computer is set to English from the OS to the browser to your browser cloud account, sites will magically find and choose your language setting from one of those levels and will not forget them, even when they have a language setting. English users don't notice this because they don't have to fight it, but even giants like Amazon can't get this right. So if you issue a partial translation, please test your language settings on devices set to other languages.

And I do not prefer machine translation for the rest. If something is untranslated, I can usually look it up, whereas machine translation tends to obscure the original meaning and sometimes make it unrecoverable. The most serious issue is that machine translation relies on context, whereas apps (unlike longer documents) tend to use very small snippets. For instance, on one platform I use for work, the word "subject" appears with the meaning "topic". But in the machine translation, it has assujettir ~ "subjugate" (i.e., the verbal meaning subject). This frustrates me and makes me have to reverse-engineer what was meant from the context.

As for what proportion, presumably you are translating by priority first. Rather than specify a %, you can probaly define the core functions that a user would need access to before you can say it's "in their language". For example, if I were releasing an email client in partial translation, I would ensure that the user has enough UI to log in, read and send email, change their password, without perhaps worrying about filter creation and so forth. Whereas if you decide that most of your functions are core functions, wait for a full translation.

  • 1
    Thanks. The point about core functions vs global percentage is very good. Another person made the same point when I asked them about this. I don't completely control this as the translations are contributed by volunteers, but I can use it as an inclusion criteria. Furthermore, advanced users using the more technical aspects of the program are more likely to understand the English text. Commented Aug 25, 2021 at 17:17

Perhaps integrate the build process to use automated translation for parts that were not yet manually translated yet. Automated translation is worse than manual translation, but better than nothing.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.