Windows窗体本地化使用*.Common.resx和Common.resx

本文关键字:Common resx 窗体 本地化 Windows | 更新日期: 2023-09-27 18:15:51

假设有一堆表单:A.cs B.cs C.cs…

每个表单都是本地化的- A.resx, A.NL-nl。resx等。

这些表单包含一些特定的标签和一些在所有表单中常用的标签。特定的字符串会到A.resx (a.n l -nl。resx)普通的字符串到common。resx (Common.NL-nl.resx)

是否有办法强制表单初始化时使用A.resx和Common中的资源字符串?所有普通字符串都去了哪里?当然,我可以在一些OnLoad方法中为我的表单布局项设置标题,但这样内置的本地化功能就会丢失。

我想这样的功能的原因,因为有很多常用的字符串在不同的形式,它会更容易管理/翻译这些*。resx文件。

我已经读了一些关于c#本地化的书,但可能我错过了一些东西

Windows窗体本地化使用*.Common.resx和Common.resx

根据我的经验,我可以说:

  1. 你最好为所有的表单创建一个本地化的resx文件。
  2. 手动分配所有可本地化字符串(我在构造函数中这样做)。
  3. 将每个表单的每个字符串存储在不同的可本地化属性中,如Form1_OkButtonText, Form2_OkButtonText。

最后一个真的很重要,当你把你的应用翻译成不同的语言,因为翻译可能真的依赖于上下文。在一个表单上,默认按钮可能被命名为OK,在另一个表单上,它应该被命名为Accept。虽然在英语中这两个按钮可能被命名为Ok,但在其他一些语言中,这听起来很尴尬,并且需要不同的名称。如果对所有按钮使用相同的资源字符串,这是有问题的。

为了减轻多次翻译相同字符串的问题,您应该使用一些翻译软件,它保留字符串字典,并为您提供已经翻译的字符串。

资源具有完全限定的名称。也就是说他们只有一个来源。如果你想使用Common的文本。Resx在表单中,您必须为此编写代码。简单的代码,但仍然是代码。