资源文件和附属程序集

时间:2009-01-19 21:31:14

标签: c# resources satellite-assembly

由于缺乏更好的词,我是本地化和资源文件的新手。我正在尝试本地化我正在处理的应用程序,我想使用资源文件和附属程序集来完成它,但我无法弄清楚如何正确地执行它。以下是我到目前为止的情况:

在我的项目目录中:我创建了文件LanguageText.resx和LanguageText.nl.resx

在我的project / bin目录中:我创建了文件夹“nl”

在我的project / bin / nl目录中:我使用ResGen.exe从LanguageText.nl.resx文件创建LanguageText.nl.resources文件,然后使用AL.exe创建project.resources.dll文件。该.dll文件位于bin / nl文件夹中。它组装好了,现在我的项目/ bin / debug文件夹中也有nl / project.resources.dll。

我的问题是我显然没有在我的程序中嵌入中性语言文件或资源,但我找不到有关如何执行此操作的任何信息。我能找到的关于以这种方式嵌入资源的唯一信息与卫星装配有关。如何嵌入中性语言资源?

感谢任何帮助或指示。

谢谢, 麦克

2 个答案:

答案 0 :(得分:2)

您可以在AssemblyInfo的帮助下完成此操作。转到AssemblyInfo.cs并添加属性

[assembly: NeutralResourcesLanguageAttribute("en-US",UltimateResourceFallbackLocation.Satellite)]

确保在顶部添加使用语句using System.Resources;。上面一行表示程序集的中性资源语言是'en-US',这是一个Satellite程序集。

答案 1 :(得分:0)

备用资源应放在bin文件夹中的LanguageText.dll中。 或者,您可以将System.Resources.NeutralResourcesLanguageAttribute属性添加到LanguageText.dll程序集, 并指定在文化不变时使用的默认文化,或者指定文化不匹配。

生成nl程序集,将其命名为LanguageText.resources.dll,放在bin / nl文件夹中。

通过在线程上设置区域性并使用ResourceManager检索资源来验证这是否有效。