10 Terms To Help Your Product Get More International Customers

Selling software is hard. Figuring out what your customers want, how to create your MVP and, after the first sale, how to get more customers. So let's illustrate some industry terms that you should know to successfully globalize your software.

Globalization is an incredibly economical phenomenon largely fueled by the computer revolution. After services, products, and culture, the age of digital products and services drives the globalization of content and software like no other. When creating a new business idea or promoting your current products, you – or at least your marketing team – have to think a lot about the positioning of your product. You should invest in creative ideas to address markets and hire copywriters to fine-tune the message and squeeze every last drop out of text bits to increase conversion rates and get more international customers.

Let’s Get Real About Software Globalization

For many startups, translating content is the last thing on the list. Why? “It isn’t fun”, “the local market is large enough”, but often enough it’s simply a matter of knowing how to do it.

And seriously, why would you settle for “enough” when you can have more.

Many serial entrepreneurs and startup builders like Rocket Internet or Project A tackle this differently. Rather than creating new markets and purely focusing on product innovation, they focus on execution and repeatable, scalable models to generate revenue.

These companies focus on reducing risks such as spending too much money or losing markets, as well.

Coming from Europe, both companies have to tackle language barriers early on due to the density of cultures and languages expressed on this continent. Creating a business aiming at just one local language in Europe is a little bit ridiculous – especially when considering that in online services, retail and digital products the market entry barriers are at an all-time historical low.

Translation is key.

Most internet success stories had a strong concept of going to international markets and addressing an international audience. Language is the first entry-barrier.

Many people speak or at least understand a bit of English – but not nearly as many as you might assume.

Not offering your product to those that do not is simply wasting the chance to reduce me toos coming up and opening those markets for your competition.

To help you find your way into this topic, we put together a list key terminology and explain them:

  • Globalization
  • i18n / Internationalization
  • l10n / Localization
  • Locale / Language File
  • Strings / Keys / Translation Unit
  • Pluralization
  • Charset & UTF8
  • LTR
  • Translation Process
  • Translation Management System


In software, globalization is the combination of the general processes to make software available for international customers, speaking different languages, operating in different time zones and regions, as well as the concrete translation of the interface and adaptation of content and visuals to the appropriate cultural context of the desired audience. This includes formats, language, writing-orientation, content, and presentation.

The phrase was primarily coined by IBM and Sun Microsystems (Wikipedia).

Its goal is world-readiness of the developed software for engineers and a homogeneous user experience across different languages and locations for designers, marketing and copywriters.

What Is I18n?

As a developer, I always found it a bit odd and thought it might be 1337 speak, but actually i18n stands for i followed by 18 letters followed by n orinternationalization – count for yourself.

It has become software programmers’ favorite acronym and typo-avoider. So much so, that several programming languages and frameworks, like Ruby on Rails, have libraries that are named i18n.

What Is Internationalization?

In programming, internationalization refers to all tasks and components required to make a piece of software usable by users speaking different languages, operating in different time zones, geographical locations as well as using different payment methods and currencies (and many other things).

For format conversion aspects (date and time, notations, left-to-right text-orientation, pluralization) most programming languages come with libraries that provide best practices for those tasks.

Providing translated versions of content is a key part of internationalization.

What Is L10n?

As you by now might have guessed similarly l10n is an acronym for l followed by 10 letters followed by n: localization.

The acronym is far less common than i18n, but it is, in general, a more accurate description of the process software translation teams is involved in on a daily basis.

What Is Localization?

The process by translating or transposing text and other content for a certain target country, culture, group of customers, location or language is called localization.

The main task of software localization usually is extracting all text from your program’s source code, naming this portion of text with a key and replacing them by calls to a translation-method using the key.

Example for Key-Extraction:

A piece of software that displays the following content in a web browser…

Good morning, Mike!
You have 12 messages in your inbox.

might have this original piece of pseudo-template-code:

<h1>Good morning, #{name}</h1>
<p>You have #{count} messages in your inbox.</p>

Extracting keys results and replacing with translation method calls results in:

1<h1>#{ translate('greeting', name: user_name) }</h1>
2<p>#{ translate('inbox_messages', count: count) }</p>

This leaves you with the original source language copy for the keys which are collected in one or many key files, called locale or locale files (locale may also refer to the reference code of a language or language variant).

greeting="Good morning, %{name}"
inbox_messages="You have %{count} messages in your inbox"

As a regular text, there might be creation times or other timestamps in your program, for example, the creation time of a user comment. These timestamps are timezone-dependent. If you stored your information about the creation time of resources not using a timezone or Unix timestamps you might need to have to change the format in which you are storing timestamps (Unix time is the absolute number of seconds that have elapsed since 00:00:00 January 1st 1970 UTC (for more on timestamps, see Wikipedia). Date and time helper methods, like I18n.l() in Ruby on Rails, help the programmer to display dates independently of the used format and time zone of the user:

<date>#{ comment.created_at }</date>


<date>#{ localize(comment.created_at) }</date>

Depending on the user’s locale-setting might result in the date displayed as January 22nd, 8pm for US-based customers and um 20 Uhr am 22.01.2015 for German customers.

What Is a Locale?

In computer programming, locale is the set of parameters that define a user’s language, geographical region, time, language character set and number settings (rf.Wikipedia on Locale). Though in the case of software locale is often used to describe two things, the identification code of a certain language variant, either by a language code after ISO 639-1, e.g. en for English, or an IETF language tag, e.g. en-GB for British English. Second, locale is often used to refer to a language file containing translations for a certain language variant often named with the same before-mentioned language code or tag.

What Is a Language File / Key File / Locale File?

A file containing the placeholder-keys and their responding translations in one or many languages.

There are many different language file formats, such as YAML, XML, Strings, XLIFF orPO and many, many localization libraries, the most common in the C and PHP-world being gettext. Each format and library has their own restricted set of functionality. You can use our format guide to compare what formats support which localization feature.


The German language file for our example could look like this:

greeting="Guten Morgen, %{name}"
inbox_messages="Du hast %{count} Nachrichten in Deinem Posteingang."

What Are Strings / Keys / Translation Units?

Every entry in a language file is called a string or translation unit, independent of the number of words it contains. Some refer to the set of one key, e.g. greeting in our example, and all language translations as one string, while others count each translated version of a key as their own string.

In translation, the word count of the source copy of the key matters most. Depending on the source word count, translation costs for other languages are calculated (other than payment by line or page often seen in traditional media).

The number of words conveying the same meaning as the original text and the used character count might differ drastically. A language like English is relatively concise, while the same meaning will require more words most of the time when translated to German. Even more so when dealing with languages that use monosyllabic characters like Chinese or right to left typing, such as Arabic, Urdu or Farsi.

What Is Pluralization?

A key might as inbox_message in our example might contain a count of a certain item, in our case messages. Many languages have plural forms own nouns depending on the mentioned quantity.

These rules differ dramatically, in many languages there is basically one plural form for one, many and maybe one for none. However, there are languages that use different plural form for quantities of more than a dozen or a hundred.

Language file formats and localization libraries that support these language-specific rules to allow more than one translation for a given key containing a quantity allowpluralization.

Charset & UTF8

The essential way of operating with content in programming languages is handlingstrings. strings are basically pieces of text. Every string is usually a combination of a series of bits plus an encoding which is an instruction on how to interpret the bits into characters with a set of bits to describe one character sometimes being calledrune.

This encoding for most international projects is UTF8, it contains support for modern languages and is supported by most programming languages, many modern languages like Go solely use UTF8. Others allow conversion or combination of different encodings – which usually results in a big mess.

Since English characters are contained in ASCII, a small subset of UTF8, a usual first step for internationalization is to switch to UTF8 encoded text resources.

Beware that the encoding of your programming language files usually differs from your presentation layer encoding – which for websites can be set explicitly in the HTMLmarkup. You can read more about setting the right HTML charset at w3school.com.

What Does LTR Stand For?

LTR is the writing direction left-to-right common for European languages. Other directions may include RTL, e.g. for, as mentioned above, Arabic variants.

As the reading direction is a strong driver of visual design, it often has to be mirrored for an audience using a different reading direction to make sense in their reading flow. You can find more about this at w3.org

HTML has the DIR-attribute that can be set on the HTML document or any other body tag to specify the text direction.

What Is a Typical Translation Process?

After the software or app has been made world-ready or localized and is set up for the use with different user interface languages, you still need to get those translations.

The usual process when creating a new feature now will be:

  1. Create the feature with developer/product manager copywriting
  2. Extract this first copy into language files by creating new keys or reusing existing translation keys
  3. Send the new keys, with a description of the context or link to a staging setup or test installation to copywriters
  4. After proof-reading the original copy, send the feature to the must-have release language translators
  5. Collect the translations and add them to the existing language files
  6. Bundle the translations with the software and release as usual

This process costs time and if manual steps are involved – such as putting strings into an Excel sheet and sending it via email to translators – it will take ages. Luckily, there are solutions you can use to save a lot of money and time on the market for just this task: Translation Management Systems.

What Is a Translation Management System?

A translation management system is a software to manage translation projects, language files and the translation itself. It allows the sharing of language files with copywriters or translators and collaboration with developers while still tracking the progress of the overall project.

Usually, such a system will save you time by handling format conversions and preventing translation errors like forgetting to include or even translate placeholders.

Okay, How Do I Get Started?

We offer a translation management system specialized in the translation and localization of software: Phrase handles almost all localization formats, programming languages as well as pluralization and continuous integration into your development workflows.

Large companies and startups alike use our platform to localize their software; among them are Xing, Meetup, SecretEscapes, Virgin Pulse and MyTaxi. Check us out and sign up for a trial to see how it works first-hand.

Be sure to subscribe and receive all updates from the Phrase blog straight to your inbox. You’ll receive localization best practices, about cultural aspects of breaking into new markets, guides and tutorials for optimizing software translation and other industry insights and information. Don’t miss out!

5 (100%) 10 votes

Maximize Your Return on Investment for Localization

Get your own FREE EBOOK copy now, and learn how to determine, measure, and optimize your return on investment for localization!