Estensioni dei file |
.po |
Estensione API |
gettext |
Importa |
Sì |
Esporta |
Sì |
Supporto forme plurali |
Sì |
Supporto descrizione |
Sì |
Opzioni di formato |
|
.PO (Portable Object) è il formato standard di file per la localizzazione con GNU gettext, una libreria GNU di origine aperta progettata per semplificare il processo di localizzazione. Con GNU gettext, Localizable Strings vengono estratte dal codice origine in un file PO per la traduzione. Un file .PO è una serie di coppie chiave-valore. La chiave msgid
è dove viene posta la stringa di origine mentre il valore msgstr
è dove va la traduzione.
gettext estrae Strings dal codice origine in un .POT (modello di oggetto portatile). In base alle impostazioni locali definite, gettext converte quindi il file .POT in file .PO specifici delle impostazioni locali da caricare in un CAT tool per la traduzione. Dopo la traduzione, gettext converte i file PO tradotti in file .MO (file oggetto macchina) eventualmente utilizzati per la localizzazione.
I file .PO sono identici ai file .POT tranne per il fatto che i file .POT sono generalmente utilizzati da gettext per generare file .PO specifici delle impostazioni locali. Tradurre direttamente un file .POT e rinominarlo secondo le impostazioni locali successive non genera problemi. phrase supporta la traduzione di:
-
File PO
-
File PO bilingue
-
File .MO leggibili automaticamente
msgctxt
verrà usato come prefisso chiave, combinato con msgid
e separato da ||
.
Opzioni di formato
Identificatore |
msgid_as_default |
Tipo |
Booleano |
Caricamento |
vero |
Download |
false |
Predefinito |
false |
Descrizione |
Prende il contenuto di traduzione dal valore |
Identificatore |
is_bilingual_file |
Tipo |
Booleano |
Caricamento |
vero |
Download |
false |
Predefinito |
false |
Descrizione |
Sia la traduzione di origine che quella di destinazione saranno importate dal file caricato: il contenuto origine sarà prelevato dal valore |
Campione di codice
msgid "" msgstr "" "Language: Inglese\n" "Versione MIME: 1,0\n" "Tipo di contenuto: testo/piano; charset = UTF-8\n" "Codifica trasferimento contenuti: 8bit\n" "Forme plurali: nplurals=2; plural=(n != 1);\n" "X-Generator: PhraseApp (phraseapp.com)\n" msgid "boolean_key" msgstr "--- true\n" msgid "empty_string_translation" msgstr "" # Questa è la descrizione incredibile per questa chiave! msgid "key_with_description" msgstr "Guarda qui! Questa chiave ha una descrizione! (Almeno in alcuni formati)" msgid "key_with_line-break" msgstr "Questa traduzione contiene\nun’interruzione di riga." msgid: "nested.deeply.key" msgstr "Wow, this chiave is nested even deep." msgid "nested.key" msgstr "This chiave is nested inside a namespace." msgid: "null_translation" msgstr "" msgid "pluralized_key" msgid_plural "" msgstr[0] "Trovata solo una pluralizzazione." 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 "chiave semplice, messaggio semplice. Semplice, no?", #, fuzzy msgid "non verificata_chiave" msgstr "Ho bisogno di verifica, per favore verificare! (In alcuni formati esportiamo anche lo stato)"
Tipica voce gettext:
# descrizione (opzionale) msgid "nomechiave" msgstr "La mia traduzione"
gettext Header
L’intestazione di un file gettext può contenere un nome per le impostazioni locali e dati per le forme plurali che vengono estratti durante l’importazione:
msgid "" msgstr "" "Lingua: en\n" "Versione MIME: 1,0\n" "Tipo di contenuto: testo/piano; charset = UTF-8\n" "Codifica trasferimento contenuti: 8bit\n" "Forme plurali: nplurals=2; plural=(n != 1);\n" "X-Generator: PhraseApp (phraseapp.com)\n"
Descrizioni
I commenti in un file gettext vengono aggiunti come descrizioni chiave durante l’importazione:
# This is my description msgid "app_title" msgstr "Il mio progetto software"
Contesto
gettext utilizza la notazione msgctxt
per distinguere contesti diversi per lo stesso msgid
. Ogni nome di chiave deve essere unico, quindi msgctxt
viene aggiunto come prima parte del nome della chiave, separato da due simboli di pipe ||
:
msgctxt "menu" msgid "Apri" msgstr "Sono una traduzione" msgctxt "forum" msgid "Apri" msgstr "Sono un'altra traduzione"
Per aggiungere l'msgctxt
a una nuova chiave, anteponilo al nome della chiave:
my_context||my_key_name
Risultato output gettext:
... msgctxt "my_context" msgid "my_key_name" ...
Forme plurali
gettext supporta forme plurali per una traduzione:
msgid "new_messages" msgid_plural "" msgstr[0] "Hai un nuovo messaggio" msgstr[1] "Hai %{count} nuovi messaggi"
Fuzzy
La parola chiave fuzzy viene utilizzata per la verifica del traduttore. Fuzzy invoca automaticamente il processo di annullamento della verifica all'interno dell'app.
#, fuzzy msgid "app_title" msgstr "Il mio progetto software"