Shopifyで国や言語を判定する

窓辺

必要になるたびに検索して試して表示されない。と悩むのでメモとして。

実現したいこと

  • Shopifyで言語や国を判定する
  • 言語はサブディレクトリ型で設定(サブドメイン型でも同じはず)
  • マーケットで国と言語を設定

サンプルコード2


言語を判定する
{%- liquid
  case request.locale.iso_code
    when 'en'
      echo '英語'
    when 'ja'
      echo '日本語'
    else
      echo 'その他'
  endcase
-%}

国を判定する
{%- liquid
  case localization.country.iso_code
    when 'US'
      echo 'US(アメリカ合衆国)'
    when 'JP'
      echo '日本'
    else
      echo 'その他'
  endcase
-%}

ストアデフォルト言語


{{ shop.published_locales | where: 'primary', true | map: 'iso_code' | first }}

多少強引ですが上記でストアのデフォルト言語のisoコードを取得可能でした。
もっと簡単に取得できるのではと思いますが、調べた範囲では取得方法が分かりませんでした。

上記を利用して以下のようにデフォルト言語の時のみ出力する内容を変更することが可能です。


{% liquid
    assign resuest_lang = request.locale.iso_code
    assign shop_locale_lang = shop.published_locales | where: 'primary', true | map: 'iso_code' | first
    if resuest_lang == shop_locale_lang
      echo 'デフォルト言語'
    else
      echo '追加言語'
    endif
%}

参考URL

マーケットによる判定


{{ localization.market.handle }}

上記でハンドルが取得できるようです。

結び

国も言語も最終的にはiso_codeを用いますが、それぞれ別のオブジェクトからアクセスする必要があるようです。

1人がこの記事を評価

役に立ったよという方は上の「記事を評価する」ボタンをクリックしてもらえると嬉しいです。

連投防止のためにCookie使用。SNSへの投稿など他サービスとの連動は一切ありません。

コメント欄