Hot answers tagged

113

Why should non-Anglos have to decode dates, numbers, etc. while Anglos can just read them? Numerical and date localization is absolutely necessary if you want non-Anglos to feel, you know, welcome as users and customers. Why should a German user have to work out what your number is instead of, you know, getting it in his or her own language's format? ...


54

Also, my second question is that do we really need to change 3,899.99 to 3.899,99 for some cultures like German? I mean it doesn't hurt to do so since the library already does it for us but wouldn't this actually cause more confusion to the user (even if he is German). Even if the user is German, he'll be confused with German notation? I'm pretty ...


35

American <> Universal. Reading a date like "Jan 2 2003" takes some time to decode. We always put the day before the month. So it would have to be "2 Jan 2003". Sure we get it but we have to think 5 seconds to decode it. Show a number like 1,234 and most Europeans will be thinking of a decimal number. 1,345.00 just "feels wrong". It's OK if you don't ...


27

Your problem here seems to be a bad assumption. There is no "universal format" for numbers or dates. 3,899.99 is valid in some places, and confusing in others. Same for the converse. People can frequently figure out what they need to, but that's not the point. The same goes for the date formats you talk about. The formats themselves are distinct between ...


18

You seem to assume that what you are used to read is universal, while it is not. Where I live, comma denotes the decimal separator, and a dot is used (sparingly) as thousands separator. It is unnatural for me to parse $3,004.25. But if you give me $5,535 I'd probably read it as about 5 dollars and a half. Reading 3.899,99 would not be confusing at all to ...


16

Too much effort for too little added value. The amount of English required to make sense of the keywords of any programming language is really very small - for the majority of second-language speakers it is probably way less than they already knew of the language even before they became programmers. Conversely, allowing all keywords to be replaced by their ...


14

The main reason is that all source code should be written in English. This applies as well to variable names, comments, etc. The reason becomes obvious when you see for the first time a piece of code which is written in a language you don't know. For example: // Записать изменения конфигурации. var имя = this.RefreshMeta().ПолныйПуть; ...


13

I don't have much knowledge on number and currency localisation, but dates are covered by ISO 8601 (http://en.wikipedia.org/wiki/ISO_8601) in the format YYYY-MM-DD e.g. 2011-05-10 for 10th May.


12

Why do you have this understanding? Both encodings [UTF-8 and UTF-16] can encode all unicode characters by the definition of them being unicode encodings. Anyway, UTF-8 is more optimal for storage and transmission than UTF-16 in your case. Majority of your characters in the files will not be in Chinese but in markup/js syntax. UTF-8 uses 1 byte for those ...


11

Also, my second question is that do we really need to change 3,899.99 to 3.899,99 for some cultures like German? I mean it doesn't hurt to do so since the library already does it for us but wouldn't this actually cause more confusion to the user (even if he is German). I am German, and speaking personally for me, it is indeed confusing, because I read ...


10

There are ways to achieve what you want, but they all involve using formats that are natural to no-one. for example, we store timestamps in our product in human-readable format: YYYYMMDDHHMMSS. There's no confusion there, but no-one uses that format in their daily lives. What I think you're needing is an underlying format that is universal, say, seconds ...


10

PHP has great built-in possibilities for localization. The most common way seems to be gettext - this tutorial shows how it's used. Since PHP 5.3 there's also intl which offers a lot more features (to format numbers, dates and currencies depending on the locale for example).


8

More a comment than an answer I guess, but... It Doesn't Come Naturally "since he'd probably learned the universal format anyway" Pardon me, but I didn't really "learn" that "universal" format until fairly late at school, because that's the thing: no one cares. Or at least, until they need to (e.g. for official documents, for business, etc...). So it ...


8

In layman's words: They do. In this wikipedia article you can see there are lots of programming languages/compilers/interpreters based in languages other than english. Here is a sample source code in Linnotte, a French-based programming language: nombre Fibonacci : a est un nombre début questionne a sur "Entrez un nombre :" affiche fibo(a) ...


7

First off, gettext is a good way to go, so don't dismiss if it doesn't sound easy at first; However there are other options as well that be useful to know. Before explaining that let's take a look at your suggestions first: In your array-way of doing this, you have a pretty much straightforward solution. The good thing is that you can store your ...


6

What you are asking about is referred to as internationalization (i18n). You would have to consider UI layout to allow text from different languages to fit properly and to allow controls to dynamically shift positions to make room for this text. You would also have to account for locale-specific date and currency formats. If your application requires a ...


6

In some cases they can be different for example if you live in a foreign country and you want to change the UI language to a language that you are familiarly with, but you still want to use the date and number formats of that foreign country like: <globalization uiCulture="es" culture="en-US" /> The other way around if you are doing business with an ...


5

Most of the World uses , as decimal separator (green on image below). I don't see why majority should adapt to minority.


5

Put simply this, like many process questions, comes down to a cost-benefit decision. Quite a few of the practices described in the agile processes are about reducing the time spent in the "last mile" - this is an example of one of them. Unlike practices with other aims (quality, correctness, etc), the practices aimed at ensuring you can release the product ...


4

Yes. If we get a string we can definately reverse each character. The problem as Jon points out is that does the reversal make sense and does it conform to language and cultural rules, characters, and encoding. The water gets murky the deeper you go. If you are doing any type of string manipulation in C# use the Invariant culture when writing and ...


4

Take a look at this recent BBC article on the effect of spelling mistakes on sales generated by websites. Now, imagine that rather than a couple of spelling mistakes, the whole page is full of errors. What effect do you think that is going to have? Online translation tools are intended to help people read things which aren't aimed at an international ...


4

I've had very good success getting applications translated into a wide variety of languages (from Spanish to Hebrew and Russian - overall I managed more than 22 languages with these methods) by providing users with the ability to translate the program. This can either work like: Provide users with the ability to customize the application they have, e.g. ...


4

Generally you will not need to duplicate every unit test. You should identify what is really dependent on the locale (good checklist is here). Many things related to internationalization are subject to the higher level of testing then unit-test. If you are dealing with the string data that may come in different encodings, then you can utilize "data driven ...


4

Who are the real customers (as opposed to beta users)? Do they expect fully translated text? If the idea is to let the product bake for a few sprints to get feedback, then you can defer translation so that it is scheduled to arrive in time for final delivery. Otherwise, translate for every sprint; that way the work is "done". If it needs to be changed ...


4

Apply the "potentially shippable" rule as far as it makes sense. Use your common sense where it doesn't. (Common sense is sometimes called "rule 0" in agile) A team should avoid to commit work that is beyond their own power. Translations typically rely on translators outside the team. So the team shouldn't commit to that. In short: put in your definition ...


4

Localization and internationalization facilities exist for applications, often as library functions (e.g. Posix gettext). In the 1960s and 1970s several programming languages appeared in France with French keywords, e.g. PAF and LSE. However, it makes much less sense to localize the source code of programs and scripts (e.g. by changing keywords of ...


4

My question is: what other languages, if any, implement a similar paradigm for programming language internationalization? Fortunately, as far as I know, there are none. I fervently hope it stays that way. Localisation of anything important in a language or an API or any of the various defined symbols and strings that programs depend on, every time I've ...


3

I think I saw a proposed alternative format for thousands separator: 1'000'000 Although I don't know if there's a proposed decimal separator. I don't think localization is unnecessary right now. Usually all of us programmers, and people who wander often in the internet are very likely to be aware of english number format and measures, bur there are lots ...



Only top voted, non community-wiki answers of a minimum length are eligible