我已经完成了一些网站和应用程序,支持多种语言,我已经在代码中使用了语言xml文件和关键字。对于我的网络应用程序,我相信这种方法很糟糕。我喜欢阅读和理解我的HTML代码。此代码没有任何意义:翻译Web应用程序的不同方法
<h1><?= translate('main_headline'); ?></h1>
它看起来不错的开始,但是刚刚结束了不愉快的程序员,因为添加新功能的过程,现在需要把东西在个XML所有的时间。
我的解决方案(我只是写了一个简单的测试PHP解析器一个小时前,你认为这将在一个大型项目的工作?)
我用英语作为我的基本语言,这是我如何源文件的外观:
<h1>{{ I love colors }}</h1>
我的解析器将使用文本(真实文本)作为字典数组的关键字。在这个例子中,我正在从美国英语翻译成英国英语。
$dictionary['I love colors']['en_GB'] = 'I love colours'
因为它已经在源文件中,所以我的基础语言不需要字典。
还有很多东西像缓存,回退,字典存储等。你认为它可以在大型项目中工作吗?那里有我没有考虑过的事情?
这种类型的字典是由phpBB成功使用的(尽管没有解析方面的东西。)但是,每种语言应该有一个字典文件,如果你需要en_GB, (1)避免加载20种语言,并且(2)在访问字典时不需要将其作为关键字。 – 2011-09-19 05:33:35