Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C表单应用程序本地化_C#_Localization - Fatal编程技术网

C# C表单应用程序本地化

C# C表单应用程序本地化,c#,localization,C#,Localization,我已经修改了我的问题后的评论,其中提到的文章 我有一个c Win forms应用程序,其中包含一些用于用户交互的表单和对话框/消息框。 我想把它本地化为一组语言 大多数表单是通过表单设计器创建的,文本/字符串是通过属性设置的 消息框和其他运行时消息的字符串来自代码。 我在这里读过这篇文章 它指出了两种方法 首先是让VisualStudio为您创建资源文件-这是为forms designer生成的代码完成的 第二种方法是手动添加资源文件,并使用GetStringstrMessage方法通过代码访

我已经修改了我的问题后的评论,其中提到的文章

我有一个c Win forms应用程序,其中包含一些用于用户交互的表单和对话框/消息框。 我想把它本地化为一组语言

大多数表单是通过表单设计器创建的,文本/字符串是通过属性设置的 消息框和其他运行时消息的字符串来自代码。 我在这里读过这篇文章

它指出了两种方法

首先是让VisualStudio为您创建资源文件-这是为forms designer生成的代码完成的 第二种方法是手动添加资源文件,并使用GetStringstrMessage方法通过代码访问它们 我脑子里的问题是,对于设计人员生成的代码,我必须使用第一种方法,在这种方法中,VS将自己创建资源文件。 要本地化我的运行时消息和mssage框,我必须使用第二种方法,这意味着我必须手动添加资源文件

我将为每种语言提供两组资源文件。我不能只使用一种方法,并将两种形式的字符串都本地化到一个地方吗


谢谢,

没有什么能阻止您同时使用这两种技术。通过步骤1创建所有语言资源文件,然后将您自己的字符串添加到这些文件中。

不幸的是,您不能轻松地既吃蛋糕又吃蛋糕。这就是微软公司设计东西的方式。您无法将消息字符串添加到VS forms designer生成的.resx文件的代码隐藏中,因为在您对这些.resx文件进行更改时,VS将重新生成这些文件,并覆盖您的消息字符串。如果您试图使用VS中的.resx编辑器将自己的资源添加到这些文件中,VS甚至会对此发出警告,反之亦然,也就是说,您无法将.resx资源后面的代码添加到手动创建的.resx文件中,而不会遇到巨大的困难。不过情况并没有那么糟糕。多年来一直是这样做的,而且效果很好。虽然我个人更喜欢所有资源的中央存储库,但每个系统都有其优缺点。顺便说一句,您应该为您的消息字符串使用强类型资源,并在.resx文件中使用您手动添加的任何其他资源。不要使用GetString IOW或任何其他可能找到的函数。强类型资源要容易得多。谷歌搜索详细信息,在不费力地学习了如何使用它们之后,还可以搜索Dmytro Kryvko提供的强类型资源生成器,这是一个非常有用的VS工具,可以更好地改善情况。

-1/close:使用basic立即给出正确的答案。请阅读,然后带着具体问题回来。@AlexeiLevenkov我以前读过那篇文章。我现在更新了我的问题,使之更加具体,感谢我将研究卫星组件。以下是指向上述强类型资源生成器的链接: