[ MarkoBalkan @ 21.01.2009. 21:34 ] @
zanima me kako bi napravili klasu za višejezičnost?

dali bi sve riječi, poruke i sve ostalo držali u bazi ili xml.u ili nečem trećem?

recimo ako bi bilo u bazi, onda bi se na load učitala aplikacija ovisno o postavkama učitao bi se jezik u dataset.
mislim na riječi nekog jezika iz baze.
e sad onda bi se svakoj kontroli morao dodijeliti odgovarajući text iz dataseta.

kako se ovo radi jednostavnije?
[ deerbeer @ 21.01.2009. 23:38 ] @
http://www.ondotnet.com/pub/a/dotnet/2002/10/14/local2.htm
http://www.codeproject.com/KB/aspnet/SatResourcesDemo.aspx

Sustina je da kao rezultat imas satelit assembly tj. resurs dll koji je nastao kompajliranjem *.resx fajla
u kome su ti svi stringovi iz programa prevedeni za odgovarajuci jezik (svaki jezik jedan dll)
a pristupas im kao preko name/value kolekcije .

[ reject @ 21.01.2009. 23:56 ] @
Mozes i jednostavnije, preko txt fajlova. Ja sam to resavao tako
sto sam imao jedan 'languages.txt' u kome je bio spisak jezika i
lokacija samog fajla, recimo:
Code:

English   loc/eng.txt
Srpski    loc/srb.txt
Ruskii    loc/rus.txt

gde prvi string mozes da prikazes u meniju kao jednu od opcija (ime jezika).

Onda bi svaki fajl sa prevodom imao "naziv" termina/poruke i sam tekst poruke
Code:

cancel     Otkazi
retry      Pokusaj ponovo
InError    Problem sa ucitavanjem
OutError   Problem sa snimanjem

Naravno da ovo uopste nije elegantno resenje, ali ti omogucava da das svoje
termine na prevod ljudima koji nemaju veze sa kompjuterima, jer ce svaki
prevodilac znati da iza 'cancel' lupi tab i napise isto na francuskom u notepadu,
a mozes i da promenis jezik tokom rada programa tako sto samo 'ucitas' drugi fajl sa
jezikom. Plus, nazovi 'advanced' korisnici mogu sami da prevedu sebi softver sa
notepadom i ubace svoj jezik u listu.
[ mmix @ 22.01.2009. 09:04 ] @
Iskreno ne vidim nijedan dobar razlog da se zaobidje builtin lokalizacija u .NETu jer ista radi kroz resurse. Prevodiocu koji nema .resx editor (a skoro svi naravno nemaju) mozes lako da copy/pastujes iz resource editora u excel file ili cak i txt, pa da pastujes nazad u odgovarajuci satelit kad ti vrati prevod. Jednostavno nema potrebe da se sva lokalizacija odradjuje pesaka kroz manuelni kod, nismo vise u ranim 90-im.
[ reject @ 22.01.2009. 15:01 ] @
Apsolutno si u pravu si, rucni rad uvek moze da napravi probleme koje
je kasnije tesko pronaci, pogotovo kad su u pitanju greske u kucanju.
[ deerbeer @ 22.01.2009. 19:49 ] @
Jedno vreme sam radio lokalizaciju i za desktop i za web aplikacije i sajtove...
Dosta je fizikalan posao i oduzima programeru vreme.
Sto veci program vise teksta za prevodjenje i proprcianalno vise vremena .

Citat:

Plus, nazovi 'advanced' korisnici mogu sami da prevedu sebi softver sa
notepadom i ubace svoj jezik u listu.


To se sve na kraju svodi na "parsiranje bez kraja" svakome se potkrade greskica
(prazni redovi spejsovi, tabovi ,nepreglednost pri editovanju i)
pa ti onda ostaje da sam to uradis na ruke i ode ti dosta vremena .

Za takve korisnike mozda ti sledece posluzi kao ideja jer verovatno hoces da automatizujes ceo proces lokalizacije .

Napravis web-servis ili aspx stranu koja ce imati prostu formu za unos/prevod svih labela i texta koje aplikacija ima .
Sa strane web-servera saljes xml nekoj server-aplikaciji koja ima sistemske privilegije da pozove resx kompajler iz konzole ..
i prosledis mu fajlove koje si generisao , koji ce nakon toga da napravi taj assembly resurs dll .
Ostaje ti posle to posaljes nazad mejlom na njegov zahtev.

Korisnik raspakuje zip pokrene mali setup i dobio je novi jezik kao izbor u drop listi
pri start-up programa ili web-developerima koji odrzavaju neku asp aplikaciju .

E sad nije ni ovo bas najsrecnije resenje . Ostaju posle nuspojave kad stigne nova verzija onda treba i sledeci prevod
(nove forme ili kontrole) moraces da na lak nacin menjas i interfes na strani klijenta (zbog novih stringova)
pa onda ces neka morati i da menjas sirine labela u zavisnosti od jezika (jedna rec na jednom jeziku ima 5 karaktera
a ne nekom do 10 karaktera pa pomeranje i stelovanje na formi).
Tu je jos i problem funkcionalnost na web strani ako korisnik treba "odjednom" da unese 250 -300 slogova .
Onda ce njemu to da bude zamorno , pa bi valjalo mu omoguciti da to radi parcijalni save ili submit.
ili ako nema sve prevode odjednom ,pa kad prikupi sve slogove salje ga resx kompajleru .







[ caponac @ 23.01.2009. 22:46 ] @
Citat:
MarkoBalkan: zanima me kako bi napravili klasu za višejezičnost?
dali bi sve riječi, poruke i sve ostalo držali u bazi ili xml.u ili nečem trećem?


Najbolji primjer koji sam do sada vidio u vezi sa ovom problematikom: http://www.codeproject.com/KB/locale/GlobalizationSample.aspx
Brzo, jednostavno, efikasno. Na ovaj način možeš da uradiš lokalizaciju na koliko hoćeš jezika - u kombinaciji sa google translatorom pravo brzo.