【问题标题】:C#.NET & Translation of external componentC#.NET & 外部组件的翻译
【发布时间】:2016-04-24 18:58:17
【问题描述】:

我正在维护一个用 C# 2.0 (VS2005) 编写的程序。它有相当大的代码库,很多作者,它几乎是内部应用程序,但目前它也是我们使用它的客户之一。

应用程序是多语言的,并且可以翻译自己的表单和组件。但是,有一个组件——WeifenLuo 的 DockPanel Suite,我需要将它翻译成另一种语言(zh-CN)——其中一个中国人将资源文件翻译成他的语言,现在我正在尝试在应用程序中包含和使用,但我失败了——虽然整个应用程序都是中文的,但这个组件仍然是英文的。未翻译的资源文件可以在github上找到:https://github.com/dockpanelsuite/dockpanelsuite/blob/master/WinFormsUI/Docking/Strings.resx

如何做到这一点?我尝试了几乎所有的方法,幼稚的方法(只是resgen 并由al 编译,并尝试将其用作附属程序集-也尝试过ilmerge),然后在VS2013 Express 中打开DockPanelSuite,将resx 添加为Strings.zh-CN .resx,但没有任何效果,工具提示和其他内容仍然是英文。

也尝试使用调试器进行单步调试,但调试器在 tooltip = Strings.DockPaneCaption_ToolTipAutoHide 处中断,但它没有跨入 Strings.Designer.cs 中定义的 getter

我被卡住了,我不知道该怎么做。任何想法?非常感谢!

【问题讨论】:

  • 我并不完全理解您的问题,但我可以帮助解释一件事:“它没有进入吸气剂” - 它不会。要调试 setter 或 getter,您需要一种特殊的方式。检查这个:stackoverflow.com/questions/4408110/…
  • 问题是我无法将另一种语言资源“插入”到组件中(在单独的 DLL 中)。它仍然使用英语。

标签: c# visual-studio internationalization resources


【解决方案1】:

我能够在一个非常简单的过程中翻译演示应用程序中的标签:

  • git 克隆库
  • 复制并粘贴 Strings.resx 文件
  • 将副本重命名为 Strings.pt-BR.resx
  • 编译,完成(在我的例子中,我翻译了“关闭”标签)

但是,这个项目包含 许多 Strings.resx 文件

你都改了吗?还是你只是换了一个? (可能是错误的,就像我第一次尝试时那样)

【讨论】:

  • 您好,感谢您的回答。好点,不过,如果我没记错的话,每个“主题”都会去单独的 .dll 并且我没有使用它们。但是,当然,我尝试更新每个 resx 以查看来自哪些文件字符串,它们来自我正在使用并尝试翻译的文件(在资源和 WinFormsUI 中的每个“自动隐藏”中添加了一些短 id 字符串字符串出现在我的应用程序中)。
猜你喜欢
  • 2019-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-22
  • 2021-06-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多