据我了解,一般有三种方法
1.模板技术
例如phpmyadmin 中,中文模版(一部分):
$strAccessDenied = '访问被拒绝';
$strAction = '执行操作';
$strAddDeleteColumn = 'Add/Delete Field Columns'; //to translate (tbl_qbe.php)
$strAddDeleteRow = 'Add/Delete Criteria Row'; //to translate (tbl_qbe.php)
$strAddNewField = '添加新字段';
$strAddPriv = 'Add a new Privilege'; //to translate
$strAddPrivMessage = 'You have added a new privilege.'; //to translate
$strAddSearchConditions = '添加检索条件 ("where" 语句的主体):';
$strAddUser = 'Add a new User'; //to translate
$strAddUserMessage = 'You have added a new user.'; //to translate
$strAfter = 'After'; //to translate
$strAll = 'All'; //to translate
看来得抽空看看PhpMyAdmin的源码了,有很好的参考价值!
2.标签
另外一种方法就是加TAG,如:<L10NTAG>the sample</L10NTAG>,然后在所有输出之前将其本地化,这种方法比较一般用于大型网站的高质量本地化需求。
3.java的I18N解决方案
第三种方案类似于J2EE够架的I18N解决方案,通过在.properties文件里面设置语言而轻松搞定:),对于PHP其实也可以采用这种方法,不过属性文件中的**.**.**可以使用正则来取值,对于属性文件的编写可以参考:中文版资源编辑工具JRC-Editor的使用