멕시코 스페인어와 다른 문자열을 미국 스페인어보다 표시하려고합니다. 앱에는 항상 미국식 스페인어 문구가 표시됩니다. FYI - 영어, 프랑스어 및 포르투갈어는 정상적으로 작동하지만 로케일은 지정되지 않았습니다.iOS 현지화 - es-US와 es-MX를 인식하지 못합니다
+ 버튼을 클릭하고 "기타"메뉴에서 스페인어 (멕시코) (es-MX) 및 스페인어 (미국) (es-US)를 선택하여 빌드 설정 -> 현지화에 현지화 폴더를 만들었습니다. 그런 다음 구를 적절하게 업데이트했습니다. 프로젝트에서는 (스페인어 - 멕시코) 및 (스페인어 - 미국)을 포함한 5 개의 Localizable.strings 파일을 볼 수 있습니다. 마찬가지로 Finder에서 es-MX 및 es-US를 포함하여 예상되는 폴더를 볼 수 있습니다.
나는 응용 프로그램의 didFinishLaunchingWithOptions 일부 NSLog 메시지를 넣어 :
NSLog(@"preferredLocalizations=%@", [[[NSBundle mainBundle] preferredLocalizations] objectAtIndex:0]);
NSLog(@"localization array=%@, count=%d", [[NSBundle mainBundle] preferredLocalizations], [[[NSBundle mainBundle] preferredLocalizations] count]);
NSLog(@"preferredLanguage = %@", [[NSLocale preferredLanguages] objectAtIndex:0]);
NSLog(@"language array=%@, count=%d", [NSLocale preferredLanguages], [[NSLocale preferredLanguages] count]);
NSUserDefaults* defs = [NSUserDefaults standardUserDefaults];
NSArray* languages = [defs objectForKey:@"AppleLanguages"];
NSString *current = [languages objectAtIndex:0];
NSLog(@"user default language=%@", current);
출력은 다음과 같습니다
2013-07-30 22:21:24.911 ecatalog[33497:907] application:didFinishLaunchingWithOptions
2013-07-30 22:21:24.918 ecatalog[33497:907] preferredLocalizations=es
2013-07-30 22:21:24.920 ecatalog[33497:907] localization array=(
es
), count=1
2013-07-30 22:21:24.922 ecatalog[33497:907] preferredLanguage = es
2013-07-30 22:21:24.924 ecatalog[33497:907] language array=(
es,
en,
fr, <snipped a bunch for brevity>
ms,
"en-GB",
ca,
hu,
vi
), count=34
2013-07-30 22:21:24.926 ecatalog[33497:907] user default language=es
언어 배열이 휴대 전화에서 사용 가능한 언어 목록에 보인다, 나의 선호하는 순서 - 즉, 프랑스어로 전화를 설정하면 fr
이 목록 맨 위에 표시됩니다.
관련이 있지만 내 프로젝트에 스페인어를 지원하는 두 개의 타사 프레임 워크가 포함되어 있지만 es-MX.lproj 또는 es-US.lproj가 아닌 es.lproj 변형이 포함되어 있는지는 잘 모르겠습니다.
다른 하나의 "증상"- 시뮬레이터에서 앱을 실행하면 영어와 내가 시뮬레이터를 설정 한 언어가 번갈아 나타납니다.
감사합니다.