» »

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:

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.

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

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 ::

DamijanD je izjavil:

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)


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

kako se naredi spletna stran z več jeziki?

Oddelek: Programiranje
222305 (1471) lemur233
»

S čim prevesti film v SLO

Oddelek: Sedem umetnosti
143148 (1948) SaXsIm
»

[c#] program v večih jezikih, shema datoteke

Oddelek: Programiranje
131529 (1150) prtenjam
»

PhpBB3 Slovenski languge pack

Oddelek: Izdelava spletišč
255361 (2332) KoMar-
»

Visual Basic: aplikacija v več jezikih (obstaja kakšen plugin, ali komponenta, ki bi

Oddelek: Programiranje
101186 (1011) darkolord

Več podobnih tem