2017-02-15 6 views
-1

Я пытаюсь локализовать вывод данных.setlocale() в контроллере Laravel

setlocale(LC_TIME, 'et_EE.utf8'); 
echo strftime("%H:%M %A, %d %B"); 

Вместо эстонского языка я получаю его в английском формате. Но если я делаю это в классе Job - все в порядке. В моем контроллере я не звонил setlocale() больше всего раз setlocale(LC_TIME, 'et_EE.utf8');

+0

Я не понимаю, в чем проблема вы сталкиваетесь, вы бы уточнить? –

+0

Мне нужно получить результат в этом примере на эстонском языке Langugage (дата), но вместо этого я получил вариант на английском языке. Но если этот код выполняется в классе Job (laravel framework) - все нормально. Проблема только в том случае, если я попытаюсь это сделать в Controller. –

+0

О, ладно .. Можете ли вы рассказать мне, что является основной операционной системой? Как и в Linux, это зависит от установленных локалей. –

ответ

0

Checkout ссылки, это описать вам как способ настройки уровня конфигурации, а также часовой пояс изменения на лету
Stackoverflow

Laracast

+0

Вопрос не о часовом поясе. для пояснения: 1 февраля среда на эстонском языке должна отображаться - 1 Veebruar Kolmapäev –

+0

Хорошо, тогда вам нужно получить часовой пояс пользователя и преобразовывать данные в часовой пояс пользователя каждый раз. Проверьте этот код, чтобы он конвертировал данные в часовой пояс, который хранится в Cookie '$ new_date = \ Carbon :: createFromFormat ($ format, $ date) -> setTimezone (Cookie :: get ('timezone')); if ($ type == 'object') { return $ new_date; } else { return $ new_date-> format ($ format); } ' – Webinion

+0

Для того, чтобы преобразовать язык или вам нужно изменить часовой пояс времени? – Webinion

0

Первый из всего, мне так странно, что set_locale работает в месте, а не другом, потому что php не вмешивается в set_locale, поскольку он напрямую вызывает функцию C с тем же именем.

В Linux локали должны быть установлены в вашей системе. Чтобы проверить, какие локали поддерживается использовать команду locale -a

вы должны увидеть список, как этого

en_US.utf8 
et_EE.utf8 

Чтобы добавить локаль, она отличается от системы к другим

Для убунта проверить this

Для Arch и, возможно, других, отредактируйте /etc/locale.gen и не комментируйте требуемую локаль. затем запустить sudo locale-gen

Вуаля ваш код будет работать ..

+0

Exacly - it работает perfec из некоторых других классов в laravel. Но в контроллере, где я его называю, я помещаю результат в log-файл - и что я вижу - echo setlocale (LC_TIME, 'et_EE.utf8'); Верните мне пустой результат :( –

+0

'set_locale' является частью php, а не laravel вообще .. поэтому ваш разговор не имеет смысла для меня .. это нужно больше копать. В любом случае попробуйте этот ответ и скажите мне, если это сработает. –

Смежные вопросы