[하루하나] Localization 적용기 2편
: 앱이름, 사진, 날짜 지역화
지난편에서 텍스트 지역화를 다루었으니 이번편에서는 그외 지역화를 다뤄볼게요!
1편에서는 깔끔하게 텍스트 지역화해보기를 다루고 있습니다
[하루하나] Localization 적용기 1탄 : 깔끔하게 텍스트 지역화해보기
하루하나 Localization 적용기 1탄 : 깔끔하게 텍스트 지역화해보기 이번편은 매우 간단한 이야기를 담고 있어 가볍게 시작해봅니다! 인스타에 앱 만든다고 or 다운좀! 하고 올리면 외국 친한 친구들
chanhee-jeong.tistory.com
1. 앱이름
앱이름 지역화는 너무 쉬운데요!
InfoPlist.string 을 만들어주고
각 국가별 앱 이름으로 "CFBundleDisplayName" 키를 설정해주면 됩니다.
2. 사진
사진은 더욱 쉬웠어요!
Localize 버튼을 눌러주세요!
저는 한국어 이외에는 다 영어 어셋으로 적용하려고
Universal 과 Korean 으로만 Localized 해두었습니다
3. 날짜 (DateFormat)
기본적으로 localized 되는 날짜를 사용해도 되지만 저는 날짜를 조금 더 커스텀해야했어요
그래서 아래와 같이 만들어서 사용했습니다.
아래 함수를 이용하면 디바이스에 설정된 언어를 알 수 있는데요.
저는 당장 한국어, 영어만 번역을 해야하는 상황이였어요!
(한국어일때만 한국어 나머지 영어 상황)
print("NSLocale.current.language.languageCode?.identifier") // ko-한국어, en-영어
따라서 요렇게 Date Extension 을 하나 만들어서 사용중입니다.
(나중에 다른 언어를 추가할지도..)
/* Localization */
extension Date {
public func localizedFullDate(_ locale: String) -> String {
let formatter = DateFormatter()
if locale == "ko" {
formatter.locale = Locale(identifier: "ko_KR")
formatter.setLocalizedDateFormatFromTemplate("YYYY.MM.dd")
} else {
formatter.locale = Locale(identifier: "en_US")
formatter.setLocalizedDateFormatFromTemplate("MM.dd.YYYY")
}
return formatter.string(from: Date())
}
}
사용할때는 아래와 같이 사용하고 있어요
dateLabel.text = Date().localizedFullDate(NSLocale.current.language.languageCode?.identifier ?? "en")
분명 더 좋은 방법이 있을 것 같은데
다음버전을 준비하면서 더 고민해봐야겠네요!
혹시 이것보다 좋은 방법 알고 계신다면,, 댓글로 알려주시면 매우 감사하겠습니다ㅠㅠ
이번 포스팅은 이렇게 마치고
다음편에서 다른 Localization 이야기 더 포스팅해보겠습니다
👋
'Swift & iOS' 카테고리의 다른 글
[iOS/하루하나] Localization 적용기 1편 : 깔끔하게 텍스트 지역화해보기 (0) | 2023.01.21 |
---|