2014-12-09 1 views
2

글쎄 제목에 거의 모든 것이 나와 있습니다.Xcode6은 xliff로 내보낼 때 헤더에 정의 된 NSLocalizedStrings()를 내 보내지 않습니다.

Xcode6.1 (6A1052d)을 사용하고 있습니다.

가 나는 결과 .xliff 파일에서 "현지화에 대한 수출 ..."나는 '돈 때 지금이

#define LocalStringYESButtonTitle NSLocalizedStringWithDefaultValue(@"YES", nil, [NSBundle mainBundle], @"YES", @"General YES button label") 

같은 몇 가지 일반적인 NSLocalizedStrings를 정의하는 헤더 파일 (LocalString.h)가 헤더에 정의 된 문자열이 없습니다.

아이디어가 있으십니까?

답변

6

글쎄, Xcode는 NSLocalizedString 매크로에 대한 헤더 파일 (.h)을 구문 분석하지 않습니다.

나는 모든 정의를 .m 파일에 넣고 내 .h 파일에 포함시키는 것으로 끝났습니다. 이것은 다른 파일에 포함 된 내용을 변경하지 않기 위해서입니다. 이러한 문자열은 시간 유증 할 수있는 컴파일해야 LocalString.m

#define LocalStringYESButtonTitle NSLocalizedStringWithDefaultValue(@"YES", nil, [NSBundle mainBundle], @"YES", @"General YES button label") 
2

#define이 아닌 extern NSString을 사용해보십시오. 문제를 일으키는 또 다른 오류가있을 수 있지만 Xcode는 의도적으로 매크로를 엉망으로 만들지는 않습니다. 당신의하는 .m에 .H

extern NSString *LocalStringYESButtonTitle; 

에서

NSString *LocalStringYESButtonTitle = NSLocalizedStringWithDefaultValue(@"YES", nil, etc...); 
+0

이 작동하지 않습니다에서 LocalString.h

#import "LocalString.m" 

에서

때문이다. 글쎄, 나는 getter 메소드로 그것들을 어떤 클래스에 넣을 수 있었다. 그러나 어쨌든 나는 그 문제가 무엇인지 알았다. – user1264176

1
대부분의 가능성이 는 "현지화에 대한 수출은 ..." 조치가 이전 genstrings 도구와 같은 결함을 가지고

: 그것은 구문 분석 원본은 사전 처리되지 않으므로 자신의 매크로를 무시합니다. 아마도 NSLocalizedStringNSLocalizedStringWithDefaultValue과 같은 공식 매크로를 찾고있을 것입니다. (대신 매크로를 사용하는 통근 변수를 사용하면 통합 와 동일 할 수있다처럼 당신은 tell genstrings about your macros하지만

이에 대한 가장 좋은 해결책 제안 @KirkSpaziani 하나입니다 "현지화에 대한 수출을 ..."보이지 않는 수 물론 사용하기 전에 올바르게 초기화되었는지 확인해야합니다.

+0

기능면에서 매크로를 재정의하지 않습니다. 나타난 것처럼 헤더 파일에 매크로를 정의하는 데 문제가있었습니다. – user1264176

관련 문제