OS の設定に基づいて、サイトの地域バージョンを表示する
Microsoft Edge では、Microsoft Edge を使用してサイトを表示するときに、Web サイトの作成者が Web サイトでリージョン エクスペリエンスを作成するのに役立つオペレーティング システム (OS) リージョンの基本設定情報を提供します。 この機能を使用すると、Web サイトの作成者は、個人の好みを反映するように OS の地域の設定を具体的に変更するユーザーに価値を提供できます。
ユーザーは、日付、時刻、数値、その他の書式を自分の好みに応じて印刷して表示する必要があります。 たとえば、米国の地理的リージョンでは、 2022 年 7 月 2日から 2022 年 7 月 2 日に変換されます。 別の地理的地域では、月と日を逆に読み取るため、同じ日付を 2022 年 2 月 7 日に変換できます。
地域形式
データの表示方法に関するユーザーの地域設定 (日付など) を反映するために、Microsoft Edge には、[設定] の [言語] セクションの [追加の OS 地域形式の共有] メニューにオプションがあります。
この設定へのアクセスを許可すると、Web サイトでは、以前よりも多くのユーザーの特定の地域設定を可視化できます。 OS の地域の設定を変更したユーザーは、より多くの Web サイトに自分の設定が自動的に反映される可能性があります。
OS の地域データ表示コード
ユーザーの書式設定設定は、単純な地域コードに抽象化されます。これは、Web アプリケーションによって、日付、時刻、およびその他の書式設定設定に関する上記のさまざまな詳細を推測するために使用されます。
Web サイトでは、組み込みの国際化 API と地域コードを使用して、ユーザーの好みに情報を適切に書式設定できます。 国際化 API を使用すると、ネットワーク経由で大量の MB のデータ転送を節約し、Web サイトを小さくし、さまざまなリージョンに迅速かつ簡単に適応させることができます。
一般に、Web サイトの国際化ユーザー エクスペリエンスは、現在のユーザーに対して決定できる地域コードと同じくらい適切です。
地域コードは、2 文字の言語コードの後にハイフンと 2 文字のリージョン コードが続きます。 Microsoft Edge では、ICU を使用して地域コードを理解します。 ICU は、Unicode 標準の国際化 API の実装です。 詳細については、「 ICU-TC ホーム ページ」を参照してください。
ユーザーの言語設定を設定するために、Microsoft Edge は最初にインストールされたときに OS から既定値を取得します。 ユーザーは、 edge://settings/languages
で言語設定を変更し、優先順位で並べ替えることができます。
UI、HTTP ヘッダー、API は、次のように対話します。
言語または地域のデータ | ユーザーへの影響 |
---|---|
[設定>言語] ページの優先言語 | Microsoft Edge をレンダリングするために選択された言語。 この言語/地域は、日付、時刻、数値などの値の書式設定にも使用されます。 |
accept-language HTTP ヘッダー |
Web サイトが適切な言語を表示できるようにするためにサーバーに送信される地域コード ([設定>言語>Preferred 言語] で定義されている) の一覧。 Microsoft Edge は、 edge://settings/languages で指定された順序で地域コードを送信します。 |
navigator.language API (および同様) |
ブラウザーがユーザー入力やその他のコンテンツをローカルで生成するための正しい地域形式 ( 設定>Languages>Preferred 言語) を表示できるようにする Web サイトに挿入されたコード。 |
地域データ表示オプション
ユーザーは、Microsoft Edge で 3 つのオプションを使用して、ブラウザーが自分のリージョンについて共有する情報のレベルを選択できます。
- 制限付き (既定値)
- 常に (推奨されません)
- [使用しない]
制限付き
既定値の推奨値は [制限] です。 この設定では、ユーザーの現在の Microsoft Edge 優先言語とユーザーが選択した OS リージョン設定の有効な組み合わせのみが使用されます。 制限により 、言語処理の場合、Web サイトは一貫性のある言語エクスペリエンスを提供します (予測できない組み合わせで言語を混在さなくなります)。
[制限付き] オプションは、ブラウザーの現在の優先表示言語から派生した地域コードの言語部分と、OS 設定からの地域コードを比較し、言語部分が一致し、結果の地域コードが有効な組み合わせである場合は、既定のロケールとして地域コードを Web サイトに提供します。
OS で指定された地域言語が Microsoft Edge の優先言語と一致しない場合、[ 制限付 き] オプションは [なし ] が選択されているかのように機能し、ブラウザーの優先表示言語から派生した地域コードにフォールバックします。
注: 制限付き オプションは、「 地域設定 - Firefox Source Docs のドキュメント (mozilla.org)」で説明されているように、OS リージョン コードを公開するための現在の Firefox 動作に似ています。
常時
[Always ]\(常に推奨しない\) が選択されている場合、ユーザーの OS リージョン設定は、制限や制限なしに Web サイトに提供されます。 ユーザーは、フィンガープリントや Web サイトの互換性の問題 (言語と書式設定の一貫性のない使用) にさらされる可能性があります。 以下の「誤用の可能性を回避する」セクションを参照してください。
絶対しません
ユーザーは、[ なし] を選択することで、OS リージョン情報の共有を無効にすることができます。 [なし] オプションを使用すると、Web サイトは地域情報を読み取ることができますが、ユーザーが行った特定の OS リージョンのカスタマイズが Web サイト コンテンツに公開されないようにブロックされます。 代わりに、ブラウザーの優先表示言語を使用して、既定の領域を派生させます。
ポリシーコントロール
Microsoft Edge の関連する新しいポリシー DefaultShareAdditionalOSRegionSetting は、企業レベルまたはエンタープライズ レベルの既定の構成の設定を提供します。 この設定では、次の潜在的な値を持つ整数を受け取ります。
番号 | 説明 |
---|---|
0 | 制限付き |
1 | 常時 |
2 | 絶対しません |
さらに、古いポリシー ApplicationLocaleValue は、Microsoft Edge ロケールを設定し、ユーザーが変更できないようにロックします。
誤用の可能性を回避する
ほとんどのユーザーにとって 、Limited が適切なオプションであると考えています。 制限は 、ユーザーの地域の好みを尊重しながら、この情報を誤用するウェブサイトのリスクの最小量を導入します。
フィンガープリント エントロピ
OS の地域情報が誤用され、ユーザーのプライバシーが侵害される可能性があります。 地域情報は、ハッカーが指紋エントロピを確立するのに役立ちます。 現在、プラットフォーム内の他の多くの既存のエントロピビットと組み合わせて、ユーザーを一意に識別すると、より潜在的な二次的損害につながる可能性があります。
ユーザーの地域と言語は Web プラットフォームを介して既に利用可能ですが、ユーザーは通常、地域間で似たよく認識された地域コードに分類されます。 サンプル サイズが非常に大きいため、特定の地域コードが目立つリスクは小さいため、リスクは小さくなります。 ユーザーが OS の設定を一意の言語とリージョンに変更した場合、Web サイトは母集団の異常を特定し、関連付けられているユーザーを一意に識別できる可能性があります。
コンテンツのプレゼンテーション
OS の地域情報が誤用され、Web サイトの言語プレゼンテーションの不整合につながる可能性もあります。 Microsoft Edge は、Web サイトの開発者に複数の言語と地域の API を提供します。 Web サイトは、ある場所で地域情報を処理し、言語の好みを別の場所から派生させる場合があります。
言語と地域の情報が自己一貫性がある場合、Web サイトがコンテンツプレゼンテーションを組み立てるために使用する API は実際には関係ありません。 ただし、Web サイトが複数の API から言語情報を読み取り、それらの API が異なる言語コードを返した場合、Web サイトが誤って地域の好みを組み合わせて一致し始め、奇妙なユーザー エクスペリエンスが発生する可能性があります。 たとえば、「miércoles で送信されたEmail、5 de enero de 2021」など、言語と地域の好みを組み合わせた言い回しなどです。
開発者の詳細
[追加の OS リージョン形式を共有する] の新しい設定は、JavaScript Intl
オブジェクトの既定のリージョン値と、既定のリージョン (Date
コンストラクターなど) を使用する他のすべての JavaScript API に直接影響します。
Intl
オブジェクトのコンストラクター (DateTimeFormat
など) に既存のリージョン コードが指定されている場合、その動作は変更されません。 ただし、特定の地域コードが指定されていない場合、コンストラクターは 既定のリージョン コードを使用します。 新しいユーザー設定は、既定の地域コード ( Date
など) に依存する他の日付と時刻の書式設定 API にも影響します。
たとえば、次の式を使用して、ユーザーの既定の地域コード (および検査) を使用して DateTimeFormat
を作成できます。
Intl.DateTimeFormat().resolvedOptions().locale
プラットフォーム内のその他の領域 (HTTP/HTTPS GET 要求を介してサーバーに送信された accept-languages
ヘッダー、 navigator.language
API と navigator.languages
API など) は、OS によって共有されるリージョン情報の影響を受けません。