It’s probably never going to work in German
increment.com
increment.com
That feels like the wrong way to convince people. Having worked with i18n and l10n before, it absolutely is extra, takes longer, and on a very large team can absolutely bump up to an additional engineer.
Producing dynamic strings becomes much more involved and requires more testing. Handling RTL languages and layouts is another layer of things to worry about and test. Giving the translators sufficient context for each string is plenty of work, as is adjusting the design to fit strings that are longer than you'd expected. Etc. etc.
That isn't to say don't do it. It's just yet another cost-benefit calculation taking into account ease-of-use and market size. But pretending the cost isn't there doesn't fool anyone -- it just makes them think you're bad at producing realistic estimates and makes them less likely to trust you generally.
For example in https://blogs.msdn.microsoft.com/oldnewthing/20030929-02/?p=... Raymond Chen talks about how when a taskbar is docked vertically, the "Start" text disappears because while you can rotate English text to appear vertically, other languages are more problematic. In the same post, he also states that internationalization is why you have "1 folder(s)" "2 folder(s)" instead of "1 folder" and "2 folders".
Developer-wise you supply the "n" to the translation function.
We came to the conclusion that we could have spent a month implementing a tool for the translators and probably saved 2 or 3 months of back-and-forth and screenshotting.
While it's technically practical to architect for translation and internationalization, it's frequently out of scope for a first version of most products. If you're selling something for the US market, it's difficult to justify bumping your time-to-market to add support for something that you won't need for your first release. And that's not getting in to the additional complexity that it adds to the software system to have that support.
It's difficult for me to take someone seriously when they're making statements about internationalization not requiring any additional resources. It just tells me that they have no experience in any of the fields where it does require additional resources. And reading the article, I can see that the "experts" are all from web development companies where there's a framework that exists and you don't have to worry about justifying your use of Software of Unknown Pedigree to an auditor. Or where it doesn't really matter if your translation or internationalization framework doesn't work 100% of the time because it's unlikely to kill someone if a control on your UI is labeled incorrectly.
I don't think is the intended meaning of the quote. Based on the rest of his response it sounds like he's saying, "Non-English speaking customers matter just as much to us and as an organization the default should be 'support i18n from the start'." If your default is "we must support languages other than English" then it isn't really "extra work", it is just core functionality.
Security, privacy, or accessibility are also core features for some startups but they add more work. Hell actually an accessible website is easy for Google translate to automacily translate, you might avoid doing i18n yourself completely if you have limited resources.
This person is the chair of the internationalization team at W3C, their phrasing is intentionally trying to shift the perception from "extra work" to "default work".
Yes, it is more work if you ignore it but the person is trying to change that perception because inside organizations "extra work" is what you cut to make a deadline.
Today it pains me seeing Android and Windows devs hardcoding texts letter by letter whenever they need to do more than bare basics with text layouts or handle different Chinese locales.
I think where Qt/Gtk succeeded and commercial software failed is the accent on making localisations legible over them "being pretty."
At a certain point, no single engineer can keep up with it all, and produce working and maintainable code - let alone all of them.
Unfortunately, I'm not sure what the solution is here.
And performance. For the love of all that is pretty, do remember to internalize how to write non-wasteful code.
This does not mean that time is the only thing that matters, if you know that at month 6 you're going to launch in spanish - then you better look to avoid major i18n pain points, and think ahead to ensure that between months 3 and 6 there is a viable project to internationalize the product.
Internationalization is not a must if a single-language market is large enough for you. Tacking it on later will be painful of course. The same with security and accessibility, not having it may be acceptable in some environments.
Some i18n parts can only be reliably done once the applications is practically done and will necessarily blow up the required time.
A lot of times I get designs that look great with just the right amount of lorem ipsum in there but fall apart when the real content with all its variety and imperfect.
I think sometimes having to step back and generalize helps avoid specific problems.
I am Russian living in Switzerland, where people speak French, (Swiss) German, Italian and Romansh. I often travel to Barcelona, where people speak Catalan and Spanish. I don’t want any of these languages, I want all sites in English.
This is hard to achieve, as nearly everybody uses geolinked internationalization. It is awful. Especially here in Switzerland — almost every site tries to show me the German version by default (most of Swiss cantons are German-speaking, but mine speaks French).
Please just use English. Or if you must, enable language selection in users profile, do not try to detect it from geographic location.
But yeah, sites should have a way to sticky it once you have a profile and log in etc., but most users aren't going through that path for most sites.
They shouldn't have to fiddle with language settings. That's a tech failure.
You only need "fiddling with language settings" if you want something other than how your operating system is configured.
(Of course, you'd still expose the option to change this from the inherited default in the browser's preferences)
Most commonly they'll use an English OS for whatever reason and want to browse websites in their local language.
This is why you'll find that a lot of website language detection tends to discount English specifically. I.e. if your Accept-Language is "en" in France they'll probably give you French, but if it's e.g. Japanese in France they might think that's a "real" setting and give you Japanese.
Or, as I'm sure a lot of non-English speaking technical users here can attest to, they like to use an English OS UI on their laptop or phone, but speak the local language and want browsing a local website to just work. Non-technical users do that too, but have no idea how to tweak their Accept-Language independently from their OS language.
Really, do armchair commentators here think that programmers at major websites like Google that have enough data to know how people are likely to switch languages from the default haven't thought of just implementing what's literally the most simple thing you can do, which is to obey Accept-Language?
Basically `en-US`-only Accept-Language seems to be treated as "perhaps default language of a device and user didn't change it, we should not rely on it" and IP-based localization is applied in that case ("in France? ok show French version").
And browsers could make the override easily discoverable in preferences (at least on MacOS, app preferences are in a standard place from the user's perspective: File -> Preferences).
Guessing what language a user actually speaks is not straightforward.
It still doesn't make sense to use the same behaviour in Europe, where in my experience the OS language is almost always the preferred language of the user. (Especially on a mobile.)
I've tried en and en,da, but I almost always get Danish in Denmark and the local language if I travel.
1) Inertia. The Indian market is largely English-speaking, so many products came to market in English first, and now people are used to it.
2) Colonialism. Using English still marks you as "educated" and "more respectable". So, to not look like a yokel, everybody sets their UI to English. Content, which is more ephemeral, still is successful in Hindi/Urdu.
3) Localization is hard, and often the English localization is better - but content isn't localized, its first language is the native language.
IIRC, most browsers do default to the OS language. It's just not the correct choice in all cases :)
Websites doing weird things is websites trying to be smart and failing on top of that.
If for historical reasons Accept-Language needs to pass through the OS locale, which is wrong and can't be changed, why not just standardize an optional User-Requested-Language(s) header, that only appears if the user explicitly sets it in the browser?
The current solution is awful and improving it doesn't seem like rocket science but there seems to be zero interest in fixing it. Stuff like this is why closed platforms like Facebook probably have a brighter future than the open web.
In the USA for one brand they sell different products to the UK than the USA for another brand they use a different brand entirely in the USA to the rest of the world.
There are also legal reasons why you might need to geo target.
I mean, they could still show me the UK-only site if they determine that I am in the UK, but show me the UK site in German, with German units, dates and time codes, etc., because that’s what my browser might tell them that I prefer.
Ok so you want German content in the UK do I show you the German locale and products legally available in Germany? the UK locale and products legally available in the UK translated into German?
And do I age gate you based on German law or English what happens if I show you a BOGOF offer do I obey German law or English What happens if google messes up. What happens if your in Quebec and I accidently show you an illegal competition What T&C's do I show you
But the main problem what if google gets confused and messes up and lands you on the wrong potentially problematic url - do you want to be the developer explain to the General counsel why the company is in trouble.
Sometimes I can't buy books or movies or games in the language I prefer (English), I have to wait for (usually poor) localization. The number of times I have saw the dreaded "this product is available only for the residents of US and Canada", I can't even understand, why my money is not good enough for that.
It's likely not that they don't want your money, but rather that they don't have the legal right to sell you a piece of content in exchange for your money.
The way copyright gets licensed per-country is pretty dumb in the age of the internet, but it's not correct to blame individual retailers for this. They would love to have a larger customer base.
I imagine this is mostly a legal gray area that no one cares enough to litigate. The number of people going to foreign sites to paying international shipping prices and wait weeks for their products to arrive is too small to worry about.
Then we get to the main menu which is English only, regardless of the language you selected. The movie itself is in English, subtitled in at most 3 languages, reachable only from the remote control button (ignoring your first language selection), and sometimes these 3 are different from the 6-8 copyright ad languages.
It's fun to see the copyright ad in Russian or Italian.
It’s infuriating to travel overseas and, without changing anything about my computer’s setup, having to deal with web sites overriding my chosen preferred language. Please, just stop doing this.
For the cases I see it is technical minded people that speak another language than Danish, that buy (or inherit) a laptop with Windows on Danish, so the browser infers its settings from the operating system, and now you can no longer trust this header.
But it might be just as wrong as guessing language based on IP-location, so there are not really a good out-of-the-box solution, so every website will have to build their own selector maybe with input both from the browser headers and from the IP-geolocation.
Chrome makes sure to suggest translating a page. Why doesn't it suggest to change my language preferences as well? Rather than just suggesting 'ignore translating for this language' as the alternative.
Rather than defaulting to English, why not default to whatever the browser's OS is set to? At least for JS apps, there's navigator.languages, and there's an Accept-Language header for both language and locale for standard server-rendered plain ol' websites.
Geographic location really does seem like the worst possible option to use.
The right solution I think is to make a reasonable guess and then allow the user to control it. None of these guesses are going to work for everybody on their own.
I work in an international organization in Czech. The local IT team installs Windows in the local language, then sets it to English (which is fine, mostly). Half of our employees don't speak Czech well and changing weird tools to English is a constant and difficult hassle for those who haven't learned the basic words yet (printer drivers and small open source tools are the worst).
Browser language can be difficult as well. Half of the population is bi- or multilingual.. choosing which language to use for a browser (for me: German or English) affects how well Google Translate works - which I use daily. (Somehow, big American companies don't get the idea that people can live in multiple countries at the same time or speak multiple languages).
That doesn't make sense. If the OS is "set to English", how do programs know to run in Czech?
Anyway, we just install Windows in English. (British English, so the dates appear the right way around and there's a chance of metric measurements.)
Yes, it would be preferable to have the installations in English initially. But we weren't always international and not all of our employees speak English well (this is common for older people - former UDSSR ..., admin staff and people in roles that don't require a college education). There are still legacy tools in Czech, fully Czech teams (who obviously work partially in their native language), a need to work in the local language (procurement, legal topics,..) etc. It's just not economic to completely enforce English.
Growing up, I learned that Czechoslovakia was part of the "Eastern Bloc" and we were never taught much about the individual countries and their peoples. Moving there taught me a lot more about the country and its neighbors' history and culture, and also my own culture.
Although I'm not sure about "Central Europe".
This term predates the Iron Curtain.
i have no problem ignoring central Europe when people will be consistent about geography especially regarding Austria, but since nobody it's putting Austria in eastern Europe then we have to live with Central Europe, after all Europe ends at Ural, so calling Czechia eastern Europe it's quite a stretch
As a silly American, can you explain how you live in multiple countries at the same time? Do you mean you, for example, live in one country and work in another?
My wife is a scientist, so we travel a lot and change places of living. So far, I lived in Russia, Switzerland, Italy, Spain and Denmark, and about 2 months in the US.
Even Berlin, which is pretty far from the Polish border, have commuter trains to Poland. That's right, the Berlin metro ticket will take you to Poland.
Now, I have a job with 90% business travel between two countries (but same cities). Have small apartments in both. It is just more economical and comfortable that hotel room living.
There are also often reasons not to completely move to a country, even if it's close (different tax situation, having to switch social security systems which affects your retirement, wanting to stay inside a certain social security systems which requires a place of residence..)
As someone who develops multi-lingual web sites, I can tell you this doesn't work.
It should work, but it doesn't. We test with actual users in their home environments, and... people are messy.
- The vast majority of our users accept the default language (English) when setting up their computers, even if they don't speak English.
- In households where the parents are immigrants, very often the children set up the computer, so it's set to English, which is the child's preference, even if the parents don't speak English.
- Poor households often share a phone or a computer, and each person may not speak or prefer the default language that was chosen by the person who set up the computer.
In the idealized world that Silicon Valley imagines where 1 person uses 1 computer with 1 owner and speaks 1 language, it's fine. But in the real world, it's just a mess.
This was in response to a comment chain suggesting that geofencing default language is a bad option, because of how inaccurate it can be.
> - In households where the parents are immigrants, very often the children set up the computer, so it's set to English, which is the child's preference, even if the parents don't speak English.
I fail to see how any default language setting will help in this scenario, assuming they've immigrated to an English-speaking geographic region.
> - The vast majority of our users accept the default language (English) when setting up their computers, even if they don't speak English.
I suppose this is one scenario where geofencing might work better than OS default language, but then again, based on my experience it's just as likely to be wrong. At least with English it'd be an interface they're accustomed to seeing, and would have better luck finding the website's language selector, rather than something more arbitrary :/
Of course it doesn't do much because sites do very stupid things like use geolocation.
In the scenarios you describe, it's hard to see how geolocation makes things better, as it has all the same problems, except for the "installed in English because didn't change the default" where you now have a chance (but no guarantee) you'll select the correct language.
And unlike configuring the language in the browser, there's no hope geolocation could even possibly work correctly.
>In the idealized world that Silicon Valley imagines where 1 person uses 1 computer with 1 owner and speaks 1 language, it's fine. But in the real world, it's just a mess.
In Silicon Valley geolocation works fine, but it's a terrible, terrible, TERRIBLE idea everywhere else.
(personally English is also often first choice, especially for tech documentation. Translations often seem to be an afterthought and can be pretty random. You need to translate randomly picked words back to the original jargon as best you can and hope you didn't miss anything. )
I assure you that in countries like France, Italy, Spain, etc... this is true but for a small percentage of the population.
It makes no business sense for a company not to localize a website or a service, if your market has a substantial number of non-English speakers.
But yes, for my own convenience (unironically), I wish that every website had a base English version that you could access with a single click.
For example I was looking at some Microsoft webpage with troubleshooting or API information (can't remember). By default it was shown traslated based on my location, but there was a prominent "Read this in English" switch at the top. Top marks.
Yes, the english level is terrible in my country. Unfortuntly, translation is imperative if you want to enter the market. Which sucks, because it's a huge waste. There is not benefit to it: a UI is not like a book, you don't lose some quality in translation. In fact, most UI are worse once translated because english is a short and to the point language, which is what you want for buttons and menus.
I could see that being more common in the early 2000s, when it was probably easier to find a pirate version of Windows in English, but now...?
For some it's because they're so used to the non-English versions of web pages being so bad or abbreviated that having an English page they can half read is often better than the truncated "good enough" version provided in their native tongue.
I have chatted with people who work on internationalization about IP based detection. The explanation I've always heard is that `Accept-Language` is all but useless. For a significant number of users the value is, incorrectly, `en-US`. Because of how unreliable `Accept-Language` is, IP based detection is unfortuantely has a much lower false positive rate.
See the "Change region" menu at the top of https://www.nintendo.com, or the obvious "English" selector amidst the gibberish at the top of https://www.ikea.com/jp/ja/ .
Given how easy and robust this is... what exactly is the problem with using Accept-Language as your first guess? Maybe if more sites honored Accept-Language, users would start setting it.
Technical users in Switzerland/Japan/wherever who want to see English pages can set their header to "en-GB" or "en-AU" to avoid getting caught in the heuristic.
Edit: I'm sure it's much more complicated than that, of course- l10n isn't my job and I don't want to be this guy https://xkcd.com/1831/
I mean if my Windows or my phone/tablet is set to German, showing me a German UI, wouldn't then the browser use that setting for Accept-Language?
I can't understand how this would produce unreliable results unless there were some serious bugs in browser support (hopefully in the past).
And that's in Switzerland where people have a lot of disposable income and thus must be more attractive to advertisers than most places, despite being relatively small.
If I search for "std::vector", I get https://de.cppreference.com/w/cpp/container/vector as the first result and https://en.cppreference.com/w/cpp/container/vector as the second. The German translation is just awful and completely trips you up if you know English. I don't understand why it keeps pushing them up.
(It broke auto-suggesting search terms in the omnibar, but the actual search results are again sane.)
Of course, Google goes to great lengths to ignore this hint.
Fortunatly with Linux, I usually can get the proper message with "LC_ALL=en_US.UTF8" if I can, and desire, repeat the exact same error.
Now I understand that this is done for openess and diversity. But technical terms should not be translated. I'm french, and I accept that english has won as the business language, and the IT language. Let's move on.
Honestly, we are wasting humanity potential for not having a common language. I really, really wish we would all learn english as the second language, and that all laws, forms, labels and signs would be translated to english everywhere (as an addition to the local lang, not a replacement). It's an imperfect language, but it won half of the world, and the other half will have an easier time learning it that us learning theirs. Plus it has a very simple alphabet, and is already used for science, business and international politics.
At this stage, I would gladly agree for all the french books and movies being burned and lost forever if it means one language, any language really, becomes magically the main one for humanity. We have too many communication problems.
But since magic doesn't exist, what about getting off the ego train and just adopt the imperfect status quo and make something awesome with it for a change ?
Could be worse. The future language could become a mix of emoji and markup language :) ;) :D
You're saying this like it isn't already happening.
Noted reviewer of science fiction and fantasy.
Fun fact: russian language had no 'f' sound prior to cyrillic alphabet which has a letter for it.
Heuristically, the "rule" passes the eyeball test: philosophy, physical, photo, phrase, philanthropy, phobia, phage, phalange, phalanx, phallic, phase, pharmacy, phantom, phenomenon, phone, photons, photosynthesis, physician, physique, phytoplankton, so on and so forth
The overwhelming majority of these words are greek transliterations https://www.thefreedictionary.com/words-that-start-with-ph
(in fact I am having a hard time finding even one word that isn't -- i think "phreak" is the only one I can find)
Brings up the point, 'internationalization' as a concept is utterly broken. People speak languages not countries. Also very likely that the non default language users may also be most in need.
Probably should be a list of falsehoods programmers think about language.
[1] Local school district I think at one time listed 43 languages.
* Netflix: full site in English, subtitles (and audio tracks) for all shows available in German, English and several other languages. Only a few edge cases where the source (written) material appearing on-screen has already been hard-translated in.
* Amazon: will let you turn on full English experience, up to and including...English speaking support (both written and verbal). This is truly the cream of the crop in terms of quality of experience.
I really appreciate any German-oriented site that offers English as a possible language in spite of knowing my location. And if somewhere on your servers you already have English available, you would be silly to not make that available world-wide (where it makes sense).
Of course, these are two of the biggest tech companies, so perhaps that speaks to the cost of internationalization.
Turns out that I couldn't find anyone who ever used the non-English messages. Everyone preferred the English messages, because everything else with programming was in English.
So I abandoned worry about that, and haven't heard anything about it since.
(Though the compiler uses UTF-8 strings for all text.)
MSVC on the other hand always includes a warning/error number, so there less issues talking about a particular error independent of language.
Excuse me, sir. I would rather prefer it to always be German. Or French. Or Spanish. Or Italian.
Not everybody speaks English, so it's perfectly fine to try and guess the person's language first - and allow to change it later.
Also, once the UK has left the EU, English is not even going to be an official language here anymore - so I can see no reason why English should be the default in Europe.
Best practise of a website ( eg. Google) don't suggest redirection based on an IP, which means a correct URL or cookie would suffice in most cases
As in 90-95 % of the countries in the world..... https://i.stack.imgur.com/43dwH.jpg
They are all languages used in Belgium, English as a developer.
I've gotten it pretty productive. My database doesn't require extra tables and it's fully customizable per client ( 1 extra table). Because my clients, also want to label things differently according to their use-case. I control the translations ( the default and custom ones). As long as it's logical. I agree. I stop them when they don't use general words and try to create another use-case for it. That would break the app functionality or changes expectations ( eg. Stupid example: Label Completed as invoiced because that's their end state of a ticket). Then they need to adjust to the application workflow.
I have custom parsers for languages stored in the database ( description is a multilingual column in the database for example).
According to what I know, I'm the only person I've met who goes that deep from the start. And I have real advantages with it, as long as it's an application that "my clients" own clients use. Language doesn't stop and culture, but it's also niche and even "company behavior" related.
For integrating multiple languages...
If you live in America, it's an after thought.
If you live in Belgium, it's the first thing you run into.
If you're an SMB, you need to go deeper to differentiate.
To me, the title only makes sense to me when you're mother tongue is a dominant language in the world ( reach for the stars).
What I haven't run into yet is right-to-left and Arabic, Chinese,.. ( non Latin based languages) currently.
Using USD, pounds and EUR is handled within the frameworks I use. Dot Net uses it extensively and yes, I use resx files ( which I don't like a lot, but I've wrapped them and use them as default translations of a language, clients can adjust them).
I don't need translators in the start. I can handle French, Dutch, English myselve mostly. My German isn't very good though.. ( which sucks because of the title here :p )
Ps. Yes, Changing translations is billable per hour.
My product has many competitors. In the US, the UK, and other English-speaking regions it is a struggle to compete. But our team has experience with languages and translation so that gives us the edge in markets outside the Anglo-sphere.
A "Cart" is a "Warenkorb" or an "Einkaufswagen" and both can't be shortened at all. Oh and did you know the correct spelling for a price would be "1.999,00 €"? (with a space (which even germans find ugly), comma/dot swap and the currency behind the number).
I think on most shopping sites, the cart button has both an icon and a label anyway.
> These meanings may not even make sense in the specific context, but with Kruger's Fact of Life #1 in mind ("We don’t read pages. We scan them."), the first connotation is actually what matters.
The first connotation depends on the context though. If you add an icon to the cart button and put it in the top right corner where people expect it, I predict that people may find it harder to identify the correct meaning than if you used "Einkaufswagen" or "Warenkorb", but only minimally.
To be fair, German is just a hard language to abbreviate, the compound words really tend to work against this. I'm not a linguist, but I've always wondered if the word length is one of the reasons English has borrowed so few German words relative to the romance languages.
The Google Images results for "Wagen"[1] illustrate that "car" is by far not the primary meaning.
The question is, though: Unless the specific icon is reasonably well-understood or visually striking, why would you even add an icon when you already have the label? It's just more noise for the visual system to parse.
My original point, however, was that if you can't use more space for your German translation than the English word "cart" takes up, I would still rather understand the cart icon than the mentioned abbreviations. (Obviously, it would be preferable to solve the underlying issue of a fixed layout.)
only very low key ui actions like edit I tend to keep without them.
I totally agree about the hamburger and (not just) old people. Just the other day I had to decide between two proposals with and without icons and clearly voted for the one with icons.
Was this ever released publically/does anybody know the title or ISBN? Would love to pick up a copy.
https://www.w3.org/2007/02/japanese-layout/docs/aligned/japa...
On the other hand, except for Russians (and the dozen or so Canadians and France which owns land in almost every timezone on the planet) pretty much every country on the planet has just one timezone. So creating an app for the US market brings that nasty problem.
At the time I got a free sample of their 5th issue - Programming Languages - and asked about getting a copy of previous issues and subscribing to future ones but never heard back from them.
And I'm not sure what you exactly mean by "did it right". i18n and localization support is now in every OS and almost any UI framework available today.
It was really great for its time but I wouldn't know of any feature it had that isn't standard today.
To the point, I think the way the Amiga let a third party provide a localization file was easier than in todays OS more end user friendly. It was open and standardized across the OS. Not every app was cooking it's own format.
Another pet peeve of mine: using lazy abbreviations like "i18n", "w/" or "w/out".
These aren't even understood by many native English speakers.