We are building a software where the user has the possibility to translate buttons, messages, labels etc. The translation page consists of a table with - element key, english language and format of the text. The user can then choose from a drop down another language which will load two more columns in the table (language 2 and format for the text).


download bmml source – Wireframes created with Balsamiq Mockups

How do you believe it would be best to construct the table: - Should the two columns be always visible and when the user selects a language it will load. - Should the two columns be hidden and load when the user selects the second language from the menu.

  • 1
    If I happen to select English to French, won't all the words in English (except for mutual words like OK) be translated? Is this reflected simultaneously in the UI? If so, why would you show the user a table of sorts and complicate it? Two drop-down fields along with a Translate button should be sufficient, no? How does the user benefit from these tables? Jun 7, 2016 at 10:28
  • 1
    The two columns be hidden and load when the user selects the second language from the menu.
    – Diego
    Jun 7, 2016 at 10:30
  • @SwapnilBorkar This screen represents the editing of the translation for the particular buttons in the back-end. By selecting the language from the dropdown you load the ready translations which you can upload. So at one point you need to change the Create button to New button you come into the page and make the change. This is directed more for the administration of the software, or the content manager. In a similar table will be places all the messages, labels, buttons etc.
    – Loro
    Jun 7, 2016 at 11:02
  • 2
    Alright. Got it. Regarding the other two columns, how crucial is the column information? Will there ever be a value in Format column that's different than Regex if a particular language is selected? Jun 7, 2016 at 12:50
  • @SwapnilBorkar The Format can have a different format than regex based on the language. The additional two columns are basically needed when you need to translate something or when you set up the system. After set up - any changes in the translation or format won't happen often. So, the information in the columns will be important, but will be changed rarely.
    – Loro
    Jun 7, 2016 at 13:29

2 Answers 2


Ideally it is a great idea to show columns that has the translations available and not clutter the UI by loading columns that has nothing to show.

But if the user has chosen once to show a particular language the system should learn that the user needs this language and show him the language in the future unless explicitly deselected/removed.

In an utopian version of the software the user should be give the power, instead of choosing it for him, he should have power to display what languages he wants to be visible and which ones are optional for him.

The control to show language should be simpler than what have been suggested in the wireframes.


Neither - use intelligent defaults to ensure that the last two columns always contain meaningful content.

EDIT: To expand on this (admittedly short - sorry, got called into a meeting) answer... On first load you should populate the last two columns with one of the following two options:

  • Use the data you have at your disposal to ascertain what the most popular language search is for your users. Complete the last two columns with that language, knowing that xx% of users will be selecting that anyway.
  • Use their system language. In your example above, this would be English. Better to have repetition than empty space or hidden columns.

For subsequent visits you will need to have stored their last used/most frequently used language to translate to, so that you can populate the last two columns with that language.

Hope that helps :)


Your Answer

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

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