Internationalization: Practical Tips to Build for a Global Audience

internationalization

The web has become truly global, which means your clients can now sell their products to millions of people around the world. Technology has made it relatively easy to expand to new markets, and some are growing at a staggering pace. It’s an opportunity too good to miss. No wonder we identified internationalization as anessential trendfor any ecommerce growth strategy.

About half of the world’s population may be online now, but only about 25 percent of web users are English speakers, and you need to adapt your clients’ sites to the rest. Translating a website or app, or shifting an English-only old code base to support multiple languages, comes with many challenges. But that’s not all: you also need to take cultural differences into account, which a lot of brands fail to do.

In this article, we’ll cover both internationalization (i18n)—the process of designing an app or site so that it can be adapted to various languages and regions without engineering changes—as well as localization (l10n)—the process of adapting an internationalized app or site for a specific region or language by translating text and adding locale-specific components. We’ll also talk to designers and developers to find out what kind of UX best practices and tools they use to create digital products for international users.

The importance of internationalization and localization during the design process

AsRobyn Larsen, who focuses on international UX marketing at Shopify points out, the goal is to build an experience to support all users everywhere in the world and when that experience doesn't fit a specific culture, tailor it.

Check out her presentation on whyInternational Is The New Mobile First at SmashingConf Freiburg 2019.

ForFemke van Schoonhoven, a product designer at Uber, content and localization play a huge role in the design process, including the prototyping and user research phases. Her designs need to be able to scale and be flexible enough to support being translated into over 30 languages.

In 2018, she was working on a project for the Brazilian and Mexican market and had been writing the content in English together with another designer.

“Naively, we thought we could leave translation towards the end as a last minute thing that we could update in the prototypes the morning of testing,” she remembers. “We created a spreadsheet with three columns—English, Spanish, and Portugese—and began translating the content word for word right in the spreadsheet. Little did we know that this was our first mistake.”

Femke learned that translating content without considering visuals was meaningless. They were missing out on the context of the flow and the hierarchy of the experience, which caused errors during user testing.

internationalization: payment confirmation in 2 languages

“In the above example, we’re confirming if the user would like to start the payment process again,” Femke explains. “On the right is a poorly translated Portugese version of the screen on the left, which has a completely different connotation. When we got to this step in our interviews, users were stuck and confused.”

Femke and her design partner realized they’d completely overlooked the importance of localizing the content. They failed to give the content the attention it deserved and underestimated the effect it would have on the design and on users, who were unable to complete their goal.

"They failed to give the content the attention it deserved and underestimated the effect it would have on the design and on users, who were unable to complete their goal."

“Localization is more than just translation,” Femke cautions. “You need to consider the intent of the message, the goal of the design, and the local context. We forgot to consider transcreation—how to adapt a message from one language to another, while maintaining the original intent, style, tone, and context.”

You might also like:Redesigning the Design Process: How to Work More Efficiently This Year.

To avoid making the same mistake, Femke recommends always accounting for context and meaning when localizing your client’s content during the design process. It’s not enough to wait until the end or the product launch. Properly localized content is key during user research as it helps inform the design of your client’s digital products.

Plan for text expansion

Luke Murphy-Wearmouthis a design manager at language-learning platformMemrise, where it’s a given that as many languages as possible are supported in the UI. Designers are also expected to handle all language edge cases elegantly and considerately.

“The length of text can vary wildly across different languages,” Luke explains. “For example, a phrase like ‘Start learning now!’ is ‘¡Empieza a aprender ahora!’ in Spanish and ‘现在开始学习!’ in Mandarin, so we have to make sure that all the modules we use in a page, from buttons to page sections, are fully responsive and can cater to multiple lines.”

For key areas such as headings or the learning prompts in the lessons, the team uses a simple bit of JavaScript to count the number of characters in a phrase, and places different classes (‘small’, ‘mid’, and ‘big’) on the phrase to alter the size. If you want an out-of-the box solution, Luke suggests Jeremy Keith’s non-jQuery version ofFitText.

Sometimes a simple strategy won’t fit, however. When the team recently refactored Memrise’s learning sessions, they discovered a problem with long words in some languages. In Italian, for example, numbers are strung together without spaces, so 2,345 becomes duemilatrecentoquarantacinque. While it might be rare to write out numbers, what if you’re designing a mobile site for a German restaurant and have to account for Nahrungsmittelunverträglichkeiten (food intolerance)?

In these cases, Luke recommends hyphenation as an inelegant but the best way to deal with the issue.

“Unfortunately, CSS hyphenation doesn’t take into account obvious places to hyphenate, which can leave your text looking very clunky,” he explains.

At the moment, the best strategy for potentially problematic languages is to set hyphenation to auto using the language selector, like this:

css
span:lang(de) {
hyphens: auto;
}

Then use­to accommodate for troublesome words, which adds an invisible hyphen that gives the browser a place to break the word if it needs to. Otherwise, it will render without the hyphen.

Pseudo-localization and pseudo-translation

When Shopify started working on translating the product (which is now available in 21 languages), they shipped the first six new languages in six months.

“During that process we watched our design break in many areas of the product,” Robyn remembers. “We watched as text started to bleed beyond the bounding boxes of buttons, we watched as our grids started to go into the gutter, and we watched as our navigation became illegible to non-English speaking users.”

We watched as text started to bleed beyond the bounding boxes of buttons, we watched as our grids started to go into the gutter, and we watched as our navigation became illegible to non-English speaking users.

Robyn Larsen, Shopify

To help stress test the designs for your clients and assume the worst case scenario for text expansion, Robyn recommends a technique calledpseudo-localization(a software testing practice that enables you to expand the text through replication of languages). Also check out the pseudo-translation plugin forSketchthat is great for testing how your design might look in various languages—before you even get to the browser.

“作为一个最佳实践考虑压力测试与German,” Robyn suggests. “It’s generally 30 percent longer than English—or with a character-based language like Chinese, Japanese, or Korean, which tends to break core functionality.”

internationalization pseudolocalize hotswap tool
Shopify’s international team built a language hotswap tool to allow developers to stress test the UI in the browser with various languages or pseudo-translations.

Plan for maintainability

Robyn recommends a globalized approach when it comes to images to ensure that your clients’ sites can be maintained more easily, scale, and are not slow to load because of all the translations.

“Let's take a super simple example,” Robyn explains. “For every visual we export to desktop, tablet, and mobile, we also need to export this image to support retina displays. That equates to six images. Add languages into the mix, and that's a whopping 42 images to support seven languages. That's not great for website performance!”

If you use a visual that’s free of text instead, you only have to deal with six images instead of 42 that you can use for all languages.

“A great example of maintainability in production can be found onSlack.com,” Robyn points out. “Their team created a HTML/CSS framework that replicates their product allowing for translations and imagery to easily be swapped out. At Shopify, it inspired us to implement UI illustrations across multiple pages on our Dotcom properties that enable us to display a simplified version of our admin while providing locally relevant content.”

internationalization: culturally independent images
Creating culturally independent images (like onShopify’s email marketing pagein theseEnglish,German, andJapaneseversions) ensure maintainability and save time and effort.

Plan for cultural differences

It’s also crucial for a product to adapt to users’ cultural differences, which goes much further than just translating your client’s site or app into a different language.

“Most modern website designs today feature a simple and clean look with a lot of negative space,” Robyn explains. “In Japan, however, sites feature a lot of densely packed text. That’s not because Japanese sites are localized haphazardly, this look is actually spot on for Japanese consumers, who prefer to see everything on the first page!”

In Canada, for example, Shopify is able to use less traditional imagery to communicate the topic of diversity, while this approach wouldn’t work in Japan, where the culture is still very traditional and sensitive to more liberal images.

internationalization: western versus asian culture preferences
Western cultures favor a more simple look, while websites in Asian countries tend to be very busy, here demonstrated by the .com and .co.jp version of Starbucks.

Structure the content you create with people who speak English as a second language in mind

When designer and illustratorSenongo Akpem, author ofCross-Cultural Design, works on pages with long content or a complex user interface, he finds it very useful to keep his eye on users that speak English as a second language.

“Even if you’re fluent in English, reading on screen can be disorienting, without the visual cues we get when reading in print,” Senongo explains. “One strategy is to give people a breakdown of content at the top of the page. Your readers can scan this list for context and quickly get to the section they want. For longer reports or academic content, these could be one-sentence key takeaways linked to different chapters.”

One strategy is to give people a breakdown of content at the top of the page. Your readers can scan this list for context and quickly get to the section they want.

Senongo Akpem

As a second internationalization strategy, Senongo suggests offering clear user onboarding when working with your clients. This includes providing a transparent, illustrated view of the UI’s organizing principles and functionality, which helps people who may not have a perfect grasp of English to see exactly what they are getting into.

internationalization: UK information site for carer's allowance
UK information sitegov.uk ,created by the Government Digital Service, shows a table of contents at the top of the page on carer’s allowance .

Let your client’s users pick their own locale

Eli Schütze Ramírez, a web engineer atMonzo, uses locales to differentiate website versions when internationalizing. A locale is a combination of a language and a region. For example,en-USis American English, whileen-GBis British English (“en” is the language code for English). But how do you decide what locale you’ll show your client’s users when you’ve localized their app or site?

“There are a few ways you can attempt to guess a user’s preferred locale,” Eli explains. “Use their IP address to infer their location, for example, but that approach is only correct some of the time. You can never truly know whether your user is a local, is travelling, has emigrated, or is perhaps even just learning a new language!”

You might also like:How to Build Multilingual Shopify Apps.

伊莱建议让客户的用户选择ir own locale. Make the locale switcher easy to find on your site, and remember their choice for next time. Avoid representing languages solely as flags, and make sure you write the name of the language in that language, so that the users can easily recognize it.

Select the right internationalization library

Once you have your translations set up for your clients, an i18n library can help pull in the correct text depending on the user’s locale, advisesRobin Dykema, a UI engineer atTaulia.

“Deciding which text to show can become quite tricky when dealing with the rules of gender and pluralization, which vary widely depending on the language,” she acknowledges. “Using a library can minimize this pain and help to pass in dynamic text.”

There are several excellent internationalization frameworks and libraries to choose from. For a smaller application, Robin recommends a lightweight library likePolyglotlocali,这可能提供足够的功能ze properly. For larger and more complex apps, a fully-fledged internationalization framework likei18nextmay be more suitable and provide additional internationalization support, such as detecting browser language and the ability to cache translations. Other popular libraries includeFormat,Lingui, andGlobalize.

internationalization: internationalization library
Internationalization library i18next integrates with popular front-end frameworks such as React, Angular, and Vue as well as Node.js, PHP, iOS, Android, and many more.

Format dates, times, and numbers

Formatting dates, times, and numbers is essential when localizing even if the application you are creating for your client will only ever use English.

“美国日期格式不同于the European,” Robin points out. “For example, a date like ‘2/3/2020’ will be interpreted differently depending on the user’s country of origin. Different countries also prefer different clocks—24 hour vs. 12 hour—and calculating time zones can be very difficult. Numbers will also be formatted differently depending on the region. For example, in the US you would format 123456.78 as 123,456.78, while in Spain, the same number would be formatted as 123.456,78.”

Some internationalization libraries may already come with date- and number-formatting capabilities. For those that don’t, Robin recommends the native browser APIintl—a lightweight option for simple formatting needs. For more complex formatting, a heavier library such asMomentorMoment Timezonemay be more useful. Alternatives includeLuxon,date-fns, andDay.js.

Ensure that the online forms you create for your clients’ projects are inclusive

If your name includes a special character, umlaut or diacritic, or is written in a different script than the English alphabet, you’ll be familiar with the issues that some people run into when filling out forms online.

As Eli points out, developersinfamouslymake many assumptions about people’s names. It doesn’t help that character encoding has historically been a big headache when building for a global audience. Computers used to be very bad at knowing characters outside of the alphabets but luckily, that’s not the case anymore.

“Make sure your website is using Unicode encoding—that’sUTF-8—to ensure your site supports all scripts, alphabets, special characters, and, importantly, emoji,” Eli advises. “Once you have that, allow your forms—crucially, ones where users input their name—to accept more than just A-Z characters to create a user experience that is inclusive to all. This is doubly important if you’re providing an essential service such as banking or education.”

internationalization: Jet2 invalid name issue
UK leisure airlineJet2(left) calls Eli Schütze Ramírez’s name "invalid" and doesn't even accept apostrophes, which can be catastrophic, especially for Irish names.EasyJet(right), on the other hand, takes a much more global approach. There’s no problem with the name.

Consider language-related CSS and CSS logical properties

CSS may not be the first thing that comes to mind when internationalization is mentioned, but designer and developerChen Hui Jingpoints out that, as the purpose of CSS is the presentation of content on the web, it plays, in fact, a significant role, especially for multilingual websites.

You might also like:Embrace Localization and Multilingual Content with HTML and CSS.

She suggests paying attention to the:lang()pseudo-class and CSS logical properties in particular.

The:lang()pseudo-class

The:lang()pseudo-class selector recognizes the language of the content even if the language is declared outside the element.

For example, a line of markup with two languages, like so:

html

We use italics to emphasize words in English, 但是中文则是用着重号.

…can be styled with the following:

css
em:lang(zh) {
font-style: normal;
text-emphasis: dot;
}

If your browser supports thetext-emphasisCSS property, you should be able to see emphasis marks (a typographic symbol traditionally used for emphasis on a run of East Asian text) added to each Chinese character within the. Chrome requires the-webkit-prefix.

See the Pen:lang() pseudo-class selectorby Chen Hui Jing (@huijing) onCodePen.

Although thelangattribute was not applied on theelement, but on its parent, the pseudo-class still works. If we used the more commonly known attribute selectors, e.g.[lang="zh], this attribute must be on theelement to take effect.

CSS logical properties

CSS logical properties are writing-mode agnostic because they are not tied to the physical directions oftop,right,bottom, andleft. When the writing mode of a page runs vertically or right-to-left, using physical directions can become confusing.

而不是物理方向,方向是based on theblockdirection, which is the direction boxes (e.g. paragraphs) stack in a particular writing mode, and theinlinedirection, which is the direction in which content is ordered on a line.

There are corresponding mappings for sizing, for positioning and floats, as well as for borders, margins, and paddings.

The mappings for sizing are as follows:widthtoinline-sizeandheighttoblock-size.

The logical top of a container usesinset-before, while the logical bottom of a container usesinset-after. The logical left of a container usesinset-start, while the logical right of a container usesinset-end.

There are also corresponding mappings for borders, margins, and paddings, which are:

  • toptoblock-start
  • righttoinline-end
  • bottomtoblock-end
  • lefttoinline-start

See the PenCSS Logical properties demo for bordersby Chen Hui Jing (@huijing) onCodePen.

For more on CSS and internationalization, check out Hui Jing’scorresponding blog post.

Translate your international store with Shopify Plus

When your clients sell internationally, they’ll have different options to sort the translation with Shopify Plus, depending on whether their internationalization approach is multi-store ormulticurrency, or what you recommend as a partner.

Alex O’Byrne, co-founder of Shopify Plus agencyWe Make Websites, has dug into the pros and cons:

Multi-store

You run separate stores for each locale, with one language per store:

  • There’s just one language throughout the front-end
  • No extra translation apps are needed, so no extra cost and no risk of incompatibility with other front-end apps
  • It’s better for SEO as the site is truly and natively in that language

The main drawback is the greater resources needed to maintain content and theme translations across stores. You also require a way of maintaining multiple copies of the same theme codebase, such as scripted deployments that target all stores.

Multicurrency

You run a single store translating to multiple languages, through either:

1. The Shopify multi-language API

  • This is the newest, more favorable option.
  • It requires a supported third-party translation app installed, and a compatible theme.
  • Limited apps are compatible with multi-languages.
  • It allows Shopify merchants to translate into five additional languages and Plus merchants into 20.
  • This approach is kind to your SEO:
      • Each language is hosted on a sub-folder of your site, letting search engines crawl them independently.
      • hreflangtags are implemented automatically, helping search engines understand the targeting of each language.

2. Third-party apps, translating the store dynamically

  • This is a dated strategy, popular before the release of Shopify’s multi-language API
  • Translations are done through JavaScript, resulting in a localized customer experience
  • This approach can be lethal to SEO

There’s your snapshot! Oh, and here are a few translation tips:

  • Google Translate is a no-go. Stick to native speakers if possible to help you with the translation.
  • Prioritize your clients’ top-selling products when it comes to translations.
  • Getting the tone of voice properly translated is crucial.

Designing for diversity

The web is connecting more people in more places than ever before, andmany now come from emerging markets such as India, Indonesia, Brazil, and Nigeria. It’s not good enough to design and develop with only Western audiences in mind. If your client wants to break into new markets, it’s crucial that their websites and apps reflect the true diversity of the world.

以达到更多的用户没有疏远(or even frustrating and offending them), learn internationalization and localization techniques like the ones featured in this article, even if your client’s customers might be mostly English speakers. Don’t rely on assumptions, and remember that many cultures are completely different to your own. Design and develop with these differences in mind from the start, and you’ll improve the UX of your client’s site, which ultimately will increase conversions.

Topics:

Grow your business with the Shopify Partner Program

Learn more