Rob*_*itt 11 php internationalization
我目前正在研究i18n
融入项目的最佳方法.
我想到了几种方法,首先是存储字符串和相关语言环境的数据库方案,但问题是选择字符串并不容易,因为我不想像所以:
SELECT text FROM locales WHERE locale = 'en_GB' AND text_id = 245543
Run Code Online (Sandbox Code Playgroud)
要么
SELECT text FROM locales WHERE locale = 'en_GB' AND text_primary = 'hello'
Run Code Online (Sandbox Code Playgroud)
下一个方法是将它们存储在文件中locales/en_gb/login/strings.php
,然后尝试通过专门开发的类来访问它们:
$Language = Registry::Construct('Language',array('en_GB'));
echo $Language->login->strings->hello;
Run Code Online (Sandbox Code Playgroud)
这个问题是我必须构建一个系统,通过管理面板更新这些文件非常耗时,不仅仅是构建系统来管理字符串,而是在网站增长时实际管理字符串
除了gettext
已经提到的,PHP 5.3还具有原生国际化支持
如果这不是一种选择,可以考虑使用Zend框架Zend_Translate
,Zend_Locale
并为相关组件.Zend_Translate
支持许多适配器,包括但不限于简单数组,gettext,XmlTm等.
小智 5
最令人印象深刻的学习方法是Drupal的实现。第二好的是Wordpress。两者都使用gettext和.pot / .po / .mo进行本地化。而且,好处是,有一个名为Poedit的漂亮的开源.po编辑器。Windows系统用户可以使用它,它具有更广泛的吸引力。它也适用于Mac和Linux。在这里查看:http : //www.poedit.net/
归档时间: |
|
查看次数: |
7116 次 |
最近记录: |