Home   Single Page

ラベル

ZUML ページ(と JSP ページ)からロケール依存のデータを分けるため、ロケール依存のデータを WEB-INF ディレクトリーの下の i3_label_lang_CNTY プロパティの中に保存します。
ここで lang が en 、fr といった言語で、 CNTY は US や FR といった国名です。

ロケール依存プロパティを得るために、Java で org.zkoss.util.resource.Labels または EL で ${c:l('key')} を使用できます。
EL を使用する場合、以下のようにページ内に taglib ディレクティブと TLD ファイルを指定しなければなりません。

<?taglib uri="http://www.zkoss.org/dsp/web/core" prefix="c"?>

<window title="${c:l('app.title')}">
...
</window>

【ファイルの位置】:core.tld は dist/WEB-INF ディレクトリーの下に配布されています。Web アプリケーション内にコピーする必要はありません。

ロケール依存ラベルが取得されようとするとき、i3-label_lang_CNTY.propaties が読み込まれます。例えば、ロケールが de_DE の場合、WEB-INF/i3-label_de_DE.properties が読み込まれます。そのようなファイルが見つからなかったら、ZKは順番に、WEB-INF/i3-label_de.propatiesとWEB-INF/i3-label.properties を読み込もうとします。

Javaコード(zscript を含む) でラベルにアクセスするのに org.zkoss.util.resource.Labels クラスの getLabel メソッドを使用します。

さらに、org.zkoss.util.resource.LabelLocator インターフェースを実装して、ロケーターを登録することで、ラベルローダーを拡張し、データベースなど他の位置からラベルを読み込むことができます。
ロケーターは org.zkoss.util.resource.LabelLocator インターフェースを実装している必要があります。そうして、 org.zkoss.util.resource.Labels クラスの register メソッドを起動します。