Intereting Posts
Как получить имена файлов Assets.xcassets в массиве (или некоторой структуре данных?) Есть ли способ отслеживания того, что все еще указывает на объект? UISegmentedControl как в приложении AppStore Сохранение двойного значения для данных ядра иногда позволяет сэкономить полностью неправильное значение Получение данных из edX API Сохранение и загрузка изображений в SQLite и из него в iOS Убедитесь, что NSDate находится в EKEventStore Как установить Xcode в Windows 8? Когда использовать restoreCompletedTransactions в автообновляемых подписках? Аутентификация пользователя и обработка сеанса в iOS с быстрым Как правильно структурировать проект iOS Xcode для отладки мультиязыков запуск iphone только приложение на ipad (режим 1x / 2x) из ландшафта игнорирует настройку ориентации корневого представления Несколько представлений внутри представления и авторезистировать Ошибка при загрузке изображения в Dropbox Уменьшить массив координат

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

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