我正在接管一个完全用法语写的应用程序。字符串在代码中使用法语进行硬编码,故事板中的所有消息都使用法语。但是Info.plist
中的初始开发区域被留给了英语。所以我将CFBundleDevelopmentRegion
更改为fr
,以便它与使用的真实语言相匹配。但XCode一直告诉我,我的开发语言是英语:
我该如何纠正?目标是能够激活基础国际化,并使用法语作为基础语言而不是英语。
答案 0 :(得分:25)
以下程序适用于我,但它包括手动编辑project.pbxproj
文件:
project.pbxproj
文件developmentRegion
附近):<强> OLD:强>
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
新:
developmentRegion = fr;
hasScannedForEncodings = 0;
knownRegions = (
fr,
Base,
);
我创建了一个GitHub repository,其中包含最初使用英语作为默认开发语言创建的示例项目,然后通过上述过程进行更新以使用法语作为发展语言。
答案 1 :(得分:15)
我可能已经弄清楚了。
我用瑞典语构建了一个应用程序,但开发语言设置为英语。
我手动编辑了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
似乎修复了它。现在“开发语言”显示为瑞典语,我可以添加英语翻译。
添加翻译后,故事板有一个扩展三角形,基本语言是现有的瑞典语版本,翻译是英文字符串文件。
答案 2 :(得分:2)
我想用我自己的“开发人员”语言开发项目,方法是使用占位符而不是NSLocalizedString中的“WLAN_NOT_AVAILABLE”中的实际文本,后者将在不同的语言中翻译,包括英语,当然。我不喜欢我必须在代码中写完整句话。
我刚打开* .xcodeproj文件夹中的* .pbxproj文件并将以下行更改为:
developmentRegion = Base;
之后,英语不再被设置为开发语言,我能够将其视为任何其他人。这使您成为开发人员可以编写短文本占位符并将正确的拼写委派给团队中的另一个。
答案 3 :(得分:1)
我希望我理解这个问题。 AFAIK,使用Xcode的GUI实现您想要的功能非常简单:https://developer.apple.com/library/ios/documentation/MacOSX/Conceptual/BPInternational/InternationalizingYourUserInterface/InternationalizingYourUserInterface.html
答案 4 :(得分:0)
在Project Navigator(右侧)中选择Info.plist
组下的Supporting Files
文件。然后,在Localization native development region
的编辑器视图中点击“英语”右侧的向上和向下箭头,然后选择France
。
这应该是它。虽然,Xcode有时不会更新项目设置的“信息”视图。
答案 5 :(得分:0)
这是一个Ruby脚本,用于使用cocoapods库更改Xcode项目中的开发区域:
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/