2012-07-19 4 views
0

테이블보기가 있고 내부에 정적 그룹 2 개가 있으며, 그 중 하나에 언어가 포함되어 있습니다. 내 응용 프로그램에 대한 설정에서 2 개 언어 영어와 프랑스어를 사용하려는 경우 사용자가 영어를 선택할 때 설정을 영어로 변경하고 사용자가 프랑스어를 모두 선택하면 프랑스어 언어로 변경됩니다. 일부 샘플을 보았지만 어떻게 설정하고 코드를 설정해야하는지 모릅니다. 어떻게 코드를 연결해야합니까? 내 체크 마크 셀!iOS 응용 프로그램의 언어 설정 변경

미리 감사드립니다.

enter image description here

+0

응용 프로그램을 현지화하는 방법에 익숙합니까? 없으면 여기에 몇 가지 [기본 사항] (https://developer.apple.com/library/mac/#documentation/MacOSX/Conceptual/BPInternational/BPInternational.html#//apple_ref/doc/uid/10000171-SW1)이 있습니다.). – holex

+0

@ 홀렉스 덕분에 애플리케이션을 현지화했지만 시뮬레이터를 통해 어떻게 확인할 수 있습니까? –

+0

'Settings' ->'General' ->'Language' 섹션에서 장치 메뉴의 언어 설정을 변경하십시오. – holex

답변

0

는 첫째로이 코드

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
NSArray *languages = [defaults objectForKey:@"AppleLanguages"]; 
NSString *currentLanguage = [languages objectAtIndex:0]; 

2에서 언어 코드를 얻을)를 지역화 문자열 (How to make Localizing string)

3)를 사용하여 파일 확인 : 여기

내 설정에 대한 사진입니다 이 NSLocalizedString(@"WelcomeKey", @"")

예 : -

NSString *[email protected]""; 


    if([currentLanguage isEqualToString:@"en"]) 
    { 
     example = NSLocalizedString(@"WelcomeKey", @"Engliah"); 
    } 

    else { 
     example = NSLocalizedString(@"WelcomeKey", @"french"); 
    } 
+0

이 코드를 어디에 넣어야합니까? –

+0

Facepalm 2 ......... –

+0

어디서나 문자열 값을 설정해야합니다 ... –

0
  1. 의 모든 xibs (라벨, 텍스트 필드)의 모든 텍스트 개체에 콘센트를주십시오. 이렇게하면 값에 액세스하여 텍스트 필드의 자리 표시자를 '이름'에서 'Prénom'으로 변경하는 등의 작업에 액세스 할 수 있습니다.
  2. 영어 콘텐츠 (키 이름으로 콘센트 이름 사용 가능) 및 프랑스어 콘텐츠 키와 값을 가진 .plist 파일을 만듭니다.
  3. 기본값을 유지하십시오. myLanguageIndicator (NSUserDefaults에서) 현재 언어를 유지하며 언어를 설정할 때 각각 변경됩니다.
  4. 기본값 ("eng"또는 "fr"인 경우)에 따라 모든 클래스의 viewWillAppear에서 필요한 .plist 파일을 읽은 다음 콘센트 값을 설정합니다.

기본 언어 값이 "fr"이라고 가정합니다. 즉, viewWillAppear에서 fr.plist (또는 이름을 지정)를 사용하게됩니다. "titleLabel"은 컨트롤러 중 하나에있는 제목 레이블의 콘센트입니다.

다른 기본 개체에서는 fr.plist (사전에 plist를로드하는 방법) 사전을 보관합니다.

는 그런 말 :

if ([myLanguageIndicator isEqualToString:@"fr"]){ 
     titleLabel.text = [myFrenchDictionary objectForKey:@"titleLabel"]; 
    ... ... ...change here all your outlets to french values 
    } 
    else{ 
     titleLabel.text = [myEnglishDictionary objectForKey:@"titleLabel"]; 
     ... ... ...change here all your outlets to english values 
    } 

을 그리고 당신은 언어를 선택하면, 당신이 선택한 언어에 따라, @"fr" 또는 @"eng"에 기본 문자열 객체 myLanguageIndicator을 변경합니다.

+0

이 코드를 어디에 넣어야합니까? –

+0

Facepalm ........ –

+0

닙 (nib) 및 스토리 보드 (storyboards)를 사용하여 앱을 제작하려는 경우 발생합니다. lol – emotality

관련 문제