[C#] Stöd för flera språk av GUI

Permalänk
Medlem

[C#] Stöd för flera språk av GUI

Jag har hållt på med en WinForms-applikation (.NET 2.0) och har nu kommit till en punkt då jag behöver stöd för flera språk, dvs på knappar, menyer etc i GUI:t.

Det finns ju inbyggt stöd för Localization som jag provat lite smått, men det jag undrar nu är ifall det finns nåt smidigt sätt för att automatisera det hela.. Säg att jag skapar stöd för 3 språk, då skapas 3 st resx-filer. Om jag när jag kör default-språk flyttar en knapp t ex, så sker ändringen bara under det aktuella språket och jag måste göra samma sak 3 gånger (en för varje språk). Detta känns ganska osmidigt, går det att lösa?

/ Fredrik

Permalänk
Citat:

Ursprungligen inskrivet av Phoz
Jag har hållt på med en WinForms-applikation (.NET 2.0) och har nu kommit till en punkt då jag behöver stöd för flera språk, dvs på knappar, menyer etc i GUI:t.

Det finns ju inbyggt stöd för Localization som jag provat lite smått, men det jag undrar nu är ifall det finns nåt smidigt sätt för att automatisera det hela.. Säg att jag skapar stöd för 3 språk, då skapas 3 st resx-filer. Om jag när jag kör default-språk flyttar en knapp t ex, så sker ändringen bara under det aktuella språket och jag måste göra samma sak 3 gånger (en för varje språk). Detta känns ganska osmidigt, går det att lösa?

/ Fredrik

Jag har tänkt lite på hur man ska lösa detta.. Kan du inte ha en klass som heter typ CurrentLanguage som du har massvis med properties på för dina översättningar. För din knapp kan du ha CurrentLanguage.ButtonText. Sen när du sätter din text sätter du bara button.Text = CurrentLanguage.ButtonText;

Sen när du vill spara så kör du XMLserialize, och när du vill loada kör du deserialize. Då skiljer du på språk med olika filnamn...
Vad tror ni om den idén?

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk

Det är bara text-strängarna för varje kontroll som sparas i dom olika resx filerna.

Permalänk
Medlem

Eftersom applikationen redan är skapad så känns det som rätt mycket jobb att leta igenom all kod efter .Text-properties (alla kontroller har ju inte heller direkt en .Text, t ex MenuStrip ligger ju dess objekt under .Items osv)

Nån som vet ifall man enkelt kan kopiera en resursfil, om jag t ex tar fram översättningarna så att en resursfil för Svenska skapas, kan man göra en kopia och på ett enkelt sätt gå in och editera texterna från svenska till t ex tyska och sedan stoppa in den?

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av hagbarddenstore
Det är bara text-strängarna för varje kontroll som sparas i dom olika resx filerna.

Även storlek och position för kontrollerna sparas i mina resx-filer (och alla ligger under Form.cs t ex "Form.sv.resx", "Form.de.resx")

Permalänk
Medlem

PO-Filer är väldigt populärt på *Nix sidan:
http://en.wikipedia.org/wiki/I18n
Exempel I mono:
http://www.mono-project.com/I18nGettext
och
http://www.mono-project.com/I18N_with_Mono.Unix

konveretera till .resources>
http://linux.die.net/man/1/resgen

lyckatill...

Visa signatur

@gegoxaren på identi.ca
min personliga Blag ^_^
#python #cSharp #php #sqlite #freetard #loonix