ios - multi - where is info plist
¿Cómo localizar una cadena dentro del archivo info.plist de iOS? (10)
Como probablemente sepa, el iOS 8 requiere la clave NSLocationWhenInUseUsageDescription para usar la ubicación del usuario. He agregado esta clave y alguna información general en mi lista de información.
¿Cómo puedo usar la cadena de traducción dentro del archivo plist?
- Actualización -
Ya tengo una cadena localizable. Me pregunto si puedo usar algo como NSLocalizedString (MYSTRING, nil) dentro de la cadena de plist. Sé que puedo crear múltiples archivos de info.plist para la localización, pero me preguntaba si podría haber una manera más fácil.
Como dice RGML, puede crear un InfoPlist.strings, localizarlo y luego agregar su clave y el valor de esta manera: "NSLocationWhenInUseUsageDescription" = "¡Ayuda para localizarme!";
Agregará la clave a su info.plist para el idioma especificado.
Consejos
-
Recuerde que el simulador de iOS explota por defecto el idioma de su sistema. Cambie también el idioma (y la región) en la configuración del simulador de iOS para probar sus traducciones.
-
La cadena de localización (consulte los documentos de Apple developer.apple.com/library/archive/documentation/General/… ) debe ser
NSLocationWhenInUseUsageDescription = "Description of this";
y no (con la cita "...")
"NSLocationWhenInUseUsageDescription" = "Description of this";
Debe usar el archivo
InfoPlist.strings
para localizar valores de
Info.plist
.
Para hacer esto, vaya a
File->New->File
, elija
Strings File
en la pestaña
Resource
de
iOS
,
InfoPlist
nombre
InfoPlist
y cree.
Abra e inserte los valores de
Info.plist
que desea localizar como:
NSLocationWhenInUseUsageDescription = "Description of this";
Ahora puede localizar el archivo
InfoPlist.strings
con traducciones.
¡Buena suerte!
EDITAR:
seleccione las opciones de localización o habilite la localización si es necesario,
deberías poder ver el archivo también en el editor del lado izquierdo.
EDITAR:
Here
está la documentación oficial para la localización de claves de
Info.plist
.
En mi caso, la localización no funcionó debido al símbolo ''-'' en el nombre. Ejemplo: "aero-Info.plist" Y archivos localizados: "aero-InfoPlist.strings" y "aeroInfoPlist.strings" no funcionaron.
En mi caso, todo estaba configurado correctamente pero aún no se encontró el archivo InfoPlist.strings.
Lo único que realmente funcionó fue eliminar y agregar nuevamente los archivos InfoPlist.strings al proyecto.
Para cualquier persona que experimente el problema de que no se incluya info.plist al intentar agregar localizaciones, como en Xcode 9.
Debe hacer que la info.plist sea localizable al ingresar y hacer clic en el botón de localización en el inspector de archivos, como se muestra a continuación.
El archivo info.plist se incluirá en los recursos del archivo para cuando vaya a agregar nuevas localizaciones.
Paso a paso, localice Info.plist:
- Busque en el código x la carpeta Recursos (se coloca en la raíz)
- Seleccione la carpeta Recursos
- Luego presione el menú principal Archivo-> Nuevo-> Archivo ...
- Seleccione en la sección "Recurso" Archivo de cadenas y presione Siguiente
- Luego, en el campo Guardar como, escriba SOLO la lista de información (mayúscula "I" y mayúscula "P")
- Luego presione Crear
- Luego seleccione el archivo InfoPlist.strings que creó en la carpeta Recursos y presione en el menú derecho el botón "Localizar"
- Luego selecciona el proyecto desde el navegador de proyectos y selecciona el proyecto de la lista de proyectos
- En la pestaña de información en la parte inferior, puede usar el idioma que desee (hay en la sección Localizaciones)
- El idioma que puede ver en la carpeta de recursos
- Para localizar los valores ("clave") del archivo info.plist, puede abrir con un editor de texto y obtener todas las claves que desea localizar
- Escribe cualquier clave como ejemplo en cualquier InfoPlist.strings como el ejemplo anterior
"NSLocationAlwaysAndWhenInUseUsageDescription" = "blabla";
"NSLocationAlwaysUsageDescription" = "blabla2";
¡Eso es todo trabajo y ha localizado su archivo info.plist!
Recomiendo encarecidamente leer las guías de Apple y ver los recursos de la WWDC enumerados aquí: Temas de internacionalización y localización
Para responder específicamente a su pregunta, cuando agrega un nuevo idioma a su proyecto , tiene la oportunidad de elegir qué archivos de InfoPlist incluir (si tiene varios objetivos, tendrá varios archivos de información). Todo lo que necesita hacer para obtener la siguiente pantalla es presionar el + en Localizaciones y elegir un nuevo idioma para agregar soporte.
Una vez que haya agregado, creará los archivos de cadena necesarios en los directorios lproj apropiados para el idioma dado.
--EDITAR--
Para ser claros, iOS intercambiará la cadena de su archivo Plist en función del idioma seleccionado actualmente por el usuario utilizando la clave de la entrada plist como clave en el archivo de cadenas localizado.
Si algo no funciona, asegúrese de agregar:
"Los recursos localizados se pueden mezclar" = SÍ
en la lista de información. En mi caso, los archivos InfoPlist.strings fueron ignorados.
Todo lo anterior no funcionó para mí (XCode 7.3), así que leí la referencia de Apple sobre cómo hacerlo, y es mucho más simple que lo descrito anteriormente. De acuerdo con Apple:
Los valores localizados no se almacenan en el archivo Info.plist en sí. En su lugar, almacena los valores para una localización particular en un archivo de cadenas con el nombre InfoPlist.strings. Coloca este archivo en el mismo directorio de proyecto específico del idioma que utiliza para almacenar otros recursos para la misma localización.
En consecuencia, creé un archivo de cadena llamado InfoPlist.strings y lo coloqué en la carpeta xx.lproj del lenguaje "xx" (y lo agregué al proyecto usando Archivo-> Agregar archivos a ...). Eso es. No se necesita la clave "Los recursos localizados se pueden mezclar" = SÍ, y no se necesita InfoPlist.strings en base.lproj o en.lproj.
La aplicación utiliza el valor-clave Info.plist como valor predeterminado si no puede encontrar una clave en el archivo específico del idioma. Por lo tanto, pongo mi valor en inglés en el archivo Info.plist y el traducido en el archivo específico del idioma, probado y todo funciona.
En particular, no hay necesidad de localizar InfoPlist.strings (que crea una versión del archivo en base.lproj, en.lroj y xx.lproj), y en mi caso ir de esa manera no funcionó.