OSX本地化 - 我做错了什么?

时间:2013-07-19 18:14:37

标签: macos cocoa localization nslocalizedstring

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

我做了以下事情:

  1. 添加了一个新的Localize.strings文件。
  2. 在我的应用程序本地化设置中添加了法语。French一个本地化文件是Localize.strings文件。
  3. 我在Localize.strings文件中添加了“打开文件”本地化字符串。Localized Strings
  4. 我创建了一个插座,将其链接到一个按钮并添加了以下代码:
  5. 代码(无法弄清楚如何使用子弹内联):

    - (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)作为语言和文本系统偏好中的首选语言。我启动了应用程序,标题已本地化,但我的按钮不是!

    Screenshot

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

1 个答案:

答案 0 :(得分:2)

在您发布的屏幕截图中的“打开文件”行之后,您似乎错过了分号。这将使字符串文件无效。

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

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