一个iOS应用程序中的多个Localizable.strings文件

Dim*_*ris 38 iphone cocoa-touch localization ios

是否可以在应用程序中拥有多个具有单独本地化的组件?

例如,我想在我的应用程序中本地化字符串,但也使用本地化的ShareKit(因此我的包将在不同位置包含2个Localizable.strings).所以,ShareKit包含像en.lproj和de.lproj这样的文件夹,它们包含Localizable.strings文件,我想为我的项目的其余部分创建相同的文件但是将它们分开.

我试过让它们分开,这导致我的应用程序的字符串没有被使用.有任何想法吗?

Sco*_*tle 85

有一种方法可以做到这一点非常简单.

有几个用于本地化的宏,其中一个是NSLocalizedStringFromTable().这需要三个参数:

  1. 要本地化的字符串
  2. 表名,只是一个文件名
  3. 评论,就像在 NSLocalizedString()

如果你使用表名,那么你可以有另一个字符串文件,即如果我这样做,NSLocalizedStringFromTable(@"name", @"MyStrings", @"whatever");那么我的字符串MyStrings.strings将使用它.

请参阅Matt Gallagher 关于此事的帖子.

  • 伟大的!现在我可以在一个目录中创建一个具有自己的类/资源/可本地化字符串的可重用组件,并将其放入新项目中,而不必担心合并全局 Localizable.strings 文件! (2认同)
  • 快速:`NSLocalizedString(“String”,tableName:“Table”,comment:“Comment”)` (2认同)