當地語系化應用程式

Flash Player 9 以及更新的版本,Adobe AIR 1.0 以及更新的版本

所謂當地語系化,是指加入資源以支援多個地區的程序。所謂地區,就是語言和國家/地區碼的組合。例如,en_US 表示美國使用的英語,而 fr_FR 則表示法國使用的法語。若要針對這些地區來當地語系化應用程式,您必須提供兩組資源:一組 en_US 地區的資源,以及一組 fr_FR 地區的資源。

多個地區可以共用多種語言。例如,en_US 和 en_GB (英國) 為不同的區域。這兩個地區都使用英語,但是國家/地區碼指出它們是不同的區域,因此可能會使用不同的資源。例如,使用 en_US 地區的應用程式對於「顏色」的拼法是 "color",而 en_GB 地區則是 "colour"。此外,視地區而定,貨幣單位會以美金或英鎊表示,而且日期與時間的格式也有所不同。

您也可以為某種語言提供一組資源,而不指定國家/地區碼。例如,您可以為英語提供 en 資源,並且為 en_US 地區提供其它美式英文專屬的資源。

當地語系化一詞的涵義,不僅是翻譯應用程式中所用到的字串而已。它還包括了所有的資源類型,例如音訊檔案、影像和視訊。

選擇地區

若要判斷您的內容或應用程式所使用的地區設定,您可以使用下列其中一種方法:

  • flash.globalization 套件 — 在 flash.globalization 套件中使用區分地區設定的類別,以根據作業系統和使用者偏好設定來擷取使用者的預設地區設定。在 Flash Player 10.1 或更新版本或是 AIR 2.0 或更新版本的執行階段上執行的應用程式,建議使用此方式。如需詳細資訊,請參閱判斷地區設定

  • 使用者提示 — 您可以使用某個預設地區啟動應用程式,然後再詢問使用者,讓他們選擇所需的地區。

  • (僅限 AIR) Capabilities.languagesCapabilities.languages 屬性會列出使用者偏好語言 (如同作業系統所設定) 的可用語言陣列。這些字串包含 RFC4646 (http://www.ietf.org/rfc/rfc4646.txt) 所定義的語言標籤 (如果適用的話,還包含指令碼和區域資訊)。這些字串會使用連字符號做為分隔符號 (例如 "en-US""ja-JP")。所傳回陣列中的第一個項目具有與 language 屬性相同的主要語言 ID。例如,如果 languages[0] 是設定為 "en-US"language 屬性就會設定為 "en"不過,如果 language 屬性設定為 "xu" (指定未知的語言),languages 陣列中的第一個元素就會不同。

  • Capabilities.languageCapabilities.language 屬性可提供作業系統的使用者介面語言碼。不過,這個屬性的上限為 20 個已知語言。在英文系統中,這個屬性只會傳回語言碼,而不是國家/地區碼。基於這些原因,建議您使用 Capabilities.languages 陣列中的第一個元素。

當地語系化 Flex 內容

Adobe Flex 包含用於當地語系化 Flex 內容的架構。這個架構包含 Locale、ResourceBundle 和 ResourceManagerImpl 類別,以及 IResourceBundle 和 IResourceManagerImpl 介面。

您可以在 Google Code (http://code.google.com/p/as3localelib/) 上找到 Flex 當地語系化元件庫,內含用來排序應用程式地區設定的公用程式類別。

當地語系化 Flash 內容

Adobe Flash 專業版將 Locale 類別包含在 ActionScript 3.0 組件中。Locale 類別可以讓您控制 SWF 檔顯示多國語言文字的方式。Flash 的「字串」面板允許您在動態文字欄位中使用字串 ID 來替代字串常值。 此功能可讓您建立 SWF 檔,顯示從特定語言 XML 檔載入的文字。 如需有關使用 Locale 類別的詳細資訊,請參閱適用於 Adobe Flash Platform 的 ActionScript 3.0 參考

當地語系化 AIR 應用程式

AIR SDK 可提供「HTML 當地語系化架構」(包含在 AIRLocalizer.js 檔案中)。這個架構所含的 API 可協助處理 HTML 類型應用程式的多個地區設定。http://code.google.com/p/as3localelib/ 提供用來排序地區設定的 ActionScript 元件庫。

當地語系化日期、時間和貨幣

應用程式顯示日期、時間和貨幣的方式會因為不同地區而有極大的差異。例如,美國的日期顯示標準為月/日/年,而歐洲的日期顯示標準則為日/月/年。

您可以撰寫程式碼,設定日期、時間和貨幣的格式。例如,下列程式碼會將 Date 物件轉換成月/日/年或日/月/年格式。如果將 locale 變數 (表示地區) 設定為 "en_US",則函數會傳回月/日/年格式。這個範例會針對其它地區,將 Date 物件轉換成日/月/年格式。

function convertDate(date) 
{ 
    if (locale == "en_US") 
    { 
        return (date.getMonth() + 1) + "/" + date.getDate() + "/" + date.getFullYear(); 
    } 
    else 
    { 
        return date.getDate() + "/" + (date.getMonth() + 1) + "/" + date.getFullYear(); 
    } 
}

ADOBE FLEX

Flex 架構包含數個控制項,可用來設定日期、時間和貨幣的格式。這些控制項包括 DateFormatter 和 CurrencyFormatter 控制項。