機械翻訳について

論理参照列の作成

セマンティック・モデラーで式ビルダーを使用して、参照関数を含む論理列を作成します。

論理列の値は、現在のユーザーに関連付けられている言語に基づきます。

論理列は、論理表の列タブにある列プロパティ・ペインの導出列式を使用して作成します。 「導出列の作成」を参照してください。

たとえば、翻訳された製品名を取得するには:

INDEXCOL( VALUEOF(NQ_SESSION."LAN_INT"), "Translated Lookup Tables"."Product". "ProductName", 
LOOKUP( DENSE "Translated Lookup Tables"."Product Translations". "ProductName", "Translated Lookup Tables"."Product"."ProductID", VALUEOF(NQ_SESSION."WEBLANGUAGE"))) 

LAN_INTはセッション初期化ブロックMLSにより移入されるセッション変数で、基本言語または他の言語を表します。

  • 基本言語(たとえば、en - English)の場合は0

  • 他の言語コード(たとえば、fr - Frenchまたはcn - Chinese)の場合は1

WEBLANGUAGEは、ユーザーがログイン時に選択した言語に基づいて自動的に初期化されるセッション変数です。

INDEXCOL関数は、適切な列の選択をサポートします。 前述の例では、ユーザー言語が基本言語の場合(つまり、セッション変数LAN_INTの値が0の場合)にのみ、基本列(ProductName)の値が戻されます。 ユーザー言語が基本言語でない場合(セッション変数LAN_INTの値が1の場合)は、WEBLANGUAGEセッション変数に渡された言語の参照表から値が戻されます。

(前述の例の) DENSE関数を使用する場合、翻訳対象言語の列に値がないと、参照関数により空白のエントリが表示されます。

(次の例の)SPARSE関数を使用する場合、翻訳対象言語の列に値がないと、参照関数により基本言語で対応する値が表示されます。

INDEXCOL( VALUEOF(NQ_SESSION."LAN_INT"), "Translated Lookup Tables"."Product".
"ProductName", LOOKUP( SPARSE "Translated Lookup Tables"."Product Translations".
"ProductName", "Translated Lookup Tables"."Product"."ProductName", "Translated 
Lookup Tables"."Product"."ProductID", VALUEOF(NQ_SESSION."WEBLANGUAGE")))