创建单独的 i18next 而不使用 I18nextProvider
我有一个 shell 和一个 microfront 项目,它们都使用 react-i18next
来管理语言,但我希望每个项目控制自己的 i18next
实例。有没有什么方法可以做到这一点,而无需使用 I18nextProvider
将我的微前端包装在 shell 上并提供新实例?
我创建了这个 POC 您可以模拟问题只是启动并打开 shell 并更改语言,您将看到来自 microfront 的键覆盖了 shell 翻译键。
我希望每个项目在 i18next 方面都独立工作。这可能吗?
提前谢谢
I've a shell and a microfront project that both use react-i18next
to manage the languages but I would like that each project control his own i18next
instance. Is there any way to do it without wrapping my microfront on shell with I18nextProvider
and providing a new instance?
I've created this POC that you can simulate the problem just starting and oppening the shell and changing the language, you will see that the keys from the microfront override the shell translation keys.
I would like to have each project working separatally and independent from each other in terms of i18next. Is that possible?
Thx in advance
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
回答我自己的问题,以便将来帮助某人
如果这对某人有帮助,我已经设法解决了删除
react-i18next
来自我的 Module Federation microfront 的可共享配置。这会是下载两次lib的问题吗?
是的,但这是我发现分离react-i18next 实例的唯一方法。如果有人找到不同的方法,请在这里发帖。谢谢
Answering my own question in order to help someone in the future
If this help someone, I've manage to solve the problem removing the
react-i18next
from the sharable config of my Module Federation microfront.This is will be a problem of downloading the lib twice?
Yes, but it was the only way that I've found separate the react-i18next instance. If anyone find a different way, pls post here. thx
以下解决方案之一可能适合您:
解决方案 1:
您可以使用 createInstance 函数。
解决方案 2:
覆盖 i18next 实例可能会达到您的目的。
了解更多此处
解决方案 3:< /strong>
也许,你需要使用 I18nextProvider
何时使用 I18nextProvider?
One of the following solutions might work for you:
Solution 1:
You can create additional instances using the createInstance function.
Solution 2:
Overriding the i18next instance might serve your purpose.
Read more here
Solution 3:
Probably, you need to use I18nextProvider
when to use I18nextProvider?