I Want My Language Skins

by Jacek Artymiak

Related link: http://www.oreillynet.com/pub/h/360



Google's international front ends are an example of something I like to call 'language skins'. They are quite easy to change (see this Hack for help when you're away and don't know the language Google is talking to you in) and make your life easier when you are on the move in a country where the local language is one you don't know.



Every desktop application's window ought to have the ability to change language skins seamlessly and without rebooting the whole system or restarting applications. Changing window and menu language, or keyboard layout for each window and dialog ought to be only a single mouse click away.



It will not only make software localization easier and faster, but will make book publisher's and user's life easier. The classic problem with today's software and computer books is their localization. Suppose a German-speaking professional is assigned to a Moscow office, where all versions of Word are localized for the Russian user. If he has a problem with some options, his German Word manual will be useless, because the messages he sees in print and on screen don't match; similarly, he won't get much help from a Russian Word manual if he doesn't speak Russian. With language skins he could change the descriptions of windows and menus to German and keep on working in the way he is used to.


5 Comments

anonymous2
2003-07-09 14:46:15
Mac OS X International System Pref
Has exactly what you ask for. If you are using Mac OS X, go to the System Prefs, and choose 'International'. When you re-order the preferred languages, the panel will inform you that changes take place upon re-starting the _app_.


I tested it out just now, all of my open apps are running in english, but safari (which I just quit and re-opened) is running in spanish.

anonymous2
2003-07-09 14:48:22
Mac OS X International System Pref
sorry...after re-reading your post (which I thought only complained about re-starting the system) also mentioned not wanting to re-start the app. It is still a fairly painless process.
anonymous2
2003-07-09 16:35:14
Mac OS X International System Pref
Reason #49843 for switching to OSX.
anonymous2
2003-07-10 00:58:56
Mac OS X International System Pref
I'd have to say that the ability to switch between languages without restarting the app is a crazy idea that really just wastes developers time. Think about it - to be able to switch languages you have to know about every string that has already be put on screen, loaded into a dialog etc. That's a fair bit of extra code to write, a fair bit of extra memory to follow and a lot of opportunities for missing a string somewhere.


Then consider how often you are likely to change languages - not particularly often. Sure you don't want to have to reinstall the entire OS like you have to with Windows, but restarting the app sounds like a decent trade off between the complexity of dynamically changing strings on a whim and user convienience.


Just my 2c anyway...


Adrian Sutton.

anonymous2
2003-07-10 02:43:13
Mac OS X International System Pref
Actually, in an internationalized application, all strings are referenced by their key, and there are different key-string resource files selected based on the language. In a proper designed application (this is mostly handeled by the toolkit anyway), changing language only requires an expose event on the topmost window for the application.


All our webapps are designed this way. Using an MVC framework such as struts allows this to be done fairly easy.