标签:web-applications php internationalization
我已经完成了一些网站和应用程序,它们支持多种语言,其中我在代码中使用了语言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或行号的原因.
标签:web-applications,php,internationalization 来源: https://codeday.me/bug/20191023/1915219.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。