gpt4 book ai didi

reactjs - 如何调用 formatMessage() 从 .json 文件加载消息

转载 作者:行者123 更新时间:2023-12-03 14:14:03 31 4
gpt4 key购买 nike

我正在尝试使用标准 <FormattedMessage../> 直接在 comp 外部调用 formatMessage() API组件。

const locale = 'en';
const messages= defineMessages({
greeting: {
id: 'app.greeting',
message:"some message",
defaultMessage: 'Hello,all',
description: 'Greeting to welcome the user to the app',
}
});
const { intl } = new IntlProvider({locale, messages}).getChildContext();
export function someFunc(key, values) {
return intl.formatMessage({id:'greeting'});
}

上面是本地定义的静态消息,但是我有一个翻译文件 en.json 和 ja.json 全局存储,我想从中加载消息。我怎样才能使用defineMessages做到这一点,这样当我调用formatMessage()时,我应该能够根据所选的区域设置从resp文件中看到消息......想法赞赏!谢谢!

最佳答案

我不知道您的 .json 文件的格式,但您可以重新格式化它们(如果需要),以便其中的每个键至少具有 iddefaultMessage ( details ) 并传递给 defineMessages() 函数。

import enMessages from 'path/to/en.json'
import jaMessages from 'path/to/ja.json'
const localeMessages = locale === 'en' ? enMessages : jaMessages

const messages= defineMessages(localeMessages);

...
const { intl } = new IntlProvider({locale, messages}).getChildContext();
intl.formatMessage({id:'greeting'});

关于reactjs - 如何调用 formatMessage() 从 .json 文件加载消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44013853/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com