My store currently supports two languages:
English and Japanese, with English set as the default language.
Whenever I needed to update translations, I used Shopify’s Translate & Adapt app.
However, while editing my theme recently, I noticed that the Japanese locale file at:
locales/ja.json
contains translations under a key:
{
....
"customer_account": {
...
}
}
I found this confusing because I assumed that translations (default non-theme like checkout) managed through Translate & Adapt were stored separately from the theme’s locale files.
I also have some English (United States) overrides for the en-US locale. However, those overrides do not appear in:
locales/en.default.json
Shopify also did not create a separate locales/en-US.json file in the theme.
I wonder if I create a en-US.json file it will appear.
I would also like to understand:
Why some Japanese translations appear directly in ja.json.
Translate & Adapt stores all translations (that are not Shopify-managed)
Theme locale files only store default translations referenced in the theme code (and was historically used in theme code such as customer accounts and checkout)
If you made en-US overrides, they might not have been made in the Translate & Adapt category shown above, which would explain why there’s no separate en-US.json locale file.
I believe my question may have been misunderstood.
I understand that theme locale files contain strings referenced by the theme, while Shopify-managed checkout and system translations are stored outside the theme.
What I am specifically trying to understand is:
Why does locales/ja.json contain a customer_account namespace? Is something old or new way?
I created English content overrides for the United States through Translate & Adapt, but no locales/en-US.json file was created. Are these overrides stored as market-specific Translation API records, such as an English translation associated with the United States market, rather than as theme locale-file content?
I am trying to understand the exact storage and precedence between theme locale files, Shopify translation records, and market-specific adaptations.
Translate across markets for Japanese updates the theme’s locales/ja.json file.
Adapt a market for English and the United States is stored separately by Shopify as market-specific adaptation data and is not stored in the theme files.
I also have separate live and development stores, so I need to keep their localization content synchronized.
For secondary-language translations, I can normally export the language CSV from one store and import it into the other. However, it appears that CSV imports cannot be used for the store’s default language.
For the market content, is manual editing in Translate & Adapt the only supported method?
The primary language, is the data stored directly on e.g. the products themselves, as such, if you want to export the primary language you would essentially export the main fields.
Secondary languages are stored in a translation field, these can be accessed through Translate & Adapt which is one method. Manual editing in Translate & Adapt is one way to go about it, however there are several tools (also in Shopify app store) to automate translations using different automated methods.
Locale files are straightforward to synchronize across stores since you can simply export and import the theme file. For translations managed by Translate & Adapt, I agree with @Kaelder’s approach.