Краткое руководство. Использование глобальных форматов (HTML)
[ Эта статья адресована разработчикам приложений среды выполнения Windows для Windows 8.x и Windows Phone 8.x. В случае разработки приложений для Windows 10 см. раздел последняя документация]
Чтобы приложение соответствовало международному стандарту, выбирайте при разработке правильные форматы даты, времени, чисел и валют. Это позволит позже адаптировать его для дополнительных языков и региональных параметров на международном рынке.
Введение
Windows используется во всем мире, на различных рынках. Пользователи Windows принадлежат к различным культурам, живут в разных странах и говорят на разных языках. Разумеется, многие разработчики создают свои приложения с учетом только собственного языка и культуры. Но когда приложение начинает приобретать известность на рынках других стран, могут возникнуть неожиданные сложности в связи с его адаптацией для других языков и регионов. Например, в разных странах или на разных языках формат отображения даты, времени, чисел, календаря, валюты, телефонных номеров, единиц измерения и размеров бумаги может отличаться.
Этот процесс можно упростить, если учесть несколько моментов при начальном проектировании приложения. Следуйте при разработке приложения приведенным рекомендациям по соответствию международному стандарту.
Требования к читателю
Планирование для мирового рынка
Задачи
Задавайте соответствующий формат дат и времени.
Существует множество вариантов представления даты и времени. В разных странах действуют различные правила в отношении порядка записи дня и месяца, часов и минут, а также разделителей. Также различаются способы отображения полных ("среда, 28 марта 2012 г.") и кратких ("28/03/12") форматов дат. И, разумеется, названия и сокращения дней недели и месяцев тоже зависят от языка.
Если вы хотите предоставить пользователям возможность выбора даты или времени, используйте стандартные элементы управления для выбора даты и времени. При этом будут автоматически использоваться форматы даты и времени, принятые для выбранного пользователем языка и страны.
Если вы сами хотите отображать дату и время, используйте средства форматирования Date/Time и Number, чтобы автоматически отображать выбранный пользователем формат даты, времени и чисел. Приведенный ниже код преобразует заданный объект DateTime в формат предпочитаемого языка и региона. Например, текущая дата 3 июня 2012 года будет выглядеть как "6/3/2012", если пользователь использует язык "английский (США)", но примет вид "03.06.2012", если избранный язык пользователя — "немецкий (Германия)".
// Use the Windows.Globalization.DateTimeFormatting.DateTimeFormatter class // to display dates and times using basic formatters. // Formatters for dates and times, using shortdate format. 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 = new Date(); // 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;
Задайте соответствующий формат чисел и валют.
В различных языках и регионах используются разные форматы чисел. Отличия в форматах чисел могут касаться правил записи десятичных долей, разделителей целой и дробной частей и обозначений валют. Используйте NumberFormatting для отображения десятичных чисел, процентов, многоразрядных чисел и валют. В большинстве случаев достаточно показывать числа или валюты в соответствии с текущими настройками пользователя. Но можно также применять средства форматирования, чтобы показывать валюту с учетом региональных стандартов.
Приведенный ниже код иллюстрирует отображение валют в соответствии с языком и регионом в настройках пользователя, а также с учетом определенной валютной системы:
// This scenario uses the Windows.Globalization.NumberFormatting.CurrencyFormatter class // to format a number as a currency. // Determine the current user's default currency. var userCurrency = Windows.System.UserProfile.GlobalizationPreferences.currencies; // Number to be formatted. var fractionalNumber = 12345.67; // Currency formatter using the current user's 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 US Dollar (specified as an ISO 4217 code) // but with the default number formatting for the current user. var currencyFormatUSD = new Windows.Globalization.NumberFormatting.CurrencyFormatter("USD"); var currencyUSD = currencyFormatUSD.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", ["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 US Dollar: " + currencyUSD + "\n" + "Formatted Euro (fr-FR defaults): " + currencyEuroFR;
Используйте календарь, соответствующий заданным региональным параметрам.
Для разных стран и языков применяются разные календари. Григорианский календарь по умолчанию применяется не во всех регионах. В некоторых странах пользователи могут выбирать альтернативные календари, например японский или арабский лунный календарь. Даты и время в календаре зависят также от часовых поясов и перехода на летнее время.
Используйте стандартные элементы управления для выбора даты и времени, чтобы пользователи могли выбрать дату в удобном для них календарном формате. Для более сложных сценариев, в которых требуется напрямую работать с календарем, библиотека Windows.Globalization предлагает класс Calendar, который позволяет отобразить календарь для данного языка, региона и типа календаря.
Учитывайте языковые и региональные параметры, заданные пользователем.
Если от языка или региональных параметров зависит функциональность вашего приложения, Windows дает возможность обращаться к этим настройкам с помощью Windows.System.UserProfile.GlobalizationPreferences. При необходимости используйте класс GlobalizationPreferences, чтобы получить данные текущего географического региона, предпочитаемого языка, валюты и других настроек пользователя.
Связанные разделы
Добавление элементов управления DatePicker и TimePicker
Инструкции и контрольный список для глобализации приложения
Планирование для мирового рынка
Ссылки
Windows.Globalization.Calendar
Windows.Globalization.DateTimeFormatting
Windows.Globalization.NumberFormatting
Windows.System.UserProfile.GlobalizationPreferences
Примеры
Подробности о календаре и пример расчетов