2014-10-03 16 views
8

In Xcode 6 il formato file XLIFF viene ora utilizzato per la localizzazione delle stringhe. Tuttavia, ho bisogno di localizzare plurali e generi. Come posso farlo in Xcode 6?Xcode 6 localizzazione di plurali e generi con XLIFF

Per quanto ho capito, il file XLIFF ora sostituisce il file Localizable.strings. In iOS 7/OS X 10.9 abbiamo potuto localizzare i plurali & sessi aggiungendo Localizzabile. stringsdict ma ciò richiede l'esistenza di un Localizable.strings. Ma dal momento che non esiste un file Localisable.strings, come posso far funzionare il file Localizable.stringsdict?

risposta

10

A partire da Xcode 6, Apple utilizza XLIFF come formato di file per l'esportazione del progetto per la localizzazione. Tuttavia, nulla è cambiato all'interno del progetto stesso. Dovresti continuare a utilizzare i file Localisable.strings e Localizable.stringsdict per gestire i plurali in base alla documentazione di Apple su Handling Noun Plurals and Units of Measurement.

È possibile fare riferimento a questo Objective-C project o questo Swift project come esempi di utilizzo di stringhe di file di dizionario per plurali con Xcode 6.

Un po 'più di fondo su XLIFF e Xcode 6:

XLIFF (XML Localization Interchange File Format) è un formato basato su XML creato per standardizzare il modo in cui i dati localizzabili vengono passati tra gli strumenti durante un processo di localizzazione. XLIFF è stato standardizzato da OASIS nel 2002.

Quando si fa clic su Editor -> Esporta per la localizzazione in Xcode, confeziona il backup di tutti i vostri beni localizzabili in un file XLIFF che può essere gestito via di traduttori per la localizzazione dell'applicazione di stringhe. Poiché XLIFF è un formato di file standardizzato, ciò significa che i traduttori e gli strumenti di traduzione non hanno bisogno di capire il formato interno delle stringhe di Apple.

Ecco un documento example of the resulting XLIFF prodotto esportando il riferimento Swift project di cui sopra per la localizzazione. Ora i traduttori possono utilizzare una piattaforma o uno strumento di traduzione per tradurre il contenuto dell'applicazione e restituire un file XLIFF localizzato. Tu, come sviluppatore, puoi usare la funzione "Importa localizzazioni" di Xcode per importare il file XLIFF tradotto nel tuo progetto. Ciò causerà che Xcode generi i file di stringhe specifici della locale necessari dal XLIFF importato.

In breve, non è cambiato nulla nel modo in cui sviluppi il tuo progetto. Ciò che è stato aggiunto in Xcode 6 è una nuova funzionalità per semplificare il processo di localizzazione.

C'è un avvertimento che dovrei menzionare sui plurali e sull'esportazione per la localizzazione. A partire da Xcode 6.1, la funzionalità di esportazione di Apple per la localizzazione non ha ancora un modo per esportare correttamente i plurali. Questo è molto probabilmente dovuto alla specifica XLIFF corrente che non ha un modo standardizzato di gestire le rappresentazioni plurali di una stringa. C'è un open bug con Apple per risolvere questo problema.

+0

Quindi in breve: se ho plurali, continua ad usare Localizable.strings e Localizable.stringsdict. Se non lo faccio, allora posso (ma non devo) usare XLIFF. Non posso mescolare e abbinare entrambi, cioè XLIFF per la localizzazione non plurale mentre uso Localizable.strings/.stringsdict per la localizzazione plurale? O deve essere uno o l'altro? – iMaddin

+1

@iMaddin, si continua a utilizzare Localizable.strings/.stringsdict per la localizzazione plurale. XLIFF è solo un formato di interscambio per esportare le stringhe dal tuo progetto e importare le traduzioni nel tuo progetto. Non è necessario utilizzare questa nuova funzionalità Xcode o XLIFF. È lì per semplificare il processo di collaborazione con traduttori che sono abituati a XLIFF o piattaforme di traduzione che lo supportano. XLIFF non sostituisce i file Localizable.strings/.stringsdict di Apple. – Scott

+0

@Scott, le stringhe nel file .stringsdict non sono disponibili nel file en.xliff e lo hai già menzionato sopra. La mia domanda è: come lo gestisci? Invia il file .stringsdict separatamente al traduttore? – Mustafa

Problemi correlati