Localização de aplicativos

Flash Player 9 e posterior, Adobe AIR 1.0 e posterior

Localização é o processo de inclusão de recursos para oferecer suporte a vários códigos de idiomas. Código de idiomas é a combinação de um idioma e um código de um país. Por exemplo, en_US se refere ao idioma inglês falado nos Estados Unidos e fr_FR se refere ao idioma francês falado na França. Para localizar um aplicativo para esses códigos de idiomas, você fornece dois conjuntos de recursos: um para o código de idioma en_US e um para o código de idiomas fr_FR.

Os códigos de idiomas podem compartilhar idiomas. Por exemplo, en_US e en_GB (Grã-Bretanha) são códigos de idiomas diferentes. Nesse caso, os dois códigos de idiomas usam o idioma inglês, mas o código do país indica que são códigos de idiomas diferentes e podem, portanto, usar recursos diferentes. Por exemplo, um aplicativo no código de idioma sen_US pode escrever a palavra "color", ao passo que ela seria "colour" no código de idiomas en_GB. Além disso, unidades monetárias seriam representadas em dólares ou em libras, dependendo do código de idiomas, e o formato de data e hora também pode ser diferente.

Você também podem fornecer um conjunto de recursos para um idioma sem especificar o código do país. Por exemplo, você pode fornecer recursos en para o idioma Inglês e fornecer recursos adicionais do código de idiomas en_US, específicos para inglês dos EUA.

A localização vai além de só traduzir as sequências usadas no aplicativo. Ela também pode incluir qualquer tipo de recurso, como arquivos de áudio, imagens e vídeos.

Seleção de código de idiomas

Para determinar qual local seu conteúdo ou aplicativo usa, você pode usar um dos seguintes métodos:

  • Pacote flash.globalization — Utilize as classes sensíveis a localidades no pacote flash.globalization para obter a localidade padrão para o usuário com base no sistema operacional e nas preferências do usuário. Esta é a aproximação preferida para aplicativos que serão executados no Flash Player 10.1 ou posterior ou AIR 2.0 ou tempos de execução posteriores. Consulte Determinando a localidade para mais informações.

  • Prompt de usuário: você pode iniciar o aplicativo em algum código de idiomas padrão e, então, solicitar ao usuário que selecione o código de idiomas preferido.

  • (Apenas no AIR)Capabilities.languages : a propriedade Capabilities.languages lista uma matriz de idiomas disponíveis nos idiomas de preferência do usuário, conforme definido pelo sistema operacional. As sequências contêm tags de idioma (e informações de script e região, quando aplicável) definidas por RFC4646 ( http://www.ietf.org/rfc/rfc4646.txt ). As sequências usam hífens como delimitadores (por exemplo, "en-US" ou "ja-JP" ). A primeira entrada na matriz retornada tem a mesma ID de idioma principal da propriedade language. Por exemplo, se languages[0] for definido como "en-US" , a propriedade language será definida como "en". Entretanto, se a propriedade language for definida como "xu" (especificando um idioma desconhecido), o primeiro elemento na matriz languages é diferente.

  • Capabilities.language : a propriedade Capabilities.language oferece o código de idioma da interface do usuário do sistema operacional. No entanto, essa propriedade está limitada a 20 idiomas conhecidos. E, nos sistemas em inglês, essa propriedade retorna somente o código do idioma, não o código do país. Por esses motivos, é melhor usar o primeiro elemento na matriz Capabilities.languages .

Localização de conteúdo Flex

O Adobe Flex inclui uma estrutura para localização de conteúdo Flex. Essa estrutura inclui as classes Locale, ResourceBundle e ResourceManagerImpl, bem como as interfaces IResourceBundle e IResourceManagerImpl.

Uma biblioteca de localização do Flash contendo classes de utilitário para classificar localidades de aplicativos está disponível no Google Code (http://code.google.com/p/as3localelib/).

Localização de conteúdo Flash

O Adobe Flash Professional inclui a classe Locale nos componentes do ActionScript 3.0. A classe Locale permite controlar como o arquivo SWF exibe o texto multilíngue. O painel Strings do Flash permite usar IDs de string em vez de literais de string nos campos de texto dinâmicos. Essa facilidade permite criar um arquivo SWF que exibe o texto carregado de um arquivo XML específico do idioma. Para obter mais informações sobre como utilizar a classe Locale, consulte Referência do ActionScript® 3.0 para Adobe® Flash® Platform .

Localização de aplicativos AIR

O AIR SDK oferece uma estrutura de localização HTML (contida no arquivo AIRLocalizer.js). Este framework inclui APIs para auxiliar no trabalho com diversas localidades em um aplicativo com base em HTML. Uma biblioteca ActionScript para classificação de localidades está disponível em http://code.google.com/p/as3localelib/.

Localização de datas, horas e moedas

A maneira como os aplicativos apresentam dados, horas e moedas varia consideravelmente em cada código de idiomas. Por exemplo, o padrão dos EUA para representação de datas é mês/dia/ano, enquanto o padrão europeu para representação de datas é dia/mês/ano.

Você pode gravar um código para formatar datas, horas e moedas. Por exemplo, o código a seguir converte o objeto Date no formato mês/dia/ano ou no formato dia/mês/ano. Se a variável locale (representando o código de idiomas) for definida como "en_US" , a função retornará o formato mês/dia/ano. O exemplo converte o objeto Date no formato dia/mês/ano de todos os outros códigos de idiomas:

function convertDate(date) 
{ 
    if (locale == "en_US") 
    { 
        return (date.getMonth() + 1) + "/" + date.getDate() + "/" + date.getFullYear(); 
    } 
    else 
    { 
        return date.getDate() + "/" + (date.getMonth() + 1) + "/" + date.getFullYear(); 
    } 
}

ADOBE FLEX

A estrutura Flex inclui controles para formatar datas, horas e moedas. Esses controles incluem os controles DateFormatter e CurrencyFormatter.