php-Web应用程序翻译的另一种方法

我已经完成了一些网站和应用程序,它们支持多种语言,其中我在代码中使用了语言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或行号的原因.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...