Я получаю язык из get параметра в файле модуля
/**
* @param ModuleManager $manager
*/
public function init(ModuleManager $manager): void
{
$eventManager = $manager->getEventManager();
$sharedEventManager = $eventManager->getSharedManager();
$sharedEventManager->attach(__NAMESPACE__, 'dispatch', [$this, 'onDispatch'], 1);
}
/**
* @param MvcEvent $event
*/
public function onDispatch(MvcEvent $event): void
{
$lang = $event->getTarget()->params()->fromQuery('lang');
$event->getApplication()
->getServiceManager()
->setService(
'translator',
Translator::factory(['locale' => in_array($lang, self::$locales) ? $lang : 'en'])
);
}
конфиг модуля:
'translator' => [
'locale' => 'en',
'translation_file_patterns' => [
[
'type' => 'phpArray',
'base_dir' => __DIR__ . '/../language',
'pattern' => '%s.php'
],
],
],
и язык всегда английский. если поменять locale на нужный язык - язык меняется, если поменять pattern на конкретный язык, например pl.php, язык меняется. Но без этого не работает.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости