質問: いつもお世話になっております。 .NET において、リソースファイルを用いて多言語対応が可能なところまではわかったのですが、以下の点で悩んでいます。 ### 対象のアプリケーション 以下の2つです。 * WPF によるデスクトップアプリケーション * ASP.NET Core による Web アプリケーション ### 前提・実現したいこと 私の勤めている会社では、今後海外に製品を売り出す際は英語版として販売し、英語以外への翻訳は、現地の代理店側で翻訳業者などに依頼して対応してもらうことを想定しているようです。 そのため、英語で書かれたテキストファイルなどを現地の言語に翻訳して、そのテキストファイルを差し替えるだけで対応したいのだそうです。 つまり、英語以外への対応には私の勤めている会社は関与しないという方針です。 しかし、リソースファイルを使用して多言語対応を行ったとき、ビルドを行うと dll 形式でリソースファイルが出力されます。 ということは、リソースファイルを変更した場合は、必ずビルドする必要があると認識しています。 そのため、このままだとテキストファイルを差し替えるだけでの対応は無理なように思っています。 現地で翻訳したテキストファイルをもらい、それをリソースファイルに反映し、ビルドしなおして再配布できればよいのですが、それが不可能だった場合にどうしようかと悩んでいます。 また、リソースファイルは XML 形式のため、これをそのまま渡して翻訳してもらうのも厳しいので、もっとシンプルな形式で渡すよう言われるかもしれません。 しかし、せっかくフレームワークに多言語対応の仕組みがあるので、出来ればそれを使用し、独自実装などは行いたくないと考えています。 ### 知りたいこと 上記を踏まえ、以下のことについてお教えいただければと思います。 * リソースファイルを dll 形式ではなく、テキスト形式で出力する方法はあるか? * リソースファイルから別のファイルのテキストを参照することはできるか? (例えば、リソースファイルから INI ファイルを参照するなどができれば、リソースファイルの出力は dll でも INI ファイルを翻訳すれば済むため) * .NET に限らず、こういう要望に対しては一般的にどのように多言語対応を行うのか? またはこういう要望は普通はないのか? ### 補足情報(言語/FW/ツール等のバージョンなど) * Visual Studio 2017 Professional * .NET Framework 4.6.1 (WPF) * .NET Core 2.0 (ASP.NET Core) * 言語:C# 7.0 以上、宜しくお願い致します。
回答: WPFだけですが、WPF におけるパッケージの URI.aspx)で素のXMLファイルを指定できます。 個人的には「リソースファイルを書き換えるアプリケーションを代理店に配布する」に一票入れます。