UI Problem: Dynamic Locale Switching

I recently came across bsmedberg’s Locale Switcher extension. I was thinking that something like this was needed for Internet cafes, where successive people may want to use the browser in different languages. However, the ability to change languages on the fly is not common, and so the UI for doing so needs to be really obvious and up-front if people are going to find it and take advantage of it.

The problem is further complicated by a technical limitation. It’s not possible to change the language of an already-existing window. All you can say is that all new windows should have the new language. And so the UI can’t just be a set of buttons where you click one and get on with what you were doing.

Here’s my current attempt at the UI for an Internet Cafe Locale Switcher. Comments are very welcome.

Each browser window has a toolbar, which looks something like this (except fixed up and fitting with the rest of the UI and so on):

New windows in:        



  • The toolbar appears in every top-level window, and changes to it are synced between windows.
  • As you hover over each control in the toolbar, two things happen:
    1. The phrases “New windows in” and “Open New Window” change to be in the relevant language
    2. A tooltip appears, saying “Make new windows use an English interface” or equivalent.
  • The space for the “New window in:” text is long enough for the longest configured string, so that the controls don’t move during mouseover.

This is the clearest thing I can come up with which reflects the fact that the change of language is really a setting for future windows rather than for the current window, yet makes it as easy as possible to get a new window in that language, without possibly losing or hiding any work the user may have in the current window.


15 thoughts on “UI Problem: Dynamic Locale Switching

  1. One drawback of this is that it only serves a relatively small number of languages. Try doing a mockup with 10 languages. To suit that many languages you would need a dropdown instead of radio buttons.

    On the other hand, I like your idea of the UI changing labels during mouseover of the different languages to improve the ability of users to “discover” this function if they see a box with different languages in it. One possibility is that you use cognates for the labels on the box and the button as much as possible and then just use a dropdown.

    You could also shorten the space taken up by the radio button by using “en-UK”, “de-DE” and “ne-NE” or whatever they are instead, but that might be too confusing…

    Hard problem!

  2. I think that this is still to confusing for user just to stumble upon. What you really need is something that runs before the browser is opened. Or perhaps something that recreates the existing windows with the new language.

  3. I have to wonder if fixing the underlying technical limitations so you could truly switch languages on the fly wouldn’t be easier than trying to come up with a UI for what is, ultimately, not a friendly behavior.

  4. What is your reasoning for not going with a drop down list? Since this is more easily expandable and would take up less precious screen real estate.

    While it might not be as discoverable I think one could come up with some snazy methods to make it more visible or understandable.

    |make new window in: [-Espanol-] |

    hmmm, but I guess you couldn’t do the snazzy mouse over effect then. And it presuposes that some one would know what “Make new window” meant in English.

    Macintosh tosses a picture of a flag into the mix perhaps that would be an acceptable indication that the toolbar had something to do with locale.



  5. Perhaps instead of having the label and a button that says “Open New Window” in whatever language, it might be better to replace the button text with the New Window toolbar icon. You should maintain the button’s button look (rather than making it look like a toolbar button), so that it reminds the user of a “Submit” button in a form that they’d have to click if they wanted to see anything happen.

    Of course, it would be better to have something show up before the first window does, but this seems like a reasonable temporary solution.

  6. If the language switching feature is to stand up, it can’t be done any above described way. In internet caf�s, a kiosk mode is to be used and no window shutting down might be allowed or wanted, at least. Switching language must be done quick as sanitizing personal data.

  7. Why can’t you just save all the information from the current window (in a similar way to sessionsaver), then kill the window and spawn a new one with the desired locale?

  8. Nice thinking, would make it easier for those that does not understand english so good. But I believe your idea is a bit flawed (“in me eyes that is”).

    Would it not be easier to just have a set of user accounts on the computer, then only the words English, Deutsch, Nederlands and so on wouldnt need to be all. They could also be assigned the right flag as an icon.

    Another good thing with this would be that if there is more software on the computer, they will also get the right locale without the need of strange addons.

  9. (Gerv, Cam from lunch/dinner on Wednesday here…)

    Micke, I think the problem there is that lots of people are multi-lingual, and having to log out to use two different systems isn’t feasible. It’s enough trouble when you’re working on a machine that’s in Japanese and want to flip into English-entry mode, and that’s just a single keystroke…

  10. Don’t even think of mentioning flags as language selectors; that’s a flame war waiting to happen. Consider the relationship between Taiwan and China, for example: China doesn’t recognize Taiwan as a country (and neither does the ISO country code standard), but Taiwan can get pretty mad about this small slight. No matter what choice you make, someone’s going to see it as an affront. The problems with flags are obvious, and the only way to get around it is to start shipping multiple versions of the software for different places (as Apple does), even when those places speak and use the exact same language.

    If you want further arguments, see the flag removal flame war on the GNOME mailing lists; I’m sure Google would find it with a minimal amount of effort.

  11. Conserving screen real estate:

    Have a single button with a planet earth icon. When you click on it, you get a pull-down menu.

  12. Peter Kasting: Unfortunately, that would require a complete rewrite. The strings are substituted into the XML file as entities – i.e. at parse time. So you have to completely reparse the XML to get new strings in; you can’t modify them on the fly for an existing data structure, because you don’t know which is which or where they begin and end.

    Micke: Yes, you could force people to log out and in again – but that also has a discovery problem. I want something which is immediately obvious to people when they sit down.

    Cam: This extension is not for people who are multi-lingual; after all, they can read either language! It’s for a stream of people all of whom are mono-lingual in different languages.

    Jeff: You are right; I didn’t suggest flags for exactly this reason.

    Ian, Alan Trick: The only way we could close the window and open a new one automatically, or restart Firefox, is if you could not only save what pages the user was on, but their scroll positions and the content of any forms they’d filled in. Does Session Saver do that?

    Alan: I don’t think that’s discoverable enough. Would you immediately associate a Planet Earth icon with the ability to change languages, if you just sat down at a computer with a browser you’d never seen?

  13. So this extension switches switches languages in without needed to restart the browser? If this is the case why isn�t this functionality in the browser by default? This seems quite in line with the core directives of the browser.

  14. Adrian: Several reasons. Firstly because, as trying to design UI for the function has demonstrated, it’s rather confusing to use if it doesn’t change the current window. Secondly, it’s a very niche feature – not many users switch the language they browse in ever, never mind regularly.