在国际化我的应用程序之前,如何更改Xcode中的开发语言?

时间:2015-06-07 15:48:14

标签: ios xcode internationalization

我正在接管一个完全用法语写的应用程序。字符串在代码中使用法语进行硬编码,故事板中的所有消息都使用法语。但是Info.plist中的初始开发区域被留给了英语。所以我将CFBundleDevelopmentRegion更改为fr,以便它与使用的真实语言相匹配。但XCode一直告诉我,我的开发语言是英语:

XCode 6.3.2 project Info tab

我该如何纠正?目标是能够激活基础国际化,并使用法语作为基础语言而不是英语。

6 个答案:

答案 0 :(得分:25)

以下程序适用于我,但它包括手动编辑project.pbxproj文件:

  1. 退出XCode
  2. 使用您喜欢的文本编辑器打开project.pbxproj文件
  3. 更新以下部分(developmentRegion附近):
  4. <强> OLD:

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

    新:

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

    我创建了一个GitHub repository,其中包含最初使用英语作为默认开发语言创建的示例项目,然后通过上述过程进行更新以使用法语作为发展语言。

    Project ScreenShot

答案 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似乎修复了它。现在“开发语言”显示为瑞典语,我可以添加英语翻译。

添加翻译后,故事板有一个扩展三角形,基本语言是现有的瑞典语版本,翻译是英文字符串文件。

The storyboard have an English translation. Yay.

答案 2 :(得分:2)

我想用我自己的“开发人员”语言开发项目,方法是使用占位符而不是NSLocalizedString中的“WLAN_NOT_AVAILABLE”中的实际文本,后者将在不同的语言中翻译,包括英语,当然。我不喜欢我必须在代码中写完整句话。

我刚打开* .xcodeproj文件夹中的* .pbxproj文件并将以下行更改为:

developmentRegion = Base;

之后,英语不再被设置为开发语言,我能够将其视为任何其他人。这使您成为开发人员可以编写短文本占位符并将正确的拼写委派给团队中的另一个。

答案 3 :(得分:1)

答案 4 :(得分:0)

在Project Navigator(右侧)中选择Info.plist组下的Supporting Files文件。然后,在Localization native development region的编辑器视图中点击“英语”右侧的向上和向下箭头,然后选择France

Open base-language selection

这应该是它。虽然,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/