gpt4 book ai didi

cocoa - 多语言新包的实现

转载 作者:行者123 更新时间:2023-12-03 18:02:56 25 4
gpt4 key购买 nike

我正在实现一个Mac应用程序。它的窗口版本已经实现。现在我面临以下问题:

实现多语言新包(用户可以在安装应用程序时选择应用程序的语言)。即对于 Windows 版本的软件,在执行安装文件时,用户可以选择安装应用程序的语言。我希望这个功能包含在 mac 版本中。即使用创建的包安装应用程序时,用户应该能够选择安装语言。(目前在 mac 版本中,多语言是使用 NSLocalizedString 实现的,以便应用程序根据机器语言显示语言,并且安装包已本地化)。但我特别希望用户在安装时能够选择应用程序的安装语言。请帮助解决这个问题......

最佳答案

使用 NSString *locString = NSLocalizedStringFromTable(@"key", @"Japan", @"comment for key"); ;)

说明:

如果你查看NSLocalizedString宏定义,你会发现它实际上调用了-[NSBundle localizedStringForKey:value:table:]方法,其中最后一个参数是本地化文件(即:Localized.strings)。您可以使用-[NSBundle localizations];方法获取可用的本地化。

这意味着您可以使用它直接访问本地化文件,如下所示:

// This gets the localized string found in Japanese.strings for the key @"key"
NSString *locString = [thisBundle localizedStringForKey:@"key"
value:@"No translation"
table:@"Japanese"];

或者使用宏(这几乎是等效的)

NSString *locString = NSLocalizedStringFromTable(@"key", @"Japanese", @"comment for key");

区别在于给定 key 不可用时会发生什么:

  • 前者返回@"No Translation"
  • 后者返回 @"key"的默认本地化

请参阅NSBundle class reference了解更多详情

希望对你有帮助

关于cocoa - 多语言新包的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4574273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com