Eu faria uma pergunta sobre a preparação de um aplicativo de desktop para oferecer suporte a vários idiomas na interface do usuário.
Na minha busca por perguntas existentes sobre o tópico, eu estava pensando na palavra "Internacional", então selecionei a tag Internacionalização e li algumas perguntas correspondentes.
Eventualmente, percebi que provavelmente deveria procurar nas perguntas marcadas Localização. No entanto, parece que não estou sozinho em confundir esses dois termos.
Então, quais são as principais diferenças entre Localização e Internacionalização?
Além disso, uma distinção clara entre eles é realmente tão importante?
De acordo com a Apple :
fonte
A internacionalização prepara seu aplicativo para localização. Por exemplo, você pode codificar caracteres armazenados em seu banco de dados em Unicode (em
utf8mb4
vez delatin1
), movendo cadeias para arquivos de recursos, ativando o uso de formatos de data, hora e moeda, etc.Quando você deseja vender, por exemplo, uma versão em chinês do seu aplicativo, localize-o contratando um tradutor para criar os arquivos de recursos do zh-CN e use um novo formato de data / hora / moeda.
fonte
Às vezes, o L10n pode mostrar onde seu i18n falhou - por exemplo, onde seus dicionários têm uma única entrada para uma palavra que é usada como substantivo e um verbo em inglês que não se traduz na mesma palavra em outro idioma ou elementos da interface do usuário / design não é adequado para uma cultura (orientação L / R).
Portanto, l10n "geralmente" acontece após a i18n, mas pode ser retornado ao i18n e exigir uma nova reformulação, para que você não considere seu aplicativo totalmente internacionalizado até que tenha feito algumas localizações.
fonte
De acordo com a Wikipedia
Internacionalização é o processo de projetar um aplicativo de software para que ele possa ser potencialmente adaptado a vários idiomas e regiões
without engineering changes
.Localização é o processo de
adapting internationalized software
uma região ou idioma específico, adicionando componentes específicos de localidade e traduzindo texto.Além disso , a Localização (que é potencialmente executada várias vezes, para diferentes localidades) usa a
infrastructure or flexibility provided by internationalization
(que é idealmente executada apenas uma vez ou como parte integrante do desenvolvimento contínuo).fonte
Globalização (G11n): é o processo de desenvolvimento e comercialização de produtos de software multilíngues para um mercado global.
Atualmente, o desenvolvimento de software multilíngue passa por duas fases: a primeira fase é a internacionalização e a segunda fase é a localização.
Internacionalização (I18n): é o processo de generalização de um produto para que ele possa lidar com vários idiomas e convenções culturais sem a necessidade de redesenho (isto é, idioma e cultura neutros).
Localização (L10n): é o processo de pegar um produto e torná-lo apropriado do ponto de vista linguístico e cultural ao local de destino (país / região e idioma) onde será usado e vendido (ou seja, idioma e cultura específicos).
fonte
Muitas respostas, muitas informações corretas, mas minha resposta é um pouco outro ponto de vista.
Internacionalização - é quando o desenvolvedor não possui no código mensagens diretas / mensagens de erro / nomes de botões / legendas de etiquetas / etc em determinado idioma, mas possui uma chave que é passada para a função de tradução e a função de tradução de acordo com a localidade do usuário atual retornará o texto final em inglês / france / etc ... A
função de tradução funciona com armazenamento (db / files / associative array / etc).
Armazenamento contém chaves usadas em coode e valores, que são textos em determinado idioma que o aplicativo suporta.
Localização - é o processo de adicionar novos valores em um novo idioma (por exemplo, espanha), apropriado para as chaves armazenamento, sem envolver o desenvolvedor nesse processo.
Por exemplo, temos armazenamento:
Internacionalização que está usando no código algo como em
confirm(t(agree));
vez deconfirm("I agree");
ouconfirm("Sono d'accordo");
Localização - é adicionar nova localidade ao nosso armazenamento, como:
e aqui o desenvolvedor não precisa de código de atualização, a função de tradução carregará corretamente os textos apropriados.
fonte
É muito simples se você seguir as definições abaixo,
i18n (internacionalização) é o
l10n (localização) é o
fonte
Existem algumas respostas muito boas aqui, então não as reciclarei. No entanto, em algum momento, geralmente entre testes de internacionalização e testes linguísticos de localização, a internacionalização e a localização tendem a se sobrepor. Uma pessoa menciona o l10n realimentando a internacionalização, mas se você estiver testando a qualidade do i18n e criando conteúdo pseudo-localizado, a iteração nos problemas de desenvolvimento durante a localização deve ser a exceção, não a regra. O redimensionamento da interface e, particularmente, a adaptação de páginas para suportar idiomas bidirecionais como árabe e hebraico também tendem a mesclar problemas de localização e engenharia de internacionalização.
Basta dizer que a internacionalização envolve fazer alterações na fonte para dar suporte a qualquer local com base nos requisitos. Se a internacionalização for bem feita ...
... A localização envolve a adaptação do conteúdo e alguns níveis de apresentação (por exemplo, uma marca em negrito), para melhor atender às necessidades de mercados-alvo específicos (localidades).
Muitos artigos e white papers para referência aqui: http://www.lingoport.com/software-internationalization-articles
fonte
Internacionalização - i18n - A abstração de um aplicativo de qualquer idioma / cultura em particular.
Localização - l10n- Conectando o suporte concreto a um idioma / cultura / local específico à estrutura i18n acima.
Basicamente, ao fazer o i18n primeiro, você torna o l10n muito menos um PITA.
Por outro lado, se você criar um aplicativo em um local concreto primeiro e depois tentar internacionalizá-lo, será um PITA massivo. Não é uma questão simples de trocar apenas uma string inglesa concreta, dizer "Olá Mundo" para Resource.Global.HelloWorld.
Diferentes idiomas terão diferentes requisitos de espaço, layout, ênfase, cores etc.
Você precisa da estrutura do i18n desde o início para suportar facilmente essa alternância entre localidades para as diferenças acima, se você acha que pode precisar dar suporte a mais de uma localidade.
Retrofitá-lo no aplicativo mais tarde é realmente muito difícil. Você terá que revisitar uma série de considerações e restrições de arquitetura que você (ou outra pessoa) fez na primeira vez.
fonte
Eu sinto que a localização pode ficar sem internacionalização, mas .. a internacionalização com localização não deve ser feita ...
fonte
Ponto de vista analógico: imagine uma prateleira em sua biblioteca que possa levar apenas um livro de um tamanho 4x4 polegadas. A internacionalização estaria construindo a prateleira com todos os tipos de compartimentos diferentes, que permitem lidar com qualquer tamanho ou formato de livro. E a localização definiria todos os livros nas seções certas. Pense em seu banco de dados, lógica de negócios e interface do usuário como prateleira e os diferentes idiomas, moedas e orientação de texto como os livros.
fonte
Vamos entender a localidade primeiro
localidade - um conjunto de parâmetros que define o idioma, a região e quaisquer preferências de variantes especiais que o usuário deseja ver na interface do usuário. Normalmente, um identificador de localidade consiste em pelo menos um identificador de idioma e um identificador de região.
i18n - Projetando e desenvolvendo software para suportar vários locais.
l10n - Isso é possível apenas quando o seu software suporta i18n. Mas l10n garante que idioma, formato de data, formatos de moeda etc. sejam mostrados no contexto de uma localidade específica.
Por exemplo,
# 1 3 de junho de 1977 será traduzido para o espanhol em 3 de junho de 1977.
# 2 A moeda em alguns países é separada por '.' vs ','
# 3 Mostrar o respectivo símbolo monetário com base no país da localidade
# 1, # 2 e # 3 são casos de uso para localização.
Se o software foi projetado para suportar # 1 OU # 2 OU # 3 com base na localidade do usuário, o produto é l10n ativado.
Se ele suporta vários códigos de idioma, seu i18n está ativado.
fonte
Simplesmente,
Internacionalização (I18N) é o processo de tornar seu software capaz de se adaptar a diferentes idiomas, regiões e culturas.
Localização (L10N) é o processo de tradução do seu software para vários idiomas. Mas antes que você possa localizar seu software, você o internacionaliza.
fonte
Existem muitas definições de i18n e l10n. O que eu uso são:
internacionalização (i18n) : adaptação específica ao idioma da sua aplicação (tradução)
localização (l10n) : adaptação específica da localidade do seu aplicativo (dinheiro, formato numérico, formato da data ...).
Por exemplo, podemos ter o mesmo idioma para um aplicativo distribuído na França e na Suíça (nós dois falamos francês, pelo menos em algumas partes da Suíça), mas ainda precisaremos de alguma adaptação para mudar EUR para CHF.
fonte