当前位置:  开发笔记 > 编程语言 > 正文

您如何将预先存在的Web应用程序转换为多语言应用程序?

如何解决《您如何将预先存在的Web应用程序转换为多语言应用程序?》经验,为你挑选了2个好方法。

我将开展一个项目,在这个项目中,需要调整一个相当大的Web应用程序来处理多种语言.事情是用手工制作的PHP代码运行的,但它非常干净.

我想知道最好的方法是什么?

    自己做点什么,试着适应实际的架构.

    使用将为我管理i18n的框架(例如,Symfony)重写其中的一部分?

对于选项1,我应该在哪里存储i18n数据?*.po,xliff,纯DB?

我想到了另一种选择:仅将Symfony用于翻译,而是将控制器设置为加载网站.快,但很脏.另一方面,它允许我们进行下一次修改,慢慢地移动到完整的Symfony:这个网站真的是一个很好的候选人.

但也许有一些独立的翻译引擎可以比整个Web框架更好地完成工作.这有点像用火箭筒杀死一只苍蝇......



1> Veynom..:

使用语言文件.

    用变量替换每个文本字符串

    为每种语言创建一个语言文件,并在其中定义每个变量及其相应的文本.(french.inc,dutch.inc ...)

    在每个页面中包含正确的文件.

这适用于小型网站.

如果变大,请用DB替换文件.:)


优雅?简单?不好了.@Veynom说它适用于小型网站是绝对正确的.当您打开代码并查看变量而不是英文文本字符串(或您的第一语言是什么)时,维护越来越麻烦.

2> PurplePilot..:

有很多方法可以解决这个问题.他们都不是"最好的方式",所有这些都是短期或长期的问题.首先要说的是,多语言网站并不容易,翻译和可爱的人,但很难合作,大多数程序员只把问题视为技术问题.除了您的翻译或本地化之外,还有另一个维度,在本答案的范围之外.这包括查看目标受众的文化习俗,然后根据该文化定制语言,风格,布局,颜色,字体等.最后不要使用MT,机器翻译,任何严肃的事情,或者如果它需要准确,并且在获得翻译时确保他们从外语翻译成他们的母语,这意味着他们理解目标语言的所有细微差别.

对.解决方案.在您不想重写网站的基础上,只需克隆您拥有的网站并将副本翻译成目标语言即可.假设代码库是稳定的,您可以使用VCS来管理任何代码更改.您可以调整网站的各个部分以适应目标语言,例如法语文本平均比同等英语文本大30%,因此使用一个站点来传递这意味着您可能(将)有格式问题并需要交换不同的css文件输入和输出取决于语言.这可能看起来很笨重,但那么这些网站会存在多久?这样做的管理开销可能比其他选项少.

第二种方式没有重建.用标签替换当前站点中的所有内容,然后将不同的语言放在文件或数据库表中,嗅探用户所需的语言(您是否有注册用户可以提供首选项,或者您是否想要获取浏览器语言标记,或者是它将成为URL dot-com dot-fr,dot-de做出选择)然后用目标语言替换标签.然后,您需要分别解决大小调整问题和图像问题.当Symfony和Zend等框架实现l10n时,此解决方案有效.

然后你可以使用框架或gettext重建,并可能有一个更清晰的解决方案,但记住框架旨在解决其他问题,而不是翻译,翻译组件已作为部分解决方案而不是完整的解决方案进入框架.

所有解决方案的最大问题是持续维护.因为您不仅拥有代码库,还拥有多种语言库来维护.除非你们在一个解决方案中都非常聪明和有效,否则对于正在进行的任务来说将是困难的.

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有