如何在多应用节点/express & react monorepo 中使用 i18next 创建共享语言资源?

问题描述 投票:0回答:0

我刚开始在我的 monorepo(新手)中使用 i18next,它有几个服务器端微服务和几个前端,包括几个自定义库组件。许多语言字符串是共享的,有些是特定于应用程序的。我无法决定解决问题的逻辑方法。

工具:Typescript - Node/Express - React/Vite - Electron/React (Desktop)

首先,问题:

  1. 开发时语言资源应该放在哪里?在另一个图书馆?应用程序在 monorepo 中?在每个库模块下?
  2. 我应该从哪里服务他们?像 lang.mydomain.com 这样的东西?在构建过程中将它们重新划分到每个应用程序下(例如使用 Vite)?
  3. 我可以访问的所有示例/教程都使用单个应用程序并使用 i18next.js/ts 包含在应用程序级别。我想出于我的目的,我需要将它包装到一个库模块中。在不失去对其功能/类型/方法等的访问权限的情况下,我该怎么做?在高阶模块中动态创建实例(库很广泛,我几乎迷路了)?

我最初的想法:

  • 由于会分享很多翻译,每一个翻译都不合逻辑,应该分享。
  • 因为可以有多种语言,所以使用 i18next-http-backend 似乎对于网络是合乎逻辑的,而对于桌面应用程序则使用 i18next-fs-backend 嵌入。
  • 将资源划分为 common/graphs/tables/ui 等将是合乎逻辑的(尽管这些将在库模块层次结构中划分)。
  • 一种合乎逻辑的方法可以是在模块中包含模块的语言资源,但这对翻译人员没有帮助,在这方面他们应该在顶层的同一位置。

PS:我以前用的是react-intl-universal,真的很简单,但是发布时间倒退了

提前谢谢你...

shared-libraries i18next monorepo next-i18next i18next-http-backend
© www.soinside.com 2019 - 2024. All rights reserved.