The registry and localization
The other day, the loc team here in Redmond was wondering if the registry was something that can get localized, and if yes, to what extent? Can we localize key names, types values?
So we knew already that localizing key names shoult not be done, not because it's not doable but because it complicates the code without a real benefit (how do you go about retrieving a localized key name, without knowing that value, if it's not already in your resources? How do your customers/partners go about it?). But what about values? That was still a valid question no?
So a couple of facts first:
- Registry keys support Unicode, whether it's in terms of input, display, or copy/paste (back and forth)
Same for values
So it's feasible for values also, and can even work in multilingual environments if the creation and retrieval of the key has some LCID (or language-culture, or other) logic built-in (e.g. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\TEST\1033\ for en-USA).
We asked the International PMs about this and their opinion was that localizing registry values wasn't indeed a good idea, with the recommendation that "What people could do is use a resource id as the registry value that maps to a resource in a satellite .dll. That way there’s nothing in the registry that we actually have to localize".
So that's our recommendation: avoid placing localizable data anywhere in the registry, whether it's in the keys or in their values.
For reference, Doctor International has written about this topic as well, and the entry can be found here: http://www.microsoft.com/globaldev/DrIntl/columns/011/default.mspx//lEFB#EFB.