6

我有一个基本语言为英语的 WinForms 应用程序。我将表格本地化为德语。德语中的某些单词比英语对应的单词要长得多,因此我需要在德语版本的表单上移动一些控件。问题是当我移动英语控件时,德语本地化不反映移动(显然)。

但是有些控件被错误地移动了,我想重新设置它们,所以它们在英文表格上的移动也会反映在德文表格上。

如何重置德语表单上单个控件的位置和大小(或所有属性),以便在英语表单上移动时,控件将在表单的两种语言版本上移动?除了挖掘本地化的 .resx 文件并删除控件的所有属性分配之外,还有其他方法吗?

4

4 回答 4

6

我是 Visual Studio 开发人员本地化产品的作者(为了全面披露)。从本地化的“.resx”文件中删除的任何属性,无论是在 Visual Studio 表单设计器中还是在“.resx”文件本身中手动删除,都会导致控件再次遵循该属性的默认语言值。然而,没有特定的功能可以处理这个问题。您需要在逐个控制的基础上自己进行操作。但是请注意,Visual Studio 有时是不稳定的,并且有各种错误,对于这个和其他问题,所以即使你使用设计器删除它们,事情也并不总是有效(上次我回顾了这种情况)。除非它现在已经修复(我对此表示怀疑),否则如果您将德语控件的“位置”属性设置回默认语言的“

于 2013-01-18T18:20:49.947 回答
2

我认为,如果您以无需更改控件的方式创建 UI,这将使您未来的开发更容易。然后你可以只翻译标签而不弄乱控制位置。

例如,将标签放在相应编辑字段的顶部,而不是左侧,使按钮足够大以处理所有文本。并考虑改写德语文本以使其尺寸更小。

于 2013-01-18T09:18:05.557 回答
0

现代本地化工具可以提供帮助。表格在工具中以可视方式呈现,允许编辑大小和位置值(如果已明确设置)。将显示自动尺寸控件,但尺寸/位置不可编辑。

在设计软件时要考虑本地化,这一点很重要。避免在运行时显着更改表单;避免硬编码和连接字符串等。

本地化工具将检查您的源代码或编译的二进制文件。它将发现要翻译的表单、字符串、菜单等。它会将这些呈现给语言学家进行翻译,然后将翻译后的源代码或二进制文件返回给您(取决于您开始使用的内容)。这些工具了解语言文件夹等的 .net 命名约定。

搜索“.net 软件本地化”以找到可以完成这项工作的有用工具。

于 2013-01-18T11:38:05.957 回答
0

正如@Larry 所说,在设计时进行更改时,并非总是更新表单的 resx 文件。它们变得损坏,有时我们需要将 Localizable 属性设置为 false 并再次设置为 true 以解决此问题。但最重要的是保持 .Designer.cs 文件始终在编辑器中打开以假设更改,因为如果关闭它并不总是更新。如果您使用的语言不是默认语言,则切勿将 Localizable 属性设置为 false,除非您希望这是新的默认语言。

于 2021-03-14T16:57:17.357 回答