setlocale не влияет на PHP

У меня есть следующий фрагмент кода:

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

и печать

Вторник, 4 мая 2010 г.

вместо

Dienstag 4. Май 2010

Любые идеи почему? Как исправить?

Related of "setlocale не влияет на PHP"

У вас есть локаль, доступная; что для вас возвращает setlocale ? Смотрите: возвращаемые значения для setlocale () .

Кроме того, проверьте список доступных локалей (например, locale -a или что-то подходящее для вашей ОС), чтобы узнать, является ли de среди них. Вероятные альтернативы включают de_DE или de_DE.utf8 чтобы назвать несколько.

В Debian для создания новой локали выполните следующую команду:

 dpkg-reconfigure locales 

и выберите те, которые вы хотите.

Настройка локали не будет иметь никакого эффекта, если локаль не будет установлена ​​в вашей системе.

Для меня следующий трюк:

 setlocale(LC_TIME, ""); 

В комбинации с:

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

Так я получил текущую дату в немецком формате. Надеюсь, что это поможет.

Попробуйте установить LC_ALL в «de_DE». В моей системе это не сработало, пока я это не сделаю.

 $ 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 

Я использую Ubuntu на малине Pi, имел ту же самую проблему, пытаясь использовать португальский локальный для даты:

 setlocale(LC_TIME, "C"); echo strftime("%A"); echo setlocale(LC_TIME, "pt_PT"); echo strftime(" in Portuguese %A"); 

Затем проверено командой local -a , pt_PT не было в списке, поэтому я добавил его sudo / usr / share / locales / install-language-pack pt_PT и запустил local -a снова: там был pt_PT.utf8 . После этого результат все тот же: из ожидаемого для pt_PT еще на английском языке. Вот небольшая разница, которая заставляла меня думать:

 ··· echo setlocale(LC_TIME, "pt_PT.utf8"); ··· 

Итак, мне пришлось превратить pt_PT в pt_PT.utf8

возможно, у вас нет локали, поэтому, если вы находитесь на ubuntu, вы можете проверить список с помощью «locale -a» без куйотов и проверить доступные языки в файле / usr / share / i18n / SUPPORTED, и они сгенерировали locale, требуемый с "locale-gen de_DE"

надеюсь, эта работа для вас.