Live data from Hacker News

Ask HN: Do you internationalize/localize your apps?

news.ycombinator.com

11–20 of 52 posts

Re: Ask HN: Do you internationalize/localize your apps?

#11
post #4

I generally do internationalize apps that I build right from the start. The cost for switching at a later date I have found to be very significant. I do not however localize them until its needed. Often working with translators and ensuring the quality of the localized application is not a huge priority in the beginning.

I believe you, but my experience is different. IME i18n and l10n are a lot of work even if you plan on them from the beginning. For projects I've worked on it wouldn't save that much effort to architect for i18n up front. I would go with just one language until product-market fit, then assess whether it's worth internationalizing/localizing.

Re: Ask HN: Do you internationalize/localize your apps?

#12
When I worked on Google AdWords, i18n was a huge deal despite it being a business-facing product. More than half of the revenue came from outside the US. I'm not sure what percentage wasn't in English, but it had to be large. I regularly got users filing bugs against me in Easter European languages or in Arabic (these seemed to maximize buggyness * number of users). So there is definitely money to be made selling to non-English speaking businesses, especially when the competition isn't.

That being said you need to actively pursue international sales for this to work, and i18n software is only a part of this. If you aren't making the effort on the sales side it probably isn't worth it on the engineering side.

Re: Ask HN: Do you internationalize/localize your apps?

#13
Like others here, I always recommend to internationalize right away, but localize later only if/when you need to. Internationalization is like portability and testability--if you do it from the start, it's much, much easier than if you try to cobble it in later when your project is huge.

Re: Ask HN: Do you internationalize/localize your apps?

#15
I've found adding it to an app after the fact to be much more work than just doing it up front.

But with that said, doing it up front even if it is less work than doing it later, is still way more work than not doing it at all. And if your app is in English your TAM is likely huge and you won't need to expand international for quite some time.

It's more than just localizing your app. You also need to do the same with your sales, support, and billing.

What do you do when you get a customer support request in a language your app supports but no one on your service team speaks? How do you get the customers in the other languages?

Also, what differences in laws regarding data protection / privacy / terms of service are you getting yourself into?

If you're charging a fee, do you need a bank account in the foreign country to charge the fee in local currency? If you do, what laws and regulations are you required to follow to get that bank account? What about tax? The US doesn't charge tax on services but many places do.

Re: Ask HN: Do you internationalize/localize your apps?

#16
If you use a lowly PHP MVC framework, you'll get I18N pretty much for free. It's just a customised echo / print statement. Same for any Django, Rails app. So if what you're using is more difficult than that I'd question what you're using to build your app. Admittedly React is pretty far behind for doing I18N. i18next [0], seems quite promising for that.

The app I built had no need for languages for the first 3-4 years. Then suddenly a foreign client comes in (ours is translated into Spanish, Portuguese, Russian and Chinese) and you've got a ton of code written.

[0]: https://www.i18next.com/#

Re: Ask HN: Do you internationalize/localize your apps?

#17
Yes, add translation keys at a minimum now, no one wants to spend time in the future trying to i18n a product after the event, especially one that is constantly being worked on and improved and your playing catch up. It should literally cost you nothing to do as you go along.

Re: Ask HN: Do you internationalize/localize your apps?

#18
I think you could do a bare minimum and be ready to do more work to finalize it later if there's demand. If you think there's a good chance there won't ever be demand, then maybe it's not even worth this.

I think the bare minimum would be gettext style string marking, which is generally gettext("english string") in the source; other string marking techniques may provide a better localization, but this one is easier. Also, try to follow general guidelines for creating strings so they're likely to be localizable. Gettext's guidelines[1] are decent. You don't actually need to use gettext -- you can make a 1 line function or macro that just passes through the english text as is for now. Even if you don't mark strings, at least thinking about string guidelines will help for the future.

If you ever decide to come localize in the future, at least you won't have to markup all the strings, and hopefully you won't have done a lot of "string math" which is painful to unwind. You'll still have a big amount of work to test and fix any strings that were missed, but you'll be a lot farther ahead.

[1] https://www.gnu.org/software/gettext/manual/html_node/Prepar...

Re: Ask HN: Do you internationalize/localize your apps?

#19
I used to add i18n on rails apps only when needed, because it forced to create a decent yaml schema for translations (how/where to put keys in the right namespace can be hard).

Instead, Elixir/Phoenix uses gettext, you wrap strings with a gettext call, then you run a task and it generates all the files ready for translation. This means I can still use a main language and translate it if needed, without touching the codebase.

Re: Ask HN: Do you internationalize/localize your apps?

#20
For all new projects I always use internationalization. Instead of writing something like

Sign Up

I simply write

{{ 'Sign Up'|trans }}

That way I don't need translation files (EN is default). If translation is not found the "key" is returned which is fine. Once the app is ready I call a command to create my language files and simply translate them.

Post reply on HN