首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正确加载翻译数据Laravel5.2

正确加载翻译数据Laravel5.2
EN

Stack Overflow用户
提问于 2016-05-30 11:22:26
回答 1查看 884关注 0票数 1

我正在建设我的第一个多语种Laravel网站。

对于翻译,我使用的是这个包:laravel定位

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

  • 标题(英文标题)
  • title_nl (荷兰语标题)
  • title_fr (法语标题)

我已经阅读了关于本地化的laravel 文档,并以这种方式设置了错误消息。但是现在我很困惑如何正确地为我的观点显示不同的语言。

我应该这样做吗?

代码语言:javascript
复制
@if( LaravelLocalization::getCurrentLocale() == 'nl')
<p>{{$post->title_nl}}</p>

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

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

这看起来非常混乱,并不是正确的处理方法,因为扩展它将是一场噩梦。

还是需要在本地化函数中使用构建,如下所示:

代码语言:javascript
复制
{{ trans('post.title') }}

或者,这是否辜负了我正在使用的软件包的目的?

EN

回答 1

Stack Overflow用户

发布于 2016-05-30 11:37:50

使用多维数组的键值对

在DB中添加转换,并在需要时在数组中加载

代码语言:javascript
复制
$language['word_key']="word";

将word键保存在代码中,因为它只是在基于语言的数组中加载翻译。

在DB中,为关键字创建2个表1,为关键字表的外键翻译创建其他表。

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

简单php中的示例

代码语言:javascript
复制
echo $language['kw_hi'];

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

代码语言:javascript
复制
{!! Form::label($dictionary['apo_add_subject'], $dictionary['apo_add_subject']) !!}

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37524440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档