tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:多言語化対応と選択リストの文字列判定

Salesforceではトランスレーションワークベンチ機能を使うことで簡単に多言語化対応することが可能です。

f:id:tyoshikawa1106:20140308113853p:plain


選択リスト値の翻訳で指定された値は表示が変更されるだけでApexなどでの判定処理ではマスタ選択リスト値の表示ラベルの値で判定されます。


例えば選択リストで"その他"が選択されたときに入力欄を表示したい場合、次のような判定処理で実現できます。

rendered="{!businessReport.Location__c == 'その他'}"

f:id:tyoshikawa1106:20140308115902p:plain

f:id:tyoshikawa1106:20140308114822p:plain


言語が英語に変更され選択リスト値が"その他"から"Other"に変更されても上記の指定方法のままで正常に判定処理が実行されます。

f:id:tyoshikawa1106:20140308115326p:plain


逆に次のように翻訳後の単語で判定処理を書こうとすると正常に実行されません。

rendered="{!businessReport.Location__c == 'Other'}"

f:id:tyoshikawa1106:20140308115541p:plain


以前トランスレーションワークベンチによる翻訳は判定処理にも影響があると勘違いしていて、対象の単語を翻訳時に値を切り替えられるカスタム表示ラベルで指定してみたとき上記理由でうまくいかなかったということがありました。


多言語化対応するときの単語の判定はカスタム表示ラベルではなく定数クラスなどにマスタのリスト値を持たせたりして対応した方がいいみたいです。