A internacionalização no CakePHP é realizada através de arquivos po. Isto faz com que seja fácil utilizar ferramentas como o poedit e outras.
O shell i18n (é chamado de i18n pois é derivado da palavra inglesa internationalization, que inicia com a letra i, termina com a letra n e possui 18 letras entre a letra inicial e a letra final) provê um jeito simples e fácil de gerar modelos de arquivos po. Estes modelos podem ser enviados a tradutores para então realizar as traduções dos textos da sua aplicação. Depois das traduções feitas, os arquivos pot podem ser mesclados com arquivos de traduções existentes para ajudar a atualizar suas traduções.
Para gerar arquivos POT para uma aplicação existente, você pode utilizar o
comando extract
. Este comando irá escanear sua aplicação inteira em busca de
chamadas de funções no estilo __()
, e então extrairá todas as strings
passadas como argumento para estas funções. Cada string única em sua aplicação
será combinada em um único arquivo POT:
./Console/cake i18n extract
O comando acima irá executar o shell de extração. Além de extrair as strings em
__()
, mensagens de validação em models também serão extraídas. O resultado
deste comando será um arquivo app/Locale/default.pot
. Você pode usar o
arquivo pot como um modelo para criar arquivos po. Se você estiver criando
arquivos po manualmente, assegure-se de setar a linha de cabeçalho
Plural-Forms
.
Você pode gerar arquivos POT para um plugin específico usando:
./Console/cake i18n extract --plugin <Plugin>
Isto irá gerar os arquivos POT necessários utilizados nos plugins.
Você pode definir o domínio que será utilizado para as mensagens de validação
extraídas em seu model. Se o model já tiver uma propriedade
$validationDomain
, o domínio informado será ignorado:
./Console/cake i18n extract --validation-domain validation_errors
Você também pode impedir o shell de extrair mensagens de validação:
./Console/cake i18n extract --ignore-model-validation
Você pode passar uma lista separada por vírgula de pastas que você deseja que sejam excluídas. Qualquer caminho que conter um segmento de caminho com os valores fornecidos será ignorado:
./Console/cake i18n extract --exclude Test,Vendor
Novo na versão 2.2.
Ao adicionar `` –overwrite``, o shell script não irá avisá-lo se um arquivo POT já existe e irá substituir por padrão:
./Console/cake i18n extract --overwrite
Novo na versão 2.2.
Por padrão, o shell script de extração irá perguntar se você deseja extrair as
mensagens utilizadas no núcleo do CakePHP. Defina a opção --extract-core
para yes
ou no
para definir o comportamento padrão:
./Console/cake i18n extract --extract-core yes
ou
./Console/cake i18n extract --extract-core no
O shell i18n também pode ser utilizado para inicializar as tabelas padrão
utilizadas pelo TranslateBehavior
:
./Console/cake i18n initdb
Isto irá criar a tabela i18n
utilizada pelo translate behavior.