← inaro.devShopify学習ツール
09-10

設定の翻訳(schema locales)と文言のtフィルタ

schemaのラベルとストアフロントの文言を翻訳ファイルに切り出し、多言語対応と運用者向けの日本語UIを両立できる

最終確認: 2026-09

解説

受託の現場でなぜ必要か: この回では、schemaのラベルとストアフロントの文言を、翻訳ファイルに切り出せるようになります。
受託では「カートに入れる」を直書きすると運用者が文言を変えられないので、日本語だけのストアでも翻訳ファイルに切り出します。

翻訳ファイルは2種類ある

locales/ja.jsonはストアフロントの文言で、運用者が言語エディタで編集できます。
locales/ja.schema.jsonはテーマエディタの設定ラベルです。
*.default.json*.default.schema.jsonが、それぞれ1つ必須です。

schemaのラベルはt:で引く

"label": "t:sections.hero.settings.heading.label"のようにt:で始めると、schema用のファイルから引かれます。
name / label / info / placeholder / unit、optionsのlabel、presetsのnamecategory、テキスト系のdefaultが対応します。

ストアフロントの文言はtフィルタで引く

{{ 'products.product.add_to_cart' | t }}で、locales/ja.jsonから引きます。
変数はt: name: customer.first_nameのように渡します。
HTMLを含む文言は、キーを_htmlで終えます(escapeされません)。

発展:複数形と、翻訳が無いときの表示

複数形は{{ 'cart.count' | t: count: cart.item_count }}one / otherを切り替え、{{ count }}を埋め込みます(CLDRのzero / two / few / manyも使えます)。
日本語はotherだけでよいのですが、英語化を見越してoneも書きます。
翻訳が無いキーは、ストアフロントにTranslation missing: ja.〜という文字列がそのまま出ます。
目立つのですぐ気づきますが、公開前に必ず確認します。

ステップ1 / 2

ShopifyはShopify Inc.の商標です。本サイトは個人が制作した非公式の学習教材であり、同社の承認・提携・後援を受けていません。記載内容は2026-09時点のものです。料金・上限値・管理画面のラベルは変わるため、作業の前に公式ドキュメントで確認してください。