DelphiXE4 [FMX]言語(Lang)
2015/03/30
前回は[Standard]内の「アクションリスト(ActionList)」について記述しましたので、今回は、同じく[Standard]内の「言語(Lang)」について記述します。Delphi2010、DelphiXE3 の VCLコンポーネントには存在しません。
【DelphiXE3[FMXアプリケーション]の記事はこちら】
XE4(FMX)
FMX.Types.TLang
XE3(FMX)
FMX.Types.TLang
(ヘルプより)
Lang
現在、選択されている言語を示します。
Lang プロパティを使用すると、現在の言語を、TLang インスタンスから取得することができます。言語は、慣例の 2 文字コードで示されます。
StoreInForm
TLang オブジェクトとフォームの間に、リンクを作成します。
StoreInForm プロパティを True に設定することにより、TLang インスタンスは、フォーム上のオブジェクトとその Text プロパティを認識し、翻訳ができるようになります。
前回作成したフォーム上に、この Langオブジェクトを貼り付け(Lang1)、Labelオブジェクトを貼り付け(Label1)、Label1のTextプロパティ内容を「文字を入力して下さい」としておきます。
Lang1アイコン絵をダブルクリックします。オブジェクトインスペクタでの Langプロパティの右端の[…]クリックでもOKです。「言語デザイナ」画面が表示されます。
一覧には、フォーム上に配置して記述した Labelプロパティの内容が表示されています。後で追記して、ここに表示されない場合は、画面左下にある「文字列の検索」をクリックすれば表示されるようになります。メニューの項目は表示されない様子です。
画面上部の「2文字の言語コード」欄に、英語=「en」と入力して [追加]ボタンをクリックします。
↓
言語の選択で「en」と表示されている状態だと、一覧の「文字を入力して下さい」の右横に、翻訳内容を記述するための文字入力欄が出来ますので、そこに、英語で翻訳内容を記述します。
この画面を閉じて、保存・コンパイル(ビルド)・実行を行います。
何か変わったのか、さっぱり分かりません。
Windowsのコントロールパネルの「地域と言語」の「形式」頁の「形式」を 「日本語」から「英語」に変更してみます。
↓
それから再度、作成したプログラムを実行してみます。
自分で記述した翻訳文章が表示されているのが分かります。ただし、メニュー項目は変わっていないようです。[+]ボタンを押して「新しい原文テキスト:」で「コピー」「切り取り」「貼り付け」を追加しても駄目な様子です。
メニュー項目については現在、どうすればいいのかは分かりません。例えば、リストボックスを利用して、
のようにしておき、フォーム表示時に
procedure TForm1.FormShow(Sender: TObject);
begin
MenuItem1.Text := ListBox1.Items[0];
MenuItem2.Text := ListBox1.Items[1];
MenuItem3.Text := ListBox1.Items[2];
MenuItem4.Text := ListBox1.Items[3];
MenuItem5.Text := ListBox1.Items[1];
MenuItem6.Text := ListBox1.Items[2];
MenuItem7.Text := ListBox1.Items[3];
end;
等のようにすれば
という風には可能ですが、あまり美しくはないですね。
まぁ取り敢えず、これを利用することによって多言語対応のプログラムをつくる事はできそうな感じです。
MacOSX アプリケーションでも動作OKです。
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>
Delphi入門編
>
Delphi2010
>
DelphiXE3
>DelphiXE4
△TOP
▲2015/03/29
2015/03/30
▼2015/03/31
シェアウェア
Script!World
データベース
(C)Copyright 1999-2015. By AFsoft All Rights Reserved.