Confused how translations are stored

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:

  1. Why some Japanese translations appear directly in ja.json.
  2. Where the en-US translation overrides are stored.

Hi @0_0, you can think of it this why:

  • 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.

Hi @Paige-Shopify
Thank you for replying

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:

  1. Why does locales/ja.json contain a customer_account namespace? Is something old or new way?

  2. 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.

Thanks for clarifying, I see what you’re asking now.

  1. In Translate & Adapt > Default theme content > Translate across markets > Japanese, the changes update the theme’s locale files.
  2. In Translate & Adapt > Default theme content > Adapt a market > English, the changes are market-specific and do not update the theme’s locale files.

The key difference is language changes across markets versus market-specific adaptations (not supported by theme locale files).

Thank you, that clarifies the difference.

Would it be accurate to summarize it as follows?

  • 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.

Yes, that’s right.

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.