本地化的软件架构

时间:2015-03-06 20:45:52

标签: php laravel architecture localization software-design

我们目前正在向其他欧盟市场推出在线商业软件,不仅语言而且规则和法规因国家而异,这让我想知道,在软件中实施此类软件的最佳方式是什么?

用户界面本地化并不是一个真正的问题 - 做了多次,然后我可以计算,但是例如,发票国家往往需要不同的数据(不是完全不同,但不同,足以让你考虑它明智的架构)意味着不同的输入,不同的验证和对数据的不同处理。

哪种方式可以被认为更好?

  • 本地化UI和添加所需条件语句的标准方法,用于在Controller类中显示具有类似条件的额外和隐藏非必要元素
  • 为控制器和视图略有改动的特定国家/地区创建应用程序的副本(这将使常量更新成为噩梦,但代码更清晰)
  • 尝试以某种方式围绕此创建工厂/构建器模式?

虽然最后一个对我来说听起来最合理,但它让我更加沮丧,因为我还不知道从哪里开始。对此有什么好的指示?

选择的语言是使用Laravel的PHP

2 个答案:

答案 0 :(得分:0)

绝对不要制作不同的副本。

查看您当前的数据库体系结构,了解如何扩展它以满足您的要求。然后重写或更新应用程序的业务逻辑代码层。

然后您只需要在前端进行微调。

答案 1 :(得分:0)

这篇文章有点旧,但标题一般,其他人可以通过搜索找到,所以我在下面写了我的答案:

我认为这完全基于您的架构。近年来,人们遵循不同的原则将整个应用程序分解为具有特定任务和边界的有意义的微服务。这种心态将帮助您分析整个业务流程以及您可能需要为每个客户或国家/地区进行一些定制的地方。 例如,对于产品目录或库存管理,每个国家/地区之间的流程可能没有区别。但是在付款或订单管理中,您需要做一些小的修改,这在您遵循微服务模式时会变得非常容易。此外,您可以拥有自己的插件加载器结构,通过在您的应用程序中使用过滤器/挂钩功能,您可以修改、覆盖和扩展每个实例,就像您在 WordPress 和其他开源平台中看到的那样。