識別由特殊符號分隔的檔案中的金鑰,並使用從資源包中讀取的值翻譯它們。
資源包包含特定於語言環境的金鑰值對。資源包是屬性檔案的階層式集合。包名稱組成其基本系列名稱。組成此包的每個檔案都有此名稱加上其語言環境。例如,如果資源包名稱為 MyResources,則包含德語文字的檔案將採用名稱 MyResources_de。除了語言,國家和變體也用於形成包中的檔案。
資源包查詢會根據 (1) 所需的語言環境和 (2) 預設語言環境 (basebundlename) 搜尋具有各種字尾的資源檔案,其順序從較低層級 (較具體) 到父層級 (較不具體)
basebundlename + "_" + language1 + "_" + country1 + "_" + variant1 basebundlename + "_" + language1 + "_" + country1 basebundlename + "_" + language1 basebundlename basebundlename + "_" + language2 + "_" + country2 + "_" + variant2 basebundlename + "_" + language2 + "_" + country2 basebundlename + "_" + language2
由此產生的檔案名稱會附加字串 .properties 以組成要使用的檔案名稱。
支援檔案編碼。可以指定來源檔案、目標檔案和包檔案的編碼方案。
可以使用 forceoverwrite 屬性明確覆寫目標檔案。如果 forceoverwrite 為 false
,則僅當目標檔案最後修改後,來源檔案或組成包的任何檔案已修改時,才會覆寫目標檔案。
自 Apache Ant 1.6 起,來源檔案的換行符號會保留在已翻譯的檔案中。
FileSet 用於選擇要翻譯的檔案。
屬性 | 說明 | 必要 |
---|---|---|
todir | 要建立目標檔案的目標目錄。 | 是 |
starttoken | 識別金鑰的起始符號。 | 是 |
endtoken | 識別金鑰的結束符號。 | 是 |
bundle | 資源包的系列名稱。 | 是 |
bundlelanguage | 資源包的特定於語言環境的語言。 | 否;預設為預設語言環境的語言 |
bundlecountry | 資源包的特定於語言環境的國家。 | 否;預設為預設語言環境的國家 |
bundlevariant | 資源包的特定於語言環境的變體。 | 否;預設為 bundlelanguage_bundlecountry |
srcencoding | 來源檔案編碼方案。 | 否;預設為預設 JVM 字元編碼 |
destencoding | 目標檔案編碼方案。 | 否;預設為 srcencoding |
bundleencoding | 資源套件檔案編碼方案。 | 否;預設為 srcencoding |
forceoverwrite | 覆寫現有檔案,即使目標檔案較新。 | 否;預設為 no |
檔案集用於選取包含關鍵字的檔案,並為其產生已翻譯的檔案。
使用以日文編碼的資源套件,將以英文編碼的原始檔翻譯成日文。
<translate toDir="$(dest.dir}/ja" starttoken="#" endtoken="#" bundle="resource/BaseResource" bundlelanguage="ja" forceoverwrite="yes" srcencoding="ISO8859_1" destencoding="SJIS" bundleencoding="SJIS"> <fileset dir="${src.dir}"> <include name="**/*.jsp"/> </fileset> </translate>