Je prends en charge une application entièrement écrite en français. Les strings sont codées en français dans le code, et tous les messages du storyboard sont en français. Mais la région de développement initiale dans Info.plist a été laissée à l'anglais. J'ai donc changé CFBundleDevelopmentRegion en fr pour qu'il corresponde au langage réel utilisé. Mais XCode ne cesse de me dire que ma langue de développement est l'anglais:
Comment puis-je corriger cela? L'objective est d'être en mesure d'activer l'internationalisation de base et d'utiliser le français comme langue de base au lieu de l'anglais.
La procédure suivante a fonctionné pour moi, mais elle inclut l'édition manuelle du file project.pbxproj
:
project.pbxproj
avec votre éditeur de text favori developmentRegion
): VIEUX:
developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( en, Base, );
NOUVEAU:
developmentRegion = fr; hasScannedForEncodings = 0; knownRegions = ( fr, Base, );
J'ai créé un référentiel GitHub avec un exemple de projet initialement créé avec l' anglais comme langage de développement par défaut, puis mis à jour par la procédure ci-dessus pour utiliser le français comme langage de développement.
Je pourrais avoir compris.
J'ai construit une application en suédois, mais la langue de développement est l'anglais.
J'ai édité MyProject.xcodeproj/project.pbxproj
manuellement. Il y a deux lignes comme ceci:
91C8245918BDFA6100A9972F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.ssortingngs; name = en; path = en.lproj/InfoPlist.ssortingngs; sourceTree = "<group>"; };
et cette section:
developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( en, Base, );
Changer tout "en" en "sv" comme ceci:
91C8245918BDFA6100A9972F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.ssortingngs; name = sv; path = sv.lproj/InfoPlist.ssortingngs; sourceTree = "<group>"; };
et
developmentRegion = Swedish; hasScannedForEncodings = 0; knownRegions = ( sv, Base, );
et le déplacement du file MyProject/en.lproj/InfoPlist.ssortingngs
vers MyProject/sv.lproj/InfoPlist.ssortingngs
semble l'avoir corrigé. Maintenant, le "langage de développement" apparaît comme suédois, et je peux append une traduction en anglais.
Après avoir ajouté la traduction, le storyboard a un sortingangle d'expansion où la langue de base est la version suédoise existante, et la traduction est un file de strings en anglais.
Je voulais développer le projet dans ma propre langue "développeur" en utilisant des espaces réservés à la place de vrais texts dans l'exemple "WLAN_NOT_AVAILABLE" à l'intérieur de NSLocalizedSsortingng qui sera traduit plus tard dans différentes langues y compris l'anglais, bien sûr. Je n'aime pas quand je dois écrire des phrases entières dans le code.
J'ai simplement ouvert le file * .pbxproj dans le dossier * .xcodeproj et changé la ligne suivante en:
developmentRegion = Base;
Après cela, l'anglais n'était plus défini comme langue de développement et j'étais capable de le traiter comme n'importe qui d'autre. Cela vous donne en tant que développeur la possibilité d'écrire des espaces réservés de text courts et de déléguer l'orthographe correcte à un autre membre de votre équipe.
J'espère avoir compris la question. AFAIK, il est assez simple de réaliser ce que vous voulez en utilisant l'interface graphique de Xcode comme décrit ici: https://developer.apple.com/library/ios/documentation/MacOSX/Conceptual/BPInternational/InternationalizingYourUserInterface/InternationalizingYourUserInterface.html
Sélectionnez le file Info.plist
sous le groupe Supporting Files
dans le browser de projet (sur la droite). Ensuite, dans l'éditeur-vue de la Localization native development region
click les flèches haut et bas à droite de 'English' et select France
.
Cela devrait être ça. Bien que, Xcode ne met parfois pas à jour la vue "Info" des parameters du projet.
Voici un script Ruby pour changer la région de développement dans le projet Xcode en utilisant les bibliothèques 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/