多言語対応

Q
リソースファイルを共通化したい
[内容]
別々のフォルダに置いたCRSで同じリソースファイルを参照するので、
リソースファイルを1フォルダにまとめて設置したい。

A
外部リソース定数は、CRSと同じディレクトリに置かれているリソースファイルからしか
参照できません。しかし、メンテナンス性を考慮すると、同じファイルをあちこちの
フォルダに置く事は避けたいものです。
そこで、パッケージを利用して間接的に別ディレクトリのリソースファイルを参照する
方法を紹介いたします。

以下に、ディレクトリAのCRSにてディレクトリBのリソースファイルを参照する方法を
例示します。
ディレクトリAとディレクトリBは、同階層にあるものとします。

リソースファイルが置かれているディレクトリBにパッケージを作成し、パッケージ内では
外部リソース定数にてリソースファイルを参照、Stringオブジェクトに代入しておきます。
ここでは「resouse.crs」という名前で作成しました。

[ ディレクトリBにあるファイル ]

≪resouse.crs≫ Package resouse { String send_button_title = $$SEND_BUTTON_TITLE; String cancel_button_title = $$CANCEL_BUTTON_TITLE; String cancel_button_title = $$NAME_LABEL_VALUE; String address_label_title = $$ADDRESS_LABEL_VALUE; }
≪resouse.ja.xml≫ <?xml version="1.0" encoding="utf-8" ?> <resource> <SEND_BUTTON_TITLE>送信</SEND_BUTTON_TITLE> <CANCEL_BUTTON_TITLE>キャンセル</CANCEL_BUTTON_TITLE> <NAME_LABEL_VALUE>氏名</NAME_LABEL_VALUE> <ADDRESS_LABEL_VALUE>住所</ADDRESS_LABEL_VALUE> <resource>

ディレクトリAのCRSでは「resouse.crs」をインポートして使用します。

[ ディレクトリAにあるファイル ]

≪Form_A.crs≫
import "../B/resource.crs";
Form Form_A { X = 0; Y = 0; Width = 400; Height = 213; Button Button1 { ・・・ Title = resource.send_button_title; } Button Button2 { ・・・ Title = resource.cancel_button_title; } Label Label1 { ・・・ Value = resource.cancel_button_title; } Label Label2 { ・・・ Value = resource.address_label_title; } }

実際の挙動については、CRSファイル形式のサンプル
  「リソースファイルを共通化したい(Lan41_004.zip)
ご参照ください。

管理番号:Lan41_004
  Biz-Collections Bizの宝箱 トップへ
  Biz/Browser XE・Biz/Designer XE TIPS集 トップへ