Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Gettext ou tradução de banco de dados


A localização é difícil. É realmente difícil. Não é apenas "pairs of words" => "Wortpaare" , é muito mais complexo do que isso. O que a maioria das pessoas esquece quando olha para gettext e diz "Ugh, feio" é que o processo de localização é muito mais importante do que os detalhes técnicos da implementação. Isso ocorre porque os tradutores reais geralmente não são programadores e provavelmente nem são internos. Isso causa muito mais dores de cabeça do que você imagina. gettext é muito antigo, é testado em batalha e tem uma enorme cadeia de ferramentas por trás dele que é ajustada para suportar esse processo. Se você quer fazer i18n e l10n corretamente, você precisa de um sistema poderoso. gettext é isso e tem suporte de uma ampla gama de ferramentas. Seu Homebrewed Translation System™ não.

Em primeiro lugar, você precisa de um sistema robusto para extrair strings traduzíveis. Sem poder extrair automaticamente e de forma reproduzível strings traduzíveis do código-fonte, você tem muito trabalho para cada nova string que deseja traduzir. Em gettext, xgettext faz isso.

Em seguida, você precisa de uma ferramenta para sincronizar as strings extraídas com traduções já existentes de forma que nenhuma tradução seja perdida e que apenas traduções ligeiramente alteradas sejam mantidas, se possível. Em gettext, msgmerge faz isso.

Em seguida, você deseja uma maneira de adicionar informações extras às strings. Você quer poder agrupá-los por categoria, "domínio" e contexto, você pode querer adicionar comentários para o tradutor no código-fonte e você pode querer que os tradutores possam adicionar comentários às traduções. gettext suporta tudo isso.

Em seguida, você deseja um formato de arquivo que tenha um bom suporte de uma variedade de ferramentas, pois você pode enviar seus arquivos para a China para traduzi-los lá. O motivo pelo qual você pode enviá-los para tradutores externos também é o motivo pelo qual você precisa de uma boa ferramenta de sincronização para mesclar as alterações, pois esse pode ser um processo muito assíncrono. Arquivos PO são muito bem suportados, porque gettext é muito antigo. Existem muitas ferramentas comerciais e de código aberto que suportam o processo de localização em vários níveis, dependendo de suas necessidades específicas.

Não subestime a tarefa de localização, escolha uma ferramenta adequada ao processo e aprenda-a. gettext é uma ótima ferramenta, se não for a mais amigável para iniciantes.

Se vale a pena, aqui está minha extensão gettext para Twig , o que torna o gettext para PHP ainda melhor.