sgcLocalization: Delphi アプリケーションを翻訳し、実行中に言語を切り替える

· コンポーネント
sgcLocalization: Delphi アプリケーションを翻訳し、実行中に言語を切り替える
新製品 · sgcLocalization

1 つのアプリケーション。5 つの言語。
実行中に切り替え。

sgcLocalization は、お客様自身の Delphi、C++Builder、Lazarus アプリケーションを翻訳します。すべてのフォーム、すべてのメッセージ、すべての複数形を、1 つのエディターと、言語を切り替える 1 行のコードで扱えます。

  • English
  • Deutsch
  • Español
  • Français
  • Italiano
同じ Delphi アプリケーションのダッシュボードを、英語、ドイツ語、スペイン語、フランス語、イタリア語の 5 つの言語で、ライトテーマとダークテーマで並べた画像
1行で切り替え
3フレームワーク
7~13Delphi バージョン
0sgcUI なら追加費用なし

上の画像は、1 つの実行ファイルです。同じダッシュボード、同じデータを、英語、ドイツ語、スペイン語、フランス語、イタリア語で表示しており、ユーザーはアプリケーションの実行中にコンボボックスから言語を変更します。再起動も、2 回目のビルドも不要です。

このアプリケーションは、sgcLocalization で翻訳されました。これは sgcUI スイートの新製品です。VCL、FireMonkey、LCL に対応し、Delphi 7 から Delphi 13、C++Builder、Lazarus で使用できます。すべての sgcUI エディションと、すべての単体製品に含まれています。

1 分でわかる sgcLocalization。実際のアプリケーションをスキャンし、翻訳し、切り替えます。YouTube でも公開中。

1 行で言語を切り替える

言語の切り替えに必要なコードは、これだけです。

uses
  sgcLocalization_Engine;

procedure TfrmMain.btnGermanClick(Sender: TObject);
begin
  sgcSetLanguage('de');
end;

コードをまったく書きたくない場合は、すぐに使える言語コンボ(TsgcVCLLanguageCombo または TsgcFMXLanguageCombo)をフォームに置いてください。プロジェクトの言語を一覧表示し、ユーザーが選ぶと切り替わります。

同じアプリケーションの注文ページを英語、ドイツ語、イタリア語で表示した画像。ツールバー、ナビゲーション、検索ボックス、グリッドの見出し、データ、数値の書式がすべて切り替わります
同じページを英語、ドイツ語、イタリア語で表示しています。ツールバー、ナビゲーション、グリッドの見出し、ヒント、データが言語に合わせて変わります。

切り替えは、キャプションの置き換えだけではありません。

ユーザーのシステムの言語で起動するには、プロパティを 1 つ設定します。

sgcVCLLocalizer1.Language := 'auto';

必要な手間はごくわずか

1置くメインフォームにローカライザーコンポーネントを置きます。
2スキャンフォーム、フレーム、データモジュールのテキストを収集します。
3翻訳手作業で、翻訳者と XLIFF でやり取りして、または AI 提案で翻訳します。
4切り替え1 行のコード、または言語コンボで切り替えます。

ローカライザー(VCL 用は TsgcVCLLocalizer、FireMonkey 用は TsgcFMXLocalizer)は、RTTI を通じてすべてのテキストプロパティを見つけます。プロパティに印を付ける必要も、コンポーネント名を変更する必要も、フォームを変更する必要もありません。

組み込みの無視ルールが、テキストではないものを除外します。コンポーネント名、フィールド名、SQL、ファイル名、書式文字列、そして sgcUI コントロール自体の非テキストプロパティです。独自のルールを追加することもできます。標準コントロールと sgcUI コントロールが混在するフォームもきれいにスキャンされるため、翻訳対象の一覧にはテキストだけが並びます。

コード内のテキスト: スニペット

すべてのテキストがフォームにあるわけではありません。コードの中で組み立てるメッセージ、ステータス行、キャプションはスニペットです。テキストを sgcT で囲むと、翻訳できるようになります。

if MessageDlg(sgcT('Save changes?'), mtConfirmation,
  [mbYes, mbNo], 0) = mrYes then
  SaveOrder;

同じ単語に 2 つの訳が必要なことがあります。英語の「Open」は、コマンドでもあり、注文の状態でもあります。sgcTC はコンテキストを追加するので、それぞれの意味に別の訳を付けられます。

btnOpen.Caption := sgcTC('command', 'Open');
lblState.Caption := sgcTC('order status', 'Open');

複数形には sgcTN を使います。ソース言語の単数形と複数形を書くと、翻訳側が対象言語に必要な数だけの形を用意します。

lblSelected.Caption := sgcTN('%d order selected', '%d orders selected',
  Count, [Count]);

複数形の規則は CLDR に基づいているため、どの言語でも正しく処理されます。たとえばポーランド語には 4 つの形があり、エディターは翻訳者にそれぞれの形を尋ねます。

1 つの翻訳エディター

すべての翻訳を 1 か所で編集します。デザイン時にローカライザーを右クリックすると IDE の中でエディターが開き、IDE の外ではスタンドアロンのツールを使えます。

ライトテーマとダークテーマの sgcLocalization 翻訳エディター。ソーステキストと、各項目のドイツ語、スペイン語、フランス語の訳を並べたグリッド、状態フィルター、ソース、訳、メモ、提案を表示する編集パネル
ライトとダークの翻訳エディター。1 行が 1 つのテキスト、1 列が 1 つの言語で、すべての項目の状態がひと目で分かります。

よくあるミスを見つける検証

%d やアクセラレータキーが抜け落ちた翻訳は、書くのは簡単でも見つけるのは困難です。sgcLocalization は、入力されたものでも、インポートされたものでも、AI が提案したものでも、すべての翻訳をチェックします。

翻訳エディターの検証タブ。ソースと異なる書式指定子のエラーと、改行が異なる警告が表示されています
ドイツ語のテキストで書式指定子が抜けています。お客様の手に渡る前に、エラーとして報告されます。

エラーのある項目はレビュー済みに設定できないため、壊れたテキストが完成品としてリリースに紛れ込むことはありません。

AI 翻訳は提案として届く

エディターは、ChatGPT、Claude、Gemini、Ollama などの AI サービスで翻訳できます。対象言語を選び、用語集とトーンに関する指示を渡して、開始します。

AI 翻訳ダイアログ。対象言語はドイツ語とフランス語を選択、範囲は新規および変更されたテキスト、用語集と、丁寧なトーンの指示が設定されています
AI 翻訳の対象言語、範囲、用語集、指示です。

結果は提案として届きます。1 件ずつ承認または却下でき、提案がすでに翻訳済みのテキストを上書きすることはありません。同じ検証が提案にも実行されます。

知っておきたいこと。 AI 翻訳は sgcUI の AI プロバイダーを通じて行われます。名前の挙がったサービスには sgcWebSockets が必要です。sgcWebSockets がない場合は、イベントを使って自分のコードから任意のサービスを呼び出せます。

プロの翻訳者向けの XLIFF

翻訳会社は XLIFF で作業します。sgcLocalization は、言語ごとに XLIFF 1.2 をエクスポートし、返ってきたファイルをインポートします。

インポートがプロジェクトに直接書き込むことはありません。すべての変更を示すレビュー一覧が開き、古いテキスト、新しいテキスト、変更の種類、見つかった問題が表示されます。チェックを入れた行だけが適用されます。

フランス語ファイルの XLIFF インポートのレビュー一覧。各行に、項目、変更の種類、古いテキストと新しいテキスト、新しい状態、問題が表示され、適用するためのチェックボックスがあります
XLIFF インポートのレビューです。問題のある行はチェックが外れており、「適用」を押すまで何も適用されません。

1 つのプロジェクトファイル

アプリケーションの翻訳は、拡張子 .sgcloc の 1 つのプロジェクトファイルに保存されます。JSON なので、バージョン管理と相性が良く、変更された翻訳はコードレビューで読める小さな差分になります。横に何も置かない単一の実行ファイルにしたい場合は、代わりにプロジェクトをフォームファイルに埋め込むこともできます。

実際のアプリケーションで見る

ショーケースのデモは Order Desk です。ダッシュボード、注文、顧客、プランナー、ピボット分析、ウィザード、印刷プレビューを備えた、完全な業務アプリケーションです。英語、ドイツ語、スペイン語、フランス語、イタリア語に翻訳されており、VCL、FireMonkey、Lazarus の各バージョンがあります。

フランス語で表示した Order Desk デモのプランナーページ。納品を示す週表示、フランス語の曜日名、ツールバー、ナビゲーション
フランス語で表示した Order Desk のプランナー。曜日名、ビュー、予定が言語に合わせて変わります。

デモフォルダーには、3 つのクイックスタート、スタンドアロンの翻訳エディターツール、そして空のフォームから翻訳済みのアプリケーションまでを案内する Getting Started ガイドも入っています。

sgcUI に含まれます

sgcLocalization は sgcUI 2026.12.0 に付属します。単独では販売されません。すべての sgcUI エディションと、すべての単体製品に含まれ、インストーラーでは既定で選択されています。

お客様のアプリケーションを、お客様の顧客の言語で

sgcUI をダウンロードし、Order Desk デモを開いて、実行中に言語を切り替えてみてください。そのあと、ご自身のメインフォームにローカライザーを置きます。

ご質問やご意見はありませんか。お問い合わせください。コードを書いた本人から返信します。