2011-11-05 1 views
1

내 앱에 설정되어 있고 사용자에게 앱의 언어를 전환 할 수있는 권한을 부여하려고합니다. 언어는 장치 설정과 다를 수 있습니다.특정 언어로 현지화 된 UIImage를 사용하는 방법은 무엇입니까?

NSStrings에 대한 해결책을 찾았지만 UIImages로 어떻게 할 수 있습니까?

모든 이미지를 현지화했지만 이제는 장치 언어에 따라 선택됩니다. 이 기능을 사용하려면 무엇을해야합니까? 지금 당장 가지고있는 유일한 옵션은 Localizable.strings에 이름을 넣고 거기에서로드하는 것입니다.

더 좋은 방법이 있나요?

답변

1

뭔가 같은

들으 ;-) :

  • - [NSBundle URLForResource:withExtension:subdirectory:localization:]
  • - [NSBundle pathForResource:ofType:inDirectory:forLocalization:]

을해야한다. UIImage을 만드는

  • -[UIImage initWithContentsOfFile:]
  • -[UIImage initWithData:]

:

은 그럼 그냥 같은 것을 사용합니다.

+0

이것은 매우 좋아 보이지만 작동해야한다고 생각하지만 그렇지 않습니다. 어쩌면 내가 잘못하고있는 것 같지만이 메서드는 항상 다음을 반환합니다. [[[NSBundle alloc] init] pathForResource : @ "test"ofType : @ "png"inDirectory : @ ""forLocalization : @ "en"]; – MoFuRo

+0

@MoFuRo 클래스에서 제공하는 지정된 초기화 프로그램 또는 편의 생성자를 사용해야합니다. 이 경우, NSBundle은 리소스를 찾을 수있는 유효한 번들 인스턴스를 반환하기 위해 경로, URL 또는 번들 ID를 알아야합니다. '+ [NSBundle mainBundle]'은 앱의 번들을 반환하는데, 이는 종종 원하는 것입니다. 그래서 당신은 이것을 시도 할 수 있습니다 :'[[NSBundle mainBundle] pathForResource : .....'. – justin

+1

훨씬 좋아 보이지만 en.proj를 경로에 추가하지는 않습니다. 이것은 다음과 같은 호출입니다. '[[NSBundle mainBundle] pathForResource : @ "test"ofType : @ "png"inDirectory : nil forLocalization : @ "en"]'. – MoFuRo

관련 문제