2010-08-03 2 views
2

내 아이폰 앱에서 프로그래밍 방식으로 로케일을 변경하려고합니다. 기본적으로 모든 언어가 iPhone 자체에서 지원되는 것은 아니기 때문에 사용자가 언어를 전환 할 수 있어야합니다. 나의 신청을 위해). 나는 다른 질문을 보았다 How to force NSLocalizedString to use a specific language 그 OSX 애플 리케이션에? [[NSUserDefaults standardUserDefaults] setObject : [NSArray arrayWithObjects : @ "de", nil] forKey : @ "AppleLanguages"]와 함께 작동해야합니다. -하지만 나를 위해 ... [NSLocale currentLocale] 여전히 시스템 광역 로케일을 반환하고 '주 번들'은 시스템 광역 로케일에서 파일을 제공합니다 ..현재 아이폰 응용 프로그램의 로케일 변경 (NSBundle 용 사용자 정의 로캘)

그래서 거기에 방법이 있습니다 내 응용 프로그램에 사용자 정의 로케일을 설정 하시겠습니까? 또는 - 나에게 충분하다면 - 다른 로케일로 새로운 NSBundle 인스턴스를 생성 할 것인가?

+1

두 가지를 혼동하고 있습니다. 로케일은 "지역 형식"에 해당하고 지역화는 "언어"에 해당합니다. –

답변

2

오케이, 바보 같은 질문 .. 이미 답변했습니다 .. 그 코드는 재시동이 필요합니다. ie. 사용자가 다른 언어 호출을 선택하면 [[NSUserDefaults standardUserDefaults] setObject : [NSArray arrayWithObjects : @ "de", nil] forKey : @ ""AppleLanguages ​​"]; - 다음 번 응용 프로그램이 시작될 때 [NSBundle mainBundle]은 지정된 로케일에 대한 올바른 리소스를 반환합니다. ([NSLocale currentLocale]이 여전히 iPhone 전체 로켈을 반환하지만 ..이 문제는 저에게 중요하지 않습니다) 어쨌든 ...)

관련 문제