Yii2多语言

时间:2017-10-20 09:28:43

标签: yii yii2 yii2-advanced-app

我正在研究yii2框架。我想为购物车网站(英语和阿拉伯语)设置多种语言选项。我尝试过某种方式,但没有成功。

  1. 在数据库中创建每个表的副本。
  2. 为每种语言连接不同的数据库
  3. 在表格中添加两个语言字段。
  4. 哪个更好?或任何其他选择?

4 个答案:

答案 0 :(得分:1)

Yii2在文档

中有专门的部分

Internationalization

按照这些步骤,您可以创建翻译表格以及如何使用 Yii::t()

答案 1 :(得分:1)

我最近回复了另一篇关于此的帖子,在那里我提出了一种策略,它适用于我与客户端的复杂架构。请阅读答案,希望对您和其他人有所帮助。

在那里我讨论了3个主要组成部分  1.消息翻译。
 2.路线动态翻译。
 3.数据库内容翻译。

Yii2 best practices translating dynamic content

我在那里讨论的所有内容都是基于Yii2 i18n Message translation的文档中提供的其他答案中提到的。

答案 2 :(得分:0)

我有另一个解决方案:

示例:

tablename = post

表有以下字段:

id
post_title
post_content
language
slug 
...

每个帖子的slug -unique字符串。

id  | post_title      | post_content      |slug       |...
1     title_en         content_en          title_slug
2     title_ar         content_ar          title_slug
3     title_fr         content_fr          title_slug
4     title_uz         content_uz          title_slug

您可以像这样设置网址:

http://example.com/en/post/title_slug

答案 3 :(得分:0)

在packagist.org上搜索lajax / yii2-translatemanager。它可以扫描您的目录以及客户端javascript代码以翻译语言字符串,并包括用于处理数据库内容的TranslateBehavior。对于数据库内容,您需要将适用模型中的行为与需要转换的列一起使用,并在配置文件中自行定义表列。它被设计为与高级模板一起使用,但是可以很容易地通过更改配置文件来适应基本模板。您可以在youtube上找到有关此特定主题的一些视频教程。

有几种设计数据库模式以处理语言翻译的方法。您应该可以在packagist.org上找到示例。尝试搜索“ Yii2语言翻译”。