¿Cómo establecer un idioma distinto del inglés como idioma de desarrollo y localización de base?

Cuando un proyecto Xcode de la aplicación iOS se acaba de crear, en la configuración del proyecto (no objetivo) podemos ver que tieneUse Base internationalization habilitado de forma predeterminada, y hay 2 archivos localizados paraDevelopment Language cual esEnglish por defecto (uno paraMain.storyboard y uno paraLaunchScreen.storyboard, los cuales residen en elBase.lproj directorio). Vea a continuación la captura de pantalla:

(Por simplicidad, solo mencionaréMain.storyboard de ahora en adelante.)

Y en la sección de localización deMain.storyboarden el panel del lado derecho, podemos ver que elBase la localización está marcada por defecto y también hay unEnglish localización que no está marcada de forma predeterminada. Vea a continuación la captura de pantalla:

Y en el objetivoInfo.plist, hay una clave llamadaLocalization native development region (es decir.CFBundleDevelopmentRegion), y su valor predeterminado esen. Vea a continuación la captura de pantalla:

Si lo entiendo correctamente, con esta configuración predeterminada, el desarrollador puede escribir inglés en elBase localización deMain.storyboard y deja elEnglish localización como no verificada. Si la aplicación necesita adaptarse a algún otro idioma, el desarrollador puede agregar una localización en la configuración de localización del proyecto y seleccionarMain.storyboard en el cuadro de diálogo emergente. Vea a continuación la captura de pantalla:

TomarChinese (Simplified) como ejemplo, esto dará como resultado un directorio recién creadozh-Hans.lproj con unMain.strings archivo dentro de él. (Por simplicidad, me referiré a él comoChinese en lugar deChinese (Simplified).) El desarrollador solo necesita traducir las cadenas inglesas dentro de este archivo al chino (el recién creadoMain.strings en elzh-Hans.lproj el directorio por defecto tiene todos los textos en inglés duplicados delMain.storyboard enBase.lproj) Con esta configuración, elLanguage El campo en la descripción de esta aplicación en AppStore mostrará inglés (desde elBase localización, porque el inglés es eldevelopment language) y chino (delChinese localización). En el dispositivo del usuario final, si el idioma del sistema es inglés / chino (o el inglés / chino se encuentra entre los idiomas preferidos), la aplicación usará el recurso de idioma correspondiente (para inglés, use elBase localización; para chino, use elChinese localización). Para todas las demás preferencias de idioma, el inglés actuará como idioma alternativo porqueCFBundleDevelopmentRegion esen, entoncesBase Se utiliza la localización.

Entonces mi primera pregunta será, ¿es correcto el entendimiento anterior? Para resumir, con eldevelopment language siendo inglés, no necesitamos habilitarEnglish localización para archivos de guiones gráficos. Solo usa elBase localización y escribir directamente en inglés en los archivos del guión gráfico. Solo necesitamos agregar localización para otros idiomas además del inglés. (En realidad, parece problemático si habilitamos elEnglish localización. SiEnglish la localización está habilitada, entonces necesitamos mantener ambos textos enBase.lproj/Main.storyboard yen.lproj/Main.strings.)

Si la comprensión anterior es correcta, mi segunda pregunta será, ¿cómo lograr la internacionalización de manera inversa? Es decir, si quisiera usarChinese como eldevelopment language y escribir chino en elBase localización, y solo agregue localización para idiomas que no seanChinese, ¿es posible y cómo hacer eso en Xcode? No puedo encontrar una manera de cambiar eldevelopment language en la configuración del proyecto para afirmar que elBase localización en el proyecto esChinese más bien queEnglish.

Respuestas a la pregunta(1)

Su respuesta a la pregunta