[ nikitaGradov @ 13.01.2011. 22:05 ] @
Imam potrebu da razvijem aplikaciju, kojom ce se sluziti korisnici sa znanjem razlicitih jezika (odnosno, drugacije, neki korisnici ne znaju srpski jezik). Zahtjev je da se prilikom logovanja prepozna jezik kojim se taj korisnik sluzi (to se odradi prilikom kreiranja korisnika) i da mu se svi meniji, sve stavke, sve poruke, svi messagebox-ovi, prikazuju na tom jeziku.

Ja znam kako da ovo odradim, da tako kazem, 'na prvu loptu': tako sto cu da pitam (u nekom if-u) koji je jezik u pitanju, i da na osnovu toga podesim, recimo, text propertije stavki menija, sve textove labela (koje se vide na raznim formama( i slicno). E sad, bice puno koda da se kuca itd . Interesuje me, ako se neko susretao sa slicnim problemom, da li se to moze uraditi elegantnije? Napominjem da se radi o razvoju desktop aaplikacije u C#-u, u okruzenju Studio 2.0 (2005).

Unaprijed hvala i pozdrav ...
[ Dejan Carić @ 13.01.2011. 23:48 ] @
Lokalizovane stringove stavi u resource fajlove.
Prilikom logovanja korisnika setuj CurrentCulture i CurrentUICulture.
[ 2paca.zwaka @ 14.01.2011. 02:22 ] @
pa jesam nesto tako radio ali nije bilo puno kontrola na formi pa sam sve textove 'potrpao' u *.txt file i prilikom ucitavanja forme vrsi se odabir jezika i nakon toga normalno preko StreamReader klase citas iz odredjenog *.txt-a npr:
ako je odabran srpski citaj iz "srpski.txt" ;
ako je odabran engleski citaj iz "engleski.txt" ; itd....al' obzirom da ti verovatno imas puno kontrola nzm sta bih ti preporucio

EDIT: mogu da ti postavim fiju ovog sto sam gore napisao ako hoces cisto da pogledas
[ w3bl0rd @ 14.01.2011. 06:33 ] @
Pa čemu nešto izmišljati sa txt-opvima i ne znam čime kad .NET to ima već lijepo riješeno u sebi kako je i rekao Dejan
[ nikitaGradov @ 14.01.2011. 10:27 ] @
Hvala ti na odgovoru. Samo jedno pitanje: ako sam dobro razumio ovaj koncept, ja bih trebao za svaku formu, koju imam u apliakciji, da napravim po jedan RES fajl (ili jedan RES fajl za cijelu aplikaciju)?
[ mmix @ 14.01.2011. 10:32 ] @
Sve to manje vise radi automatika kad formi u dizajneru promenis language property

Evo ti jedan detaljniji walkthrough od samog MSa:

Walkthrough: Localizing Windows Forms
[ nikitaGradov @ 20.01.2011. 09:08 ] @
Citat:
mmix: Sve to manje vise radi automatika kad formi u dizajneru promenis language property

Evo ti jedan detaljniji walkthrough od samog MSa:

Walkthrough: Localizing Windows Forms


Ako sam ja dobro shvatio ovaj koncept, lokalizacija formi se oslanja na setovanja u ControlPanel-u? Znači, moglo bi da se desi da korisniku, koji očekuje srpski UI (i koji je spreman, jer su svi Text property-ji zadani u okviru forme), a nije podesio regionalna setovanja (u Control Panel-u su mu sva podesenja difoltna, znaci za englesku, da kazem, kulturu), lokalizacija i dalje prikazuje tekst na difoltnom jeziku (znači, engleskom)? Ili ipak nešto nisam dobro razumio ...

Moja ideja je da razvijem aplikaciju gdje korisnik bira jezik (ili mu se jezik pamti, kada se korisnik kreira, nebitno) za prikaz UI aplikacije i gdje se na osnovu izbora aplikacije, UI prikazuje na tom jeziku. Otkud znam, korisnik može da bude i računarski nepismen i sad treba da mu objašnjavam šta da podešava u ControlPanel-u i slično ...

Hvala i tebi i ostalima koji su se javili sa prijedlozima ...
[ mmix @ 20.01.2011. 09:52 ] @
default UI ce biti izabran na osnovu regional settinga, to ne znaci da je on obavezan, ti mozes komotno da prebacis kulturu kao sto ti je Dejan rekao i bice aktivna ta kultura (i ti stringovi prikazani) bez obzira na control panel. Culture identifier (recimo sr-SP-Latn) mozes da cuvas u konfiguraciji aplikacije tako da kad jednom korisnik izabere uvek ucitas isti
[ miksi @ 20.01.2011. 17:14 ] @
Ja samo da napomenem, da ako je MS išta tumbao od verzije do verzije Net Frameworka onda su to Culture Identifieri, pa treba vodii računa o tome. Razlikuju se u 2.0 i 3.5 , a priča se nastavlja i u 4.0, evo linka za neke od detalja: http://msdn.microsoft.com/en-us/netframework/dd890508
[ mmix @ 20.01.2011. 21:38 ] @
I mene je to iritiralo iskreno. Nisam cesto radio lokalizaciju za srpski i tad sam sve stavljao u root sprskog ("Serbian" - "sr") i zdravo dovidjenja. Srecom pa fallback na sr i dalje nije cirilicni, a u Srbiji svi znaju latinicu i u svim verzijama .NETa ikada srpski ce imati "sr" koren.
[ nikitaGradov @ 26.01.2011. 09:33 ] @
Citat:
mmix: default UI ce biti izabran na osnovu regional settinga, to ne znaci da je on obavezan, ti mozes komotno da prebacis kulturu kao sto ti je Dejan rekao i bice aktivna ta kultura (i ti stringovi prikazani) bez obzira na control panel. Culture identifier (recimo sr-SP-Latn) mozes da cuvas u konfiguraciji aplikacije tako da kad jednom korisnik izabere uvek ucitas isti


Tako sam i uradio ...

Izabranu kulturu podešavam sa: CultureInfo.CreateSpecificCulture().
Za srpsku (latinica) kulturu šaljem parametar gornjem metodu: "sr-Latn-CS" (odnosno, za ćililična podešenja: "sr-Cyrl-cs"), za engleski prazan string ("").
Potrebno je kreirati po jedan .RES fajl za svaku kulturu. Imena stringova moraju biti ista u svim .RES fajlovima.
Za dohvat stringova iz .RES fajlova koristimo klasu ResourceManager (i njen metod GetString()).

Hvala na pomoći ...