If you're developing apps for the Web or mobile devices, you've definitely come across the word “i18n”. While i18n seems like yet another in a long list of software acronyms, this one, a substitute for the word “internationalization”, will probably affect almost every app you make. Today, technology is moving faster than ever, but so is the global environment. You can't open a paper or read a financial blog without reading about the BRICs and how the world economic stage is changing.
How did this happen? In the late 90's, the tech bubble really blew open the doors of the Internet to Asia. And that pretty much changed everything. Initially, this meant a lot more software developers were available to western companies. However, as growth continued for these (and other) countries, it has been parlayed into significant buying power.
Don't believe me? Produce an iPhone app and iTunes will sell it in iTunes stores all over the world. Produce a successful web app and you'll receive hits from the entire planet. Web application sales know no international borders, but they do have language barriers. And I'm guessing that the phrase "It's all Greek to me" means something a little different in Greece!
The startling evolution of international apps
Internationalization used to be avoided for two reasons (three if you count the spelling). The first reason was it was hard to do and yielded low ROI. Anyone spending money was spending U.S. dollars and spoke English. Whether this was true or not, it was the perception. Today the case for investing development in foreign markets is a lot clearer. They're spending money, so that certainly helps the "R" in ROI.
The second reason is that i18n is a lot easier to code than it was five or 10 years ago. Back then, everything had to be done meticulously by hand. Every iota of text in the program had to be imported from an external data file. These files and their translations all had to be handled manually, and with great effort. Today, things have been simplified merely by the fact that software has evolved. For instance, 10 years ago, if you wanted a simple database, you had to build the data structures from the ground up.
Today, every web application in the world is already running on a well-known, easy-to-maintain database like MySQL, and hardware developers have taken steps to make translation a simple part of their operating systems. With a simplified software development cycle on translation, the investment for successful internationalization is much lower than it has traditionally been. By lowering the "I" and raising the "R" in ROI, i18n has become an important value play in any product, mobile, web, or otherwise. In other words, internationalization has become a straightforward way to increase the potential revenue for a product, without having to change features or redesign it.
How good internationalization is done
For a better understanding of internationalization, let's talk about a product that doesn't support i18n. In these products, developers put text, or strings, all throughout the code. These strings are inserted in the place where the code uses them, not necessarily related to where they appear in the end product. So when we internationalize a product, we essentially replace each of those strings with a token.
For example, "Continue" might be replaced with @cont. (For developers: @cont isn't meant to represent a particular language here, but rather denotes that this is a variable and not raw text. The "@" is just used to set if off from English text here.) Next, we'll teach the software that everywhere it sees @cont, it needs to replace that with a particular string, based on the current language. This not only makes it easier to translate, but it also allows us to group text by usage and separate it from code. This makes other business practices easier, for example, having the marketing team adjust the messaging or feel, directly in the product.
The specifics of this implementation vary by platform. For web application services, this would typically be implemented as part of a database. Since we're probably already using a database for our web application, it's a convenient next step to add lookups for strings that simply pull them in from the database.
Why Internationalization is easier than ever
Some platforms, iOS for example, actually include an API (Application Programming Interface) specifically for translation. On iPhone apps, the developer will simply replace text with a call to Apple's internationalization library. This is particularly convenient as they are drawn from a file. So, to have a translator create a new language file, you simply hand them the empty German file (for example) and the populated English file. Obviously, you'd want to include your application as well, so the translators can understand how the English is being used in context.
In my opinion, the coolest part of all of this is actually that the actual language translation has gotten easier. Technology is making languages easier to translate, imagine that. And for anyone who speaks a second language, about two minutes on Google with some idioms is some of the most fun you can have! Missing out? Just type some idiomatic phrases into Google and translate them to another language and then copy and paste them and translate them back to English (Need an example? Try "He sits like a bump on a log" to Spanish and back to English). Obviously, that won't do.
Why real-life translators matter, especially today
Translation software does a lot of the heavy lifting in app development, but to get a good translation for your product, you really need to use a good translator. The amazing technology I refer to isn't the translator themselves, but rather the availability of experienced translators. The exact same mechanism of the Internet that has opened the doors to new markets has opened the exact same doors to the translators you need. Now, not only is there an influx of consumers to buy your products, but it is accompanied by the same influx of people to translate it into their own languages.
I never thought technology would change something so fundamental and human as language, but it kind of has. Not only has it made translators more accessible, but it has also made them more necessary for ultimately getting your products and services into the hands of more consumers. After reading this, hopefully, you will see the need for internationalization, how you can use it, and why we just call it i18n.
Other articles in this section
Machine learning (ML) systems analyze tremendous amounts of data to identify hidden patterns and make predictions based on those patterns. This requires a very high level of parallel processing.
5 Tips for Combatting Developer Burnout!
Do you remember when you first learned to code? It was fun, magical even, and you were obsessed.
Your organization has a new project, and you need help from a custom software development company. Your search returns hundreds of possible candidates and you have no idea where to start.
Brian is a life-long software developer who loves to help others succeed. A frequent source for media outlets, such as BBC, Entrepreneur and Bloomberg, Brian also frequently speaks at universities, conferences and the like. His new book, "Unravelling the Internet of Things" will be available soon on Amazon.com.