|
Estensioni dei file |
.po |
|
Estensione API |
gettext |
|
Importa |
Sì |
|
Esporta |
Sì |
|
Supporto forme plurali |
Sì |
|
Supporto descrizione |
Sì |
|
Opzioni di formato Queste opzioni possono essere specificate quando un file viene caricato e/o Scarica. A seconda del metodo di caricare/Scarica (API, CLI, sincronizzazione Repo ecc.), possono essere specificate nei parametri di query |
|
.PO (Portable Object) è il formato di file standard per la localizzazione con GNU gettext, una libreria GNU open source progettata per semplificare il processo di localizzazione. Con GNU gettext, le Strings localizzabili vengono estratte dal codice di origine in un file PO per la traduzione. Un file .PO è una serie di coppie chiave-valore. La chiave msgid è dove viene inserita la stringa di origine, mentre il valore msgstr è dove va la traduzione.
gettext estrae le Strings dal codice di origine in un .POT (modello di oggetto portabile). In base alle impostazioni locali definite, gettext converte quindi il file .POT in file .PO specifici per le impostazioni locali da caricare su uno strumento CAT per la traduzione. Dopo la traduzione, gettext converte i file .PO tradotti in file .MO (file oggetto macchina) utilizzati infine per la localizzazione.
I file .PO sono identici ai file .POT, eccetto per il fatto che i file .POT sono generalmente utilizzati da gettext per generare file .PO specifici per le impostazioni locali. La traduzione diretta di un file .POT e la sua ridenominazione in base alle impostazioni locali previste in seguito non genera problemi. Phrase supporta la traduzione di:
-
File .PO
-
File .PO bilingue
-
File .MO leggibili dalla macchina
msgctxt verrà utilizzato come prefisso della 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 della traduzione dal valore |
|
Identificatore |
is_bilingual_file |
|
Tipo |
Booleano |
|
Caricamento |
vero |
|
Download |
false |
|
Predefinito |
false |
|
Descrizione |
Sia le traduzioni di origine che di destinazione verranno importate dal file caricato: il contenuto di origine verrà prelevato dal valore |
Campione di codice
msgid "" msgstr "" "Language: Italian\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: 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 fantastica descrizione per questa chiave! msgid "key_with_description" msgstr "Dai un'occhiata!" 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, questa chiave è nidificata ancora più profondamente." msgid "nested.key" msgstr "Questa chiave è nidificata all'interno di uno spazio dei nomi." msgid "null_translation" msgstr "" msgid "pluralized_key" msgid_plural "" msgstr[0] "Trovata solo una pluralizzazione." msgstr[1] "Wow, hai %s pluralizzazioni!" msgid "sample_collection" msgstr "---\n- primo elemento\n- secondo elemento\n- terzo elemento\n" msgid "simple_key" msgstr "Chiave semplice, messaggio semplice. Semplice, no? 2" #, fuzzy msgid "unverified_key" msgstr "Ho bisogno di una verifica, per favore verificami!"}}-end-of-output- (In alcuni formati esportiamo anche lo stato)"
Voce gettext tipica:
# descrizione (opzionale) msgid "key-name" msgstr "La mia traduzione"
Intestazione gettext
L'intestazione di un file gettext può contenere un nome di impostazioni locali e dati per le forme plurali che vengono estratti durante l'importare:
msgid "" msgstr "" "Lingua: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: PhraseApp (phraseapp.com)\n"
Descrizioni delle chiavi
I commenti in un file gettext vengono aggiunti come descrizioni chiave durante l'importazione:
# Questa è la mia descrizione msgid \"app_title\" msgstr "Il mio progetto software"
Context
gettext utilizza la notazione msgctxt per distinguere contesti diversi per lo stesso msgid. Ogni nome di chiave deve essere univoco, quindi msgctxt viene aggiunto come prima parte del nome della chiave, separato da due simboli pipe ||:
msgctxt "menu" msgid \"Open\" msgstr \"Sono una traduzione\" msgctxt \"forum\" msgid \"Open\" msgstr \"Sono un'altra traduzione\"
Per aggiungere msgctxt a una nuova chiave, anteponilo al nome della chiave:
my_context||my_key_name
Output gettext risultante:
... 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 della traduzione. Fuzzy richiama automaticamente il processo di non verifica all'interno di Phrase.
#, fuzzy msgid \"app_title\" msgstr "Il mio progetto software"