Pergunta

Então eu comecei a brincar com gettext Mas ainda estou intrigado com certas coisas, seria ótimo se alguém pudesse me ajudar e preencher as lacunas para mim.

  1. Geralmente a maioria das implementações apenas invoca setlocale com base em um parâmetro de idioma. Existe algum caso em que eu preciso usar putenv, talvez para casos de borda nas configurações do Windows?

  2. O idioma padrão da minha estrutura PHP é inglês, UTF -8 - então eu definiria LC_ALL para en_US.utf-8, desde en_US A ISO-8859-1/Latin1 e, obviamente, isso não é tão favorável quanto o UTF-8?

  3. Há algum gotchas que eu deveria saber depois de invocar setlocale(LC_ALL, 'en_US.utf-8')? Já que muda tudo isso: LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME, and LC_MESSAGES - Terei que atualizar algum script, por exemplo, que geram tempo ou algo assim?

  4. Digamos, por exemplo, um servidor recém -configurado não teve es_ES.utf-8 Locale Configurado, eu sei como gerar a localidade, mas se não estiver disponível, devo fornecer backups em uma matriz? Seria ótimo se alguém pudesse fornecer um exemplo prático, como:

    setlocale( LC_ALL, array('es_ES.UTF-8', 'es_ES', 'es') )

    Existe algum tipo de site que oferece exemplos como esse, ou as pessoas geralmente criam a prioridade pedindo?

  5. Eu li em algum lugar que a estrutura usual do locale ou i18n Pasta é algo como abaixo.

    A estrutura realmente importa? Parece que tudo o que está acontecendo é quando você faz bindtextdomain('messages', 'locale') Ele pesquisa recursivamente esse diretório para messages.mo, Talvez eu não esteja percebendo, mas pode estar levando em consideração os diretórios.

Quão rigoroso devo ser com a estrutura?

locale
  en_US
      LC_MESSAGES
         messages.po
  es_ES
      LC_MESSAGES
         messages.po


6. Devo me preocupar em tentar testar se o sistema realmente suporta o local ou não? Porque, por exemplo, se um servidor não tivesse um local e eu tentei defini -lo com setlocale Não seria um erro nem nada, apenas o deixaria passar.

Foi útil?

Solução

Isto é não Uma resposta qualificada para sua pergunta, e não estou dizendo que usar getText é ruim - nunca trabalhei o suficiente com ela para ter uma opinião realmente profunda - mas decidi deixar o GetText em paz por causa de sua complexidade e grande imprevisibilidade em diferentes plataformas com locais diferentes. Eu postei uma pergunta procurando alternativas aqui E embora não exista muito, o pacote Zend_Translate parece valer a pena dar uma olhada. Ainda não cheguei a isso.

Se você trabalha com o getText, não deixe de conferir o Usuário do Manual PHP Notas contribuídas no getText.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top