setlocale

(PHP 4, PHP 5, PHP 7)

setlocaleYereli ayarlar

Açıklama

setlocale ( int $sınıf , string $yerel [, string $... ] ) : string
setlocale ( int $sınıf , array $yerel ) : string

Yerel bilgisini ayarlar.

Değiştirgeler

sınıf

sınıf olarak yerel ayarıyla ilgili belli bir işlevsellik belirten şu sabitlerden biri belirtilebilir:

  • LC_ALL - aşağıdakilerin hepsi.
  • LC_COLLATE - dizge karşılaştırması için; strcoll() işlevine bakınız.
  • LC_CTYPE - karakter sınıflaması ve dönüşümü için; bir örnek olarak strtoupper() işlevine bakınız.
  • LC_MONETARY - Para biçemlemesi için; bkz, localeconv().
  • LC_NUMERIC - ondalık ayraçlar için; bkz, localeconv().
  • LC_TIME - tarih ve saat biçemlemesi için; bkz, strftime()
  • LC_MESSAGES - sistem iletileri için (PHP libintl ile derlendiği takdirde kullanılabilir).

yerel

Eğer NULL belirtilirse veya "" şeklinde boş bir dizge belirtilmişse, yerel isimleri yukarıdaki sınıflarla aynı isimdeki ortam değişkenlerinden veya "LANG" ortam değişkeninden alınır.

Eğer yerel "0" ise, yerel ayarı değiştirilmeden mevcut ayar döndürülür.

Eğer yerel bir dizi ise veya ek değiştirgeler belirtilmişse, yeni yerel başarıyla ayarlanana kadar belirtilen her dizi elemanı veya her değiştirge tek tek denenir. Yerel isimlerinin farklı sistemlerde farklı isimlerde bulunması durumunda veya kullanılabilir yerelin bulunamaması olasılığına karşı son çareleri belirtmek için kullanılır.

...

Yerel ayarları başarılı olana kadar denenecek seçimlik dizi veya dizge.

Bilginize:

Windows'ta, setlocale(LC_ALL, '') kullanımında, sistemin bölgesel ayarlar/dil ayarlarında (Denetim Masasından erişilebilir) belirtilmiş yerelin ismi kullanılır.

Dönen Değerler

Ayarlama yapılabilmişse yeni yerel ismi, platformunuzda yereller işlevsel değilse, belirtilen yerel yoksa veya sınıf ismi geçersizse FALSE döner.

Geçersiz bir sınıf ismi ayrıca bir uyarı üretilmesine sebep olur. Sınıf ve yerel isimleri » RFC 1766 ve » ISO 639'da bulunabilir. Farklı sistemler yereller için farklı isimleme şemaları kullanırlar.

Bilginize:

setlocale() işlevinin dönüş değeri PHP'nin üzerinde çalıştığı sisteme bağlıdır. Sistemin setlocale işlevinin döndürdüğü değeri döndürür.

Sürüm Bilgisi

Sürüm: Açıklama
5.3.0 sınıf değiştirgesinde LC_* sabitlerinden biri yerine bir dizge aktarılırsa işlev artık bir E_DEPRECATED uyarısı çıktılamaktadır.
4.3.0 Çok sayıda yerel belirtilebilir oldu.
4.2.0 sınıf olarak bir dizge aktarılması artık önerilmiyor. Dizge değil yukarıdaki sabitlerin kullanılması gerekiyor. Bu sabitlerin bir dizge olarak (tırnak içinde) belirtilmesi artık bir uyarıya sebep olmaktadır.

Örnekler

Örnek 1 - setlocale() örnekleri

<?php
/* Yereli Türkçe yapalım */
setlocale(LC_ALL'tr_TR.UTF-8');

/* Çıktısı: 22 Aralık 1978 Cuma */
echo strftime("%e %B %Y %A\n"mktime(00012221978));

/* Türkçe için farklı yerel isimleri deneyelim (PHP 4.3.0 ve sonrası) */
$loc_tr setlocale(LC_ALL'tr_TR.UTF-8''tr_TR''tr''turkish');
echo 
"Türkçe için tercih edilen yerel ismi: '$loc_tr\n'";
?>

Örnek 2 - Windows için setlocale() örnekleri

<?php
/* Yereli Felemenkçe yapalım */
setlocale(LC_ALL'nld_nld');

/* Çıktısı: vrijdag 22 december 1978 */
echo strftime("%A %d %B %Y"mktime(00012221978));

/* Almanca için farklı yerel isimleri deneyelim (PHP 4.3.0 ve sonrası) */
$loc_de setlocale(LC_ALL'[email protected]''de_DE''deu_deu');
echo 
"Almanca için tercih edilen yerel ismi: '$loc_de'";
?>

Notlar

Uyarı

Evre başına değil süreç başına yerel bilgisi ayarlanır. Windows üzerinde Apache veya IIS gibi çok evreli bir sunucu çalıştırıyorsanız, betiğinizde setlocale() işlevini hiç çağırmadığınız halde yerel ayarlarında ani değişiklikler olduğunu gözlemlemişsinizdir. Bunun sebebi aynı anda aynı süreç altında başka evrelerde başka betiklerin çalışması ve bunların süreç genelinde geçerli olan setlocale() kullanımlarıdır.

İpucu

Windows kullanıcıları Microsoft'un MSDN sitesinde yerel dizgeleri hakkında bilgi bulabilirler. Desteklenen dil dizgeleri »  http://msdn.microsoft.com/en-us/library/39cwe7zf%28v=vs.90%29.aspx adresinde desteklenen ülke/bölge dizgeleri ise »  http://msdn.microsoft.com/en-us/library/cdax410z%28v=vs.90%29.aspx adresinde bulunabilir.