正确的加载翻译数据的方法Laravel 5.2

时间:2016-05-30 11:22:26

标签: php laravel-5 localization laravel-localization

我正在建立我的第一个多语言Laravel网站。

对于我正在使用此软件包的翻译:laravel-localization

在我的数据库中,我的列设置如下:

  • title(英文名称)
  • title_nl(荷兰标题)
  • title_fr(法文名称)

我已阅读本地化的laravel documentation并以这种方式设置我的错误消息。但现在我对如何正确显示我的观点的不同语言感到困惑。

我应该这样做:

@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 个答案:

答案 0 :(得分:1)

使用多维数组的键值对

在DB中添加翻译并在需要时加载数组

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

在代码中保留单词键,因为它只是根据语言

加载数组中的翻译

在DB中创建2个表1表示关键字是主表,其他表用于具有关键字表外键的翻译

编写一个可以为您提供key =&gt;数组的语言类要在代码中使用的值对

简单php中的例子

echo $language['kw_hi'];

如果你用英语运行它会在法语“Salut”中打印“Hi” 代码保持相同只是内容更改

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

字典上方有关键字apo_add_subject。我已经创建了一个表,其中包含关键字id,keyword_name和第二个表转换id,kw_id,语言,翻译然后基于语言和模块我将数据加载到数组中使用,然后传递到上面将使用上面编写的代码。

只需在数组中加载不同的值,保留相同的关键字