Zdravím všechny!
Na MSDN jsem si našel návod, jak změnit lokalizaci programu (změnit CurrentUICulture). Na základě CurrentUICulture měním i texty zpráv. Vytvořil jsem default resource v angličtině, potom cs-CZ a en-US. Před spuštěním hlavního okna nastavím Culture na zvolenou a spustím okno. Potom se v inicializaci okna načtou zprávy v daném jazyce. Do poslední chvíle jsem si myslel, že vše funguje tak jak má. Spouštění programu z Visual Studia je bez problému jak v debug, tak i v release modu. Jenže když jsem vytvořil instalátor a aplikaci nainstaloval (na stejný počítač, kde programuju), nemění se resource okna, ale jen ty zprávy (texty okna jsou dokonce z default resource, ačkoliv jazyk systému je Čeština a český resource jsem taky vytvářel, takže by se měl načíst ten český). Do resources.dll jsem se nedíval, ale předpokládám, že tam je všechno potřebné. Už jsem vyčerpal své možnosti, ale prostě mi to nejde.
Tady je výpis z main.cpp. Ano, je to v C++, ale to na podstatě věci nic nemění.
[assembly:SecurityPermission(SecurityAction::RequestMinimum,ControlThread=true)];
[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
RegistryKey^ settings = Registry::CurrentUser->OpenSubKey("Software\\Výrobce\\Aplikace",true);
try
{
String^ lang = settings->GetValue("Language")->ToString();
settings->Close();
if(String::Compare(lang,"Čeština") == 0)
{
//Thread::CurrentThread->CurrentCulture = gcnew CultureInfo("cs-CZ",false);
Thread::CurrentThread->CurrentUICulture = gcnew CultureInfo("cs-CZ",false);
}
if(String::Compare(lang,"English") == 0)
{
//Thread::CurrentThread->CurrentCulture = gcnew CultureInfo("en-US",false);
Thread::CurrentThread->CurrentUICulture = gcnew CultureInfo("en-US",false);
}
}
catch(Exception^)
{
}
// Enabling Windows XP visual effects before any controls are created
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
// Create the main window and run it
Application::Run(gcnew Form1());
return 0;
}
To načítání z registru je v pořádku protože na základě výsledku se v okně změní jazyk zpráv. Nevím, jak dál. Díky za každou radu!