ロシア語の文字化け

解決


ahsan  2007-09-27 20:13:19  No: 27870

ロシア語を表示したいのですが、ラベルやボタンの
Captionは文字化けせず、FormやTabSheetのキャプション、
Hintは文字化けします。FormのFontはCharset=RUSSIAN_CHARSET、
Name=Arialで、その他は初期値のままです。
コードも記載いたしますので、ご指導お願い致します。
メッセージをINIファイルにしましたのは、多言語化したかった為です。

var
//infoMsg:ロシア語で"Информация"(情報)が入るはず
  infoMsg : string;

procedure TForm1.FormCreate(Sender: TObject);
var
  IniFile : TIniFile;
  path    : string;
begin
  path:=ExtractFilePath(Application.ExeName)+'RUSSIAN.INI';
  IniFile:=TIniFile.Create(path);
  infoMsg:=IniFile.ReadString('RUSSIAN','INFORMATION','');
  IniFile.Free;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
  Self.Caption:=infoMsg;//文字化け
  Label1.Caption:=infoMsg;//文字化けせず
  Label1.Hint:=infoMsg;//文字化け
  Button1.Caption:=infoMsg;//文字化けせず
  Button1.Hint:=infoMsg;//文字化け
  SpeedButton1.Caption:=infoMsg;//文字化けせず
  SpeedButton1.Hint:=infoMsg;//文字化け
  TabSheet1.Caption:=infoMsg;//文字化け
  TabSheet1.Hint:=infoMsg;//文字化け
end;

[RUSSIAN.INIのダンプ内容]
000000: 5B 52 55 53 53 49 41 4E [RUSSIAN
000008: 5D 0D 0A 49 4E 46 4F 52 ]..INFOR
000010: 4D 41 54 49 4F 4E 3D C8 MATION=ネ
000018: ED F4 EE F0 EC E0 F6 E8 エ◆ヲ鼡000020: FF 0D 0A 00 00 00 00 00 ........
000028: 00 00 00 00 00 00 00 00 ........


pekesuke  2007-09-28 00:21:40  No: 27871

Delphiの言語処理を使ってみたらいかがでしょう。
メッセージ類はresorcestringに定義し
[プロジェクト|言語|追加]でロシア語を追加します。
トランスレーションエディタで翻訳すれば日本語ロシア語の切り替えが簡単に出来ます。


ahsan  2007-09-28 03:59:30  No: 27872

pekesukeさん、早速ありがとうございます。
[プロジェクト|言語|追加]でロシア語を追加し、完了をクリック
すると、エラーが発生し、
E1026 ファイル'Project1.drf'が見つかりませんと表示されます。
また、resorcestringの定義とは、どうすればよいのでしょうか。
もう少し、具体的に教えてください。お願い致します。


pekesuke  2007-09-28 04:30:55  No: 27873

>E1026 ファイル'Project1.drf'が見つかりませんと表示されます。
日本語で作成したプロジェクトのコンパイルエラーは無くなっていますか。

>また、resorcestringの定義とは、どうすればよいのでしょうか。

implementation

uses ・・・

{$R *.DFM}

resourcestring
 XXXError = '何とかエラーです';

procedure TForm1.Button1Click(Sender: TObject);
begin
  MessageDlg(XXXError,mtWarning,[mbOK],0);

end;

と日本語で作成して完成後[プロジェクト|言語|追加]でロシア語を追加するとトランスレーションエディタが立ち上がってきますので、プロジェクトマネージャーにプロジェクト名.exeの下にプロジェクト名.XXX(XXXは言語によって異なる)が表示されますので展開してユニット名をクリックすると翻訳候補一覧が表示されます。この一覧で1行ずつ翻訳していきます。
翻訳が全て完了したら[プロジェクト|言語|アクティブ言語の設定]で
ロシア語を選択しコンパイル実行すると日本語の画面がロシア語の画面に変わります。


ahsan  2007-09-28 17:50:42  No: 27874

テストでフォームにボタンを1つ付けただけのプロジェクト
でしたので、コンパイルエラーは出ていません。
今朝行ってみました所、エラーが発生しなくなりました。
私の環境が不安定なのでしょうか。
プロジェクトマネージャのdfmファイルにボタンCaptionが、
resoucestringの文字列が、rcファイルにありましたので、入力しなおし
アクティブ言語をロシア語にしてコンパイル&実行してみましたが、
ボタンのCaptionとMessageDlgが日本語のままです。
OSはXPSP2で、BDS2006を使用しています。


pekesuke  2007-09-28 19:20:09  No: 27875

[プロジェクト|すべてのプロジェクトをコンパイル]を実行してください。


ahsan  2007-09-28 22:13:29  No: 27876

コンパイルできました。
実際にロシア語を入れてやってみます。
ありがとうございました。
pekesukeさん
ご親切にありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加