2

我有一个本地化的 WinForms 应用程序。为了避免翻译过程中的大量迭代,我为我们的翻译人员提供了软件,允许他们直接编辑 .resx 文件。

这对于不绑定到 UI 组件(窗体/控件)的资源文件非常有效,但对于窗体和控件,资源似乎没有得到更新。我的意思是,在设计时所有资源字符串都是正确的(文本/工具提示等)并且我可以看到正确的翻译 - 当我运行应用程序(调试或任何其他版本)时,翻译不是更新了,为什么?

谢谢你的时间。


编辑1。情节进一步变厚。当我更改它们的组件(按钮文本、工具提示或任何由底层资源文件管理的东西)时,有两个按钮根本没有更新。假设我将按钮文本从“锁定工作簿”更改为“锁定工作簿 GG”,然后新文本显示在设计器和 .resx 文件中(都在 .resx 设计器和后面的代码中)但是当我运行代码时(在调试或发布模式下)按钮文本未更新!?

如果我更新上面更新的按钮旁边的按钮,这会改变正在运行的应用程序中的文本吗?这是烤我的面条,因为我看不到旧文本的存储位置,为什么对于按钮子集,它们的组件文本没有更新!?

任何想法都受到热烈欢迎!


编辑2。我试图删除 .suo 并清理并重新编译。我还从解决方案中删除了麻烦的形式并重新添加了它。

为了让您可以看到这种奇怪的行为,这里有一个有问题的按钮(“锁定工作簿 GG”)和一个正常的按钮(“设置为默认工作簿 GG”)。

设计时间

现在在运行时我看到

运行

4

4 回答 4

1

也许您的构建设置有误?
这就是我的 dll 所拥有的。

在此处输入图像描述

于 2013-10-28T10:28:14.617 回答
1

我为我们的翻译人员提供了软件,允许他们直接编辑 .resx 文件

这当然不是一个好主意。任何专业的翻译人员都知道如何处理 .NET resx 文件。即使他们没有任何翻译人员传统上使用的工具,如 SDL Passolo,他们仍然会回退到SDK 中包含的标准Winres.exe 实用程序。

无论您写什么,都可能有错误。很难从这个错误可能是什么问题中进行逆向工程。除此之外,Winforms 表单的 .resx 文件与您从资源文件项目模板或资源设计器获得的文件完全不同。有许多资源命名技巧可以避免表单属性与其控件属性之间的歧义。名字弄错了,它就不能正常工作。

不要自己编写,至少让他们在必要时使用 Winres.exe。这是免费的。

于 2013-11-01T12:56:42.090 回答
1

按钮的绑定是在相关表单的Designer File中进行的,你检查过是否有问题吗?尝试删除设置资源的代码并通过设计器重新添加。

于 2013-11-01T13:00:37.620 回答
0

这可能与 CopyLocal 属性有关。请检查这些资源文件是否为 TRUE。如果不是,请将它们设置为 true,否则,在成功编译后,它们不会被复制到输出目录。

于 2013-11-01T12:57:02.603 回答