- Total
꿈꾸는리버리
Localization : 다국어 처리 본문
한국어 <-> 영어 둘 다 사용 가능한 다국어 앱을 만들기 위해 고군분투한 이야기..
참고하면 좋은 localization 관련 다른 이슈들
localization 다국어 타이핑 쉽게 하기 (excel을 이용한)
SwiftUI Widget 딱대(짐).. : localization 적용
info.plist localization string
앱스토어에서 앱 기본 언어를 영어로 설정하기info.plist localization string
다국어 설정하기
1) command + N -> Strings File 만들기
반드시 이름은 Localizable.strings 으로 !
2) Localizable.strings 파일에서의 인스펙터에서 localization 설정
3) 이렇게 두 언어를 넣어주면, 다음과 같이 설정이 가능하다 !
Text("hi")
이제 이렇게 치면 자동적으로 한국 지역 설정이 되어 있는 앱에서는 hi 대신 안녕이라고 읽힌다 !
주의) 반드시 세미콜론을 넣어야 한다 !
4) 만약 ,, 변수도 같이 넣고 싶다면?
Text("hi, \(name)")
-> 이 경우에는 아래와 같이 하면된다
"hi, %@" = "안녕, %@";
+ 정수인 경우에는 %lld
4) 만약 ,, 많은 양을 좀 더 쉽게 변환 하기 위해서는 ?
localization 다국어 타이핑 쉽게 하기 (excel을 이용한) 참고
두둥,,, 그런데 ..!! 문제가 생겼다..!
문제 상황
Localization은 한 Text(”내용 한 줄”)에서 “내용 한 줄” 전체와 일치하는 Key를 찾아서 Value로 바꿔주는 형식이다.
Text(”Hi, \(userName)”)의 경우에는 userName이 %@로 인식이 되어서 Key(“Hi, %@”)를 찾아 한국어로 번역이 되는데,
Text(title)의 경우에는 title의 내용 일치하는 Key가 없어서 번역이 되지 않았다.
즉, title 전체와 동일한 key값이 없어서 localization이 적용되지 ...않..았다…
이 경우 사용자의 이름은 계속 변하기 때문에, 해결할 수 있는 방법이 없다고 생각했다..
해결
Localization 관련 WWDC를 보던 중,, LocalizedStringKey을 알게되었다 !
이렇게 새로 만든 스트럭트에 넘기는 매개변수의 타입을 LocalizedStringKey로 설정하니까
title로 넘기더라도 원하는 대로 작동하게 되었다 :)
참고 자료
추가적인 내용
leading과 trailing
: 왜 오른쪽, 왼쪽이 아니라, leading과 trailing이라는 말을 쓰냐면,,,
하단과 같이 언어 중에 오른쪽에서 왼쪽으로 써 내려가는 글씨가 있기 때문이다.
그래서 leading, trailing으로 함으로써, local에 맞게 자리를 배치할 수 있게 된다.
italic 체
italic체를 넣고 싶다면, 이렇게 *을 글자 사이에 넣으면 된다 !
시뮬레이터에서 확인하기
edit Scheme를 선택하고,
앱의 언어를 바꿔주면 된다 ! ( 물론 시뮬레이터를 구동한 후에 설정에서 언어를 변경해줘도 반영된다 ! )
'오뚝이 개발자 > iOS' 카테고리의 다른 글
가로모드를 원하지 않을 때 (0) | 2022.07.18 |
---|---|
Userdefault란 무엇이고 어떻게 쓰는 건가요 ? (저장, 로드, 삭제) (0) | 2022.07.14 |
실제 디바이스가 없을 경우 개발 환경에서 할 수 있는 것과 없는 것을 설명하시오. (0) | 2022.07.04 |
WWDC 22 Student Challenge : Winner 후기 + 팁 (6) | 2022.06.23 |
[Xcode 5] Xcode 단축키 모음 ! (0) | 2022.05.08 |