问题标签 [formatjs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
npm - 使用 React-Intl,如何修复错误“未捕获的 ReferenceError:没有命名的日期格式:未定义”?
雅虎开源了一组不错的 JavaScript 国际化工具,他们称之为 FormatJS。
FormatJS指南提到日期带有默认格式short
、medium
和.long
full
FormatJS 为 Dust、Handlebars 和 React 提供集成。
在 npm 管理的环境中使用 React mixin ( React-Intl
) 时,我似乎无法格式化数字。
从我的组件中,我调用
但是,我收到此错误:
未捕获的 ReferenceError:没有命名的日期格式:未定义
我的日期被定义为“短”,应该是内置的。是什么赋予了?
javascript - 相对于日期范围的日期/时间格式
我需要根据我正在使用的日期范围选择适当的日期/时间格式。日期范围可以是几周、几天、几小时、几秒(甚至几毫秒)。
我已经研究了 moment.js 和 format.js 但我希望那里有更好的东西。我想实现类似 highcharts daterange 之类的东西。这些图表根据范围为日期时间轴选择适当的格式。
任何帮助,将不胜感激。
ember.js - 如何在 Ember 单元测试中启用 format.js 助手
我正在使用Ember和formatjs来国际化我的应用程序,并使用ember-cli来构建它。
当我生成一个组件时
Ember 还创建了一个测试来检查组件是否呈现。但是,如果我在组件模板中使用来自 formatjs 的 intl-get 帮助程序,则单元测试将失败。
那么如何注册 formatjs 为单元测试创建的自定义助手呢?
我首先尝试添加 intl-get 助手:
但是,当它尝试访问“intl:main”时,这只是在 intl-get 内部失败。我想让 intl 初始化程序运行,但我不确定是否有应用程序设置。还是使用 sinon 来模拟这些方法?
我目前的解决方法是删除“它呈现”测试。但我希望这些测试也能通过,所以如果我愿意,我可以在以后进一步测试渲染。
reactjs - i18n 用于 react、formatjs、react-intl
我想在我的反应应用程序中为我的 i18n 使用 ICU 标准。我想存储我的语言文件,例如http://userguide.icu-project.org/locale/localizing#TOC-.txt-resource-bundles:
我找到了这个库http://formatjs.io/react/。http://formatjs.io/支持 ICU,但是我找不到任何好的示例如何将我的语言文件与我的应用程序连接。
我正在阅读他们的教程,看来我可以使用该组件<FormattedMessage>
。所以例如
然后在某些组件中我有
我最大的问题是如何转换我的语言文件,例如
成格式:
是否有任何解析器/转换器?
formatjs - FormatJS 消息的编辑器
我们正在为我们的 Web 应用程序使用 FormatJS 和 React Intl 来翻译 UI。我们目前缺少的是消息文件的编辑器。
有人知道消息文件的任何体面编辑器吗?在处理大文件时,编辑裸 JSON 资源并不是一个理想的选择。
谢谢,杰拉德
javascript - React Intl v2 无法使用来自 SQL 的日期
我一直在用 React 构建一个演示,并遇到了 react-intl。我尝试将 FormattedDate 组件与从 API 调用返回并存储在“this.state”中的“值”一起使用
但是页面无法加载,控制台显示: RangeError: Provided date is not in valid range,代码如下。
index.js
在我拥有的组件的渲染中,
在代码中,我们看到组件使用Intl.DateTimeFormat.prototype.format来生成格式化日期,但是当我在Node repl中执行相同操作时
知道为什么会这样吗?我也尝试过将裸字符串分配为“值”以及 (new Date(date.parse(this.state.booking.checkIn)
,但都产生范围错误。
json - babel v6 + react-intl v2 + webpack 将消息提取到文件
我想使用 Babel v6、react-intl v2 和 webpack 将源代码中的消息提取到 JSON 文件中。这一切都编译得很好,但没有提取任何东西。如何使 v2 的 react-intl 正确提取消息?
有一个选项messagesDir
:
我试过了:
.babel.rc
来自这里的新文件: https ://github.com/yahoo/babel-plugin-react-intl/issues/23 - 名称可能拼写错误,应该是.babelrc
.- 新文件
.babelrc
:
使用 webpack 配置
给出:“index.js:未知选项:/.babelrc.extra”作为错误消息。
我也尝试将上述extra
属性添加到上面的 webpack 配置中。它给出了一个非常相似的错误信息。
版本:
javascript - 如何输出长日期时间格式,其中包括 timzone 与 moment-timezone 和 react-intl?
我有一些客户端代码使用react-intl以用户定义的语言和区域(文化/区域设置)显示货币、语言和日期时间值。除了这些要求之外,我还想在使用长日期和时间格式时显示时区缩写(例如2016 年 2 月 8 日,格林威治标准时间 15:02)。
为此,我尝试使用moment-timezone模块,它似乎在隔离中做正确的事情。但是,我发现在我使用react-intl的应用程序中,同一行代码会生成正确的数据,但日期时间格式错误。
预计时间:格林威治标准时间 2016 年 2 月 8 日 20:57
实际时间:格林威治标准时间 2016 年 2 月 8 日晚上 9:04
我的猜测是,这与我没有直接加载en-US local的事实有关,因为使用以下类型的代码作为react-intl库的一部分自动为我加载了时刻。
有关的:
javascript - 使用 REST Api 和 JS 时的时区问题
我正在使用FormatJS 库和 Handlebars来显示过去发生的事件列表。我在我的服务器的 REST API 上调用一个端点,它返回 Json 中的事件列表,并为每个事件显示日期时间。ATM 我使用 GMT 时区在数据库中保存日期时间。
所以当我得到我的 Json 时,我正在处理这样的日期时间:
我的问题是,由于日期时间是在 GMT 中存储的,所以它们也会这样显示。例如,由于我在 GMT+2 时区,一旦创建了新事件并显示在列表中,我就会看到它“发生在 2 小时前”,而应该是“几秒钟前”。
那么,有什么办法可以解决这个问题吗?我在我的数据库中以 GMT 格式保存日期时间是否犯了错误,如果是这样,您将如何处理来自不同时区的日期时间并将它们显示给其他时区的人?
当然,我可以自定义formatRelative
助手来玩getTimezoneOffset
并获得想要的结果,但我想知道是否有更好的事情要做。
非常感谢!
reactjs - React-intl 多语言应用程序:更改语言和翻译存储
我有 react-router 应用程序并想添加 i18n。在包装在 IntlProvider 中的 react-intl示例根组件中:
);
但是只有一种语言环境。如何更新应用程序以添加其他语言以及存储翻译的最佳方式是什么?