# Yerelleştirme ve Adresler

https://dev.wisecp.com/tr/yerellestirme-ve-adresler

Kurulumun dilini, para birimini, zaman dilimini ve adres yapısını yöneten beş uç.

## Genel Bakış

Bu beş uç kurulumun **hangi dilde, hangi para biriminde ve hangi adreslerle** çalıştığını belirler. Küçük görünen ayarlar; ama üçünün kurulum genelinde yan etkisi vardır ve bu makale büyük ölçüde onlarla ilgilidir.

Zaman dilimi ve tarih biçimi güvenle değiştirilir. **Yerel ayar, para birimi, ülke** ve **adres kipi** ise dosya yazar, tablo çevirir ya da klasör oluşturur; bunları canlı bir kurulumda düşünerek değiştirin.

## Referans

### Yerelleştirmeyi Getirme

get/api/v1/admin/settings/localisation

`Settings/GetLocalisationSettings` admin seçenekler dahil

Kurulumun dilini, para birimini, ülkesini ve zaman dilimini döndürür.

Dönen alanlar data — 8

languagestringVarsayılan dil.

localstringVarsayılan yerel ayar. Sayı ve tarih biçimlerini belirler.

currencyintVarsayılan para biriminin kimliği.

countrystringVarsayılan ülke.

timezonestringZaman dilimi.

date_formatstringTarihlerin gösterim biçimi.

ip_modulestringZiyaretçi konumunu çözen modül.

availableobjectSeçilebilecek zaman dilimleri ve kurulu konum modülleri. Yalnız okumada döner.

Hatalar 1

insufficient_scope403Anahtar gerekli kapsamı taşımıyor.

İstek cURL JavaScript PHP (HTTP) PHP (Dahili)

```bash
curl 'https://panel.ornek.com/api/v1/admin/settings/localisation' \
  -H "Authorization: Bearer $API_KEY"
```

```javascript
const res  = await fetch('https://panel.ornek.com/api/v1/admin/settings/localisation', {
  headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();
```

```php
$ch = curl_init('https://panel.ornek.com/api/v1/admin/settings/localisation');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . $apiKey],
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
```

```php
// Secilebilecek degerler AYNI yanitta gelir; ayri bir referans cagrisi gerekmez.
$loc   = Api::Settings()->GetLocalisationSettings()['data'];
$zones = $loc['available']['timezones'];
```

### Yerelleştirmeyi Yazma

put/api/v1/admin/settings/localisation

`Settings/UpdateLocalisationSettings` admin yüksek risk

Gönderdiğiniz ayarları uygular. Üç alanın kurulum genelinde yan etkisi vardır.

Gövde 8

languagestringVarsayılan dil.

localstringVarsayılan yerel ayar. Değiştirmek dil paketi dosyasını yeniden yazar.

currencyintVarsayılan para biriminin kimliği. Değiştirmek para birimi tablosunu çevirir ve kur eşitlemesini başlatır.

countrystringVarsayılan ülke. Belirli bir ülkenin dışına çıkmak kimlik numarası alanlarını kapatır.

timezonestringZaman dilimi.

date_formatstringTarihlerin gösterim biçimi.

ip_modulestringKonum çözen modül. Kurulu olmalı.

ip_module_configobjectKonum modülünün ayarları. Yalnız modülle birlikte gönderilir.

Dönen alanlar data — 8

dataobjectGüncel ayarlar. Getirme ucuyla aynı şekildedir.

Hatalar 1

insufficient_scope403Anahtar gerekli kapsamı taşımıyor.

İstek cURL JavaScript PHP (HTTP) PHP (Dahili)

```bash
curl -X PUT 'https://panel.ornek.com/api/v1/admin/settings/localisation' \
  -H "Authorization: Bearer $API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"timezone":"America/New_York","date_format":"Y-m-d"}'
```

```javascript
const res = await fetch('https://panel.ornek.com/api/v1/admin/settings/localisation', {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${apiKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    timezone: 'America/New_York',
    date_format: 'Y-m-d',
  }),
});

const body = await res.json();
```

```php
$ch = curl_init('https://panel.ornek.com/api/v1/admin/settings/localisation');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => 'PUT',
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . $apiKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'timezone'    => 'America/New_York',
        'date_format' => 'Y-m-d',
    ]),
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
```

```php
// Zaman dilimi ve tarih bicimi GUVENLI alanlardir; yerel, para birimi ve ulke degildir.
Api::Settings()->UpdateLocalisationSettings([
    'timezone'    => 'America/New_York',
    'date_format' => 'Y-m-d',
]);
```

### Adres Ayarlarını Getirme

get/api/v1/admin/settings/url

`Settings/GetUrlSettings` admin

Adreslerin nasıl kurulduğunu ve her dildeki yol adlarını döndürür.

Dönen alanlar data — 2

rich_urlstringAdres kipi. Üç değerden biri; temiz adresler, düz adresler ve bir ara kip.

routesobjectDil koduna göre yol adları. Her dilde rota anahtarından yol parçasına eşleme.

Hatalar 1

insufficient_scope403Anahtar gerekli kapsamı taşımıyor.

İstek cURL JavaScript PHP (HTTP) PHP (Dahili)

```bash
curl 'https://panel.ornek.com/api/v1/admin/settings/url' \
  -H "Authorization: Bearer $API_KEY"
```

```javascript
const res  = await fetch('https://panel.ornek.com/api/v1/admin/settings/url', {
  headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();
```

```php
$ch = curl_init('https://panel.ornek.com/api/v1/admin/settings/url');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . $apiKey],
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
```

```php
// Yol adlari dil basinadir: ayni sayfa her dilde farkli bir adresle acilir.
$url = Api::Settings()->GetUrlSettings()['data'];
$en  = $url['routes']['en']['products'];
```

### Adres Kipini Değiştirme

put/api/v1/admin/settings/url

`Settings/UpdateUrlSettings` admin panel erişimini etkiler

Adreslerin temiz mi düz mü olacağını değiştirir. Sunucu desteğini canlı sınar.

Gövde 1

rich_urlstringzorunluYeni adres kipi. Aynı değeri göndermek hiçbir şey yapmaz ve güvenlidir.

Dönen alanlar data — 2

dataobjectGüncel ayarlar. Getirme ucuyla aynı şekildedir. Yanıt gelmesi canlı denetimin geçtiği ve yeni kipin yürürlükte olduğu anlamına gelir; başarısızlıkta eski kip kalır.

Hatalar 2

mod_rewrite_failed422Sunucu temiz adresleri desteklemiyor. Denetim canlı yapılır; başarısızsa kip değişmez.

insufficient_scope403Anahtar gerekli kapsamı taşımıyor.

İstek cURL JavaScript PHP (HTTP) PHP (Dahili)

```bash
curl -X PUT 'https://panel.ornek.com/api/v1/admin/settings/url' \
  -H "Authorization: Bearer $API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"rich_url":"on"}'
```

```javascript
const res = await fetch('https://panel.ornek.com/api/v1/admin/settings/url', {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${apiKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ rich_url: 'on' }),
});

const body = await res.json();
```

```php
$ch = curl_init('https://panel.ornek.com/api/v1/admin/settings/url');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => 'PUT',
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . $apiKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode(['rich_url' => 'on']),
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
```

```php
// Bu uc YONETIM KLASORUNU olusturur ya da siler: yanlis kip panel adresini bozabilir.
// Once mevcut kipi okuyun; ayni degeri gondermek zararsizdir.
$current = Api::Settings()->GetUrlSettings()['data']['rich_url'];

if ($current !== 'on') {
    Api::Settings()->UpdateUrlSettings(['rich_url' => 'on']);
}
```

### Yol Adlarını Yazma

put/api/v1/admin/settings/url/views

`Settings/UpdateUrlViews` admin eski adresler kırılır

Sayfaların adreslerinde görünen yol adlarını dile göre yazar.

Gövde 1

routesobjectzorunluDil koduna göre yol adları. Yalnız var olan rota anahtarları yazılır; tanımadığı anahtar yok sayılır.

Dönen alanlar data — 2

dataobjectGüncel adres ayarları. Getirme ucuyla aynı şekildedir.

Hatalar 1

insufficient_scope403Anahtar gerekli kapsamı taşımıyor.

İstek cURL JavaScript PHP (HTTP) PHP (Dahili)

```bash
curl -X PUT 'https://panel.ornek.com/api/v1/admin/settings/url/views' \
  -H "Authorization: Bearer $API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"routes":{"en":{"products":"products","cart":"cart"}}}'
```

```javascript
const res = await fetch('https://panel.ornek.com/api/v1/admin/settings/url/views', {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${apiKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    routes: { en: { products: 'products', cart: 'cart' } },
  }),
});

const body = await res.json();
```

```php
$ch = curl_init('https://panel.ornek.com/api/v1/admin/settings/url/views');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => 'PUT',
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . $apiKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'routes' => ['en' => ['products' => 'products']],
    ]),
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
```

```php
// Bir yol adini degistirmek ESKI adresi kirar: arama motorlarindaki ve baglantilardaki adres olur.
// Anahtarlari mevcut yapidan okuyun; uydurulan anahtar sessizce atlanir.
$routes = Api::Settings()->GetUrlSettings()['data']['routes'];
$routes['en']['products'] = 'shop';

Api::Settings()->UpdateUrlViews(['routes' => $routes]);
```

## Tuzaklar

> **Adres kipi panel klasörünü yeniden kurar**
> 
> Kip değiştirmek sunucunun temiz adresleri destekleyip desteklemediğini **canlı sınar** ve yönetim klasörünü oluşturur ya da siler. Yanlış bir kip panele ulaşılamaz hâle getirebilir. Aynı değeri göndermek hiçbir şey yapmaz, o yüzden önce mevcut kipi okumak en güvenli yoldur.

> **Para birimi değişimi tabloyu çevirir**
> 
> Varsayılan para birimini değiştirmek yalnız bir tercihi güncellemez: para birimi tablosundaki yerel işareti taşınır ve **kur eşitlemesi başlar**. Fiyatların görünüşü kurulum genelinde değişir. Bunu satış saatinde yapmayın.

> **Yerel ayar dil dosyasını yeniden yazar**
> 
> Varsayılan yerel ayarı değiştirmek dil paketi dosyasının **yeniden yazılmasına** yol açar. Bu, ayar kaydetmekten farklı bir iştir: diskte bir dosya değişir. Yerel ayarı bir defa kurulumda belirleyip sonra dokunmamak en iyisidir.

> **Ülke değişimi kimlik alanlarını kapatabilir**
> 
> Varsayılan ülkeyi belirli bir ülkenin dışına taşımak kayıt formundaki **kimlik numarası alanlarını kapatır**. Bu sessiz bir yan etkidir: müşteri kayıt ayarlarında bir şey değiştirmediğiniz hâlde form değişir.

> **Yol adını değiştirmek eski adresi kırar**
> 
> Bir sayfanın yol adını değiştirdiğinizde eski adres **artık çalışmaz**: arama motorlarındaki kayıtlar ve müşterilerin kaydettiği bağlantılar boşa düşer, yönlendirme kurulmaz. Ayrıca tanınmayan bir rota anahtarı sessizce yok sayılır, yani yazdığınızı sandığınız yol hiç yazılmamış olabilir; sonucu okuma ucundan doğrulayın.

## İlgili Makaleler

- [Site Ayarları](https://dev.wisecp.com/tr/site-ayarlari)
- [Müşteri Kayıt Ayarları](https://dev.wisecp.com/tr/musteri-kayit-ayarlari)
