跳轉到內容

WebObjects/Project WONDER/Frameworks/ERExtensions/ERXLocalizer

來自華夏公益教科書

ERXLocalizer 提供了對本地化的簡單 KVC(鍵值編碼)訪問。有關簡短描述和所有可用方法的完整列表,請參閱 api (http://webobjects.mdimension.com/wonder/api/er/extensions/ERXLocalizer.html).

如何使用

[編輯 | 編輯原始碼]

在您的 WebObjects 應用程式中使用本地化的最簡單方法是使用 Project Wonder 的內建本地化支援,使用 ERXSession 類中的 localizer() 方法。localizer() 方法允許您將本地化的語言字串直接繫結到您的元件。假設您想將 WebObjects 應用程式本地化為英語和德語。您只需在應用程式的資源目錄中建立所需的語言資源即可。如果您使用 Eclipse 開發 WebObjects 應用程式,則這是應用程式根目錄中的 ./Resources 目錄。對於英語和德語本地化,您需要建立以下檔案和目錄

Resources
   |
   +-English.lproj
   |    |
   |    +-Localizable.strings
   |
   +-German.lproj
   |    |
   |    +-Localizable.strings

Localizable.strings 檔案包含您的本地化的鍵值對。鍵始終是翻譯的佔位符,它用於在您的 WebObjects 應用程式中定址本地化值。如果您的應用程式是一個簡單的hello world應用程式,則您的本地化檔案可能如下所示

{
  "hello" = "Hello";
  "world" = "World";
}

對於 English.lproj 目錄中的 Localizable.strings 檔案,以及

{
  "hello" = "Hallo";
  "world" = "Welt";
}

對於 German.lproj 目錄中的 Localizable.strings 檔案。

要使用本地化字串,只需將鍵繫結到適當的 WOComponent(假設您在應用程式中從 ERXSession 繼承了 Session 物件)。

<p>The application says: <webobject name="langHello"/> <webobject name="langWorld"/></p>

(HTML 檔案)

langHello : WOString {
  value = session.localizer.hello;
}
langWorld : WOString {
  value = session.localizer.world;
}

(WOD 檔案)

如果使用英語語言環境,ERXLocalizer 會神奇地檢測您的系統語言環境並輸出以下 HTML 程式碼

<p>The application says: Hello World</p>

有用的應用程式設定

[編輯 | 編輯原始碼]

這些是 ERXLocalizer 的預設設定

 er.extensions.ERXLocalizer.defaultLanguage=English
 er.extensions.ERXLocalizer.fileNamesToWatch=("Localizable.strings","ValidationTemplate.strings")
 er.extensions.ERXLocalizer.availableLanguages=(English,German)
 er.extensions.ERXLocalizer.frameworkSearchPath=(app,ERDirectToWeb,ERExtensions)

您可以在應用程式屬性檔案中提供自己的預設值,或在應用程式的初始化程式碼中的某個位置設定預設值,例如:

   public Application() {
       NSLog.out.appendln("Welcome to " + this.name() + " !");
       /* ** put your initialization code in here ** */
       ERXLocalizer.setDefaultLanguage("English");
   }

Unicode 支援

[編輯 | 編輯原始碼]

如果您正在建立 UTF-8 應用程式,請注意,Localizable.strings 檔案的 UTF-8 支援似乎不起作用。與其感到絕望,不如簡單地將您的 Localizable.strings 檔案轉換為 UTF-16。本地化字串將在您的 UTF-8 應用程式中以正確的方式顯示。有關更多資訊,請參閱 Apple 開發者連線中的本地化屬性標籤

華夏公益教科書