【发布时间】:2022-01-03 06:37:55
【问题描述】:
我计划为我的英国网站在美国推出,大部分文本都是相同的,但某些拼写和日期略有不同。 (颜色 vs 颜色,取消 vs 取消,道歉 vs 道歉)
我开始使用 i18n-next 库进行响应,但我有显示给用户的后端消息。我想做的只是将字符串包装在t() 中,然后匹配并替换这几个单词。 i18n 有能力做到这一点,还是我应该为此做一个简单的 util 函数?
理想情况下,我可以在 i18n 中做到这一点,因为我想在未来扩展到其他市场时证明这一点。
【问题讨论】:
-
这可以通过 i18next 实现。你也走在了正确的轨道上。使用与后端响应中的字符串匹配的键设置您的语言文件。示例:如果来自后端的字符串是“errorRequest”,您需要有一个 en-US 语言文件,其中包含 errorRequest:“my translate string”。然后你可以在你的 t() 中使用模板文字。像 t('errors:${errorRequest}').
-
哦。模板文字中的 errorRequest 当然是返回特定字符串的任何数据对象。
-
@TorRaswill 问题是后端没有存储所有错误消息的地方。想象一下 22k 线路控制器和错误消息只是由当时的开发人员创建的,没有标准化。客户不打算很快改变这一点。我想要任何用
t()包裹的没有 i18n 条目的字符串,以检查它是否包含前面列出的任何单个单词并根据语言环境替换它们。
标签: javascript reactjs react-hooks tsx