Lokalizace programu – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Lokalizace programu – .NET – Fórum – Programujte.comLokalizace programu – .NET – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Matěj Pácha0
Super člen
24. 2. 2007   #1
-
0
-

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!

Nahlásit jako SPAM
IP: ...–
Ajem tíčr, andrgraund tíčr!
Reklama
Reklama
DeaLer+2
Hero
24. 2. 2007   #2
-
0
-
Nahlásit jako SPAM
IP: ...–
Dušan Janošík | web: djanosik.cz, @djanosik
Matěj Pácha0
Super člen
24. 2. 2007   #3
-
0
-

To DeaLer: Díky, část z toho jsem už viděl. Jediný problém, kterého jsem si všimnul, se objevuje ve výpisu při sestavování projektu:
WARNING: Two or more objects have the same target location ('[targetdir]\resources.dll')
Není mi to jasný. Do projektu jsem vložil jen výstup z hlavního projektu a jeho resource. Nevím, proč to pak vypisuje možnou shodu souborů. Asi si s tím ještě pohraju. Už jsem instalátor předělal (znova) a nepomohlo. Až na to přijdu, ožeru se!

Nahlásit jako SPAM
IP: ...–
Ajem tíčr, andrgraund tíčr!
Matěj Pácha0
Super člen
24. 2. 2007   #4
-
0
-

Takže až někdy budete dělat lokalizovaný projekt v MSVS, zkontrolujte přítomnost složek s názvem kultury ve složce aplikace, např.
C:\Program Files\MujProgram\cs-CZ\
a v ní umístěné MujProgram.resource.dll. Obvykle se vytvářejí v adresáři release verze hlavní aplikace, ale (aspoň u mě) se nevložily do projektu instalátoru, ačkoliv jsem resource satelites vkládal. Ruční přidání adresářů a souborů v File System editoru (v položce Application Folder) vše vyřešilo.
Tak, a teď se jdu VOŽRAT!

Nahlásit jako SPAM
IP: ...–
Ajem tíčr, andrgraund tíčr!
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 33 hostů

Podobná vlákna

Lokalizace programu — založil paashi

Lokalizace — založil cheeester

Lokalizace WCF — založil Jan Grygerek

Lokalizace data — založil Vitek

Lokalizace comboboxu — založil marpit

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý