2013-04-04 141 views
0

我一直在研究几个小时,但我找不到一个清晰,高效的方式来解决我的问题。如何使codeigniter网站多语言阿拉伯语和法语

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

要在我的链接?lang=fr?lang=ar通过不影响我的链接,类似于:localhost/site/controleur/method/id

PS:我使用的是MySQL数据库。

回答

1

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

+0

什么文字位置?我们在右边读了阿拉伯语,在左边读了法语.. – 2013-04-04 23:00:33

+1

我认为在这种情况下,您必须加载所有'lang'库并定制'lang'文件,方法是向左侧添加一个位置为 的位置,然后其每个键将会从LEFT_KEY_NAME开始。 并使用'if'子句可以确定文本的位置。动态的意思是你可以切换'lang'位置 希望这对你有意义:) – MaNKuR 2013-04-05 07:21:57

+0

我会试试这个谢谢:) – 2013-04-05 16:33:50

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 
+0

多数民众赞成说如何我继续,但我的老板想用Multilangue的codeigniter ... – 2013-04-05 16:35:43

0

为什么你需要不同的网页为您的网站?国际海事组织,你需要切换模板或根据语言加载不同的控制器

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

+0

谢谢你的回答,我需要不同的页面,因为我在阅读时使用2种不同的语言,我们从右边读阿拉伯语,左,所以我们给了我2个不同的模板与不同的css – 2013-04-04 17:21:46

0

笨已经提供了多语言能力,它的国际化支持,

所有你需要的是一个控制器,语言文件和查看。

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

你的语言文件将是这个样子

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

你的控制器中,siteLang的值可以被检索无论是从URL,或者你可以把它存储在浏览器cookie。

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

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

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

一些关键点,就像郎文件的nomencalature等,你可以找到更多关于它,在下面的链接 http://ellislab.com/codeigniter/user-guide/libraries/language.html