3

私は、多くのテキストと、すべてのビルドに含めることも含めないこともできるさまざまなモジュールを持つアプリケーションを開発しています。

保存されたプロジェクトごとに、すべての詳細 (つまり、そのプロジェクトで使用されているアルゴリズムの説明など) を含むレポートが自動的に生成されます。現在、すべてのテキストを文字列としてソース コードに埋め込み、po および mo ファイルを通じてさまざまな言語もサポートしています。

このシステムの良い点は、ドキュメントとレポート ファイルを動的に生成するのが非常に簡単であることです。悪い点は、ソース コードに大量のテキストがあるのは見苦しく、書式設定 (つまり html を使用) が快適ではないこと、テキストの編集が難しく、簡単なスペル チェックができないこと、翻訳がひどいことです。

最後の質問は、ドキュメントをコードに埋め込むのと、さまざまな言語の外部ドキュメント ファイル (html など) を作成して実行時に解析するのとでは、どちらがよいでしょうか? 明らかに、ソフトウェアのコア テキスト (メッセージ ボックスなど) はコードに残ります。

問題があれば、私は wxWidgets を使用して C++ で作業しています。

4

5 に答える 5

5

コードの異なるバージョン間で変更される可能性のあるすべてのテキストは、個別のプロパティ ファイルに保存する必要があると思います。メッセージ ID をプロパティ ファイルの適切な文字列にマップするメカニズムを構築できます。たとえば、ID 15 を英語とスペイン語のプロパティ ファイルでそれぞれ "search" または "busca" にマップします。したがって、プロパティ ファイルは、id-message ペアを含む XML または CSV の場合があります。プログラムを実行するときは、プロパティ ファイルをパラメータとして指定します。起動すると、最初にプロパティ文字列がマップに読み込まれ、次に文字列 "search" の代わりに property[15] が使用されます。もちろん、数値 ID の代わりにテキスト ラベルを使用することもできます。また、おそらく CSS を使用して、プロパティ ファイルからドキュメントを自動的に生成することも検討します。これにより、メッセージの編集と翻訳が非常に簡単になります。

于 2008-11-04T12:11:08.093 に答える
1

表示するテキストが大量にある場合は、通常、アプリケーションの外部で XML に保存し、必要に応じて読み取ります。これは、ドキュメントにも適していると思います。そこからドキュメントを作成するための別のスタイルシートを用意するだけです。アプリケーションのローカライズは、代替翻訳を個別に維持することになります。XML ファイルの個別のノードとして内部的に行うことも、言語ごとに異なる XML ファイルを維持することによって組織的に行うこともできます。

このアプローチではプログラムの起動に時間がかかりますが、最終的には顧客が勝つと思います。理由は次のとおりです。

  1. プログラムのテキストがよりきれいになります (そして維持しやすくなります)
  2. テキストを変更するためにコードを変更する必要はありません
  3. より多くの翻訳を簡単にサポートできるため、より多くの人が製品を利用できるようになります。
于 2008-11-04T12:19:46.063 に答える
1

他の回答は重要な点に当てはまるので、これを指摘します。

次のように、単純な 1 対 1 のペアを実行している場合:

#textId  "the actual text"

その場合、XML はやり過ぎです。解析が遅くなり、ディスク上で大きくなります。CSV や非常に単純なカスタム形式のようなものがおそらく最適でしょう。

于 2008-11-04T12:27:54.580 に答える
0

さまざまな言語を使用した個人的な経験から、各国用の特別なテキストファイルが最適なソリューションであることがわかりました。異なる言語では同じ概念の長さの違いに注意する必要があります。ソフトウェアをインストールする前に、テキストファイルを印刷して翻訳者に渡すこともできます。各テキストまたはテキストの一部にはキーとして数字があり、必要に応じて使用したり、一緒に移動したりできます。1 つのサブルーチンのみを使用してテキストを表示または印刷する場合は、テキストに変数データを挿入するための特別なフィールドを提供することもできます。それが必要とされています。私自身、世界中の 7 つの異なる言語で同じソフトウェアをこの方法でインストールしました。

于 2008-11-04T13:20:06.303 に答える
0

単純なタブ区切りのテキスト ファイルを使用するだけです。Excelに読み込んで、非常に簡単に編集できます。iso-8859-1、utf-8、utf-16 などの任意の形式にすることもできます。最初の列は ID で、その後の各列は言語です。

次に、text.h ファイルに列挙型のリストを生成するプリプロセッサを介してテキスト ファイルを実行します。テキストのバイナリ ファイルまたは cpp ファイルを生成し、それをバイナリに直接含めることができます。この時点で、プログラムで必要なものに合わせてエンコーディングを変更することもできます。

利点は次のとおりです。

文字列が欠落している場合、コンパイル エラーが発生します。

新しい文字列を追加するとき、すべての言語で追加し忘れる心配はありません。

欠点は次のとおりです。

テキスト ファイルを編集したら、再コンパイルする必要があります。

ほとんどの差分ツールは行ごとにしか機能しないため、多くのユーザーが行った変更をマージするのはより困難です。

于 2008-11-04T22:25:00.837 に答える