This is why my company decided to go with a logging/messaging mechanism that stores messages by ID with parameters. We can get a log file from customers in France who see the error message in French, but we can read their log file in English because it's in a neutral format.
This isn't a panacea, as it means that there's a bit more work involved to integrate with tools like Splunk, and we obviously don't log to anything like syslog. But it makes it easier for our support people to support customers who prefer to see their messages in their native language.
It's sort of funny how that works; older computer systems only provided numeric error codes to save memory. Then Moore's Law caught up and we went for all-natural-language messages. But given the multilanguage problem, now it looks like it's actually more usable to provide numeric codes. (in addition to natural language)
On Windows, if you use the new manifest-based Event Log APIs, it will automatically translate Event Log messages for you based on the language (you provide the actual translations in the manifest of course, Event Log just knows how to decode the correct one). IT Admins who open up a log generated on a French-language machine will see the messages all in English, not French.
Why would your customers even need to see the log file? For general errors we have a language table that spits out the local copy to the screen. Common errors are translated (~100). Behind the scenes, the logs are in english for internal errors, and the language of the OS for everything else. We rely on .NET so exceptions are tied to the OS.
We have some older components that do spit out error codes. (like COMS, error -84413994005!) Sometimes the codes aren't specific at all and I have to install a debug version to get the information I need, or rely on a graybeard programmer to help me out.
These days programs are far too complex to rely on a limited set of error codes.
Our logs aren't just error messages; they're all sorts of messages that the user of our (backup) software may be interested in. I'm trying to figure out ways to reduce our messages so that our customers only see the details that they will really be interested in, but there is a large subset of our customers who want to be able to review how their backups went (and not just with the email summary that we send, which is generated from the log messages, BTW).
Our tracing facility, on the other hand, is purely English.
One helpful company could actually publish that language table, so that with a Polish message, you can find out what is the corresponding English message and use Google with that.
I know the blog is to help people learn English, but isn't that antithetical to helping non-English speakers learn how to use computers?
Shouldn't we instead be contributing to non-English documentation so that even those who are too poor to learn English, can still learn to use a computer? Ubuntu is doing this beautifully.
Sure, but that wasn't the point of the article. It was saying that people who have had a similar problem will post in tech forums, and they will xquote the error message in whatever language their system is in. English language tech forums will always out-number other european languages, both because of a larger user-base, and because europeans often themselves run english software themselves. However good documentation in foreign speaking languages improves, this won't change. He's recommending to someone who can manage to use English language software to go ahead; it may be uphill to start but it will be worthwhile to do it.
I am English and live in a Spanish speaking country, and recently purchased a new laptop which had vista pre-installed in Spanish. My Spanish is good enough to not have problems using the software, but I know exactly what the article author is talking about, I've had this problem many times. Thankfully because i have a history with using English language windows so I can often guess the exact wording for the English translation; but others would not.
I'm Polish, and I support using native languages, but it's fact - English is the lingua franca of software.
About Linux - internationalization is done right here, in normal day to day usage it isn't needed to know English, but still the problem is with troubleshouting - the easier to google error message the easier it is to solve problem, and error messages in Polish are harder to google.
In old times every error presented to user had an error code, that was constant across locales. I think this is very good convention - it helps with searching for informations about error without enforcing people to use software in locale that is not their native.
BTW - other good convention for error messages is to include in every error message unique string that is also dumped to logs. That way it is later easier to match stacktraces in log files with error reports from users.
Też jestem Polakiem, ale zyję w San Francisco USA.
If you post your error codes online in Polish, then others can find it in Polish... meaning you lower the barrier to entry for other Polish users (one less thing to learn).
The answer is not to require everyone to use English, the answer is to post more about computers in your native tongue.
No, everybody should realise as early as possible that not knowing english is damaging their ability to participate in anything international.
Not knowing english means no access to science or post graduate education, no access to international media, no access to hacker news or important blogs, no access to international job markets or even to jobs in big domestic corporations.
Not knowing english correlates with being poor, uninformed and excluded. Localised UIs are evil.
That's why I write my code (var and function names, comments) in English. First, it meshes nicely with the rest of the language, keywords specially. Second, the most important docs, books, forums, wikis, mailing lists, etc are in English.
I wouldn't say the most important stuff is. Definitely the latest stuff is available in English first. For software it can be a few months. For books it can be a difference in years, and that's if you can find the translated version at all.
I'm from Italy and I have a macbook with italian keyboard. Still I switched to the english layout because software and usability is designed for english people and english keyboards.
In Eclipse IDE almost every Polish accented character "Alt + l, s,c,o,..." is made into keyboard shortcut, so every time I create a new workspace I have to manually change these shortcuts to other, not colliding with my language.
And we do translations with Eclipse, so local characters are important.
But that's the way it is, at least we don't have two kinds of I letter, like some ohter countries :)
Actually you should switch to software that keeps localization in configuration space instead of code, allowing you to switch languages on a per-user, per-program or per-session.
Having user-targeted messages hard coded is a bug.
Yes, it is. However, if you don't include search keys in the text presented to the user, it isn't going help when you get a dialog that says (FTA):
Sterownik ekranu przestał działać, ale odzyskał sprawność.
That's missing something at the beginning or end that allows a search engine to say "aha! this is looking for this error message, which in English is this".
This is a hard problem, at the same time; the translated log files[1] from work look something like this:
2009-12-13 14:21 BACK-E-00234 <text here, with optional parameter values>
The key piece is "BACK-E-00234" (it's from the BACK module, it's an Error, and it's message 00234). When we have messages to display to the user in a dialog, we don't show that key information (or have a way of getting to it) because it's ugly.
It's unlikely that the message mentioned in the article was hard-coded to Polish; instead the author is arguing about users and the searchability of non-English error messages. To increase the searchability, you need to include key details (e.g., "BACK-E-00234") that make the message significantly uglier to read. One possible way around this is to make sure your error dialogs are selectable/copyable (maybe put a button to do this), but on copy silently insert the search key details.
I'm not sure that a button for search is the right way to go; it would work, definitely, but at the cost of cluttering your UI. Insertion into copy is probably a better idea, because you may be emailing the error message to a systems administrator instead of searching it.
Actually this is something the search engines can and should do. Offering this on Bing would be a very smart thing for Microsoft to do. They'd have a nice little competitive advantage from their easy access to the bundles of localization strings. (I doubt if it'd slow Google down much, but even if Bing were the best search engine to use for only a few days after the release of a new MS product that would really help them to get people to try Bing.
Years ago when I had nVidia graphics cards, their control panel always displayed the language of your computer's country settings, you got absolutely no option of selecting the display language yourself.
Needless to say, the controls for overriding anti-aliasing or fog-table or z-buffer settings, translated to my native language, was completely incomprehensible. I still don't understand why they bothered.
Say 消除鋸齒 to computer geeks in Taiwan and they'll understand it without difficulty. Say it to non-computer people, and they won't get it... just as English-speaking non-computer people won't understand "anti-aliasing".
Assuming you're not talking about languages used by aboriginal groups who don't have computers, how could you translate a term "well" and yet come up with something that makes little sense?
I guess some languages are different than others. Some cultures tend to translate pretty much everything (I noticed that in spanish), others accept foreign neologisms.
In portuguese we tend to use the english words for technical terms and jargon, sometimes slightly corrupted to fit the grammar. Terms like delete, debug and commit are conjugated in as if they were regular portuguese verbs and used frequently even with acceptable translations existing. Delete in particular is quite common even among non-technical people.
For many technical terms, specially newer ones, I can't even think of any acceptable translations without it sounding silly. Most of the time they are left as-is and you need to know the jargon to understand the translation.
I much prefer to read technical documents and books in english.
I work on a large/popular open source project and the one thing we get requests for more than anything else is multilingual support (which we'll be adding in the next major version). Everyone seems to think it's so easy to add with the inclusion of one language file to translate the system. While it's true that this can be used to translate the core system (and is probably what we'll do) our software is designed to deal with large quantities of user-generated content, so we also need ways to support multiple translations of that content, handling fallbacks if the translations don't exist, switching between them on the fly, search indexing, making our UI fluid enough to accommodate different lengths of text in navigation, etc. The list goes on. None of this is particularly difficult, but there is a lot to consider that, judging from our user base a lot of people (many of which are developers themselves), just don't think of. Proper multilingual support can be quite tedious.
Typically on a windows box they're in resources (not hard-coded) and the resources pointed to are toggled by the current culture. Unfortunately this usually works on the premise that you change the language for the computer in one go as opposed to being able to do it per application or per session.
I use Ubuntu in French and I find the translations to be in a pretty good shape. When I get an error message then I just use the command line to launch the same program in English: LC_ALL=en_US program. Works pretty well.
Recently I switched my parents to a Romanian version of Ubuntu and I was pretty disappointed with the state of translations. Bad wording, inconsistent translations, partial translations etc. But English is not an option for my parents. For now I try to identify translation problems and contribute patches to fix them.
Hard to agree as people from other countries may poorly understand English.
That's a big problem to learn computer in foreign language (If you had context menu with items: Afgdfguw, Eetgreg, Uga, Boo, which would you choose?)
If problems occur then, anyway, regular users are not those who would try and would fix them.
For an advanced user, sure, use language you want. And if you choose your native language and if you can't find a solution to your trouble, try different keywords. Or reinstall nVidia driver in english version.
English speakers will have a hard time to understand this.
And they do, However, in different contexts. Latin has been the language of (European) science long after it stopped being dominant in other respects. English can turn out to remain dominant in technological fields, specifically software, for a long time, even as other languages may overtake it otherwise.
"Chinese" is a special case, in that there are actually a large number of spoken languages (of which Cantonese and Mandarin are merely the best-known outside of the region) that share a common system of writing that is largely independent of the sounds of spoken language(1). Imagine, if you will, that a person could write something in French and someone else could read it as if it were Italian, Spanish or Romanian without a hiccup. I18n would be a much easier task if European languages were so encoded, no doubt, but literacy itself would become a much more remarkable accomplishment.
(1)A large number of Chinese characters are composed of a syllable radical which originally acted as a guide to pronunciation (say, "ma") along with a context indicator which would tell the reader which of the various "ma" syllables was being used. In the original written language, it probably made perfect sense, but language drift over time have left the system essentially arbitrary in most modern Chinese languages.
[EDIT -- tried to use an asterisk there, forgetting that paired asterisks result in italics.]
Good question -- and the answer is that systematic writing combined with widespread literacy tends to fossilize language, at least on the page. There is, for instance, a world of difference between written and spoken English, the written version being not too very different from what one might have expected to read in an eighteenth-century document. The vocabulary has changed somewhat, the modifiers less (ahem) magnificent, but the grammar (and the flow and phrasing) is essentially the same. In fact, it is really only semantic drift that prevents us from reading Shakespeare as easily as, say, Tom Wolfe. Even the spelling in today's written English reflects the pronunciation prevalent in the London area in the fifteenth century. None of us, though (or at least none of us who regularly interact with other English-speaking humans) would speak spontaneously in any way like the way we write. The situation is similar in other languages; in spoken French, for instance, one only hears the ne verb pas negation in the context of strong emphasis, the grammaticized pas having completely replaced the original negator ne in day-to-day speech. Only tweets, text messages and smilies will prevent English from being as static as written "Chinese".
Seems the author never try any software/website originally written in languages other than English. Then, the English version is usually awful to use or get help ...
And the issue is primarily due to the large online population and knowledge base of English-speaking people. You can find enough info about any topic if such population exists, i.e. I found a lot info about linux in German language, probably due to popularity of the OS in Germany.
Google does some automatic translation of common terms and provides an option to search for pages in different languages. If this feature improves, this advice could soon become obsolete.
Anyway, one reason for using English versions is that localizations are often rather strange and that GUIs or less well tested. It can easily happen that a text doesn't really fit into the space that was left for the English message.
Interesting that for debugging purpose only, the author considers that one should use the software stack in English only. I am sorry, but the wonder of humanity is coming from our differences. I speak French, German, English and Danish, each language allows me to think/reflect on different themes differently. I can express some concepts in German with one word for example "Schadenfreude" which would require a complete sentence in French.
Now imagine, you are deep into doing some work in German and you need to switch all the time between your "German" work and your "English" tools because your computer may crash and you may need to copy/paste an error message in a search engine. This is a usability disaster. I am really surprised that lot of HN readers are supporting such idea when at the same time the majority of people here have high praise for good design and usability.
You should use software in the language of its authors, given that you speak it, of course. This language just happens be English most of the time. Localization is, in my experience, almost always poorly done.
I speak two languages: English and Russian. Though it drives me crazy when I have to use software and especially cellphones in Russian - I can't understand anything there.
I'd say, everyone needs to know English, but I wouldn't like if majority switched to English as their only language. In my opinion, other languages help us to learn history of their countries.
Agreed. English is the second (or third, in my case) language to know, but it would make me very sad if everyone started using English in contexts that don't require it.
> ...using English in contexts that don't require it.
Yes. But I would think in the information technology domain, most of the entities don't translate very well. For example words like 'daemon', 'driver', 'segmentation fault' etc. these acquire a certain meaning that just cannot be translated easily to other languages. So you end up with half-half type mix, half of the words in English half in the native language. It ends up sounding silly.
I am the same way. English is actually my 3rd language. I learned English because I had a ZX Spectrum computer when I was growing up and most of the programs and were in English. So I learned English so I could understand my computer. It turned out to be very useful to know Enlglish later on.
So I hope this doesn't sound insensitive but I would rather everyone learn English, I think it will just make everything a little easier. It is like having a common API between people ;-)
Heh, I moved to Poland three months ago from my native England, and the one thing that's really helping me with the language is setting my Windows installation to be in Polish.
Note: I guess this step isn't necessary if, unlike me, you don't suck at learning languages ;)
You are braver than I. I originally had a french PC. I gave it a solid go but having to translate errors to english, then try to translate it the specific english, then trying to translate it back to french just slowed me down immensely. It was faster to install Windows [English] and keep the french copy in a container.
This is very true. I actually try to reverse translate lots of error messages back to English when googling for help. It's not always easy to get the correct wording however.
What is really better - is to set up google search preferences to search in English language, instead of auto-detected by GEO-location or your browser's language settings.
You will be surprised by the huge difference in search results when you forces google to search only in English.
Also try to read English language news instead of your native. You will discover, that world is much bigger than those biased and poorly translated articles you can found on a popular localized sites.
Now seriously: that's not a real reason to use the whole system in English. I do that (except for the keyboard layout, I love the Spanish one <3), but I don't think I anyone should ever do it if they don't really like/feel comfortable to. Translations are very good, so that wouldn't be a reason... and IMHO what the post describes is an acceptable risk (hey, you probably will get sorted of this, but will have to Google more than a few minutes).
This isn't a panacea, as it means that there's a bit more work involved to integrate with tools like Splunk, and we obviously don't log to anything like syslog. But it makes it easier for our support people to support customers who prefer to see their messages in their native language.