在我的公司,我们有一个我们已经开发了超过5年的Web应用程序。我们仍然有一个包含PHP4的代码库,并且已经扩展了PHP5的负载。 LOC很大,大约471k。它不是基于框架,ORM等等。
开始使用此项目的开发人员忽略了任何i18n和翻译。所有语言文本都在软件中进行了硬编码。是的,我知道这很糟糕。 目前我们很好,因为我们只用软件编写的语言出售,但我们也在考虑向海外扩张。
我正在努力处理翻译的最佳方法。 你们怎么接近这个?使用框架重写是否会更好,因为这可能也会改善代码库并提供可靠的结构。或者您只是使用当前的软件并过滤掉语言文本。
对此主题的任何提示和提示表示赞赏!
答案 0 :(得分:2)
我认为这两种变体都是可能的。您可以保留代码或重写代码。但正如你所知,重写是一个漫长的过程,尽管如此,你已经写了超过5年。
如果它仍然稳定,工作正常,PHP4和其他你不需要的“好吃的东西”,你可以离开并查看所有硬编码的文本。 i18n助手非常容易制作。你不得不做更多的事情:
如果你决定重写代码,你应该好好分析你的商业计划。
答案 1 :(得分:1)
还有一个额外的答案。翻译几乎相同的字符串是非常昂贵的。将其与语言数量相乘并实现:通过共享相同的字符串和格式实现良好的国际化,效率更高。
模板部分的第一次重写可能是有道理的。首先手动,然后使用您编写的自动转换工具。它应该准备I18N。
答案 2 :(得分:1)
根据我的经验,拥有一个有两个主要目标的单一项目并不是一件好事 - 特别是如果这些目标几乎完全不同于商业角度。我有一个负责本地化的项目团队(可能涉及的不仅仅是翻译 - 不同国家有不同的法律要求,货币,支付提供商等),还有一个团队负责“改进代码库”。
我首先要让本地化团队为“你能做的最简单的事情”制定一个粗略的计划(和成本) - 将改进的本地化功能改编成现在的网站。除非从业务角度来看这个成本是不可接受的 - 我会走这条路。
如果还没有进行重构的商业案例,我不会试图将其置于您的本地化项目中 - 我之前看到类似的事情发生了,并且所有开发人员都希望进行很酷的重构这些东西,谈论各种框架的相对优点,以及使用哪种源代码控制系统,而业务关注的东西被推向了未来;最终,企业主对项目失去了兴趣,并取消了它。
如果在没有重构努力的情况下真的没有现实的方法来进行本地化,我仍然会与两个独立的团队一起运行它。本地化团队可以成为重构团队的主要需求所有者,他们确实需要协同工作 - 但是通过保持两个项目独立运行,您可以避免90%的重构完成的风险,但只有10%的本地化。
答案 3 :(得分:0)
听起来你不仅仅是一个翻译项目。如果您想要将其带到国外,您 重新设计至少部分系统。
如果您的预算允许并且利益合理,那么您将要退一步看看整体设计。尽你所能,但不要害怕撕掉,重新设计,更换和升级它的主要部分。
在过去的5年中发生了很多变化,所以如果它是你计划销售多年的应用程序,它可能值得重新设计投资。
答案 4 :(得分:0)
这取决于你应该做什么的优先事项。
如果主要关注的是语言翻译,那么您可以从刚刚取出硬编码字符串开始,以便将其国际化。
如果还有其他需求,例如想要轻松支持不同的数据库,那么这将有助于确定是否有更好的方法。