問題タブ [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 で、「Uncaught ReferenceError: No date format named: undefined」というエラーを修正するにはどうすればよいですか?
Yahoo は、JavaScript 用の優れた国際化ツールのコレクションをオープンソース化しました。これは、FormatJS と呼ばれています。
FormatJSのガイドには、日付にはデフォルトのフォーマットshort
、medium
、long
およびが付属していると記載されていますfull
。
FormatJS は、Dust、Handlebars、および React の統合を提供します。
npm で管理された環境でReact mixin ( React-Intl
) を使用すると、数値をフォーマットできないようです。
私のコンポーネントから、私は呼び出します
ただし、次のエラーが表示されます。
Uncaught ReferenceError: 名前付きの日付形式がありません: 未定義
私の日付は「短い」と定義されていますが、これは組み込みにする必要があります。何を与える?
javascript - 日付範囲に相対的な日付/時刻形式
作業している日付範囲に応じて、適切な日付/時刻形式を選択する必要があります。日付の範囲は、数週間、数日、数時間、数秒 (場合によってはミリ秒) になる可能性があります。
moment.js と format.js を調べましたが、もっと良いものがあることを願っています。ハイチャートの日付範囲のようなものを達成したい。これらのグラフは、範囲に従って日時軸の適切な形式を選択します。
どんな助けでも大歓迎です。
ember.js - Ember 単体テストで format.js ヘルパーを有効にする方法
Emberとformatjsを使用してアプリケーションを国際化し、ember-cliを使用してすべてをビルドしています。
コンポーネントを生成するとき
Ember は、コンポーネントがレンダリングされることを確認するテストも作成します。ただし、コンポーネント テンプレートで formatjs の intl-get ヘルパーを使用すると、単体テストが失敗します。
では、単体テスト用に formatjs が作成するカスタム ヘルパーを登録するにはどうすればよいでしょうか。
最初に intl-get ヘルパーを追加しようとしました:
ただし、これは「intl:main」にアクセスしようとすると intl-get 内で失敗するだけです。intl イニシャライザを実行したいのですが、アプリケーションのセットアップさえあるかどうかわかりません。それとも、シノンを使用してこれらのメソッドを単にモックする方法はありますか?
私の現在の回避策は、「レンダリングする」テストを削除することです。しかし、これらのテストにも合格したいと考えているので、必要に応じて後でレンダリングをさらにテストできます。
formatjs - FormatJS メッセージのエディター
UI を変換するために、私たちの Web アプリケーションに FormatJS と React Intl を使用しています。現在不足しているのは、メッセージ ファイルのエディターです。
メッセージファイル用の適切なエディターを知っている人はいますか? 大きなファイルを扱う場合、生の JSON リソースを編集することは、実際には理想的なオプションではありません。
ありがとう、ジェラルド
javascript - React Intl v2 が使用できないSQL からの日付で
React でデモを作成していて、react-intl に出会いました。API 呼び出しから返され、「this.state」に格納される「値」で FormattedDate コンポーネントを使用しようとしました
ただし、ページの読み込みに失敗し、コンソールに次のように表示されます: 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 ファイルにメッセージを抽出したいと考えています。すべて正常にコンパイルされていますが、何も抽出されていません。react-intl の v2 を適切にメッセージを抽出するにはどうすればよいですか?
オプションがありますmessagesDir
:
私はもう試した:
- ここからの新しいファイル
.babel.rc
: https://github.com/yahoo/babel-plugin-react-intl/issues/23 – おそらくスペルミスの名前.babelrc
です。 - 新しいファイル
.babelrc
:
webpack構成を使用
エラーメッセージとして「index.js: Unknown option: /.babelrc.extra」が表示されます。
extra
上記のプロパティを上記の webpack 構成にも追加しようとしました。非常によく似たエラー メッセージが表示されます。
バージョン:
javascript - REST API と JS を使用する場合のタイム ゾーンの問題
過去に発生したイベントのリストを表示するために、Handlebars と共に FormatJS ライブラリを使用しています。サーバーの REST API でエンドポイントを呼び出しています。これは、Json でイベントのリストを返し、各イベントの日時を表示します。ATM GMTタイムゾーンを使用して日時をDBに保存しています。
したがって、Jsonを取得しているときは、次のように日時を処理しています:
私の問題は、日時が GMT でストックされているため、そのように表示されることです。たとえば、私は GMT+2 タイムゾーンを使用しているため、新しいイベントが作成されてリストに表示されるとすぐに、「数秒前」のはずなのに「2 時間前に発生」と表示されます。
それで、これを処理できる方法はありますか?DB の GMT で日時を保存するのを間違えていますか? もしそうなら、異なるタイムゾーンからの日時をどのように処理し、他のタイムゾーンの人々に表示しますか?
もちろん、formatRelative
ヘルパーをカスタマイズして操作し、必要な結果を得ることができgetTimezoneOffset
ましたが、他にもっと良い方法があるかどうかを知りたいと思っていました。
ありがとうございます!
reactjs - React-intl 多言語アプリ: 言語と翻訳ストレージの変更
反応ルーター アプリがあり、i18n を追加したいと考えています。React -intl の例では、IntlProvider にラップされたルート コンポーネント:
);
ただし、ロケールは 1 つだけです。他の言語を追加するためにアプリを更新する方法と、翻訳を保存する最良の方法は?