如何在国际化我的应用之前更改Xcode中的开发语言?
我正在接pipe一个完全用法文写的应用程序。 代码中的string用法语进行硬编码,故事板中的所有信息都是法文的。 但Info.plist中最初的开发区域是英文的。 所以我将CFBundleDevelopmentRegion更改为fr,以便它符合所使用的实际语言。 但XCode不断告诉我,我的开发语言是英语:
我该如何纠正? 目标是能够激活基地国际化,并使用法语作为基础语言而不是英语。
以下程序适用于我,但它包括手动编辑project.pbxproj
文件:
- 退出XCode
- 用你最喜欢的文本编辑器打开
project.pbxproj
文件 - 更新以下部分(near
developmentRegion
):
旧:
developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( en, Base, );
新:
developmentRegion = fr; hasScannedForEncodings = 0; knownRegions = ( fr, Base, );
我创build了一个GitHub仓库,其中包含一个最初以英语作为默认开发语言创build的示例项目,然后按上述步骤进行更新,以使用法语作为开发语言。
我可能已经知道了。
我已经build立了一个瑞典语的应用程序,但开发语言设置为英语。
我手动编辑了MyProject.xcodeproj/project.pbxproj
。 有这样两行:
91C8245918BDFA6100A9972F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
和本节:
developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( en, Base, );
像这样将所有“en”改为“sv”:
91C8245918BDFA6100A9972F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/InfoPlist.strings; sourceTree = "<group>"; };
和
developmentRegion = Swedish; hasScannedForEncodings = 0; knownRegions = ( sv, Base, );
并将文件MyProject/en.lproj/InfoPlist.strings
到MyProject/sv.lproj/InfoPlist.strings
似乎已经修复它。 现在“发展语言”显示为瑞典语,我可以添加英文翻译。
添加翻译后,故事板上有一个展开三angular形,其中基本语言是现有的瑞典语版本,翻译是英语中的string文件。
我想用自己的“开发人员”语言来开发项目,在NSLocalizedString中使用占位符而不是实例“WLAN_NOT_AVAILABLE”中的实际文本,稍后将用不同的语言(包括英文)进行翻译。 我不喜欢什么时候必须在代码中写出完整的句子。
我只是打开* .xcodeproj文件夹中的* .pbxproj文件,并将以下行更改为:
developmentRegion = Base;
之后,英语不再是发展语言,我可以把它当作其他任何东西来对待。 这给了你作为开发者写短文本占位符的可能性,并把正确的拼写委托给你的团队中的另一个人。
我希望我能理解这个问题。 AFAIK,使用Xcode的GUI来实现你想要的东西非常简单,如下所述: https : //developer.apple.com/library/ios/documentation/MacOSX/Conceptual/BPInternational/InternationalizingYourUserInterface/InternationalizingYourUserInterface.html
select项目导航器(右侧)中Supporting Files
组下的Info.plist
文件。 然后,在Localization native development region
的编辑器视图中,单击“英语”右侧的上下箭头并selectFrance
。
这应该是。 尽pipeXcode有时不会更新项目设置的“Info”视图。
下面是一个使用cocoapods库来改变Xcode项目开发区域的Ruby脚本:
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/