【问题标题】:OSX Localization - What am I doing wrong?OSX 本地化 - 我做错了什么?
【发布时间】:2013-07-21 02:00:46
【问题描述】:

我正在尝试通过 XCode 设置一些基本的本地化。

我做了以下事情:

  1. 添加了新的 Localize.strings 文件。
  2. 在我的应用程序本地化设置中添加了法语。本地化文件是 Localize.strings 文件。
  3. 我已将“打开文件”本地化字符串添加到我的 Localize.strings 文件中。
  4. 我创建了一个插座,将其链接到一个按钮并添加了以下代码:

代码(无法弄清楚如何将其与项目符号内联):

- (void) awakeFromNib
{
    // Add any code here that needs to be executed once the windowController has loaded the document's window.
    [openButton setTitle: NSLocalizedString(@"Open File", nil)];
}

我的openButton 不为空。

我已将法语 (Francais) 移动为语言和文本系统首选项中的首选语言。我启动应用程序,标题已本地化,但我的按钮没有!

我错过了什么愚蠢的东西吗?我在这里做错了吗?从我读过的教程来看,这应该可以解决问题,但似乎并非如此。有什么建议吗?

【问题讨论】:

    标签: macos cocoa localization nslocalizedstring


    【解决方案1】:

    您发布的屏幕截图中的“打开文件”行后面似乎缺少分号。这将使字符串文件无效。

    编辑:完整的答案是,除了缺少的分号之外,NSLocalizedString 还会查找名为“Localizable.strings”的文件,在本例中,该文件名为“Localize.strings”。要从具有不同名称的文件加载本地化字符串,您需要使用NSLocalizedStringFromTable。在这种情况下,呼叫将是NSLocalizedStringFromTable(@"Open File", @"Localize", nil);

    请参阅 Apple 的 Resource Programming Guide 以获取有关 NSLocalizedString 等的完整文档。人。在文件中查找字符串。

    【讨论】:

    • Hrrm,我已经在每个 Localize.strings 中添加了分号,但是应用程序仍然显示如下:imgur.com/NUb0Hr9。我还做了一个NSLog(@"Test: %@", NSLocalizedString(@"Open File", nil));,它仍然显示为“打开文件”。
    • 我刚刚注意到您的文件名为“Localize.strings”。我相信正确的文件名是“Localizable.strings”,我相信文件名确实很重要。如果您使用的是 10.8 或更高版本,则应用程序资源目录中封闭 lproj 文件夹的名称也很重要。它必须是“fr.lproj”,而不是“French.lproj”。
    • 是的,重命名文件就可以了。太疯狂了。感谢您的帮助!
    猜你喜欢
    • 2014-10-01
    • 2011-06-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-14
    • 2021-04-14
    • 2021-04-19
    • 2017-03-13
    • 2017-01-18
    相关资源
    最近更新 更多