У меня есть проект Xcode ObjC со следующими языковыми свойствами в project.pbxproj
developmentRegion = English;
knownRegions = ( en, Base, sk, cs, );
Также в Info.plist для <key>CFBundleDevelopmentRegion</key> установлено значение <string>en</string>.
Все файлы дизайнера (раскадровка, виды и т. д.) Созданы на английском языке.
Всякий раз, когда я запускаю bartycrouch interfaces -p "." в корневой папке проекта, я обновляю все файлы * .strings, однако все строки из файлов дизайнера записываются в файлы в папке cs.lproj (где должен быть чешский язык) вместо папку en.proj.
Что-то не так с моим проектом? Или есть способ (параметр?) Указать мой базовый язык для bartycrouch?
Я открыл проблему в проекте GitHub (https://github.com/Flinesoft/BartyCrouch/issues/91), но никакой реакции в течение двух недель, так что я надеюсь, что найду здесь более активных пользователей.





Я уже отвечал на этот вопрос по связанной проблеме с GitHub, но позвольте мне объяснить это здесь также для полноты:
Вот отрывок из изменений, происходящих в cs.lproj, когда BartyCrouch запускается в вашем проекте:

Давайте также посмотрим на ту же запись на языке sk.lproj:

На первый взгляд может показаться, почему Барти Крауч заменяет правильный чешский перевод английским? И почему этого не происходит на словацком языке?
Вот что происходит: если вы посмотрите на комментарий, вы заметите, что он одинаков для обоих языков. Фактически, при первом создании файлов строк в Xcode Xcode автоматически берет значения из XIB или раскадровки и помещает их в комментарии. Он также никогда не изменит значение комментария, даже если вы внесете изменения в файл XIB или Storyboard, оставив вам три разных значения для каждой записи: фактическое значение, значение комментария и значение XIB / Storyboard. Вначале последние два одинаковы, но, поскольку Xcode не обновляет их, со временем они могут отличаться.
Поскольку мы видим, что в комментарии значение указано на чешском языке, я могу предположить, что в то время, когда вы впервые разрешили Xcode сгенерировать файлы Strings, ваш XIB или Storyboard имели значения на чешском языке. Кажется, позже вы изменили это и сделали каждое значение в XIB или раскадровке на английском языке. BartyCrouch имеет встроенную функцию, которая автоматически обновляет значение комментария для вас. Вот почему мы видим изменение в строке комментариев для обоих примеров языков выше. Дополнительная функция BartyCrouch - в случае, если значение комментария точно совпадает с реальным значением, также обновлять реальное значение. Поскольку фактическое значение чешского перевода совпадает со значением комментария, именно это и произошло здесь, и что заставило BartyCrouch также обновить значение и заменить его новым значением на английском языке, которое он нашел в файле XIB или Storyboard.
Теперь, когда мы знаем, в чем проблема, давайте посмотрим, что можно сделать, чтобы решить эту проблему и / или предотвратить ее в будущем:
/* Class = "UILabel"; text = "Proveďte synchronizaci."; ObjectID = "RvR-Nz-aYE"; */
нужно будет вручную изменить на
/* Class = "UILabel"; text = "Sync to get data."; ObjectID = "RvR-Nz-aYE"; */
Я надеюсь, что смогу помочь.
Мне удалось найти решение в исходной проблеме GitHub github.com/Flinesoft/BartyCrouch/issues/…