2015年

7月

14日

【iDempiere Lab】翻訳タブの作り方

 Compiere Distributionは、多言語対応されています。主言語に対して翻訳のデータを作成していく事になるのですが、マスタなどをAdd-Onし、多言語対応させたい場合には、iDempiereの多言語対応の作法にのっとった開発が必要になります。

 そこで、【JPIERE-0024】法人マスタと企業グループマスタのカスタマイズで追加した2つのマスタを多言語化対応させる事を通して、多言語対応の開発作法を調査及び研究し、その成果をここにまとめておきたいと思います。

Step1:翻訳テーブルの作成

テーブル名について

 翻訳テーブルは翻訳対象となるテーブル名に"_Trl"の4文字を付した名前にしなければいけません。例えば、法人マスタ(JP_Corporation)テーブルの翻訳テーブルは、JP_Corporation_Trlになります。

カラムについて

 例えば、JP_Corporation_TrlテーブルのCreate文は次のようになります。

CREATE TABLE adempiere.JP_Corporation_Trl

(

  JP_Corporation_ID numeric(10,0) NOT NULL,

  AD_Language character varying(6) NOT NULL,

  AD_Client_ID numeric(10,0) NOT NULL,

  AD_Org_ID numeric(10,0) NOT NULL,

  IsActive character(1) NOT NULL DEFAULT 'Y'::bpchar,

  Created timestamp without time zone NOT NULL DEFAULT now(),

  CreatedBy numeric(10,0) NOT NULL,

  Updated timestamp without time zone NOT NULL DEFAULT now(),

  UpdatedBy numeric(10,0) NOT NULL,

 

  IsTranslated character(1) NOT NULL DEFAULT 'N'::bpchar,

  Name character varying(60) NOT NULL,

  Name2 character varying(60),

  Description character varying(255),

  JP_Corporation_Trl_uu character varying(36) DEFAULT NULL::character varying,

  CONSTRAINT JP_Corporation_Trl_pkey PRIMARY KEY (JP_Corporation_ID, AD_Language)

);

◆翻訳対象となるテーブルの主キーを外部キーとして保持する必要があります。

◆テーブル名+_Trl+_IDといった通常であれば主キーになるカラムは不要です。

◆テーブル名+_Trl+_UUのカラムは作成して下さい。

◆AD_Language character varying(6) NOT NULLのカラムを追加して下さい。

◆IsTranslated character(1) NOT NULL DEFAULT 'N'::bpcharを追加して下さい。

◆翻訳対象となるテーブルにあるカラムで翻訳したいカラムを追加して下さい。例:Name、Name2、Description

◆翻訳対象となるテーブルの主キーのカラムとAD_Languageのカラムで主キーの制約を付して下さい。

Step2:テーブルとカラムの設定

 翻訳対象となるテーブルの翻訳対象となるカラムは、翻訳する(IsTranslated)フラグをONにして下さい。

テーブルとカラムウィンドウ‐カラムタブ
テーブルとカラムウィンドウ‐カラムタブ

 主キーの制約を付けた2つのカラムについては"リンクカラム"のフラグをONにして下さい。

Step3:タブの設定

 ウィンドウ/タブ/フィールドの"タブ"タブの設定では、"翻訳タブ"フラグをONにして、"レコード追加"フラグをOFFにします。翻訳レコードの追加はiDempiereが自動的に行ってくれます。

ウィンドウタブフィールド-タブタブ
ウィンドウタブフィールド-タブタブ

参考サイト

関連するコンテンツ

idempiereトレーニング