我想以与 NET 的 .resources(特别是 .po)不同的文件格式存储我的资源,所以我编写了一个自定义资源集和一个自定义资源读取器来检索它们。我使用 CreateFileBasedResourceManager 静态方法创建了一个 ResourceManager,它创建了一个管理器的新实例,该实例使用指定的资源集(我在我的案例中编写的自定义资源集),使用 Name.culture.resources 从特定目录中的文件中检索资源集文件名。
但是,我想更改文件名约定。我注意到有一个可覆盖的 GetResourceFileName 方法正是为了这个目的。但是使用反射器我注意到 CreateFileBasedResourceManager 使用的构造函数是私有(private)的,否则不可能设置“使用文件而不是程序集”标志。
有没有办法解决这个问题,而不需要重新实现整个 InternalGetResourceSet 方法?
非常感谢!
最佳答案
Mono 有一个很好的小实用程序可以帮助解决这个问题,它称为 Msgfmt,可用于从 .po 文件目录创建 .resources 文件。
Msgfmt.exe -iMessages.es.po -oMessages.es.resources
我看到一篇有趣的文章@ http://weblogs.manas.com.ar/spalladino/2009/10/01/using-gnu-gettext-for-i18n-in-c-and-asp-net/这对我有帮助,也可能对你有帮助..
这是一种不同的方法,但对我有用!
关于c# - 扩展基于 C# 文件的资源管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1674192/