Правильный способ загрузки переведенных данных Laravel 5.2

Я создаю свой первый многоязычный веб-сайт Laravel.

Для переводов я использую этот пакет: https://github.com/mcamara/laravel-localization.

В моей базе данных у меня есть столбцы, настроенные так:

  • название (английское название)
  • title_nl (голландское название)
  • title_fr (французское название)

Я прочитал документацию laravel по локализации и настроил свои сообщения об ошибках таким образом. Но теперь я запутался в том, как правильно показывать разные языки для моих взглядов.

Должен ли я сделать что-то вроде этого:

@if( LaravelLocalization::getCurrentLocale() == 'nl')
<p>{{$post->title_nl}}</p>

@elseif(LaravelLocalization::getCurrentLocale() == 'fr' )
 <p>{{$post->title_fr}}</p>

@else
  <p>{{$post->title}}</p>
 @endif

Это кажется очень грязным и не правильным способом справиться с этим, потому что расширение этого было бы кошмаром.

Или мне нужно использовать встроенные функции локализации для этого следующим образом:

{{ trans('post.title') }}

Или это разрушает цель пакета, который я использую?

1 ответ

Использование пары ключ-значение многомерных массивов

Добавлять переводы в БД и получать нагрузку в массиве при необходимости

$language['word_key']="word";

сохраняйте ключ слова в своем коде, так как он просто загружает переводы в массив на основе языка

в БД создайте 2 таблицы 1 для ключевых слов, которые являются первичной таблицей, и другие для переводов, которые имеют внешний ключ таблицы ключевых слов.

Напишите языковой класс, который может предоставить вам массив пар ключ => значение для использования в коде

пример на простом php

echo $language['kw_hi'];

если вы работаете с английским языком, он печатает "Привет" на французском "Салют", код остается тем же, только изменения содержимого

{!! Form::label($dictionary['apo_add_subject'], $dictionary['apo_add_subject']) !!}

Над словарем есть ключевое слово apo_add_subject. я создал таблицу с ключевыми словами id, имя-ключевого слова и идентификаторы перевода второй таблицы, kw_id, язык, перевод, затем на основе языка и модуля. Я загружаю его в массив, используя средние значения, и затем передаю, чтобы посмотреть, где будет использоваться код, написанный выше.

Просто загрузите разные значения в массив, сохраняя одинаковые ключевые слова.

Другие вопросы по тегам