著者: ユウ・ウェイネン
日付: 2004 年 2 月 18 日
Delphi は複数の言語をあまりサポートしていないため、アプリケーションの国際化が困難になっています。国際的なアプリケーションを開発する場合、多くの困難に直面します。著者自身も 2001 年の初めに電子税関申告アプリケーションの作成に参加しました。このプログラムは中国、米国、香港、台湾で使用され、将来的には日本と韓国でも使用される予定です。このとき、アプリケーションは同時に複数の言語でテキストを入力でき、同じオペレーティングプラットフォーム上で複数の言語を入力できる必要があります。当時私は Delphi を使い始めたばかりだったので、多言語ライティングではかなり寄り道をしました。 Delphi は多言語開発にあまり力を入れていないため、多言語プログラムを開発するのは非常に困難です。以前、ボーランドのエンジニアに多言語の問題について質問したことがありましたが、どれも曖昧でした。この機能を実現するには、自分で方法を見つけるしかないようです。 Microsoft® Word は、複数の言語でテキストを入力および印刷できるため、多言語対応に一縷の希望を与えてくれます。
分析: 1.アプリケーション開発において、アプリケーションが複数の言語を実装したい場合は、Unicode を使用する必要があります。Unicode だけが世界中のすべての文字とその内部コードを同時に収容でき、同じフォームに複数の言語を実装できるからです。 2.動作プラットフォームによって制限されます。前述したように、複数言語の共存の問題を解決できるのは Unicode だけであるため、オペレーティング プラットフォームは基本的な内部コードとして Unicode を使用する必要があります。 Microsoft のオペレーティング プラットフォームは Windows NT 以降のバージョンでのみサポートされているため、以下の内容は主に Windows NT? カーネル テクノロジ プラットフォームに基づいています。なぜ Microsoft Word が Windows 9x で複数の言語を実装できるのかについては、Windows 9x に固有の欠陥があるため、どのような巧妙なトリックが考案されたのかはまだわかりませんが、Windows 9x が解消される予定はありません。 Windows 9x でそれを解決する方法を考えすぎることも、おそらく Borland が複数の言語にあまり取り組んでいない理由です。 3.アプリケーションのデータベースは Unicode 内部コードをサポートする必要があります。アプリケーションによって入力されたコンテンツはデータベースに保存されるため、データベースは Unicode をサポートするデータベースを使用する必要があります。そうしないと、保存されたデータから多言語文字を読み取ることができなくなります (または、完了するまでに多くの作業が必要になります)。 )。現在、Unicode を完全にサポートする主流のデータベースには、Microsoft access 2000、SQL Server 2000、Oracle 9x が含まれます。Oracle 9x はカスタマイズしてインストールする必要があり、データベースの作成時に内部コードを Unicode として選択する必要があります。 4.アプリケーションは通常、入力インターフェイスとレポートに分けられます。つまり、アプリケーションは複数の言語(繁体字、簡体字、日本語、韓国語などに対応)でテキストを入力、表示、印刷できなければなりません。アプリケーションの Unicode 入力メソッド。 もちろん、アプリケーションがそれを使用する必要はありません。 ただし、テスト中は、プログラムの実現可能性を証明するために、複数の言語を同じフォーム入力キャビネットに入力する必要があります。現在、繁体字、簡体字、英語、日本語、韓国語のフォント間で自由に変換できる唯一の入力方法は、Microsoft Pinyin 入力方法です。分析後、アプリケーションは次の準備を行う必要があります。 1. Microsoft? Windows 2000 PRfessional2。 Microsoft? Access データベース 20003。 開発ツールは、Broand Delphi 7 です。 4. インターフェイス コントロールには、TNTComponent を使用しました。 Unicode をサポートするコントロール。TNTComponent は、誰もが安心して使用および変更できるオープン ソース コード コントロールです。 http://home.ccci.org/wolbrink にアクセスしてダウンロードしてインストールできます (使い方は基本コントロールと同じなので説明は省略します)。 5. レポート コントロールには Qreport 3.6.2 を使用します。Qreport 3.6.2 は Unicode をサポートしていないため、複数の言語をサポートできるようにコードを書き直しました。 この記事では、パッチ コードのダウンロード (http://happy.gsidc.com) を提供します。 (Qreport は Delphi 5 および 6 の Delphi に付属するコントロールであるため、この記事では読者がすでにそれを使用してレポートを印刷できることを前提としています)。 6. Microsoft? Microsoft のピンイン入力方式。 Microsoft Web サイトから無料でダウンロードできます。 (注:日本語等をご希望の場合は言語パックをダウンロードする必要があります)3. 新しい TntForm1 を作成し、TntEdit 入力キャビネットとボタンを追加します。 TNTComponent をインストールした後、 a.) Unicode をより適切に制御するために、アプリケーションの新しいページに TntForm (Unicode) オプションが表示されます。 b.) 新しい TNT コントロール グループ ページが Delphi のコントロール パネルに表示されます。多言語アプリケーション開発では、Unicode 入力または表示が必要な場合は常にこのタイプのパネルでコントロールを使用することをお勧めします。 4. 新しいレポート フォームを作成し、QRLabel を追加します。 5. フォームコードを記述します。ダブルシステム TntButton1、ユーザーは TntForm1 のフォームを報告し、次のコードを入力します。 6. テストと動作の結果。プログラムでは 5 つの言語フォントを入力しました。 a.) 「国」という文字は繁体字中国語です。 b. 「国」という文字は簡体字中国語です。 c. 「村」という文字は香港固有の文字であり、繁体字中国語にはありません。 Cangjie などの入力方法を使用して入力する必要があります。 d.) 「China」は英語 e.) 「の幼稚園ひまわり」は、多国籍アプリケーションの入力・表示・印刷機能を実現した日本語フォントプログラムであることが分かりました。次に、データベースに対するデータ (複数の国別フォント) の読み取りと書き込みの別の例を示します。ダウンロード例 1