2011-08-22 4 views
0

iOS 응용 프로그램이 활성화되면 현지화를 변경해야합니다.활성화 될 때 현지화 변경

그래서 ..

은 내가 main.m 파일에 settings.bundle 통해 설정에서 언어 선택이있다. 나는 그래서 응용 프로그램 설정에서 데이터를 사용하여 다른 언어에 대한 이미지를 변경이

int main(int argc, char *argv[]) { 
    NSAutoreleasePool *pool = [NSAutoreleasePool new]; 
    // -- 
    NSString *appLang = [[NSUserDefaults standardUserDefaults] stringForKey:@"appLang"]; 

    if (appLang == nil) 
     [[NSUserDefaults standardUserDefaults] setValue:[[NSLocale preferredLanguages] objectAtIndex:0] forKey:@"appLang"]; 

     [[NSUserDefaults standardUserDefaults] 
     setObject:[NSArray arrayWithObjects:[[NSUserDefaults standardUserDefaults] stringForKey:@"appLang"], nil] 
     forKey:@"AppleLanguages"]; 

     [[NSUserDefaults standardUserDefaults] synchronize]; 
     [appLang release]; 
     // -- 
     int retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate"); 
     [pool release]; 
     return retVal; 
    } 

같은 설정을 읽고 있어요.

if ([[[NSLocale preferredLanguages] objectAtIndex:0] isEqual:@"en"]) 

모두 잘 작동하지만 문제는 다음과 같습니다 : 지금

는,이 같은 언어를 정의하는 조건을 사용하고 난 응용 프로그램의 현지화를 변경할 수 있습니다 (내 방법을 사용하여)을 할 때 응용 프로그램이 활성화됩니다 (applicationWillEnterForeground 또는 이와 비슷한 것)? 어떻게해야합니까?

답변

0

보기 컨트롤러에서 UIApplicationWillEnterForegroundNotification을들을 수 있습니다. 이 같은이 작업을 수행 할 수 있습니다

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myFunc) name:UIApplicationWillEnterForegroundNotification object:nil]; 

응용 프로그램은 모든 전경 myFunc 호출 할 것이고, 거기에 당신이 설치 수있을 것입니다갑니다 - 설정 적절한 현지화


I 돈 등의 이미지를 전환 그것이 정확히 필요한지는 모르겠지만 myImage이라는 UIImageVIew가 있고이 컨테이너에 새 이미지를로드하려는 경우 다음과 같이 설정할 수있는 이미지 속성을 설정하십시오.

- (void) myFunc { 
    /* 
    set localization parameters 
    */ 
    // set image 
    myImage.image = [UIImage imageNamed:[NSString stringWithFormat:@"img_%@.jpg", appLang]]; 
} 
+0

나는 이것을 알고있다. 사실 내 질문은 "나는 무엇을 바꿀 것인가"입니다. 나는 UserDefaults에서 AppleLanguages를 변경하지만 이미지는 여전히 변경되지 않습니다. 내 게시물에 – timfreeman

+0

몇 가지 코드를 추가하지만, 당신이 원하는 코드인지 확실하지 않습니다 ... – Bartek

+0

아니요. 그도 아니다 내가 뭘 원하는 =) 나는 약 55 viewControllers에 약 1500 + 이미지 있습니다. 내 리소스가 자동으로 지역화되도록 어떻게 든 다시로드하는 방법이 필요하다고 생각합니다. – timfreeman

관련 문제