Pazar ve dil adresleri: /fr/, /en-ca/ ve ?country=
Shopify uluslararası adresleri nasıl kurar: /fr/ ve /en-ca/ gibi klasörler, alt alan adları ve alan adları, ?country= linkleri ve temada dile duyarlı linkler.
- Alt klasör
- your-store.com/fr/, /en-ca/
- Ülke linki
- ?country=<ISO kodu>
- Nerede
- Markets > pazar > Domain / language
- SEO
- Otomatik hreflang ve kendine işaret eden canonical
- Son kontrol
Kısaca
Shopify, yayındaki her dile ve her pazara kendi adresini verir: varsayılan olarak your-store.com/fr/ ya da /en-ca/ gibi bir alt klasör, isterseniz Markets > Domain / language altında ayarladığınız bir alt alan adı veya ayrı bir alan adı. Çok ülkeli bir pazarın içindeki tek bir ülkeye kampanya göndermek için ?country=DE ekleyin. Temalarda linkleri Liquid’de routes.*, JavaScript’te Shopify.routes.root ile kurun ki ziyaretçi dilini ve para birimini korusun.
Nasıl kullanılır
- Dili Settings > Languages altında ekleyip yayınlayın; Shopify /<dil>/ yolunu oluşturur.
- Markets altında bir pazarı açın ve onun için alt klasör, alt alan adı ya da üst düzey alan adı seçin.
- Temada sabit yazılmış /cart, /search ve /collections linklerini routes.cart_url, routes.search_url ve nesnelerin .url değerleriyle değiştirin.
- Kendi adresi olmayan tek bir ülkeye yönelik kampanyalarda your-store.com?country=<kod> adresine link verin.
Kod
locale-aware-links.liquid{%- comment -%}
Never hardcode /cart or /search: a visitor on /fr/ or /en-ca/ would be sent
back to the default language and currency. routes.* and object .url values
include the current locale path.
{%- endcomment -%}
<a href="{{ routes.cart_url }}">Cart</a>
<a href="{{ routes.all_products_collection_url }}">All products</a>
<a href="{{ product.url }}">{{ product.title }}</a>
{%- comment -%} The same rule in JavaScript: build on Shopify.routes.root ("/" or "/fr/"). {%- endcomment -%}
<script>
fetch(window.Shopify.routes.root + 'cart.js')
.then((response) => response.json())
.then((cart) => console.log(cart.currency))
.catch((error) => console.error(error));
</script>
{%- comment -%}
A country switcher posts to /localization with country_code, which switches
the visitor's country and currency. Output it only if there's a choice.
{%- endcomment -%}
{%- if localization.available_countries.size > 1 -%}
{% form 'localization' %}
<select name="country_code" onchange="this.form.submit()">
{%- for country in localization.available_countries -%}
<option value="{{ country.iso_code }}" {% if country.iso_code == localization.country.iso_code %}selected{% endif %}>
{{ country.name }} ({{ country.currency.iso_code }})
</option>
{%- endfor -%}
</select>
{% endform %}
{%- endif -%}
urls.txt# Subfolder per language: Shopify creates it when you publish a language
https://your-store.com/ primary language
https://your-store.com/fr/ French
# Subfolder per market on the same domain, for example a Canada market
https://your-store.com/en-ca/
https://your-store.com/en-ca/products/example-product
# Other domain strategies set under Markets > (market) > Domain / language
https://fr.your-store.com/ subdomain
https://your-store.fr/ top-level domain
# Deep link to one country inside a multi-country market (ISO 3166 code)
https://your-store.com?country=DE
# Cart permalinks and Ajax calls keep working under the prefix
https://your-store.com/fr/cart/12345678901234:1
https://your-store.com/en-ca/cart.js
Lintel tarafından yazıldı. MIT lisansı: kendi mağazanızda da müşteri işlerinizde de ücretsiz kullanabilirsiniz.
Sınırlar ve özel durumlar
- Shopify her alt klasör ve alan adı için hreflang etiketlerini ve kendine işaret eden canonical’ları ekler; bu yüzden /fr/products/shirt, /products/shirt’ün kopyası sayılmaz.
- AB’deki ziyaretçiler AB ülkeleri arasında otomatik yönlendirilmez; bir ülke seçici sunun.
- Sabit yazılmış bir /cart linki, /fr/ altındaki ziyaretçiyi varsayılan dile ve para birimine geri gönderir.
- Uluslararası alan adları için özel bir alan adı gerekir; myshopify.com bu iş için kullanılamaz.
Sık sorulan sorular
- Shopify dil adresleri nasıl çalışır?
- Her yayındaki dil, Markets altında ona ayrı bir alt alan adı ya da alan adı atamadıysanız, alan adında /fr/ gibi bir yol alır.
- Shopify Markets’te belirli bir ülkeye nasıl link verilir?
- Pazarın kendi adresi varsa onu kullanın; yoksa linke ?country=DE (herhangi bir ISO ülke kodu) ekleyin.
- Shopify pazar alt klasörleri SEO’ya zarar verir mi?
- Hayır. Shopify sürümleri birbirine bağlayan hreflang ve canonical etiketlerini ekler; alt klasörler ana alan adının otoritesini paylaşır.
- Sepeti açınca para birimi neden değişiyor?
- Genellikle temada sabit yazılmış bir /cart linki yüzünden. Pazarın yolu korunsun diye routes.cart_url kullanın.
Shopify belgeleri
- Gösterilen tarihte bir Shopify mağazasında denendi. Shopify yönetim panelini sık değiştirir; bir adım farklı görünüyorsa fikir genellikle hâlâ geçerlidir.
- Örneklerde yer tutucu ID’ler ve your-store.myshopify.com kullanılır. Kendi değerlerinizle değiştirin.
- Kod parçaları MIT lisanslıdır.
Mağazanız için kurulmasını, test edilmesini ve bakımını isterseniz: Shopify geliştirme.
