Yerelleştirme ve Adresler

1.6k görüntülenme Markdown

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 'https://panel.ornek.com/api/v1/admin/settings/localisation' \
  -H "Authorization: Bearer $API_KEY"
const res  = await fetch('https://panel.ornek.com/api/v1/admin/settings/localisation', {
  headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();
$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);
// 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 -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"}'
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();
$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);
// 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 'https://panel.ornek.com/api/v1/admin/settings/url' \
  -H "Authorization: Bearer $API_KEY"
const res  = await fetch('https://panel.ornek.com/api/v1/admin/settings/url', {
  headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();
$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);
// 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 -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"}'
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();
$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);
// 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 -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"}}}'
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();
$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);
// 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.

Faydalı oldu mu?

Geri bildiriminiz için teşekkürler!

Hâlâ Yardıma mı İhtiyacınız Var?

Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.