Intereting Posts
Как поймать щелчок на кнопке в добавленном представлении XIB (аннотация) IOS / AFNetworking: запустите две операции JSON, а затем сравните возвращаемые NSArrays Как я могу отправлять параметры объекта с помощью alamofire в swift? Пользовательский вход в систему и авторизация Facebook iOS? Google Maps iOS SDK, экран зависает .. не работает вообще Получение ближайшего места с помощью google-сайтов api под iOS Получение предупреждения во время записи «MP AVAudioSessionDelegateMediaPlayerОдин конец прерывания» Как создать трансформатор Siesta для конечной точки API, содержащей массив JSON? Лист действия UIAlertController без эффекта размытости новый статус сборки подключения iTunes в предварительном просмотре Могу ли я перехватить маркер, если вы нажмете другой маркер в SDK Google Maps для iOS? PushViewController для перехода к следующему стеку Как добавить несколько UIImageViews в UIView; из списка изображений непризнанный селектор, отправленный экземпляру в facebook login manager в facebook sdk 4.6 на iOS9 Ошибка Xcode 8.3 Swift Version (SWIFT_VERSION) в проекте Objective C

Экспорт xliff-файла на Xcode, который действует странно

Поэтому у меня есть проект, который уже был локализован в прошлом. Но мы создали несколько новых ключей, и мы хотим, чтобы они были переведены отдельно.

Также на некоторых языках некоторые ключи отсутствуют, поэтому я тоже хотел их найти. Итак, я сделал экспорт файлов xliff для перевода с помощью инструмента экспорта Xcode. Я использую NSLocalizedString везде в моем проекте, поэтому теоретически это должно было меня охватить.

Но когда я открываю экспортированный файл xliff (скажем, для итальянца), у меня возникают следующие проблемы:

Раздел в файле xliff для локализованного файла указан дважды. В первый раз это так:

Переводы projectName / Localizable.strings

В этой части файла xliff ВСЕ переводы отсутствуют, хотя локализуемый файл содержит переведенные значения для большинства ключей.

Тогда тот же локализуемый файл указан дважды:

Переводы projectName / en.lproj / Localizable.strings

В этом случае все ключи имеют переведенные значения, но если в локализуемом файле не хватает ключа, то здесь также отсутствует.

Это делает для меня огромной болью, потому что я просто ищу ключи, которые пропускают переводы, и все же таким образом это означает, что я должен снова перечислить английский список, чтобы убедиться, что ключей нет.

Это не кажется мне нормальным или практичным. Кто-нибудь знает, что я могу делать неправильно?

Переведенные ключи все отлично работают на самом приложении, попробовали это как на устройствах, так и на симуляторе.

Спасибо за помощь.

Solutions Collecting From Web of "Экспорт xliff-файла на Xcode, который действует странно"

Я не использую экспортированные файлы xliff для управления моими переводами, поэтому я не могу дать вам ответ, используя это.

Однако вы можете решить свою проблему поиска недостающих локализаций с помощью файлов Localization.strings .

Вы можете использовать команду genstrings для создания файла Localizable.strings который будет содержать все NSLocalizedString из вашего кода. Для этого вы должны передать все исходные файлы в genstrings . Например, если у вас есть быстрый проект, вы можете просто запустить эту команду в корне вашего проекта:

 find . -name "*.swift" | xargs genstrings 

Это приведет к созданию файла Localizable.strings который затем можно сравнить с существующим файлом Localizable.strings с инструментом сравнения файлов, например FileMerge. Чтобы это стало эффективным, вам может понадобиться сортировать ключи во всех файлах Localizable.strings , я знаю, что многие редакторы могут это сделать (SublimeText – один).

Как вы можете видеть, вышеупомянутое решение является ручным и будет подвержено ошибкам, если вам нужно сделать это более одного раза. Раньше я автоматизировал это с помощью скрипта python, который выполнил следующие данные сгенерированными Localizable.strings и локализованным файлом strings :

  1. проанализируйте Localizable.strings чтобы получить все ссылочные ключи
  2. проанализировать заданный файл локализованных strings чтобы получить локализованные ключи
  3. выводить неиспользуемые ключи и те, которые не переведены

Надеюсь это поможет!