Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa 新软件包的多语言实现_Cocoa_Macos - Fatal编程技术网

Cocoa 新软件包的多语言实现

Cocoa 新软件包的多语言实现,cocoa,macos,Cocoa,Macos,我正在实现一个mac应用程序。它的窗口版本已经实现。现在我面临以下问题: 使用多语言实现新软件包(用户可以在安装应用程序时选择应用程序的语言)。ie对于windows版本的软件,在执行安装文件时,用户可以选择应用程序应安装的语言。我希望mac版本中包含此功能。ie在使用创建的软件包安装应用程序时,用户应能够选择安装语言。(目前在mac版本中,多语言是使用NSLocalizedString实现的,因此应用程序根据机器语言显示语言,安装软件包是本地化的)。但我特别希望用户在安装时能够选择应用程序的安

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


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

使用
NSString*locString=NSLocalizedStringFromTable(@“key”、@“Japanese”、@“comment for key”)而不是;)

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

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

// This gets the localized string found in Japanese.strings for the key @"key"
NSString *locString = [thisBundle localizedStringForKey:@"key"
                                                  value:@"No translation"
                                                  table:@"Japanese"];
或者使用宏(这几乎是等效的)

区别在于当给定的密钥不可用时会发生什么:

  • 前者返回
    @“无翻译”
  • 后者返回
    @“key”
有关更多详细信息,请参阅

希望它能有所帮助

请注意:#定义SLocalizedStringFromTable(key,tbl,comment)[[NSBundle mainBundle]localizedStringForKey:(key)value:@“table:(tbl)]表是宏中的第二个参数,comment排在最后
NSString *locString = NSLocalizedStringFromTable(@"key", @"Japanese", @"comment for key");