2009-11-27 11 views
18

Ho un progetto di iPhone internazionalizzato. Nei vari file ${lang}.lproj/InfoPlist.strings ho una singola chiave, CFBundleName = "My App Name".XCode - Più destinazioni, più nomi * internazionalizzati *?

che sta lavorando bene per un singolo bersaglio, ma non riesco a farlo funzionare per più destinazioni.

Mi piacerebbe avere più file tradotti InfoPlistMyApp.strings per il target principale, più alcuni file InfoPlistMyAppLite.strings per la versione lite. Ma non riesco a capire come installarlo. Il nome InfoPlist.strings sembra essere impostato su pietra, quindi non posso sostituirlo dinamicamente.

Qualche idea?

risposta

34

Risulta questo è abbastanza facile, se laborioso. Si può avere diverse InfoPlist.strings, uno-enabled-per-bersaglio, e ognuno di essi può essere internazionalizzato, a patto che ogni set è in un diverso gruppo di Xcode.

istituire una struttura di directory simile a questo:

.../AppName/ 
      en.lproj/InfoPlist.strings <-- Contains CFBundleDisplayName 
      it.lproj/InfoPlist.strings <-- ... 
      ... 
.../AppNameLite/ 
      en.lproj/InfoPlist.strings <-- ... 
      it.lproj/InfoPlist.strings <-- ... 
      ... 

importare i file in gruppi Xcode, in modo che appaia in questo modo:

alt text

destro del mouse su "Gruppi & file" (in alto a sinistra di Xcode) e assicurarsi che "Target Membership" sia visibile, quindi passare attraverso i tuoi obiettivi, controllando che l'insieme giusto di stringhe sia abilitato per ciascuno.

+0

opere perfettamente immobile! –

+0

può confermare questo funziona su xcode 9. ottimo lavoro !! –

Problemi correlati