mar*_*wun 7 translation localization internationalization language-translation microservices
正如主题所说,我正在寻找如何在微服务架构中处理 i18n 和 l10n 的最佳实践。关于这个话题似乎没有太多,但肯定还有其他话题
因此,在一个由一组微服务组成的相对复杂的系统中,可能使用多种语言开发,并且每个服务的代码托管在单独的 git 存储库中,并使用 Jenkins 管道构建,您如何着手本地化该系统?我做了一些研究,但无法找到这种设置的最佳实践。具体来说,我对如何在这样的环境中设置和管理持续本地化感兴趣。谢谢!干杯,
马丁
Chr*_*ard -1
您无需将数据本地化到微服务中,因为它们是后端的一部分。进入后端,您只处理关键字。然后在 GUI 中,您将拥有一个 i18n 系统,它将每个关键字替换为适当的句子。它不是特定于微服务的,您应该对整体应用程序执行相同的操作。
\n例如,后端返回一个像这样的人:({"name":"Paul","job":"cook"}“job”是一个封闭的工作列表,如“cook”,“salesman”,“teacher”,...),并且GUI具有以下代码:
import i18next from 'i18next';\ni18next.init({\n resources: {\n en: {\n translation: {\n "job": "Job",\n "cook": "Cook",\n "salesman": "Salesman",\n "teacher": "Teacher"\n }\n },\n fr: {\n translation: {\n "job": "M\xc3\xa9tier",\n "cook": "Cuisinier",\n "salesman": "Vendeur",\n "teacher": "Enseignant"\n }\n },\n es: {\n translation: {\n "job", "Trabajo",\n "cook": "Cocinero",\n "salesman": "Vendedor",\n "teacher": "Profesor"\n }\n }\n }\n});\n\n...\n\n// display the translation according to the current language\njobLabel.innerHTML = i18next.t("job");\njobField.innerHTML = i18next.t(person.job);\nRun Code Online (Sandbox Code Playgroud)\n如果您的 GUI 翻译不完整,则会显示 keyworkd,这通常是可接受的降级解决方案。
\n