問題タブ [ecmascript-intl]

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.

0 投票する
4 に答える
6196 参照

javascript - JavaScript用のi18n(Intl)シムはありますか?

ECMAScriptInternationalizationAPIのシムを探しています。誰かがそのようなプロジェクトを知っていますか?(現在も作業中です。)

0 投票する
2 に答える
43463 参照

javascript - Date.toLocaleString() の Chrome timeZone オプション

最近、JavaScript に新しい拡張機能があることを発見しました。これにより、および関数のDateオブジェクトにいくつかの機能が追加されます。 ここを参照してくださいtoLocaleStringtoLocaleDateStringtoLocaleTimeString

やなどのIANA/Olson タイム ゾーンtimeZoneをサポートするオプションに特に興味があります。 これは現在、Google Chrome でのみサポートされていますAmerica/New_YorkEurope/London

以前のアドバイスでは、JavaScript で UTC 以外のタイム ゾーンまたは独自のローカル タイム ゾーンを使用するには、ライブラリを使用する必要があるというものでした。しかし今では、これがブラウザに直接組み込まれ始めているようです。だから今、あなたはこれを行うことができます:

または:

または:

これは非常にクールですが、いくつか質問があります。

  • これは新しい規格の一部ですか? ECMAScript 6 のどこかに埋もれているのではないでしょうか? それともChromeのカスタムですか?
  • なぜGoogle Chromeだけ?他の場所でサポートされていますか? 他の場所でサポートする予定はありますか?
  • Chrome の JavaScript ランタイムを使用する node.js を確認しましたが、動作しません。なぜだめですか?
  • リストした機能以外の方法でタイム ゾーン データにアクセスできますか? 文字列をフォーマットするときにのみ使用できる場合、結果に基づいて計算を行うのは難しい場合があります。
  • これは出力に焦点を当てていますが、入力にはどのように使用しますか? コンストラクターのタイムゾーンをDateオブジェクトに渡す方法はありますか? 私は次のことを試しました:

    どちらも機能しませんでした。仕様書には何も載っていなかったので、これは(まだ)存在しないと思いますが、間違っていたら教えてください。

  • ECMAScript 5 仕様の欠陥によって作成されたこの投稿で説明されている問題は、正しいデータが TZDB にある場合でも、依然として出力に影響を与えます。古い実装と新しい実装が共存しているのはなぜですか? それはすべて古い方法か、またはすべて新しい方法であると考える人もいるでしょう。たとえば、コンピューターのタイム ゾーンが米国東部時間に設定されている場合:

    戻ります"11/6/2004 11:00:00 PM"。真夜中に開始し、ローカル タイム ゾーンが出力タイム ゾーンと一致するため、真夜中に返されるはずです。ただし、ES5 の問題により、提供された入力日付が間違った UTC ポイントに配置されます。

  • IANA が TZDB の更新をリリースすると、Google が変更を含む Chrome の更新をプッシュすることを期待できますか?

0 投票する
2 に答える
3525 参照

javascript - Intl は firefox で定義されていません

次の Java スクリプト コードは、Chrome では正常に動作しますが、Firefox と IE では失敗します。FF のエラー メッセージは 'ReferenceError: Intl is not defined' です IE のエラー メッセージは 'SCRIPT5009: 'Intl' is undefined' です

標準オブジェクト Intl を FF や IE で参照できないのはなぜですか? 私は何か見落としてますか?

0 投票する
2 に答える
4183 参照

javascript - Javascript 国際化 API は PhantomJS ではサポートされていません

ECMAScript 国際化 API を使用するサービスに対して一連のJasmineテストを実行しています。AngularJsChromeで実行すると、すべて正常に実行されます。ただし、PhantomJSMaven を使用してそれらを実行すると、PhantomJs国際化 API をまだサポートしていないように見えるため、すべて失敗します。

Intl オブジェクトを使用したテストで得られるエラー メッセージは次のとおりです。

1: ReferenceError: 変数が見つかりません: localizationService.js の Intl

そして、残りのテストは単に失敗します。

テストは単純で、次のようになります。

サービスのメソッド (localizationService.js) は、Intl API の単純なラッパーです。

私の質問は次のとおりです。

PhantomJS v1.9.21-をサポートしない私の仮定は正しいECMAScript internationalization APIですか? とにかくそれを確認することはありますか?

2- この問題を解決するにはどうすればよいですか? Maven を使用してテストを実行する必要があり、localizationService API にいずれかの方法でヒットするテストがさらに必要になります。
ありがとう

0 投票する
2 に答える
2454 参照

javascript - ECMAscript 国際化 API で小数点と桁区切りを取得する方法はありますか?

新しいJavascript 国際化 APIを使用しようとしていますが、Intl.NumberFormatインスタンスの小数点と千 (グループ化) 区切り記号を取得する方法があるかどうかを知りたいですか?

オブジェクトにはresolvedOptionsメソッドがありますが、シンボルは提供されません。

ご参考までに、en-US の場合、これらはin などのカンマ,とピリオドになります。.1,000.00

0 投票する
1 に答える
1251 参照

javascript - カスタム Intl.Collat​​ors?

Intl.CollatorJavascript 用のカスタム オブジェクトを作成することは可能ですか? 私が持っているとします:

それらを並べ替えると、ñデフォルトで最後に移動します。

ただし、 new を使用すると、次のIntl.Collatorことができます。

esスペイン語 ( ) のルールでソートし、ñ後にn.

さて、なんらかの理由で自分の を書きたいと思ったとしCollatorますñ

の新しいルール セットのカスタマイズに関する情報を見つけることができませんでしたIntl.Collator

これは可能ですか?

アップデート

はい、可能です。

アップデート:

カスタム ロケールの作成方法に関するECMAscript i18n standard 2のアドバイスを見つけました。

0 投票する
1 に答える
685 参照

javascript - Intl.NumberFormat#format 最大整数値

ECMAScript Internationalization API 1.0 仕様では、NumberFormatobject にはformat、値を受け取り、オブジェクトに従って数値をフォーマットする関数がありNumberFormatます。

NumberFormat#format関数が消化できる最大値は何ですか?

Chrome、および以下で実行されている Firefox の場合:

15桁目以降は に変換されるよう0です。スペックをざっと見ましたが、原因がわかりませんでした。誰かが理由を知っていますか?

上記の ES5 仕様が IEEE 754 仕様に準拠しているためでしょうか。他に思いつかない…</p>

0 投票する
1 に答える
343 参照

javascript - 複数の「アルファベット順」を持つ言語の Intl.Collat​​or でブラウザーがサポートしている照合バリアントを確認するにはどうすればよいですか?

JavaScript ES6/Harmony に、言語固有の並べ替え/照合が追加されました。

現在、ブラウザによってサポートが異なるため、Chrome では、使用する言語と使用しない言語があることがわかりました。

しかし、私が問題を抱えているのは、フィンランド語、日本語、スペイン語、スウェーデン語など、テキストを並べ替える方法が複数あり、ブラウザでサポートされている方法を見つけることです。

0 投票する
1 に答える
1176 参照

javascript - Javascript Intl DatetimeFormatter as (ISO_8601|custom) 出力パターン

Intl.DateTimeFormatを使用したいのですが、出力用のカスタム パターンを使用します。ICU dateformat の php バージョンでこのメソッドを使用していますが、うまく機能します。

ICU 日時フォーマッタの PHP バージョンのように、Intl.DateTimeFormat で ICU ドキュメントとしてパターンを設定するにはどうすればよいですか。

私のJavaScriptコード

EEEE d MMMM yyyy HH:mmor MM yy ddor etcのような私の javascript フォーマットパターンで ISO_8601 パターンをどのように設定できますか?

ISO_8601

PHP IntlDateFormatter::フォーマット

ICU 日付フォーマッター

ICU 日付形式

0 投票する
2 に答える
306 参照

javascript - `new Intl.NumberFormat("es-ES").format(3500)` を `3 500` にフォーマットすると、Firefox 41 にバグがありますか?

さまざまなブラウザーでの数値の書式設定のサポートに慣れようとすると、Firefox 41 では (グループ セパレーターとしてスペースを使用して) フォーマットnew Intl.NumberFormat("es-ES").format(3500)され3 500、IE 11、Edge、および Google Chrome では(グループ セパレーターとして3.500ドットを使用して) 表示されることがわかりました。 ..

私は疑問に思っています、それはFirefoxのバグですか?それとも、スペインのスペイン語で許可されている数字の形式があいまいですか?