1 つのアプリケーション。5 つの言語。
実行中に切り替え。
sgcLocalization は、お客様自身の Delphi、C++Builder、Lazarus アプリケーションを翻訳します。すべてのフォーム、すべてのメッセージ、すべての複数形を、1 つのエディターと、言語を切り替える 1 行のコードで扱えます。
- English
- Deutsch
- Español
- Français
- Italiano
上の画像は、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)をフォームに置いてください。プロジェクトの言語を一覧表示し、ユーザーが選ぶと切り替わります。
切り替えは、キャプションの置き換えだけではありません。
- あとから作成されるフォームも自動的に翻訳されます。切り替えの 10 分後に開いたダイアログも、正しい言語で表示されます。
- コードで変更した値は保持されます。コードが顧客名を設定したラベルは、翻訳で上書きされません。
- 選択は維持されます。コンボボックスやリストは、項目の言語が切り替わっても選択中の項目を保ちます。
- 右から左へ書く言語ではレイアウトが反転します。そのため、アラビア語やヘブライ語のユーザーには左右反転したフォームが表示されます。
ユーザーのシステムの言語で起動するには、プロパティを 1 つ設定します。
sgcVCLLocalizer1.Language := 'auto';
必要な手間はごくわずか
ローカライザー(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 の外ではスタンドアロンのツールを使えます。
- 項目の状態。すべてのテキストは、新規、変更済み、提案、翻訳済み、レビュー済み、廃止のいずれかで、状態で絞り込めます。
- フィルターと複数選択。言語、フォーム、検索テキストで絞り込み、複数の行を選んでまとめて変更できます。
- バージョンマーク。リリース時にバージョンをマークすると、「次のバージョン以降に新規または変更」フィルターで、次のリリースで翻訳すべきものがちょうど表示されます。見落としはありません。
- 翻訳者の言語で。エディター自体が 12 の言語に対応し、ライトテーマとダークテーマを備えています。
よくあるミスを見つける検証
%d やアクセラレータキーが抜け落ちた翻訳は、書くのは簡単でも見つけるのは困難です。sgcLocalization は、入力されたものでも、インポートされたものでも、AI が提案したものでも、すべての翻訳をチェックします。
- 書式指定子とプレースホルダー、
- アクセラレータキー、
- 改行、先頭と末尾の空白、
- 空の翻訳と複数形。
エラーのある項目はレビュー済みに設定できないため、壊れたテキストが完成品としてリリースに紛れ込むことはありません。
AI 翻訳は提案として届く
エディターは、ChatGPT、Claude、Gemini、Ollama などの AI サービスで翻訳できます。対象言語を選び、用語集とトーンに関する指示を渡して、開始します。
結果は提案として届きます。1 件ずつ承認または却下でき、提案がすでに翻訳済みのテキストを上書きすることはありません。同じ検証が提案にも実行されます。
プロの翻訳者向けの XLIFF
翻訳会社は XLIFF で作業します。sgcLocalization は、言語ごとに XLIFF 1.2 をエクスポートし、返ってきたファイルをインポートします。
インポートがプロジェクトに直接書き込むことはありません。すべての変更を示すレビュー一覧が開き、古いテキスト、新しいテキスト、変更の種類、見つかった問題が表示されます。チェックを入れた行だけが適用されます。
1 つのプロジェクトファイル
アプリケーションの翻訳は、拡張子 .sgcloc の 1 つのプロジェクトファイルに保存されます。JSON なので、バージョン管理と相性が良く、変更された翻訳はコードレビューで読める小さな差分になります。横に何も置かない単一の実行ファイルにしたい場合は、代わりにプロジェクトをフォームファイルに埋め込むこともできます。
実際のアプリケーションで見る
ショーケースのデモは Order Desk です。ダッシュボード、注文、顧客、プランナー、ピボット分析、ウィザード、印刷プレビューを備えた、完全な業務アプリケーションです。英語、ドイツ語、スペイン語、フランス語、イタリア語に翻訳されており、VCL、FireMonkey、Lazarus の各バージョンがあります。
デモフォルダーには、3 つのクイックスタート、スタンドアロンの翻訳エディターツール、そして空のフォームから翻訳済みのアプリケーションまでを案内する Getting Started ガイドも入っています。
sgcUI に含まれます
sgcLocalization は sgcUI 2026.12.0 に付属します。単独では販売されません。すべての sgcUI エディションと、すべての単体製品に含まれ、インストーラーでは既定で選択されています。
お客様のアプリケーションを、お客様の顧客の言語で
sgcUI をダウンロードし、Order Desk デモを開いて、実行中に言語を切り替えてみてください。そのあと、ご自身のメインフォームにローカライザーを置きます。
ご質問やご意見はありませんか。お問い合わせください。コードを書いた本人から返信します。
