首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用*.resx和Common.resx的Windows窗体本地化

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

Stack Overflow用户
提问于 2011-11-24 21:39:56
回答 2查看 2.7K关注 0票数 1

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

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

这些表单包含一些特定的标签和一些在所有表单中常用的标签。因此,特定的字符串转到A.resx (A.NL-nl.resx)和公共字符串-比如说Common.resx (Common.NL-nl.resx)

当form初始化为使用来自A.resx和Common.resx的所有公共字符串的资源字符串时,有什么方法可以强制执行吗?当然,我可以在一些OnLoad方法中为我的表单布局项设置标题,但这样做会丢失内置的本地化功能。

我之所以喜欢这样的功能,是因为有很多不同形式的常用字符串,管理/翻译这些*.resx文件要容易得多。

我读过一些关于C#本地化的文章,但我可能遗漏了一些东西。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-27 02:27:07

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

你最好为所有的表单创建一个本地化的resx文件。

  1. 手动分配所有可本地化的字符串(我在constructor).
  2. Store中为每个表单的每个字符串在不同的本地化属性,如Form1_OkButtonText,Form1_OkButtonText,Form2_OkButtonText中做了这一点)。

当你将你的应用程序翻译成不同的语言时,最后一个确实很重要,因为翻译可能真的取决于上下文。在一个表单上,默认按钮可能被命名为OK,而在另一个表单上,它应该被命名为Accept。虽然在英语中,这两个按钮都可能被命名为Ok,但在其他一些语言中,这听起来会很别扭,因此需要不同的名称。如果对所有按钮使用相同的资源字符串,这将是有问题的。

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

票数 1
EN

Stack Overflow用户

发布于 2011-11-27 02:08:12

资源有一个完全限定的名称。也就是说他们只有一个来源。如果您想在表单中使用来自Common.resx的文本,则必须为此编写代码。代码很简单,但还是要写代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8257997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档