【问题标题】:Getting nil when calling [NSBundle pathForResource] (Localization Issue)调用 [NSBundle pathForResource] 时得到 nil(本地化问题)
【发布时间】:2012-01-09 18:11:56
【问题描述】:

我在我的应用程序中本地化了当前仅支持英文的文本文件

我正在使用这段代码来获取路径:

 [[NSBundle mainBundle] pathForResource:@"Quotes" ofType:@"txt"]

在我的系统(Lion 10.7.2)上,它在使用任何语言时都会返回预期的路径(英语)

build/Beta/MyApp.app/Contents/Resources/en.lproj/Quotes.txt

但对于一些国际用户,此代码返回 nil。 我还没有确认它,但目前它只发生在雪豹用户身上。

有什么想法吗? 谢谢你。

编辑:

  • Mac OSX 10.7.2 德语
  • 雪豹英语
  • Mac 10.6.8 德语
  • Mac OSX 10.7.2 中文

雪豹理论也没有了,有一个英文mac也返回nil,这很混乱。

【问题讨论】:

  • 你试过 + (NSBundle *)bundleWithIdentifier:(NSString *)identifier 方法吗?
  • 你的意思是检查它是否返回了正确的包?

标签: macos cocoa localization osx-snow-leopard nsbundle


【解决方案1】:

我明白了,我有一个工作区,包括 ios 和 mac 项目都共享这个文件。但是 ios 版本在 info.plist 中 Localization native development Region 键上的值为“en”,而 Mac 有“English” 我将 Mac 项目更改为“en”并更新了所有本地化文件。

在系统偏好设置中的列表语言中没有“英语”的用户 -> 语言和文本将为零。

感谢来自 Apple 论坛的 Ken Thomases

【讨论】:

    猜你喜欢
    • 2012-02-27
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 2011-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-19
    相关资源
    最近更新 更多