情報を探しても「〇〇できる」としか書いてないことが多い印象で、テーマをカスタマイズする際にどこがどうなのかを把握する目的の個人的メモです。
完成した記事ではなく、修正含めて書けることがあれば逐次書き足す予定です。
[2020.2.16]
いろいろ見直し中なので、落ち着くまでは参考にされないことをお勧めします。
前提
- 開発ストアを使用
以前は「開発者プレビューを使用する」にチェックを入れ、「Shopify Markets」を選ぶ必要があった模様ですが、2022.2現在、開発者プレビューを使用せずともShopify Marketsは使用可能でした。
ただし開発者プレビューを選ぶか否かで機能面にどのような差異がでるのかは確認できていません。
確認した時点ではですが、既存の開発ストアではShopify Marketsは有効になっておらず、また有効にすることもできず、新規作成した開発ストアであれば利用可能という状況です。
以降は確認したことをメモ的に。
現状穴だらけであり個人の推測なので、読まれる方は鵜呑みにしないようにお願いします。
参考
- 海外販売に必要なものがすべてそろう | Shopify Markets – Shopify 日本
- Shopify Markets グローバル展開戦略の構築方法:単一店舗から世界へ【2022年版】 – Shopify 日本
以下は公式ヘルプ。
概要
複数の言語での販売に対応したテーマ。Shopifyの無料のテーマはすべて互換性があります。複数の言語での販売に対応できるようするために、テーマを更新する必要がある場合があります。サードパーティのテーマを使用している場合は、テーマ開発者に連絡して互換性があるかどうかを確認することができます。
後述の多言語や多通貨の部分で記載していますが、確認した範囲では各言語に対応した翻訳文はShopifyのシステム側で選択されるようなので、テーマ側は通常のタグを書いておけば問題ないように思えました。
そのため互換性に関わる部分がどこなのかは把握できていないのですが、ヘルプに記載されているぐらいなのでテーマ選定時には確認をした方が良いとは思います。
言語セレクターがあるテーマ。別のテーマや古いバージョンを使用している場合は、ShopifyのGeolocationアプリを使用して言語セレクターを追加できます。
日本語的に読みにくいのですが、言語セレクターを搭載しているテーマであればそのセレクターで動作させられるので問題ないようです。
対して言語セレクターがないテーマは、Geolocationアプリを使用してセレクターをつけることで任意の言語切り替えが実行できます。
多言語化
多言語化自体はShopify Marketsの項目で設定せずとも言語の設定のみで対応可能です。
Shopify Marketsの項目でマーケットを設定することにより、この多言語化したストアを各ユーザーの環境に合わせて適切に表示させることになるはずです。
ただし、後述するGeolocationアプリを入れる必要があるかもしれません。
言語の追加
言語の追加に関しては以下のような流れで対応可能です。
- 「設定」の「言語」の「翻訳された言語」で「言語を追加する」ボタンを押して追加する
- 画面上部の「エクスポート」で翻訳用CSVファイルをダウンロードし、編集してインポート
- 追加した言語横の「公開する」ボタンを押す
基本的には上記だけで多言語化自体は可能です。
ただし多少反映に時間がかかるようなので、後述するURLにアクセスしても404になる場合は時間をおくことをお勧めします。
URL
英語を公開してもよろしいですか?この言語で、あなたのオンラインストアとお客様通知が公開されます。
あなたのオンラインストアで言語を公開すると、その言語の新しいURLが生成されます。訪問者は、英語版のサイトをhttps://example.myshopify.com/enで閲覧することができます
英語を追加した際に上記のような一文がポップアップで表示され、追加した言語がサブディレクトリ型であることが確認できます。
開発ストアでは項目がグレーアウトしていて選べませんが、以下のようにサブドメイン型にすることも可能です(未確認)。
翻訳文の編集
- 「設定」の「言語」の画面上部の「エクスポート」で翻訳用CSVファイルをダウンロードし、編集してインポート
既に少し触れていますが上記で翻訳を編集可能です。
留意した方が良さそうな点は以下の通り。
- 編集対象はTranslated contentであり、初期値のDefault contentは編集できない(編集しても無視される)
- HTMLやLiquidのタグが内容に含まれるため、記述ミスがあると表示が壊れる可能性がある
- MatrixifyなどのCSVアプリでは翻訳を編集できない(未確定/探せていないだけの可能性もあり)
項目を見たところ、ストアやメールのテンプレート(SMS含む)のほか、テーマや商品コンテンツ、ポリシー、チェックを入れればメタフィールドの翻訳も可能です。
CSVの翻訳対象を把握し切れていないのですが、おそらく以下のようになるかと思います。
- カスタマイズで入力可能なテキスト欄
※おそらくliquid内のschemaでdefaultが指定されている箇所 - 各種メールテンプレート(SMS含む)
- ブログやコレクションのタイトル/ディスクリプションなど
- 商品のタイトル/コンテンツ/メタフィールド/オプションなど
- ブログ記事のタイトル/コンテンツ/メタフィールドなど
- ページやプライバシーポリシーのタイトル/コンテンツ/メタフィールドなど
- メニューのラベル
おそらく翻訳対象に含まれないのは以下の通り。
- .jsonに記載された項目
※テーマの「言語の編集」で編集可能な項目など - .schema.jsonに記載された項目
※カスタマイズ画面で表示されるUIなど
翻訳対象となる項目は以下のドキュメントで確認可能です。
翻訳可能な項目の抜粋実例を見る
※Identificationは数値ですが、桁数が多いので簡略化しています
※Identification先頭の'はエクスポートしたファイルに記載されていますが、出力形式によって違いがあるかもしれません
Type | Identification | Field | Locale | Status | Default content | Translated content |
---|---|---|---|---|---|---|
COLLECTION | ‘000 | title | en | ホームページ | ||
COLLECTION | ‘000 | body_html | en | 投稿欄に入力された内容 | ||
DELIVERY_METHOD_DEFINITION | ‘111 | name | en | Pickup | ||
DELIVERY_METHOD_DEFINITION | ‘111 | name | en | Standard | ||
EMAIL_TEMPLATE | ‘222 | title | en | A shipment from order {{ name }} is on the way A shipment from order {{ name }} is on the way | ||
EMAIL_TEMPLATE | ‘222 | body_html | en | {% if fulfillment.item_count == item_count %} {% capture email_title %}Your order is on the way{% endcapture %} ※省略 |
||
LINK | ‘3331 | title | en | Home | ||
LINK | ‘3332 | title | en | All Products | ||
METAFIELD | ‘4441 | value | en | ※Product Review用のコードなど | ||
ONLINE_STORE_ARTICLE | ‘555 | title | en | ブログ記事タイトル | ||
ONLINE_STORE_ARTICLE | ‘555 | body_html | en | ブログ記事コンテンツ | ||
ONLINE_STORE_ARTICLE | ‘555 | summary_html | en | |||
ONLINE_STORE_ARTICLE | ‘555 | meta_title | en | |||
ONLINE_STORE_ARTICLE | ‘555 | meta_description | en | |||
ONLINE_STORE_BLOG | ‘666 | title | en | |||
ONLINE_STORE_BLOG | ‘666 | meta_title | en | |||
ONLINE_STORE_BLOG | ‘666 | meta_description | en | |||
ONLINE_STORE_MENU | ‘777 | title | en | メインメニュー | ||
ONLINE_STORE_PAGE | ‘888 | title | en | ページタイトル | ||
ONLINE_STORE_PAGE | ‘888 | body_html | en | ページコンテンツ | ||
ONLINE_STORE_PAGE | ‘888 | meta_title | en | ページタイトル | ||
ONLINE_STORE_PAGE | ‘888 | meta_description | en | ページコンテンツ | ||
ONLINE_STORE_THEME | ‘999 | section.announcement-bar.announcement-bar-0.text | en | Welcome to our store | ||
PACKING_SLIP_TEMPLATE | ‘110 | body | en | ※テンプレート内容 | ||
PRODUCT | ‘120 | title | en | 7 Shakra Bracelet | ||
PRODUCT | ‘120 | body_html | en | 7 chakra bracelet, in blue or black. | ||
PRODUCT | ‘120 | meta_title | en | |||
PRODUCT | ‘120 | meta_description | en | |||
PRODUCT_OPTION | ‘1301 | name | en | Color | ||
PRODUCT_OPTION | ‘1302 | name | en | Size | ||
PRODUCT_VARIANT | ‘140 | title | en | Small / Red | ||
PRODUCT_VARIANT | ‘140 | option1 | en | Small | ||
PRODUCT_VARIANT | ‘140 | option2 | en | Red | ||
PRODUCT_VARIANT | ‘140 | option3 | en | |||
SHOP_POLICY | ‘150 | option3 | en | We have a 30-day return policy, which means you have 30 days after receiving your item to request a return. ※省略 |
||
SMS_TEMPLATE | ‘150 | body | en | {{ shop.name }}からのご注文はキャンセルされ、{{ order.total_price | money }}が返金されました。 Your order from {{ shop.name }} has been canceled and you’ve been refunded {{ order.total_price | money }}. |
メタフィールドの翻訳に関する留意点
- 単一テキストタイプの場合、改行をいれるとエラーでインポートできない
- JSONタイプの場合、はおそらく問題が出る
詳細は「ShopifyのJSONタイプのメタフィールドと翻訳に関する問題:メモ」の記事を参照のこと
メタフィールド自体は翻訳対象ですが、多少問題になり得る部分がありますので事前にテストしておいた方が安全です。
翻訳文の表示
- 商品のタイトルや説明文など含めて、テーマ側で作業する必要はない
- 各言語のURLにアクセスすれば翻訳文が表示される
多言語化アプリのようにテーマ内の各部を翻訳用タグで囲むようなことにならず、内部で処理されます。
複数の言語で販売する場合の制限
- この機能でサポートされているのは、互換性のある外部の翻訳アプリのみです。
- タグ (商品タグ、記事タグ、ブログタグなど) を翻訳することはできません。
- お客様が公開済みの異なる言語でサイトを表示している場合でも、/products/large-white-t-shirtなどの商品URLは翻訳されず、作成された言語のままになります。
- Shopify Marketsを使用している場合、テーマの主な言語を地域特有の言語にすることはできません。たとえば、主な言語はEnglish (United States)に変更することはできず、Englishとする必要があります。
上記のように制限事項が記載されていますので引用しつつ簡単ながら検討します。
外部の翻訳アプリ
この機能でサポートされているのは、互換性のある外部の翻訳アプリのみです。
外部のアプリのリンク先には以下のように書かれていますので、単純に考えればShopifyの多言語機能を利用するアプリなら問題ないとうことになります。
Works with Store Languages
Sell in multiple languages with apps that work with Shopify’s store languages section.
表示されたアプリ内にLangShopがありますが、以下のように対応していると書かれていました。
Integrated with Shopify Translation native API
タグ
タグ (商品タグ、記事タグ、ブログタグなど) を翻訳することはできません。
タグの翻訳の要望はそれなりに高いと思いますが、対応してません。
URL
お客様が公開済みの異なる言語でサイトを表示している場合でも、/products/large-white-t-shirtなどの商品URLは翻訳されず、作成された言語のままになります。
理解できていませんが、「英語URLを日本語URLに変換する」ようなことであればそれほど問題ないように思います。必須の機能とも思えませんし。
テーマの主な言語
Shopify Marketsを使用している場合、テーマの主な言語を地域特有の言語にすることはできません。たとえば、主な言語はEnglish (United States)に変更することはできず、Englishとする必要があります。
おそらく「テーマの言語」で選べる言語の種類に関することかと思いますが、詳細が把握できていません。
そもそもEnglish (United States)とEnglishとはどれとどれのことなのか…。
多通貨化
Shopifyは元々多通貨の機能はもっていますが、Shopify Marketsを使うことで通貨関連の設定もごとにまとめて管理できるようになります。
通貨セレクター備わっているテーマか、>Geolocationアプリなどで通貨セレクターを表示させることで、任意の通貨に変更することができますが、この点はShopify Marketsの有無にかかわらないようには思います。
セレクター
言語を追加した時点で指定のURLにアクセスすれば、対象言語でストアを確認できます。
しかしこのままでは追加した他言語のストアを表示させる方法がURL直打ちしかありません。
そこで管理画面でも勧められている以下のアプリなどを使うことが検討できます。
- Geolocation – Boost global sales with country and language recommendations. | Shopify App Store
- Geolocationアプリを使用する · Shopify ヘルプセンター
2つ目のリンク先のヘルプに書かれていますが、Geolocationアプリを使うにはShopifyペイメントを有効にする必要があります。
開発ストアの決済テストモードでも動作しますが、こちらも反映に少し時間が必要なようなので、セレクターが表示されない場合は少し時間をおいてください。
ただし、Shopifyペイメントを有効化せずとも言語セレクターは表示されたので、通貨セレクターが不要ならShopifyペイメントなしでも試せると思います。
Geolocationアプリ
上記のレビューを読むのが早いですが、2022.2現在の評価は星2つと低評価です。
一応ポップアップを出す機能はあるものの、セレクター自体はフッターに表示されるためページ上部だけ見える状態では言語切り替えの有無は判断できないのは問題かもしれません。
ただしShopify MarketsとGeolocationアプリの組み合わせは、自動で通貨と言語を表示させるのが基本のようなので、セレクターによる変更機能の優先度は低いと考えられます。
つまり手動で通貨や言語を変更するという操作の優先度は低く、フッターという使いにくい場所にあることは意図した状態であると思われます。
現状が不満であれば、URLがサブディレクトリ型という形式がわかっているのですから言語セレクターを自作するか、CSSで下部固定するなどでの対応が考えられます。
参考
- Shopify Markets :ネットショップのグローバル展開をもっと簡単に – Shopify Community
他よりもう少し具体的な記述があるShopifyスタッフからの情報
結び
Shopify Marketsとテーマの関係に関しては、基本的にあまり気にしなくとも良さそうではあります。
なお、まだ調査中ですがShopify Marketsを使ったからと言って、自動で環境に応じた言語や通貨が表示されるわけではなさそうです。
Geolocationアプリが表示するポップアップが近い役目を果たしますが、Geolocationアプリも入れない素の状態であれば特に動作しないような気はします。
ただし、Googleなどの検索エンジンはURLを元に利用者の言語ごとに表示するページを選ぶことが可能ではあるので、検索エンジン経由であれば少なくとも各言語ストアの自動表示は可能と言えなくもないかもしれません。
0人がこの記事を評価
役に立ったよという方は上の「記事を評価する」ボタンをクリックしてもらえると嬉しいです。
連投防止のためにCookie使用。SNSへの投稿など他サービスとの連動は一切ありません。