Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторна робота10.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
518 Кб
Скачать
☆

Структура мультимовного сайту в asp.Net mvc

Умовності при створенні ресурсів

При локалізації мають значення у найменуванні ресурсів суфікси, що позначають локалі. Так, ми можемо використовувати нейтральні культури, наприклад: Resource.en.resx. Тут суфікс en позначає англійську мову в цілому, всі англомовні культури. Але ми можемо конкретизувати культуру, наприклад, задати ресурс тільки для американської версії англійської: Resource.en - US.resx.

Суфікс культури має наступний формат: languagecode-country/regioncode, де languagecode - код мови, а country/regioncode - код субкультури. У нашому випадку використовуються тільки нейтральні культури без субкультур.

Відкриємо файл Resource.en.resx і переведемо всі ресурси на англійську мову:

З ресурсами ми завершили, тепер перейдемо до побудови самої логіки програми.

Логіка мультимовного сайту. Фільтр локалізації

Створимо логіку програми. Існують різні способи визначення культури і безпосередньої локалізації, наприклад, можна перевизначати клас контролера, Але в даному випадку ми поступимо по-іншому і створимо свій фільтр дій, який буде спрацьовувати при зверненні до дій контролера і виробляти локалізацію.

Створимо в проекті папку Filters і додамо в неї клас CultureAttribute:

Метод OnActionExecuted спрацьовує після виклику дії контролера. На початку він отримує встановлену культуру з куків. Потім ми дивимося, чи є така культура в списку. Зверніть увагу, що строкові значення культур в списку відповідають суфіксам культур в назвах файлів ресурсів (за винятком української мови, для якої використовується культура за замовчуванням).

Сама ж установка культури проводиться в наступних рядках:

Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(cultureName);

Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(cultureName);

Після цього для локалізації системи буде вибирано потрібний файл ресурсів.

Тепер створимо власне сам додаток: контролер і представлення. Додамо в папку Controllers контролер HomeController:

По суті контролер від звичайного відрізняється тільки тим, що до нього застосований раніше створений атрибут. І практично всю логіку з локалізації виконує цей атрибут.

Також в контролері визначено дію ChangeCulture, яка змінює мову за допомогою установки потрібних куків і потім перенаправляє на ту ж сторінку.

Тепер додамо представлення Index.cshtml, яке буде виглядати так :

Це звичайне представлення, тільки замість прямих вставок тексту використовуються ресурси: @Resources.Resource.IndexHeader. І змінимо стандартну майстер- сторінку _Layout.cshtml, додавши на неї функціонал перемикання мов:

Тут додали просту форму з випадаючим списком, яка буде відсилати вибір користувача на сервер методу ChangeCulture. Запустимо, відобразиться сторінка українською мовою:

Вибравши в випадаючому списку іншу мову, отримаємо локалізацію вже на іншу мову.

Також ми можемо створити і інші представлення, наприклад, для створення користувачів. Але загальні принципи залишаться ті ж.

ПУБЛІКАЦІЯ Web-Додаткa

Публікація на зовнішньому хостингу ( на прикладі somee.com )

Часто веб -додаток розміщують на якихось зовнішніх ресурсах, спеціально призначених для хостингу веб -сайтів.

Ми можемо вибрати який-небудь хостинг або скористатися хмарними ресурсами. Одним з таких ресурсів є хмарна платформа Windows Azure від компанії Microsoft. Використання даної хмарної платформи в принципі не безкоштовно, причому ціни деталізовані за багатьма параметрами, однак можна скористатися безкоштовним тестовим періодом на протязі місяця. На етапі тестового періоду, звичайно, будуть обмежені потужності, але, я думаю, їх буде достатньо, щоб оцінити можливості та перспективи свого сайту на даній платформі.

Крім того, для учасників програм MSDN, Microsoft Partner Network і BizSpark передбачено безкоштовне використання ресурсів даної платформи.

Також ми можемо скористатися яким-небудь хостингом з підтримкою ASP.NET. Зокрема, ми можемо скористатися хостингом somee.com, який в тому числі пропонує і безкоштовний хостинг, правда, з обмеженнями в порівнянні з платними послугами.

Отже, подивимося на прикладі хостингу somee.com, що представляє публікація сайту в мережі інтернет.

Звертаю увагу, що хостинг somee.com обраний лише як приклад, оскільки передбачає безкоштовний хостинг і є дуже не поганим майданчиком для тестування додатків asp.net mvc. Робота з іншими хостингами може відрізнятися від наведених далі вказівок.

Реєстрація на somee.com (vovauser bHik6*5f8x^Pwl$5@o0h

Для початку нам треба зареєструватися, створити обліковий запис і замовити безкоштовний хостинг. Перейдемо на головну сторінку хостингу somee.com.

У верхньому меню сайту знайдемо пункт Cotrol Panel і натиснемо на нього. Після цього ми опинимося на сторінці входу обліковий запис. Оскільки у нас ще немає облікового запису , натиснемо на цій сторінці на посилання Visit our store. Після чого потрапимо на сторінку замовлення хостингу. Так як ми замовляємо безкоштовний тестовий хостинг, то і виберемо його - він знаходиться в самому низу списку:

Вибір плану хостингу

Далі ми потрапимо на велику форму з реєстрацією нового облікового запису. Заповнюємо всі обов'язкові поля ( які позначені червоною звездчкой ). Точність вноситься інформації ніхто не перевіряє, тому можна писати що завгодно, головне запам'ятайте свої код користувача та пароль, під якими реєструєтеся (поля User ID і Password відповідно), під якими потім будете входити в систему somee.com:

Реєстрація облікового запису на somee.com

Після заповнення всіх обов'язкових полів натиснемо на кнопку внизу форми. І потрапимо на форму замовлення хостингу. Оскільки ми вже замовили безкоштовний хостинг, то форма буде містити відповідне замовлення. Відзначимо обидва прапорці на формі і натиснемо на кнопку Continue:

Після чого ми потрапимо в обліковий запис, де треба буде створити сайт. На панелі управління обліковим записом виберемо для сайту небудь ім'я і натиснемо внизу форми кнопку:

Створення сайту на somee.com

У моєму випадку ім'я сайту eugene22, значить, я буду звертатися з браузера до цього сайту через запит eugene22.somee.com .

І якщо все пройшло вдало, сервер сповістить нас про це зєднання "You website was created successfully !". Після чого ми можемо вже завантажувати на сайт наші файли програми і баз даних і керувати сайтом.