Локалізація додатків Metro

Поговоривши про ресурси XAML, перейдемо до ресурсів додатки, таким як спеціальні файли ресурсів, що містять рядки тексту для локалізації інтерфейсу Припустимо, Ви розробляєте додаток на двох мовах – англійській і російській Природно, що всі написи, які зустрічаються в інтерфейсі, необхідно перевести на обидві мови і реалізувати механізм, що дозволяє підставляти локалізацію, яка підходить конкретному користувачеві Це робиться за допомогою ресурсів програми При цьому механізм локалізації відрізняється від тих, які зустрічалися в WPF або Silverlight

Створіть простий додаток на основі порожнього шаблону, що містить звичайну кнопку

&ltButton Width=&quot100&quot Height=&quot50&quot Content=&quotButton 1&quot Margin=&quot5&quot&gt

Єдиним атрибутом, який необхідно локалізувати, в цьому прикладі є атрибут Content Спробуємо зробити так, щоб кнопка в англійському варіанті додатки містила текст Hello, А в російській – Привіт.

На першому етапі створимо в нашому проекті дві папки –en-US іru-RU Грунтуючись на іменах папок (можуть бути вкладені в інші папки), компілятор формує ресурси для того чи іншої мови

Додамо в кожну папку файл Resourcesresw

Рис 32

У даному випадку імя файлу є суттєвим Якщо задати інше, то компілятор сам не знайде ресурси

Як і раніше, файл ресурсів можна редагувати за допомогою спеціального дизайнера Зверніть увагу, що тут можуть бути тільки рядки тексту

Рис 33

Створимо в кожному з файлів строкове значення з імямmyTxtContent Такий формат обраний не випадково, оскільки в ресурсах Windows 8 ключ рядки несе в собі інформацію про властивість, яке буде локалізовано Очевидно, що myTxt – це якийсь ідентифікатор елемента, який задається за допомогою атрибуту x:Uid

&ltButton Width=&quot100&quot Height=&quot50&quot x:Uid=&quotmyTxt&quot Content=&quotButton 1&quot Margin=&quot5&quot&gt

&lt/Button&gt

Тепер, щоб локалізація почала працювати, необхідно прописати в маніфесті додатка все підтримувані мови Це не можна зробити в дизайнера, отже виберіть файл Packageappmanifest і за допомогою контекстного пункту менюView   Code  відображуватимете його вміст РозділResources пропишіть, як показано нижче

&ltResources&gt

&ltResource Language=&quoten-us&quot/&gt

&ltResource Language=&quotru-ru&quot/&gt

&lt/Resources&gt

Тепер можна запускати додаток Правда, поки не ясно, яку з мов буде відображатися Останнє легко визначити, перейшовши у вікно Language панелі управління (Control Panel) Windows 8

Рис 34

Мова, який стоїть у списку першим, і буде використовуватися за замовчуванням

У нашому випадку додаток відобразить кнопку з написом «Привіт»

Якщо Ви хочете зберігати в файлі ресурсів рядки, відмінні від властивостей елемента (адреси зображень, параметри тощо), то це можна робити за допомогою обєкту класу ResourceLoader

ResourceLoader rl = new ResourceLoader() string s = rlGetString(«Test&quot)

Цікавий той факт, що якщо Ви спробуєте отримати доступ до імені рядка, що містить точку (інтерпретується як імя обєкта та імя атрибута цього обєкта), то відбудеться виняток А ось рядки зі звичайними іменами можна вибирати з легкістю

Сергій Лутай, Сергій Байдачний, Windows 8 для C # розробників

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*