Una cosa muy simple, y no puedo hacer que funcione. Quiero globalizar mi DLL así que estoy usando archivos de recursos + el ResourceManager.Resourcemanager está devolviendo el mismo recurso, aunque se especifica CultureInfo
que llamo el ResourceManager así:
var p = new ResourceManager("Appname.Default", Assembly.GetExecutingAssembly());
obtener las cadenas como éste
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")));
y vuelve 4 veces la misma cadena. Mis archivos se llaman
Default.resx
Default.en.resx
Default.nl.resx
Default.nl-NL.resx
Todo archivo de configuración es la misma, pero como se mencionó - se utiliza sólo el recurso en el archivo predeterminado.
¿Qué estoy pasando por alto aquí?
son el archivo .resx consiguiendo realmente compilado en ensamblados satélite? Busque en la carpeta bin \ Debug y busque subdirectorios con los nombres en, nl y nl-NL. –
Intenta obtener las traducciones a través de 'Default.ResourceManager.GetString'. Lo más probable es que el administrador de recursos que está creando tenga algunos parámetros incorrectos. –