機械翻訳について

ロケール依存のカスタム文字列を返す

カスタム検証エラー・メッセージをスローするときに、エンド・ユーザーが多言語の場合は、ロケール固有のエラー・メッセージ文字列の指定について心配する必要がある場合があります。

これを実現するために、すべてのエラー文字列をカプセル化するグローバル関数の一部として、現在のロケール(各エンド・ユーザーのブラウザ設定から推測)を参照できます。 次のようなgetMessage関数について考えてみます。 これを定義すると、検証ルールまたはトリガーは、適切なメッセージ・キーを渡すことによって、ロケール依存のエラー・メッセージをスローできます:

// context is trigger or object-level validation rule
throw new oracle.jbo.ValidationException(adf.util.getMessage('BIG_ERROR'))

グローバル関数は次のように定義されます。

  • 関数名: getMessage

  • 戻りタイプ: String

  • パラメータ: stringKey String

関数定義

// Let "en" be the default lang
// Get the language part of the locale
// e.g. for locale "en_US" lang part is "en"
def defaultLang = 'en';
def userLocale = adf.context.getLocale() as String
def userLang = left(userLocale,2)
def supportedLangs=['en','it']
def lookupLang = supportedLangs.contains(userLang)
                 ? userLang : defaultLang
def messages =
   [BIG_ERROR:  [en:'A big error occurred',
                 it:'È successo un grande errore'],
    SMALL_ERROR:[en:'A small error occurred',
                 it:'È successo un piccolo errore']
]
return messages[stringKey][lookupLang]