Перевод модулей
Перевод модулей
Не могу понять что-то как использовать для перевода модуля файлы в самом модуле без правки общих настроек приложения.
Re: Перевод модулей
Если перевод страниц которые будут открываться внутри этого модуля, то в init() класса модуля надо настраивать i18n компонент.
Yii2 universal module sceleton - for basic and advanced templates
Re: Перевод модулей
А поконкретнее? В init в return отдавать
что ль?
И как писать basePath?
Код: Выделить всё
return [
'components' => [
'i18n' => [
'translations' => [
'commonInterface' => [
'class' => 'yii\i18n\PhpMessageSource',
'basePath' => 'messages',
'sourceLanguage' => 'en_US',
],
],
],
],
];
И как писать basePath?
- chungachguk
- Сообщения: 435
- Зарегистрирован: 2012.07.17, 11:52
Re: Перевод модулей
По конкретнее вот так
https://github.com/yiisoft/yii2/blob/ma ... e-messages
В свою очередь хотелось бы узнать как подключить файлы перевода модуля для всей системы без правки основного конфига и инициализации самого модуля. Может это как-то решается через bootstrap, но я не понял что там к чему.
https://github.com/yiisoft/yii2/blob/ma ... e-messages
В свою очередь хотелось бы узнать как подключить файлы перевода модуля для всей системы без правки основного конфига и инициализации самого модуля. Может это как-то решается через bootstrap, но я не понял что там к чему.
Re: Перевод модулей
в Bootstrap::bootstrap($app) передается инстанс приложения, в котором вы можете изменить все что хотите, в том числе и настройки i18nchungachguk писал(а):По конкретнее вот так
https://github.com/yiisoft/yii2/blob/ma ... e-messages
В свою очередь хотелось бы узнать как подключить файлы перевода модуля для всей системы без правки основного конфига и инициализации самого модуля. Может это как-то решается через bootstrap, но я не понял что там к чему.
Re: Перевод модулей
Спасибоchungachguk писал(а):По конкретнее вот так
https://github.com/yiisoft/yii2/blob/ma ... e-messages
И еще вопрос - как "на лету" сменить язык приложения? Вернее даже где. Очевидно, это где-то до рендеринга делать нужно..
Re: Перевод модулей
в том же бутстрапеVaNnOrus писал(а):Спасибоchungachguk писал(а):По конкретнее вот так
https://github.com/yiisoft/yii2/blob/ma ... e-messages
И еще вопрос - как "на лету" сменить язык приложения? Вернее даже где. Очевидно, это где-то до рендеринга делать нужно..
- chungachguk
- Сообщения: 435
- Зарегистрирован: 2012.07.17, 11:52
Re: Перевод модулей
Т.е. получается, что я должен создать класс Bootstrap реализующий BootstrapInterface, разместить его у себя в модуле, в методе bootstrap этого класа прописать добавление маппинга переводов своего модуля к основному приложению, и указать этот класс в конфиге приложения в разделе bootstrap=>array(...). Так?zelenin писал(а):в Bootstrap::bootstrap($app) передается инстанс приложения, в котором вы можете изменить все что хотите, в том числе и настройки i18nchungachguk писал(а):По конкретнее вот так
https://github.com/yiisoft/yii2/blob/ma ... e-messages
В свою очередь хотелось бы узнать как подключить файлы перевода модуля для всей системы без правки основного конфига и инициализации самого модуля. Может это как-то решается через bootstrap, но я не понял что там к чему.
Re: Перевод модулей
все верно.chungachguk писал(а):Т.е. получается, что я должен создать класс Bootstrap реализующий BootstrapInterface, разместить его у себя в модуле, в методе bootstrap этого класа прописать добавление маппинга переводов своего модуля к основному приложению, и указать этот класс в конфиге приложения в разделе bootstrap=>array(...). Так?zelenin писал(а):в Bootstrap::bootstrap($app) передается инстанс приложения, в котором вы можете изменить все что хотите, в том числе и настройки i18nchungachguk писал(а):По конкретнее вот так
https://github.com/yiisoft/yii2/blob/ma ... e-messages
В свою очередь хотелось бы узнать как подключить файлы перевода модуля для всей системы без правки основного конфига и инициализации самого модуля. Может это как-то решается через bootstrap, но я не понял что там к чему.
если модуль будете распространять через композер, то в раздел bootstratp указывать не нужно, а только подправить composer.json
- chungachguk
- Сообщения: 435
- Зарегистрирован: 2012.07.17, 11:52
Re: Перевод модулей
А, к слову, перевод Вашего модуля не подхватывается. Сообщения появляются в базе для перевода. По идее так и должно быть, ведь отказ от файлов смысл модуля, но тогда нужно в миграции сразу перевод модуля дописатьzelenin писал(а):https://github.com/zelenin/yii2-i18n-mo ... tstrap.php
Re: Перевод модулей
а вы нашли в моем модуле перевод? его там нет.VaNnOrus писал(а):А, к слову, перевод Вашего модуля не подхватывается. Сообщения появляются в базе для перевода. По идее так и должно быть, ведь отказ от файлов смысл модуля, но тогда нужно в миграции сразу перевод модуля дописатьzelenin писал(а):https://github.com/zelenin/yii2-i18n-mo ... tstrap.php
Re: Перевод модулей
А это что?zelenin писал(а):а вы нашли в моем модуле перевод? его там нет.VaNnOrus писал(а):А, к слову, перевод Вашего модуля не подхватывается. Сообщения появляются в базе для перевода. По идее так и должно быть, ведь отказ от файлов смысл модуля, но тогда нужно в миграции сразу перевод модуля дописатьzelenin писал(а):https://github.com/zelenin/yii2-i18n-mo ... tstrap.php
Re: Перевод модулей
а, ну да. Прошу прощения )VaNnOrus писал(а): А это что?
для этого есть этот инструмент, хотя наверное нужна миграция.
https://github.com/zelenin/yii2-i18n-mo ... -db-import
Re: Перевод модулей
Да миграция нужна. Инструмент-то для импорта в бд переводов приложения. Логично, что модуль перевода итак должен быть переведенzelenin писал(а):а, ну да. Прошу прощения )VaNnOrus писал(а): А это что?
для этого есть этот инструмент, хотя наверное нужна миграция.
https://github.com/zelenin/yii2-i18n-mo ... -db-import
Re: Перевод модулей
А из виджета можно такое сделать? Что-то даже не представляю с какой стороны подойтиzelenin писал(а):в том же бутстрапеVaNnOrus писал(а):Спасибоchungachguk писал(а):По конкретнее вот так
https://github.com/yiisoft/yii2/blob/ma ... e-messages
И еще вопрос - как "на лету" сменить язык приложения? Вернее даже где. Очевидно, это где-то до рендеринга делать нужно..
Re: Перевод модулей
язык должен быть сменен в классе, загружаемом в бутстрапе. Либо создаете такой класс внутри своего приложения, либо, как я показал, в расширении.VaNnOrus писал(а): А из виджета можно такое сделать? Что-то даже не представляю с какой стороны подойти
Re: Перевод модулей
О как. Нашел в документации:zelenin писал(а):язык должен быть сменен в классе, загружаемом в бутстрапе. Либо создаете такой класс внутри своего приложения, либо, как я показал, в расширении.VaNnOrus писал(а): А из виджета можно такое сделать? Что-то даже не представляю с какой стороны подойти
Вопрос только где ловить этот эвент. Не в конфиге же?This event is triggered before an application handles a request. The actual event name is beforeRequest.
When this event is triggered, the application instance has been configured and initialized. So it is a good place to insert your custom code via the event mechanism to intercept the request handling process. For example, in the event handler, you may dynamically set the yii\base\Application::$language property based on some parameters.
Upd. В index.php что ль делать это?
Re: Перевод модулей
вы же процитировали мой ответ.VaNnOrus писал(а):О как. Нашел в документации:zelenin писал(а):язык должен быть сменен в классе, загружаемом в бутстрапе. Либо создаете такой класс внутри своего приложения, либо, как я показал, в расширении.VaNnOrus писал(а): А из виджета можно такое сделать? Что-то даже не представляю с какой стороны подойтиВопрос только где ловить этот эвент. Не в конфиге же?This event is triggered before an application handles a request. The actual event name is beforeRequest.
When this event is triggered, the application instance has been configured and initialized. So it is a good place to insert your custom code via the event mechanism to intercept the request handling process. For example, in the event handler, you may dynamically set the yii\base\Application::$language property based on some parameters.
Upd. В index.php что ль делать это?