Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.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
iOS本地化(在应用程序中设置)_Ios_Iphone_Objective C_Localization - Fatal编程技术网

iOS本地化(在应用程序中设置)

iOS本地化(在应用程序中设置),ios,iphone,objective-c,localization,Ios,Iphone,Objective C,Localization,在我的应用程序中,我必须有两种语言,但问题是它们应该通过按下应用程序中的按钮来切换(在第一个屏幕或屏幕设置上)。据我所知,本地化(本地化故事板,动态字符串本地化)的所有方法都基于iPhone的语言设置。我想到的唯一选项是,通过NSUserDefault中关于语言首选项的记录,以及viewdiload所有ViewControllers的方法检查关于语言的记录,并根据记录设置字符串、图片等。可以用更聪明的方法来做吗?试试这个: 如果de是用户选择的新语言。还要确保您正在重新初始化当前视图 [[NSU

在我的应用程序中,我必须有两种语言,但问题是它们应该通过按下应用程序中的按钮来切换(在第一个屏幕或屏幕设置上)。据我所知,
本地化
本地化
故事板,
动态字符串本地化
)的所有方法都基于iPhone的语言设置。我想到的唯一选项是,通过
NSUserDefault
中关于语言首选项的记录,以及
viewdiload
所有
ViewControllers
的方法检查关于语言的记录,并根据记录设置字符串、图片等。可以用更聪明的方法来做吗?

试试这个:

如果de是用户选择的新语言。还要确保您正在重新初始化当前视图

[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"de", nil] 
                                      forKey:@"AppleLanguages"];
请参阅下面的链接和源代码

下面是一个示例应用程序的代码


祝您一切顺利。

本教程和示例应用程序将为您提供更多帮助


你所遵循的本地化方式不符合标准


请遵循这本漂亮的教程

您必须手动将当前选择的语言管理为用户默认语言,并根据所选语言键加载捆绑文件夹,如,我已经这样做了,并且工作得很好

if ([currentLanguage isEqualToString:@"fr"]) {  // If French.
        languageBundle = nil;
        NSString* path = [[NSBundle mainBundle] pathForResource:@"fr" ofType:@"lproj"];
        languageBundle = [NSBundle bundleWithPath:path];
}

你有没有?如果你卡住了,请告诉我们。@Immi,我知道了,谢谢