Storing and loading internationalized resources from other storage mechanisms

80 Views Asked by At

We have a feature request for a Windows Forms application where we want to give the sys admin the ability to redefine application strings and other internationalizable values (control widths/placement/etc.) after the application has been compiled and deployed. The main use case is for the customer to redefine some of the label strings etc to better fit their business processes, so we're not looking at completely redefining screens - more just minor tweaks to labels and button widths, etc. We have a synchronization layer already in the application, so the idea would be for the admin to do the UI tweaks from a web portal, and the settings would be stored in a database. The next time the client application syncs with the server, it would download the UI settings (using a SQL CE database or files, etc.), then apply those settings to the views (maybe after a restart). The export and import process of the actual resource keys/values is not in the scope of this question...

All the views are coded in the usual Windows Forms way, but all the views are internationalized (using the Localizable=True flag), and we currently use the .resx mechansims to internationalize the app to 4 or 5 languages.

My question is - is it possible using the .NET ResourceManager to load resources from other sources than the embedded resource files in the application assemblies? For example, when the application requests a resource, look it up from a SQL CE database rather than the embedded resource files for the culture-specific assembly?

I know this feature and implementation might have a good number of gotchas, but we're not worried about those at this point. We're also not worried about making this super-user friendly at this point - I just want to know if it's possible to easily swap out the backing storage mechanism for resources.

I'm also interested in learning about completely different implementation options for this if anyone has any.

0

There are 0 best solutions below