Bardzo prosta sprawa i nie mogę jej uruchomić. Chcę zglobalizować moją bibliotekę dll, dlatego używam plików zasobów + ResourceManager.Resourcemanager zwraca ten sam zasób, chociaż podano CultureInfo
nazywam ResourceManager tak:
var p = new ResourceManager("Appname.Default", Assembly.GetExecutingAssembly());
Pobierz za sznurki jak ten
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")));
I zwraca 4 razy ten sam ciąg. Moje pliki są nazywane
Default.resx
Default.en.resx
Default.nl.resx
Default.nl-NL.resx
Wszystkie ustawienia plików są takie same, ale jak wspomniano - używany jest tylko zasób w pliku domyślnym.
Co ja tu jest?
Czy plik .resx faktycznie uzyskiwanie skompilowany do zespołów satelitarnych? Zajrzyj do folderu bin/Debug i poszukaj podkatalogów o nazwach en, nl i nl-NL. –
Spróbuj uzyskać tłumaczenia za pomocą 'Default.ResourceManager.GetString'. Najprawdopodobniej tworzony menedżer zasobów dostaje nieprawidłowe parametry. –