2013-04-08 1 views
0

Google 서버에서 일부 통계를 다운로드하는 iOS 앱을 작성하고 있습니다. 오류 발생시 API는 오류 코드 및 오류 설명을 제공합니다. 내부 로그에 대한 오류 설명 (항상 영어)을 유지하고 일부 현지화 된 문자열에 오류 코드를 매핑하고 싶습니다. 이 문제를 해결하기위한 최선의 방법은 무엇입니까? .plist 파일을 사용하여 매핑을 실행하려고했지만 100 % 확신 할 수는 없습니다.iOS의 현지화 된 문자열에 API 오류 코드 매핑

답변

1

메모리 풋 프린트가 낮 으면 NSDictionary가있는 plist 파일을 사용하는 것이 좋습니다. 나는 비슷한 것을했습니다.

그러나 표준 방법 인 NSLocalizedString을 인식하고 각 언어에 대해 .Strings 파일을 사용하십시오.

여기 NSLocalizedString 사용하는 방법의 예 :

// Set the label using the localized string 
self.label.text = NSLocalizedString(@"Select choice:", @"Prompt to make a selection."); 

첫 번째 부분은 당신이 파일 Localizable.strings에서 정의하는 키입니다. 문자열 파일에 항목이 없으면 키 이름이 사용되므로 키를 기본 텍스트와 동일하게 만듭니다. 위의 예에서 기본 언어에 대한 항목이 없으면 @"Select choice:"이라는 키 이름 만 사용됩니다.

그런 다음 Localizable.string 파일을 만들고 Localize 버튼을 누른 다음 각 언어에 대해 하나씩 만듭니다. 스페인어 하나는 다음과 같습니다

물론
/* Contents of Localizable.strings */ 
"Select choice:" = "Selecciona la opción:"; 

, 당신은 다음과 같을 것이다 영국의 한 수 :

/* Contents of Localizable.strings */ 
"Select choice:" = "Select choice:"; 

NSLocalizedString (의 두 번째 매개 변수) 주석, 인을하는 선택 사항이지만 Apple은 코드의 모든 NSLocalizedString() 항목을 찾고 String 리소스 파일에 줄을 생성하고 주석을 완성하는 도구를 제공합니다.

+0

예제를 추가 하시겠습니까? 정말 유용 할 것입니다. – Claus

+0

@Claus, 예를 들어 답변을 업데이트했지만 문서에는 더 많은 정보와 더 나은 예제가 있습니다. –

+0

고마워. 나는 당신이 제안한 것들을 혼합하여 채택하고 있습니다. API 레이어 (오류 코드 및 기술 설명으로 구성된)에서 오류가 발생하면 설명을 기록하고 (사용자에게 유용하기 때문에) 현지화 된 버전의 메시지가 포함 된 새 NSError 개체를 만듭니다. 정보 : 각 코드가 NSError의 NSLocalizedString() 호출에 사용하는 키에 매핑 될 때 API 오류 코드를 .plist 파일에 저장하므로 사용자 친화적 인 메시지가 팝업에 표시됩니다. 각 언어. 그것에 대해 어떻게 생각하세요? – Claus