Estensioni dei file |
.xlf, .xliff |
Estensione API |
xlf |
Importa |
Sì |
Esporta |
Sì |
Supporto forme plurali |
Sì |
Supporto descrizione |
Sì |
Opzioni di formato |
enclose_in_cdata include_translation_state indent_size indent_style ignore_source_translations ignore_target_translations export_key_id_as_resname export_key_name_hash_as_extradata override_file_language strip_placeholder_delimiters delimit_placeholders |
Il formato di file più utilizzato nell'industria della traduzione. Può essere visto come lo specchio del file sorgente che suddivide il contenuto sorgente in vari segmenti memorizzati in tag (ad es. <trans-unit>
, <seg-source>
).
XLIFF è basato su XML ed è soggetto a convenzioni XML di base come validità e ben formato. Completa sempre un controllo di sanità prima della traduzione cambiando l'estensione del file da .xliff (.xlf) a .xml e aprendolo in un browser web. Se il file è valido, viene presentata una struttura documentale ben organizzata e, in caso contrario, sarà non renderizzabile o con un messaggio di errore.
XLIFF è stato aggiornato con XLIFF 2.0. È simile all'XLIFF più ampiamente utilizzato ma è un formato di file diverso solitamente incompatibile con XLIFF.
Xcode può impacchettare stringhe localizzabili nel formato XLIFF standard del settore da inviare per localizzazione con Phrase.
Opzioni di formato
Identificatore |
enclose_in_cdata |
Tipo |
booleano |
Caricamento |
No |
Download |
Sì |
Predefinito |
false |
Descrizione |
Includere traduzioni contenenti tag html in CDATA. Se disabilitato, le entità HTML non supportate vengono sostituite con i loro valori decodificati. Ad esempio:
|
Identificatore |
include_translation_state |
Tipo |
booleano |
Caricamento |
No |
Download |
Sì |
Predefinito |
false |
Descrizione |
Includere stato delle traduzioni nella lingua target. Ogni |
Identificatore |
indent_size |
Tipo |
intero |
Caricamento |
No |
Download |
Sì |
Predefinito |
4 |
Descrizione |
Specifica il numero di caratteri di indentazione |
Identificatore |
indent_style |
Tipo |
stringa |
Caricamento |
No |
Download |
Sì |
Predefinito |
spazio |
Descrizione |
Specifica il carattere di indentazione. I valori consentiti sono |
Identificatore |
ignore_source_translations |
Tipo |
booleano |
Caricamento |
Sì |
Download |
No |
Predefinito |
false |
Descrizione |
Ignora le traduzioni sorgente nel file durante il caricamento (per evitare aggiornamenti accidentali della lingua sorgente) |
Identificatore |
ignore_target_translations |
Tipo |
booleano |
Caricamento |
Sì |
Download |
No |
Predefinito |
false |
Descrizione |
Ignora le traduzioni di destinazione nel file durante il caricamento (per evitare aggiornamenti accidentali della lingua sorgente) |
Identificatore |
export_key_id_as_resname |
Tipo |
booleano |
Caricamento |
No |
Download |
Sì |
Predefinito |
false |
Descrizione |
Esporta l'ID chiave come attributo resname. |
Identificatore |
export_key_name_hash_as_extradata |
Tipo |
booleano |
Caricamento |
No |
Download |
Sì |
Predefinito |
false |
Descrizione |
Esporta l'hash del nome chiave come attributo extradata. |
Identificatore |
override_file_language |
Tipo |
booleano |
Caricamento |
Sì |
Download |
No |
Predefinito |
false |
Descrizione |
Questo formato di file contiene tipicamente informazioni sulla lingua nel file stesso. Usa questa opzione per sovrascrivere la lingua con una che specifichi. |
Identificatore |
strip_placeholder_delimiters |
Tipo |
booleano |
Caricamento |
Sì |
Download |
No |
Predefinito |
false |
Descrizione |
Rimuove i tag |
Identificatore |
delimit_placeholders |
Tipo |
booleano |
Caricamento |
No |
Download |
Sì |
Predefinito |
false |
Descrizione |
Avvolgi i segnaposto di traduzione nei tag |
Campione di codice
<?xml version="1.0" encoding="UTF-8"?> <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2"> <file original="global" datatype="plaintext" source-language="de-DE" target-language="en-GB"> <body> <trans-unit id="boolean_key"> <source xml:lang="de-DE">--- true </source> <target xml:lang="en-GB">--- true </target> </trans-unit> <trans-unit id="empty_string_translation"> <source xml:lang="de-DE"/> <target xml:lang="en-GB"/> </trans-unit> <trans-unit id="key_with_description"> <source xml:lang="it-IT">Guarda questo an! Questa chiave ha una descrizione!</source> <target xml:lang="it-IT">Controllalo! Questa chiave ha una descrizione! (Almeno in alcuni formati)</target> <note>Questa è l'incredibile descrizione per questa chiave!</note> </trans-unit> <trans-unit id="key_with_line-break"> <source xml:lang="it-IT">Questa traduzione ha un'interruzione di riga.</source> <target xml:lang="it-IT">Questa traduzione contiene a line-break.</target> </trans-unit> <trans-unit id="nested.deeply.key"> <source xml:lang="de-DE">Ich bin ein tief verschachtelter Schlüssel.</source> <target xml:lang="it-IT">Sono una chiave profondamente annidata.</target> </trans-unit> <trans-unit id="nested.key"> <source xml:lang="de-DE">Dieser Schlüssel ist innerhalb eines Namensraumes verschachtelt.</source> <target xml:lang="it-IT">Questa chiave è annidata all'interno di uno spazio dei nomi.</target> </trans-unit> <trans-unit id="null_translation"> <source xml:lang="de-DE"/> <target xml:lang="en-GB"/> </trans-unit> <trans-unit id="sample_collection"> <source xml:lang="de-DE">--- - primo elemento - secondo elemento </source> <target xml:lang="en-GB">--- - primo elemento - secondo elemento - terzo elemento </target> </trans-unit> <trans-unit id="simple_key"> <source xml:lang="de-DE">Einfacher Schlüssel, einfache Nachricht, so einfach</source> <target xml:lang="it">Chiave semplice, messaggio semplice, così semplice.</target> </trans-unit> <trans-unit id="unverified_key"> <source xml:lang="it">Questa traduzione non è ancora verificata e aspetta!</source> <target xml:lang="it">Questa traduzione non è ancora verificata e aspetta per essa.</target> (In alcuni formati esportiamo anche questo stato) </trans-unit> </body> </file> </xliff>
Forme plurali
Le chiavi plurali vengono esportate utilizzando la seguente sintassi:
<trans-unit id="plural_key"> <source xml:lang="it">{"one":"una sedia","other":"{nrOfChairs} sedie","zero":"nessuna sedia"}</source> <target xml:lang="it">{"one":"una sedia","other":"{nrOfChairs} sedie","zero":"nessuna sedia"}</target> </trans-unit>