Live data from Hacker News

A Localization Horror Story: It Could Happen to You

search.cpan.org

91–100 of 257 posts

Re: A Localization Horror Story: It Could Happen to You

#91
As far as I can tell, the best tool for localisation almost nobody is using is http://www.grammaticalframework.org/. Licensing is a mix of GPL, BSD and MIT pieces.

It's a high-level functional programming language with a dependent type system specialised for operating on language ASTs. It's resource library, to quote "covers the morphology and basic syntax of currently 29 languages: Afrikaans, Bulgarian, Catalan, Chinese, Danish, Dutch, English, Estonian, Finnish, French, German, Greek, Hindi, Japanese, Italian, Latvian, Maltese, Nepali, Norwegian bokmål, Persian, Polish, Punjabi, Romanian, Russian, Sindhi, Spanish, Swedish, Thai, Urdu."

In essence, once it has the language-independent AST, it can produce output in all its supported languages with the correct tenses, genders, inflections, etc.

It also seems to have tools for assisted parsing, so you could have an english document and interactively parse it into the correct AST. In addition, the text can be parameterised semantically, so if you changed the gender of a person, that could propagate to all the correct locations and update the translations as required.

While it seems the upfront cost may be quite high in having to learn such a complex system, I think the benefits of having reproducible, high-quality outputs into n languages for free could make this highly advantageous in many applications.

Re: A Localization Horror Story: It Could Happen to You

#92
post #69

I wonder if it isn't better to generate the messages as an AST, and have a language generator, the back-end of a compiler really, that generates strings for each language. I'm sure there will be less edge cases that way. /edit: wow, downvotes.

Because that would require translators to become programmers.

Re: A Localization Horror Story: It Could Happen to You

#93
post #35

Earlier quoted context omitted.

That's an error only an amateur translator would make. Guess who makes free software translations... A professional translator makes sure to check the context of the translation, it doesn't go blindly translating sentences and words without context.

Ah, that's why Word 2007 ended up with »Keine Gliederung« (»no (document) outline«) for the setting where you can select a shape outline colour ... In all seriousness, translators make mistakes by getting the context wrong all the time; this applies to both professional translators and amateurs, perhaps in different severity. But in my eyes that's not really a problem of the translators, but rather of the tools we us…

> But I couldn't think of a good way that could retain context for the translator in a general case, or at least most of the time.

How about assigning identifiers to all strings, then adding tooltips for those identifiers in the application? So the translator can hover over a menu item to determine which string they are supposed to translate.

This requires the translator to exercise the whole application which is kind of difficult, as well, of course.

Re: A Localization Horror Story: It Could Happen to You

#94
post #75

Earlier quoted context omitted.

Yeah. I remember being a kid and HATING Polish translations of English games. Even though I barely knew any English playing any game in Polish just felt wrong. Nowadays I think it just felt more mysterious and interesting if apart from being difficult, the game was in a language I couldn't fully understand. But yeah, it contributed massively to me learning English, so it was definitely a good thing. But I also know w…

I think the poor understanding of English was part of the problem. We didn't understand , we just knew that you found what you need when you click "Insert" or whatever. To us "insert" didn't mean insert, it meant "That menu where you find an Image to put in your document". In our mind the English word and its native translation have semantically different meanings. I discover this problem a lot now that I'm older. I…

> In our mind the English word and its native translation have semantically different meanings.

Because they quite often have (I'd wager that more often than not).

To use your example, English "Insert" cuts through a different part of concept-space than Polish "Wstaw" (which is what usually ends up as a menu label). It's a fine translation up until you ask to insert a DVD - now you should say "Wsuń" or "Włóż".

And I don't think this is a problem. As I grow older I realize that this is how it should be. Personally, I think that the moment you stop mapping words from new language to the words of your native is when you actually start to be proficient in the language you're learning. Having mappings like "fork" -> "widelec" -> "" in your head is totally wrong way to use the language. "fork" and "widelec" are two different labels referring to two different areas of concept-space, that happen to intersect somewhere in the area where you think about eating utensils.

That's why I keep my internal monologue (and speech, if people I'm talking with don't mind) switching constantly between English and Polish - there are concepts I can express with one language that I can't express in another, and any attempt at translation feels like lossy compression.

(and then I get tons of hate for occasionally saying "robi sens" instead of "ma sens"; I know what the proper translation of "makes sense" is, but the Polish expression emphasizes 'sense' as a property of things while English shows it as something that can be produced, and sometimes the idea I want to express is closer to the English than Polish version)

Re: A Localization Horror Story: It Could Happen to You

#95

Earlier quoted context omitted.

An amateur error perhaps but hardly limited to free software. In a particularly expensive piece of enterprise software for the finance sector that was translated into German a form field was labelled 'Hauptstadt', which translates back into 'capital (city)' as in Washington, D.C. Now, this kind of geographic information doesn't make sense at all in financial software but the well-paid developer (who had to double as…

Or the classic: http://news.bbc.co.uk/1/hi/7702913.stm

See also: restaurant sign during the Chinese Olympic games http://craphound.com/images/translateservererror.jpg

Re: A Localization Horror Story: It Could Happen to You

#96
post #92
post #69

I wonder if it isn't better to generate the messages as an AST, and have a language generator, the back-end of a compiler really, that generates strings for each language. I'm sure there will be less edge cases that way. /edit: wow, downvotes.

Because that would require translators to become programmers.

No it wouldn't.

First, I am talking about generating text. In software. Translators would really only need to check the text so that it's correct, and when it isn't, they should submit bug requests so that the programmers implementing the language back-end can fix them.

Second, an AST is nothing but the result of applying grammar to some input, something which translators are very familiar with (probably more than programmers). It is utterly trivial to teach a translator a new textual representation of what they already know.

It's a tree of nodes connected by arrows. They learned the parsing stage in school. At least here in my country, everybody is required to decompose a phrase in it's underlying grammatical constituents in the eight grade. You just never draw it as a tree, but it's trivial to learn to draw it as a tree and read it from a tree.

Re: A Localization Horror Story: It Could Happen to You

#97
post #90

Earlier quoted context omitted.

ICU's messageformat solves this easily. One project that supports ICU's messageformat is L10ns http://l10ns.org

This looks quite nice and powerful and indeed an elegant way of solving the problem with multiple plural forms in a string. The only concern I have with that syntax is that it's yet another DSL, or markup language and translators need to know it, or could get it wrong. Granted, a program for helping translators might do automatic linting (much as Qt's Linguist already warns if you omit placeholders from the translate…

Well, if we're going to introduce that level of complexity into a DSL, why not go full Turing-Complete and write it in code?

    (case (length folks) (0 "No one went.")
                         (1 ((elt 0 folks) " user went."))
                         (2 ((elt 0 folks) " and " (elt 1 folks) " went."))
                         (otherwise ((elt 0 folks) " and " (length folks) " others went.")))
You can wrap that in a lambda that concatenates resulting strings and voilà, you have "smart" string tables. And it's not a problem to make it even more DSL-y and translator friendly.

Re: A Localization Horror Story: It Could Happen to You

#98
post #35

Earlier quoted context omitted.

Ah, that's why Word 2007 ended up with »Keine Gliederung« (»no (document) outline«) for the setting where you can select a shape outline colour ... In all seriousness, translators make mistakes by getting the context wrong all the time; this applies to both professional translators and amateurs, perhaps in different severity. But in my eyes that's not really a problem of the translators, but rather of the tools we us…

> But I couldn't think of a good way that could retain context for the translator in a general case, or at least most of the time. How about assigning identifiers to all strings, then adding tooltips for those identifiers in the application? So the translator can hover over a menu item to determine which string they are supposed to translate. This requires the translator to exercise the whole application which is kin…

The goal in my mind was to try generating context information for translators as automatically as possible while retaining the usual workflow developers would use in a given framework for localisable resources.

But yes, the requirement to cover every control, menu and dialog as well as every possible code path that uses a localisable string from the source code makes the whole endeavour very impractical to solve. With dialogs built in markup, e.g. Qt's .ui or XAML it's easy enough to give context, but the hard part is strings in code where you never know where they'll end up.

Re: A Localization Horror Story: It Could Happen to You

#99
Also, if you 'localize' something using Google Translate[1], please let the user choose language somewhere in the app.

For example, the Hostelworld ios app[2] requires the user to change language for the entire device. As something of a language perfectionist it leaves the app virtually useless.

[1] Translating to English from other languages works fine for me.

[2] https://itunes.apple.com/us/app/hostelworld.com-hostels-budg...

Post reply on HN