我已经完成了一些网站和应用程序,它们支持多种语言,其中我在代码中使用了语言xml文件和关键字.对于我的Web应用程序,我相信这种方法很烂.我喜欢阅读和理解我的HTML代码.这段代码没有任何意义:
<h1><?= translate('main_headline'); ?></h1>
它一开始看起来不错,但最终让不满意的程序员告终,因为添加新功能的过程现在需要始终将内容放入XML中.
我的解决方案(一个小时前我刚刚编写了一个简单的测试PHP解析器,您认为这可以用于大型项目吗?)
我使用英语作为基本语言,这就是我的源文件的外观:
<h1>{{ I love colors }}</h1>
我的解析器将使用文本(真实文本)作为字典数组的键.在此示例中,我将美国英语翻译为英国英语.
$dictionary['I love colors']['en_GB'] = 'I love colours'
我的基本语言不需要字典,因为它已经在源文件中了.
还有很多其他功能,例如缓存,后备,字典存储等.您认为它可以在大型项目中使用吗?有没有我考虑过的东西?
解决方法:
这样做的一个缺陷是,对于同一单词/短语,应用程序的两个不同部分可能需要不同的翻译.最明显的例子是homograph,例如“关闭”(附近)和“关闭(关闭)”,但还有其他可能性.
人为的短语示例为:
在一部分中,“我爱我的颜色”仅指文字颜色.
换句话说,它代表“我爱我的旗帜”
应该:
$dictionary['I love my colors']['es_ES']
是“ Me encantan mis colores”或“ Me encanta mi bandera”.它一定是两者兼而有之.
这就是为什么消息目录中通常使用唯一ID或行号的原因.