Как изменить язык разработки в Xcode до интернационализации моего приложения?
Я использую приложение, написанное полностью на французском языке. Строки жестко закодированы на французском языке в коде, и все сообщения в раскадровке находятся на французском языке. Но начальная область разработки в Info.plist была оставлена на английском языке. Поэтому я изменил CFBundleDevelopmentRegion на fr, чтобы он соответствовал реальному языку, который использовался. Но XCode продолжает говорить мне, что мой язык разработки - английский:
![XCode 6.3.2 project Info tab]()
Как я могу это исправить? Цель состоит в том, чтобы активировать базовую интернационализацию и использовать французский как базовый язык вместо английского.
Ответы
Ответ 1
Следующая процедура работала для меня, но она включает в себя редактирование вручную project.pbxproj
file:
- Выйти из XCode
- Откройте файл
project.pbxproj
с помощью вашего любимого текстового редактора
- Обновите следующий раздел (около
developmentRegion
):
OLD:
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
NEW:
developmentRegion = fr;
hasScannedForEncodings = 0;
knownRegions = (
fr,
Base,
);
Я создал репозиторий GitHub с образцом проекта, который изначально был создан с английским в качестве языка разработки по умолчанию, а затем обновлено в соответствии с приведенной выше процедурой, чтобы использовать Французский как язык разработки.
![Project ScreenShot]()
Ответ 2
Я мог бы это понять.
Я построил приложение на шведском языке, но язык разработки установлен на английский.
Я отредактировал 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
похоже, исправлено. Теперь "Язык разработки" появляется как шведский, и я могу добавить перевод на английский язык.
После добавления перевода раскадровка имеет треугольник расширения, в котором базовый язык является существующей шведской версией, а перевод является строковым файлом на английском языке.
![В раскадровке есть английский перевод. Yay.]()
Ответ 3
Я хотел разработать проект на своем собственном "разработчике", используя вместо него вместо этого реальные тексты в примере "WLAN_NOT_AVAILABLE" внутри NSLocalizedString, которые позже будут переведены на разные языки, включая английский, вне курса. Мне не нравится, когда я должен писать целые предложения прямо в коде.
Я только что открыл файл *.pbxproj внутри папки *.xcodeproj и изменил следующую строку на:
developmentRegion = Base;
После этого английский язык больше не был установлен как язык разработки, и я смог рассматривать его как кого-либо еще. Это дает разработчику возможность писать короткие текстовые заполнители и делегировать правильное написание другому в вашей команде.
Ответ 4
Надеюсь, я понял вопрос. AFAIK, довольно просто добиться того, что вы хотите, используя графический интерфейс Xcode, как описано здесь: https://developer.apple.com/library/ios/documentation/MacOSX/Conceptual/BPInternational/InternationalizingYourUserInterface/InternationalizingYourUserInterface.html
Ответ 5
Выберите файл Info.plist
в группе Supporting Files
в Навигаторе проектов (справа). Затем в редакторе в Localization native development region
нажмите стрелки вверх и вниз справа от "English" и выберите France
.
![Open base-language selection]()
Это должно быть. Хотя Xcode иногда не обновляет представление "Информация" параметров проекта.
Ответ 6
Вот Ruby script, чтобы изменить область разработки в проекте Xcode, используя библиотеки 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/