Make loading satellite assemblies signed with no key or a different key optional
At present the CLR only loads satellite assemblies if they are signed with the same key as the fallback assembly to which they refer. This means that the only people that can add new cultures to an existing assembly are the original authors. This includes the .NET Framework itself, ASP.NET MVC, Silverlight and every signed assembly released by Microsoft (or indeed anyone else).
The .NET Framework 4 is currently available in 23 languages (plus English). ASP.NET MVC 3 is currently available in 9 languages. If the language you want isn't on this list then there is nothing you can do to add support for your language. As an example Welsh is not on either of these lists.
I suggest that the way the CLR loads satellite assemblies is changed. Authors of assemblies could add an attribute to their assembly indicating that they accept relaxed rules on loading satellite assemblies. Hereafter the CLR would load any satellite assembly that matches the parent except for the key with which it is signed.
The consequence is that it would allow the author of the assembly to grant other .NET developers the right to add new culture support to existing assemblies. For example I could create my own Welsh resources for the .NET Framework and/or ASP.NET MVC. Furthermore it would allow my company the option to allow other developers to add additional language support to our products without returning to the development team to sign their satellite assemblies. This makes the post-build localization model much more realistic.
One caveat that I suggest is that the CLR would only load the satellite assembly if it contains resources only (i.e. no executable code).