none
C++CLIでのマルチランゲージ RRS feed

  • 質問

  • お世話になります。

    C++・CLIでのマルチランゲージの対応を行いたいのですが、
    Formリソースは、プロパティから設定でき、サテライトアセンブリが生成することが確認できました。

    問題は、リソース(ストリングテーブル)なのですが、どのような方法があるでしょうか。

    なにか参考文献がありますでしょうか。


    2015年7月14日 7:36

回答

  • ここで書かれている String Table とは、ネイティブリソースの rc ファイルに書かれているものを指していますか?
    そうだとすると、ネイティブ C++ な手法を考えていただく必要があります。

    逆に、.NET のサテライトアセンブリ方式に乗っかりたい場合は、rc ファイルを使うのではなく、.NET の アセンブリ リソースファイル(*.resx)を追加して対応してください。
    「ファイル名.resx」がニュートラルカルチャ、「ファイル名.en-US.resx」が en-US カルチャのファイルとして扱われますので手動で必要な言語の数だけ追加してください。
    ただ、C# などと違って、Designer.cs のようなものは自動生成されないので、自分で ResourceManager を使って取り出す必要があるはずです。
    http://stackoverflow.com/questions/11398407/can-c-cli-net-use-resource-resx-files-for-localization


    追記
    ただ、ここまでするぐらいなら、リソースを含む UI 系は C# で作ると割り切った方が楽だと思っています。
    C++/CLI での Windows Forms はもう非推奨であることと、C# の方が圧倒的に楽であるため。
    2015年7月14日 12:54
    モデレータ
  • ただ、C# などと違って、Designer.cs のようなものは自動生成されないので、自分で ResourceManager を使って取り出す必要があるはずです。
    参考までに、.NETリソースについてVisual Studioによるサポートが得られないのであればいっそテキストファイル内のリソースという手もあります。取り出し方法はResourceManagerで変わりありません。
    • 回答の候補に設定 星 睦美 2015年7月17日 2:11
    • 回答としてマーク 星 睦美 2015年7月24日 1:35
    2015年7月14日 13:35

すべての返信

  • ここで書かれている String Table とは、ネイティブリソースの rc ファイルに書かれているものを指していますか?
    そうだとすると、ネイティブ C++ な手法を考えていただく必要があります。

    逆に、.NET のサテライトアセンブリ方式に乗っかりたい場合は、rc ファイルを使うのではなく、.NET の アセンブリ リソースファイル(*.resx)を追加して対応してください。
    「ファイル名.resx」がニュートラルカルチャ、「ファイル名.en-US.resx」が en-US カルチャのファイルとして扱われますので手動で必要な言語の数だけ追加してください。
    ただ、C# などと違って、Designer.cs のようなものは自動生成されないので、自分で ResourceManager を使って取り出す必要があるはずです。
    http://stackoverflow.com/questions/11398407/can-c-cli-net-use-resource-resx-files-for-localization


    追記
    ただ、ここまでするぐらいなら、リソースを含む UI 系は C# で作ると割り切った方が楽だと思っています。
    C++/CLI での Windows Forms はもう非推奨であることと、C# の方が圧倒的に楽であるため。
    2015年7月14日 12:54
    モデレータ
  • ただ、C# などと違って、Designer.cs のようなものは自動生成されないので、自分で ResourceManager を使って取り出す必要があるはずです。
    参考までに、.NETリソースについてVisual Studioによるサポートが得られないのであればいっそテキストファイル内のリソースという手もあります。取り出し方法はResourceManagerで変わりありません。
    • 回答の候補に設定 星 睦美 2015年7月17日 2:11
    • 回答としてマーク 星 睦美 2015年7月24日 1:35
    2015年7月14日 13:35