Criando o Windows 8
Blog da Loja do Windows para desenvolvedores
Visual Studio blog
IEBlog Português
Blogs da Equipe do Windows
Blog Inside Windows Live
Baixe o Windows 8 Release Preview
Dev Center - aplicativos com o estilo Metro
Siga-nos: @windevs
Conferência sobre a criação do Windows
Aplicativos com o estilo Metro do Windows
Developer Center de Windows Client
Deseja tornar seu novo aplicativo acessível para um mercado mundial e possivelmente aumentar seu número de clientes? Mais do que nunca, o Windows 8 facilita a escrita de um aplicativo que pode ser adaptado para diversos idiomas e culturas. Mostrarei aqui como criar um novo aplicativo mundial com pouca ou nenhuma modificação de código.
Sara Thomas descreveu as oportunidades de mercado disponíveis em seu artigo sobre o Kit de Ferramentas de Aplicativo Multilíngue. Espero que sua menção a "um possível alcance de mais de 4,5 bilhões de pessoas" e a possibilidade de vender aplicativos "em mais de 200 mercados" instigue você a prosseguir na leitura.
Digamos que você tenha criado um aplicativo da Windows Store que é executado em um tablet e usado em uma locadora de veículos. O funcionário e a cliente usam o aplicativo para ver a imagem de um carro para aluguel, sua descrição e localização na agência. Eles carregam o tablet enquanto inserem ou verificam informações sobre o carro (como a quilometragem atual) e anotam qualquer dano existente. A cliente assina o contrato no tablet.
O mesmo aplicativo será usado quando o carro for devolvido. Eles inserem a nova quilometragem e anotam qualquer dano adicional ao carro. Essa é uma experiência universal. As pessoas no mundo todo alugam carros e seguem um protocolo similar. Esse aplicativo é um ótimo candidato ao mercado global, criando várias oportunidades para você vender seu aplicativo.
Há dois processos estreitamente relacionados que você emprega ao desenvolver seu aplicativo:
Algumas coisas para levar em conta ao globalizar seu aplicativo:
Não crie aplicativos com formas estáticas. Os aplicativos da Windows Store oferecem suporte a recursos de layout que permitem a flexibilidade e o ajuste do seu aplicativo a vários tamanhos de texto, layouts e orientações. Consulte a seção Escolhendo um layout no Centro de Desenvolvimento para obter recomendações.
Se por algum motivo você precisar usar formas estáticas, verifique se as legendas dos botões e campos de texto são grandes o bastante para caber a tradução. As cadeias de texto em inglês podem aumentar até 40% ao serem traduzidas. É necessário espaço vertical adicional para idiomas com caracteres marcados como Å ou Ņ, ou que exijam tamanhos mínimos de fonte maiores para continuarem legíveis.
Seu aplicativo deve ser traduzido com facilidade para outros idiomas e culturas, quer a tradução seja feita por você mesmo ou por terceiros.
Tópicos para levar em conta:
Se você adotar um tom informal em seu aplicativo ou empregar jargões para um público específico, tenha certeza de explicar isso para seus tradutores.
Imagens que possam ser apropriadas em sua própria cultura podem ser ofensivas ou mal interpretadas em outras culturas.
Tópicos para levar em conta: Evite o uso de símbolos religiosos, animais ou combinação de cores associados a bandeiras nacionais ou movimentos políticos,
Evite mapas que incluam fronteiras nacionais ou regionais controversas. Refira-se a uma nação como "país/região". Você não deve colocar um território em disputa em uma lista identificada como "Países". Tenha cuidado ao usar cores para dar um significado. Cores podem ter conotações inesperadas em algumas culturas. Tente transmitir informações por outros meios, como tamanho, forma ou rótulos, para beneficiar os leitores daltônicos. Use APIs de globalização para expressar datas, horas, números e moedas nos devidos formatos.
Nosso aplicativo de aluguel de carro exibe as datas e o horário de saída e devolução do carro, e queremos exibir essas informações no formato e idioma apropriados. Verifique se a quilometragem está formatada com o grupo de dígitos correto e a moeda do preço do aluguel é exibida adequadamente.
Seu aplicativo da Windows Store pode usar namespaces de globalização para criar objetos de formatação. Esses objetos fornecem cadeias de caracteres formatadas para o idioma preferencial do usuário. Por exemplo, usar o JavaScript para exibir a data de hoje qualquer que seja o idioma do usuário: JavaScript: var dtf = new Windows.Globalization.DateTimeFormatting.DateTimeFormatter ("dayofweek day month year");var now = new Date();var el = document.getElementById('todaysDate');el.TextContent = dtf.format(now);
Seu aplicativo da Windows Store pode usar namespaces de globalização para criar objetos de formatação. Esses objetos fornecem cadeias de caracteres formatadas para o idioma preferencial do usuário. Por exemplo, usar o JavaScript para exibir a data de hoje qualquer que seja o idioma do usuário:
JavaScript:
var dtf = new Windows.Globalization.DateTimeFormatting.DateTimeFormatter ("dayofweek day month year");var now = new Date();var el = document.getElementById('todaysDate');el.TextContent = dtf.format(now);
Em C#: var dtf = new Windows.Globalization.DateTimeFormatting.DateTimeFormatter ("dayofweek day month year");DateTime now = DateTime.Now;todaysDate.Text = dtf.Format(now); // todaysDate is a XAML TextBlock.
Em C#:
var dtf = new Windows.Globalization.DateTimeFormatting.DateTimeFormatter ("dayofweek day month year");DateTime now = DateTime.Now;todaysDate.Text = dtf.Format(now); // todaysDate is a XAML TextBlock.
Para obter mais informações, consulte: Início Rápido: usando formatos globais. Veja nossos exemplos de formatação:
Agora que você tem todas as informações necessárias para criar um aplicativo globalizado, desejará começar a se aprofundar nos códigos. Ao escrever seu aplicativo, use a tecnologia dos recursos do Windows 8 para ajudar na localização.
Não escreva seu aplicativo pensando que o localizará em outro idioma mais tarde quando necessário. A melhor forma de tornar seu aplicativo localizável é pensar na primeira versão como sendo localizada para seu idioma inicial! Para tanto, siga essas etapas desde o começo:
Ao escrever o código, não inclua qualquer cadeia de caracteres, elementos de exibição ou controles codificados. Não inclua nada: nem um título, rótulo, legenda de botão, legenda de imagem ou parágrafo! A separação completa do código e dos recursos de cadeia de caracteres proporcionam dois benefícios complementares:
Em sua marcação, refira-se aos recursos usando identificadores de recurso (veremos como na próxima seção). As cadeias de caracteres serão recuperadas do recurso apropriado e exibidas quando a página for processada.
No seu código, carregue as cadeias de caracteres usando identificadores de recurso e as versões apropriadas serão recuperadas.
Apresentarei alguns destaques de um processo abordado de forma mais completa em Início Rápido: usando recursos de cadeia de caracteres (aplicativos da Windows Store com JavaScript e HTML). Use as informações nesse início rápido quando estiver realmente codificando.
No Visual Studio, crie uma pasta para guardar os arquivos de recursos. Guarde o arquivo de recursos de cada idioma em uma subpasta denominada com a marca de idioma BCP-47. O próprio arquivo de recursos geralmente é denominado resources.resjson.
Por exemplo, para o inglês dos EUA, crie o seguinte arquivo resources.resjson em uma pasta Cadeias de caracteres/en-US:
{ "greeting" : "Hello", "_greeting.comment" : "A welcome greeting.", "farewell" : "Goodbye", "_farewell.comment" : "A goodbye."}
Essa sintaxe é estritamente JSON (JavaScript Object Notation), onde você deve inserir uma vírgula após cada par de nome/valor, exceto o último. Nesse exemplo, "greeting" (saudações) e "farewell" (adeus) identificam as cadeias de texto que são exibidas. Também criamos "_greeting.comment" e "_farewell.comment" como comentários descrevendo as cadeias de caracteres. Os comentários são onde você fornece qualquer instrução especial aos tradutores sobre tom ou significado.
Em seu HTML, refira-se aos recursos de cadeias de caracteres usando identificadores de recurso:
<h2><span data-win-res="{textContent: 'greeting'}"></span></h2><h2><span data-win-res="{textContent: 'farewell'}"></span></h2>
Em JavaScript, você pode configurar as cadeias de caracteres em HTML da seguinte maneira:
var el = document.getElementById('header');var res = WinJS.Resources.getString('greeting');el.textContent = res.value;el.setAttribute('lang', res.lang);
Veja aqui mais destaques, dessa vez em Início Rápido: usando recursos de cadeia de caracteres (aplicativos da Windows Store com C#/VB/C++ e XAML).
No Visual Studio, crie uma pasta para guardar os arquivos de recursos. Guarde o arquivo de recursos de cada idioma em uma subpasta denominada com a marca de idioma BCP-47. O próprio arquivo de recursos geralmente é denominado Resources.resw.
Por exemplo, para o inglês dos EUA, crie o seguinte arquivo Resources.resw em uma pasta Cadeias de caracteres/en-US:
Nesse exemplo, "Greeting.Text" (texto de saudações) e "Farewell" (adeus) identificam as cadeias de texto a serem exibidas. O identificador "Greeting.Text" inclui a propriedade do controle XAML que recebe a cadeia de caracteres, e "Farewell" identifica uma cadeia de caracteres a ser carregada pelo código. Os comentários são onde você fornece qualquer instrução especial aos tradutores sobre tom ou significado.
Em seu XAML, refira-se ao recurso de cadeias de caracteres usando o identificador de recurso e a propriedade:
<TextBlock x:Uid="Greeting" Text="" />
Na linguagem C#, é possível obter cadeias de caracteres da seguinte forma:
var loader = new Windows.ApplicationModel.Resources.ResourceLoader();var string = loader.GetString('Farewell');
Se você não puder criar imagens que dispensem tradução, será possível criar versões localizadas, e o arquivo correto será carregado automaticamente pelo seu aplicativo. Na verdade, independente da localização, você usa a mesma tecnologia de recursos para criar várias versões de suas imagens com diferentes fatores de escala, configurações de contraste e muito mais.
Por exemplo, é possível criar um arquivo de logotipo em conjunto com diferentes fatores de escala, configurações de contraste e idiomas. Nomeie-os qualificadamente, como
Bastará seu aplicativo se referir a Images/logo.png, e a imagem apropriada será carregada. Consulte a seção Como nomear recursos usando qualificadores.
Atrai você com um grande número de mercados para seu aplicativo, portanto, você desejará conhecer os requisitos da Windows Store para começar a vendê-los. Continue lendo para obter informações detalhadas sobre a certificação de aplicativos e a seleção de mercados e idiomas.
Como se saiu nosso aplicativo de aluguel de carro? Se o desenvolvemos corretamente, ele conterá todas as cadeias de texto e imagens nos recursos. Exibirá datas, horas, números e moedas formatados adequadamente para o idioma preferencial do usuário. Quando desejarmos localizá-lo para outro mercado, nenhum código será alterado — adicionaremos um novo arquivo de recurso (traduzido por nossa própria conta ou enviado a um tradutor terceirizado), criaremos novos arquivos de imagem (se necessário) e recompilaremos o aplicativo.
Para obter mais informações sobre o processo descrito aqui, consulte
--Ray Shuman, programador, Windows Content Services
Agradecimentos especiais a Karl Bridge, Rylan Hawkins, Dave Shevitz e Bob Watson pela ajuda e contribuições neste artigo.