Una cosa molto semplice, e non riesco a farlo funzionare. Voglio globalizzare la mia DLL quindi sto usando i file di risorse + il ResourceManager.Resourcemanager sta restituendo la stessa risorsa, anche se CultureInfo è specificato
io chiamo il ResourceManager come questo:
var p = new ResourceManager("Appname.Default", Assembly.GetExecutingAssembly());
Ottenere le corde come questo
System.Diagnostics.Debug.WriteLine(p.GetString("greeting"));
System.Diagnostics.Debug.WriteLine(p.GetString("greeting", new CultureInfo("nl")));
System.Diagnostics.Debug.WriteLine(p.GetString("greeting", new CultureInfo("nl-NL")));
System.Diagnostics.Debug.WriteLine(p.GetString("greeting", new CultureInfo("en")));
e restituisce 4 volte la stessa stringa. I miei file sono chiamati
Default.resx
Default.en.resx
Default.nl.resx
Default.nl-NL.resx
Tutti file delle impostazioni sono le stesse, ma come detto - solo la risorsa nel file predefinito viene utilizzato.
Cosa sto trascurando qui?
Sono il file RESX in realtà sempre compilati in assembly satellite? Cerca nella cartella bin \ Debug e cerca le sottodirectory con i nomi en, nl e nl-NL. –
Provare a ottenere le traduzioni tramite 'Default.ResourceManager.GetString'. Molto probabilmente il gestore risorse che stai creando riceve alcuni parametri sbagliati. –