Php 将遗留软件翻译成多种语言的最佳方法?

Php 将遗留软件翻译成多种语言的最佳方法?,php,web-applications,translation,software-design,Php,Web Applications,Translation,Software Design,在我的公司,我们有一个web应用程序,我们已经开发了5年多了。我们仍然有一个包含PHP4的代码库,并且已经用PHP5的负载进行了扩展。 LOC相当大,大约471k。它不是基于框架、ORM等 开始这个项目的开发人员忽略了任何i18n和翻译。所有语言文本都在软件中硬编码。是的,我知道这很糟糕。 目前我们很好,因为我们只以软件所用的语言销售,但我们也在考虑向海外扩张 我正在努力寻找处理翻译的最佳方法。 你们会怎么做?使用框架重写是否更好,因为这可能也会改进代码库并提供可靠的结构。或者你只是使用当前的软

在我的公司,我们有一个web应用程序,我们已经开发了5年多了。我们仍然有一个包含PHP4的代码库,并且已经用PHP5的负载进行了扩展。 LOC相当大,大约471k。它不是基于框架、ORM等

开始这个项目的开发人员忽略了任何i18n和翻译。所有语言文本都在软件中硬编码。是的,我知道这很糟糕。 目前我们很好,因为我们只以软件所用的语言销售,但我们也在考虑向海外扩张

我正在努力寻找处理翻译的最佳方法。 你们会怎么做?使用框架重写是否更好,因为这可能也会改进代码库并提供可靠的结构。或者你只是使用当前的软件过滤掉语言文本


在此主题上的任何提示和提示都将不胜感激

听起来你面前的不仅仅是一个翻译项目。如果你想把它带到国外,你必须至少重新设计系统的一部分

如果您的预算允许,并且好处也证明了这一点,那么您需要退后一步,看看总体设计。尽可能保留,但不要害怕删除、重新设计、替换和升级它的主要部分


在过去的5年里发生了很大的变化,因此,如果你打算再销售一个应用程序很多年,那么在重新设计上的投资可能是值得的。

听起来你面前的不仅仅是一个翻译项目。如果你想把它带到国外,你必须至少重新设计系统的一部分

如果您的预算允许,并且好处也证明了这一点,那么您需要退后一步,看看总体设计。尽可能保留,但不要害怕删除、重新设计、替换和升级它的主要部分


在过去的5年里发生了很大的变化,因此,如果你计划再销售一个应用程序很多年,那么在重新设计上的投资很可能是值得的。

这取决于你应该做什么,以及优先级是什么

如果主要关注的是语言翻译,那么您可以从取出硬编码字符串开始,这样它们就可以国际化


如果还有其他需要,例如希望轻松支持不同的数据库,那么这将有助于确定是否有更好的方法。

这取决于优先级,以及您应该做什么

如果主要关注的是语言翻译,那么您可以从取出硬编码字符串开始,这样它们就可以国际化


如果还有其他需求,例如希望轻松支持不同的数据库,那么这将有助于确定是否有更好的方法。

我认为这两种变体都是可能的。你可以留下你的代码,或者重写。但正如你所知,重写是一个漫长的过程,尽管你已经写了5年多了

如果它仍然稳定,工作正常,PHP4和其他你不需要的“美味的东西”,你可以离开,只需查看所有硬编码文本。i18n助手非常容易制作。你不必再做什么了:

  • 选择适当的文本和翻译存储方式
  • 已加载翻译的缓存机制
  • 类和i18n操作的帮助器

如果你决定重写你的代码,你应该很好地分析你的商业计划。

我认为这两种变体都是可能的。你可以留下你的代码,或者重写。但正如你所知,重写是一个漫长的过程,尽管你已经写了5年多了

如果它仍然稳定,工作正常,PHP4和其他你不需要的“美味的东西”,你可以离开,只需查看所有硬编码文本。i18n助手非常容易制作。你不必再做什么了:

  • 选择适当的文本和翻译存储方式
  • 已加载翻译的缓存机制
  • 类和i18n操作的帮助器

如果你决定重写你的代码,你应该很好地分析你的商业计划。

还有一个额外的答案。翻译几乎相同的字符串非常昂贵。将其与语言的数量相乘,人们就会意识到:共享相同字符串,甚至可能是格式的良好国际化确实更有效


第一次重写模板部分,可能是有意义的。首先用手,然后用你写的自动转换工具。它应该准备I18N。

仍然有一个额外的答案。翻译几乎相同的字符串非常昂贵。将其与语言的数量相乘,人们就会意识到:共享相同字符串,甚至可能是格式的良好国际化确实更有效


第一次重写模板部分,可能是有意义的。首先用手,然后用你写的自动转换工具。它应该为I18N做好准备。

根据我的经验,一个项目有两个主要目标不是一件好事,尤其是如果这些目标与业务观点几乎完全无关的话。我会有一个项目团队负责本地化(这可能不仅仅涉及翻译——不同的国家有不同的法律要求、货币、支付提供商等),还有一个团队负责“改进代码库”

首先,我会让本地化团队为“你能做的最简单的事情”制定一个粗略的计划(和成本)——按照现在的情况将本地化功能重新安装到站点中。除非从商业角度来看,这一成本是不可接受的,否则我会走这条路

如果重构的商业案例还没有制定出来,我不会尝试将其纳入您的本地化项目中——我以前见过类似的事情发生,所有的开发人员都想从事很酷的重构工作,谈谈相对论