Internacionalização (informática)

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
Disambig grey.svg Nota: Se procura por Internacionalização em um contexto geral, veja Internacionalização.
Globe of letters.svg

Internacionalização e localização, em informática, são processos de desenvolvimento e/ou adaptação de um produto, em geral softwares de computadores, para uma língua e cultura de um país. A internacionalização de um produto não fabrica o produto novamente, somente adapta as mensagens do sistema à língua e à cultura locais. Isto é importante porque permite que o desenvolvedor de software respeite as particularidades de cada língua e cultura de cada país.

Nomenclatura[editar | editar código-fonte]

Internacionalização também é escrita acronimamente como i18n, vindo da palavra inglesa internationalization, onde se tomam a primeira e a última letra e o número de letras entre elas; o mesmo é feito com localization escrito como L10n.[1] O suporte de algumas línguas pelo sistema informático relaciona-se como um problema entre localização (L10n), depois multilinguísticas (m17n), até internacionalização (i18n).

  • Um sistema informático localizado foi adaptado ou convertido para utilização num locale específico.
  • Um sistema multilinguístico dá suporte a várias línguas ou locales instalados mas guarda esses dados como dados.
  • Um sistema internacionalizado compreende um suporte a um leque grande de locales (ou para usuários de outras línguas), permitindo que várias línguas, conjuntos de codificação de textos, visualização, e interfaces do usuário todos funcionem naturalmente.

Fundamentos[editar | editar código-fonte]

Os pontos fundamentais para internacionalização e localização incluem[2]

  1. A língua, contendo a codificação do texto em diferentes sistemas de escrita (Alfabetos), diferentes sistemas numerais, scripts da esquerda-para-direita e scripts da direita-para-esquerda (por exemplo, para língua hebraica). Os sistemas atuais utilizam Unicode para solucionar problemas de codificação de caracteres. Contendo também a representação gráfica do texto, o áudio e os subtítulos para vídeos.
  2. O formato de data e tempo, incluindo diferentes calendários.
  3. As diferentes formatações de números.
  4. O fuso horário (UTC) de cada país para coincidir com a língua a ser internacionalizada.
  5. Os números pré-definidos governamentalmente como: passaportes, RG, CPF.
  6. Os padrões de números de telefones, endereço e códigos postais internacionais.
  7. Os pesos e medidas de cada país.
  8. O tamanho de papéis.
  9. A moeda local.
  10. Nomes e títulos locais.

Diferença entre internacionalização e localização[editar | editar código-fonte]

Página principal do site da Wikipédia em língua hebraica.

A diferença entre internacionalização e localização é somente fundamental. A internacionalização é uma adaptação de um produto para melhoramento e a localização é uma adição de características específicas de uma região. Os dois são evidentemente complementares.

Alguns dos elementos específicos da localização são: tradução linguística, suporte a várias línguas, suporte a caracteres das línguas da Ásia oriental, símbolos, métodos de ordenação de listas, valores culturais e contexto social.

No desenvolvimento de software, depois de internacionalizado um produto, o termo localização se refere ao processo necessário para o produto internacionalizado esteja também pronto para mercados específicos.

Por esta razão pode-se falar que um produto internacionalizado satisfaz a comunidade internacional, mas não para um mercado específico. A preparação para um mercado específico é chamado de localização.

Importância da localização[editar | editar código-fonte]

Tela de um computador com vários programas traduzidos para língua italiana.

Atualmente, as pessoas que queiram usar computadores devem primeiramente aprender o inglês. Em um país com baixas taxas de alfabetização obstrui o acesso às tecnologias de informação e de comunicações, especialmente para pessoas com baixa renda e as comunidades rurais que não têm o mesmo acesso à instrução. A localização traz inúmeros benefícios como a redução significativamente a quantidade de treinamento necessária para os usuários finais para usar um sistema de computador, facilitando a introdução da informática em pequenas e médias empresas, permitindo que empregados trabalhem inteiramente na sua língua nativa e facilitando o desenvolvimento dos sistemas e para controlar bases de dados de nomes e de dados locais da língua, facilitando a decentralização dos dados em níveis provinciais e de distrito.

O mesmo aplica-se às companhias de serviço público (eletricidade, água, telefone), que desenvolverão as bases de dados locais da língua, desse modo reduzindo custos e dando o serviço melhor aos cidadãos, permitindo que os cidadãos comuniquem-se com o e-mail em sua própria língua, fornecendo a indústria local dos projetos, fontes adequadas aquela região e ajudando universidades a treinarem mais engenheiros de software.

Dificuldades[editar | editar código-fonte]

Uma das grandes dificuldades das equipes do desenvolvimento é a necessidade que alguém compreenda línguas estrangeiras e culturas e tenha algum conhecimento técnico; tal pessoa pode ser difícil de encontrar. Outra dificuldade é a duplicação de esforços para a manutenção e atualização rotineira das mensagens do sistema em paralelo ao desenvolvimento do software e da inclusão de novas características, consequentemente, criação de novas mensagens a serem traduzidas. Por exemplo, se uma mensagem indicada ao usuário em uma de diversas línguas for modificada, todas as versões traduzidas devem ser mudadas. Há bibliotecas de software que ajudam a minimizar este problema, como o gettext.

O software de código-fonte aberto pode geralmente ser livremente modificado e redistribuido, por isso é mais apto a internacionalização. A maioria dos softwares proprietários está somente disponível nas línguas consideradas economicamente viáveis. O projeto KDE é feito sob software livre e está traduzido para mais de 90 línguas,[3] o GNOME, também software livre, é traduzido para mais de 100 línguas,[4] já os softwares comerciais como o Skype não tem traduções mais do que em 30 línguas.[5]

Localização de softwares[editar | editar código-fonte]

Programas em língua chinesa dentro do sistema operacional Ubuntu.

Localização é uma tarefa multifunção, que tem por objetivo traduzir os conteúdos de texto de um software ou de um site, adaptando a tradução para a cultura do país ao qual se destina, considerando costumes, religião, sistemas de pesos e medidas, moeda, padronização de data e hora, legislação e outras variáveis que possam afetar o produto.

A Localização envolve também atividades que requerem profundos conhecimentos de Tecnologia de Informação, em consonância com padrões internacionais convencionados pela Globalização.

A localização de software é um processo de traduzir as mensagens que os usuários finais irão visualizar e de adaptá-las a fim de que sirvam uma cultura estrangeira. Este processo é um trabalho intensivo e requer frequentemente esforços significativos das equipes de desenvolvimento. Há ferramentas que podem simplificar o processo de localização. Vários projetos de software comerciais e de software livre começam sem a implementação da localização, ou para cortar custos ou para reduzir esforços já que para se fazer a internacionalização de um software é necessário que o tradutor ou localizador conheça e utilize o software e também, que domine a língua e conheça detalhes do país originário da língua a traduzir.

A localização de softwares também pode adaptar o software de uma cultura a outra. Durante a localização, algumas referências a história ou à cultura são substituídas a uma referência nativamente equivalente, que idealmente não mude o sentido da indicação.

Problemas com padrões da internet[editar | editar código-fonte]

De acordo com as normas da internet softwares modernos são mais aptos a integrar componentes de internacionalização devido suas tecnologias mais modernas como navegador web, aplicações para servidor e banco de dados. É nas relações destes componentes que as deficiências nos padrões se tornam mais aparentes. Por exemplo, não há nenhum mecanismo padronizado para o HTTP indicar os caracteres de codificação utilizados nos índices de formulários HTML.[6] Embora haja alguns mecanismos específicos de navegadores que podem indicar os caracteres, não há nada especificado pelos padrões da W3C. Houve somente uma intenção de solucionar este problema[7] em 2004.

Conceito de Locale[editar | editar código-fonte]

Em informática, o conceito de locale é um grupo de parâmetros que define uma língua, levando em conta suas variantes específicas, a qual o usuário final define sua língua nativa, e é ela que irá aparecer no software usado. Normalmente um identificador locale está no formato de identificação da língua (em minúsculo) e um identificador de região (em maiúsculo).

Abaixo as línguas comumente utilizadas em relação aos países:[8][9]


Funcionamento da tradução[editar | editar código-fonte]

Ver artigo principal: Gettext
Processo do andamento interno do GNU gettext para a tradução da mensagem.

O gettext é uma biblioteca de internacionalização criada pelo Projeto GNU parte do GNU Translation Project, é usada para escrever as mensagens de programas em multi-línguas, utilizada por vários importantes programas para tradução de seus softwares. Veja Lista de softwares que usam gettext.

Programação[editar | editar código-fonte]

O código fonte é primeiro modificado para as chamadas do GNU gettext. Isto é, para a maioria das linguagens de programação, é feito uma encapsulação das strings e o gettext irá chamar qual strings o usuário irá visualizar. Esta função é usualmente modificada para _ (underline), veja por exemplo o código em C:[10]

printf("My name is %s.", myname);

é escrito assim:

printf(_("My name is %s."), myname);

em outras linguagens também segue o mesmo padrão, veja em linguagem Python:[11]

print("My name is %s." % myname)

é escrito assim:

print(_("My name is %s.") % myname)

Outras linguagens também possuem a funcionalidade do gettext como: C++, Objective-C, Shell script, bash, LISP, Smalltalk, Java, awk, Pascal, wxWidgets, Tcl, Perl, PHP e outras mais.

Tradução[editar | editar código-fonte]

Para a tradução da string acima é necessário junto ao programa um arquivo com extensão .po, ou um template, que contenha uma lista de todas as frases e palavras que precisam ser traduzidas no código fonte. Dentro do arquivo .po de um programa escrito em C é necessário conter:[10]

# : src/name.c:36
msgid "My name is %s."
msgstr "Meu nome é %s."

Nos exemplos acima, a primeira linha mostra o caminho para qual arquivo (src/name.c) e para qual linha (linha 36) a frase terá que ser traduzida.

O mesmo pode ser feito com outras linguagens, o padrão também é seguido alterando somente a extensão do arquivo fonte, veja em Python:[11]

# : src/name.py:36
msgid "My name is %s."
msgstr "Meu nome é %s."

Em um software que contenha várias linguagens de programação, as mensagens de tradução funcionam normalmente, basta somente referenciar o nome do arquivo fonte correspondente a linha, como exemplificado nos exemplos acima.

Para a tradução das frases da língua nativa do programa para a língua que deseja traduzir é necessário um programa que edite arquivos .po e depois de traduzidas as mensagens é necessário ter um compilador para gerar o arquivo .mo, os programas mais comuns são o próprio gettext, para KDE existe o Kbabel e para multiplataformas tem o Poedit, estes programas fazem com que as strings de tradução estajam alinhadas no arquivo, facilitando a localização das frases que não foram traduzidas ou com tradução incompletas.

Programas como Gedit, Kate ou Bloco de notas também funcionam para traduzir os programas, atrapalhando somente na visualização.

Babelzilla[editar | editar código-fonte]

A comunidade Babelzilla é dedicada a prover locales para extensões feitas para programas da família Mozilla baseados em Gecko, como o Firefox e o Thunderbird. Os desenvolvedores disponibilizam suas extensões no Web Translation System - WTS (Sistema de Tradução na Web) e então tradutores voluntários em todo o mundo fornecem os locales, constituindo-se em uma plataforma de tradução simultânea que permite a atualização das traduções sempre que os programadores acrescentarem novas línguas.

A página www.babelzilla.org é constituída pelo Web Translation System - WTS (Sistema de Tradução na Web), por um fórum, glossário, wiki tutorial e outras ferramentas para comunicação da comunidade de desenvolvedores e tradutores.

Ver também[editar | editar código-fonte]

Referências

  1. GNU gettext (27 de Dezembro 2007). «I18n, L10n, and Such» (em inglês). gnu.org. Consultado em 27 de dezembro de 2007. 
  2. GNU gettext (27 de Dezembro de 2007). «Aspects in Native Language Support» (em inglês). gnu.org. Consultado em 27 de dezembro de 2007. 
  3. Projeto KDE (27 de Dezembro de 2007). «Localização do software KDE versão 3» (em inglês). KDE.org. Consultado em 27 de dezembro de 2007. 
  4. Projeto GNOME (27 de Dezembro de 2007). «Localização do software GNOME» (em inglês). GNOME.org. Consultado em 27 de dezembro de 2007. 
  5. Software Skype (27 de Dezembro de 2007). «Línguas disponíveis do software Skype» (em inglês). Skype.com. Consultado em 27 de dezembro de 2007. 
  6. «Apresentação sobre "Avaliação de Usabilidade: Software para Internacionalização"». 
  7. Mike Gavaghan (27 de Dezembro de 2007). «End-to-end Internationalization of Web Applications» (em inglês). JavaWorld.com. Consultado em 27 de dezembro de 2007. 
  8. Michael Everson (27 de Dezembro de 2007). «ISO 639 and ISO 639-2: The Code Lists» (em inglês). Evertype.com. Consultado em 27 de dezembro de 2007. 
  9. Brian Cryer (27 de Dezembro de 2007). «Windows Locale Table» (em inglês). Cryer.co.uk. Consultado em 27 de dezembro de 2007. 
  10. a b GNU gettext (27 de Dezembro de 2007). «Gettext with C, C++, Objective C» (em inglês). gnu.org. Consultado em 27 de dezembro de 2007. 
  11. a b GNU gettext (27 de Dezembro de 2007). «Gettext with Python» (em inglês). gnu.org. Consultado em 27 de dezembro de 2007. 

Bibliografia[editar | editar código-fonte]

  • Souphavanh, Anousak e Karoonboonyanan, Theppitak (2005). Free/Open Source Software. Localization 1 ed. (EUA.: United Nations Development Programme-Asia Pacific Development Information Programme - (UNDP-APDIP)). p. 58. ISBN 81-8147-754-5. 

Ligações externas[editar | editar código-fonte]

Wikcionário
O Wikcionário possui o verbete international ou locales.