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