如何使codeigniter网站多语言阿拉伯语&法国

时间:2013-04-04 16:15:55

标签: php codeigniter multilingual

我一直在研究数小时,但我找不到一种清晰有效的方法来解决我的问题。

我有2个模板(标题+内容+页脚)阿拉伯语&法语。对于每种语言,我的控制器中都有不同的页面和不同的功能我怎样才能建立一个多语种网站?

传递我的链接?lang=fr?lang=ar,而不会影响我的链接,类似于:localhost/site/controleur/method/id

Ps:我正在使用mysql db。

4 个答案:

答案 0 :(得分:1)

是的,您可以为具有类似键的文件创建单独的lang文件夹(对于每种语言),但值(文本)将根据语言类型。然后按标识符请求包含该特定语言文件(文件夹)。

答案 1 :(得分:0)

为什么不根据语言使用sub-folders作为控制器?

controllers/ar/my_controller.php
controllers/fr/my_controller.php

http://www.example.com/fr/home
http://www.example.com/ar/home

答案 2 :(得分:0)

为什么您的网站需要不同的页面? IMO,您需要根据语言切换模板或加载不同的控制器

以防万一,如果你刚刚开始你的项目,你可能会发现Bonfire更适合这个。它支持模板化和国际化 更简单的方法。

答案 3 :(得分:0)

Codeigniter已经提供了多语言设施,其国际化支持,

您只需要一个控制器,语言文件和视图。

根据所选语言,您的控制器将加载相应的语言文件,视图文件将显示用语言文件编写的模板。

您的语言文件将如下所示

$lang['language_key'] = "The actual message to be shown";

您的控制器,可以从网址中检索siteLang的值,也可以将其作为cookie存储在浏览器中。

function home(){ 
    $this->lang->load('home', $this->siteLang);   
}

您的视图看起来像这样,language_key的值将显示在该控制器上。

<?php echo $this->lang->line('language_key'); ?>

一些关键点,如lang文件的术语等,您可以在下面的链接中找到更多相关信息。 http://ellislab.com/codeigniter/user-guide/libraries/language.html