Guia de início rápido: usando formatos preparados para a globalização (HTML)

[ Este artigo destina-se aos desenvolvedores do Windows 8.x e do Windows Phone 8.x que escrevem aplicativos do Windows Runtime. Se você estiver desenvolvendo para o Windows 10, consulte documentação mais recente ]

Crie um aplicativo preparado para ser global formatando adequadamente datas, horas, números e moedas. Isso permitirá adaptá-lo posteriormente a outras culturas, regiões e idiomas do mercado global.

Introdução

O Windows é usado no mundo todo, nos mais diversos mercados, por clientes de várias culturas, regiões geográficas ou idiomas. Ao criar seus aplicativos, muitos desenvolvedores pensam só no próprio idioma e na própria cultura. Mas quando o aplicativo começa a crescer em outros mercados, sua adaptação para novos idiomas e regiões pode apresentar dificuldades de formas inesperadas. Datas, horas, números, calendários, moedas, números de telefone, unidades de medida e tamanhos de papel são todos itens que podem ser exibidos de maneira diferente dependendo da cultura.

Para simplificar o processo de adaptação a novos mercados, basta considerar alguns detalhes ao criar o aplicativo original. Siga estas diretrizes ao criar seu aplicativo para prepará-lo para uma atuação global.

Pré-requisitos

Plano para um mercado global

Tarefas

  1. Formate datas e horários de forma adequada.

    Há muitas maneiras diferentes de mostrar corretamente as datas e horários. Diferentes regiões e culturas usam diferentes convenções para a ordem de dias e meses em datas, para a separação de horas e minutos em horários e até mesmo para a pontuação usada como um separador. Além disso, as datas podem ser exibidas em vários formatos longos ("Quarta-feira, 28 de março de 2012") ou curtos ("28/03/2012"), o que pode variar entre as culturas. E, claro, os nomes e as abreviações de dias da semana e meses do ano diferem em cada idioma.

    Se você precisa permitir que os usuários escolham uma data ou selecionem uma hora, use os controles padrão Se você precisa permitir que os usuários escolham uma data ou selecionem uma hora, use os controles padrão. Eles usaram automaticamente os formatos de data e hora para o idioma e região preferenciais do usuário.

    Se você precisar exibir datas ou horas, use os formatadores Date/Time e Number para exibir automaticamente o formato preferido do usuário para datas, horários e números. O código a seguir formata uma Data/Hora usando o idioma e a região de preferência. Por exemplo, se a data atual for 3 de junho de 2012, o formatador produzirá "6/3/2012" se o usuário preferir inglês (Estados Unidos), mas usará "03.06.2012" se ele preferir alemão (Alemanha):

    // 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. Formate datas e moedas de forma adequada.

    Diferentes culturas formatam números de maneiras distintas. Diferenças de formato podem incluir o número de dígitos decimais a serem exibidos, os caracteres a serem usados como separadores decimais e o símbolo de moeda a ser usado. Use NumberFormatting para exibir números decimais, percentuais, em milhar e moedas. Na maioria dos casos, você simplesmente exibe números ou moedas de acordo com as preferências do usuário atual. Mas você também pode usar os formatadores para exibir uma moeda para uma determinada região ou formato

    O código a seguir é um exemplo sobre como exibir moedas de acordo com o idioma e a região de preferência do usuário ou para um sistema monetário específico:

    // 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. Use um calendário culturalmente apropriado.

    O calendário também difere conforme a região e o idioma. O calendário gregoriano não é o padrão de toda região. Usuários de algumas regiões podem escolher calendários alternativos, como o calendário de eras japonês ou os calendários lunares árabes. Datas e horas no calendário também dependem dos vários fusos horários e do horário de verão.

    Use os controles padrão do selecionador de data e hora para permitir que os usuários escolham uma data, garantindo assim o uso do formato de calendário preferido. Para cenários mais complexos, onde pode ser necessário trabalhar diretamente com operações de datas do calendário, o Windows.Globalization oferece uma classe Calendar que fornece uma representação de calendário apropriada à cultura, região e ao tipo de calendário em questão.

  4. Respeite as preferências de idioma e cultura do usuário.

    Para cenários em que você fornecer uma funcionalidade diferente com base no idioma, região ou preferências culturais do usuário, o Windows oferece uma forma de acessar essas preferências, através de Windows.System.UserProfile.GlobalizationPreferences. Quando necessário, use a classe GlobalizationPreferences para obter o valor da atual região geográfica do usuário, idiomas preferidos, moedas preferidas etc.

Tópicos relacionados

Adicionando seletores de data e seletores de hora

Diretrizes e lista de verificação para globalizar seu aplicativo

Plano para um mercado global

Referência

Windows.Globalization.Calendar

Windows.Globalization.DateTimeFormatting

Windows.Globalization.NumberFormatting

Windows.System.UserProfile.GlobalizationPreferences

Exemplos

Detalhes do calendário e exemplo de matemática

Exemplo de data e hora

Exemplo de preferências de globalização

Exemplo de formatação de número e análise