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

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

Для переводов я использую этот пакет: Laravel-локализация.

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

  • название (английское название)
  • 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, language, translation, затем основанный на языке и модуле. Я загружаю его в массив с использованием middle и затем передаю, чтобы посмотреть, где будет использоваться код, написанный выше.

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

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]