2012-04-08 2 views
0

Localizable.strings 파일을 사용하는 응용 프로그램에 일부 현지화를 추가하려고 시도한 결과 처음으로 예기치 않은 문제가 발생했습니다. 명확성을 위해, 이것들은 제가 수행 한 단계들입니다.iOS iPad 응용 프로그램에서 Localizable.strings 문제 발생

  1. 파일 >> 새로 만들기 >> 문자열 파일 형식의 리소스 파일을 추가했습니다.
  2. 파일 명명 된 'Localizable.strings'
  3. Localizable.strings 파일에 클릭 함과 현지화 섹션을 통해 스페인어를 추가했다. (나는 내 ​​프로젝트 폴더에 en 폴더와 es 폴더가 있음을 확인했다).
  4. 내 KEYS를 Localizable.strings (영문) 파일에 추가하고 스페인어 파일에 스페인어 번역을 추가하기 시작했습니다.

예를 들어 이것은 내가 추가하려고하는 현지화 중 하나입니다.

"CAMERA_ERROR" = "The device does not have a camera"; 

스페인어 .strings 파일에 정확히 동일한 문자열이 추가되었지만 스페인어에 맞게 텍스트가 변경되었습니다. 내 응용 프로그램 코드 내에서 나는 다음과 같은 사용하고 있습니다 :

NSString *cameraError = NSLocalizedString(@"CAMERA_ERROR", nil); 

모든이 시점까지 미세하게 보이지만, 이상한 얻고 나는이 혼란스러워합니다. 내 아이맥 중 하나에서 응용 프로그램을 실행하면 제대로 작동하고 시뮬레이터에 설정된 언어에 따라 정확한 영어 또는 스페인어 문자열이 표시됩니다.

그러나이 MacBook Pro에서 똑같은 응용 프로그램을 실행해도 문자열이 표시되지 않고 대신 "KEY"제목이 표시됩니다. 따라서 메시지를 "장치에 카메라가 없습니다"라고 표시하는 대신 "CAMERA_ERROR"로 표시합니다. 이 코드는 git repo에서 복제 된 것과 동일한 프로젝트입니다.

누구든지이 문제에 관해 밝힐 수 있습니까? MacBook의 설정이 다를 수 있습니까?

+0

일반적으로''NSLocalizedString (@ "장치에는 카메라가 없습니다", nil);''을 사용하여 기본 언어가 지역화 된 번역을 필요로하지 않도록합니다. –

+0

이 솔루션이 유용 할 수도 있습니다. http://stackoverflow.com/questions/12608859/nslocalization-on-xcode-4-5-and-ios-6 – dman

답변

6

프로 맥북에 다음을 수행하십시오 :

  1. 깨끗한 프로젝트;

  2. 시뮬레이터/장치에서 앱을 제거하십시오.

  3. 앱을 다시 작성하십시오.

이렇게 수정해야합니다.

관련 문제