2011-05-12 2 views
2

4 개 언어 (영어, 프랑스어, 기울임 꼴, 스페인어)로 응용 프로그램을 개발해야합니다..xib 파일에서 여러 언어로 변경 될 수 있습니다.

그렇기 때문에 상단 바에 .xib file 하나만 사용하여 다른 언어 데이터를 표시 할 수있는 방법이 있는지 알고 싶습니다.

예 :

나는 보기 부분에 그 펜촉 파일의 맨 위에 표시 줄에 네 개의 레이블 내가 원하는있다 에서 Setting.xib (.xib 파일)가 설정 언어에 따라 레이블을 변경하십시오 하나를 사용하여 & 하나의 Nib 파일.

그래서 적절한 해결책을 알려주십시오.

로딩 시간이 짧습니다.

답변

2

우선, 레이블 텍스트를 설정할 때 NSLocalizedString을 단순히 사용할 수없는 이유를 이해하지 못합니다. 원하는 언어로 기기의 언어에 따라 적절한 버전의 텍스트를로드합니다.

어쨌든, 나는 당신이 유용한 것을 찾을 수 있다고 생각합니다. here.

나는 사실 6 개의 언어와 하나의 펜촉으로 비슷한 것을 만들었지 만, 내 경우에는 응용 프로그램 내에서 언어가 변경되었을 수 있으므로 강제로 내게 현지화 된 버전을로드하도록 말할 수 있어야했습니다. 특정 번들의 문자열.

여기만큼 문제가 더 내 간단한 NSLocalizedString처럼 경우에 당신을 도움이 될 것입니다 정확한 코드, 안 그래 :

NSString* path= [[NSBundle mainBundle] pathForResource:[[[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"] objectAtIndex:0] ofType:@"lproj"]; 

NSBundle* languageBundle = [NSBundle bundleWithPath:path]; 

someLabel.text = [languageBundle localizedStringForKey:@"textKey" value:@"" table:nil]; 

당신은 아마 두 개 이상의 라벨이 것이기 때문에, 그것은 좋은 것입니다 아이디어를 클래스 속성으로 저장하고 viewDidLoad에서 설정하므로 해당 클래스의 모든 메소드/함수에서 액세스 할 수 있습니다.