【问题标题】:Visual Studio resource editor: there can only be one string table?Visual Studio 资源编辑器:只能有一个字符串表?
【发布时间】:2010-02-01 22:32:36
【问题描述】:

我在包含英语字符串的 .rc 文件中创建了一个字符串表 - 现在我需要为不同的语言添加另一个字符串表。

如果我尝试这样做:
添加资源... -> 字符串表 -> 新建

我收到错误:“这种类型的实例不能超过一个”。

我知道我可以在记事本中打开 .rc 文件并在其中添加语言,但我想如何从 Visual Studio 中执行此操作?

【问题讨论】:

    标签: c++ visual-studio localization resources


    【解决方案1】:

    是的,它隐藏得很好。在解决方案资源管理器中双击 .rc 文件以打开资源视图窗口。展开字符串表节点,右键单击“字符串表”并选择“插入副本”。这会将您带到语言选择组合。

    【讨论】:

      【解决方案2】:

      正如 nobugz 所说,每种语言只能有一个字符串表。

      但回到大局:将多种语言存储在一个可执行文件/dll 中被认为是一种不好的做法。 “当前最佳做法”是拥有仅资源的 dll,每种语言一个。然后您可以完全控制加载哪种语言(否则您让 Windows 为您做决定)。

      还可以查看 MUI API (http://msdn.microsoft.com/en-us/goglobal/bb978454.aspx,尤其是左侧的“入门”部分)

      【讨论】:

      • 谈到当前的最佳实践:我是否还必须用每种语言再次定义每个对话框?我不能在对话框中引用字符串表资源吗?
      • “我还需要用每种语言重新定义每个对话框吗?”:是的。您可以从字符串表中获取字符串并在运行时填充对话框。但是(本机)Windows 对话框不会自动调整大小。所以你最终可能会得到截断、丑陋的对话框。
      【解决方案3】:

      最后,只能有一个。 (对不起,我无法抗拒)。

      如果表格与当前表格的语言不同,它会让您添加表格, 尝试将当前字符串表上的语言更改为其他“巴斯克语”,然后添加新表,然后将其更改回来。

      【讨论】:

      • 如果您将副本的语言更改回来,它将与原始语言合并。
      【解决方案4】:

      创建一个新的资源文件并添加具有相同语言的新字符串表。 我希望它会起作用...我试过了..!!!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-03-01
        • 1970-01-01
        • 2011-03-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多