Изменение языка разработки в Xcode

Мне нужно установить испанский язык в качестве языка разработки для приложения iOS. Я уже использую Xcode 6, и я изменил запись Localization native development region в Info.plist (CFBundleDevelopmentRegion) приложения с «en» на «es». Однако в Project> Info> Localizations английский остается установленным как язык разработки.

Как сказано в Справка по ключу к списку свойств информации, CFBundleDevelopmentRegion указывает язык по умолчанию. Мне нужно установить испанский язык в качестве языка по умолчанию, что мне не хватает?

Спасибо


person AppsDev    schedule 16.09.2014    source источник


Ответы (5)


Вот как это сделать:

  1. Сначала добавьте язык, который вы хотите использовать в качестве основного. Снимите отметку со всех файлов, которые Xcode предлагает локализовать за вас.
  2. В Info.plist измените регион разработки на язык, который вы хотите использовать в качестве основного. Обратите внимание, что свойство немного неправильно названо, потому что его значением должен быть код языка (с необязательным кодом страны), а не код региона или страны.
  3. Закройте свой проект в Xcode. В другом редакторе кода откройте projectname.xcodeproj/project.pbxproj и найдите developmentRegion. Вы должны увидеть строку вида developmentRegion = English;. Измените это, чтобы ссылаться на тот же язык, который вы указали в своем Info.plist файле.
  4. Снова откройте проект в Xcode. Просмотрите все локализуемые файлы и установите флажки рядом с английским языком, чтобы сгенерировать локализуемые ресурсы. Обратите внимание, что для раскадровок и xib-файлов Xcode может создавать раскадровку вместо строкового файла. Если это произойдет, просто измените тип файла на строковый файл.

Вот пример результата для меня, использующего fr в качестве базового языка:

«Информация

Информация о файле

person lensovet    schedule 28.04.2016
comment
Вы меняли строку на developmentRegion = francais или developmentRegion = fr? - person Flimm; 03.11.2016
comment
fr это то, что вы хотите использовать здесь - person lensovet; 05.11.2016
comment
Обратите внимание, что вам также может потребоваться добавить код вашего языка в список knownRegions (в файле .pbxproj), чтобы он отображал свойство в настройках проекта. - person Patrick Pijnappel; 13.12.2016
comment
Вам не нужно этого делать, если вы сначала добавите локализацию, что является шагом 1 инструкций в этом ответе. - person lensovet; 15.12.2016
comment
В дополнение к тому, что указал @PatrickPijnappel, я могу сказать, что простого добавления кода вашего языка в список knownRegions достаточно, чтобы он появился в списке локализаций без необходимости вашего первого шага, который (по крайней мере, в Xcode 8.3.2 ) не может быть выполнено без проверки хотя бы одного файла и поэтому добавление, возможно, нежелательного файла строк локализации в ваш проект. - person Cristina De Rito; 04.05.2017
comment
используйте ar для арабского - person Abuzar Amin; 30.10.2018
comment
Просто для ясности. developmentRegion должен быть установлен на fr, а не на francais. Причина: developmentRegion project.pbxproj передается цели как export DEVELOPMENT_LANGUAGE=fr, и это значение обычно используется как <key>CFBundleDevelopmentRegion</key<string>$(DEVELOPMENT_LANGUAGE)</string> в Info.plist, а в документации CFBundleDevelopmentRegion указано, что он должен быть в формате ISO 639-1 или ISO 639-2 developer.apple.com/documentation/bundleresources/. Итак, «fr» правильно, а «francais» - нет. - person nacho4d; 28.10.2019
comment
Если я сниму отметку со всех файлов, которые xcode предлагает локализовать, язык не будет добавлен ...? - person Nicolas Miari; 06.07.2020
comment
Plist уже содержит макрос $(DEVELOPMENT_LANGUAGE), поэтому я думаю, мне нужно только изменить файл проекта xcode? - person Nicolas Miari; 06.07.2020
comment
Да, это изменение, которое недавно было добавлено в Xcode. В более старых проектах этого не было бы. - person lensovet; 14.07.2020
comment
@lensovet можем ли мы изменить регион развития по целям? У меня есть две цели на одной, я хочу, чтобы en была базовой областью, на второй цели. Я хочу, чтобы в качестве основы использовался другой язык. P.S. изменение в Info.plist не работает - person clopex; 15.07.2020
comment
в моем случае не работала локализация для ru и была исправлена ​​только после добавления ru-RU - person Kirill Karmazin; 15.10.2020
comment
Похоже на другую проблему конфигурации @KirillKarmazin. ru должно абсолютно работать. - person lensovet; 23.10.2020
comment
@clopex хороший вопрос, и я не уверен, поддерживается ли это. Если вы наблюдаете неожиданное поведение, отправьте отзыв через Помощник по обратной связи. - person lensovet; 23.10.2020
comment
После изменения значения ничего не изменилось ... - person Blaszard; 07.12.2020

Для Xcode 9–11:

Закройте Xcode.

  1. Откройте свой project.pbxproj в текстовом редакторе.
  2. Найдите developmentRegion и установите его значение (es для испанского, fr для французского, ...)
  3. Найдите известные регионы и добавьте новый язык в список.

Откройте Xcode: в информации о вашем проекте теперь должно отображаться название языка и язык разработки рядом с ним.

person ahbou    schedule 08.05.2018
comment
Чтобы найти .pbxproj файл вашего проекта: stackoverflow.com/a/3054073/4084269 ???? - person Josselin; 12.03.2019
comment
Очевидно, не нужно закрывать Xcode (по крайней мере, в Xcode 11) - person Snowy_1803; 14.04.2020
comment
Как я могу добавить несколько языков в качестве языка приложения в App Store? Например, мой уже опубликованный язык приложения показывает только английский, но я хочу добавить немецкий язык в качестве языка приложения. - person David; 17.04.2020
comment
@ Дэвид, это то, что вы можете сделать в App Store, подключитесь - person ahbou; 17.04.2020
comment
Спасибо за ответ @ahbou. Но я не мог найти для этого места. Не могли бы вы направить меня? - person David; 19.04.2020
comment
@David, вам нужно добавить эти языки в свой проект. Выберите проект в навигаторе файлов, снова выберите его в структуре документа, а затем перейдите на первую вкладку, чтобы добавить другие локализации. - person lensovet; 14.07.2020

В файле .xcodeproj вашего проекта найдите строку developmentRegion. Якобы прямо сейчас там написано «по-английски». Если вы измените его на «Испанский», Xcode 6 должен распознавать испанский как язык локализации по умолчанию для вашего проекта на вкладке «Информация», если вы добавляете «Испанский» в список.

Вы можете узнать больше по этой теме на странице http://eschatologist.net/blog/?p=224.

person Elwisz    schedule 18.09.2014
comment
Спасибо. Я только что сделал то, что вы объясняете, и теперь у меня испанский язык установлен как цель разработки в разделе Информация ›Локализации. Однако, если я изменю язык устройства на язык, который я не определил в локализациях (скажем, французский, поскольку я определил только английскую и испанскую локализации), я получу, что приложение все еще локализовано на английском, а не на испанском, как я ожидал... - person AppsDev; 19.09.2014
comment
Устройство, вероятно, настроено на выбор английского языка вместо испанского в отношении языкового отката. Вот некоторые сведения о том, как пакет приложения ищет локализованный контент: developer.apple.com/library/ios/documentation/CoreFoundation/ - person Elwisz; 19.09.2014
comment
Если вы хотите изменить язык по умолчанию и ваше приложение уже есть в магазине, не забудьте также изменить его в iTunes Connect. - person Nat; 06.11.2015
comment
@Arefly в настройках «Язык и регион» на устройстве, нажмите кнопку «Изменить» в правом верхнем углу и измените порядок в списке языков так, чтобы английский был ниже испанского в списке языков. - person lensovet; 03.01.2017

откройте свою цель -> информация -> измените "Регион разработки локализации" на ваш язык

person AleyRobotics    schedule 22.06.2015
comment
одного этого недостаточно. - person lensovet; 29.04.2016

Для кого-то, кому нужна помощь, как у меня, у меня есть две цели: одна я хочу быть локализацией EN Base, а вторая цель - другой язык. Опция, упомянутая выше: изменить имя проекта.xcodeproj / project.pbxproj и найти developmentRegion и изменить ... не работает для меня из-за целей.

Что сработало для меня, Xcode 11.5, так это то, что мне нужно только изменить код языка в собственной области разработки Localization для этой конкретной цели, и он работает, не нужно ничего менять в projectname.xcodeproj / project.pbxproj P.S. Здесь для региона разработки локализации должен быть указан код страны, например fr_Fr или, в моем случае, hr для хорватского языка.

person clopex    schedule 15.07.2020