我已经研究了好几个小时了,但我还是找不到一个清晰、有效的方法来解决我的问题。
我有2个模板(页眉+内容+页脚)在阿拉伯语&法国人。对于每种语言,不同的页面和不同的功能都在我的控制器中。如何制作一个多语言网站?
传递我的链接?lang=fr
或?lang=ar
而不影响我的链接,类似于:localhost/site/controleur/method/id
是的,您可以创建一个单独的lang
文件夹(针对每种语言),具有具有相似密钥的文件,但值(文本)将根据语言类型。然后根据标识符的要求包含特定的语言文件(文件夹)。
为什么不根据语言为控制器使用子文件夹呢?
controllers/ar/my_controller.php
controllers/fr/my_controller.php
http://www.example.com/fr/home
http://www.example.com/ar/home
为什么你的网站需要不同的页面?在我看来,你需要根据语言
切换模板或加载不同的控制器。以防万一,如果你刚刚开始你的项目,你可能会发现篝火更适合这个。它在很大程度上支持模板和国际化更简单的方法。
Codeigniter已经提供了多语言功能,它的国际化支持,
你所需要的只是一个控制器、语言文件和视图。
根据所选择的语言,控制器将加载相应的语言文件,视图文件将显示用该语言文件编写的模板。
你的语言文件看起来像这样
$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'); ?>
一些关键点,如命名的lang文件等,你可以找到更多关于它,在下面的链接http://ellislab.com/codeigniter/user-guide/libraries/language.html