2010-08-05 4 views
3

내 앱을 OS에서 설정 한 언어와 다른 언어로 실행시킬 수 있습니까? 내 앱의 설정 메뉴에서 사용자가 할 수있는 언어 전환을 원합니다. 자신의 시스템이 영어로 실행되는 동안 앱의 독일어를 선택하십시오.OS/기기에 설정된 것과 다른 언어를 사용하는 iPhone 앱입니까?

내가 이미 읽은 바로는,

당신은 어떻게 생각하세요 ... 내 자신의 현지화 메커니즘을하지 않고 수없는 것 같다?

Cheerz, pawi

답변

-1

이를 달성하려면 사용자 지정 리소스로드 메커니즘을 구현해야합니다. 예를 들어 NSLocalizedString 매크로 나 [NSBundle pathForResource :]를 더 이상 사용할 수 없습니다. 현지화를 포함하여 항상 경로를 지정해야합니다 (MyStrings.strings 대신 de.lproj/MyStrings.strings 에서처럼). 절대적으로 필요한 경우가 아니라면이 일을하지 않을 것을 제안합니다. 그것이 내가 루마니아어 사전입니다 IDEX라는 아이폰 앱을 얼마나 ;-)

해결하기 위해 주 걸렸다 있지만

10

은 쉽게 수행 할 수 있습니다. iPad에서는 루마니아어를 UI 언어로 사용할 수 없으므로 장치 설정에 포함되어 있지 않으므로 루마니아어를 응용 프로그램 설정에서 선택할 수있는 옵션을 사용자에게 제공하려고했습니다.

당신이해야 할 일은 앱을 국제화하고 평소처럼 현지화하는 것입니다. 그런 다음, 주요 방법 , 당신은 AppleLanguages전에를 설정하는 것이 그것은 필수적 그래서

int main(int argc, char *argv[]) { 
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    [defaults setObject:[NSArray arrayWithObject:@"ro_RO"] forKey:@"AppleLanguages"]; 
    int retVal = UIApplicationMain(argc, argv, nil, nil); 
    [pool drain]; 
    return retVal; 
} 

처럼, 원하는 언어 및 국가 표준 NSUserDefaultsAppleLanguages 키를 설정UIApplicationMain()을 실행하십시오. 그 시점에서 UIKit 프레임 워크가로드되고 기본 언어가 결정되기 때문입니다.

언어와 국가를 모두 지정해야합니다 (예 : "ro"뿐만 아니라 @ "ro_RO"). 그렇지 않으면 키를 설정할 때 앱이 중단 될 수 있습니다.

이렇게하면 지역화를 지원하는 NSBundle을 호출하면 프로그래밍 방식으로 설정 한 언어가 장치에서 설정 한 것과 반대로 표시됩니다.

호프가 도움이 되길 ...

+0

Apple의 설명서에서 본 AppleLanguages ​​키 값만 검색했습니다. App Store에 앱을 제출하는 데 어려움을 겪었습니까? –

+0

정확히이 코드를 사용하는 App Store에 하나의 앱이 있습니다. 1 년 전에 문제없이 마지막으로 업데이트되었습니다 ... – fedmest

관련 문제