проблема с setlocale

matua

Guest
проблема с setlocale

Взял код c ru.php.net
<?php
setlocale(LC_TIME, "C");
echo strftime("%A");
setlocale(LC_TIME, "ru_RU");
echo strftime(" по-русски - %A,");
setlocale(LC_TIME, "fr_FR");
echo strftime(" по-французски - %A и");
setlocale(LC_TIME, "de_DE");
echo strftime(" по-немецки - %A.\n");
?>

BROWSER выдает:
Thursday по-русски - Thursday, по-французски - Thursday и по-немецки - Thursday.



В чем дело????
 

matua

Guest
Да Windows XP, на Apacheeeee, а что на серваке удаленном на linuxe будет работать? а что за TIP? и где он находится?
 

ksnk

прохожий
Вообще-то ссылка была дана (Нужно было ткнуться в setlocale и пройти пару экранов вниз), но раз так - вот
Tip: Windows users will find useful information about locale strings at Microsoft's MSDNwebsite. Supported language strings can be found at http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_language_strings.asp and supported country/region strings at http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_country_strings.asp. Windows systems support the three letter codes for country/region specified by ISO 3166-Alpha-3, which can be found at this Unicode website .
 

ksnk

прохожий
Автор оригинала: itprog
ksnk
у тебя все в порядке?
Это про что?
Человек спросил отчего у него не работает setlocale. Из дальнейшего треда я понял, что рекомендуемый mani13 tip человек не нашел и не понимает, что параметрами этого самого setlocal удля виндов должны быть несколько другие строки. Это самый tip я и привел...
Ссылку, правда привел Panchous ...
 

itprog

Cruftsman
1) Нужный tip уже написал Panchous
2) Ты привел tip который к вопросу не относится
все, закрыто уже.
 

ShurikEv

Guest
Я попробовал этот тип, а у меня всё равно название месяца не по-русски :( Может надо где-то в настройках прописать?
 

matua

Guest
А ну удаленном сервере у меня по-английски стало...
 

ksnk

прохожий
Некоторые особенно продвинутые товарищи не связываются с setlocale вообще, а пишут свои собственные функции вывода русских дат. Это вполне может быть частным решением проблемы, пока тут удастся найти здравое объяснение :)
 

Saturn

Новичок
на никсах работает без проблем. главное знать, какие локали вообще есть на серваке...
 

Patison

Новичок
кто-нибудь может объяснить, откуда берутся такие локали: ru_RU.CP1251, rus_RUS.1251, de_DE и т.д. ?
Ведь в мануле написано, что имена локалей и категорий описаны в RFC 1766 и ISO 639, а для windows еще на сайте Unicode а там ничего подобного нет. Если русская локаль, то это "ru" или "rus", если немецкая, то "deu" либо "ger" либо "de", все в таком роде. И самый первый пример
PHP:
setlocale(LC_TIME, "C");
echo strftime("%A")."\n";
setlocale(LC_TIME, "ru_RU.CP1251");
echo strftime(" по-русски - %A,")."\n";
setlocale(LC_TIME, "fi_FI");
echo strftime(" по-фински - %A,")."\n";
setlocale(LC_TIME, "fr_FR");
echo strftime(" по-французски - %A и")."\n";
setlocale(LC_TIME, "de_DE");
echo strftime(" по-немецки - %A.\n");
выдает:
Saturday
по-русски - Saturday,
по-фински - Saturday,
по-французски - Saturday и
по-немецки - Saturday.

А если написать так:
PHP:
setlocale(LC_TIME, "C");
echo strftime("%A")."\n";
setlocale(LC_TIME, "ru");
echo strftime(" по-русски - %A,")."\n";
setlocale(LC_TIME, "fi");
echo strftime(" по-фински - %A,")."\n";
setlocale(LC_TIME, "fr");
echo strftime(" по-французски - %A и")."\n";
setlocale(LC_TIME, "de");
echo strftime(" по-немецки - %A.\n");
то результат:
Saturday
по-русски - суббота,
по-фински - lauantai,
по-французски - samedi и
по-немецки - samedi.

Хотя, конечно, странно, что результат по-французски и по-немецки совпадает, это какой-то глюк? И еще, что это за локаль такая "C" ? Она нигде не описана.
 
Сверху