表示言語の動的な変更方法
表示言語を動的に変更することができます。これにはディスプレイで
IlvDisplay::setCurrentLanguage を呼び出すだけです。Rogue Wave Views は自動的に現在読み込んだすべてのデータ・ファイルを再度読み込み、新しい言語を表示します。これを行うには、システムで利用可能なこれらのファイルのローカライズ・バージョンを提供する必要があります。
メモ: 言語を切り替える場合、アプリケーションをもっとも強力なエンコーディングでスタートする必要があります。たとえば、フランス語と英語を切り替える場合、アプリケーションをフランス語でスタートします。ただし、アプリケーションのスタート時に英語のメッセージを表示したい場合、ILVLANG 環境変数または Windows の lang リソースを使用して、スタート時に表示される言語を上書きします。 |
すべてのメッセージが my_messages.dbm というファイルで定義されているアプリケーションを作成したとします。
display がディスプレイである場合、アプリケーションの開始時に次を呼び出してこのファイルを読み込みます。
display->getDatabase()->read("my_messages.dbm", display);
フランス語ロケールでプログラムをスタートした場合、Rogue Wave Views はlocale/fr_FR.ISO-8859-1/my_messages.dbm にあるファイルを読み込みます。
表示言語を変更するには、使用する新しい言語の IlvDisplay::setCurrentLanguage をここで呼び出します。たとえば、イタリア語をディスプレイに表示させたい場合、次を呼び出します。
display->setCurrentLanguage(IlGetSymbol("it_IT"));
Rogue Wave Views は、以下にあるファイルを自動的に読み込みます。
locale/it_IT.ISO-8859-1/my_messages.dbm
これはまた、既に開いている他のすべてのデータ・ファイルも読み込みます。
display->setCurrentLanguage(IlGetSymbol("fr_FR"));
メモ: これは、エンコーディングに互換性がある場合のみ有効です。 |
samples/foundation/i18n/changelang にあるサンプルは、この特性を示したものです。
Version 6.0
Copyright © 2015, Rogue Wave Software, Inc. All Rights Reserved.