Поделиться через


Краткое руководство. Использование глобальных форматов (HTML)

[ Эта статья адресована разработчикам приложений среды выполнения Windows для Windows 8.x и Windows Phone 8.x. В случае разработки приложений для Windows 10 см. раздел последняя документация]

Чтобы приложение соответствовало международному стандарту, выбирайте при разработке правильные форматы даты, времени, чисел и валют. Это позволит позже адаптировать его для дополнительных языков и региональных параметров на международном рынке.

Введение

Windows используется во всем мире, на различных рынках. Пользователи Windows принадлежат к различным культурам, живут в разных странах и говорят на разных языках. Разумеется, многие разработчики создают свои приложения с учетом только собственного языка и культуры. Но когда приложение начинает приобретать известность на рынках других стран, могут возникнуть неожиданные сложности в связи с его адаптацией для других языков и регионов. Например, в разных странах или на разных языках формат отображения даты, времени, чисел, календаря, валюты, телефонных номеров, единиц измерения и размеров бумаги может отличаться.

Этот процесс можно упростить, если учесть несколько моментов при начальном проектировании приложения. Следуйте при разработке приложения приведенным рекомендациям по соответствию международному стандарту.

Требования к читателю

Планирование для мирового рынка

Задачи

  1. Задавайте соответствующий формат дат и времени.

    Существует множество вариантов представления даты и времени. В разных странах действуют различные правила в отношении порядка записи дня и месяца, часов и минут, а также разделителей. Также различаются способы отображения полных ("среда, 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;
    
  2. Задайте соответствующий формат чисел и валют.

    В различных языках и регионах используются разные форматы чисел. Отличия в форматах чисел могут касаться правил записи десятичных долей, разделителей целой и дробной частей и обозначений валют. Используйте 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;
    
  3. Используйте календарь, соответствующий заданным региональным параметрам.

    Для разных стран и языков применяются разные календари. Григорианский календарь по умолчанию применяется не во всех регионах. В некоторых странах пользователи могут выбирать альтернативные календари, например японский или арабский лунный календарь. Даты и время в календаре зависят также от часовых поясов и перехода на летнее время.

    Используйте стандартные элементы управления для выбора даты и времени, чтобы пользователи могли выбрать дату в удобном для них календарном формате. Для более сложных сценариев, в которых требуется напрямую работать с календарем, библиотека Windows.Globalization предлагает класс Calendar, который позволяет отобразить календарь для данного языка, региона и типа календаря.

  4. Учитывайте языковые и региональные параметры, заданные пользователем.

    Если от языка или региональных параметров зависит функциональность вашего приложения, Windows дает возможность обращаться к этим настройкам с помощью Windows.System.UserProfile.GlobalizationPreferences. При необходимости используйте класс GlobalizationPreferences, чтобы получить данные текущего географического региона, предпочитаемого языка, валюты и других настроек пользователя.

Связанные разделы

Добавление элементов управления DatePicker и TimePicker

Инструкции и контрольный список для глобализации приложения

Планирование для мирового рынка

Ссылки

Windows.Globalization.Calendar

Windows.Globalization.DateTimeFormatting

Windows.Globalization.NumberFormatting

Windows.System.UserProfile.GlobalizationPreferences

Примеры

Подробности о календаре и пример расчетов

Пример форматирования даты и времени

Пример настроек глобализации

Пример форматирования и разбора чисел