我们用一下: npm i -save-dev @formatjs/cli 用这个工具需要所有 message 都有默认值,前面我们省略了,这里改一下: const messsages = defineMessages } }) 然后执行 extract 命令从 ts、vue 等文件里提所有 defineMessage 定义的消息: npx formatjs extract "src/**/*.tsx" --out-file temp.json 然后可以看到我们 defineMessage 定义的所有 message 都提取了出来,key 是 id: 接下来再执行 compile 命令生成语言包 json: npx formatjs 如果应用中有很多 defineMessage 的国际化消息,想要批量提取出来生成语言包,可以用 @formatjs/cli 的 extract、compile 命令来做。
目前已经有一些库能帮助解决这个问题,例如 FormatJS 等。但与 Java 和 C 等其他语言相比,JS 开发者和翻译人员的工作量还是要更大一些。 如果大家想亲自试试看,FormatJS 已经为初始 IntlMessageFormat 提案提供早期支持:https://formatjs.io/docs/intl-messageformat/ 正在开发一个实验性的
可以使用npm来安装Format.js: npm install formatjs ⭐步骤二:设置本地化 接下来,我们需要设置本地化。我们可以使用Intl API来设置本地化。
鉴于直接翻看v8的这部分源码比较硬核,我们选择去查看 toLocaleDateString 的 polyfill —— formatjs。 我们找到 formatjs 中的 packages/intl-datetimeformat/src/to_locale_string.ts 中的 toLocaleString 方法。
ColorHighlighter:颜色高亮 jQuery:jQuery ConvertToUTF8:转码成utf-8,解决乱码 ColorPicker:调色板 Trimmer–自动删除代码中不必要的空格 JS FormatJS
这些是处理国际化的最流行的库: FormatJS:https://github.com/formatjs/formatjs react-i18next:https://github.com/i18next
总结 项目中我们更多地是采用如Formatjs等上层i18n库,而不是更底层的IntlAPI,但若想更好地实现国际化和本地化,我想了解Intl及其背后的规则是十分有必要的。
React-intl是雅虎的语言国际化开源项目FormatJS的一部分,通过其提供的组件和API可以与ReactJS绑定。
React-intl是雅虎的语言国际化开源项目FormatJS的一部分,通过其提供的组件和API可以与ReactJS绑定。
index.html 文件,然后按照以下方式将其保存到本地: 图片 保存到本地后会发现 JS 文件被压缩了不利于观察,可以通过以下网站中的 JS 格式化工具将其格式化:https://spidertools.cn/#/formatJS
以下是一些流行的库,可用于处理这些问题: FormatJS react-i18next Lingui 时间处理 当 React 应用需要处理大量日期、时间和时区时,引入一个专门管理这些内容的库是很有用的
2011 年比大多数的前端框架都要年长 因为历史悠久所以更成熟,目前还没有 i18next 解决不了的国际化问题 有许多插件的支持,比如可以用插件检测当前系统的语言环境,从服务器或者文件系统加载翻译资源 formatjs
React-intl是雅虎的语言国际化开源项目FormatJS的一部分,通过其提供的组件和API可以与ReactJS绑定。
React-intl是雅虎的语言国际化开源项目FormatJS的一部分,通过其提供的组件和API可以与ReactJS绑定。
React-intl是雅虎的语言国际化开源项目FormatJS的一部分,通过其提供的组件和API可以与ReactJS绑定。
React-intl是雅虎的语言国际化开源项目FormatJS的一部分,通过其提供的组件和API可以与ReactJS绑定。
React-intl是雅虎的语言国际化开源项目FormatJS的一部分,通过其提供的组件和API可以与ReactJS绑定。
React-intl是雅虎的语言国际化开源项目FormatJS的一部分,通过其提供的组件和API可以与ReactJS绑定。
React-intl是雅虎的语言国际化开源项目FormatJS的一部分,通过其提供的组件和API可以与ReactJS绑定。
React-intl是雅虎的语言国际化开源项目FormatJS的一部分,通过其提供的组件和API可以与ReactJS绑定。