У меня есть мультиязычное приложение cakephp 2.9, и я использую файлы .po для перевода таких строк, как __ («пример»). Пока все хорошо, но я уже некоторое время пытаюсь перевести эту дату с:
Пт, 31 августа 2018, 16:03
чтобы:
Vie, Ago 31 2018, 16:03
Это мой код:
setlocale("LC_ALL", "es_ES.UTF-8");
App::uses('CakeTime', 'Utility');
echo CakeTime::nice();
Я скачал испанские файлы из локализованного репо (https://github.com/cakephp/localized) и поместите их в app \ Locale \ spa \ LC_TIME, но дата по-прежнему будет отображаться на английском языке.
Кто-нибудь может мне помочь? Может быть, это неправильный подход?
Ну, не прошло много времени после того, как я опубликовал вопрос, чтобы понять, что все способы, которые я попробовал, были в порядке, с использованием caketime или strftime, проблема была с setlocale:
Изменено это:
setlocale("LC_ALL", "es_ES.UTF-8");
к этому:
setlocale(LC_TIME, 'es_ES.utf8','esp');
Итак, два моих результата:
echo ucfirst(strftime('%A '.$number_of_the_day.' %B %Y'));
//Viernes 31 agosto 2018
echo __('Today is ').CakeTime::nice();
//Hoy es vie, ago 31st 2018, 16:29
Это сработало как прелесть, однако мне бы очень понравилась таблица, в которой объясняются все эти языковые коды, чтобы мы могли использовать правильный синтаксис для каждого, а не угадывать, как я.
Других решений пока нет …