回答にあたっての免責事項(オフトピック)
以下の回答はリソースファイルを推奨するものであるため、
外部翻訳ファイルを作成するという点に対しての解決策ではありません。
ASP.NETにおける多言語化も、言及できていません。
あらかじめご了承願います。
事前対応
設計段階から織り込んでおく必要があります。
リソース化
WinForms等の場合は、Localizableプロパティをtrueにする必要があります。(default:false)
リテラル(ソースコード上に埋め込まれている文字列)で、画面表示に関わる部分については、リソースを使用するように変更する必要があります。
注意点 - 複数形の扱い
数量を表すものについては積極的にFormatを使用するべきです。
英語等において単数・複数の表現について「{0} item(s)」等の表現を用いることができるように合意しておくことを推奨いたします。(うまくできる方法はある?)
注意点 - サーバー
サーバーコントラクト等によるサーバー処理がある場合、クライアントのロケールがサーバーへ連携されないことがあります。
IISの設定を含めて確認する必要があります。
注意点 - 日付
ロケールを反映することにより、サーバー上でDateTimeのタイムゾーンも反映されることがありますので、よく注意しましょう。
ご存じでしょうが、海外ではYY/MM/DD
ではありません。
MM/DD/YY
だったりするので、日付の入出力には注意してください。
数字の3桁区切りがドットだったり、小数点の表記がカンマだったりします。
注意点 - RTL言語
左右が反転します。
注意点 - 3rdパーティのライブラリ
ActiveReports等、デザイナで対応しているものが多いですが、
物によっては、全く対応していないものがあります。
注意点 - デザイナ
言語を選択したうえで、コントロールの配置を変更した場合、
規定の言語へは配置情報が反映されません。(WinFormsの場合)
※特定の言語でデザインが崩れる等、簡単に発生します
デザイナ上での言語選択での翻訳はあまりお勧めできません。
※全言語でくまなく動作確認をするのであるのならば、何も言うことはありません
利用中のロケールを変更せずにデバッグしたい
スレッド上にCurrentUICultureおよびCurrentCultureプロパティが存在するので、それらの値を変更することで、デバッグ用にロケールを切り替えることが可能です。
ただし、新たにスレッドを起こしている場合や、Delegateによる実行等、コンテキストスイッチによりそれらの情報が失われて、ユーザー環境でのロケールとなってしまうことがあるのでご注意ください。
事例および解決案(ResXManager)
ツールを用いることで以下の問題点に対応することができています。
https://marketplace.visualstudio.com/items?itemName=TomEnglert.ResXManager
スタンドアロン版は以下からダウンロード可能です。
https://github.com/tom-englert/ResXResourceManager/releases
翻訳に回す際に一覧でほしい
Excelへ出力することが可能です。
取り込む際にも、Excelをそのままインポートすることができます。
ツールとしては、変更したらそのままファイルに反映されるので、ソース管理をしたうえで、変更することを推奨いたします。
Excelのみでは文脈がわからないことがあるので、別途資料を作る必要が出てくるかもしれません。(見積・作業範囲に注意してください)
スタンドアロン版の注意
言語を追加しても、プロジェクトへ対象の言語が追加されません。
言語をプロジェクトへ追加する場合は、VisualStudioのプラグインをインストールする必要があります。
そのほか機能
ライセンスとして大丈夫なのかはわかりませんが、機械翻訳を使うことできます。(Microsoft Translator)
強力な連携ツール
有料ですが、翻訳者と協力しやすいプラットフォームです。
http://transifex.com
リソースファイルをそのままアップロード・ダウンロードできます。
リソースファイルの追加等はResXManagerと組み合わせて行うと作業しやすくなるかもしれません。