在NSLocalizedString中设置tableName参数时,genstrings不起作用

时间:2015-12-10 09:58:56

标签: swift localization ios9 nslocalizedstring genstrings

对于使用Bad entry in file参数的genstrings的每次调用使用NSLocalizedString命令行时,我收到tableName错误

尝试生成本地化字符串(来自Firefox-iOS

时,请参阅以下示例
find . -name *.swift | xargs genstrings -o en.lproj
  

文件中的错误条目./StorageTests/TestSQLiteHistory.swift(line = 100):参数不是文字字符串。

     

文件中的错误条目./StorageTests/TestSQLiteHistory.swift(line = 101):参数不是文字字符串。

     

文件中的错误条目./StorageTests/TestSQLiteHistory.swift(line = 102):参数不是文字字符串。

     

文件中的错误条目./StorageTests/TestSQLiteHistory.swift(line = 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.")

当我搜索解决方案时,我发现这个tool用于生成和合并本地化字符串。它适用于这种情况,生成并将本地化字符串合并到Localizable.strings但在运行时,应用程序不会显示本地化标题,因为它尝试从名称为Storage.strings的文件加载本地化字符串不是来自Localizable.strings

是否有任何解决方案可以自动生成这些文件而不是手动生成?

1 个答案:

答案 0 :(得分:1)

似乎我需要根据apple的最新程序翻译资源

  1. 使用Xcode导出本地化文件.xliff(在Xcode中选择您的项目,然后选择编辑器 - >导出以进行本地化)
  2. 使用翻译工具翻译所有密钥(SwordFishbrightec online xliff editor
  3. 将已翻译的文件导回Xcode
  4. 参考: https://developer.apple.com/library/ios/documentation/MacOSX/Conceptual/BPInternational/LocalizingYourApp/LocalizingYourApp.html