strings multi localize localizable language i18n app ios xcode internationalization

ios - multi - ¿Cómo cambio el lenguaje de desarrollo en Xcode antes de internacionalizar mi aplicación?



multilanguage in ios (6)

Estoy tomando una aplicación que fue escrita completamente en francés. Las cadenas están codificadas en francés en el código, y todos los mensajes en el guión gráfico están en francés. Pero la región de desarrollo inicial en Info.plist se dejó a inglés. Así que cambié CFBundleDevelopmentRegion a fr para que coincida con el lenguaje real que se utilizó. Pero XCode me sigue diciendo que mi lenguaje de desarrollo es el inglés:

¿Cómo puedo corregir eso? El objetivo es poder activar la internacionalización básica y hacer que use el francés como idioma base en lugar de inglés.


Aquí hay una secuencia de comandos de Ruby para cambiar la región de desarrollo en el proyecto Xcode utilizando las bibliotecas de cocoapods:

require ''fileutils'' require ''Xcodeproj'' filename = ARGV.first raise "Argument ''#{filename}'' is not a valid .xcodeproject" unless filename && File.directory?(filename) && File.extname(filename).downcase == ".xcodeproj" puts "Region to set: " region = $stdin.gets.chomp project = Xcodeproj::Project.open(filename) project.root_object.development_region = region project.save puts "#{project.path}", "development_region = #{project.root_object.development_region}"

https://www.ralfebert.de/snippets/ios/xcode-change-development-language/



Podría haberlo descubierto.

He construido una aplicación en sueco, pero el idioma de desarrollo está configurado en inglés.

Edité MyProject.xcodeproj/project.pbxproj manualmente. Hay dos líneas como esta:

91C8245918BDFA6100A9972F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };

y esta sección:

developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( en, Base, );

Cambiando todos los "en" a "sv" de esta manera:

91C8245918BDFA6100A9972F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/InfoPlist.strings; sourceTree = "<group>"; };

y

developmentRegion = Swedish; hasScannedForEncodings = 0; knownRegions = ( sv, Base, );

y mover el archivo MyProject/en.lproj/InfoPlist.strings a MyProject/sv.lproj/InfoPlist.strings parece haberlo arreglado. Ahora el "Idioma de desarrollo" aparece como sueco, y puedo agregar una traducción al inglés.

Después de agregar la traducción, el guión gráfico tiene un triángulo de expansión donde el idioma base es la versión sueca existente, y la traducción es un archivo de cadenas en inglés.


Quería desarrollar el proyecto en mi propio lenguaje de "desarrollador" utilizando marcadores de posición en lugar de textos reales en el ejemplo "WLAN_NOT_AVAILABLE" dentro de NSLocalizedString, que luego se traducirá en diferentes idiomas, incluido el inglés, por supuesto. No me gusta cuando debo escribir oraciones completas en el código.

Acabo de abrir el archivo * .pbxproj dentro de la carpeta * .xcodeproj y cambié la siguiente línea a:

developmentRegion = Base;

Después de eso, el inglés ya no estaba más establecido como lenguaje de desarrollo y pude tratarlo como a cualquier otro. Esto le brinda a usted como desarrollador la posibilidad de escribir marcadores de posición de texto corto y delegar la ortografía correcta a otro en su equipo.


Seleccione el archivo Info.plist en el grupo Supporting Files en el Project Navigator (a la derecha). Luego, en la vista de editor en la Localization native development region haga clic en las flechas arriba y abajo a la derecha de ''Inglés'' y seleccione France .

Esto debería ser. Aunque, Xcode a veces no actualiza la vista "Info" de la configuración del proyecto.


El siguiente procedimiento funcionó para mí, pero incluye la edición manual del archivo project.pbxproj :

  1. Salir de XCode
  2. Abra el archivo project.pbxproj con su editor de texto favorito
  3. Actualice la siguiente sección (cerca de la developmentRegion ):

ANTIGUO:

developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( en, Base, );

NUEVO:

developmentRegion = fr; hasScannedForEncodings = 0; knownRegions = ( fr, Base, );

He creado un repositorio de GitHub con un proyecto de muestra que inicialmente se creó con el inglés como idioma de desarrollo predeterminado y luego se actualizó mediante el procedimiento anterior para usar el francés como idioma de desarrollo.