【问题标题】:localize a picturebox image from a resource from a satellite library从卫星库的资源中本地化图片框图像
【发布时间】:2014-03-04 22:47:14
【问题描述】:
我正在尝试编写一个小程序,该程序使用依赖于语言和文化的本地化资源。您可以查看视频说明here。
我的两个问题是
- 我如何(从 IDE/Visual Studio)访问附属 DLL 中的资源
- 具体来说,如何访问图片框控件的图像。
这是两个项目:
一个是库,一个是 windows 窗体项目。我想引用 Form1 中的 resx 文件。如果这不是正确的使用方法,请解释我应该如何创建我的附属 DLL。
这是我希望表格在美国文化中的样子:
这就是我希望它在澳大利亚文化中的样子:
【问题讨论】:
标签:
c#
localization
resources
picturebox
resx
【解决方案1】:
- 请查看此页面:
http://msdn.microsoft.com/en-us/library/y99d1cd3(v=vs.80).aspx
它是关于如何本地化一个字符串,并且您会从中知道我们为不同的语言版本使用不同的资源文件。
以下是该页面的描述:
“一般来说,您应该将基于表单的资源用于 Windows 窗体应用程序中特定于某个表单的所有资源。您应该将项目资源用于所有非基于表单的用户界面字符串和图像,例如错误消息。”李>
- 这是关于图像的方法和代码:
Localization of image resources in Windows Forms
和一步一步的解决方案:
Proper localization of a WinForms application
我刚刚完成了一个有类似问题的 C# .Net 3.5 项目。我们正在为具有 8 种语言(包括英语)的现有多语言应用程序编写 WinForms 插件。
这就是我们的做法:
以默认语言英语创建我们所有的表单和 UI。
将我们所有的内部字符串放在一个资源文件中(不直接绑定到自定义错误消息和对话框标题等表单的东西)
一旦我们完成了大部分工作和测试,我们就对其进行了本地化。
每个表单已经有一个 .resx 文件,但这是空的。我们将属性“Localizable”设置为 true,.resx 文件填充了按钮大小和字符串等内容。
对于其他每种语言,我们更改了表单上的“语言”属性。我们选择了每种语言的基本版本,例如:“Spanish”而不是“Spanish (Chile)”等,因此我认为它适用于每种“Spanish”方言。
然后我们检查每个控件,翻译它的文本并调整大小,如果需要的话。这为每种语言和表单组合创建了一个 .resx。
然后,对于 8 种语言,每种形式都有 8 个 .resx ,通用字符串有 8 个 .resx 。编译后,输出文件夹包含我们正在创建的 .dll,然后是每种语言的子文件夹,其中包含 .resources.dll。