Разница между Люменом и Ларавелом в том, что в Ларавеле вы называете Application->setLocale()
.
Это делает три вещи, как указано выше:
- Установить конфигурацию
app.locale
- Установить локаль на переводчике
- Запустить событие locale.changed
В Lumen вы могли бы позвонить переводчику напрямую с помощью app('translator')->setLocale()
или App::make('translator')->setLocale()
,
, поэтому разница здесь в том, что переменная config не будет установлена автоматически и событие locale.changed не будет запущено.
Класс приложения Laravel также обновляет конфигурацию и запускает событие:
public function setLocale($locale)
{
$this['config']->set('app.locale', $locale);
$this['translator']->setLocale($locale);
$this['events']->fire('locale.changed', [$locale]);
}
и в Laravel getLocale просто читает переменную конфигурации:
public function getLocale()
{
return $this['config']->get('app.locale');
}
Для мысли о переводе важен именно переводчик. Транс помощник Ларавеля выглядит так:
function trans($id = null, $parameters = [], $domain = 'messages', $locale = null)
{
if (is_null($id)) {
return app('translator');
}
return app('translator')->trans($id, $parameters, $domain, $locale);
}
Вам нужно сделать так, чтобы ваше приложение расширяло другой класс с помощью 3 вышеуказанных методов