Вие се наоѓате на вистинската фреквенција на najforumce FM 105.5 мегапиксели, а јас сум Досаден Login Pop Up што пробува да ве натера да се регистрирате. Др.Џек Левин кој покрај магнетниот појас за колено го измисли и магнетниот форум www.najforumce.fairtopic.com Доколку се регистрирате на овој форум големи се шансите да го зголемите волуменот на косата,да го намалите вишакот килограми и да ви се зголеми интелегенцијата,онолку колку што ќе постирате дневно на форумот.
!!!

ASP.NET Глобализација и локализација - Part 2

Go down

ASP.NET Глобализација и локализација - Part 2

Пишување by Kosta on Сре Фед 04 2009, 22:45

Ова е вториот од неколку делови што ќе следат понтаму во врска со темата: ASP.NET Глобализација и локализација.
Пред да започните да го читате вториот дел, ви препорачувам да го прочитате првиот дел од оваа тема: ASP.NET Глобализација и локализација Part 1

Работење со ресурси во веб страните

Откако ќе ги креирате ресурс датотеките, нив може да ги искористите во ASP.NET веб страните. Најчесто ресурсите може да се искористат за да се пополнат вредностите на својствата на контролите на страната. На пример, може да ги користите ресурсите за да го поставите Text својството на Button контролата, наместо да го хард кодирате со специфичен стринг.

За да ги користите ресурсите за да ги поставите вредностите на својствата на контролите, можете да користите имплицитна локализација или експлицитна локализација, како што следува:

• Имплицитната локализација работи со локални ресурси и ни овозможува автоматско поставување на својствата на контролите поврзано со ресурсите.

• Експлицитната локализација ни овозможува користење на ресурс изрази за поставување на својствата на контролите за специфични ресурси во локалните и глобалните ресурс датотеки.

Имплицитна локализација со локални ресурси

Ако имате креирано локални ресурс датотеки за специфична страна, можете да користите имплицитна локализација за да ги пополните вредностите на својствата за контролата од ресурс датотеката. Во имплицитната локализација, ASP.NET ја чита ресурс датотеката и ги поврзува ресурсите со вредностите на својствата.

За да користиме имплицитна локализација, мора да користиме конвенција за именување на ресурсите во локалната ресурс датотека која го користи следниов шаблон:

Key.Property

На пример, ако креираме ресурси за Button контролата со име (id) Button1, потребно е да ги креираме следниве клуч/вредност парови во локалниот ресурс директориум:

Код:
Button1.Text
Button1.BackColor
Label1.Text

Притоа може да се користи секое име за клуч, но својството мора да е поврзано со името на својството на контролата што ја локализираме.

Можеме да го користиме специјалниот meta атрибут во markup – от за да специфицираме имплицитна локализација. Притоа немора експлицитно да се специфицира кое својство се локализира. Следнава Button контрола е конфигурирана за имплицитна локализација:

Код:
<asp:Button ID="Button1" runat="server" Text="DefaultText" meta:resourcekey="Button1" />

Вредноста на resourcekey е поврзана со клучот во соодветната ресурс датотека. Во време на извршување (runtime), ASP.NET ги поврзува ресурсите со својствата на контролите користејќи го натписот (label) на контролата како resourcekey. Ако вредноста на својството е дефинирана во ресурс датотеката, ASP.NET ја поставува вредноста на ресурсот за својството.

Експлицитна локализација

Како алтернатива, може да користите експлицитна локализација, каде што користите ресурс изрази. За разлика од имплицитната локализација, мора да го користите изразот за секое својство што сакате да го поставите.

Button контрола на која е поставено својство Text од глобална ресурс датотека може да се претстави вака:

Код:
<asp:Button ID="Button1" runat="server" Text="<%$ Resources:WebResources, Button1Caption %>" />

Ресурс изразот ја има следнава форма, каде што Class е опционално, освен ако ресурсот е глобален, и ResourceID е задолжителен:

<%$ Resources:Class,ResourceID%>

Вредноста на Class ја идентификува ресурс датотеката која се користи кога користиме глобални ресурси. Кога .resx датотеките се компајлираат, основото име на датотеката, без екстензијата, се користи како име за класа од резултантното асембли, експлицитно. Ако сакаме да користиме ресурси од локална ресурс датотека (некоја која е иста со тековното име на страната), немора да се вклучи името на класата. Тоа е така бидејќи ASP.NET го поврзува името на класата на страната со ресурс класата.

Вредноста на ResourceID е идентификатор за ресурсот кој се чита. Во претходниот пример, Text својството за копчето се чита од глобалната ресурс датотека WebResources.resx (или соодветната локализирачка верзија). Во таа датотека, ASP.NET ги користи вредностите за ресурсите со идентификација Button1Caption и за самата страна. За да ги поставиме својствата на страната, може да користиме ресурс изрази во @Page директивата.

Значи можеме да специфицираме експлицитни ресурс изрази или имплицитни ресурс изрази за дадена контрола, но не и обата. Следнава синтакса за Button контролата појавува грешка:

Код:
<asp:Button ID="Button1"
            runat="server"
            meta:resourcekey="Button1Resource1"
            Text="<%$ Resources:WebResources, Button1Caption %>" />

Во овој пример, имплицитна локална ресурс датотека (некоја која се поврзува со името на тековната страна) е специфицирана исто така како експлицитна ресурс датотека која е именувана WebResources. За да се отстрани грешката потребно е да избрише еден од ресурс изразите.

Локализирање на статичен текст

Ако страната има статичен текст, можеме да користеме ASP.NET локализација користејќи ја Localize контролата, и потоа користење на експлицитна локализација за поставување на статичкиот текст. Localize контролата не се рендерира (не генерира ХТМЛ), таа само има функција да игра улога на placeholder за локализираниот текст. Во време на извршување (runtime), ASP.NET ја третира Localize контролата како Literal контрола. На пример, вашата страна може да го има следниов код:

Код:
<h1>
    <asp:Localize runat="server" ID="WelcomeMessage"
                  Text="Welcome!" meta:resourcekey="LiteralResource1" />
</h1>
<br />
<br />
<asp:Localize runat="server" ID="NameCaption"
              Text="Name: " meta:resourcekey="LiteralResource2" />
<asp:TextBox runat="server"
            ID="TextBox1" meta:resourcekey="TextBox1Resource1" />

Имплицитна локализација на темплејти

Во темплејт контролите, како што се DataList, GridView и Wizard контролите, може да се локализираат својствата на стилот на темплејтот преку пристап на својства од татко контролата со помош на имплицитни ресурс изрази. Притоа не може да се користат имплицитни ресурс изрази на самиот темплејт.

За да се локализира вредноста на својство од темплејтот, се користи meta атрибутот и ресурс клучот за контролата на која припаѓа темплејтот. Потоа се користи Property.Subproperty синтаксата или Property-Subproperty синтаксата во ресурс датотеката. На пример, следнава синтакса е валидна за Wizard контрола:

Код:
<asp:Wizard ID="Wizard1"
    runat="server"
    meta:resourcekey="Wizard1Resource1">
  <NavigationStyle
    BorderWidth="<%$ resources:navBorderWidth %>"/>
  <WizardSteps>
    <asp:WizardStep ID="WizardStep1"
      runat="server"
      Title="Step 1"
      meta:resourcekey="WizardStep1Resource1">
    </asp:WizardStep>
  </WizardSteps>
</asp:Wizard>

Притоа следниве клуч/вредност парови во локалната ресурс датотека може да бидат искористени за претхониов пример:

Wizard1Resource1.NavigationStyle.BackColor, Red
navborderWidth, 5

Или пак следниов:

Wizard1Resource1.NavigationStyle-BackColor, Red
navborderWidth, 5

Исто така можеме да користиме експлицитни ресурс изрази за NavigationStyle својството на Wizard контролата во претходниот пример.

Селектирање на ресурс датотеки за различни јазици

Кога страната се стартува, ASP.NET ја селектира верзијата на ресурс датотеката која е поврзана со моменталната вредност на UICulture за соодветната страна. Ако немаме никаква информација, ASP.NET ја користи подразбираната (default) ресурс датотека. На пример, ако ја стартувате Default.aspx страната и моменталната вредност на UICulture својството е поставено на es (шпански), ASP.NET ја користи компајлираната верзија на локалната Default.aspx.es.resx ресурс датотека.

ASP.NET може да ги постави UICulture и Culture својствата за страната со вредоности за јазикот и културата кои се пренесени од пребарувачот. Алтернативно, експлицитно може да ги поставиме UICulture и Culture својствата, декларативно или во код. Исто така може да ги поставиме декларативно во Web.config датотеката (за тоа ќе видиме покасно).

Забелешка: Не е препорачливо да се потпирате на поставките на пребарувачот за да ги поставите информациите за јазикот и културата, бидејќи корисниците може да користат пребарувач на некој друг компјутер (не на нивниот). Исто така, пребарувачите доста често пренесуваат само информации за јазикот без специфицирање на културата. Во тој случај, серверот треба да одреди специфична култура за форматирање на податоците. Добра стратегија е да дозволите корисниците сами да си го избираат јазикот.

Ова е вториот од неколку делови што ќе следат понтаму во врска со темата: ASP.NET Глобализација и локализација.
Третиот дел следува некаде околу крајот на февруари.

_________________
Кај ми е сонцето бе !?
avatar
Kosta
Најфорумче манијак
Најфорумче манијак

Male
Scorpio

Расположение :
Треснал Глупости : 2202
Поени : 159
Репутација : 3
Поминат рок на траење : 31
Се наоѓам : Струга
Ден на регистрирање : 2007-05-16

Преглед на профилот на членот http://www.najforumce.macedonianforum.net

Вратете се на почетокот Go down

Вратете се на почетокот


 
Permissions in this forum:
Не можете да одговарате на темите во форумот