Estou procurando uma lista de todos os locais e seus códigos de acesso para um aplicativo PHP que estou escrevendo. Há muita variação nesses dados entre plataformas?
Além disso, se estou desenvolvendo um aplicativo internacional, posso oferecer suporte apenas a uma versão em inglês ou há diferenças significativas em inglês em todo o mundo?
php
internationalization
locale
Kirk Ouimet
fonte
fonte
en
uso sãoen_US
een_GB
, com as principais diferenças que o último geralmente usa emise
vez do primeiroize
, e as grafias francesas originais de palavras comometre
, em vez demeter
, e não usam contrações fonéticas, usando emsulphur
vez desulphur
.en_GB
cobrirá geralmente as convenções de ortografia usadas em ex-colônias que não foram culturalmente dominadas pelos EUA, comoen_AU
een_NZ
. Consulte tysto.com/uk-us-spelling-list.html .en_US
comoen
local único não agitará muitas penas.Respostas:
A importância dos códigos de idioma é que seu ambiente / sistema operacional pode fornecer funcionalidade de formatação para todos os códigos de idioma instalados, mesmo que você não os conheça ao escrever seu aplicativo. Meu sistema Windows 7 tem 211 localidades instaladas (listadas abaixo), portanto você provavelmente não escreveria nenhum código personalizado ou tradução específica para essas localidades.
O mais importante para várias versões do inglês está na formatação de números e datas. Outras diferenças são significativas na medida em que você deseja e pode atender a variações específicas.
fonte
MessageFormatter::formatMessage
, ou o únicomsgfmt_format_message
, como emmsgfmt_format_message('ar-ye', '{0,date,medium}', array('2017-01-27))
, que produzirá٢٧/٠١/٢٠١٧
. Por vezes, quando usar valores armazenados como UTC, provavelmente é melhor usar aIntlDateFormatter
classe, pois você pode colocar um fuso horário para mostrar a hora local no idioma.en-029
é, éEnglish (Caribbean)
: stackoverflow.com/questions/7192410/…A resposta aceita falta de alguns locais bastante significativos. Por exemplo, as localidades chinesas não fazem distinção entre as diferentes escrituras (han simplificado, han tradicional). O que é um cidadão chinês que quer o han tradicional deveria usar - o cenário de Hong Kong?
Peguei essa lista de códigos de idioma do iOS , removi a entrada POSIX estranha, formatou-a como Javascript e a classifiquei por valor (por isso, se você usar uma implementação de objeto ordenada e criar uma lista percorrendo as chaves e retornando o valor, ele será mostrar o texto legível por humanos na ordem correta). Além disso, esta lista contém uma entrada principal por idioma e todas as variantes específicas da região - dessa forma, você sempre tem uma opção de fallback designada, digamos que se sua interface definiu apenas a opção 'en' - você não saberia no que recorrer de forma confiável.
fonte
zh-hans-hk
ezh-hant-hk
. Ointl
conjunto de objetos PHP tolerará especificar localidades como minúsculas e traços, além de aceitar oslang_COUNTRY
estilos.intl
classes para todos os seus esforços, incluindo fusos horários e localidades, pois elas são construídas no banco de dados CLDR e atualizadas a cada versão do PHP. As outras funções PHP podem ser construídas em conjuntos de dados isolados que não têm o esforço de sincronização incluído no conjunto abrangente de dados do CLDR, portanto, algumas dessas outras funções podem apresentar algumas discrepâncias em relação ao CLDR, especialmente porque os esforços internacionais padronizam mais o CLDR . Pode ser necessário usar algumas dessas outras funções como reserva, se estiver atendendo à versão 5.6.intl
classes mais recentes , é que ele servirá suas páginas na metade do tempo.Embora a resposta aceita seja bastante completa (usei-me em uma pergunta semelhante que me foi apresentada), acho que vale a pena colocar todos os códigos e variações de idiomas suportados, além de codificações, e apontar o usuário para um arquivo que está presente em quase qualquer distribuição linux, caso ele simplesmente queira uma resposta mais rápida e sem internet, por exemplo.
Este é o arquivo
/usr/share/i18n/SUPPORTED
e seu conteúdo:fonte
Em http://www.w3.org/International/articles/language-tags/
A maioria dos aplicativos com reconhecimento de localidade do AFAIK (criados por profissionais) obedecem a esse padrão. Não é apenas algo que alguém juntou e que pessoas diferentes interpretam de maneira diferente.
Eu sugiro fortemente que você investigue os recursos de internacionalização de sua linguagem de desenvolvimento específica, pois você provavelmente acabará reinventando a roda, se não o fizer.
fonte
Se você estiver usando php-intl para localizar seu aplicativo, provavelmente desejará usar ResourceBundle :: getLocales () em vez da lista estática que você mantém. Também pode fornecer localidades para um idioma específico.
fonte
Aqui está uma lista bastante exaustiva de códigos de cultura . Tanto quanto eu posso dizer, eles não variam entre linguagens de programação, já que é um padrão RFC. Quanto ao inglês, acho que, se você apoia o genérico
en
ou possivelmente oen-US
, deve ficar bem.fonte
en-US
. Apenas um fato da vida. Veja como a maioria dos sites de jornais on-line do mundo usa citações no estilo dos EUA, mesmo quando direcionadas ao público local, apenas por causa da inundação cultural por material de origem norte-americana que substituiu o que quer que tenha sido o guia oficial de estilo de um país. O público mudou, apesar do que muitos de nós podemos usar para nossas preferências pessoais.Lista de idiomas
Lista de todos os idiomas com nomes e códigos ISO 639-1 em todos os idiomas e todos os formatos de dados.
Formatos Disponíveis
https://github.com/umpirsky/language-list
fonte
en_IE
se comporta de maneira diferenteen_US
em vários aspectos (moeda, medidas, ortografia etc.).