Настройка локали в Zend 3

197
15 февраля 2019, 03:50

Я получаю язык из 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, язык меняется. Но без этого не работает.

READ ALSO
Разница функции Laravel

Разница функции Laravel

В чем разница между $request->get('name') и $request['name']?

247
Не получается редактировать запись в MySQL php

Не получается редактировать запись в MySQL php

Сколько времени копался, так и не смог разобратьсяНе редактируются данные в базе MySQL

224
Забрать текст из последних скобок в строке с помощью регулярных выражений

Забрать текст из последних скобок в строке с помощью регулярных выражений

Есть строка: Сочи (Адлер) (Россия), из которой мне нужно изъять текст, который находится в последих скобкахТо есть, текст Россия

262