27
Михаил Галушко, Microsoft MVP Локализация и глобализация для Windows Phone Store приложений WinRT Apps 24 апреля 2014 Building Apps for Windows Phone 8.1 Jump Start Building Windows Phone Store Apps using C# and XAML

Локализация и глобализация для Windows Phone Store приложений

Embed Size (px)

DESCRIPTION

Локализация и глобализация для Windows Phone Store приложений

Citation preview

Page 1: Локализация и глобализация для Windows Phone Store приложений

Михаил Галушко, Microsoft MVP

Локализация и глобализация для Windows Phone Store приложений

WinRT Apps

24 апреля 2014

Building Apps for Windows Phone 8.1 Jump Start

Building Windows Phone Store Apps using C# and XAML

Page 2: Локализация и глобализация для Windows Phone Store приложений

Ключевые темы

Перспективы для разработчиковРазрабатываем Windows XAMLприложение с локализациейГлобализацияПеревод

Page 3: Локализация и глобализация для Windows Phone Store приложений

Зачем локализировать свое приложение?

Page 4: Локализация и глобализация для Windows Phone Store приложений

Доступность Windows Phone Store: 191 страна

Page 5: Локализация и глобализация для Windows Phone Store приложений

Поддержка 54 языков

AfrikaansAlbanianArabicAzerbaijani (Latin)

BasqueBelarusianBulgarianCatalanChinese (Simplified)

Chinese (Traditional)

CroatianCzechDanishDutch

English (UK)

English (US)

EstonianFilipinoFinnishFrench (Canada)

French (France)

GalicianGermanGreekHausaHebrewHindiHungarian

26 языков добавлено в Windows Phone 8

IndonesianItalianJapaneseKazakhKoreanLatvianLithuanianMacedonianMalayNorwegian (Bokmål)

PersianPolishPortuguese (BR)

Portuguese (PT)

RomanianRussianSerbian (Latin)

SlovakSlovenianSpanish (Mexico)

Spanish (Spain)

SwedishTurkishUkrainianUzbek (Latin)

Vietnamese

50 languages supported in Windows Phone 8.0 4 языка добавлено в Windows Phone 8.1 Всего 54 языка

Page 6: Локализация и глобализация для Windows Phone Store приложений

Приоритетные языки

Подробности: http://blogs.windows.com/windows_phone/b/wpdev/archive/2013/06/21/tips-for-localizing-and-monetizing-your-app-for-windows-phone-users.aspx

ТОП языков по количеству пользователей (01 – 06.2013)

Поддерживают 8 языков

ТОП 15 приложений (WP7 & 8)

Если используете только английский – покрываете 25% пользователй. Вместе с китайским и испанским – увеличиваете покрытие до~60%, после добавления русского, итальянского, португальского и французского покрываете большинство пользователей.

Page 7: Локализация и глобализация для Windows Phone Store приложений

Приоритетные регионы

Подробности: http://blogs.windows.com/windows_phone/b/wpdev/archive/2013/06/21/tips-for-localizing-and-monetizing-your-app-for-windows-phone-users.aspx

Количество загрузок по регионам (01 – 06.2013) 12 из ТОП 15 приложений

доступны в более чем 187 странах.

Китай и Латинская Америка

скачивает в 2 раза больше, чем США

Page 8: Локализация и глобализация для Windows Phone Store приложений

Улучшения для пользователя: поддержка языков

Page 9: Локализация и глобализация для Windows Phone Store приложений

Панель управления языкамиДобавление языков на устройство

Все 54 языка предустановлены на телефонМожем задать список языков и отсортировать по приоритетностиЯзык определяется по регионуДополнительные данные по выбранным языкам будут скачены автоматически

Page 10: Локализация и глобализация для Windows Phone Store приложений

Демо:Настройки языка и регионав Windows Phone 8.1

Page 11: Локализация и глобализация для Windows Phone Store приложений

Разработка приложения с локализацией

Page 12: Локализация и глобализация для Windows Phone Store приложений

Определение кода языкаПользователи указывают список языков в настройках устройстваРазработчик указывает список поддерживаемых языковЯзык указывается формате BCP-47Поддерживаются стандартные форматы (“en” – English) и региональные (“en-US”, “en-GB”, “en-HK”)

Windows определяет язык по совпадениюнастроек пользователя и разработчикаНапример, для значения “en-US” перебор идет в порядке:“en-US”, “en”, “en-GB” и тдЕсли не найдено совпадений – выбирается язык по-умолчанию

Page 13: Локализация и глобализация для Windows Phone Store приложений

Отдельные локализации для каждого языка

<TextBlock x:Uid="Greeting" Text="" />

Используем ресурсы в коде:

Используем ресурсы в XAML:

var loader = new

Windows.ApplicationModel.Resources.ResourceLoader();

var string = loader.GetString('Farewell');

Page 14: Локализация и глобализация для Windows Phone Store приложений

Локализация манифеста приложенияВы также можете локализировать поля в манифесте: название, описание..Укажите значение ms-resource:TokenName, где TokenName – название в файле ресурсов

Page 15: Локализация и глобализация для Windows Phone Store приложений

Работа с параметро-зависимыми ресурсами Windows поддерживает автоматическую загрузку ресурсовВ коде или разметке вы указываете: imagname.ext без указания дополнительных параметров

Source=“Images/logo.png” вместоSource=“Images/en-US/logo.scale-180_contrast-white.png

Читайте в MSDN: How to name resources using qualifiers http://msdn.microsoft.com/en-us/library/windows/apps/hh965324.aspx

Page 16: Локализация и глобализация для Windows Phone Store приложений

Multilingual App Toolkit (MAT)

Используем для локализации с помощью WP SDKИнтегрируется с Visual Studio 2013 и Windows Phone SDK для Windows Phone Store приложений, поддерживает: автоматический перевод, управления файлами с переводом.Помогает отслеживать изменения в переводахПредоставляет UI для управления языкамиПоддерживает стандарт XLIFFИнтегрируется с Microsoft Translator для перевода

Page 17: Локализация и глобализация для Windows Phone Store приложений

Демо:Multilingual App Toolkit (MAT)

Page 18: Локализация и глобализация для Windows Phone Store приложений

Языковые наборы MicrosoftТерминологияПереводы UI для продуктов MicrosoftГайды по локализации

Page 19: Локализация и глобализация для Windows Phone Store приложений
Page 20: Локализация и глобализация для Windows Phone Store приложений

Глобализация

Page 21: Локализация и глобализация для Windows Phone Store приложений

API для глобализации

Windows.Globalization.CalendarGetTimeZone()ChangeTimeZone()TimeZoneAsString()IsDaylightSavingTime()

Windows.Globalization.DateTimeFormattingFormat(DateTime.Now, "America/Guatemala“)

Page 22: Локализация и глобализация для Windows Phone Store приложений

Форматируем дату и время

// Use the Windows.Globalization.DateTimeFormatting.DateTimeFormatter class // to display dates and times using basic formatters. var sdatefmt = new Windows.Globalization.DateTimeFormatting.DateTimeFormatter("shortdate"); var stimefmt = new Windows.Globalization.DateTimeFormatting.DateTimeFormatter("shorttime"); // Obtain the date that will be formatted. var dateToFormat = DateTime.Now; // Perform the actual formatting. var sdate = sdatefmt.Format(dateToFormat); var stime = stimefmt.Format(dateToFormat); // Results for display. var results = "Short Date: " + sdate + "\n" + "Short Time: " + stime;

Стандартные компоненты используют текущие настройки приложения. Вы также можете задать любой формат для отображения данных:

Page 23: Локализация и глобализация для Windows Phone Store приложений

Форматируем числа и валюту

// Determine the current users default currency. var userCurrency = Windows.System.UserProfile.GlobalizationPreferences.Currencies[0]; // Number to be formatted. var fractionalNumber = 12345.67; // Currency formatter using the current users preference settings for number formatting. var userCurrencyFormat = new Windows.Globalization.NumberFormatting.CurrencyFormatter(userCurrency); var currencyDefault = userCurrencyFormat.Format(fractionalNumber);

// Create a formatter initialized to a specific currency. // In this case it's the Euro with the default number formatting for France. var currencyFormatEuroFR = new Windows.Globalization.NumberFormatting.CurrencyFormatter("EUR", new[] { "fr-FR" }, "FR"); var currencyEuroFR = currencyFormatEuroFR.Format(fractionalNumber);

// Results for display. var results = "Fixed number (" + fractionalNumber + ")\n" + "With user's default currency: " + currencyDefault + "\n" + "Formatted Euro (fr-FR defaults): " + currencyEuroFR;

Используйте NumberFormatting для форматирования

Page 24: Локализация и глобализация для Windows Phone Store приложений

Используем календарь

Календарь отличается в зависимости от региона и языкаСтандартные компоненты поддерживают текущие настройки приложенияИспользуйте класс Windows.Globalization.Calendar для работы с датами

Page 25: Локализация и глобализация для Windows Phone Store приложений

Modern Resource Technology (MRT)

Page 26: Локализация и глобализация для Windows Phone Store приложений

Наборы MRT

MRT определяет пакет ресурсов и изображений для каждой платформы и набора настроекПакеты AppX: fatpacks или bundlesFatpacks: содержит все варианты ресурсов (как XAP)Bundles: содержит только пакет ресурсов для текущих настроек пользователя

ПреимуществаПользователь скачивает только необходимый пакет ресурсовПакет занимает меньше места

Доп инфо: см. сессию 21: Подготовка к публикации приложения

Page 27: Локализация и глобализация для Windows Phone Store приложений

The information contained in this document represents the current view of Microsoft Corp. on the issues discussed as of the date of publication. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information presented after the date of publication. This guide is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form, by any means (electronic, mechanical, photocopying, recording or otherwise), or for any purpose, without the express written permission of Microsoft. Microsoft may have patents, patent applications, trademarks, copyrights or other intellectual property rights covering subject matter in this document. Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights or other intellectual property. The example companies, organizations, products, domain names, email addresses, logos, people, places, and events depicted herein are fictitious. No association with any real company, organization, product, domain name, email address, logo, person, place, or event is intended or should be inferred.