Localização e internacionalização, qual a diferença?

208

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?

Cinza
fonte

Respostas:

232
Internacionalização (i18n)
o processo de alteração do software para que ele não seja conectado a um idioma / local / cultura.
Localização (l10n)
o processo de adicionar os recursos apropriados ao seu software para que um idioma / local específico seja suportado. Seu escopo é maior do que apenas esta entrada da Wikipedia , mas é um bom começo.


O valor da distinção entre eles é que (teoricamente), uma vez que seu programa passa pelo processo i18n, você pode iterar muitos processos l10n conforme necessário; Além disso, é bom ser preciso com a linguagem.

Hank Gay
fonte
9
Algumas outras razões para pensar neles separadamente: o controle de qualidade da internacionalização e o controle de qualidade da localização têm diferentes casos de teste; a internacionalização é um custo único (mais ou menos); portanto, quanto mais idiomas você localizar, maior será o seu ROI. O i18n geralmente é mais caro que o l10n para qualquer local.
Mike Sickler # 03/02/09
@Hank, @Mike, respostas muito úteis, obrigado. Então, eu estava realmente correto ao olhar para a internacionalização primeiro. Meu objetivo é garantir que o design do aplicativo suporte pelo menos vários idiomas no futuro, mesmo que, inicialmente, eu esteja focando apenas o inglês.
Ash
Embora seja um pouco antiga, essa visão de alto nível do W3C concorda basicamente com isso.
Mkobit 31/08/2015
1
Geralmente a internacionalização (i18n) é feita pelo desenvolvedor / engenheiro de software uma vez, enquanto a localização (l10n) é feita pelo respectivo especialista em idioma / cultura para cada mercado.
Chetan
70

De acordo com a Apple :

Internacionalização é o processo de projetar e construir um aplicativo para facilitar a localização. A localização , por sua vez, é a adaptação cultural e linguística de uma aplicação internacionalizada a dois ou mais mercados culturalmente distintos.

mouviciel
fonte
32

A internacionalização prepara seu aplicativo para localização. Por exemplo, você pode codificar caracteres armazenados em seu banco de dados em Unicode (em utf8mb4vez de latin1), 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.

Mark Brackett
fonte
13

À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.

Cade Roux
fonte
11

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 softwareuma 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).

Asik
fonte
8

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
8

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:

key   | english    | italian           |
------+------------+-------------------+
title | Welcome    | Benvenuto         |
agree | I agree    | Sono d'accordo    |
thank | Thank you  | Grazie            |

Internacionalização que está usando no código algo como em confirm(t(agree));vez de confirm("I agree");ou confirm("Sono d'accordo");
Localização - é adicionar nova localidade ao nosso armazenamento, como:

key   | english    | italian           | spanish          |
------+------------+-------------------+------------------+
title | Welcome    | Benvenuto         | Bienvenido       |
agree | I agree    | Sono d'accordo    | Estoy de acuerdo |
thank | Thank you  | Grazie            | Gracias          |

e aqui o desenvolvedor não precisa de código de atualização, a função de tradução carregará corretamente os textos apropriados.

V. Kovpak
fonte
3
Muito fácil de entender.
Vinh Nguyen
1
Grandes exemplos!
Jinjinov
6

É muito simples se você seguir as definições abaixo,

i18n (internacionalização) é o

processo de projetar um aplicativo para que ele tenha a funcionalidade de mudar para um idioma diferente sem recorrer a alterações programáticas do aplicativo.

l10n (localização) é o

processo de criação dos textos e formatação específicos do idioma .

Prateek Joshi
fonte
3

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

Adão
fonte
3

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.

arriscar
fonte
2

Eu sinto que a localização pode ficar sem internacionalização, mas .. a internacionalização com localização não deve ser feita ...


fonte
2

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.

Izz
fonte
2

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.

Faiz Mohamed Haneef
fonte
1

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.

Sagar Thummar
fonte
-1

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.

Guillaume
fonte