これが当てはまる小さなプロジェクトに取り組む必要があるため、C#で複数の言語に適したアプリケーションを作成することを検討してきました。これを行うには、基本的に2つの方法があります。
フォームのLocalizableプロパティをtrueに設定し、Languageプロパティを設定して、すべてのラベルなどを入力すると、「完了」します。これで私が目にする主な欠点は、フォームの一部ではない他のものを複数の言語に対応させる方法です(ポップアップウィンドウ、ログファイル、ウィンドウなど)。
「Lang.en-us.resx」などのリソースファイルを作成し、「Lang.nl-nl.resx」などの言語ごとに1つ作成して、文字列で埋めます。IDEは自動的にクラスを生成するようですので、コードではLang.SomeTextを使用できます。これで私が目にする最大の欠点は、すべてのフォームですべてのラベルと他のキャプションをコードで自分で設定する必要があることです(そして、データバインディングがこれらのリソースで機能していないようです)。
ただし、これを行う方法は他にもあると思います。
それで、ベストプラクティスは何ですか?小さなアプリケーション(いくつかのフォーム、データベース接続など)に最も簡単なものは何ですか?また、大きなアプリケーションに最適なものは何ですか?