2014-11-09 22 views
15

Nella mia app ho tre lingue. Anche launchScreen.xib ha tre localizzazioni.xcode 6 iOS launchScreen.xib problema di localizzazione

enter image description here

Come gli Localizable.strings ho cambiato il testo che deve essere utilizzato dal ID dell'oggetto.

enter image description here

Quando si lancia l'App c'è sempre il testo inglese utilizzato, non il localizzato. E c'è una "X" nel simbolo di LaunchScreen.xib e LaunchScreen.xib (Base). Perché? Come posso risolvere quel problema?

+0

stai testando l'app sul simulatore? – NullData

+0

entrambi, simulatore e dispositivi (iPhone/iPad) - e diverse impostazioni generali della regione e della lingua. – Christian

+1

Non penso che LaunchScreen.xib stia ancora lavorando con l'internazionalizzazione. L'unica cosa che ho funzionato è l'anteprima in Xcode. Forse Apple risolverà questo nel prossimo futuro. – Peter

risposta

-1

Ho avuto lo stesso problema, dopo che ho usato MCLocalization è molto facile da integrare nella tua app. Ha funzionato perfettamente per me

+0

in che modo sarà possibile localizzare la schermata di avvio? Questa non è una soluzione. – Fawkes

7

La risposta corretta alla localizzazione in particolare la schermata di avvio è qui:

Localization of Default.png is not working

E per abbreviare io incollare i passaggi principali:

  1. Creare InfoPlist. file di stringhe. (File, Nuovo, Risorsa, Archi)
  2. Localizzalo e aggiungi la chiave "UILaunchStoryboardName" con il valore che è il nome dello xib che desideri venga mostrato come schermata di avvio per quella localizzazione.

Ad es. per la versione spagnola, aggiungi la tua schermata di avvio e il nome per la versione spagnola della schermata di avvio nelle nuove InfoPlist.strings localizzate per lo spagnolo.

"UILaunchStoryboardName" = "Launch_es";

+0

Non riesco a farlo funzionare. I file xib sono in Base.lproj? –

+1

@LiauJianJie No, non sono all'interno di alcuna cartella "localizzata". Dovresti crearli come faresti con qualsiasi altro comune xib. Il trucco è in pratica localizzare il file delle impostazioni -> "Info.plist". Ma come sappiamo, non è possibile localizzare "Info.plist" nel modo ordinario di selezionare le lingue in Xcode. Per localizzare "Info.plist" devi creare esplicitamente un file "InfoPlist.strings". E poi per localizzare le "InfoPlist.strings" appena create. E solo da ora in poi, Xcode cercherà le impostazioni del tuo progetto in modo localizzato, cercando così un nome localizzato di launchScreen. – Fawkes

+1

Se qualcuno ha problemi a farlo funzionare, controlla di non essere sciocca come me impostando la lingua nello schema invece del dispositivo/simulatore e aspettandoti che funzioni. –

0

Vorrei fornire una descrizione chiara della correzione in base alle informazioni precedenti. Ho avuto lo stesso problema e non ho potuto trovare una descrizione chiara. Ho Xcode 8.2.1 e Swift 3.0 ora. Infine: Ho copiato LaunchScreen.storyboard e l'ho aggiunto al progetto con nome Launch_ru.storyboard. Dopo aver effettuato la localizzazione di Launch_ru.storyboard. Quindi, è necessario selezionarlo e aggiungere la localizzazione di base. Successivamente è necessario aggiungere a aggiunto durante il file di localizzazione principale Tasto InfoPList.string "UILaunchStoryboardName" = "Launch_ru"; dove Launch_ru è il nome della mia nuova Launch_ru.storyboard. Queste tre azioni hanno risolto il problema.

0

Fawkes' answer è quello giusto:

  1. Crea file di InfoPlist.strings.(File, Nuovo, Risorsa, Archi)
  2. Localizzalo e aggiungi la chiave "UILaunchStoryboardName" con il valore che è il nome dello xib che desideri venga mostrato come schermata di avvio per quella localizzazione.

Una cosa da notare è che, tutti gli storyboard schermo di lancio che si finirà per avere bisogno di essere abbaiavano come "localizzazione Base" in Impostazioni File:

enter image description here

Se per sbaglio li contrassegni come localizzazione per una lingua diversa, non funzionerà (verrà visualizzato solo uno schermo nero!)

Problemi correlati