I have a website that goes out to multiple clients. Sometimes a client will insist on minor changes. For reasons beyond my control, I have to comply no matter how minor the request. Usually this isn't a problem, I would just create a client specific version of the user control or page and overwrite the default one during build time or make a configuration setting to handle it.
Now that I am localizing the site, I'm curious about the best way to go about making minor wording changes.
Lets say I have a resource file called Resources.resx
that has 300 resources in it. It has a resource called Continue
. English value is "Continue", the French value is "Continuez".
Now one client, for whatever reason, wants it to say "Next" and "Après" and the others want to keep it the same. What is the best way to accomodate a request like this? (This is just a simple example).
The only two ways I can think of is to
- Create another Resources.resx specific to the client, and replace the .dll during build time. Since I'd be completely replacing the dll, the new resource file would have to contain all 300 strings. The obvious problem being that I now have 2 resource files, each with 300 strings to maintain.
- Create a custom user control/page and change it to use a custom resource file. e.g. SignIn.ascx would be replaced during the build and it would pull its resources from
ClientName.resx
instead ofResources.resx
.
Are there any other things I could try? Is there any way to change it so that the application will always look in a ClientResources.resx
file for the overridden values before actually look at the specified resource file?