Extensões de arquivo |
.po |
Extensão de API |
gettext |
Importar |
Sim |
Exportar |
Sim |
Suporte para formas plurais |
Sim |
Suporte para descrição |
Sim |
Opções de formato |
|
O .OS (Objeto Portátil) é o formato padrão para localização com o GNU gettext, uma biblioteca de texto original aberto do GNU projetada para simplificar o processo de localização. Com o GNU gettext, Strings Localizable são extraídas do código de texto texto original em um arquivo OS para tradução. Um arquivo .OS é uma série de pares de chave-valor. A chave msgid
é onde a string do texto original está colocada, ao passo que o valor msgstr
é onde a tradução vai.
gettext extrai Strings do código do texto original para um .POT (modelo de objeto portátil). Com base em locais definidos, o gettext converte o arquivo OST em arquivos .PO específicos para upload a uma ferramenta CAT para tradução. Após a tradução, o gettext converte os arquivos .OS traduzidos em arquivos .MO (arquivos de objeto automático) eventualmente usados para localização.
Os arquivos .OS são idênticos aos arquivos .POT, exceto que os arquivos .POT são geralmente usados pela gettext para gerar arquivos .OS locais específicos. Traduzir um arquivo .POT diretamente e renomeá-lo de acordo com o local pretendido posteriormente não gera problemas. O phrase aceita a tradução de:
-
Arquivos .OS
-
Arquivos .OS bilíngues
-
Arquivos .MO lidos por máquina
msgctxt
será usado como prefixo chave, combinado com msgid
e separado por |
.
Opções de formato
Identificador |
msgid_as_default |
Tipo |
Booleano |
Upload |
true |
Baixar |
false |
Padrão |
false |
Descrição |
Leva o conteúdo da tradução do valor |
Identificador |
is_bilingual_file |
Tipo |
Booleano |
Upload |
true |
Baixar |
false |
Padrão |
false |
Descrição |
As traduções do texto original e da tradução serão importadas do arquivo com upload feito: o conteúdo original será retirado do valor do |
Amostra de código
msgid "" msgstr "" "Idioma: Inglês\n" "MIME-Version: 1.0\n" "Tipo de conteúdo: text/plain; caracteres=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Formas plurais: nplurals=2; plural=(n != 1);\n" "X-Generator: PhraseApp (phraseapp.com)\n" msgid "boolean_key", msgstr "--- true\n" msgid "empty_string_translation", msgstr "" # Esta é a descrição incrível para esta chave! msgid "key_with_description" msgstr "Cheque! This key has a description! (At least in some formats)" msgid "key_with_line-break" msgstr "Essas traduções contêm\na quebra de linha." msgid "nested.deeply.key", msgstr "Wow, esta chave está aninhada ainda mais profundamente." msgid "nested.key", msgstr "Esta chave está aninhada em um namespace." msgid "null_translation", msgstr "" msgid "pluralized_key" msgid_plural "" msgstr[0] "Somente uma pluralização encontrada." msgstr[1] "Wow, you have %s pluralizations!" msgid "sample_collection", msgstr "---\n- first item\n- second item\n- third item\n" msgid "simple_key", msgstr "simple chave, simple message, so simple.2" #, correspondência parcial msgid "unverified_key" msgstr "Preciso de verificação, verificar! (In some formats we also export this status)"
Entrada gettext típica:
# descrição (opcional) msgid "nome da chave" msgstr "Minha tradução"
Cabeçalho de gettext
O cabeçalho de um arquivo gettext pode conter um nome local e dados para formas plurais que são extraídos ao importar:
msgid "" msgstr "" "Idioma: en\n" "MIME-Version: 1.0\n" "Tipo de conteúdo: text/plain; caracteres=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Formas plurais: nplurals=2; plural=(n != 1);\n" "X-Generator: PhraseApp (phraseapp.com)\n"
Descrições
Comentários em um arquivo gettext são adicionados como descrições chave ao importar:
# Esta é a minha descrição msgid "app_title" msgstr "Meu projeto de software"
Contexto
gettext usa a notação msgctxt
para distinguir diferentes contextos para o mesmo msgid
. Cada nome da chave deve ser único, então msgctxt
é adicionado como a primeira parte do nome da chave, separada por dois símbolos de tubo |
:
msgctxt "menu" msgid "Abrir" msgstr "Sou uma tradução" msgctxt "forum" msgid "Abrir" msgstr "Sou outra tradução"
Para adicionar o msgctxt
a uma nova chave, preceda-o ao nome da chave:
my_context||my_key_name
Saída gettext resultante:
... msgctxt "my_context" msgid "my_key_name" ...
Formas plurais
gettext aceita formas plurais para uma tradução:
msgid "new_messages" msgid_plural "" msgstr[0] "Você tem uma nova mensagem" msgstr[1] "Você tem %{count} novas mensagens"
Parecido
A palavra-chave de correspondência parcial é usada para verificação do tradutor. A correspondência parcial invoca automaticamente o processo de cancelamento de verificação no aplicativo.
#, correspondência parcial msgid "app_title" msgstr "Meu projeto de software"