Cakephp изменить defaultLocale во время выполнения - PullRequest
0 голосов
/ 10 октября 2019

У меня есть мультиязычное приложение, и я хочу, чтобы администратор мог указать "язык по умолчанию для веб-сайтов"Для этого я создал таблицу с языковыми записями, которые может выбрать администратор. Пользователи могут затем выбрать язык, на котором они хотят приложение, что я сделал с помощью I18n :: setLocale (...) в AppController. Проблема заключается в том, что если основной язык, на котором администратор устанавливает сайт, не соответствует config / app.php App.defaultLocale, приложение попытается сохранить содержимое в таблице перевода вместо основной таблицы.

Я пытался использовать ini_set ('intl.default_locale', ..) в boostrap.php, а также Configure :: write ('App.defaultLocale', ..);и ни один из них, похоже, не работает, однако, если я изменю config / app.php на нужный язык, указанный администратором, приложение будет работать так, как ожидалось.

Моя цель - указать во время выполнения язык приложения, чтобы поведение соответствовало config / app.php без необходимости изменения файла конфигурации app.php.

1 Ответ

0 голосов
/ 11 октября 2019

Мы делаем это так в AppController:

$locale = ... get locale from URL, session, cookie, database etc.
I18n::setLocale($locale);
CakeTime::setDefaultLocale($locale);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...