setlocale PHP hiçbir etkiye sahip

4 Cevap php

Ben aşağıdaki kod pasajı var:

setlocale(LC_ALL, "de");
print(strftime("%A %e %B %Y", time()));

ve baskı var

Mayıs 2010 Salı 4

yerine

Dienstag 4. Mai 2010

Herhangi bir fikir neden? Düzeltmek için?

4 Cevap

Eğer de yerel kullanılabilir var mı; setlocale sizin için ne çıkmıyor? Bakınız: return values for setlocale().

Ayrıca, de aralarında olup olmadığını görmek için (örneğin, locale -a veya ne olursa olsun işletim sistemi için uygun) Kullanılabilir yerel listesini kontrol edin. Muhtemel alternatifleri de_DE veya de_DE.utf8 birkaç isim sayılabilir.

Debian, yeni bir yerel oluşturmak için, bu komutu çalıştırın:

dpkg-reconfigure locales

ve istediğiniz olanları seçin.

Yerel sisteminizde yüklü değilse yerel ayarlama hiçbir etkisi olmayacaktır.

LC_ALL için "de_DE" belirlemeyi deneyin. Ben yaptım kadar benim sistemde işe yaramaz.

$ LC_ALL=de date
Tue May  4 07:40:13 CDT 2010
$ LC_ALL=de_DE date
Di 4. Mai 07:39:27 CDT 2010

Benim için şu hile yaptı:

setlocale(LC_TIME, "");

Ile birlikte:

echo strftime("%d. %B %Y");

Ben Alman biçiminde geçerli tarih var nasıl olduğunu. Bu yardımcı olur umarım.