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


81

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

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

благодаря

Ответы:


91

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

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

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

Информация о проекте

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


3
Вы изменили строку на developmentRegion = francais, или developmentRegion = fr?
Flimm

2
fr - это то, что вы хотите здесь использовать
линзовет 05

3
Обратите внимание, что вам также может потребоваться добавить код вашего языка в knownRegionsсписок (в файле .pbxproj), чтобы он отображал свойство в настройках проекта.
Patrick Pijnappel

1
Вам не нужно этого делать, если вы сначала добавите локализацию, что является шагом 1 инструкций в этом ответе.
линзовет

2
Просто для уточнения. 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» - нет.
nacho4d

54

Для Xcode с 9 по 11:

Закройте Xcode.

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

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


3
Чтобы найти .pbxprojфайл своего проекта : stackoverflow.com/a/3054073/4084269 😉
Josselin

1
Очевидно, нет необходимости закрывать Xcode (по крайней мере, в Xcode 11)
Snowy_1803,

Как я могу добавить несколько языков в качестве языка приложения в App Store? Например, мой уже опубликованный язык приложения показывает только английский, но я хочу добавить немецкий в качестве языка приложения
Дэвид

@David, это то, что вы можете сделать в App Store, подключитесь
ahbou

Спасибо за ответ @ahbou. Но я не мог найти для этого места. Не могли бы вы направить меня?
Дэвид

37

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

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


1
Благодарю. Я только что сделал то, что вы объясняете, и теперь у меня испанский язык установлен как Цель разработки в Информация> Локализации. Однако, если я изменю язык устройства на язык, который я не определил в локализациях (скажем, французский, поскольку я определил только английскую и испанскую локализации), я получаю локализацию приложения на английском, а не на испанском, как я ожидается ...
AppsDev

Устройство, вероятно, настроено на выбор английского языка вместо испанского в отношении языкового отката. Вот некоторые сведения о том, как в пакете приложения выполняется поиск локализованного контента: developer.apple.com/library/ios/documentation/CoreFoundation/…
Элвис

1
Если вы хотите изменить язык по умолчанию и ваше приложение уже есть в магазине, не забудьте также изменить его в iTunes Connect.
Vive

@Arefly в настройках «Язык и регион» на устройстве нажмите кнопку «Изменить» в правом верхнем углу и измените порядок в списке языков так, чтобы английский был ниже испанского в списке языков.
линзовет 03

5

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


17
одного этого недостаточно.
линзовет

0

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.