我正在实现一个mac应用程序。它的窗口版本已经实现。现在我面临以下问题:
使用多语言实现新包(用户可以在安装应用程序时选择应用程序的语言)。即对于Windows版本的软件,在执行安装文件时,用户可以选择应该安装应用程序的语言。我希望这个功能包含在mac版本中。即,在使用创建的包安装应用程序时,用户应该能够选择安装语言。(目前在mac版本中,多语言是使用NSLocalizedString实现的,以便应用程序根据机器语言显示语言,并且安装包已本地化)。但我特别希望用户能够选择应用程序的安装语言,而安装.Pls有助于解决这个问题....
答案 0 :(得分:1)
使用NSString *locString = NSLocalizedStringFromTable(@"key", @"Japanese", @"comment for key");
代替;)
如果查看NSLocalizedString
宏定义,您会发现它实际上调用了-[NSBundle localizedStringForKey:value:table:]
方法,其中最后一个参数是本地化文件(即:Localizable.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");
区别在于给定密钥不可用时会发生什么:
@"No translation"
@"key"
有关详细信息,请参阅NSBundle class reference
希望有所帮助