У меня есть следующий отрывок кода:
setlocale(LC_ALL, "de");
print(strftime("%A %e %B %Y", time()));
и это печатает
Вторник 4 мая 2010
вместо
Dienstag 4. Mai 2010
Какие-либо идеи, почему? Как зафиксировать?
У вас доступна de
локаль; что вам дает setlocale
? См: возвращаемые значения для setlocale().
Также проверьте список доступных локалей (например, locale -a
или любой другой, подходящий для вашей ОС), чтобы узнать, есть ли среди них de
. Вероятные альтернативы включают de_DE
или de_DE.utf8
.
В Debian, чтобы создать новую локаль, выполните эту команду:
dpkg-reconfigure locales
и выберите те, которые вам нужны.
Попробуйте установить 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
Установка локали не будет иметь никакого эффекта, если локаль не установлена в вашей системе.