For a website,

I'm trying to find a usable way to localize a value in different language. Lets assume the name of a trip called "Raid des loups". The English version of this field is "A raid with the wolves"

I'm currently using the method #2 shown in the picture below, but most of our user forget to fill it. We can't enforce a field to be translated as the translation may come from the sale department and they haven't decided of a proper translation or the field only target a specific audience (like travelers from France).

I could go with the solution #1, but while we only have french and English at the moment, we know that Spanish and Italian is coming.

The solution #3 is a variant of solution #2, but instead of tabs, it use a mix of Javascript to show a button of the language, or a flag instead of tabs.

What would be a good approach to localized fields that should be both usable and somewhat extensible (we won't support all possible language)?

Three samples of design. One with two fields next to each other. One with multiple tab for each language and one with some button inside the field

4 Answers 4


I would make sure the user can see all localizations at once, otherwise you might end up with one variant getting edited without its siblings getting updated to reflect the possible change in translation. So avoid solutions #2 and #3.

I'm wondering whether these localized variants are usually required or optional? If they're required, you may want to offer some kind of "completion status" indicator to remind the user that they've got more to do than just entering a single variant. Let's say you have English, French, and Italian. When the English is entered then the string is 33% complete—you still need to add French and Italian!

enter image description here

As for layout, if the strings are usually short then you might be able to put them in a kind of "list" view:

enter image description here

...and I dropped in some warning icons for blank fields for good measure.


Both #2 and #3 could benefit from some enhancement which shows whether the related tab has been filled out or not. The following is a rough hack, I wouldn't necessarily use a checkmark as it might suggest correctness, over and above mere content presence.

tabs showing completion

By the way, don't use flags for language.

  • Very clear solution, and very extensible.
    – JohnGB
    Commented Sep 30, 2011 at 10:05
  • +1 "don't use flags for languages". Flags are for nations, languages do not map directly onto nations. Use the language name. Commented Oct 1, 2011 at 11:15

If it's mandatory for all users to fill out all the different language forms, why don't you give them a success message on publishing in one language which also informs them of having to fill other languages, and then switch the tab to the next language container?

My answer is limited, but given that the information is not very clear, it sounds logical to me?


I was going to put this in a comment to Evans answer, but there was too much.

Completion status is the way to go. This means that when an entry is included, it is clear that there is more work to be done. It it also worth indicating if one entry has been changed, that this invalidates the other language entries, until they have been opened and checked/verified.

It would also be a good ide to have some indicator of how much of the siteentries have been completed - that is, what proportion of ( say ) English entries have also been entered in all other languages. And, similarly, how many have finished being updated after changes ( this could be a separate indicator ).

It is a complex problem, because you have mandatory data, but you cannot make the fields mandatory, as you say, because they do not have to be filled in at the same time.

Another approach might be to have a "publish" process, which is only allowed when every entry is fully completed. However, this may not be an appropriate route in your environment.

As a simple answer, Evan is right, that you need to see all languages at once, if possible.

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.