【发布时间】:2011-11-22 17:49:38
【问题描述】:
我有一个英文 XML 文件,已翻译成意大利文和法文。
在我的项目xcode4 中,我添加了它们,但由于文件名称相同,我不知道如何从代码中调用它们。
对于字符串,有NsLocalizedString,但对于文件,你如何做到这一点?
【问题讨论】:
我有一个英文 XML 文件,已翻译成意大利文和法文。
在我的项目xcode4 中,我添加了它们,但由于文件名称相同,我不知道如何从代码中调用它们。
对于字符串,有NsLocalizedString,但对于文件,你如何做到这一点?
【问题讨论】:
pathForResource:ofType:返回由指定名称和文件扩展名标识的资源的完整路径名。
方法首先在指定bundle的非本地化资源目录中寻找匹配的资源文件。 (在 Mac OS X 中,此目录通常称为 Resources,但在 iOS 中,它是主包目录。)如果找不到匹配的资源文件,它会查找任何可用的特定语言的顶层“ .lproj”目录。 (特定语言目录的搜索顺序与用户的偏好相对应。)它不会在这些位置的任何其他子目录中递归。有关详细信息,请参阅国际化编程主题。
(强调)
所以你会使用:
NSString *path = [[NSBundle mainBundle] pathForResource:@"MyFile" ofType:@"xml"]
前提是您的文件使用 Xcode 文件检查器中的本地化工具进行了本地化,该工具会自动将文件放入正确的 *.lproj 文件夹中。
【讨论】: