根據 OS 設定顯示網站的地區版本
Microsoft Edge 提供操作系統 (操作系統) 區域喜好設定資訊,協助網站作者在使用 Microsoft Edge 檢視您的網站時,在其網站上建立區域體驗。 這項功能可讓網站作者為在OS中明確變更其地區喜好設定以反映其個人喜好設定的使用者提供價值。
使用者想要查看根據其喜好設定列印的日期、時間、數位和其他格式。 例如,美國地理區域會將 7/2/2022 轉譯為 2022 年 7 月 2 日。 另一個地理區域可能會將相同的日期轉譯為 2022 年 2 月 7 日, 因為它們會反向讀取月和日。
區域格式
若要反映使用者在日期) 等 (顯示數據的區域喜好設定,Microsoft Edge 在 [設定: 共用其他操作系統區域格式] 功能表的 [語言] 區段中有一個選項。
授與此設定的存取權,可讓網站能夠看到比先前可能更多使用者的特定區域喜好設定。 變更OS區域喜好設定的用戶現在可能會看到其喜好設定自動反映在更多網站中。
操作系統區域數據顯示程序代碼
使用者的格式設定喜好設定會抽象化為簡單的區域性程序代碼,Web 應用程式會使用此程式碼來推斷上面所述有關日期、時間和其他格式設定喜好設定的各種詳細數據。
網站可以使用內建的國際化 API 搭配區域程式代碼,將資訊正確格式化為使用者的喜好設定。 國際化 API 可透過網路儲存大量 MB 的數據傳輸,讓網站保持小型,並讓網站快速且輕鬆地適應不同的區域。
一般而言,網站的國際化用戶體驗,只和他們能夠為目前使用者判斷的區域程式代碼一樣好。
區域代碼是兩個字母的語言代碼,後面接著連字元和兩個字母的區域代碼。 Microsoft Edge 會使用ICU來了解區域代碼。 ICU 是 Unicode 標準國際化 API 的實作。 如需詳細資訊,請參閱 ICU-TC首頁。
若要設定使用者的語言喜好設定,Microsoft Edge 會在第一次安裝時從 OS 取得預設值。 用戶接著可以變更 中的語言喜好設定 edge://settings/languages
,並依優先順序排序。
UI、HTTP 標頭和 API 的互動方式如下:
語言或區域數據 | 使用者影響 |
---|---|
[設定語言] 頁面中的慣用>語言 | 選取用來Microsoft Edge轉譯的語言。 此語言/地區也用於格式化值,例如日期、時間和數位。 |
accept-language HTTP 標頭 |
區域代碼清單 (如設定語言>慣用語言中>所定義,) 傳送至伺服器以允許網站顯示正確的語言。 Microsoft Edge 會以 edge://settings/languages 中指定的順序傳送區域 代碼。 |
navigator.language API (和類似的) |
插入網站的程式代碼,可讓瀏覽器顯示正確的區域格式設定 (如設定語言>慣用語言中>所定義,) 使用者輸入和其他在本機產生的內容。 |
區域數據顯示選項
使用者在 Microsoft Edge 上有三個選項,可選取其瀏覽器將與其區域共用的資訊層級:
- 限制 (預設)
- 不建議一律 ()
- 從來不需要
受限
默認的建議值為 [有限]。 此設定只會使用使用者目前Microsoft Edge 慣用語言和用戶選擇的OS區域喜好設定的有效組合。 有限 可確保對於語言處理,網站會提供一致的語言體驗, (不會混用無法預測的語言組合) 。
[限制] 選項會比較衍生自瀏覽器目前慣用顯示語言之區域程式代碼的語言部分,以及來自OS設定的區域程式代碼,如果語言元件相符,而且產生的區域程式代碼是有效的組合,則會將區域代碼提供給網站作為預設地區設定。
如果 OS 指定的地區語言不符合 Edge 的慣用語言Microsoft,則 [限制 ] 選項的運作方式會如同 [ 從未 選取] 一樣,並會切換回衍生自瀏覽器慣用顯示語言的地區代碼。
注意: [有限 ] 選項類似於公開OS區域程式代碼的目前Firefox行為,如 區域喜好設定 - Firefox 來源檔 (mozilla.org) 中所述。
需要一直連線
如果選取 [ 永遠 (不建議使用) ,系統會將使用者的OS區域喜好設定提供給網站,而不會有任何限制或限制。 使用者可能會暴露於指紋和網站相容性問題, (語言和格式設定) 的使用不一致。 請參閱下方的一節。)
從來不需要
用戶可以選取 [ 永不] 來停用OS區域信息的共用。 [ 永不 ] 選項仍然允許網站讀取區域資訊,但會封鎖使用者對網站內容公開的任何特定OS區域自定義。 相反地,瀏覽器的慣用顯示語言是用來衍生預設區域。
原則控件
Microsoft Edge 中的相關新原則 DefaultShareAdditionalOSRegionSetting 提供公司或企業層級預設組態的設定。 此設定接受具有下列潛在值的整數:
數字 | 描述 |
---|---|
0 | 受限 |
1 | 需要一直連線 |
2 | 從來不需要 |
此外,較舊的原則 ApplicationLocaleValue 會設定Microsoft Edge 地區設定,並鎖定它以防止用戶變更它。
避免潛在的誤用
我們相信 [限制 ] 是大多數用戶的正確選項。 有限 會遵守用戶的地區喜好設定,同時引進網站誤用此資訊的風險最少。
指紋煥
可能會誤用OS區域資訊,以危害用戶的隱私權。 區域資訊可協助駭客建立指紋爏。 結合現今平臺中許多其他既有的爌位,可以唯一識別用戶,進而造成更潛在的次要傷害。
雖然使用者的區域和語言已經可透過 Web 平臺使用,但使用者通常會分成可辨識且跨地理位置相似的區域代碼。 因為範例大小太大,所以任何特定區域程式代碼的擷取風險都很小,因此風險很小。 如果使用者將其 OS 喜好設定變更為唯一的語言 + 區域,則網站可以識別母體中的異常狀況,並唯一識別相關聯的使用者。
內容簡報
操作系統區域資訊也可能會被誤用,並導致網站的語言呈現不一致。 Microsoft Edge 為網站開發人員提供多種語言和區域 API。 網站可以在一個地方處理區域資訊,同時從另一個位置衍生語言喜好設定。
當語言和區域資訊自我一致時,網站用來組合其內容簡報的 API 就無關緊要。 不過,如果網站從多個 API 讀取語言資訊,而這些 API 傳回不同的語言代碼,則網站可能會不小心開始混合和比對地區喜好設定,導致奇怪的用戶體驗。 例如,混合語言和地區喜好設定的片語,例如「Email miércoles上傳送,5 de enero de 2021」。
開發人員詳細數據
[ 共用其他OS區域格式 ] 的新設定會直接影響JavaScript Intl
對象的預設區域值,以及使用預設區域 (的所有其他 JavaScript API,例如 Date
建構函式) 。
Intl
當物件的建構函式 (例如 DateTimeFormat
) 會提供現有的區域程式代碼時,其行為會保持不變。 不過,若未提供特定區域程式代碼,建構函式將會使用 預設的區域程序代碼。 新的使用者喜好設定也會影響依賴預設區域程式代碼的其他日期和時間格式化 API,例如 Date
。
例如, DateTimeFormat
您可以使用使用者的預設區域代碼 (來建立 ,並透過下列表達式檢查) :
Intl.DateTimeFormat().resolvedOptions().locale
平臺中的其他區域,例如 accept-languages
透過 HTTP/HTTPS GET 要求傳送至伺服器的標頭,以及 navigator.language
和 navigator.languages
API,不會受到 OS 共用的區域資訊影響。