Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Prednost resource .resx fajlova za lokalizaciju u odnosu na neki ILocalization interfejs?

[es] :: .NET :: Prednost resource .resx fajlova za lokalizaciju u odnosu na neki ILocalization interfejs?

[ Pregleda: 2073 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Wajda.W
Vladimir Vajda
Zrenjanin

Član broj: 127039
Poruke: 323
*.dynamic.isp.telekom.rs.



+101 Profil

icon Prednost resource .resx fajlova za lokalizaciju u odnosu na neki ILocalization interfejs?27.12.2011. u 17:40 - pre 111 meseci
Imao sam situaciju da radim internacionalizaciju aplikacije. I sad meni nije jasno koja je prednost kreirati resurs za svaki jezik u odnosu na kreirati implementaciju interfejsa za svaki jezik?

Prednosti druge strane koje sam ja video i za koju sam se opredelio su sledece:

1. Kada pravim preko resors fajlova onda moram imati prvo mapiranje iz nekog generalnog imena u svako jezicko po fajlu. Recimo da imam polje koje ce da ispise Hello World na svakom jeziku. Tada bi imao resors u resx fajlu pod nekim generickim imenom npr HelloWorld i to bi mapirao na svaki jezik. A poziv u programu bi isao: metodaZaResors("imeResorsa"); dok bi u slucaju sa interfejsom isao samo poziv properija localization.HelloWorld; Sto znaci da on mora da pretrazuje po resors fajlu dok ne nadje taj kljuc. To je prilicno brzo, ali mi deluje sporije od ILocalization

2. Kada se radi preko resors fajlova, prave se satelit assembly koji stoje u posebnom folderu sa culture info imenom. Za inicijalizaciju odredjene kulture treba se baktati sa svim tim resors managerima, dok u slucaju sa ILocalization bi samo instancirao odgovarajucu implementaciju. (ovo realno i nije neka mana ili prednost)

3. Satelit asembli kada se menja se mora opet kompajlirati, sto znaci da nije fleksibilniji od ILocalization sistema, ili gresim?

Vrlo je verovatno da nisam u pravu sa ovim sto sam napisao, slobodno me ispravite.

Interesuje me koje su prednosti koriscenja .resx fajlova za lokalizaciju, sta ja to propustam, gde gresim?
 
Odgovor na temu

Dejan Carić
Oslo, Norway

Član broj: 230976
Poruke: 232
*.dynamic.isp.telekom.rs.

Sajt: www.dcaric.com


+26 Profil

icon Re: Prednost resource .resx fajlova za lokalizaciju u odnosu na neki ILocalization interfejs?27.12.2011. u 19:16 - pre 111 meseci
Prednost .resx fajlova u odnosu na neki ILocalization interfejs je taj što imaš rešenje koje je stabilno i testirano, koje odlično radi sa .NET komponentama (bilo kontrole u WinForms aplikaciji ili validacija objekata korišćenjem DataAnnotations) i što svaki .NET developer zna kako to radi.
Dovoljno je da postaviš CurrentCulture i CurrentUICulture na CurrentThread i magija će uraditi svoje. Čak aplikacija neće pući kada ne postoji resource file za neki CultureInfo.

Ali nekada jednostavno moraš da implementiraš custom rešenje.
Ako npr. želiš da korisnici tvoje aplikacije, koji imaju specijalne privilegije, izmene vrednost u resource fajlovima, a da se pri tom ne rebuild-uje cela aplikacija.
Samo tada moraš voditi računa o keširanju, konkurentnosti, fallback jeziku, itd.
 
Odgovor na temu

Wajda.W
Vladimir Vajda
Zrenjanin

Član broj: 127039
Poruke: 323
*.dynamic.isp.telekom.rs.



+101 Profil

icon Re: Prednost resource .resx fajlova za lokalizaciju u odnosu na neki ILocalization interfejs?27.12.2011. u 21:13 - pre 111 meseci
Aha. Imas neki dobar tutorial gde bih mogao da vidim resx u svoj svojoj moci i jednostavnosti? Posto nisam bas toliko familijaran sa resx. Konkretno npr za koriscenje sa win forms. Kako se sa resx menja cela forma.
 
Odgovor na temu

Dejan Carić
Oslo, Norway

Član broj: 230976
Poruke: 232
*.dynamic.isp.telekom.rs.

Sajt: www.dcaric.com


+26 Profil

icon Re: Prednost resource .resx fajlova za lokalizaciju u odnosu na neki ILocalization interfejs?27.12.2011. u 22:26 - pre 111 meseci
Neki dobar tutorial nemam, a i davno sam radio sa WinForms aplikacijama.
Ali uglavnom ide ovako nekako:

- Otvoriš formu i desni klik pa Properties (ili ALT + ENTER)
- Nađeš property Localizable i staviš njegovu vrednost na True
- Sačuvaš izmene (opciono)
- Iznad tog property-a imaš novi koji se zove Language. Njegova vrednost je (default) i to ti je ujedino fallback language.
- Ukoliko želiš da dodaš podršku za srpski jezik, promeni Language na Serbian (Latin) i svim kontrolama promeni Text property (na srpskom, naravno).
- Visual Studio je u pozadini napravio novi .resx fajl: Form1.sr-Latn.resx

Menjanje jezika (pozivom na button click):

Code:
// srpski
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.GetCultureInfo("sr-Latn");
System.Threading.Thread.CurrentThread.CurrentUICulture = System.Globalization.CultureInfo.GetCultureInfo("sr-Latn");

// engleski
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.GetCultureInfo("en-US");
System.Threading.Thread.CurrentThread.CurrentUICulture = System.Globalization.CultureInfo.GetCultureInfo("en-US");


E sada, kada se izvrši taj kod, jezik se neće promeniti za trenutnu formu, već samo za novootvorene forme.
Ukoliko želiš da se tekst promeni i na trenutnoj formi, pred tobom su 2 puta, baš kao u filmu Matrix:

- Možeš da uzmeš plavu pilulu, a to znači da zatvoriš formu i ponovo je otvoriš (najbezbolnije)
- Možeš da uzmeš crvenu pilulu, a to znači da ručno settuješ text na svim kontrolama

Zaista mi nije jasno zašto MS nije napravio da se text automatski osveži prilikom promene vrednosti za CurrentCulture.
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Član broj: 37636
Poruke: 1230



+92 Profil

icon Re: Prednost resource .resx fajlova za lokalizaciju u odnosu na neki ILocalization interfejs?28.12.2011. u 08:50 - pre 111 meseci
Jednom kad se prozor kreira program može da menja kontrole u prozoru po svom nahođenju, da dodaje nove kontrole, briše stare, menja im propertyje, uključujući i tekst. Sistem prosto ne može da isprati sve ludorije koje programer može da smisli, i zato se tako nešto ni ne pokušava.
 
Odgovor na temu

deerbeer
Beograd

Član broj: 174418
Poruke: 1189
*.dynamic.sbb.rs.



+395 Profil

icon Re: Prednost resource .resx fajlova za lokalizaciju u odnosu na neki ILocalization interfejs?28.12.2011. u 09:13 - pre 111 meseci
Meni je uvek bilo lakse i cistije da radim sa satelite assemblijima .
Ta menader resors klasa sto kaze wajda je u sustini jednostavna i treba da ima 1 metodu da za odredjeni kljuc vraca prevod za trazeni jezik.
Tako da glavna forma sadrzi u resx fajlu engleske tesktove dok svaki drugi prevod je u odvojenom assembliju.



Viva lollapalooza
 
Odgovor na temu

Dejan Carić
Oslo, Norway

Član broj: 230976
Poruke: 232
*.dynamic.isp.telekom.rs.

Sajt: www.dcaric.com


+26 Profil

icon Re: Prednost resource .resx fajlova za lokalizaciju u odnosu na neki ILocalization interfejs?28.12.2011. u 09:28 - pre 111 meseci
Citat:
Mihajlo Cvetanović:Sistem prosto ne može da isprati sve ludorije koje programer može da smisli, i zato se tako nešto ni ne pokušava.

Mislim da je to samo izgovor da se programerima/korisnicima podmetne bug kao feature :)


Prikačeni fajlovi
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Član broj: 37636
Poruke: 1230



+92 Profil

icon Re: Prednost resource .resx fajlova za lokalizaciju u odnosu na neki ILocalization interfejs?28.12.2011. u 09:50 - pre 111 meseci
:) Ali ozbiljno, zamisli da ti praviš .NET i da ti je cilj resource manager koji menja prozor u letu. Dakle, RM je kreirao prozor, korisnički kod je zatim pomerio jedno dugme i promenio tekst u jednoj labeli, i inicira se promena jezika u letu. Kako to RM treba da reši?
 
Odgovor na temu

Wajda.W
Vladimir Vajda
Zrenjanin

Član broj: 127039
Poruke: 323
*.dynamic.isp.telekom.rs.



+101 Profil

icon Re: Prednost resource .resx fajlova za lokalizaciju u odnosu na neki ILocalization interfejs?28.12.2011. u 10:18 - pre 111 meseci
Hvala Dejane. Nisam znao da postoji tako automatizovani nacin za to. Tako je onda dosta jednostavnije za te nedinamicke elemente.Npr za MessageBox je nezgodno jer ne mozes da setujes property tako, neg moras iz koda da prosledis string, pa tada i nije neka olaksavajuca okolnost.
 
Odgovor na temu

Dejan Carić
Oslo, Norway

Član broj: 230976
Poruke: 232
*.dynamic.isp.telekom.rs.

Sajt: www.dcaric.com


+26 Profil

icon Re: Prednost resource .resx fajlova za lokalizaciju u odnosu na neki ILocalization interfejs?28.12.2011. u 10:51 - pre 111 meseci
Citat:
Wajda.W:Npr za MessageBox je nezgodno jer ne mozes da setujes property tako, neg moras iz koda da prosledis string, pa tada i nije neka olaksavajuca okolnost.

Jeste olakšavajuće zato što imaš sve out of the box. Jer i da implementiraš neko svoje custom rešenje svakako ćeš morati da proslediš lokalizovani tekst kroz kod. Ukoliko ti .resx radi posao, koristi njega. Posebno ti mogu biti zanimljive ResXResourceReader i ResXResourceWriter klase (npr. povežeš ih sa Microsoft Translator ili Google Translate servisima i automatski kreiraš solidnu lokalizaciju za druge jezike).

E sad kao što Mihajlo kaže, uvek postoji neka koska. Možda trebaš da omogućiš korisnicima da sami menjaju tekst, a da pri tom ne sme da se radi rebuild aplikacije. Tada moraš da implementiraš custom rešenje, ali i da vodiš računa o mnogim stvarima jer nije isto lokalizovati web sajt i desktop aplikaciju.
 
Odgovor na temu

[es] :: .NET :: Prednost resource .resx fajlova za lokalizaciju u odnosu na neki ILocalization interfejs?

[ Pregleda: 2073 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.