NSLocalizedString
구현을 디버깅하는 데 문제가 있습니다. 간단해야하지만, 내가하는 일은 함수는 KEY
문자열 만 반환합니다.iOS - NSLocalizedString은 키 문자열 만 반환합니다.
내가 엑스 코드 4.5 iOS6의, 그래서 내가 사용하고 있습니다 :
- 추가를 새 파일은
File.strings
을했다. - 내 프로젝트 설정에서 언어 설정으로 영어와 스페인어를 추가했습니다.
- 파일 관리자에서 "현지화"를 클릭하고 영어와 스페인어 옵션이 선택되었는지, 그리고 내 대상에 대한 대상 구성원이 선택되었는지 확인하십시오.
- 내
.m
파일로 내 스페인어File.strings
- 추가
NSLog(@"Localization: %@\n", NSLocalizedString(@"KEY", nil));
내 영어File.strings
- 추가
"KEY" = "TestSpanish";
에"KEY" = "TestEnglish";
을 추가했습니다.
앱을 실행할 때 "KEY"
값은 항상 NSLog
에 인쇄되어 표시됩니다. path
가 유효한 경로,
NSString *path = [[NSBundle mainBundle] pathForResource:@"en" ofType:@"lproj"];
NSString *str = [[NSBundle bundleWithPath:path] localizedStringForKey:@"KEY" value:@"" table:nil];
NSLog(@"Localization: %@\n", str);
을 여전히 값 "KEY
"인쇄, 아직
사람이 어떤이 있습니까 :
이 뛰어하려면 조금 더, 나뿐만 아니라이 시도. 실마리를 디버깅하는 방법은 무엇입니까? 나는 그곳의 모든 질문/답변을 읽은 것 같지만 어떤 도움도 도움이되지 않습니다.
NSLocalizedString
은 ak와 일치하지 않을 때 KEY
문자열을 반환한다는 것을 알고 있습니다. 하지만 내 앱이 키와 일치하지 않는 이유를 디버그 할 수있는 방법이 표시되지 않습니다.
나는 약 12 번 정도 앱을 삭제/정리했습니다.
'table : nil'이'table : @ "File"'이 아니어야합니까? –
@ H2CO3 : 와우, 네, 고마워요. 저것은 영어 판을 움켜 잡는다. 그리고 나는 그것이 기쁜 슈퍼 다행이다.하지만 궁극적으로 NSLocalizedString이 필요하므로 해당 메서드의 편리 성을 사용할 수 있습니다. NSLocalizedString을 사용하기 위해 "File.strings"을 다른 이름으로 변경해야합니까 ??? – Brett
당신은 접근 할 것으로 예상되는 모든 지역화를 "XXX.lproj/Localized.strings"에 넣어야합니다. 또한 ** 왜 NSLocalizedString()을 사용해야합니까 **? –