ݺߣ

ݺߣShare a Scribd company logo
Темы лекции: ASP.NET. Web Forms. Часть 4.
Практическое задание: ASP.NET. Web Forms.
Тренер: Игорь Шкулипа, к.т.н.
Разработка Веб-приложений на платформе
Microsoft .NET Framework.
Занятие 8
http://www.slideshare.net/IgorShkulipa 2
Варианты локализации приложения
1. На уровне реализации приложения.
Для каждого языка в БД создается отдельная таблица, содержащая
поля требующие перевода.
2. За счет внешних подключаемых модулей (Google translate, Bing
translate, etc.)
1. На уровне ресурсных файлов.
http://www.slideshare.net/IgorShkulipa 3
Ресурсы
Ресурсы в глобальных файлах ресурсов также являются строго типизированными на
случай, если потребуется вызывать эти файлы программным образом.
При внесении изменений в глобальный или локальный файл ресурсов по умолчанию
ASP.NET перекомпилирует эти ресурсы и заново запускает приложение ASP.NET.
Это может повлиять на общую производительность веб-узла. Если же
добавляются вспомогательные файлы ресурсов, то перекомпиляция ресурсов не
выполняется, но приложение ASP.NET перезапускается.
В ASP.NET можно создавать файлы ресурсов с
разными областями действия. Можно создавать
глобальные файлы ресурсов, т. е. файлы ресурсов,
которые может читать любая страница или любой
код конкретного веб-узла. Можно также создавать
локальные файлы ресурсов, хранящие ресурсы для
одной страницы ASP.NET (ASPX-файла).
В веб-приложении можно использовать любую
комбинацию глобальных и локальных файлов
ресурсов. Если предполагается использование
одних и тех же ресурсов несколькими страницами,
то обычно эти ресурсы добавляются в глобальный
файл ресурсов.
http://www.slideshare.net/IgorShkulipa 4
Способы локализации приложений
На странице ASP.NET можно использовать следующие способы чтения
значений из файлов ресурсов:
• Неявная локализация. ASP.NET берет значения для свойств из
локального файла ресурсов, основываясь на сопоставлении ключей со
свойствами.
• Явная локализация. Создается выражение, которое считывает
конкретный ресурс из локального или глобального файла ресурсов.
Необходимо создать выражения для каждого свойства элемента
управления, которое требуется установить с помощью ресурса.
http://www.slideshare.net/IgorShkulipa 5
Неявная локализация
Неявная локализация основана на использовании атрибута
meta:resourcekey.
<asp:Button ID="Button1" runat="server"
Text=""
meta:resourcekey="Button1" />
http://www.slideshare.net/IgorShkulipa 6
Явная локализация
http://www.slideshare.net/IgorShkulipa 7
Пример. Login.aspx
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master"
AutoEventWireup="true" CodeBehind="Login.aspx.cs"
Inherits="WFApplication1.Login" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent"
runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="FeaturedContent"
runat="server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="MainContent«
runat="server">
<asp:TextBox ID="LoginTB" runat="server" AutoPostBack="true"/>
<asp:TextBox ID="PassTB" runat="server" TextMode="Password"/>
<asp:Button ID="LoginBTN" runat="server"
Text="<%$Resources:Strings, LoginButtonText %>"
OnClick="LoginBTN_Click"/>
</asp:Content>
http://www.slideshare.net/IgorShkulipa 8
Site.Master
<nav>
<ul id="menu">
<li><a runat="server" href="~/">
<asp:Literal runat="server"
Text="<%$Resources:Strings, MainPageMenuItemText%>" />
</a></li>
<li><a runat="server" href="~/About">
<asp:Literal runat="server"
Text="<%$Resources:Strings, AboutMenuItemText%>" />
</a></li>
<li><a runat="server" href="~/Contact">
<asp:Literal runat="server"
Text="<%$Resources:Strings, ContactMenuItemText%>" />
</a></li>
<li><a runat="server" href="~/EditData">
<asp:Literal runat="server"
Text="<%$Resources:Strings, EditDataMenuItemText%>" />
</a></li>
<li><a runat="server" href="~/WebParts">
<asp:Literal runat="server"
Text="<%$Resources:Strings, WebPartsMenuItemText%>" />
</a></li>
</ul>
</nav>
http://www.slideshare.net/IgorShkulipa 9
Результат
http://www.slideshare.net/IgorShkulipa 10
Лабораторная работа №8.
К лабораторной работе №7 добавить использование ресурсов приложения
и локализацию.

More Related Content

What's hot (12)

C# Web. Занятие 06.
C# Web. Занятие 06.C# Web. Занятие 06.
C# Web. Занятие 06.
Igor Shkulipa
Industrial Programming Java - Lection Pack 01 - Building an application - Lav...
Industrial Programming Java - Lection Pack 01 - Building an application - Lav...Industrial Programming Java - Lection Pack 01 - Building an application - Lav...
Industrial Programming Java - Lection Pack 01 - Building an application - Lav...
Fedor Lavrentyev
Industrial Programming Java - Lection Pack 03 - Relational Databases - Lavren...
Industrial Programming Java - Lection Pack 03 - Relational Databases - Lavren...Industrial Programming Java - Lection Pack 03 - Relational Databases - Lavren...
Industrial Programming Java - Lection Pack 03 - Relational Databases - Lavren...
Fedor Lavrentyev
Средства разработки web приложений (Web frameworks)
Средства разработки web приложений
(Web frameworks)Средства разработки web приложений
(Web frameworks)
Средства разработки web приложений (Web frameworks)
Fedor Malyshkin
Лекция Android. БД SQLite, ContentProvider, Loader
Лекция Android. БД SQLite, ContentProvider, LoaderЛекция Android. БД SQLite, ContentProvider, Loader
Лекция Android. БД SQLite, ContentProvider, Loader
Александр Брич
Android - 13 - Database
Android - 13 - DatabaseAndroid - 13 - Database
Android - 13 - Database
Noveo
Как и зачем мы тестируем UI
Как и зачем мы тестируем UIКак и зачем мы тестируем UI
Как и зачем мы тестируем UI
Vyacheslav Lyalkin
C# Web. Занятие 11.
C# Web. Занятие 11.C# Web. Занятие 11.
C# Web. Занятие 11.
Igor Shkulipa
JavaScript Базовый. Занятие 10.
JavaScript Базовый. Занятие 10.JavaScript Базовый. Занятие 10.
JavaScript Базовый. Занятие 10.
Igor Shkulipa
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
JSib
создание живых сайтов
создание живых сайтовсоздание живых сайтов
создание живых сайтов
metaform
RichFaces: обзор
RichFaces: обзорRichFaces: обзор
RichFaces: обзор
Tatiana Aulachynskaya
C# Web. Занятие 06.
C# Web. Занятие 06.C# Web. Занятие 06.
C# Web. Занятие 06.
Igor Shkulipa
Industrial Programming Java - Lection Pack 01 - Building an application - Lav...
Industrial Programming Java - Lection Pack 01 - Building an application - Lav...Industrial Programming Java - Lection Pack 01 - Building an application - Lav...
Industrial Programming Java - Lection Pack 01 - Building an application - Lav...
Fedor Lavrentyev
Industrial Programming Java - Lection Pack 03 - Relational Databases - Lavren...
Industrial Programming Java - Lection Pack 03 - Relational Databases - Lavren...Industrial Programming Java - Lection Pack 03 - Relational Databases - Lavren...
Industrial Programming Java - Lection Pack 03 - Relational Databases - Lavren...
Fedor Lavrentyev
Средства разработки web приложений (Web frameworks)
Средства разработки web приложений
(Web frameworks)Средства разработки web приложений
(Web frameworks)
Средства разработки web приложений (Web frameworks)
Fedor Malyshkin
Лекция Android. БД SQLite, ContentProvider, Loader
Лекция Android. БД SQLite, ContentProvider, LoaderЛекция Android. БД SQLite, ContentProvider, Loader
Лекция Android. БД SQLite, ContentProvider, Loader
Александр Брич
Android - 13 - Database
Android - 13 - DatabaseAndroid - 13 - Database
Android - 13 - Database
Noveo
Как и зачем мы тестируем UI
Как и зачем мы тестируем UIКак и зачем мы тестируем UI
Как и зачем мы тестируем UI
Vyacheslav Lyalkin
C# Web. Занятие 11.
C# Web. Занятие 11.C# Web. Занятие 11.
C# Web. Занятие 11.
Igor Shkulipa
JavaScript Базовый. Занятие 10.
JavaScript Базовый. Занятие 10.JavaScript Базовый. Занятие 10.
JavaScript Базовый. Занятие 10.
Igor Shkulipa
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
JSib
создание живых сайтов
создание живых сайтовсоздание живых сайтов
создание живых сайтов
metaform

Viewers also liked (20)

Vijay bhosekar published article organic agriculture
Vijay bhosekar  published article  organic agricultureVijay bhosekar  published article  organic agriculture
Vijay bhosekar published article organic agriculture
vijay bhosekar
AdminMgr&IntDesCV_3.30.15
AdminMgr&IntDesCV_3.30.15AdminMgr&IntDesCV_3.30.15
AdminMgr&IntDesCV_3.30.15
Melanie Oringer
Vijay Bhosekar_ PP_Rodale Institute_Feb 9
Vijay Bhosekar_ PP_Rodale Institute_Feb 9Vijay Bhosekar_ PP_Rodale Institute_Feb 9
Vijay Bhosekar_ PP_Rodale Institute_Feb 9
vijay bhosekar
Investors | How it works
Investors | How it worksInvestors | How it works
Investors | How it works
GREXdotIN
Production diary 9
Production diary 9Production diary 9
Production diary 9
Laila Jaleel
C++ Базовый. Занятие 13.
C++ Базовый. Занятие 13.C++ Базовый. Занятие 13.
C++ Базовый. Занятие 13.
Igor Shkulipa
Laura mulvey’s male gaze theory
Laura mulvey’s male gaze theoryLaura mulvey’s male gaze theory
Laura mulvey’s male gaze theory
Laila Jaleel
Happily_Disconnected
Happily_DisconnectedHappily_Disconnected
Happily_Disconnected
Amber Perkins
Bollywood Movie Poster
Bollywood Movie PosterBollywood Movie Poster
Bollywood Movie Poster
Akash Hossain
Production diary 2
Production diary 2Production diary 2
Production diary 2
Laila Jaleel
C++ STL & Qt. Занятие 01.
C++ STL & Qt. Занятие 01.C++ STL & Qt. Занятие 01.
C++ STL & Qt. Занятие 01.
Igor Shkulipa
Nowhere But Niigata
Nowhere But NiigataNowhere But Niigata
Nowhere But Niigata
Steve Gillick
Km1Km1
Km1
karolinadiaz2015
16 FACTS ABOUT CHOCOLATE
16 FACTS ABOUT CHOCOLATE16 FACTS ABOUT CHOCOLATE
16 FACTS ABOUT CHOCOLATE
Nisha Thinisha
Simon Elliott
Simon ElliottSimon Elliott
Simon Elliott
Simechanical
Pest & Fumi-(Shiva Resume)
Pest & Fumi-(Shiva Resume)Pest & Fumi-(Shiva Resume)
Pest & Fumi-(Shiva Resume)
Shivakumar Jayaraman
PPC Masters February 2015
PPC Masters February 2015PPC Masters February 2015
PPC Masters February 2015
LucaSenatoreGb
objetosobjetos
objetos
problemas18
Your Five Senses
Your Five SensesYour Five Senses
Your Five Senses
Michelle Wines-Lynch
Production diary 20
Production diary 20Production diary 20
Production diary 20
Laila Jaleel

Similar to C# Web. Занятие 08. (20)

Trening modul2-webinar11
Trening modul2-webinar11Trening modul2-webinar11
Trening modul2-webinar11
olgaoov
Apache maven in java projects
Apache maven in java projectsApache maven in java projects
Apache maven in java projects
Asya Dudnik
Ruby on Rails. Пользовательский интерфейс
Ruby on Rails. Пользовательский интерфейсRuby on Rails. Пользовательский интерфейс
Ruby on Rails. Пользовательский интерфейс
Digital-агентство Мэйк
The Old New ASP.NET
The Old New ASP.NETThe Old New ASP.NET
The Old New ASP.NET
Vitaly Baum
Zend Framework и мультиязычность
Zend Framework и мультиязычностьZend Framework и мультиязычность
Zend Framework и мультиязычность
Stepan Tanasiychuk
Введение в maven
Введение в mavenВведение в maven
Введение в maven
Dmitry Zinushin
C# Desktop. Занятие 01.
C# Desktop. Занятие 01.C# Desktop. Занятие 01.
C# Desktop. Занятие 01.
Igor Shkulipa
Azure - облачные сервисы и приложения
Azure - облачные сервисы и приложенияAzure - облачные сервисы и приложения
Azure - облачные сервисы и приложения
Alexander Babich
C# Desktop. Занятие 15.
C# Desktop. Занятие 15.C# Desktop. Занятие 15.
C# Desktop. Занятие 15.
Igor Shkulipa
Meeting #4. Frameworks.
Meeting #4. Frameworks.Meeting #4. Frameworks.
Meeting #4. Frameworks.
Igor Khrol
системы сборок проектов
системы сборок проектовсистемы сборок проектов
системы сборок проектов
Romero78
Использование сторонних библиотек в веб-приложении
Использование сторонних библиотек в веб-приложенииИспользование сторонних библиотек в веб-приложении
Использование сторонних библиотек в веб-приложении
Denis Latushkin
Silverlight 4, есть ли жизнь на десктопе
Silverlight 4, есть ли жизнь на десктопеSilverlight 4, есть ли жизнь на десктопе
Silverlight 4, есть ли жизнь на десктопе
Alex Tumanoff
Share Point Workflow
Share Point WorkflowShare Point Workflow
Share Point Workflow
MaximKo
Глава 2: Среда разработки NetBeans
Глава 2: Среда разработки NetBeansГлава 2: Среда разработки NetBeans
Глава 2: Среда разработки NetBeans
metaform
Переводим без интернета: как мы делали Яндекс.Перевод для iOS, Иван Москалёв
Переводим без интернета: как мы делали Яндекс.Перевод для iOS, Иван  МоскалёвПереводим без интернета: как мы делали Яндекс.Перевод для iOS, Иван  Москалёв
Переводим без интернета: как мы делали Яндекс.Перевод для iOS, Иван Москалёв
Yandex
FT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это простоFT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это просто
Александр Ежов
Инфраструктура социального проекта
Инфраструктура социального проектаИнфраструктура социального проекта
Инфраструктура социального проекта
Media Gorod
Введение в Spring
Введение в SpringВведение в Spring
Введение в Spring
Unguryan Vitaliy
Trening modul2-webinar11
Trening modul2-webinar11Trening modul2-webinar11
Trening modul2-webinar11
olgaoov
Apache maven in java projects
Apache maven in java projectsApache maven in java projects
Apache maven in java projects
Asya Dudnik
Zend Framework и мультиязычность
Zend Framework и мультиязычностьZend Framework и мультиязычность
Zend Framework и мультиязычность
Stepan Tanasiychuk
C# Desktop. Занятие 01.
C# Desktop. Занятие 01.C# Desktop. Занятие 01.
C# Desktop. Занятие 01.
Igor Shkulipa
Azure - облачные сервисы и приложения
Azure - облачные сервисы и приложенияAzure - облачные сервисы и приложения
Azure - облачные сервисы и приложения
Alexander Babich
C# Desktop. Занятие 15.
C# Desktop. Занятие 15.C# Desktop. Занятие 15.
C# Desktop. Занятие 15.
Igor Shkulipa
Meeting #4. Frameworks.
Meeting #4. Frameworks.Meeting #4. Frameworks.
Meeting #4. Frameworks.
Igor Khrol
системы сборок проектов
системы сборок проектовсистемы сборок проектов
системы сборок проектов
Romero78
Использование сторонних библиотек в веб-приложении
Использование сторонних библиотек в веб-приложенииИспользование сторонних библиотек в веб-приложении
Использование сторонних библиотек в веб-приложении
Denis Latushkin
Silverlight 4, есть ли жизнь на десктопе
Silverlight 4, есть ли жизнь на десктопеSilverlight 4, есть ли жизнь на десктопе
Silverlight 4, есть ли жизнь на десктопе
Alex Tumanoff
Share Point Workflow
Share Point WorkflowShare Point Workflow
Share Point Workflow
MaximKo
Глава 2: Среда разработки NetBeans
Глава 2: Среда разработки NetBeansГлава 2: Среда разработки NetBeans
Глава 2: Среда разработки NetBeans
metaform
Переводим без интернета: как мы делали Яндекс.Перевод для iOS, Иван Москалёв
Переводим без интернета: как мы делали Яндекс.Перевод для iOS, Иван  МоскалёвПереводим без интернета: как мы делали Яндекс.Перевод для iOS, Иван  Москалёв
Переводим без интернета: как мы делали Яндекс.Перевод для iOS, Иван Москалёв
Yandex
FT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это простоFT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это просто
Александр Ежов
Инфраструктура социального проекта
Инфраструктура социального проектаИнфраструктура социального проекта
Инфраструктура социального проекта
Media Gorod

More from Igor Shkulipa (19)

Общие темы. Тема 03.
Общие темы. Тема 03. Общие темы. Тема 03.
Общие темы. Тема 03.
Igor Shkulipa
Общие темы. Тема 02.
Общие темы. Тема 02.Общие темы. Тема 02.
Общие темы. Тема 02.
Igor Shkulipa
Общие темы. Тема 01.
Общие темы. Тема 01.Общие темы. Тема 01.
Общие темы. Тема 01.
Igor Shkulipa
JavaScript Базовый. Занятие 06.
JavaScript Базовый. Занятие 06.JavaScript Базовый. Занятие 06.
JavaScript Базовый. Занятие 06.
Igor Shkulipa
JavaScript Базовый. Занятие 11.
JavaScript Базовый. Занятие 11.JavaScript Базовый. Занятие 11.
JavaScript Базовый. Занятие 11.
Igor Shkulipa
JavaScript Базовый. Занятие 05.
JavaScript Базовый. Занятие 05.JavaScript Базовый. Занятие 05.
JavaScript Базовый. Занятие 05.
Igor Shkulipa
JavaScript Базовый. Занятие 08.
JavaScript Базовый. Занятие 08.JavaScript Базовый. Занятие 08.
JavaScript Базовый. Занятие 08.
Igor Shkulipa
JavaScript Базовый. Занятие 07.
JavaScript Базовый. Занятие 07.JavaScript Базовый. Занятие 07.
JavaScript Базовый. Занятие 07.
Igor Shkulipa
JavaScript Базовый. Занятие 04.
JavaScript Базовый. Занятие 04.JavaScript Базовый. Занятие 04.
JavaScript Базовый. Занятие 04.
Igor Shkulipa
JavaScript Базовый. Занятие 03.
JavaScript Базовый. Занятие 03.JavaScript Базовый. Занятие 03.
JavaScript Базовый. Занятие 03.
Igor Shkulipa
JavaScript Базовый. Занятие 02.
JavaScript Базовый. Занятие 02.JavaScript Базовый. Занятие 02.
JavaScript Базовый. Занятие 02.
Igor Shkulipa
C# Web. Занятие 16.
C# Web. Занятие 16.C# Web. Занятие 16.
C# Web. Занятие 16.
Igor Shkulipa
C# Web. Занятие 14.
C# Web. Занятие 14.C# Web. Занятие 14.
C# Web. Занятие 14.
Igor Shkulipa
C# Web. Занятие 15.
C# Web. Занятие 15.C# Web. Занятие 15.
C# Web. Занятие 15.
Igor Shkulipa
C# Web. Занятие 10.
C# Web. Занятие 10.C# Web. Занятие 10.
C# Web. Занятие 10.
Igor Shkulipa
C# Web. Занятие 05.
C# Web. Занятие 05.C# Web. Занятие 05.
C# Web. Занятие 05.
Igor Shkulipa
C# Web. Занятие 03.
C# Web. Занятие 03.C# Web. Занятие 03.
C# Web. Занятие 03.
Igor Shkulipa
C# Web. Занятие 02.
C# Web. Занятие 02.C# Web. Занятие 02.
C# Web. Занятие 02.
Igor Shkulipa
C# Desktop. Занятие 13.
C# Desktop. Занятие 13.C# Desktop. Занятие 13.
C# Desktop. Занятие 13.
Igor Shkulipa
Общие темы. Тема 03.
Общие темы. Тема 03. Общие темы. Тема 03.
Общие темы. Тема 03.
Igor Shkulipa
Общие темы. Тема 02.
Общие темы. Тема 02.Общие темы. Тема 02.
Общие темы. Тема 02.
Igor Shkulipa
Общие темы. Тема 01.
Общие темы. Тема 01.Общие темы. Тема 01.
Общие темы. Тема 01.
Igor Shkulipa
JavaScript Базовый. Занятие 06.
JavaScript Базовый. Занятие 06.JavaScript Базовый. Занятие 06.
JavaScript Базовый. Занятие 06.
Igor Shkulipa
JavaScript Базовый. Занятие 11.
JavaScript Базовый. Занятие 11.JavaScript Базовый. Занятие 11.
JavaScript Базовый. Занятие 11.
Igor Shkulipa
JavaScript Базовый. Занятие 05.
JavaScript Базовый. Занятие 05.JavaScript Базовый. Занятие 05.
JavaScript Базовый. Занятие 05.
Igor Shkulipa
JavaScript Базовый. Занятие 08.
JavaScript Базовый. Занятие 08.JavaScript Базовый. Занятие 08.
JavaScript Базовый. Занятие 08.
Igor Shkulipa
JavaScript Базовый. Занятие 07.
JavaScript Базовый. Занятие 07.JavaScript Базовый. Занятие 07.
JavaScript Базовый. Занятие 07.
Igor Shkulipa
JavaScript Базовый. Занятие 04.
JavaScript Базовый. Занятие 04.JavaScript Базовый. Занятие 04.
JavaScript Базовый. Занятие 04.
Igor Shkulipa
JavaScript Базовый. Занятие 03.
JavaScript Базовый. Занятие 03.JavaScript Базовый. Занятие 03.
JavaScript Базовый. Занятие 03.
Igor Shkulipa
JavaScript Базовый. Занятие 02.
JavaScript Базовый. Занятие 02.JavaScript Базовый. Занятие 02.
JavaScript Базовый. Занятие 02.
Igor Shkulipa
C# Web. Занятие 16.
C# Web. Занятие 16.C# Web. Занятие 16.
C# Web. Занятие 16.
Igor Shkulipa
C# Web. Занятие 14.
C# Web. Занятие 14.C# Web. Занятие 14.
C# Web. Занятие 14.
Igor Shkulipa
C# Web. Занятие 15.
C# Web. Занятие 15.C# Web. Занятие 15.
C# Web. Занятие 15.
Igor Shkulipa
C# Web. Занятие 10.
C# Web. Занятие 10.C# Web. Занятие 10.
C# Web. Занятие 10.
Igor Shkulipa
C# Web. Занятие 05.
C# Web. Занятие 05.C# Web. Занятие 05.
C# Web. Занятие 05.
Igor Shkulipa
C# Web. Занятие 03.
C# Web. Занятие 03.C# Web. Занятие 03.
C# Web. Занятие 03.
Igor Shkulipa
C# Web. Занятие 02.
C# Web. Занятие 02.C# Web. Занятие 02.
C# Web. Занятие 02.
Igor Shkulipa
C# Desktop. Занятие 13.
C# Desktop. Занятие 13.C# Desktop. Занятие 13.
C# Desktop. Занятие 13.
Igor Shkulipa

C# Web. Занятие 08.

  • 1. Темы лекции: ASP.NET. Web Forms. Часть 4. Практическое задание: ASP.NET. Web Forms. Тренер: Игорь Шкулипа, к.т.н. Разработка Веб-приложений на платформе Microsoft .NET Framework. Занятие 8
  • 2. http://www.slideshare.net/IgorShkulipa 2 Варианты локализации приложения 1. На уровне реализации приложения. Для каждого языка в БД создается отдельная таблица, содержащая поля требующие перевода. 2. За счет внешних подключаемых модулей (Google translate, Bing translate, etc.) 1. На уровне ресурсных файлов.
  • 3. http://www.slideshare.net/IgorShkulipa 3 Ресурсы Ресурсы в глобальных файлах ресурсов также являются строго типизированными на случай, если потребуется вызывать эти файлы программным образом. При внесении изменений в глобальный или локальный файл ресурсов по умолчанию ASP.NET перекомпилирует эти ресурсы и заново запускает приложение ASP.NET. Это может повлиять на общую производительность веб-узла. Если же добавляются вспомогательные файлы ресурсов, то перекомпиляция ресурсов не выполняется, но приложение ASP.NET перезапускается. В ASP.NET можно создавать файлы ресурсов с разными областями действия. Можно создавать глобальные файлы ресурсов, т. е. файлы ресурсов, которые может читать любая страница или любой код конкретного веб-узла. Можно также создавать локальные файлы ресурсов, хранящие ресурсы для одной страницы ASP.NET (ASPX-файла). В веб-приложении можно использовать любую комбинацию глобальных и локальных файлов ресурсов. Если предполагается использование одних и тех же ресурсов несколькими страницами, то обычно эти ресурсы добавляются в глобальный файл ресурсов.
  • 4. http://www.slideshare.net/IgorShkulipa 4 Способы локализации приложений На странице ASP.NET можно использовать следующие способы чтения значений из файлов ресурсов: • Неявная локализация. ASP.NET берет значения для свойств из локального файла ресурсов, основываясь на сопоставлении ключей со свойствами. • Явная локализация. Создается выражение, которое считывает конкретный ресурс из локального или глобального файла ресурсов. Необходимо создать выражения для каждого свойства элемента управления, которое требуется установить с помощью ресурса.
  • 5. http://www.slideshare.net/IgorShkulipa 5 Неявная локализация Неявная локализация основана на использовании атрибута meta:resourcekey. <asp:Button ID="Button1" runat="server" Text="" meta:resourcekey="Button1" />
  • 7. http://www.slideshare.net/IgorShkulipa 7 Пример. Login.aspx <%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="WFApplication1.Login" %> <asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="FeaturedContent" runat="server"> </asp:Content> <asp:Content ID="Content3" ContentPlaceHolderID="MainContent« runat="server"> <asp:TextBox ID="LoginTB" runat="server" AutoPostBack="true"/> <asp:TextBox ID="PassTB" runat="server" TextMode="Password"/> <asp:Button ID="LoginBTN" runat="server" Text="<%$Resources:Strings, LoginButtonText %>" OnClick="LoginBTN_Click"/> </asp:Content>
  • 8. http://www.slideshare.net/IgorShkulipa 8 Site.Master <nav> <ul id="menu"> <li><a runat="server" href="~/"> <asp:Literal runat="server" Text="<%$Resources:Strings, MainPageMenuItemText%>" /> </a></li> <li><a runat="server" href="~/About"> <asp:Literal runat="server" Text="<%$Resources:Strings, AboutMenuItemText%>" /> </a></li> <li><a runat="server" href="~/Contact"> <asp:Literal runat="server" Text="<%$Resources:Strings, ContactMenuItemText%>" /> </a></li> <li><a runat="server" href="~/EditData"> <asp:Literal runat="server" Text="<%$Resources:Strings, EditDataMenuItemText%>" /> </a></li> <li><a runat="server" href="~/WebParts"> <asp:Literal runat="server" Text="<%$Resources:Strings, WebPartsMenuItemText%>" /> </a></li> </ul> </nav>
  • 10. http://www.slideshare.net/IgorShkulipa 10 Лабораторная работа №8. К лабораторной работе №7 добавить использование ресурсов приложения и локализацию.