如何使用CodeIgniter使双语站点/应用程序从MySQL获取数据

时间:2011-09-04 14:11:55

标签: codeigniter multilingual

如何在CodeIgniter中使用语言? 它真的已经是一个内部资源(帮助器或库),还是我需要一个插件才能使它工作? 或者它是如此简单以至于我无法相信(或者不够愚蠢)?

2 个答案:

答案 0 :(得分:3)

只需关注此网址Codeigniter's language class

即可

CI的文档非常好,它会以非常简单和优雅的方式教你一切。

答案 1 :(得分:2)

两种方式:集成的和更漂亮的方式,并不总是可以使用。

如果您的PHP上没有多线程服务器(例如,如果您使用PHP-FPM),您可以使用流行的gettext,这样可以很容易地使用PoEdit或在线等应用程序翻译字符串免费翻译webapps,如Transifex

以下代码打开gettext。把它放在控制器前的某个地方。在控制器构造函数中就足够了。

// get the current language code
$locale = get_setting('fs_gen_lang');
putenv("LANG=$locale");
setlocale(LC_ALL, $locale);
bindtextdomain("default", FCPATH . "assets/locale");
textdomain("default");

然后你会有一个像这样的文件夹:

/my_ci_app/assets/locale/en_UK/LC_MESSAGES/default.po
/my_ci_app/assets/locale/en_UK/LC_MESSAGES/default.mo

也许还有一个基础文件,您将从中获得翻译,而更新时将更新所有其他翻译。我留下来了:

/my_ci_app/assets/locale/default.pot

否则,您可以使用内置语言系统,该系统适用于字符串和数组。在我看来,它最终会变得很难使用,但如果你的软件中没有很多字符串,它可能就足够了。还有sitesCodeIgniter itself的方式帮助翻译。

只需按照语言库中的说明和(可能不必要的)助手:

http://ellislab.com/codeigniter/user_guide/libraries/language.html

http://ellislab.com/codeigniter/user_guide/helpers/language_helper.html