問題タブ [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.
javascript - JavaScript用のi18n(Intl)シムはありますか?
ECMAScriptInternationalizationAPIのシムを探しています。誰かがそのようなプロジェクトを知っていますか?(現在も作業中です。)
javascript - Date.toLocaleString() の Chrome timeZone オプション
最近、JavaScript に新しい拡張機能があることを発見しました。これにより、および関数のDate
オブジェクトにいくつかの機能が追加されます。 ここを参照してください。toLocaleString
toLocaleDateString
toLocaleTimeString
やなどのIANA/Olson タイム ゾーンtimeZone
をサポートするオプションに特に興味があります。 これは現在、Google Chrome でのみサポートされています。America/New_York
Europe/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 の更新をプッシュすることを期待できますか?
javascript - Intl は firefox で定義されていません
次の Java スクリプト コードは、Chrome では正常に動作しますが、Firefox と IE では失敗します。FF のエラー メッセージは 'ReferenceError: Intl is not defined' です IE のエラー メッセージは 'SCRIPT5009: 'Intl' is undefined' です
標準オブジェクト Intl を FF や IE で参照できないのはなぜですか? 私は何か見落としてますか?
javascript - Javascript 国際化 API は PhantomJS ではサポートされていません
ECMAScript 国際化 API を使用するサービスに対して一連のJasmine
テストを実行しています。AngularJs
Chromeで実行すると、すべて正常に実行されます。ただし、PhantomJS
Maven を使用してそれらを実行すると、PhantomJs
国際化 API をまだサポートしていないように見えるため、すべて失敗します。
Intl オブジェクトを使用したテストで得られるエラー メッセージは次のとおりです。
1: ReferenceError: 変数が見つかりません: localizationService.js の Intl
そして、残りのテストは単に失敗します。
テストは単純で、次のようになります。
サービスのメソッド (localizationService.js) は、Intl API の単純なラッパーです。
私の質問は次のとおりです。
PhantomJS v1.9.2
1-をサポートしない私の仮定は正しいECMAScript internationalization API
ですか? とにかくそれを確認することはありますか?
2- この問題を解決するにはどうすればよいですか? Maven を使用してテストを実行する必要があり、localizationService API にいずれかの方法でヒットするテストがさらに必要になります。
ありがとう
javascript - ECMAscript 国際化 API で小数点と桁区切りを取得する方法はありますか?
新しいJavascript 国際化 APIを使用しようとしていますが、Intl.NumberFormat
インスタンスの小数点と千 (グループ化) 区切り記号を取得する方法があるかどうかを知りたいですか?
オブジェクトにはresolvedOptions
メソッドがありますが、シンボルは提供されません。
ご参考までに、en-US の場合、これらはin などのカンマ,
とピリオドになります。.
1,000.00
javascript - カスタム Intl.Collators?
Intl.Collator
Javascript 用のカスタム オブジェクトを作成することは可能ですか? 私が持っているとします:
それらを並べ替えると、ñ
デフォルトで最後に移動します。
ただし、 new を使用すると、次のIntl.Collator
ことができます。
es
スペイン語 ( ) のルールでソートし、ñ
後にn
.
さて、なんらかの理由で自分の を書きたいと思ったとしCollator
ますñ
。
の新しいルール セットのカスタマイズに関する情報を見つけることができませんでしたIntl.Collator
。
これは可能ですか?
アップデート
はい、可能です。
アップデート:
カスタム ロケールの作成方法に関するECMAscript i18n standard 2のアドバイスを見つけました。
javascript - Intl.NumberFormat#format 最大整数値
ECMAScript Internationalization API 1.0 仕様では、NumberFormat
object にはformat
、値を受け取り、オブジェクトに従って数値をフォーマットする関数がありNumberFormat
ます。
NumberFormat#format
関数が消化できる最大値は何ですか?
Chrome、および以下で実行されている Firefox の場合:
15桁目以降は に変換されるよう0
です。スペックをざっと見ましたが、原因がわかりませんでした。誰かが理由を知っていますか?
上記の ES5 仕様が IEEE 754 仕様に準拠しているためでしょうか。他に思いつかない…</p>
javascript - 複数の「アルファベット順」を持つ言語の Intl.Collator でブラウザーがサポートしている照合バリアントを確認するにはどうすればよいですか?
JavaScript ES6/Harmony に、言語固有の並べ替え/照合が追加されました。
現在、ブラウザによってサポートが異なるため、Chrome では、使用する言語と使用しない言語があることがわかりました。
しかし、私が問題を抱えているのは、フィンランド語、日本語、スペイン語、スウェーデン語など、テキストを並べ替える方法が複数あり、ブラウザでサポートされている方法を見つけることです。
javascript - Javascript Intl DatetimeFormatter as (ISO_8601|custom) 出力パターン
Intl.DateTimeFormatを使用したいのですが、出力用のカスタム パターンを使用します。ICU dateformat の php バージョンでこのメソッドを使用していますが、うまく機能します。
ICU 日時フォーマッタの PHP バージョンのように、Intl.DateTimeFormat で ICU ドキュメントとしてパターンを設定するにはどうすればよいですか。
私のJavaScriptコード
EEEE d MMMM yyyy HH:mm
or MM yy dd
or etcのような私の javascript フォーマットパターンで ISO_8601 パターンをどのように設定できますか?
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のバグですか?それとも、スペインのスペイン語で許可されている数字の形式があいまいですか?