Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.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

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
Objective c 在Cocoa应用程序中使用特定本地化_Objective C_Cocoa_Macos_Localization - Fatal编程技术网

Objective c 在Cocoa应用程序中使用特定本地化

Objective c 在Cocoa应用程序中使用特定本地化,objective-c,cocoa,macos,localization,Objective C,Cocoa,Macos,Localization,如何使cocoa应用程序使用与当前语言环境不同的特定语言环境/本地化 我的应用程序有许多本地化,我希望能够在配置文件中选择应用程序使用的本地化。如何告诉Cocoa使用哪种本地化?在应用程序的用户默认值中设置AppleLanguages数组以包含您喜欢使用的数组,并在默认值中设置适当的AppleLanguages字符串。话虽如此,为什么要使用用户不喜欢的本地化?在应用程序的用户默认值中设置AppleLanguages数组以包含您喜欢使用的本地化,并在默认值中设置适当的AppleScale字符串。话

如何使cocoa应用程序使用与当前语言环境不同的特定语言环境/本地化


我的应用程序有许多本地化,我希望能够在配置文件中选择应用程序使用的本地化。如何告诉Cocoa使用哪种本地化?

在应用程序的用户默认值中设置
AppleLanguages
数组以包含您喜欢使用的数组,并在默认值中设置适当的
AppleLanguages
字符串。话虽如此,为什么要使用用户不喜欢的本地化?

在应用程序的用户默认值中设置
AppleLanguages
数组以包含您喜欢使用的本地化,并在默认值中设置适当的
AppleScale
字符串。话虽如此,为什么要使用用户不喜欢的本地化呢?

我试着用如下方式设置“AppleScale”和“AppleLanguages”:

[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObject:@"en"] forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] setObject:@"en_US" forKey:@"AppleLocale"];
尽管它没有做任何事情,但仍然使用了系统首选项中的语言和区域设置。

我尝试使用以下内容设置“AppleLocale”和“AppleLanguages”:

[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObject:@"en"] forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] setObject:@"en_US" forKey:@"AppleLocale"];

但是它什么也没做,仍然使用系统首选项中的语言和区域设置。

根据MAAD的回答。 我在我的应用程序中进行了测试,发现唯一影响的键是
AppleLanguages

所以

够了


记住重新启动应用程序,让用户默认设置生效。

根据MAAD的回答。 我在我的应用程序中进行了测试,发现唯一影响的键是
AppleLanguages

所以

够了


请记住重新启动应用程序,以使用户默认设置生效。

Hmmm是否AppleScale要求的是“en”而不是“en_-US”

“恩”在航站楼为我工作所以。。。我不明白为什么在应用程序中设置它时,这里的字符串也不应该是相同的


默认写com.mycompany.myproduct AppleLocale“en”

Hmmm是不是AppleLocale期望的是“en”而不是“en_-US”

“恩”在航站楼为我工作所以。。。我不明白为什么在应用程序中设置它时,这里的字符串也不应该是相同的


默认写入com.mycompany.myproduct AppleLocale“en”

仅为配置文件添加一个本地化。[此][1]可以帮助您。这是我认为最好的方式!祝你好运[1] :仅为配置文件添加一个本地化。[此][1]可以帮助您。这是我认为最好的方式!祝你好运[1] :对于此应用程序,“用户”的概念具有误导性,因为它假定用户拥有机器。这是一个在我的公司硬件上运行的亭式应用程序,它总是设置为相同的区域设置。有一个中央配置,它规定了所有设置,包括GUI语言。一个原因是测试本地化更改,例如确保从本地化程序接收的字符串适合在UI中显示的控件,或者确保在对笔尖的多个本地化重复非字符串编辑时没有破坏任何内容。@Peter:是的,我自己做的。但这不是我从问题中推断的用例。“用户”的概念对这个应用程序来说是误导性的,因为它假设用户拥有机器。这是一个在我的公司硬件上运行的亭式应用程序,它总是设置为相同的区域设置。有一个中央配置,它规定了所有设置,包括GUI语言。一个原因是测试本地化更改,例如确保从本地化程序接收的字符串适合在UI中显示的控件,或者确保在对笔尖的多个本地化重复非字符串编辑时没有破坏任何内容。@Peter:是的,我自己做的。但这不是我从问题中推断出的用例。似乎有效,但只有在重新启动程序之后。意思:当程序第一次以更改的设置启动时,它使用上述代码设置用户默认值。但是,在我重新启动程序之前,对NSLocalizedString的后续调用不会使用新设置的语言/区域设置。似乎可以工作,但只有在重新启动程序之后。意思:当程序第一次以更改的设置启动时,它使用上述代码设置用户默认值。但是,在我重新启动程序之前,对NSLocalizedString的后续调用不会使用新设置的语言/区域设置。