2012-05-07 8 views
9

Estoy desarrollando una aplicación que, entre otras cosas, reproducirá un gran archivo de audio (30 MB).Forzar una localización específica para un objetivo

Deseo enviar la aplicación a App Store en varios países. El archivo de audio es diferente para el país de destino, el resto de la aplicación sigue siendo la misma (aunque localizada).

He creado un objetivo para cada país, un script bash se encarga de copiar el archivo de audio correcto en la aplicación compilada en función del objetivo, y funciona muy bien.

También he localizado los recursos (Images y Localized.strings) para que sea más fácil de mantener.

Digamos que construí mi objetivo para Suecia, quiero incluir solo la localización sueca para forzar que la aplicación muestre siempre el idioma sueco (que coincide con el archivo de audio).

Aquí está la pregunta real: * ¿Cómo excluyo todas las localizaciones de un destino o forzo a un objetivo SÓLO a utilizar una localización específica, independientemente de la configuración del teléfono?

+0

Es posible que desee comprobar hacia fuera: http://stackoverflow.com/questions/1669645/how-to-force-nslocalizedstring-to-use-a-specific-language –

Respuesta

0

Según su comentario en respuesta a Lvsti (donde dice que la razón por la que está haciendo esto es que las traducciones en algunos de sus idiomas aún no están terminadas, pero desea publicar lo que tiene), quizás como alternativa Para eliminar todos los archivos de localización relevantes o jugar con la configuración de compilación, puede intentar editar la lista de idiomas en su proyecto de XCode. No es por destino, sino por proyecto, pero podría permitirte excluir idiomas que no deseas en tu compilación. Consulte en Localizaciones en la configuración de su proyecto (hay un pequeño icono que puede usar para eliminar un idioma).

enter image description here

+0

Esto parece ser una buena manera de omitir las ubicaciones inacabadas por el momento: óptimamente, esta configuración era por objetivo, pero bueno, tal vez en el futuro. ¡Gracias! –

0

creo que podría ser capaz de llevarlo a cabo de yendo a:

Objetivo Configuración => Información => Añadir una nueva fila llamada Localizaciones => Añadir un nuevo elemento a la matriz con el tipo de idioma que desea (creo que el valor predeterminado es inglés)

No lo he probado, solo avíseme si funcionó.

+1

He intentado que, por desgracia la aplicación todavía se muestra en inglés (Mi teléfono es inglés): –

0

Si entiendo su pregunta, realmente no necesita una aplicación localizada, o al menos no una completamente localizada. Si ese es el caso, usaría una fase de compilación run-script que es responsable de copiar los recursos apropiados no específicos pero específicos del objetivo basados ​​en el objetivo actual. P.ej. suponiendo que tiene una carpeta de Audio en la raíz del proyecto con todas las versiones de los distintos idiomas, la secuencia de comandos podría verse como:

cp "$PROJECT_DIR/Audio/$TARGETNAME.mp3" "$TARGET_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH/audio.mp3" 

lo que, por ejemplo, copie/cambie el nombre "Swedish.mp3" a "audio.mp3" directamente accesible desde el paquete.

+0

Ese es el enfoque que estoy usando ahora para el archivo de audio. Sin embargo, me pregunto si no es posible utilizar las herramientas de localización integradas de XCode, ya que simplifica la administración de los archivos (Edite los archivos xib localizados, etc.). Parece que todo lo que necesito es una forma de codificar la configuración regional utilizada para un objetivo específico. Su sugerencia es la ruta que tomaré si no encuentro un método mejor :-) * Cruzando los dedos * PS. ¿Cómo se insertan saltos de línea aquí? Dos espacios no parecen hacerlo por mí? –

+0

A mi entender, la localización está destinada a proporcionar varias versiones de recursos dentro del mismo destino, lo que obliga a Xcode a descartar las localizaciones que de otro modo detectaría no tendría mucho sentido ... – Lvsti

+0

Sí, pero quiero decir, al menos debería hacerlo ser capaz de decirle que no use localizaciones específicas, a pesar de que una carpeta con el nombre de la localidad está allí. Tengo 2 traducciones que no están terminadas en mi aplicación, otras 3 están listas para la tienda de aplicaciones. Pero debido a que las dos traducciones no finalizadas pueden ser autodetectadas y utilizadas, no puedo enviar mi aplicación antes de obtener las traducciones del traductor (o eliminar el trabajo que he hecho hasta ahora en los archivos semilla y comenzar de nuevo una vez que obtengo el traducciones) Espero que me esté perdiendo algo! –

Cuestiones relacionadas