2012-05-04 13 views
1

私はこれについて多くの記事と質問を読んでいますが、まだ私は快適ではありません。私は、MEF技術に基づいたプラグインベースのGUIデスクトップアプリケーションを開発する予定です。プラグインサポート(MEF)を使用してC#多言語アプリケーションを作成

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

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

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

+0

私はあなたの質問が何であるかわかりません。 MEFでサードパーティのローカリゼーションプラグインを使用していると、問題を拡大できますか?どのプラグインを使用していますか? – ColinE

+0

申し訳ありませんが、私は質問を編集しました。 – noway

答えて

1

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

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

個人的には、私はあなたのローカリゼーションのためのリソースファイルのルートに行きます。これは、主要な依存なしに誰もが働くことを可能にする最も簡単な方法を提供します。しかし、プラグインがローカライゼーションテキストのために中央アプリケーションを呼び出す方法を見つけ出すことができれば、中央データベースがより良い選択肢になります。

はここにもあなたを助けるかもしれないカップルのリンクです:

Is there a best-practice approach for internationalization of an application?

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

関連する問題