$s = null;
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN')
var_dump(setlocale(LC_ALL, 'es'));
else
if (!($s = setlocale(LC_ALL, 'es_ES'))) {
if (!($s = setlocale(LC_ALL, 'es_ES.iso88591'))) {
if (!($s = setlocale(LC_ALL, 'es_DO.utf8'))) {
setlocale(LC_ALL, 'spanish');
}
}
}
var_dump($s);
Пытаясь показать дату с помощью strftime, я столкнулся с тем, что иногда я получаю ее на английском, а иногда на испанском. Ища причину, я обнаружил, что вызов setlocale иногда возвращает false вместо локали (которая доступна), которую я пытался установить, es_ES. Я написал тестовый код, чтобы попытаться установить другие испанские локали в случае неудачных попыток предварительного просмотра. Любая подсказка, почему это происходит?
Локаль, показанная на некоторых обновлениях
Локаль, показанная в некоторых других
Задача ещё не решена.
Других решений пока нет …