Live data from Hacker News

What they don’t tell you when you translate your app

ericwbailey.design

41–50 of 236 posts

Re: What they don’t tell you when you translate your app

#41
post #22

Earlier quoted context omitted.

I think the issue is many translation databases just hold the English text and then all the translations. So the entry is “Open ticket” and then you just drop in the translation anywhere that phrase shows up. But sometimes “open” is a verb, sometimes a noun. The actual identifier should be something like “Open a ticket (imperative, button)” and then that phrase has translations, including the English “Open ticket”.

Or maybe the translator should get annotated screenshots of the app. Laid out in a story board. If you just hand someone a list of strings to translate, there's no way you'll get sensible results. Also, you should test you translations. Some of the translations that I've seen (even from reputable companies) are so bad that it's pretty obvious no native speaker has ever looked them over.

The tension is that people want to reuse translations. So maybe you have the story board for the first version. Then, someone makes a new button. In Django, they'd put _("Open ticket") as the text, see there's already a translation, and think they're good to go. Sure, having every page looked at by a translator for every language every time you make a change would be ideal, but also a bit costly and slow. I think there are better options in the middle.

Re: What they don’t tell you when you translate your app

#42
post #5

> People may prefer the English experience because they expect the translated version to be inferior As an Italian, I can relate so much to this, because translated apps will happily treat verbs as adjectives and vice versa. A couple example: * Flixbus' app translates "Open ticket" to "Biglietto aperto" (treating "open" as an adjective, not as an imperative verb). Correct translation should be "Apri biglietto". Nothi…

Hopefully it's better now, but back when I lived in Sweden, I had to routinely translate strange Swedish wording to English to figure out what arcane computer term the translator had misunderstood.

Re: What they don’t tell you when you translate your app

#43
post #21

Earlier quoted context omitted.

I think the issue is many translation databases just hold the English text and then all the translations. So the entry is “Open ticket” and then you just drop in the translation anywhere that phrase shows up. But sometimes “open” is a verb, sometimes a noun. The actual identifier should be something like “Open a ticket (imperative, button)” and then that phrase has translations, including the English “Open ticket”.

That's actually a nice idea in forcing even the default language to be handled by the same workflows, processes, and tools as the other languages. I've found that in a lot of those cases there simply is lots of context missing from the strings that should be translated. If all you get is the English text without any indication of how and where it's used in the UI, you're bound to make such mistakes in the translation…

Oh, cool. You just reminded me of a feature I had built into my web app many years ago when we implemented translations. We accepted internal commands in our search box, and one of the commands told the app to display the language text identifiers alongside the language text. It was a great mode for developers, QA, and translators. Developers and QA could easily locate text that needed to be put into the language system, and translators could work page by page to find the identifiers they needed to translate.

Re: What they don’t tell you when you translate your app

#44
From IGN's article about the difficulties of game development (https://www.ign.com/articles/turns-out-hardest-part-making-g...):

“Planning ahead helps, but nothing will prepare you for German,” [Joe Mirabello] said. “German destroys your best laid plans. German will defeat you. That text field you thought would only ever need a single 10-20 character word? Nope. German has a unique word for that and it’s a hundred and twelve characters long. We even have a native German developer on our team and he refuses to translate our games into German. This is all said tongue-in-cheek, of course, just to illustrate a point, and that is; whatever scaling flexibility you think you’ve planned for in your UI to account for localization? It’s not enough. It’s never enough.”

Re: What they don’t tell you when you translate your app

#45

One annoying issue with translated apps the author doesn't cover is "googlability", the fact that we often need to google an error message or menu label in order to solve a problem. This leads to a lot of bilingual people running their software in English just in case they need to paste an error message into a search engine.

Yes. Having unique error codes should be a best practice with translated apps.

Re: What they don’t tell you when you translate your app

#46
post #18
post #5

> People may prefer the English experience because they expect the translated version to be inferior As an Italian, I can relate so much to this, because translated apps will happily treat verbs as adjectives and vice versa. A couple example: * Flixbus' app translates "Open ticket" to "Biglietto aperto" (treating "open" as an adjective, not as an imperative verb). Correct translation should be "Apri biglietto". Nothi…

I have a similar experience as a german on the internet. Aliexpress (straight up wrong translations), Discord (anglicism, adjective ordering and weird sentence/tone structures) and plenty of others I don't remember, the list is pretty long. Size doesn't really seem play an effect aswell. Another big issue are potential bugs you encounter. If you just get a translated error message without any error number or somethin…

Aliexpress in Dutch is lovely!

Plenty of items on Aliexpress can be shipped from multiple locations. "China" is almost always one of the options. Well, in Dutch they've translated that to "Porselein". That is a valid translation, if you are talking about plates and dishes made from porcelain)

I wonder how actively harmful this bad translation is to their business.

https://en.wikipedia.org/wiki/China_(material)

screenshot: https://fransdejonge.com/wp-content/uploads/2019/11/Screensh...

Re: What they don’t tell you when you translate your app

#47

Earlier quoted context omitted.

I think the issue is many translation databases just hold the English text and then all the translations. So the entry is “Open ticket” and then you just drop in the translation anywhere that phrase shows up. But sometimes “open” is a verb, sometimes a noun. The actual identifier should be something like “Open a ticket (imperative, button)” and then that phrase has translations, including the English “Open ticket”.

Obj-C and Swift allow comments to go along with translation strings, so you would add let buttonStr = NSLocalizedString("Open ticket", comment: "For user to open a ticket") And the comment would make its way into the eventual xliff file sent to translators

This looks like the right approach: giving context to the translation strings.

Many translation tools give the locations in the code where a string is used. It's a first step, though translators are not always able to read code.

Re: What they don’t tell you when you translate your app

#49
post #5

> People may prefer the English experience because they expect the translated version to be inferior As an Italian, I can relate so much to this, because translated apps will happily treat verbs as adjectives and vice versa. A couple example: * Flixbus' app translates "Open ticket" to "Biglietto aperto" (treating "open" as an adjective, not as an imperative verb). Correct translation should be "Apri biglietto". Nothi…

I think the issue is many translation databases just hold the English text and then all the translations. So the entry is “Open ticket” and then you just drop in the translation anywhere that phrase shows up. But sometimes “open” is a verb, sometimes a noun. The actual identifier should be something like “Open a ticket (imperative, button)” and then that phrase has translations, including the English “Open ticket”.

In my job I sometimes have to do with rollouts of a centrally maintained software to subsidiaries in other countries. Translation is often done by simply sending a Excel file with all string identifiers and their English value to a key user in that country, and maybe they translate it themselves, maybe they give it to some agency. So we can be 100% sure that now, there will be several additional rounds for them to figure out what the string is really supposed to mean versus what they initially thought it would mean.

Yes, we improved on this somewhat. In the last rounds they got access to the software in English beforehand, and there are now also access keys to press to see the string id for any label in the app. It is still a very time consuming process, and I love it when a rollout is done to a country where we can just say, consumer facing texts get translated, our employees all speak English well enough to use this as is.

Re: What they don’t tell you when you translate your app

#50

Earlier quoted context omitted.

I've run into this problem but I don't know there is a good solution. Let's say for whatever reason the app guesses the user wants Japanese. The app has no way to know what to present to allow to user to switch languages. Should they put a button that says "Language", how does that help a Chinese language person, a Korean person, a Thai person? Should they put "English"? Same point as above. As you complain, they'll…

National flags - who doesn't know their own flag or any of the major ones enough that they'll miss a Union Jack, Stars and Stripes or a Hinomaru ?

National flags are not in general a very good way of labelling languages. There are far more languages in the world than countries. In any case, since people are looking for a language they understand it's good enough to write each language name in the corresponding language, like Wikipedia does (wikipedia.org).

But that's not the question, anyway. The question is how to label the button that lets the user change the language when the user might not understand the current language at all. Perhaps a big bright "?" ...?

Post reply on HN