GeneXus には、静的翻訳と実行時翻訳の 2 種類の翻訳があります。
静的翻訳は、仕様解析時に行われます。結果として作成されたアプリケーションは、実行時には言語を変更できません。静的翻訳では実行時のコードが追加されないため、最もパフォーマンスのよい翻訳オプションです。静的翻訳をアクティベートするには、
環境レベルで
[ Translation type ] プロパティを Static に設定し、
[ Translate to language ] プロパティで言語を選択します。
静的翻訳は、どのジェネレーターでも行えます (多くのジェネレーターでは、 [ Environment ] の [ Translate type ] プロパティにこの値しか指定できません)。実行時の負荷の追加がないため、静的翻訳は最もパフォーマンスの良いコードを提供します。翻訳は仕様解析時に実行されます。アプリケーションは言語ごとに異なる実行ファイルを必要とします (言語ごとに 1 ファイル)。同じアプリケーションを別の言語に静的翻訳する場合は、言語ごとに新しい [ Environment ] を設定する必要があります。
注: 言語参照に複数の ISO コードページが含まれる場合は、各言語の生成プロセス用に Windows の地域設定を変更する必要があります。
たとえば、日本語、中国語、タイ語などの言語を使用する場合、静的翻訳プロセスでは関連する
Language for non-Unicode programs (Windows の設定) を正確に設定する必要があります。お使いの環境でこの問題が発生する場合は、実行時翻訳に切り替えてください。
実行時翻訳は、
.NET ジェネレーター、
Java ジェネレーター、および
.NET Framework ジェネレーターで利用可能です。実行時翻訳は、(静的翻訳と比較すると) 少しパフォーマンス負荷がかかりますが、最も融通の利くソリューションです。実行時翻訳では、次のことを行えます:
- 異なる言語で動作する実行ファイルを単一のファイルセットとして管理する
- ユーザーが利用可能な言語リストから希望するアプリケーション言語を選択できるようにする
- 実行コードを変更せずに新しい言語をアプリケーションに追加する
必ず
SetLanguage 関数を使用して言語を設定します。
Design System オブジェクトをスタイルのベースにし、
[ Base CSS ] プロパティで値 None を選択した場合、方向はアプリケーション言語に応じて自動的に決定されます。
また、
Web Theme オブジェクト、デザインシステム ( [ Base CSS ] プロパティで None とは異なる値を持つ)、または方向に応じて異なるテーマとデザインシステムを使用する場合は、SetLanguage 関数と
SetTheme 関数をプログラムする必要があります。
GeneXus 18 Upgrade 3 以降、デザインシステムの [ Base CSS ] プロパティが None に設定されている場合、方向は SetLanguage 関数によって自動的に決定されます。
RTL 言語のリアルタイム翻訳