使用者介面語言管理
多語系使用者介面 (MUI) 可讓您的應用程式以兩種方式管理使用者介面語言。 根據預設,應用程式可以使用簡單的語言管理方法來管理作業系統語言設定。 或者,應用程式也可以支援使用者可從中選取自己的語言。 MUI API 也可讓您的應用程式直接存取作業系統所支援的語言和語言清單,並由資源載入器維護。 本主題的其餘部分會定義系統支援的語言和語言後援機制。
作業系統維護的語言
系統預設 UI 語言/安裝語言
系統預設 UI 語言是用來設定 Windows 的當地語系化版本語言。 除了使用者選取不同的語言以外,所有功能表、對話方塊、錯誤訊息和說明檔都會以這個語言表示。
在 Windows Vista 和更新版本上,系統預設 UI 語言稱為「安裝語言」,並扮演更有限的角色。 為了達到大部分目的,系統慣用 UI 語言會取代它。 不過,在某些情況下,擁有一律已知完全支援的單一安裝語言會很有用。
注意
在 MUI 部署之後,仍會顯示系統預設 UI 語言的 Windows 應用程式,例如 [記事本]、[記事本]、[Wordpad] 和 [功能表] 選項。
沒有 MUI 函式可用來設定系統預設 UI 語言。 若要擷取此語言,應用程式可以呼叫 GetSystemDefaultUILanguage。
系統 UI 語言
作業系統會將系統 UI 語言定義為使用者介面語言,可由系統管理員在主控台地區和語言選項部分的 [進階] 索引標籤中設定。 如果目前使用者尚未進行特定語言設定,或未登入使用中帳戶,則作業系統會使用此語言。 只有在電腦上安裝一個以上的使用者介面語言時,才能變更語言。
注意
作業系統必須重新開機,所有使用者和服務才能看到語言變更的效果。
沒有 MUI 函式可用來設定系統 UI 語言。 若要擷取此值,以 Windows Vista 和更新版本為目標的應用程式可以呼叫 GetSystemPreferredUILanguages ,並在系統慣用 UI 語言清單中取得第一種語言。 以 Windows Vista 作業系統為目標的應用程式無法使用 GetSystemPreferredUILanguages, 而且應該根據系統 UI 語言一律與系統預設 UI 語言相同。
使用者 UI 語言
使用者 UI 語言會決定用於功能表、對話方塊、說明檔等的使用者介面語言。 目前使用者可以在主控台的區域和語言選項部分的 [語言] 索引標籤中設定它。 只有在電腦上安裝多個使用者介面語言時,才能變更此語言。 請注意,使用者必須登出,然後重新登入以查看效果。 例如,多國公司想要在其所有子公司中部署 Windows。 公司會建立全域安裝作業,無論位置為何,都會在所有用戶端上安裝英文版本的 Windows。 同時,它會根據電腦所屬的組織單位來安裝特定語言模組。 當使用者第一次登入新安裝的作業系統時,Windows 會顯示為當地語系化的版本。
在 Windows Vista 和更新版本上,使用者 UI 語言是使用者慣用 UI 語言清單中的第一種語言。 請注意,如果此語言中無法使用特定資源,則可以使用後援語言。
在 Windows Vista 前作業系統上,使用者 UI 語言通常與系統預設 UI 語言相同。 不過,對於 Windows MUI,這兩種語言可能不同。
若要擷取使用者 UI 語言,應用程式可以呼叫 GetUserDefaultUILanguage 或 GetUserPreferredUILanguages。 應用程式無法變更使用者 UI 語言,因為沒有可設定的函式。
作業系統維護的語言清單
系統慣用 UI 語言清單
資源載入器會維護系統慣用的 UI 語言清單。 此清單中包含的語言是作業系統針對自己的資源慣用的語言,例如功能表和對話方塊、訊息、INF 檔案和說明檔。 清單是由系統預設 UI 語言和系統 UI 語言及其後援所組成。 應用程式可以藉由呼叫 GetSystemPreferredUILanguages來擷取系統慣用的 UI 語言。
使用者慣用 UI 語言清單
資源載入器會使用使用者慣用的 UI 語言清單,其中包含使用者偏好的語言。 如果特定應用程式執行緒可用,資源載入器會使用此清單中的資源比對語言。 這些語言優先于任何系統喜好設定。 若要擷取使用者慣用的 UI 語言,您的應用程式可以呼叫 GetUserPreferredUILanguages。
處理慣用 UI 語言清單
在 Windows Vista 和更新版本上,資源載入器會維護由 MUI 應用程式執行進程所設定最多五個有效語言的程式慣用 UI 語言清單。 應用程式可以透過呼叫 SetProcessPreferredUILanguages來設定語言。 應用程式可以藉由呼叫 GetProcessPreferredUILanguages來擷取語言。
執行緒慣用 UI 語言清單
在 Windows Vista 和更新版本上,資源載入器會使用執行緒慣用的 UI 語言清單,此清單由執行緒在 MUI 應用程式的執行程式中設定最多五個有效語言所組成。 這些語言可用來自訂應用程式使用者介面語言,並使其與作業系統語言不同。 執行緒慣用 UI 語言清單是以使用者慣用 UI 語言、系統慣用 UI 語言和系統預設 UI 語言為基礎。
若要設定執行緒慣用的 UI 語言,應用程式應該呼叫 SetThreadPreferredUILanguages。 若要擷取這些語言,應用程式會呼叫 GetThreadPreferredUILanguages。
中性語言標記法
中性語言會單獨以語言表示,而不需區域或地區設定。 例如,英文 (加拿大) 語言 en-CA 的中性標記法會以 「en」 表示。 即使中性語言並未與區域或地區設定的各個層面相關聯,您也可以將它與資源集產生關聯。 一般而言,中性語言資源是以語言最普遍區域中的使用為基礎。
如圖所示,假設您的 MUI 應用程式會將德文 (瑞士) 的德文語言資源當地語系化為 de-CH,而德文 (奧地利) 以 de-AT 表示,同時建置德文 (德國) 以 de-DE 表示的完整資源集。 您必須針對此應用程式做出考慮整個資源檔的決策。 如果應用程式將 de-DE 資源複製為中性語言資源,則必須為資源載入器提供後援語言。 如果載入器找不到 de-CH 或 de-AT 的特定語言特定資源檔,則會回復為語言中性 「de」 資源。 這些資源可能比完全不同語言的資源更適當,例如,英文 (美國) ,這是唯一可能的後援。
另一個範例是,應用程式可能完全不會針對貝利達當地語系化。 不過,支援英文 () 的語言喜好設定,以 en-BZ 表示,可讓應用程式回復為 「en」 資源。
資源載入器中的語言後援
Windows Vista 和更新版本會在資源載入器所使用的預先排序後援語言清單中排列使用者介面語言設定。 為了形成清單,作業系統會依顯示的順序結合數種語言:
執行緒慣用 UI 語言,由執行緒使用者介面語言及其中性格式所組成。 範例包括法國 (fr-FR) 及其中性格式 「fr」 和西班牙文 (西班牙) 和其中性表單 「es」 的 es-ES。
處理慣用 UI 語言,由進程使用者介面語言及其中性形式所組成。 例如,德國 (德國) 及其中性格式 「de」 的 de-DE。
使用者 UI 語言及其中性表單。 例如,日本 (日本的 ja-JP) 及其中性形式 「ja」。
系統 UI 語言及其中性表單。 例如,義大利文 (義大利文的 it-IT) 及其中性形式 「it」。
注意
只有在未設定使用者 UI 語言時,此語言才會包含在後援清單中。
系統預設 UI 語言及其中性格式。 例如,西班牙文的 es-ES (西班牙) 及其中性形式 「es」。
下列顯示合併後援清單。 請注意,會消除語言重複,例如 es-ES 和 es。 由於範例會將使用者 UI 語言設定為 ja-JP,因此系統 UI 語言不會出現在合併的後援清單中。
fr-FR、fr、es-ES、es、de-DE、de、ja-JP、ja
載入 MUI 應用程式的資源時,資源載入器會嘗試選取符合目前執行中應用程式執行緒之執行緒慣用 UI 語言清單的其中一個檔案。 如果資源載入器在選取的語言與合併後援清單中的第一個語言特定資源之間找不到直接相符專案,它會檢查清單中的後續語言,直到找到可接受的後援為止。
如果資源載入器找不到所需的檔案,則必須使用「保證良好」後援語言。 針對 MUI 資源技術,資源載入器會從提供的資源組態資料判斷後援語言。 如需詳細資訊,請參閱 MUI 資源管理。
相關主題