|
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 scaricato. A seconda del metodo di caricamento/scaricamento (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 stringhe localizzabili vengono estratte dal codice sorgente in un file PO per la traduzione. Un file .PO è una serie di coppie chiave-valore. La chiave msgid è dove viene posizionata la stringa sorgente mentre il valore msgstr è dove va la traduzione.
gettext estrae le stringhe dal codice sorgente in un .POT (template di oggetto portatile). Sulla base delle impostazioni locali definite, gettext converte quindi il file .POT in file .PO specifici per la localizzazione da caricare in 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, tranne per il fatto che i file .POT sono generalmente utilizzati da gettext per generare file .PO specifici per la localizzazione. Tradurre un file .POT direttamente e rinominarlo secondo la successiva localizzazione prevista non genera problemi. Phrase supporta la traduzione di:
-
.I file .PO
-
File .PO bilingue
-
File .MO leggibili dalla macchina
msgctxt sarà utilizzato 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 della traduzione dal valore |
|
Identificatore |
è_file_bilingue |
|
Tipo |
Booleano |
|
Caricamento |
vero |
|
Download |
false |
|
Predefinito |
false |
|
Descrizione |
Sia le traduzioni di origine che quelle di destinazione saranno importate dal file caricato: il contenuto di origine sarà prelevato dal valore |
Campione di codice
msgid "" msgstr "" "Lingua: Inglese\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 è l'incredibile descrizione per questa chiave! msgid "key_with_description" msgstr "Controllalo! Questa chiave ha una descrizione! (Almeno in alcuni formati)" msgid "key_with_line-break" msgstr "Questa traduzione contiene\un’interruzione di riga." msgid "nested.deeply.key" msgstr "Wow, questa chiave è nidificata ancora più profondamente." msgid "nested.key" msgstr "Questa chiave è nidificata in 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, così semplice." #, fuzzy msgid "unverified_key" msgstr "Ho bisogno di verifica, per favore verificami!" (In alcuni formati esportiamo anche lo stato)"
Voce tipica di gettext:
# descrizione (Opzionale) msgid "key-name" msgstr "La mia traduzione"
Intestazione gettext
L'intestazione di un file gettext può contenere un nome locale e dati per le forme plurali che vengono estratti durante l'importazione:
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
I commenti in un file gettext vengono aggiunti come descrizioni delle chiavi durante l'importazione:
# Questa è la mia descrizione msgid "app_title" msgstr "Il mio progetto software"
Contesto
gettext utilizza la notazione msgctxt per distinguere i diversi contesti 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 pipe ||:
msgctxt "menu" msgid "Apri" msgstr "Sono una traduzione" msgctxt "forum" msgid "Apri" msgstr "Sono un'altra traduzione"
Per aggiungere il msgctxt a una nuova chiave, precedilo con il 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 "nuovi_messaggi"
msgid_plural ""
msgstr[0] "Hai un nuovo messaggio"
msgstr[1] "Hai %{count} nuovi messaggi"
Fuzzy
La parola chiave fuzzy è utilizzata per la verifica della traduzione. Fuzzy attiva automaticamente il processo di non verifica all'interno di Phrase.
#, fuzzy msgid "app_title" msgstr "Il mio progetto software"