다음과 같은 요구 사항이 있습니다. 내 응용 프로그램에서 언어 목록을 제공했습니다. 이제 사용자가 언어를 변경하면 모든 제목과 메시지가 특정 언어로 변경됩니다. 실제 흐름은 마치 내 앱에서 설정하기위한 하나의 화면 (보기)과 같습니다. 그 설정 화면에서 나는 언어 옵션을 제공했습니다. 이제 사용자가 내 응용 프로그램에서 모든 제목에서 언어를 선택하면 메시지는 내 응용 프로그램을 시작하지 않고 선택한 언어로 표시되어야합니다.iOS - 응용 프로그램을 다시 시작하지 않고 응용 프로그램 특정 언어를 변경하십시오.
이제 스페인어와 같은 언어를 선택하면 내 앱을 다시 시작하지 않아도 적용되지 않습니다. 즉 gpUserDataManager을 사용하는 응용 프로그램에 대해 전역 적으로 사용할 수 기능이 상기
-(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 불리는 인터페이스 인스턴스의 일부 아래에 주어진 함수 I를 이용했다. 그래서 언어를 선택하면이 구조체에 언어를 설정 한 다음 매핑을위한 미리 정의 된 plist 파일을 얻습니다. 사용자가 스페인어를 선택하면 위의 기능에서 기본 언어로 값 "es"를 설정합니다. 하지만이 변경 사항을 적용하려면 앱을 다시 시작해야합니다. 친절하게 나의 요구를 성취하는 방법을 도와주세요. 질문이 있으면이 질문을 거부하기 전에 알려주십시오.
제목을 설정하고 메시지를 표시하기 위해 NSLocalizedString 함수를 사용했습니다. – Premal