テーマの翻訳の仕組み
テーマ内の文言をハードコードせず、localesファイルとtフィルタで管理できる
最終確認: 2026-09
解説
受託の現場でなぜ必要か: この回では、テーマの文言を翻訳ファイルに切り出し、tフィルタで呼び出せるようになります。
受託では、「カートに入れる」を「かごに入れる」に変えたいという依頼を、運用者が自分で直せる形で納品できます。
翻訳ファイルとは、文言をLiquidの外に置く仕組み
文言はlocales/ja.json(翻訳ファイル)にキーと一緒に置きます。
Liquid側には{{ 'general.search.placeholder' | t }}のように、キーだけを書きます。
文言を直接書いたテーマは、多言語化でも運用者の修正でも行き詰まります。
英語化が翻訳の追加だけで済むのが、この仕組みの利点です。
翻訳ファイルはどう見分けるか
en.default.jsonが既定の言語で、ja.jsonが日本語です。*.schema.jsonはテーマエディタの設定ラベル用で、ストアフロント(お客さまが見る画面)の文言とは別のファイルです。
既定ファイル名の`default`の付け方を誤ると、翻訳全体が壊れます。
変数や複数形はどう扱うか
{{ 'cart.items' | t: count: cart.item_count }}のように、tフィルタに変数を渡せます。
翻訳ファイル側ではone / otherのキーで複数形を分けられます。
日本語ではotherだけで済む場合が多いです。
発展:文言が出ない・変わらないときの原因
キーが翻訳ファイルに無いと、translation missing: ja.xxxがそのまま画面に出ます。
Theme CheckのTranslationKeyExistsは既定ロケールに無いキーを、MatchingTranslationsはロケールファイル間のキーの過不足を、書いている段階で見つけます。
もう1つの定番は、Translate & Adapt(翻訳アプリ)での上書きです。
運用者がそこで直した翻訳は、テーマのlocalesより優先されます。
「テーマを直したのに反映されない」ときは、まずここを疑います。
※ ShopifyはShopify Inc.の商標です。本サイトは個人が制作した非公式の学習教材であり、同社の承認・提携・後援を受けていません。記載内容は2026-09時点のものです。料金・上限値・管理画面のラベルは変わるため、作業の前に公式ドキュメントで確認してください。