Проблема с переводами LC_TIME на CakePhp - PullRequest
0 голосов
/ 31 августа 2018

У меня есть мультиязычное приложение 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, но дата по-прежнему отображается на английском языке.

Может кто-нибудь мне помочь? Может быть, это неправильный подход?

1 Ответ

0 голосов
/ 31 августа 2018

Ну, прошло немного времени после того, как я опубликовал вопрос, чтобы понять, что все способы, которые я попробовал, были в порядке, с использованием 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 

Это сработало как очарование, однако мне бы очень хотелось, чтобы таблица, где объясняются все эти языковые коды, чтобы мы могли использовать правильный синтаксис для каждого, а не угадывать, как я.

...