Tipi di file supportati (Strings)

PO - file gettext ((Strings))

Contenuti tradotti automaticamente dall'inglese con Phrase Language AI.

Estensioni dei file

.po

Estensione API

gettext

Importa

Esporta

Supporto alle forme plurali

Supporto alla descrizione

.PO (Portable Object) è il formato standard di file per la localizzazione con gettext GNU, una libreria GNU di origine aperta progettata per semplificare il processo di localizzazione. Con GNU gettext, Strings localizzabili 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 è 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 uno strumento CAT 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 che i file .POT sono generalmente utilizzati da gettext per generare file .PO specifici per le impostazioni locali. Tradurre direttamente un file .POT e rinominarlo secondo le impostazioni locali successive non crea problemi. Phrase supporta la traduzione di:

  • File PO

    • Assicurati che l'opzione di traduzione predefinita Msgid sia abilitata.

      Se non abilitata, il nome della chiave (msgid) sarà importato ma l'origine (msgstr) sarà vuota.

  • File PO bilingue

    Selezionare Importa file .PO bilingue quando si carica un file tramite l'interfaccia utente Strings per abilitare le opzioni di importazione rilevanti.

    • msgid è la traduzione di origine predefinita e il nome della chiave

    • msgstr è la traduzione di destinazione predefinita

    • msgctxt viene aggiunto a msgid con ||

  • .POT

  • File .MO leggibili automaticamente

Campione di codice

msgid ""
msgstr ""
"Lingua: English\n"
"Versione MIME: 1,0\n"
"Tipo di contenuto: text/plain; 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 "Dai un'occhiata! Questa chiave ha una descrizione! (Almeno in alcuni formati)"

msgid "key_with_line-break"
+msgstr "Questa traduzione contiene\na interruzione di riga."

msgid "nested.deeply.key"
msgstr "Wow, questa chiave è nidificata ancora più in profondità."

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] "Solo una pluralizzazione trovata."
msgstr[1] "Wow, hai %s pluralizzazioni!"

msgid "sample_collection"
msgstr "--\n- primo elemento\n- secondo elemento\n- terzo elemento\n"

+msgstr "simple_key"
msgstr "chiave semplice, messaggio semplice, così semplice."

#, fuzzy
msgid "unverified_key"
+msgstr "Ho bisogno di verifica, per favore verificare! (In alcuni formati esportiamo anche questo stato)"

Tipica voce gettext:

# descrizione (opzionale)
+msgstr "nomechiave"
msgstr "La mia traduzione"

intestazione gettext

L'intestazione di un file gettext può contenere un nome 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: text/plain; 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 usa la notazione msgctxt per distinguere contesti diversi per lo stesso msgid. Ogni nome di chiave deve essere unico in modo che msgctxt venga aggiunto come prima parte del nome della chiave, separato da due simboli pipe ||:

msgctxt "menu"
+msgstr "Apri"
msgstr "Sono una traduzione"

msgctxt "forum"
+msgstr "Apri"
msgstr "Sono un'altra traduzione"

Per Aggiungi 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 le forme plurali per una traduzione:

+msgstr "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"
Questo articolo ti è stato utile?

Sorry about that! In what way was it not helpful?

The article didn’t address my problem.
I couldn’t understand the article.
The feature doesn’t do what I need.
Other reason.

Note that feedback is provided anonymously so we aren't able to reply to questions.
If you'd like to ask a question, submit a request to our Support team.
Thank you for your feedback.