genstrings не работает при установке параметра tableName в NSLocalizedString

Я получаю сообщение об ошибке Bad entry in file при использовании командной строки genstrings для каждого вызова NSLocalizedString, использующего параметр tableName

См. следующий пример при попытке создать локализованные строки (из Firefox-iOS)

find . -name *.swift | xargs genstrings -o en.lproj

Неверная запись в файле ./StorageTests/TestSQLiteHistory.swift (строка = 100): аргумент не является буквальной строкой.

Неверная запись в файле ./StorageTests/TestSQLiteHistory.swift (строка = 101): аргумент не является буквальной строкой.

Неверная запись в файле ./StorageTests/TestSQLiteHistory.swift (строка = 102): аргумент не является буквальной строкой.

Неверная запись в файле ./StorageTests/TestSQLiteHistory.swift (строка = 103): аргумент не является буквальной строкой. Аргумент не является буквальной строкой.

Вот код этих строк

let titleMobile = NSLocalizedString("Mobile Bookmarks", tableName: "Storage", comment: "The title of the folder that contains mobile bookmarks. This should match bookmarks.folder.mobile.label on Android.")
let titleMenu = NSLocalizedString("Bookmarks Menu", tableName: "Storage", comment: "The name of the folder that contains desktop bookmarks in the menu. This should match bookmarks.folder.menu.label on Android.")
let titleToolbar = NSLocalizedString("Bookmarks Toolbar", tableName: "Storage", comment: "The name of the folder that contains desktop bookmarks in the toolbar. This should match bookmarks.folder.toolbar.label on Android.")
let titleUnsorted = NSLocalizedString("Unsorted Bookmarks", tableName: "Storage", comment: "The name of the folder that contains unsorted desktop bookmarks. This should match bookmarks.folder.unfiled.label on Android.")

Когда я искал решение, я нашел этот инструмент для создания и объединения локализованных строк. В этом случае он сработал, сгенерировал и объединил локализованные строки в Localizable.strings, но во время выполнения приложение не показывает локализованные заголовки, поскольку оно пытается загрузить локализованные строки из файла с именем Storage.strings, а не из Localizable.strings.

Есть ли решение для автоматического создания этих файлов вместо того, чтобы делать это вручную?


person Mahmoud Adam    schedule 10.12.2015    source источник


Ответы (1)


Кажется, мне нужно перевести ресурсы по последней процедуре от Apple.

  1. Экспортируйте файл локализации .xliff с помощью Xcode (выберите свой проект в Xcode, затем «Редактор» -> «Экспорт для локализации»)
  2. Используйте инструмент перевода для перевода всех ключей (SwordFish, онлайн-редактор xliffbrightec)
  3. Импортируйте переведенный файл обратно в Xcode

Ссылка: https://developer.apple.com/library/ios/documentation/MacOSX/Conceptual/BPInternational/LocalizingYourApp/LocalizingYourApp.html

person Mahmoud Adam    schedule 11.12.2015