gpt4 book ai didi

ios - 通过编程更改应用程序特定语言而无需重新启动 iOS 应用程序

转载 作者:行者123 更新时间:2023-11-28 22:25:21 25 4
gpt4 key购买 nike

我有如下要求:在我的应用程序中,我提供了语言列表。现在,当用户更改语言时,它应该将所有标题和消息更改为特定语言。实际流程就像,我有一个屏幕( View )用于在我的应用程序中进行设置。在该设置屏幕中,我提供了语言选项。现在,当用户选择语言时,在我的应用程序中,所有标题、消息都应该以所选语言显示,而无需启动我的应用程序。

现在的问题是,当我选择语言(例如西类牙语)时,如果不重新启动我的应用程序,它就不会生效。我使用了下面给出的函数:

-(void) SetUserLanguage
{
NSString *appDataFilePath = [[NSBundle mainBundle] pathForResource:@"UserLanguageList" ofType:@"plist"];
NSDictionary *appDataDictionary = [[NSDictionary alloc] initWithContentsOfFile:appDataFilePath];
NSString* langName = [appDataDictionary objectForKey:self.pstrUserLanguage];
if(langName == nil || [langName isEqualToString:@""])
{
langName = @"en";
}
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSArray *langArray = [defaults objectForKey:@"AppleLanguages"];
NSArray *currentLangArray = [NSArray arrayWithObject:langName];
[defaults setObject:currentLangArray forKey:@"AppleLanguages"];
[defaults synchronize];
}

上述函数是一个名为 UserDataManager 的接口(interface)的一部分,它的实例在全局范围内可用于使用 gpUserDataManager 的应用程序。因此,在选择语言时,我将语言设置为此结构,然后我有用于映射的预定义 plist 文件。因此,当用户选择语言西类牙语时,它将值“es”设置为上述函数中的首选语言。但是要使此更改生效,我需要重新启动我的应用程序。请帮助如何实现我的要求。

最佳答案

TSLanguageManager会让你做你要求的。用法非常简单;

当您想通过点击 UIButton 更改语言时,只需使用以下代码即可更改语言;

[TSLanguageManager setSelectedLanguage:kLMEnglish];

要根据新语言更改文本,

yourTextField.text = [TSLanguageManager localizedString:@"yourLocalizedString"];

请注意,您需要将所有本地化字符串保存在 Localizable.strings 文件中。

关于ios - 通过编程更改应用程序特定语言而无需重新启动 iOS 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19154020/

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