Ответы пользователя по тегу Интернационализация и локализация
  • Как рациональнее реализовать мультиязычный сайт на Laravel?

    akserdin
    @akserdin Автор вопроса
    PHP/JS developer
    Спасибо за вариант.

    Я размышлял, читал, и тут вдруг наткнулся на чудесный туториал.

    В нем все-таки используются дополнительные поля в таблице с префиксами языка - field_en, field_fr итп

    Затем добавляем методы в Модель:

    public function getTitleAttribute()
    {
    $locale = App::getLocale();
    $column = "title_" . $locale;
    return $this->{$column};
    }
    public function getContentAttribute()
    {
    $locale = App::getLocale();
    $column = "content_" . $locale;
    return $this->{$column};
    }

    Тогда в шаблоне можно пользоваться переменными вот так:

    {{ $post->title }}

    {{ $post->content }}

    Ну а для фраз, к-рые касаются только представлений (и не хранятся в БД) есть методы trans() или Lang::get(..)

    Если добавится язык - то придется добавить поля в таблицы, да, но это не так страшно, как дублирование кода и излишняя проверочная логика. Как вам такое решение?

    PS вот туториал https://medium.com/laravel-4/laravel-4-multisites-...
    Ответ написан
    4 комментария