나는 코드 내 프로젝트에서이 파일을 추가 한문제는
@interface Language : UIViewController
@end
@implementation Language
static NSBundle *bundle = nil;
+(void)setLanguage:(NSString *)l {
NSLog(@"preferredLang: %@", l);
NSString *path = [[ NSBundle mainBundle ] pathForResource:l ofType:@"lproj" ];
bundle = [[NSBundle bundleWithPath:path] retain];
}
+(void)initialize {
NSUserDefaults* defs = [NSUserDefaults standardUserDefaults];
NSArray* languages = [defs objectForKey:@"AppleLanguages"];
NSString *current = [[languages objectAtIndex:0] retain];
[self setLanguage:current];
}
다음
이 방법 +(NSString *)get:
호출 받고되지
+(NSString *)get:(NSString *)key alter:(NSString *)alternate {
NSLog(@"Bundle path: %@", [bundle bundlePath]);
return [bundle localizedStringForKey:key value:alternate table:nil];
}
@end
그리고 내 viewController.m 파일에는 언어 변경을위한 두 개의 버튼이 있습니다. 터키어 및 영어 언어 :
-(IBAction)englishLang:(id)sender{
[Language setLanguage:@"en"];
NSLog(@"language to english");
}
-(IBAction)turkishLang:(id)sender{
[Language setLanguage:@"tr"];
NSLog(@"language to turkish");
}
문제는 내가 turkish lang 버튼을 클릭 할 때 언어가 변경되어야하고 다음 nib 파일이 현지화 된 터키어 여야하며 응용 프로그램에서 선택해야합니다. 하지만 내 응용 프로그램에서 그 동작을 얻지는 않습니다.
영어로 된 nib 파일 만로드합니다.
문제점은 무엇입니까? 여기
해결 현지화 된 문자열을 만들었지 만 여전히 문제가 동일합니다 –
당신은 올바른 방법을 볼 수있는 get 방법에 번들 경로를 로깅 해 봤어? – wattson12
나는 그것을 얻지 못했습니다. –