# 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.

Sayfa: https://lintelagency.com/tr/kaynaklar/shopify-ipuclari/pazar-ve-dil-adresleri

## 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.

## Bilgiler

- **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:** 2 Kasım 2026

## Nasıl kullanılır

1. Dili Settings > Languages altında ekleyip yayınlayın; Shopify /<dil>/ yolunu oluşturur.
2. 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.
3. Temada sabit yazılmış /cart, /search ve /collections linklerini routes.cart_url, routes.search_url ve nesnelerin .url değerleriyle değiştirin.
4. Kendi adresi olmayan tek bir ülkeye yönelik kampanyalarda your-store.com?country=<kod> adresine link verin.

## Kod

### locale-aware-links.liquid

```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

```text
# 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
```

## 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.

## 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

- [Domains and languages for markets](https://help.shopify.com/en/manual/markets/customizations/domains-and-languages)
- [International domains and deep links](https://help.shopify.com/en/manual/international/managing-international-domains)
- [International SEO for markets](https://help.shopify.com/en/manual/markets/seo)
- [Locale-aware URLs in themes](https://shopify.dev/docs/storefronts/themes/markets/multiple-currencies-languages)

## İlgili içerikler

- [Tek bir Shopify mağazasından birçok para biriminde satış](https://lintelagency.com/tr/blog/shopify-markets-ile-coklu-para-birimi)
- [Shopify temasını ve mağaza içeriğini çevirmek](https://lintelagency.com/tr/blog/shopify-tema-cevirisi)
- [Markets ile tek Shopify mağazası mı, genişleme mağazaları mı?](https://lintelagency.com/tr/blog/tek-magaza-mi-genisleme-magazalari-mi)
- [@inContext ile yerel fiyat ve dil gösterme](https://lintelagency.com/tr/kaynaklar/graphql/storefront-yerel-fiyatlar-incontext)

Lisans: MIT. Kendi mağazanızda da müşteri işlerinizde de ücretsiz kullanabilirsiniz.
