1

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

对于我使用这个包的翻译: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') }}

或者这是否违背了我正在使用的包的目的?

4

1 回答 1

1

使用多维数组的键值对

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

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

在代码中保留单词键,因为它只是根据语言在数组中加载翻译

在数据库中创建 2 个表 1 用于作为主表的关键字,其他用于具有关键字表外键的翻译

编写一个语言类,可以为您提供键 => 值对数组以在代码中使用

简单 php 中的示例

echo $language['kw_hi'];

如果您使用英语运行,它会在法语中打印“Hi”“Salut”代码保持不变,只是内容更改

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

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

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

于 2016-05-30T11:37:50.597 回答