我刚开始在我的 monorepo(新手)中使用 i18next,它有几个服务器端微服务和几个前端,包括几个自定义库组件。许多语言字符串是共享的,有些是特定于应用程序的。我无法决定解决问题的逻辑方法。
工具:Typescript - Node/Express - React/Vite - Electron/React (Desktop)
首先,问题:
- 开发时语言资源应该放在哪里?在另一个图书馆?应用程序在 monorepo 中?在每个库模块下?
- 我应该从哪里服务他们?像 lang.mydomain.com 这样的东西?在构建过程中将它们重新划分到每个应用程序下(例如使用 Vite)?
- 我可以访问的所有示例/教程都使用单个应用程序并使用 i18next.js/ts 包含在应用程序级别。我想出于我的目的,我需要将它包装到一个库模块中。在不失去对其功能/类型/方法等的访问权限的情况下,我该怎么做?在高阶模块中动态创建实例(库很广泛,我几乎迷路了)?
我最初的想法:
- 由于会分享很多翻译,每一个翻译都不合逻辑,应该分享。
- 因为可以有多种语言,所以使用
i18next-http-backend
似乎对于网络是合乎逻辑的,而对于桌面应用程序则使用 i18next-fs-backend
嵌入。
- 将资源划分为 common/graphs/tables/ui 等将是合乎逻辑的(尽管这些将在库模块层次结构中划分)。
- 一种合乎逻辑的方法可以是在模块中包含模块的语言资源,但这对翻译人员没有帮助,在这方面他们应该在顶层的同一位置。
PS:我以前用的是react-intl-universal,真的很简单,但是发布时间倒退了
提前谢谢你...