TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: Do you internationalize/localize your apps?

33 pointsby gt5050over 7 years ago
Hi HN,<p>We are in the process of building a reporting tool that would be mostly used by sales &#x2F; marketing executives to monitor ROI.<p>This is not a consumer facing product rather a B2B product.<p>We are unable to decide whether to internationalize&#x2F;localize the application or not.<p>Here are the two approaches we are thinking<p><i>1) Launch English only for now, but plan for localization in the future</i><p><i>Pros</i>:<p>Make the product accessible for a larger market<p><i>Cons</i>:<p>Long term maintainence cost (translation would be needed for every new screen-string pair)<p>Seems a bit like premature optimization<p><i>2) Dont internationalize at all, given that this is not a consumer facing product</i><p><i>Pros:</i> Simplify development and maintainence over long term, not having to deal with I18N<p><i>Cons:</i> Loose out on new audience who would like to use the software in their own language<p>What approach would you recommend?<p>Also HNers whose first language is not English,<p>1) Roughly what percentage of software you use has option available for your language<p>2) Do you prefer to use software in your language if there is an option available<p>3) Does not having your language impact productivity while using the software.<p>Thanks!

31 comments

methodoverover 7 years ago
Tech lead of a smallish&#x2F;medium saas startup here.<p>A couple years back sales convinced the CEO to internationalize for a European expansion... Starting with Turkish of all things.<p>It was a terrible waste of resources. We were still trying to find product market fit, and internationalization is a tricky, labor intensive problem. It&#x27;s not just a matter of putting in hooks for internationalized strings in your code -- that&#x27;s the easy part. It&#x27;s setting up a great localization process that&#x27;s the hard part. And even if you do a great job at building out that pipeline, it&#x27;s a massive drag on the speed of developing new features. Every change needs to go through localization.<p>Don&#x27;t do i18n until you have found product market fit, IMO.
评论 #15626586 未加载
评论 #15626564 未加载
throwaway2016aover 7 years ago
I&#x27;ve found adding it to an app after the fact to be much more work than just doing it up front.<p>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&#x27;t need to expand international for quite some time.<p>It&#x27;s more than just localizing your app. You also need to do the same with your sales, support, and billing.<p>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?<p>Also, what differences in laws regarding data protection &#x2F; privacy &#x2F; terms of service are you getting yourself into?<p>If you&#x27;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&#x27;t charge tax on services but many places do.
评论 #15626312 未加载
jacalataover 7 years ago
Your pros and cons for option 1 are wrong. You don&#x27;t incur the long term cost of translating all strings just by making your software localizable - you incur it by releasing localized software. (Same for making it accessible to the larger market). It should say something like &quot;pro: reduces future cost of deciding to release in other languages. Con: may be extra work&quot;. And how big a con that is depends a ton on what technologies you&#x27;re using and whether your current plan is to just hardcore strings everywhere.
toast0over 7 years ago
I think you could do a bare minimum and be ready to do more work to finalize it later if there&#x27;s demand. If you think there&#x27;s a good chance there won&#x27;t ever be demand, then maybe it&#x27;s not even worth this.<p>I think the bare minimum would be gettext style string marking, which is generally gettext(&quot;english string&quot;) 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&#x27;re likely to be localizable. Gettext&#x27;s guidelines[1] are decent. You don&#x27;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&#x27;t mark strings, at least thinking about string guidelines will help for the future.<p>If you ever decide to come localize in the future, at least you won&#x27;t have to markup all the strings, and hopefully you won&#x27;t have done a lot of &quot;string math&quot; which is painful to unwind. You&#x27;ll still have a big amount of work to test and fix any strings that were missed, but you&#x27;ll be a lot farther ahead.<p>[1] <a href="https:&#x2F;&#x2F;www.gnu.org&#x2F;software&#x2F;gettext&#x2F;manual&#x2F;html_node&#x2F;Preparing-Strings.html#Preparing-Strings" rel="nofollow">https:&#x2F;&#x2F;www.gnu.org&#x2F;software&#x2F;gettext&#x2F;manual&#x2F;html_node&#x2F;Prepar...</a>
raverbashingover 7 years ago
As it&#x27;s a B2B app, I don&#x27;t think there&#x27;s a pressing need to localize. It might be interesting though to keep things localizable (not only for I18N reasons - documentation and testing come to mind)<p>Now, what you should absolutely DO is make sure your system doesn&#x27;t break with foreign names&#x2F;data&#x2F;locales<p>Locales to test: RTL locales (Arabic and Hebrew for the most part) and maybe Turkish (the infamous dotted capital I)<p>Names: Chinese, Japanese, Russian, Latin Extended (ñ, œ, ø, á, é, etc), even names in English can break stuff (O&#x27;Brian)<p>Dates: does it work with DD&#x2F;MM&#x2F;YY or YYYY-MM-DD and keeps consistent?
alexbeckerover 7 years ago
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&#x27;m not sure what percentage wasn&#x27;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&#x27;t.<p>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&#x27;t making the effort on the sales side it probably isn&#x27;t worth it on the engineering side.
icc97over 7 years ago
If you use a lowly PHP MVC framework, you&#x27;ll get I18N pretty much for free. It&#x27;s just a customised echo &#x2F; print statement. Same for any Django, Rails app. So if what you&#x27;re using is more difficult than that I&#x27;d question what you&#x27;re using to build your app. Admittedly React is pretty far behind for doing I18N. i18next [0], seems quite promising for that.<p>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&#x27;ve got a ton of code written.<p>[0]: <a href="https:&#x2F;&#x2F;www.i18next.com&#x2F;#" rel="nofollow">https:&#x2F;&#x2F;www.i18next.com&#x2F;#</a>
GuiAover 7 years ago
Have you validated your MVP? (ie acquired enough initial users to know that this is a viable business idea, and commit the next few years to it).<p>If not, then do not worry about internationalization at all, and do just English. Validate your MVP first. At this stage, you’re trying to find people who have a pressing, immediate problem to solve - and even if some of them are not native English speakers, it shouldn’t be too much of a deterrent because your product will still be a godsend to them.<p>If you have already validated your product, or when you have done so, but it is not immediately clear what languages besides English you should pursue, then I would recommend still picking a second language to make sure that your codebase has basic, initial support for multiple languages. If you are not in a primarily anglophone country, or members of your founding team are native in another language, then pick that one (it’d be dangerous to pick a language you have no familiarity with, as a team, because high quality translators are hard to find, and translators who can work with your designers to address more subtle cultural details are close to impossible to find).<p>This won’t solve all your problems - for instance if you support English and Spanish out of the box, but a few years later you realize you need to support Hebrew, you’ll likely have work to do to support a right to left script. But at least your codebase will have initial support for more than one language, which will make the effort a little less insane.
tqkxzugoaupvwqrover 7 years ago
The solution is: Build support for translations into your code and only offer English as language. You can later add additional languages without having to replace every hardcoded text with a translation ID.<p>The most basic version of how it works: Where you want your translated text, put a function, e.g. called “T” that takes a string as argument and returns a string. The function uses this argument (translation ID) to look up the actual translation in a map.
评论 #15626787 未加载
评论 #15626596 未加载
pawel_dydaover 7 years ago
As someone with over 10 years of professional experience in g11n, I must point out few things.<p>First and foremost i18n is not about extracting strings to make application translatable. Before you actually do that you should think what actual markets you will be targeting. Actually, even by your rough description of what your application will do, I can tell you that the major will be cultural fit. You may think that people tend to do business roughly the same way all other the world. And nothing could be farther from the truth.<p>Should you ever want to sell it outside US, you should think how to suite your target users&#x27; needs. And this is much more related to behaviors &#x2F; workflows than to translation.<p>By the way, I don&#x27;t care that much if something is translated, what I care most is how things like date, time and currency is presented. This is crucial; I can&#x27;t comprehend dates like 4&#x2F;11 quickly.<p>To answer your specific questions.<p>1) Frankly, I have no idea about percentage. Personally I tend to use English versions if that&#x27;s possible as Polish translations tend to be horrible. Well, it is usually result of concatenating strings which does not allow for re-ordering the sentence, but still.<p>2) I already answered to some extent. I actually prefer everything to be in one language (be it my native Polish or English). Having part of UI in English and part translated is really irritating. And as I said, following local formats is much important.<p>3) This depends on your user base. In case of Poland, I believe financial &#x2F; marketing people will use so many English terms that untranslated app would be easier to grasp. Should you follow local formats (or allow to change them in user preferences), that is.
r-sover 7 years ago
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.<p>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.
评论 #15626062 未加载
ufmaceover 7 years ago
Short version - if you have to ask the question, then the answer is no.<p>More fully, what&#x27;s your customer acquisition pipeline like? How many people on your team are fluent in another language? If the answers are &quot;we don&#x27;t know yet&quot; and &quot;none, except I think one guy speaks a little X&quot;, then I18N is the last thing you should be thinking about. You have access to a plenty big market just working in English, figure out how you&#x27;re going to get customers and what they want first. Establish yourself as a viable business. Get as many customers as you can with your English-only app.<p>Once you know how to get English-speaking customers and what they want, you can at least make a reasonable estimate on what will be required to get international customers. You should already have some English-speaking customers in any country worth targeting for a more directed sales effort. That&#x27;ll at least give you a starting point for people to talk to to figure out how to service those customers better and what you might need to change to operate more effectively in that country. This may include actual good translations, units and date handling, any cultural differences, legal and tax compliance, accepting foreign currency for payments and how to handle that, etc.
51Cardsover 7 years ago
This may not be a fair answer but being based in bilingual Canada has made localization a defacto process. We only support English, French, and have recently added Spanish so languages like Cantonese would be a challenge yet. That said it forced us to learn to structure applications with that in mind from day 1 and I&#x27;m quite glad we don&#x27;t have that refactor process still ahead.
rmetzlerover 7 years ago
I&#x27;m German and I hate half assed i18n.<p>Often the translation is done poorly, E.G. the word &quot;open&quot; has two different meanings when translated to German, depending on if it&#x27;s used as a verb or adverb.<p>I especially used to hate the translation for git, because I couldn&#x27;t understand it, since they even translated all the core concepts like &quot;branch&quot; into &quot;Ast&quot;. It seems like it&#x27;s better now, but there are still errors which are not translated, so the screentext is mixed German and English.<p>In the software I maintain I hate translations, because all the time project managers forget that I need the texts in two languages. Also there&#x27;s never the perfect time to do the texts, since you almost always have to change the UI and all translations.<p>One tip: if you use dates, please use YYYY-MM-DD and not MM&#x2F;DD&#x2F;YYYY. The first format is universally understood, the second one almost always trips me up since we use DD.MM.YYYY in Germany.
评论 #15626667 未加载
评论 #15626980 未加载
TheAceOfHeartsover 7 years ago
I wouldn&#x27;t do any i18n or l10n. It increases complexity and it&#x27;s very expensive. It&#x27;s also difficult to get things right unless you have someone familiarized with the target audience&#x27;s culture.<p>Also, isn&#x27;t CSS support for RTL languages kinda iffy? I&#x27;ve noticed that in newer versions of the spec they&#x27;ve begun using start&#x2F;end rather than left&#x2F;right, which I&#x27;m guessing is meant to help when creating bidirectional interfaces. But how well supported are these changes?<p>My first language is Spanish. No idea what percentage of my software supports it since I never check. I always prefer using English. Not having a Spanish option has zero impact on me.<p>I&#x27;d be interested in hearing arguments from the pro-i18n&#x2F;l10n side. I actually have lots of questions about why certain things should be supported at all. For example, why should we support +10 different calendars instead of making everyone use ISO 8601?
lj3over 7 years ago
I don&#x27;t i18n. It&#x27;s a good amount of work for little benefit. I&#x27;ve only seen one industry capture metrics on i18n usage and that is (was?) the social games industry. All of the findings I saw pointed to the fact that even international players would prefer to play the game in English rather than their native language. I believe there&#x27;s two reasons for that: to better learn English and to avoid the bugs and layout flaws that come with blindly internationalizing an app.<p>If you have enough customers to warrant an international version of an app, it might be worth it to completely redesign the UI around the new audience. The language used applies constraints and makes assumptions that may not be true in other languages. And then there are the culture differences...
评论 #15626294 未加载
codewardenhover 7 years ago
Honest answer - we don&#x27;t. In markets, even with global corps using our platform English is the business Lingua Franca. The clients usually expect their users to work in English. Works for us.
apeacoxover 7 years ago
I used to add i18n on rails apps only when needed, because it forced to create a decent yaml schema for translations (how&#x2F;where to put keys in the right namespace can be hard).<p>Instead, Elixir&#x2F;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.
waibelpover 7 years ago
For all new projects I always use internationalization. Instead of writing something like<p>&lt;button&gt;Sign Up&lt;&#x2F;button&gt;<p>I simply write<p>&lt;button&gt;{{ &#x27;Sign Up&#x27;|trans }}&lt;&#x2F;button&gt;<p>That way I don&#x27;t need translation files (EN is default). If translation is not found the &quot;key&quot; is returned which is fine. Once the app is ready I call a command to create my language files and simply translate them.
askafriendover 7 years ago
Can you quantify the revenue impact? Do you know your userbase at all?<p>You’re missing some useful data that would make this decision easier.
评论 #15625752 未加载
ryandrakeover 7 years ago
Like others here, I always recommend to internationalize right away, but localize later only if&#x2F;when you need to. Internationalization is like portability and testability--if you do it from the start, it&#x27;s much, much easier than if you try to cobble it in later when your project is huge.
ggg9990over 7 years ago
You should launch without it, but with a framework to do it when necessary, i.e. Keep your strings file in one place at a minimum. You may find it necessary sooner than you think. For example, many governments and academic institutions cannot legally purchase non-localized software.
andy_pppover 7 years ago
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.
davchanaover 7 years ago
Indian by nationality here, so English is just kind of my first language; but not completely. I would always prefer software, apps, websites in English rather than my own Punjabi&#x2F;Hindi language. Reason, I learned&#x2F;always-used computers in English.
jmnicolasover 7 years ago
I&#x27;m French. Most (99.9%) of my countrymen (and women ;-) won&#x27;t bother with something that is not translated.<p>I think (but not 100% sure) that it will be the same in southern and eastern Europe.<p>Northern Europe should be different, they&#x27;re usually better at learning English.
评论 #15626391 未加载
herbstover 7 years ago
I usually just create things in english. If I then decide to ad other languages it defaults to English and I don&#x27;t have to worry about having everything translated instantly. The other way around wouldn&#x27;t work.
antavianaover 7 years ago
If your short-term, addressable and referenceable market can use your product in English, I would focus on releasing as soon as possible, without distractions. You need to ensure you have product-market fit.
drwuover 7 years ago
Depends.<p>For instance, in the scientific or some high-tech branches even for some IT topics, there are sometimes no official translations of the new ideologies.
hayksaakianover 7 years ago
do this with a sales first mindset<p>do you have a large customer who can fund the internationalization?<p>is there someone who would most certainly become your customer if you internationalized?<p>otherwise it&#x27;s a very hopeful use of your valuable engineering resources.
je42over 7 years ago
don&#x27;t forget that full internationalization also includes taking care of layouting issues i.e. words that are longer in other languages. Characters that are higher. Right to left text.
jjuhlover 7 years ago
The stuff I work on uses Qt, which makes internationalisation a breeze.