views:

339

answers:

9

I am working on a multilingual web application. I'm wondering how do i design the best user interface that the user can localize data for various languages? for instance, in making a page which its title is different in every lang, do i put a textbox for every one? it's not a suitable way to do(in case of 10 lang, the user has 10 textbox!!! too silly) what is your idea about this?

Edit: i have no problem with globalization in my system. in fact, i'm looking for a good way for my interface design which user can enter his data to my forms in various langs.

thanks in advance

A: 

What about only one textfield and a dropdown containing the languages. After selecting the language and filling out the textfield the field gets submitted and the chosen language disappears from the dropdown list. the entered value and language then appears beneath the dropdown and textbox with a way to edit/delete it. this way it's always clear to the user which languages are already covered and which values are assigned to them. furthermore it's a nicer way if not all 10 languages have to be mandatorily filled in, if the user e.g. just knows english and french.

Hope you know what I mean, otherwise I'll have to create an example screenshot :-)

msparer
thanks,sounds great. i can maintain entered values from textbox on client and send them at submit time.anyway, what about huge content in your opinion?
Mehdi Golchin
you mean a lot of content as e.g. whole blog posts? then different versions in different languages on one big page IMHO don't make sense. i think then it's better to provide one option (e.g. one dropdown) for language which applies on the whole form ... the user then has to fill out the same form multiple times (once for each language) but i think that's more intuitive than a bunch of fields on the same page.
msparer
A: 

You have one text box. On load you populate the text box depending on language.

The content will be populated from some kind of resource file. If there isn't much text it could even go in your config file.

Be aware of the following:

  1. Different content length depending on language.
  2. Right to Left alphabets screwing up your alignment

This is a classic project for using NUNIT or similar to promve that things work after new translations are added!

Jim
A: 

What language do you use in development? If this is something like PHP, then you definitely should use templates and load text strings into them from configuration files for every language. In Smarty, for example, I use configuration files for that.

Text strings for error messages or something like that could be put to files like .ini and loaded from there.

FractalizeR
A: 

The Google Web Toolkit (GWT) demo shows the same page with versions available in English, French, Arabic and Chinese.

The GWT docs have a thorough discussion of internationalization. You could emulate their implementation.

  • Constants: Useful for localizing typed constant values
  • Messages: Useful for localizing messages requiring arguments
  • ConstantsWithLookup: Like Constants but with extra lookup flexibility for highly data-driven applications
  • Dictionary: Useful when adding a GWT module to existing localized web pages

Remember that dates and times are represented differently in different locales, if your forms use them.

The W3C also discusses Internationalization Best Practices in HTML content.

Ewan Todd
A: 

Normally, a user navigating a website will have a preference specifying the language of the whole site. I think it would be confusing to break this pattern.

So, in an intro page, or a user preferences page, allow the user to select a language; then, on the other pages, display a consistent set of controls to be able to edit the content on each page.

Jon Seigel
+1  A: 

I am not able to answer in 10 lines, but you can check this link: Microsoft .NET Internationalization

Sorin Comanescu
+1  A: 

You could have 3 text boxes, and that's fine...get to 10, and it starts getting a bit crazy. Beyond that it starts looking pretty bad.

Maybe you could put up to say 5 text boxes up...but if it goes beyond 5 (because the user desires localization for more than 5 places) it places a single textbox with a dropdown next to it, and the dropdown would contain the current language.

Textbox would auto-populate with the current value for the language selected in the dropdown. Should work well in asp.net, and it can be done both client side, or server side on a post back pretty easily, so you don't need to do anything crazy for people not running javascript.

Beska
A: 
Greg
A: 

You can use javascipts as a resource file for your language like. language_arabic.js, language_english.js,etc.So when a use wants to see his preference language he/she has select the available languages from drop down list. Regarding this the user has to change the language settings from his/her computer. This is what I did while I was working a GIS project to customize a Geocortex IMF( http://demos.geocortex.net/imf-5.2.2/sites/demo_geocortex/jsp/launch.jsp ) site for an Arabic client.

Wonde