1

私はこれについてSOに関する多くの記事や質問をここで読んだことがありますが、それでも私は快適ではありません。MEF技術に基づいたプラグインベースのGUIデスクトップアプリケーションを開発することを計画しています。

アプリケーションのローカリゼーションサポートを提供したいと思います。問題は、ホストアプリケーションをローカライズしても、基本的にDLLファイルであり、いつでもインストールできるサードパーティのプラグインもローカライズする必要があることです。

dllにローカライズ可能なすべてのコントロールを含めることは私にとってオプションではないと思います。国際テキストをデータベースに保存し、ホストアプリケーションのDBからテキストを取得する呼び出し元関数を使用して、プラグインにこの呼び出し元関数を呼び出すように依頼できます。または、開発者にアプリケーションにさまざまなリソースファイルを含めるように依頼することもできますが、この方法では、すでに翻訳されたテキストの恩恵を受けることはできません。

この場合に多言語インターフェースを提供するためのベストプラクティスは何ですか?

4

1 に答える 1

1

適用されるベストプラクティスが1つあるかどうかはわかりませんが、オプションについて説明します。すべてに異なる翻訳を使用して中央データベースを開発する場合、すべてのツールが翻訳の恩恵を受けることができます。ただし、欠点は、すべてのプラグインがデータベースについても(何らかの方法で)知る必要があることです。これにより、サードパーティのプラグインを使用するときに避けたい、より直接的な結合が追加されます。

リソースファイルを使用すると、柔軟性は向上しますが、同じテキストを再利用する機能が失われます(DRYに違反しているように感じます)。

個人的には、ローカリゼーションのためにリソースファイルのルートをたどります。これは、大きな依存関係なしに全員を機能させる最も簡単な方法を提供します。ただし、プラグインにローカリゼーションテキストの中央アプリケーションを呼び出させる方法を理解できる場合は、中央データベースの方が適しています(これも私の考えでは)。

これもあなたを助けるかもしれないいくつかのリンクです:

アプリケーションの国際化のためのベストプラクティスのアプローチはありますか?

http://www.businessandprocess.com/2010/11/why-application-localization-should-start-in-the-design-stage/

http://expatsoftware.com/articles/2010/03/why-internationalization-is-hopelessly.html

于 2012-05-04T11:55:29.893 に答える