O que é o formato de ficheiro PO?
Arquivos .po são arquivos GNU gettext Portable Object - o formato de origem editável por humanos para traduções de software. O formato é usado em uma vasta gama de projetos: utilitários GNU/Linux, aplicações PHP, pacotes Python, temas e plugins WordPress e muitas outras aplicações de código aberto.
Um arquivo .po é um texto simples em UTF-8 organizado como entradas emparelhadas: msgid (a string original no idioma de origem) e msgstr (o equivalente traduzido). Linhas de comentário prefixadas com # carregam notas do tradutor, comentários extraídos do código-fonte, referências de arquivos e sinalizadores «fuzzy». Entradas com formas plurais usam variantes msgid_plural e msgstr[n] indexadas, regidas por uma expressão Plural-Forms no cabeçalho do arquivo.
O fluxo de trabalho de tradução segue três tipos de arquivo: os desenvolvedores extraem strings traduzíveis para um modelo .pot, os tradutores o copiam por localidade e preenchem os valores msgstr, e então o msgfmt compila cada .po em um arquivo binário .mo que a aplicação carrega em tempo de execução. O .mo é legível apenas por máquina - você sempre edita o .po, nunca a saída compilada.
Arquivos .po podem ser editados em um editor de texto simples, mas ferramentas dedicadas como o Poedit oferecem verificação de erros, sugestões de correspondência aproximada e auxiliares de forma plural. Plataformas web como o Weblate suportam tradução colaborativa. O formato é estável e retrocompatível desde que o GNU gettext foi introduzido em 1995.
Segurança e proteção
RISCO: LOWUm .po contém apenas texto de tradução e comentários - não há código executável, portanto o arquivo em si é inofensivo. A única precaução prática: um arquivo de tradução malicioso colocado em um tema/plugin poderia injetar texto de interface enganoso (ex: links ou instruções alterados), portanto use arquivos de idioma apenas do tema/plugin oficial ou fonte de tradução, não downloads aleatórios de «tradução».
Detalhes do formato
em resumo- Disk image / partition image (rare) - The DB legacy name 'Disk image file' reflects a rare/incorrect labeling; .po is not a standard disk-image extension.
Programas que abrem arquivos PO
Detalhes técnicos
especificação profunda| Tipo de formato | Texto simples, orientado a linhas (sintaxe GNU gettext PO) |
| Codificação | UTF-8 (charset declarado no campo Content-Type do cabeçalho); catálogos legados podem usar codificações ISO-8859-x |
| Tipo MIME | text/x-gettext-translation |
| Estrutura da entrada | Pares msgid / msgstr; msgctxt opcional para desambiguação contextual de strings de origem idênticas |
| Entrada de cabeçalho | A primeira entrada tem um msgid vazio; seu bloco msgstr carrega Project-Id-Version, Content-Type, Plural-Forms e outros metadados do catálogo |
| Formas plurais | msgid_plural com variantes msgstr[0], msgstr[1], ... indexadas; a expressão do cabeçalho Plural-Forms controla qual forma se aplica para uma determinada contagem |
| Tipos de comentário | # (comentário do tradutor), #. (comentário de origem extraído), #: (referência de arquivo de origem), #, (sinalizadores como fuzzy ou c-format) |
| Sinalizador Fuzzy | #, fuzzy marca uma tradução que precisa de revisão após a alteração da string de origem; o msgfmt exclui entradas fuzzy da saída .mo compilada |
| Saída compilada | Convertido para .mo (Machine Object) binário pelo msgfmt; o .mo é o que a aplicação em execução carrega via gettext() |
| Arquivo de modelo | .pot (Portable Object Template) - o esqueleto não traduzido; todos os arquivos .po de idioma são derivados dele via msginit ou msgmerge |
| Tamanho de arquivo típico | 5 KB - 5 MB; escala com o número de strings traduzíveis no projeto |
| Cadeia de ferramentas | xgettext (extrair strings da origem), msginit (criar novo .po), msgmerge (atualizar .po existente), msgfmt (compilar para .mo) |
| Plataforma | Qualquer uma - Linux, macOS, Windows, BSD; onde quer que o GNU gettext ou uma implementação libintl compatível esteja disponível |
| Ecossistema | Usado por WordPress, Drupal, GNOME, KDE, Python gettext, PHP gettext e muitos outros frameworks para internacionalização (i18n) |
| Lançado | 1995 (GNU gettext) |
| Versão mais recente | PO file syntax is stable; defined in the current GNU gettext manual |
| Padrão aberto | Sim · livre de royalties |
| Especificação | www.gnu.org |
Conversões de PO
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos PO.