Forum » Programiranje » Visual C# - večjezičnost aplikacij
Visual C# - večjezičnost aplikacij
Grizzly ::
V programskem jeziku Visual C# imam spisano kar obsežno Windows form aplikacijo. Zdaj bi jo želel prevesti še v nekaj drugih jezikov, tako da bi uporabnik lahko v nastavitvah izbral svoj jezik. Predvidevam, da obstaja kakšna hitrejša in lažja rešitev, kot pa pisanje if stavkov:
Iščem rešitev, ki bi bila enostavna za implementacijo in kasnejše vzdrževanje - posodabljanje. Super bi bilo, če bi vse tekste lahko izvozil v neko datoteko in jih tam prevedel. Potem bi se ob zagonu prebrala določena jezikovna datoteka, prebrane stringe pa bi program uporabil za prikaz, glede na izbrani jezik. Saj tudi ko inštaliraš aplikacije, te ponavadi vpraša, kateri jeziki naj se namestijo in potem namesti določene datoteke. Kako bi implementiral kaj takega, brez da bi moral pisati kodo zgoraj?
if (language == "sl") { label1.Text = "Oznaka 1"; label2.Text = "Oznaka 2"; button.Text = "Gumb"; string ask = "Ali ste prepričani...?"; } if (language == "en") { /*prevodi za angleški jezik*/ } if (language == "de") { /*prevodi za nemški jezik*/ } ....
Iščem rešitev, ki bi bila enostavna za implementacijo in kasnejše vzdrževanje - posodabljanje. Super bi bilo, če bi vse tekste lahko izvozil v neko datoteko in jih tam prevedel. Potem bi se ob zagonu prebrala določena jezikovna datoteka, prebrane stringe pa bi program uporabil za prikaz, glede na izbrani jezik. Saj tudi ko inštaliraš aplikacije, te ponavadi vpraša, kateri jeziki naj se namestijo in potem namesti določene datoteke. Kako bi implementiral kaj takega, brez da bi moral pisati kodo zgoraj?
win64 ::
Za prevode lahko uporabiš resources. Obstaja urejevalnik in TT v visual studiu. Za forms lahko tudi narediš "bind" na posamezne lastnosti kontrol.
Priporočam da poiščeš v iskalniku c# forms globaliazation.
Priporočam da poiščeš v iskalniku c# forms globaliazation.
McMallar ::
Jaz uporabljam ResXManager znotraj VS. Omogoca ti, da urejas vec resource (resx) datotek hkrati.
Why can't a programmer tell the difference between Halloween and Christmas?
Because OCT31 = DEC25
Because OCT31 = DEC25
DamijanD ::
Ali to kar so napisali zgoraj. Ali pa narediš nek svoj TranslationService. In potem za vsako stvar kličeš npr. translation.GetString("##HELLO", "Hello") - kjer je prvo ključ prevoda, drugo pa recimo "backup" vrednost. Vse prevode pa imaš lepo zapisane v nekem svojem fajlu (xml, json, txt)
Grizzly ::
Ali to kar so napisali zgoraj. Ali pa narediš nek svoj TranslationService. In potem za vsako stvar kličeš npr. translation.GetString("##HELLO", "Hello") - kjer je prvo ključ prevoda, drugo pa recimo "backup" vrednost. Vse prevode pa imaš lepo zapisane v nekem svojem fajlu (xml, json, txt)
Drugi del (da imam prevode v fajlih) mi je všeč. Ni pa mi tako všeč prvi del - da moram potem ob prikazu vseh oken klicati funkcijo, ki prebere stringe in jih ustrezno nastavi. Če imam 100 oken in za vsakega potrebujem 5 stringov, je to 500 vrstic, za katere moram skrbeti. Nekaj dodam/odvzamem in moram temu primerno ažurirati svojo datoteko.
Sem mislil, da obstaja kakšna rešitev, da bi ob zagonu aplikacije preprosto rekel service.setLanguage("en"); in mi ne bi bilo več treba skrbeti za nastavljanje stringov v ustrezni jezik, ko se odpre forma. Pa seveda upal sem, da obstaja enako hitra rešitev tudi za kreiranje datoteke - par klikov in mi v datoteko shrani privzete stringe, jaz pa jih potem samo prevedem.
kuall ::
https://stackoverflow.com/questions/981...
urejaš prevode kar v lastnosti kontrole. ali pa bržkone lahko urejaš resx fajle direktno. nobenga nisem probal, jaz sem uporabljal samo .net web controls prevode, tam narediš tako:
ctl.text = Localization.GetString("payPalError", resxfile)
urejaš prevode kar v lastnosti kontrole. ali pa bržkone lahko urejaš resx fajle direktno. nobenga nisem probal, jaz sem uporabljal samo .net web controls prevode, tam narediš tako:
ctl.text = Localization.GetString("payPalError", resxfile)
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | kako se naredi spletna stran z več jeziki?Oddelek: Programiranje | 2305 (1471) | lemur233 |
» | S čim prevesti film v SLOOddelek: Sedem umetnosti | 3148 (1948) | SaXsIm |
» | [c#] program v večih jezikih, shema datotekeOddelek: Programiranje | 1529 (1150) | prtenjam |
» | PhpBB3 Slovenski languge packOddelek: Izdelava spletišč | 5361 (2332) | KoMar- |
» | Visual Basic: aplikacija v več jezikih (obstaja kakšen plugin, ali komponenta, ki biOddelek: Programiranje | 1186 (1011) | darkolord |