【发布时间】:2020-11-09 11:38:14
【问题描述】:
我们目前正在将本地化添加到我们的系统中,我正在尝试找出应对该挑战的有利选择。 我的系统是一个基于微服务 python 架构的 web 应用程序。 FE 使用一个 GW 与多个 BE 微服务通信,每个 MS 有不同的端点,应该根据语言环境返回字符串。
围绕它进行了一些讨论 here,但我们更专注于解决方案,该解决方案还允许数据(来自 db)和本地环境中的文本翻译。
我目前的选择是:
-
添加本地化微服务,在每次调用 BE 端点后,FE 将轮询字符串翻译。 (这是否可以很好地扩展?这会产生压倒性的开销吗?)
-
添加本地化微服务以供 BE 中的其他微服务用于翻译 - 这可能会导致与其他微服务的紧密耦合,特别是如果我们还想翻译 来自数据库的某种级别的数据(而不仅仅是元数据)。 (1)
-
翻译将在现有微服务中完成 - 如果我愿意,最好的方法是什么 降低微服务对翻译逻辑的认知?似乎 Flask-Babel 可以提供帮助 与翻译阶段 - 但如何减少这段代码的耦合?
我很想听听 cmets 对上述选项的看法,以及对我可能错过的其他选项的建议。 谢谢。
【问题讨论】:
-
除非您绝对需要,否则我不会实施专用的本地化微服务。相反,我会设置一个共享的本地化存储库并将其拉入不同的微服务(例如,通过 Git 子模块)。为了更方便,“attranslate”是一个现代工具,有助于保持翻译文件的一致性:github.com/fkirc/attranslate
标签: localization internationalization microservices flask-babel