Images.xcassets에서 이미지를 현지화하는 방법은 무엇입니까?
다음 과 같이 File Inspector
사용하여 이미지를 현지화 할 수 있습니다 Localize...
.
그런 다음 이것을 얻을 수 있습니다.
하지만 이제는 Images.xcassets를 사용하여 iOS 프로젝트에서 내 이미지를 관리합니다. 이러한 이미지를 Images.xcassets에서 어떻게 현지화해야합니까?
(분명히) xcassets 파일을 직접 명시 적으로 현지화하는 방법은 없지만 Localizable.strings 파일을 사용하여 가져올 자산의 이름을 현지화 할 수 있습니다. 예를 들어 현지화해야하는 게임의 기본 메뉴에 그래픽 로고 처리가 있다고 가정 해 보겠습니다. 지역화 된 로고 처리를 다른 이름의 자산 파일에 넣고 이름을 Localizable.strings 파일에 추가 한 다음 다음과 같은 코드로 적절한 이미지를 가져올 수 있습니다.
UIImage *img = [UIImage imageNamed:NSLocalizedString(@"MAIN_MENU_IMAGE", nil)];
Apple이 레몬을 줄 때, 레몬 에이드를 만들거나,이 경우에는 lemonade_en, lemonade_es 또는 당신의 필요에 맞는 것을 만드십시오.
먼저 다음과 같이 자산 파일에 원하는 각 언어에 대한 항목을 만듭니다.
다음으로 장치의 언어 코드를 받아야합니다. 여기서 기억해야 할 중요한 것은 사용자가 지원되지 않는 언어를 사용하고있을 수 있으므로이 경우 기본값을 반환하십시오 (저는 영어를 사용합니다).
다음 확장은 UIApplication
이 모든 것을 처리합니다.
extension UIApplication {
var languageCode: String {
let supportedLanguageCodes = ["en", "es", "fr"]
let languageCode = Locale.current.languageCode ?? "en"
return supportedLanguageCodes.contains(languageCode) ? languageCode : "en"
}
}
이 확장은 다음을 수행합니다.
- 내 앱에서 지원하는 언어의 배열을 만듭니다.
- 현재 장치의 언어 코드를 얻거나 이것이 nil 인 경우 기본값을 반환합니다.
- 마지막으로 현재 코드가 지원되는 목록에 있는지 확인합니다. 그렇다면 반환하고, 그렇지 않으면 기본 코드를 반환합니다.
이제 두 가지를 결합하여 적절한 이미지를 얻습니다.
let languageCode = UIApplication.shared.languageCode
let image = UIImage(named: "access_\(languageCode)")
인터넷에서 검색 한 결과 지금은 xcassets에서이 기능을 제공하지 않는 것 같습니다. 따라서 xcassets를 사용하여 현지화 이미지를 관리하지 마십시오.
다른 방법을 찾았습니다.
- asset.xcassets에 각 언어에 대한 폴더를 추가하십시오 (예 : en, it, de).
- 각 폴더에 "Provides Namespace"플래그를 설정합니다.
- 해당 폴더의 모든 이미지와 자산 복사
- 코드에서 다음을 호출하여 자산을로드하십시오.
let languageCode = UIApplication.shared.languageCode let image = UIImage(named: "\(languageCode)\assetname")
"Localize ..."버튼이 Xcode 11로 돌아 왔습니다! 이제 예상대로 자산 카탈로그에서 이미지와 자산을 현지화 할 수 있습니다.
지금은 Images.xcassets에서 현지화가 필요한 이미지를 꺼내 표준 프로젝트 폴더에 넣습니다. 현지화되지 않은 이미지는 .xcassets에 남겨 둡니다. 현지화해야하는 이미지에 대해 귀하의 방법을 사용합니다.
참조 URL : https://stackoverflow.com/questions/21310819/how-to-localize-the-images-in-images-xcassets
'programing' 카테고리의 다른 글
자바 스크립트에서 키 누름을 감지하는 가장 간단한 방법 (0) | 2021.01.18 |
---|---|
NSAttributedString에서 세로로 크기가 다른 두 글꼴을 가운데에 배치합니다. (0) | 2021.01.18 |
React JSX : 해시를 통해 반복하고 각 키에 대한 JSX 요소 반환 (0) | 2021.01.18 |
Kafka 주제의 복제본 수를 변경하는 방법은 무엇입니까? (0) | 2021.01.18 |
.net 개체의 크기 확인 (0) | 2021.01.18 |