HOW TO:當地語系化 Excel 方案

更新:2007 年 11 月

適用於

本主題中的資訊僅適用於指定的 Visual Studio Tools for Office 專案和 Microsoft Office 版本。

專案類型

  • 文件層級專案

Microsoft Office 版本

  • Excel 2003

  • Excel 2007

如需詳細資訊,請參閱依應用程式和專案類型提供的功能

當地語系化主要是包含應用程式使用者介面的翻譯。與將字串硬式編碼至應用程式相反,您應該在個別檔案中儲存字串。您可以在專案的預設組件 (Assembly) 資源檔中,儲存 Microsoft Office Excel 使用者介面項目使用的字串。該檔案在 Visual Basic 專案中名為 MyResources.resx,而在 C# 專案中則名為 Resources.resx。然後,可將資源檔的複本翻譯成多種語言。

注意事項:

在下列指示的某些 Visual Studio 使用者介面項目中,您的電腦可能會顯示不同的名稱或位置:您所擁有的 Visual Studio 版本和使用的設定決定了這些項目。如需詳細資訊,請參閱 Visual Studio 設定

在資源檔中儲存文字

若要將文字加入資源檔

  1. 開啟您要當地語系化的 Excel 專案。

  2. 在 [專案] 功能表中,選取 [<Projectname> 屬性]。

    [專案設計工具] 隨即開啟。

  3. 按一下 [專案設計工具] 中的 [資源],以開啟 [資源] 窗格。

  4. 選取 [分類] 下拉式方塊中的 [字串]。

  5. 對於每個您要當地語系化的字串,將唯一識別項加入至 [名稱] 欄,並在 [值] 欄中加入要當地語系化的文字。例如:

    名稱

    ListCreateUnscheduledOrder

    建立未排程的訂單

    注意事項:

    您可以使用 [註解] 欄,向翻譯人員提供說明或指示。

擷取資源檔的文字

在您已將每個字串加入資源檔之後,可在執行階段載入字串。

若要使用資源檔將值加入儲存格。

  1. 在 Sheet1 的 Startup 事件處理常式中,將 NamedRange 控制項加入至儲存格 A1。

    Dim namedRange1 As Microsoft.Office.Tools.Excel.NamedRange = _
        Me.Controls.AddNamedRange(Me.Range("A1"), "NamedRange1")
    
    Microsoft.Office.Tools.Excel.NamedRange namedRange1 =
        this.Controls.AddNamedRange(this.Range["A1", missing], "namedRange1");
    
  2. 從資源檔指派值。

    namedRange1.Value2 = My.Resources.ListCreateUnscheduledOrder
    
    namedRange1.Value2 = Properties.Resources.ListCreateUnscheduledOrder;
    

當地語系化資源檔

若要當地語系化資源檔

  1. 複製資源檔,並使用目標語言的文化特性程式碼命名它。例如,若要建立當地語系化成日文的檔案,請複製 Resources.resx 檔案,並將其命名為 Resources.ja.resx。

  2. 將資源檔翻譯成您要支援的語言。例如,將 Resources.ja.resx 中的字串翻譯成日文。

  3. 將翻譯後的資源檔加入您的專案,以便專案系統可將資源檔編譯成附屬組件。

根據 Office 使用者介面語言載入資源

Microsoft .NET Framework 會根據 Microsoft Windows 使用者介面語言載入資源。不過,通常會撰寫 Office 架構方案,是以根據 Office 使用者介面 (UI) 語言載入資源。下列第一個範例示範如何載入符合 Office UI 語言的資源,而不論安裝何種版本的 Office。第二個範例示範如何覆寫 Office UI 語言和預設的 Microsoft .NET Framework 行為。

若要根據 Office (Office 的多種語言版本) 載入資源

  • 為活頁簿和每一個工作表,將下列程式碼加入至 Startup 事件處理常式。

    System.Threading.Thread.CurrentThread.CurrentUICulture = _
        New System.Globalization.CultureInfo( _
            Application.LanguageSettings.LanguageID( _
                Office.MsoAppLanguageID.msoLanguageIDUI))
    
    System.Threading.Thread.CurrentThread.CurrentUICulture =
        new System.Globalization.CultureInfo(
            Application.LanguageSettings.get_LanguageID(
                Office.MsoAppLanguageID.msoLanguageIDUI));
    

如果您沒有 Office 的多種語言版本,則可以將相符的文化特性 ID 指派至 CultureInfo 物件 (或目前執行緒) 的 CurrentCulture 屬性,以強制載入資源。這有助於偵測目的,或者可做為自訂程式碼的一部分,讓使用者可以選取要載入的資源。

若要根據 Office 載入資源 (使用文化特性 ID)

  • 為活頁簿和每一個工作表,將下列程式碼加入至 Startup 事件處理常式。這個範例會傳遞德文 (德國) 的文化特性 ID。如需文化特性 ID 的清單,請參閱 CultureInfo

    System.Threading.Thread.CurrentThread.CurrentUICulture = _
        New System.Globalization.CultureInfo("de")
    
    System.Threading.Thread.CurrentThread.CurrentUICulture = 
        new System.Globalization.CultureInfo("de");
    

當地語系化自訂控制項

在 Visual Studio Tools for Office 方案中,您可以將自訂控制項加入至執行窗格。您可以啟用使用者控制項或執行窗格控制項的當地語系化,方式與當地語系化 Windows Form 相同。如需詳細資訊,請參閱逐步解說:將 Windows Form 當地語系化

若要啟用自訂控制項的當地語系化

  1. 在 [檢視] 功能表中,選取 [屬性視窗]。

  2. 在設計工具中選取使用者控制項或執行窗格控制項,將 [Localizable] 屬性變更為 true。

請參閱

工作

逐步解說:將 Windows Form 當地語系化

概念

Office 方案的全球化與當地語系化

其他資源

全球化和當地語系化應用程式

當地語系化應用程式