AspNet.sk     Diskusné fóra     Vitajte v QuickStarts     ASP.NET     Silverlight     Ako môžem...? (en)     Class prehliadač Príklady chcem v ...   
Menu
Skip Navigation Links.
Späť na ASP.NET príručku

ASP.NET QuickStart Príručka

Lokalizácia

Vytvorenie webovej aplikácie, ktorá môže byť viacjazyčná, bolo jednou z priorít ASP.NET v2.0. Ak ste použili zdrojové súbory (RESX) a ResourceManager, potrebovali ste oddeliť lokalizačné elementy manuálne a uskutočniť Vaše vlastné načítanie zdrojov, čo si vyžadovalo veľa úsilia a kódu. ASP.NET v2.0 značne zjednodušuje tento proces a prináša veľké množstvo funkcii ako:
  • Automatická detekcia Accept-Language HTTP request header field odosielaného prehliadačom užívateľa
  • Deklaratívne lokalizačné výrazy pre zviazanie ovládacích prvkov alebo ich vlastností ku zdrojom
  • Programový prístup ku zdrojom a ručne písaným (strongly-typed) zdrojom
  • Automatická kompilácia a spojenie RESX alebo RESOURCE súborov do (runtime satellite assemblies)
  • Ďalšia dizajnová podpora (design-time support) pre vytváranie zdrojov
  • Plne rozšíriteľný model, tak že RESX model môže byť úplne odložený (swapped out)
Pri vytváraní viacjazyčnej webovej aplikácie ťažíte zo zdroja na jednej stránke, ktorý si vyžaduje omnoho menej údržby v porovnaní s jazykovo-oddeleným sídlom alebo stránkovou štruktúrou. ASP.NET v2.0 to dosahuje poskytovaním deklaratívneho modelu pre spracovanie zdrojov cez zdrojové výrazy. Zdrojové výrazy sú podfunkciou súhrnných zdrojových funkcií, ktoré môžu byť považované za dátovo-spajajúce výrazy z ASP.NET v1.0. Výrazy sú, avšak, nastavovače časovo-analyzačných vlastností, ktoré nevyžadujú od užívateľa explicitne zavolať metódu ako je DataBind().

ASP.NET v2.0 poskytuje automatickú podporu pre zdrojové súbory (RESX alebo RESOURCE), ktorá vyplýva zo špecifickej menovacej dohody a ktorá sídli v špecializovaných adresároch v rámci aplikácie. Toto Vám dovoľuje pridávať zdrojové súbory bez nejakých kompilačných krokov alebo satelitných assemblies a dovoľuje Vám poskytovať zdroje, ktoré sa môžu uplatniť na stránke alebo aplikácii. ASP.NET využíva .NET Framework ResourceManager pre uskutočnenie vyhľadávanie zdrojov. Tento model má veľa výhod ako podporu pre vlastné kultúry.

Ak zdrojové súbory RESX nie sú Vami uprednostňovaným zdrojovým formátom pre uchovávanie prekladov, uvítate rozšíriteľnosť celého modelu.

Ukážky tu opisované môžu byť vyhotovené pre americkú angličtinu (en-US), francúzštinu (fr), nemčinu (de), španielčinu (es), japončinu (ja) a arabčinu (ar) (arabčina iba pre dve posledné ukážky na stránke). Ostatné jazyky sa podrobia svojim ústupným kultúram alebo napokon americkej angličtine. Pozrite sa do Nastavenie uprednostňovaného jazyka v Internet Exploreri v predošlej kapitole,a by ste mohli vidieť používanie zdrojov v akcii.

Jednoduchý príklad Novinka v 2.0

Nasledujúci príklad ukazuje lokalizáciu ovládacieho prvku Label v stránke nazvanej LabelLocalization.aspx.
<%@ Page UICulture="auto" Culture="auto" %>
<form runat="server">
  <asp:Label ID="Label1" runat="server" Text="<%$ Resources:Label1TextKey %>"
	Font-Name="<%$ Resources:Label1FontNameKey %>"/>
</form>
Stránka definuje direktívu Page so špecifickými atribútmi UICulture a Culture. Hodnoty atribútu sú automatické. Toto nariaďuje ASP.NET detekovať a nastaviť súčasnú kultúru vlákna a kultúru užívateľského rozhrania pre spracovanie stránky založené uprednostňovanej kultúre prehliadača užívateľa. Pre detailne vysvetlenie fungovania pozrite Automatické detekovanie jazyka prehliadača pre formátovanie závisle od kultúry. Ako bolo spomenuté v už predošlej kapitole Culture kontroluje formátovanie dátumov a čísel, zatiaľ čo UICulture kontroluje načítavanie zdrojov - teda preložený text a lokalizované ovládacie vlastnosti ako farba a písmo.

Vlastnosti Text a Font-Nameovládacieho prvku Label sú pripojené so zdrojovými výrazmi, ktoré rozlúštia zdrojový kľúč, ktorý sa používa na vykonávanie priradenia vlastnosti do formulára hodnôt, v tomto prípade, lokálneho zdroja.

Popri stránke LabelLocalization.aspx je partnerský adresár App_LocalResources. To je miesto, kde sú lokálne zdroje sídla a sú pomenované náležito pre stránku, napríklad:
  • LabelLocalization.aspx.resx. Kultúrne nezávislý zdrojový súbor
  • LabelLocalization.aspx.fr.resx. Kultúrne určený zdrojový súbor, (francúzština)
  • LabelLocalization.aspx.de.resx. Kultúrne určený zdrojový súbor, (nemčina)
  • LabelLocalization.aspx.ja.resx. Kultúrne určený zdrojový súbor, (japončina)
  • LabelLocalization.aspx.ar.resx. Kultúrne určený zdrojový súbor, (arabčina)
Tieto RESX súbory obsahujú (keyname-value mapping). Napríklad v súbore LabelLocalization.aspx.resx
<data name="Label1TextKey">
  <value xml:space="preserve">Welcome to ASP.NET Localization</value>
</data>
Spustenie tejto stránky vytvorí prevedenie pre Label použitím vlastnosti Text zo zdrojov pre nemčinu, francúzštinu, japončinu a iné jazyky.

Zdrojové výrazy Novinka v 2.0

Existujú dve formy zdrojových výrazov, explicitná a implicitná.

Formulár zdrojových výrazov Popis
Explicitné <%$ Resources:[filename prefix,]resource-key %>

Explicitné výrazy sa používajú na definovanie hodnôt pre riadiace vlastnosti v deklaratívnej syntaxi, a resource-key, ktorý je požadovaný, je použitý na mapovanie hodnôt zo zdroja. Parameter filename prefix je nepovinný, ale filename udáva meno zdrojového(ých) súboru(ov), ktoré sídlia v adresári global resources.
Implicitné <asp:Label ID="Label1" runat="server" meta:resourcekey="resource-key-prefix" />

Implicitné výrazy sa používajú ako atribút pre ovládací prvok alebo objekt v deklaratívnej syntaxi a definuje resource-key-prefix, ktorý sa používa pre vykonávanie množstva pridelení vlastnosti pre ovládací prvok. Zdrojový súbor obsahuje mnoho potenciálnych resource-keys hlavného formulára resource-key-prefix.Property - napríklad: Label1KeyPrefix.Text a Label1KeyPrefix.Font-name. Všetky zdroje sú získané iba z lokálnych zdrojov. O výrazoch môžete pomýšľať ako o skrátenej poznámke pre mapovanie od jednej po množstvo ovládacích vlastností bez explicitného definovania vlastností v stránke.

Globálne a lokálne zdroje Novinka v 2.0

Globálne zdroje sídlia v špeciálnom adresári nazývanom /App_GlobalResources, ktorý sa nachádza v koreňovom adresári aplikácie. Všetky stránky, užívateľské prvky, atď. môžu pristupovať k týmto zdrojom, takže sú zvyčajne používané ako zdieľané zdroje. Meno zdrojového súboru sa používa v explicitných výrazoch, ale tak isto tvorí namespace.classname pre silne typový prístup pod namespace-om Resources vo Vašej aplikácii.

Lokálne zdroje sú definované v adresári rovnakej úrovne /App_LocalResources. RESX súbory vyplývajú zo špecifickej menovacej dohody s pridruženou stránkou, užívateľským prvkom, alebo stránkou master-page, spolu s definíciou kultúry. Napríklad foo.aspx sa bude vzťahovať na kultúrne nezávislý zdrojový súbor /App_LocalResources/foo.aspx.resx a na kultúrne určené zdrojové súbory /App_LocalResources/foo.aspx.fr.resx a /App_LocalResources/foo.aspx.ja.resx. Iba pridružená stránka môže pristupovať k tieto zdroje použitím explicitných alebo implicitných zdrojových výrazov. Existuje metóda, ktorá je prístupná pre programový prístup k týmto zdrojom v kóde.

Implicitné výrazy pre lokálne zdroje Novinka v 2.0

Táto ukážka bola vytvorená z ukážky ukazujúcej správne formátovanie kultúr využívaním programu Visual Web Developer na vytvorenie lokálnych zdrojov. Celý text na stránke bol konvertovaný do ASP.NET ovládacích prvkov Label, a potom príkaz "Generate Local Resource" menu Nástroje v dizajnovom zobrazení vygeneroval zdrojové súbory pre predvolený jazyk (v tomto prípade americká angličtina). Tento zdrojový súbor bol potom preložený do japončiny, nemčiny, francúzštiny a španielčiny. Žiadne ďalšie písanie kódu nebolo potrebné pre povolenie lokalizácie stránky.

Dizajnér pridal atribút UICulture do direktívy Page a implicitné zdrojové výrazy ako
<asp:Label ID="LabelTitle" runat="server" Text="Currency Exchange Calculator" meta:resourcekey="LabelResource1">
</asp:Label>
pre povolenie načítavania zdrojov počas behu programu.

Dizajnér analyzuje ovládacie prvky na stránke pre lokalizačné zdroje. Tak ako sú názvy peňažných mien na stránke programovo vyplňované, nie je možné detekovať, že by tak isto mali byť pridané ku lokalizačným zdrojov - ako toto docieliť manuálne je ukázané vo vzorke viac nižšie.

Lokalizovanie použitím implicitných výrazov (VB)
Run Sample View Source

Explicitné výrazy pre lokálne zdroje Novinka v 2.0

Stránka predvedená vyššie používajúca implicitné výrazy stále nie je úplne preložená - názvy peňažných mien v (drop down) a zoznam výmenných hodnôt sú stále v angličtine. Tak isto stránka nie je ešte preložená do arabčiny a nemecká verzia by mala mať inú farbu pozadia označenia nadpisov a dátum.

Arabčina je jazyk, ktorý je písaný sprava doľava. Aby sme nariadili prehliadaču zobrazovať stránku v správnom smere, bol pridaný na ďalší zdroj nazývaný HTMLDirectionality. Použitím explicitných výrazov na tento lokálny zdroj je nastavený atribút dir elementu stránky html.

Nasledujúca vzorka používa taktiež explicitné výrazy pre zmenenie parametrov Text a BackColor patriacim k označeniam nadpisov a dátumu. Všimnite si, že zdroje pre jazyky, ktoré nepotrebujú meniť tieto hodnoty nepotrebujú obsahovať zdroje - mechanizmus ústupu zdrojov .NET Frameworku vždy vyberie predvolenú hodnotu obsiahnutú v uprednostňovaných zdrojoch.

Programový prístup ku globálnym a lokálnym zdrojom Novinka v 2.0

Text, ktorý je generovaný programovo nemôže byť načítaný použitím zdrojových výrazov, tak isto ako Visual Web Developer designer automaticky generuje pre neho zdroje. ASP.NET ponúka funkcie GetGlobalResourceObject() a GetLocalResourceObject(), aby ste sa mohli s týmito prípadmi programovo zaoberať. Týmto spôsobom nasledujúca ukážka načítava názvy peňažných mien z pridaných zdrojov CurrencyNames, ktoré sú aplikačné voľne prístupné.

Lokalizácia statického obsahu Novinka v 2.0

Zvyčajne vývojári vytvoria webovú aplikáciu, ktorá obsahuje statický text, napríklad disclaimer na stránke. Nie je potrebné to deklarovať ako ovládací prvok Label, pretože pre tento účel je k dispozícii ovládací prvok Localize. Tento ovládací prvok povoľuje editovanie textu nielen vo vlastnostiach mriežky, ale aj priamo v dizajnovom zobrazení (design view).

Lokalizácia použitím implicitných a explicitných výrazov ako aj programového prístupu (VB)
Run Sample View Source

Ukladanie jazykových preferencii Novinka v 2.0

V niektorých prípadoch nemusia byť predvolené označenia Culture a UICulture, vybrané automatickou detekciou, vhodné pre užívateľa (napr. španielsky hovoriaci užívateľ používajúci počítač v čínskej internetovej kaviarni). V takýchto prípadoch potrebuje dať webová aplikácia užívateľom možnosť zmeniť zobrazený jazyk a/alebo nastavenia kultúry. Nasledujúca vzorka ukazuje ako vytvoriť ovládací prvok DropDownList, ktorý zobrazuje všetky dostupné jazyky. Mení jazyk podľa označenia v drop-down a ukladá výber použitím nových ASP.NET v2.0 Profiles feature.

Je dôležité pripomenúť, že zmeny do Thread.CurrentThread.CurrentCulture a Thread.CurrentThread.CurrentUICulture je potrebné vykonať v metóde InitializeCulture(), pretože automatická detekcia jazyka preferovaného prehliadačom nastáva na začiatku životného cyklu stránky.

Označenie a ukladanie jazykových preferencii použitím personalizácie (VB)
Run Sample View Source
Microsoft .NET Framework SDK QuickStart Tutorials Version 2.0
Copyright © 2005 Microsoft Corporation. All rights reserved.
Preklad do slovenského jazyka - Copyright © 2005 - 2007 www.aspnet.sk, www.qsh.sk
Pošlite komentár k tejto stránke
Copyright © 2002 - 2008 Chastia, spol. s r. o., Igor Stanek, Designed by Lacino
Portál je hostovaný na serveroch firmy Quantasoft - www.qsh.sk.