This guide explains how to translate your Shopify theme for both:
Stores using only one non-English language
Multi-language stores
You can also read Shopify’s official documentation here:
Shopify – Translate your theme
Example: Your store only uses one language such as Arabic, German, French, Vietnamese...
From your Shopify Admin:
Settings → LanguagesSelect the language you want to use as the main language of your store.

After changing to another language, you may notice this issue: Translation missing: ar.onboarding.product_title
This happens because the theme may not include full translations for your selected language.
Please go to:
Online Store → Themes → Actions → Edit default theme contentThen search and manually add the missing translations.
You can also refer to this guide: How to solve missing translation errors
Example: Your store uses multiple languages such as:
English
Arabic
German
From Shopify Admin:
Settings → LanguagesAdd the languages you want to support then click Publish the language.

The theme only supports translating theme interface content such as: Cart, Search, Header, Footer, Buttons, and default theme texts...
However, content created directly from Shopify Admin such as: Product descriptions, Collection descriptions, Pages, Blog posts, Navigation menus, Meta fields... cannot be fully translated using only the theme locale files.
For multi-language stores, using a translation app is highly recommended.
Popular translation apps:
Translate & Adapt: Free app from Shopify, suitable for most basic stores.
Weglot: AI & Human Translate: Supports automatic translation and multilingual SEO.
Langify: Good for detailed manual translation control.
T Lab - AI Language Translate: AI-powered translation with automatic content syncing.

If you want more control over translations, you can manually edit the locale files.
Go to:
Online Store → Themes → Edit code
Then open:
/localesExample locale files:
ar.json
de.json
fr.json
vi.jsonUse:
/locales/en.default.jsonas the reference file for translation.
Example:
"cart_count": {
"zero": "Cart is empty",
"one": "Item in cart: {{ count }}",
"other": "Total items in cart: {{ count }}"
},Translated version:
"cart_count": {
"zero": "Warenkorb ist leer",
"one": "Artikel im Warenkorb: {{ count }}",
"other": "Gesamtanzahl Artikel im Warenkorb: {{ count }}"
},
You can use AI tools such as:
ChatGPT to help translate smaller parts of locale files.
Important notes:
Do not translate very large files at once
Translate smaller sections step by step
Keep special variables unchanged:
{{ }}
{{{ }}}
%s
HTML tags
Example:
"cart.general.total": "Total: {{ price }}"AI tools may accidentally remove variables like {{ price }} if not handled carefully.

If you have any issues with translations or need assistance, please open a support ticket. We will be happy to help you complete your store translation setup.