2011-10-22 4 views
1

이 포럼에서 NSLocalizedString을 NSDictionary의 키로 사용할 수 있습니다. NSDictionary의 키로 NSLocalizedString

내있는 NSDictionary입니다 :이 코드는 NSDictionary에 액세스하려고

LABELS = [[NSDictionary alloc] initWithObjectsAndKeys: 
NSLocalizedString(@"Threshold 0", @"Description for threshold 0") , @"threshold_0", 
NSLocalizedString(@"Threshold 1", @"Description for threshold 1"), @"threshold_1", 
NSLocalizedString(@"Threshold 2", @"Description for threshold 2"), @"threshold_2", 
NSLocalizedString(@"Threshold 3", @"Description for threshold 3"), @"threshold_3", 
NSLocalizedString(@"Threshold 4", @"Description for threshold 4"), @"threshold_4", 
      nil]; 

:

NSString *key = [NSString stringWithFormat: @"threshold_%d",{MY_VARIABLE}]; 
NSString *text = [LABELS objectForKey: key]; 

경우 4.

I 0의 값을 가질 수 {MY_VARIABLE} 세 가지 언어가 있습니다 (이탈리아어, 프랑스어, 스페인어). 모든 "Localizable.strings"파일 (it.lproj, fr.lproj 및 es.lproj 폴더에 있음)을 생성 및 변환했지만 응용 프로그램이 실행될 때 주 번역본 만 봅니다 (예 : Threshold 0, Threshold 1,. ..

내가 잘못하고있는 곳은 어디입니까?

답변

0

시뮬레이터에서 앱을 빌드하고 실행하십시오. Finder에서 ~/Library/Application Support/iPhoneSimulator/your-ios-version/Applications/your-app-id /를 엽니 다.

.app 파일을 마우스 오른쪽 단추로 클릭하고 "패키지 내용 표시"를 선택하여 현지화 된 문자열이 속해 있는지 확인하십시오.

대부분의 경우 현지화 된 리소스가 대상의 일부가 아닙니다. 또한 장치는 대소 문자를 구분하므로 "localizable.strings"은 정확하지만 "localizable.strings"은 정확하지 않습니다.

파일이 있지만 작동하지 않는 경우 BBEdit에서 파일을 열고 인코딩이 리틀 엔디 언 UTF-16인지 확인하십시오. (또는 Terminal.app를 사용하고 "file path-to-strings-file"을 입력하여 인코딩 유형을 확인할 수도 있습니다.)

+0

답장을 보내 주셔서 감사합니다. 문제는 실제로 Localizable.strings 파일을 프로젝트에 추가하는 것을 잊었습니다. 다음 번엔 더 똑똑해질거야 :). – MarcoSciamanna