Tivoli Service Desk 6.0 Developer's Toolkit - Guia de Programação do Script

Capítulo 10: Como Programar para Utilizações Internacionais

Retornar ao Índice


Introdução

Na medida que os desenvolvedores de software ampliam seus escopos de mercado, inevitavelmente o software desenvolvido em um país será vendido ou utilizado em um país diferente. Esta migração requer que os desenvolvedores de software estejam atentos aos requisitos especiais que resultam da utilização do software em um mercado internacional.

Além de estar atentos às diferenças culturais que você pode ter para aplicar o código de instalação, devem também estar atentos no efeito que a localização pode ter em um aplicativo. A alteração de um aplicativo de software para um grupo cultural específico é chamado localização.

O que acontece se você não estiver atento às nuançes que existem em um mercado internacional? Como você cria software que possa ser localizado facilmente?

Recursos de internacionalização

A solução mais correta para localização é armazenar todos os recursos necessários nos arquivos .df. Ou seja, todos os bitmaps, menus, cadeias, ícones e caixas de diálogo são compilados e armazenados separadamente do restante do código. Quando um aplicativo é vendido fora dos Estados Unidos, os distribuidores recebem todas as ferramentas e instruções necessárias para a edição destes recursos.

Após os recursos terem sido localizados adequadamente, os arquivos poderão ser reconstruídos e copiados no meio de instalação.

Nenhum código precisa ser alterado e o meio de instalação não precisa, de forma alguma, ser modificado. O programa de instalação também será localizado como um resultado desta operação.

Suporte a API do Sistema Operacional

Sempre que possível, os aplicativos Tivoli evitam a utilização do código do proprietário para tratar de assuntos de internacionalização. Por este motivo, qualquer processo de cópia nativo e de caractere amplo do sistema operacional pode converter código de dois bites em código de um bite.

As chamadas de API e dados de internacionalização disponibilizadas pelo sistema operacional do host são sempre utilizadas no lugar dos recursos do proprietário. Isto reduz o tamanho do aplicativo e faz a adição de novas localizações suportadas.

Suporte Unicode

Todas as cadeias utilizadas pelos aplicativos Tivoli são internamente armazenadas como cadeias Unicode. Unicode (ou ISO 10646) é um sistema de caracteres de sessenta bits uniformes que suportam os alfabetos de todas as localizações internacionais.

Muitos outros aplicativos internacionais utilizam o padrão ISO 8859/x para cadeias de caracteres internacionais (conhecida também como multi-byte). Este padrão utiliza caracteres de oito bits para alfabetos menores e caracteres de dezesseis bits para alfabetos maiores. Embora o aplicativo que utiliza as páginas de códigos de multibyte possam utilizar um pouco menos memória, o desempenho resultante não é prático.

Uma única cadeia ISO pode ter uma mistura de caracteres de oito e 16-bits. Operações simples, como efetuar backup de um único caractere ou contar os caracteres em uma cadeia, se tornam mais complexas, pois não há como determinar com segurança se um byte único é um caractere inteiro ou parte de um caractere sem ver um número de bytes que o precede.

Considerações Culturais

O suporte de internacionalização do TSD Script facilita a escrita de códigos que se ajustam aos requisitos das localizações que suporta. Entretanto, é importante lembrar que preconceitos culturais realmente existem e que podem afetar a percepção de um aplicativo escrito nos Estados Unidos e traduzido para uma localização específica.

É necessário estar atento a qualquer preconceito particular que pode afetar um aplicativo utilizado em uma localização diferente. Por exemplo, a cor roxa possui estas interpretações culturais:

Categorias culturais

Os contextos a seguir são muito importantes para se ajustarem nos aplicativos internacionais:

Páginas de códigos

Os sistemas operacionais se adaptam ao alfabeto de um idioma local utilizando uma página de códigos diferente. Uma página de códigos é, essencialmente, uma tabela de associações de número-a-caractere que permite a uma cadeia de caracteres ser exibida adequadamente.

Um sistema de computador exibe as letras que a página de códigos associa aos números em uma cadeia. O software deve ser escrito de forma que as cadeias apropriadas sejam enviadas ao sistema operacional através da página de códigos.

Um único sistema operacional pode suportar múltiplas páginas de códigos contendo a maioria dos mesmos caracteres. Entretanto, não se exige que um caractere que seja comum nas páginas de códigos seja associado ao mesmo número em ambas as páginas.

Por exemplo, a letra e é o número 233 na página de códigos do alfabeto latino utilizado pelo Windows 95. A mesma letra é o número 130 na página de códigos do alfabeto latino utilizado pelo MS-DOS.

Utilizando o Criador de Interface do Developer's Toolkit, o conversor carrega as cadeias escritas para uma página de códigos e as converte em outra. O sistema operacional nativo determina qual página de códigos estará disponível para os aplicativos.

Layouts do teclado

Onde são utilizadas páginas de códigos diferentes, também serão utilizados diferentes layouts do teclado. Um aplicativo internacional deve permitir que os mapeamentos de acelerador padrão sejam ajustados a qualquer teclado.

Como ordenar e comparar cadeias

Localizações diferentes podem exigir seqüências de ordenação diferentes. Um aplicativo deve ser escrito de forma que a ordem alfabética da página de códigos local forneça listas na ordem desejada.

A comparação de cadeia que faz distinção entre maiúscula e minúscula possue significados variados em localizações diferentes. Em idiomas ideográficos, como Japonês e Chinês, "maiúscula e minúscula" não possuem significado. Em outros alfabetos, as letras podem ter mais do que apenas uma letra maiúscula ou minúscula.

Após um arquivo .df ser criado, o Developer's Toolkit utiliza as chamadas nativas em um sistema operacional para ordenar e comparar cadeias.

Concatenação da cadeia

A combinação de subcadeias para a formação de frases completas é um erro clássico feito em várias versões iniciais internacionalizadas de um aplicativo. Uma vez que as sentenças são construídas de formas diferentes em outras localizações, os verbos, os substantivos, os adjetivos e advérbios podem aparecer em posições diferentes um em relação ao outro. Muitos idiomas também atribuem um gênero para partes variadas da fala, o que requer o uso de palavras diferentes, dependendo se o substantivo associado for masculino, feminino ou neutro.

Nota: Você deve, sempre que possível, evitar a combinação de subcadeias.

Editores de método de entrada

Idiomas ideográficos (como Japonês e Chinês) possuem muitos caracteres para que todos sejam representados em um teclado. Portanto, a maioria dos sistemas operacionais permitem aos usuários digitar ortografia fonética de um caractere utilizando um alfabeto diferente. O sistema operacional, então, propõe um conjunto de ideografias possíveis da qual o usuário faz uma opção. O caractere selecionado é colocado no documento ou campo de entrada. Podem existir múltiplos alfabetos fonéticos disponíveis em uma localização.

O Developer's Toolkit suporta o IME padrão fornecido pelo sistema operacional.

Formatos numéricos

Localizações diferentes utilizam formatos diferentes para a exibição de informações numéricas, datas, horas e somas monetárias. Por exemplo:

Tamanhos de página/envelope

Devido ao papel 8.5"x11" não ser utilizado em todas as localizações, um aplicativo de software internacional deve considerar tamanhos diferentes ao imprimir páginas e envelopes.
O Developer's Toolkit não possui um mecanismo para converter tamanhos de papel.

Unidades de medida

A maioria das localizações fora dos Estados Unidos requerem aplicativos para exibir métrico em vez de unidades americanas.
O Developer's Toolkit não possui um mecanismo para converter unidades americanas em unidades métricas.

Expansão do texto

Após o texto ser traduzido para um idioma diferente, o tamanho do texto pode, de forma significativa, ser maior ou menor do que o original. (Isto também é conhecido como expansão de conversão.)

Por exemplo: A conversão de um parágrafo do Inglês para o Espanhol ou Alemão aumentará o tamanho geral do texto em aproximadamente 30%.

A tabela que segue ilustra este conceito.

Número de caracteres Fator de expansão do texto
1 para 10 100 para 200%
11 para 20 80 para 100%
21 para 30 60 para 80%
31 para 50 40 para 60%
51 para 70 31 para 40%
Mais que 70 30%

Ícones, bitmaps e cores

Símbolos gráficos em ícones e outros bitmaps devem poder ser facilmente alterados ou terem um significado universal. Os aplicativos de software internacionais devem evitar textos diretamente em bitmaps que requerem que sejam traduzidos em toda localização.

Existe também a possibilidade de símbolos que pareçam ser inocentes e universais e terem um significado insidioso ou insultante em localizações específicas.

As mesmas precauções devem ser tomadas em relação ao uso de cor para caixas de diálogo e janelas. Algumas localizações percebem as cores um pouco diferente das culturas ocidentais.

A tabela que segue ilustra as diferenças entre as percepções de cores dos Estados Unidos e da China.

Cor Nação e interpretação
Vermelho China: prosperidade, renascimento
Estados Unidos: poder, pare, perigo
Branco China: morte, tristeza
Estados Unidos: pureza, inocência
Amarelo China: alegria, riqueza, dignidade, honra
Estados Unidos: atenção, possibilidade de perigo físicos

Suporte Local

Os aplicativos de software utilizam o conceito de uma localização para identificar um grupo cultural ao qual um aplicativo pode ser localizado.

Idioma, país e nacionalidade (cultura) são entidades independentes: todas as combinações destas entidades devem ter uma localização exclusiva a ela associada. Por exemplo, os cidadãos da Suíça falam quatro idiomas diferentes:

Cada uma destas combinações requerem uma localização exclusiva separada.

Localizações internacionais suportadas

As localizações a seguir são completamente suportadas no TSD Script para Windows, UNIX e OS/2.

Aperfeiçoamentos para Internacionalização

Impressão de caractere estendido

Os conjuntos de caracteres, bem como outras características de impressora, podem agora ser controlados através de uma entrada no arquivo softart.ini. A entrada "ControlString" na seção Impressora do softart.ini contém uma seqüência de caracteres que são enviados à impressora sempre que o nome do arquivo PRN ou LPT1 for aberto para gravação.

Este recurso permite imprimir cadeias contendo caracteres "estendidos". Caractere estendido é um caractere cujo valor ASCII é maior que 128. Estes caracteres são utilizados pelas versões internacionais de sistemas operacionais para exibir caracteres acentuados ou caracteres não disponíveis em um teclado americano padrão (como o caractere "ss" alemão).

Se você utiliza uma impressora à laser Hewlett-Packard, as cadeias de controle "\x1B(9U" para MS-Windows e "\x1B(12U" para OS/2 selecionam o conjunto de caracteres apropriado para suportar os caracteres estendidos. Se você utiliza uma impressora de outro fabricante, consulte a documentação da impressora para encontrar as seqüências de controle apropriadas.

Como utilizar caracteres internacionais em arquivos de configuração

Evite a utilização de caracteres "estendidos" em arquivos de configuração utilizados pelo Developer's Toolkit (sai_sql.cfg, softart.ini, e assim por diante). Caractere estendido é um caractere cujo valor ASCII é maior que 128.

Processamento do ano 2000

Os seguintes são suposições para localizações onde o formato da data nativa é um ano com dois dígitos para o processamento do "ano 2000". Se os anos estiverem entre:

Para evitar ambigüidade sobre o século relevante, utilize Configurações Regionais no Windows para acessar a definição Internacional onde você pode selecionar um formato de data com um ano de quatro dígitos.

Nota: Em UNIX, utilize o padrão local.


Tivoli Service Desk 6.0 Developer's Toolkit - Guia de Programação do Script

Retornar ao Índice

Copyright