Bu (benim düşünceme göre) olması gerektiği gibi kolay değil. Öncelikle size $_SERVER['HTTP_ACCEPT_LANGUAGE']
adlı yerel ayarlar ayıklamak ve q
değerlerine göre sıralamak zorunda. Daha sonra (sen sadece doğru charset ile başa çıkmak zorunda kalabilirsiniz) * nix makinede hiçbir sorun olmalıdır verilen yerel, her biri için uygun sistem yerel almak zorunda ama Windows size yerellerde çevirmek gerekecek Windows yerel, örneğin de_DE
German_Germany
(yine de örneğin app UTF-8 kullanıyorsanız eğer charset sorunları ile başa çıkmak zorunda) olacaktır. Ben bu sorun için bir arama tablosu oluşturmak gerekir düşünüyorum - ve yerel bir yeri vardır ;-)
Hayır Eğer kullandığınız bir maç bulana kadar (q
değerleri azalan sıralanır) birbiri ardına yerel try setlocale()
(the function will return false
verilen yerel set olamazdı eğer) .
Ama sonra ile başa çıkmak için son engel olacak:
The locale information is maintained
per process, not per thread. If you
are running PHP on a multithreaded
server api like IIS or Apache on
Windows you may experience sudden
changes of locale settings while a
script is running although the script
itself never called setlocale()
itself. This happens due to other
scripts running in different threads
of the same process at the same time
changing the processwide locale using
setlocale().
(Bkz: http://de2.php.net/manual/en/function.setlocale.php)
Bu set, farklı bir yerelle başka bir kullanıcı sadece web sayfasını vurmak çünkü bir komut dosyası yürütülmesi sırasında ani yerel değişiklikler yaşayacaksınız anlamına gelir.
Bu nedenle söz konusu Zend_Locale
does not rely on the PHP function setlocale()
(sadece sistem yerel bilgi almak için kullanılır), ancak bunun yerine Unicode CLDR Project tarafından sağlanan verilere dayalı bir sistem kullanır. Bu, tüm bu setlocale()
konulardan bileşen bağımsız yapar ama bu aynı zamanda (örneğin, sıralama) yerele farkında string işlemleri için destek eksikliği gibi diğer bazı eksiklikleri tanıttı.