2009-11-27 12 views
18

Tengo un proyecto de iPhone internacionalizado. En los diversos archivos ${lang}.lproj/InfoPlist.strings tengo una sola clave, CFBundleName = "My App Name".XCode - ¿Múltiples objetivos, múltiples * nombres internacionalizados *?

Eso funciona bien para un solo objetivo, pero no puedo hacerlo funcionar para objetivos múltiples.

Me gustaría tener varios archivos InfoPlistMyApp.strings traducidos para el objetivo principal, más varios archivos InfoPlistMyAppLite.strings para la versión lite. Pero no puedo encontrar la manera de configurarlo. El nombre InfoPlist.strings parece estar escrito en piedra, por lo que no puedo reemplazarlo dinámicamente.

¿Alguna idea?

Respuesta

34

Resulta que esto es bastante fácil, si es laborioso. Puede tener varias InfoPlist.strings, one-enabled-per-target, y cada una de ellas puede internacionalizarse, , siempre que cada conjunto esté en un grupo diferente de Xcode.

establecer una estructura de directorio de la siguiente manera:

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

importar dichos archivos en grupos de Xcode, por lo que se ve así:

alt text

Haga clic en "Grupos & archivos" (arriba a la izquierda de Xcode) y asegúrese de que la "Membresía de destino" esté visible, luego revise sus objetivos, verificando que el conjunto de cadenas correcto esté habilitado para cada uno.

+0

¡funciona perfectamente inmóvil! –

+0

puede confirmar que esto funciona en xcode 9. ¡¡¡excelente trabajo !! –

Cuestiones relacionadas