【问题标题】:Localization in a Microservices based webapp基于微服务的 webapp 中的本地化
【发布时间】:2020-11-09 11:38:14
【问题描述】:

我们目前正在将本地化添加到我们的系统中,我正在尝试找出应对该挑战的有利选择。 我的系统是一个基于微服务 python 架构的 web 应用程序。 FE 使用一个 GW 与多个 BE 微服务通信,每个 MS 有不同的端点,应该根据语言环境返回字符串。

围绕它进行了一些讨论 here,但我们更专注于解决方案,该解决方案还允许数据(来自 db)和本地环境中的文本翻译。

我目前的选择是:

  1. 添加本地化微服务,在每次调用 BE 端点后,FE 将轮询字符串翻译。 (这是否可以很好地扩展?这会产生压倒性的开销吗?)

  2. 添加本地化微服务以供 BE 中的其他微服务用于翻译 - 这可能会导致与其他微服务的紧密耦合,特别是如果我们还想翻译 来自数据库的某种级别的数据(而不仅仅是元数据)。 (1)

  3. 翻译将在现有微服务中完成 - 如果我愿意,最好的方法是什么 降低微服务对翻译逻辑的认知?似乎 Flask-Babel 可以提供帮助 与翻译阶段 - 但如何减少这段代码的耦合?

我很想听听 cmets 对上述选项的看法,以及对我可能错过的其他选项的建议。 谢谢。

【问题讨论】:

  • 除非您绝对需要,否则我不会实施专用的本地化微服务。相反,我会设置一个共享的本地化存储库并将其拉入不同的微服务(例如,通过 Git 子模块)。为了更方便,“attranslate”是一个现代工具,有助于保持翻译文件的一致性:github.com/fkirc/attranslate

标签: localization internationalization microservices flask-babel


【解决方案1】:

由于本地化严格来说是前端的责任,所以我不会给后端带来负担。我建议在表示层本身上处理它,并且可能正在开发一个小工具来根据使用的资源构建语言环境文件。如果资源包的大小不是太大,那么可以在所有前端使用相同的资源包。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-07
    • 2016-06-25
    • 2017-10-15
    • 2020-07-22
    • 2018-04-15
    相关资源
    最近更新 更多