Add a language to your store in Shopify
Adding a language lets customers read your store in their own language, but adding it is only the first half of the job: the words still need translating. This tutorial adds French to the example store and tracks the translation coverage across the theme, the products and the emails.
Written · Shopify admin, desktop steps · 6 minutes read
The worked example
| Language added | French |
| Theme strings translated | 96 of 120 |
| Coverage | 80.0% |
| Product descriptions | 32 of 40 |
| Checkout | Pre-translated |
Download the tracker: language-translation-tracker.csv (154 bytes).
A translation tracker for the worked example language. The three content rows sum to 175 strings, 140 translated, which is 80.0% coverage.
1Open Languages
From your Shopify admin, go to Settings then Languages. You can manage multiple languages in your store in the Languages section, and manage languages for each of your markets in the Markets section.
2Check the requirements
Check the requirements before you add the language. Your store must be on the Basic plan or higher, your active theme must have a language selector, and you need the Translate and Adapt app, a compatible third-party translation app, or a CSV import for your translations.
3Add the language
Add French to your store. Adding a language only adds translations in supported languages to supported themes and checkouts, so it does not translate your product descriptions or your pages on its own.
4Provide the translations
Provide the translations before you publish. You must provide the translations when adding languages to your store, so have them ready, or have a translation app installed and the language assigned to a market. You can use the Translate and Adapt app to import your translated content.
5Assign the language to a domain
Assign French to a domain in Settings then Languages: open the menu beside French, click Assign to domain, and turn on each domain you want to make the language available on. Languages are assigned to domains, and each market uses a domain, so a language assigned to a domain reaches the customers in every market that uses that domain. A language that is added but not assigned to a domain will not reach those customers.
6Check the checkout and the emails
After you add and publish a language, the translated content is displayed in the checkout and in any email notifications sent to your customer. The checkout displays in the same language the customer uses to browse your online store.
7Check the regional URLs
Check the regional URLs. When customers land on a regional URL, your store automatically displays the translated version if translations exist, and whenever translations do not exist, your online store displays content in your primary language.
The arithmetic
| Content | Strings | Translated |
|---|---|---|
| Theme strings | 120 | 96 |
| Product descriptions | 40 | 32 |
| Email templates | 15 | 12 |
| Total | 175 | 140 |
Coverage is 96 divided by 120, 32 divided by 40 and 12 divided by 15, which is 80.0% in each row. Overall coverage is 140 divided by 175, which is 80.0%, with 35 strings still to translate.
Held at the counter
Adding a language does not translate your content. Adding a language only adds translations in supported languages to supported themes and checkouts. For product descriptions, pages and emails, you need to import translations or use an app.
Without translations the store falls back to the primary language. Whenever translations do not exist, your online store displays content in your primary language. A published language with no translations gives the customer the English store with a French address bar.
Changing the default language removes the old default. After you change the default language of your online store, your previous default language is removed from Settings then Languages. To set it as a secondary language, add it back in Languages and assign it to a domain.
Sources
- Managing your store's languages — Shopify's help pages: the add-language steps, publishing and unpublishing, assigning a language to a domain, and the translation statuses.