Intereting Posts
Кнопка отладки Visual memory не отображается Tableview обновляется только после того, как я покинул представление и вернусь Связанный тип Swift 3 tableView: didSelectRowAtIndexPath / popViewControllerAnimated не работает Назначение значения, выбранного из UIPicker, в UITextField в Swift (также как показать и скрыть его) Как заставить узел Sprite вращаться, когда пользователь удаляет экран? Swift 3 Testflight: эта сборка несовместима с этим устройством Передача данных между двумя несвязанными контрольными окнами Возможно ли, чтобы NSFetchedResultsController удалял объект, если одно из свойств объекта не выполняет его предикат? Как правильно привязать константу NSLayoutConstraint? PinterestSDK CocoaPods не работает индексирование с несколькими столбцами в Core Data (iOS) Лучший дизайн / шаблон для использования в учебном пособии по первому использованию в приложении? Создание индекса для UITableView на основе значений внутри NSArray из NSDictionaries Стандартный вид спереди для SWRevealViewController

Экспорт 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. выводить неиспользуемые ключи и те, которые не переведены

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