Skip navigation.

exploreopera

| Help

Sign up | Help

Posts tagged with "language"

I hate internationalization, Take 2

, , , ...

If you look back on my blog you can find a rant about internationalization. That's what it is - it's a rant and I feel strongly about it. I do find the way internationalization is done stupid and annoying. I find it silly that there are so many people that try to provide some diversity in their systems, in a way that even I find confusing.

But, let's be constructive. Let's clear some things up.

First about some semantic candy. Let's start with a narrowing down of the environment - we're talking about web systems here - community services, blogs, shops, corporate websites, and various other etcetera. In this scope - I'll call providing your service in a variety of languages Internationalization. And I'll call providing locality based information or services Localization.

Let's cook up some examples. In the scope of Internationalization - it's what we'd be doing with my.opera if the interfaces were to be translated into other languages. It's what Google does with their search, mail and various other services. In the scope of Localisation - it's what IKEA and ASUS do on their web-sites. you select your location and you get information about stores and products sold in the specific country.

Those however are not the same thing. Assuming that localization equals internationalization puts people like me in a weird position. To see where the IKEA stores are located in Oslo, what do they sell there and for how much, I need to select Norway and take a look at the corresponding version. However - it's all in Norwegian, which I have to admit - I've extremely limited skills in. So when I need details, I track the same product on a localized site for another country and read them there, in a language that I happen to understand. The worst case are definitely web systems that ask you to select 'location', when the only thing they really mean there is 'language'. The country selection in them does not change the data in the website - it just selects a different interface language. So when I click Norway, where I am currently located, they give me Norwegian. Nice, that's very cool for the Norwegian people. But not for me. And I'm sure that "select language" would do the same great job. I'm sure that people living in Norway are well aware of which language they're speaking.

I cannot stress this enough. Where I am, in this day and age, does not imply what languages I am capable of handling, in any way. Locale-based internationalization, whether it's IP-based, or Country-based drives me nuts. It's wrong for me - I move a lot. I take planes, I go to places, I change countries more often than I change hairstyles.

Furthermore - localization is not necessarily bound in terms of language in any form. it might be local services on neighbourhood/city/region/country/continent basis. How much do you want to bind your service to a specific group of people? In what way do you want to scale? How do you know that in 3 years from now you won't want to scale your services worldwide? You might be just that good. Let us honestly believe that you are. So in that case, how do you provide services in a way that does not stab your users in the back?

If you don't know - go the easy way. Do it in English. The web is a mess, where everyone solves their communication problems with using (even more) crippled English, Internet-slang and 1337speak. It works. Start from there. Not many things can go wrong. But - make sure you're running entirely in UTF8. You won't loose a byte, you won't notice a difference, hell - you'll make your life so much easier. Especially if you grow later on. And if you're not doing a site in English - it's even more important. You don't want your own locale to be getting gibberish on your page, due to some stupid fuck-ups your intern managed to do last summer. No wait, I'm being unfair. There's a good chance you fucked it up and then some poor lad or lass had to tear their hair off just for looking at what you've done.

If you're only local - it's apparent that this is not going to be the most brilliant idea. So do both - give a local version and an English fallback. People will appreciate it, including yourselves, sooner or later. But don't make English your orphan-page. Don't let it be a set of static pages that are not updated often enough, or contain 2 paragraphs of text, instead of the whole site. We don't like orphan pages. If you can't keep up with it - scrap it. Do not make-pretend. it doesn't give you credit. Be honest and be local. Just consider your locale's immigration policies and numbers though.

Next - scrap the idea of binding localization and internationalization in any form. You've a service that you provide to people from different places of the world. When you give them language selection - make it global. Unify your systems. Not only you give me the chance of reading the page of services you provide in Germany, in Russian, but you save on maintenance development and other annoyances, when you decide to scale.

Second - don't read my IP. It means nothing. Let me repeat - it means nothing. Where I AM has nothing to do with what I want and what i can process. It doesn't imply nationality, language abilities, interest in local services, or even where I am. I might be jumping firewalls through a proxy. I might be using Opera mini, where the request you get looks like a request sent from Norway, even when I'm in Peru. I might be on an Airport, wasting 2 hours between changing flights. I might be using TOR or browsing through anonymizers, because of various reasons. When you draw assumptions out of that information you're making them flawed. Statistically speaking - yes, the majority of the requests might be correctly interpreted. Might. Even statistically speaking, your error margin is continuously increasing. At some point it will go beyond a threshold that's good for you. It's just a question of when this approach will not be beneficial enough for you, not if.

When you automate - do not assume. You won't win anything. If you've the computing power to provide me a couple of pages and maintain your service, then you've the computing power to roll a couple of simple lines of code to give me the content the way I want it. Read what I'm telling you. If my accepted languages are English and Bulgarian, try to provide me with the content in the highest priority language I've listed. It's easy. Also - make abso-fucking-lutely sure you're giving me a clear and apparent choice to pick something else. Do not hide your language support like Skype.com does. Do not hide it - parade it. You've taken care to support a bajillion languages - for the love of the god, man - you've done a good job! Do not hide the results from me! If I am not giving you a clear choice of what I want - roll some more logic to find out. Let me select. Hell - use the darned IP detection then, if you're really that desperate, but do give me my choices in an obvious enough place.

When you expand and localize specific services and products - don't assume only people from the selected place will want them. Why limit what clients you will have? You already have 2+ languages you need to provide the same consistent service in - internationalize! Make them available everywhere. I want to buy an IKEA desk in Greece, from an Norsk interface. Provide it to me - you already have it all anyway.

Realize that if you're already doing all that, you don't have to be doing it wrong. It's even easier to get things right, when it boils down to your development and maintenance teams. You might even be saving yourself a lot of trouble, while at the same time winning big on usability for your consumers.

I hate internationalization

, , , ...

I hate *DUMB* internationalization, I really, seriously, fantastically hate it.

I hate google for it just as well as I hate thepiratebay for it. And they're some of the sites for humans - there are others that are unreasonably stupid.

I fail to understand who was the first person that came up with the brilliant idea to offer internationalized versions of their web systems based on the IP/host of the user. I'm sure it's convenient to easily catch the majority of the population of country X and automatically offer it version in language X, when they browse your site. But I'm not from country X, even though I've happened to live in X, Y and Z for the past few years and none of them were a place where I was fluent in the language. Sure - it's my own fault for not speaking it, but that doesn't exactly justify you throwing at me a page full of incomprehensible gibberish. No offence X, Y and Z - you're alright. The guys that made your page just weren't on a plane often enough.

And you know what - I don't even want the web in my native language. When I started using it there wasn't much in my native language. And I'm not even that old, give me a break. I want the web in English, I'm perfectly happy with that and I'll be juuuust fine, even if you don't throw me some language I've spoken for 4-5 years more than English. I have language preferences in my web-browser, that send those nice and convenient HTTP headers, but I've yet to see someone using them as they should. If I wanted the website in Zulu, I'd tell you so myself and I'd hope you can give me that.

Please, people, think when you design things. If you'll be throwing at me random pages, based on where in the world I might be at the current moment - at least have the decency to offer me an easy way to click and change language. Make it obvious. Put a picture on it, do something, anything. At least put the link for changing the language in something more visible and comprehensible than whatever you spell "language" in your tongue.