【问题标题】:Can C++/CLI .NET use resource .resx files for localization?C++/CLI .NET 可以使用资源 .resx 文件进行本地化吗?
【发布时间】:2012-07-09 15:37:15
【问题描述】:

我正在尝试为多种语言本地化托管 C++ .NET DLL。这些表单很简单,因为它们的操作方式与其他语言一样,并且可以创建多个 .resx 文件。

除了以传统 C++ 方式使用 .RC 字符串表外,我找不到任何在托管 C++ 中本地化嵌入字符串的示例。有什么方法可以使用 .resx 资源文件来方便与 Zeta 等资源编辑器一起使用?

【问题讨论】:

    标签: .net localization c++-cli


    【解决方案1】:

    在托管 C++ 中创建一个单独的资源文件,其中包含应用程序的所有错误消息。为此,请在解决方案资源管理器中右键单击您的托管 C++ 项目,然后添加/新建程序集资源文件 (.resx) 类型的项目。例如,将其命名为 MyMessages.resx。

    在此处添加您的字符串,例如名称为“错误”的消息。

    在您的代码中,您可以按如下方式检索字符串,假设您的根命名空间名称为“MyApp”。

    Resources::ResourceManager^ rm = gcnew Resources::ResourceManager(L"MyApp.MyMessages", this->GetType()->Assembly);
    
    MessageBox::Show(rm->GetString(L"Error"));
    

    您可以稍后将错误消息本地化为法语,例如,通过创建另一个名为 MyMessages.fr.resx 的程序集资源文件。

    【讨论】:

      【解决方案2】:

      您实际上可以使用 *.resx 来本地化您的应用程序:

      .NET Localization, Part 1: Resource Managers

      .NET Localization, Part 2: Creating Satellite Assemblies

      【讨论】:

      • 这是正确的,但没有专门针对托管 C++。
      • @Mike 这没什么区别。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多