This project has moved and is read-only. For the latest updates, please go here.

Messages localization

Aug 13, 2014 at 11:22 AM
Hi,
Anyone know how provide messages localizations of
ExceptionMessages.resx in other languages, without download the code and add my resx file ?

Thanks,
Ivano
Aug 13, 2014 at 12:00 PM
I must admit I never tried this, but the way the .NET localization system works is by having satellite assemblies for each language. So this means you create a satellite assembly called "SimpleInjector.resources.fr.dll" containing the French translations and this assembly only contains the ExceptionMessages.resx. But I'm unsure whether this is enough. For instance, it might be needed to sign the satellite assemblies with the same private key.
Aug 13, 2014 at 2:05 PM
I made some tests:

1) Download the code, add a satellite assembly CuttingEdge.Conditions.It with ExceptionMessages.it.resx. This produce the folder it/CuttingEdge.Conditions.resources.dll and all works fine. The new language is correctly linked and displayed.

2) Put the same resource dll on the project with the Nuget package doesn't work. I've noted that the download code is 1.0.0.0 version, while nuget is 1.2.0.11174. Tried to build the resource with assembly version 1.2.0.11174 but nothing to do. The nuget package don't link the resource.

Some ideas ?
Aug 13, 2014 at 2:41 PM
With option 1, do you build the complete CuttingEdge.Conditions.dll yourself?
Aug 13, 2014 at 2:49 PM
Yes I do.

If I reference the downloaded Condition built locally in my other project, all works fine (Condition and localization).
If I reference the nuget packages, the localization doesn't work.
Aug 13, 2014 at 2:55 PM
In that case that's probably because the Conditions.dll that you get from NuGet is signed, and .NET will probably search for a satellite assembly that is signed with the same key.

You've got two options:
  1. Keep using the local build.
  2. Add a work item to request to add your language to be added to the library.
Do note however that the project is in maintenance mode, and is now maintained by colinbo. I'm not sure whether this will be picked up quickly. You're the first to request multi-langual support. This is probably because most developers can read English and the error messages that the framework produces is targeted at developers; not end-users.
Aug 13, 2014 at 3:01 PM
I agree with you.
Thanks for the clarification.