I'm currently laying the groundwork for internationalizing a web application. I'm torn between falling back to using asterisks or just the default English text for missing translations. Using asterisks, while annoying, would make it quite obvious that there is no text available, and would prompt the user, or ourselves, to fill it in. Using English when a user has explicitly selected an alternative language seems disrespectful of their wishes, but also gives them, if they're bilingual, something to work with. Are their any recommended approaches that apply generally, or is this heavily dependent on context?
- Asterisks can be really frustrating if there is no obvious meaning and there is no legend or interaction to reveal meaning.
- Mixed languages on a page obviously causes confusion too. But at least with another language the intent is clear to the user even if the meaning isn't.
- A fallback language makes sense. We just need to design to ensure that users understand why the translation is missing.
- The fallback language should be differentiated from the normal language. This provides an acknowledgement to the user that we are aware of the dissonance.
- The user should have ability to find out more about the untranslated word(s).
One resulting approach
This example is an Italian app translated into English, with one missing translation. Here are two possible layouts:
When a user clicks on the asterisk/info icon, she's presented with something like this:
- Clearly differentiates/acknowledges untranslated terms.
- Provides users with a way to find out more.
- Provides users with a stopgap solution (Google translate) until the term is fixed.
- Communicates that you are going to fix the problem in the future.
- Assures users that there is no impact on the performance on the app.
Firstly, I would say it's really bad form to inflict your problems on the user - never mark the text just because it will make it obvious to you that something needs to be done.
When it comes to missing translations, I'd suggest that a real language fallback is always preferable to a non-language fallback - At least it may be translated by the user if they wish. Whereas a non-language fallback does not allow user translation.