Extend C# file based resource manager
Asked Answered
S

1

11

I want to store my resources in a different file format than NET's .resources (in particular, .po), so I wrote a custom resource set with a custom resource reader to retrieve them. I created a ResourceManager using the CreateFileBasedResourceManager static method which creates a new instance of the manager that retrieves resource sets from files in a specific dir, using the specified resource set (the custom one I wrote in my case), using Name.culture.resources filenames.

However, I would like to change the filename convention. I noticed there is an overridable GetResourceFileName method for precisely that purpose. But using reflector I noticed that the constructor used by CreateFileBasedResourceManager is private, and it is impossible to set the "use files instead of assemblies" flag otherwise.

Is there any way to go around this, without needing to reimplement the whole InternalGetResourceSet method?

Thanks a lot!

Suzettesuzi answered 4/11, 2009 at 14:43 Comment(2)
Did you ever get this sorted? You could use reflection within the app to get past the "private flag" problemInnkeeper
I used the reflector to simply copy the resource manager's implementation and modify whatever I needed. Not very elegant, but it worked.Suzettesuzi
M
1

Mono has good little utility that helps with this, its called Msgfmt, which can be used to create .resources files out of .po files directory.

Msgfmt.exe -iMessages.es.po -oMessages.es.resources

I came across an interesting article @ http://weblogs.manas.com.ar/spalladino/2009/10/01/using-gnu-gettext-for-i18n-in-c-and-asp-net/ which helped me and it might well help you too..

Its a different approach but it worked for me!

Mai answered 8/2, 2011 at 22:55 Comment(2)
Thanks for the link to the article... but the author is actually myself :PSuzettesuzi
Nice article... That's one to remember... check the author on the article before posting the link!Mai

© 2022 - 2024 — McMap. All rights reserved.