我曾经制作过几个支持多语言的网站和应用程序,其中我使用了语言XML文件和代码中的关键词。但是对于我的Web应用程序来说,我认为这种方法很糟糕。我喜欢阅读和理解我的HTML代码。这段代码没有任何意义:
<h1><?= translate('main_headline'); ?></h1>
一开始看起来很不错,但最终程序员们却变得不开心,因为现在添加新功能的过程总是需要不断地将东西放入XML中。
我的解决方案是(我刚刚写了一个简单的PHP测试解析器,你觉得这个在大型项目上能行吗?)
我以英语作为基础语言,这是我的源文件外观:
<h1>{{ I love colors }}</h1>
我的解析器将使用文本(真实文本)作为字典数组的关键字。在这个例子中,我将从美式英语翻译为英式英语。
$dictionary['I love colors']['en_GB'] = 'I love colours'
我的基本语言已经在源文件中,不需要字典。
除了缓存、回退、字典存储等方面,还有很多需要考虑的地方。您认为它能在大型项目中运行吗?我是否有什么没考虑到的地方?