DEV Community

Ben Halpern
Ben Halpern Subscriber

Posted on

What do American developers get wrong about internationalization?

Oldest comments (42)

Collapse
 
ghost profile image
Ghost

1.) They forget that non-QWERTY keyboard layouts exist

2.) RTL-languages usually break the UI completely or at least look very out of place

3.) They forget that some cultures don't use , for thousands or . for decimals.

Collapse
 
mikesimons profile image
Mike Simons

They assume all languages pluralize like English.
unicode.org/cldr/charts/29/supplem...

Collapse
 
k2t0f12d profile image
Bryan Baldwin

They forget to do it, until they try to take it into other countries.

Collapse
 
patricktingen profile image
Patrick Tingen

They forget that in some languages most words are longer than in English

Collapse
 
ennor profile image
Enno Rehling (恩諾)

Encodings, encodings, encodings. I'm considering "Explain Unicode" as an interview question.

Collapse
 
naor2012 profile image
naor volkovich

They should either support RTL-layout from day 1 or not support it at all! When you use a program and then an update comes out that supports RTL-layout, it's just the worst! Everything you used to click on the right is now on the left and the opposite! We prefer to have LTR-layout then getting used to a new one!

Collapse
 
mauskin profile image
Kirill Myshkin

English

// 1  : thing
// >1 : things
Enter fullscreen mode Exit fullscreen mode

Russian

// 1        : штука
// 2 to 4   : штуки
// 5 to 20  : штук
// 21       : штука
// 22 to 24 : штуки
// 25 to 30 : штук
// 31       : штука
...
Enter fullscreen mode Exit fullscreen mode
Collapse
 
ahmedam55 profile image
Ahmed Mahmoud

Arabic

// 1  شيئ
// 2 شيئان
// 3 أشياء
Enter fullscreen mode Exit fullscreen mode

not to mention that Arabic is gender-sensitive language

Collapse
 
eradical profile image
Gabriel PREDA

Romanian

//   1        : tigru    [ tiger ]
//   2 to  19 : tigri    [ tigers ]
//  20 to 100 : de tigri [ tigers ]
// 101 to 119 : tigri    [ tigers ]
// 120 to 200 : de tigri [ tigers ]
...
Enter fullscreen mode Exit fullscreen mode

The formula for PO files we use is:

Plural-Forms: nplurals=3;plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1))\n
Enter fullscreen mode Exit fullscreen mode
Collapse
 
machkernel profile image
David Stancu

What about "barosane"?

Collapse
 
tmr232 profile image
Tamir Bahar

I'll try and give some actual examples I encountered, without naming names.

  1. i18n is applied almost everywhere. So you can use non-Latin letters in content, but not in search or tags.
  2. To support RTL, the devs decided to flip the entire UI. Text included. This makes no sense whatsoever.
  3. Images, or image editors, are flipped to support RTL. Resulting in unusable displays.
  4. System language is used for some parts of the software, where a user configured language is used for the rest. So RTL layout is used with an LTR language, or vice versa.
  5. Semantic similarity between languages is assumed. So duplicate UI strings are only translated once. This causes really silly UI with words such as "set" and "read", when different tenses are mixed up.
  6. Date-time formats are abused. Both DD/MM/YY vs MM/DD/YY, and 24 vs. 12 hour clocks. Often you can even set those settings, but only for some displays. Being unable to tell which times are shown in different places in the UI is absolutely terrible.
  7. Fonts. If you support a language, support its display as well. And support it all over your program. Also, if your text inputs allow for more than one language, make sure you have a font for every language enabled at the same time. MS Office does a great job at it.
  8. Keyboard shortcuts. It is not uncommon that I have to switch back from Hebrew to English to type a keyboard shortcut. This is especially annoying for Undo. And really, all I care about is key locations. I don't want Ctrl+Z and Ctrl+ז to act differently.

There is one more, but I admit it is more difficult as there is no obvious solution

  1. BiDi text. I often mix English and Hebrew. No code editor handles that well.
Collapse
 
ben profile image
Ben Halpern

Guilty of a lot of this, but really excited to improve.

Collapse
 
mshappe profile image
Michael Scott Shappe

We don't do it at all!

Collapse
 
aurelherve profile image
Aurélien Hervé

They require a "state" field in their forms.

Collapse
 
oliver_bock profile image
Oliver Bock

Oh. How I hate this. (I'm from Germany and here no one ever asks this)