如何为真正的多语言网站设置 CodeIgniter?

Posted

技术标签:

【中文标题】如何为真正的多语言网站设置 CodeIgniter?【英文标题】:How to setup CodeIgniter for a truly multi language website? 【发布时间】:2011-09-01 00:18:01 【问题描述】:

我需要将 CodeIgniter 设置为真正的多语言网站。我已经搜索过,但找不到解决方案。

我已经测试过这种方法,但它不起作用。 (http://codeigniter.com/wiki/Category%3AInternationalization%3A%3AInternationalization_Views_i18n/)

有人可以告诉我在 CodeIgniter 中使用什么设置来获得真正的多语言环境吗?

最好的问候,

【问题讨论】:

一个真正的多语言网站?你到底是什么意思? 抱歉我的英语不好。我需要这样的 URI:www.mysite.com/en/controller、www.mysite.com/pt/controller、www.mysite.com/de/controller 他真正的意思是国际化(i18n)。这个问题有帮助吗:***.com/questions/1328420/… @JustinEthier:这将会话方法用于语言文件。看起来 André 想要使用一个 url 段来确定语言,并加载完全不同的视图文件,而不是只是在这里和那里翻译一些小片段。我确定这里也已经回答了,但我懒得在 atm 上查找。 【参考方案1】:

https://github.com/EllisLab/CodeIgniter/wiki/CodeIgniter-2.1-internationalization-i18n

如果您执行此操作,您的 URL 将包含语言代码。您可以将语言部分保存在语言目录中。使用函数 lang();

这里解释了加载语言文件和处理它们: https://www.codeigniter.com/user_guide/libraries/language.html

帮手: https://www.codeigniter.com/user_guide/helpers/language_helper.html

最简单的方法是自动加载一些全局语言文件。我建议为每个控制器创建一个语言文件。所以你只加载你需要的部分,而不是加载所有的语言文件。

【讨论】:

【参考方案2】:

从我所学到的。构建自己的库和模块来处理它们是关键。我在原生支持方面没有取得多大成功,因为它有时有点棘手。但它的基础是您可以使用默认站点加载选项来选择您选择的语言,在站点内您可以回显变量而不是静态文本。然后将这些变量存储在您可以称为语言包的内容中。每个语言包都有相同的变量,但每个包语言都有翻译版本。使用代码点火器可能会有点困难,然后只是将任何给定其他语言的标识附加到您的 url,即:mydomain.com/en/mydomain.com/it/mydomain.com/fr/ 然后基于语言负载像这样关闭 URL,但是您可以使用 CI 的内置会话支持来存储应显示的语言。根据该显示选择的语言,我知道这不是一个超级死的答案,但如果我得到一个需要多语言支持的项目,这就是我将如何处理它。

【讨论】:

不要使用语言cookie(会话)处理多种语言并保留sme URL。在 SEO 中,这将是重复的内容

以上是关于如何为真正的多语言网站设置 CodeIgniter?的主要内容,如果未能解决你的问题,请参考以下文章

如何为多语言版ASP网站添加一个中文版语言?

Codeigniter 网站多语言 CMS 实施的最佳方式

Codeigniter:如何使用数据库和用户会话数据构建多语言网站?

在codeigniter中制作多站点和多语言网站的正确方法

PHP Codeigniter 多语言站点使用会话变量来存储语言密钥

CodeIgniter 表单验证多语言标签