전 세계인들이 사랑받는 앱 만들기 - 현지화하기 #70
OneMoreThink
started this conversation in
Idea
Replies: 5 comments 1 reply
-
좋은 공유 너무 감사해요 파인!! 🥹🥹🥹 |
Beta Was this translation helpful? Give feedback.
0 replies
-
우와 파인 감사해요!!!! :-D |
Beta Was this translation helpful? Give feedback.
0 replies
-
Localization이 궁금했는데 이렇게 사용하는군요! 공유해주셔서 감사해요!! |
Beta Was this translation helpful? Give feedback.
0 replies
-
최고입니다:) 아임파인 땡큐앤유 |
Beta Was this translation helpful? Give feedback.
0 replies
-
매크로 프로젝트 내 로컬라이징 진행에 많은 도움이 되었습니다, 감사합니다! |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
다들 안녕하신지요? 아임 파인입니다.
MC3 프로젝트 출시 준비하면서 Localization 필요성을 느끼고 이를 적용하는 과정 속에서
한번 정리해두면 좋겠다고 생각해서 전체적인 흐름과 함께 관련된 용어들을 한 데 모았습니다..
다들 소중한 앱이 전 세계적으로 많은 이들에게 사랑받는데 조금이나마 도움이 되었으면 좋겠습니다.🌎
글 중에 잘못된 내용이 있는 경우 댓글로 피드백 주시고, 추가로 공유해주시고 싶은 사항이 있다면 함께 이야기 나눠주시면 좋겠습니다. 👍
Localization 관련 설정
Project > Info
Localization 섹션
Use Base Internationalization
옵션 사용 과정Use Base Internationalization
를 선택하면 개발시 사용한 문자열을 기초로해서Localization
파일을 구성할 수 있습니다.View
에서 사용한String
문자열들에 대하여 Localization을 하기 위해서는String Catalog
를 만들어야합니다.Navigator
에서Command
+N
(or 우클릭 + New File)String Catalog
선택Localizable
을 처음 만들었을 때는 아래와 같이 비어 있지만한번 Build를 하면 (왼쪽 상단 재생 버튼 누르면)
아래와 같이 현재 프로젝트에서 사용된 String을 base로
key
값을 자동으로 생성해줍니다.이제 각
key
에 맞는 번역을 추가해주면 됩니다.번역이 적용되었는지 확인하는 방법
시뮬레이터 상에서
Project
에 추가된Target
들이 드롭다운 형태로 나타납니다.Edit Scheme
을 클릭Scheme가 뭐지?
Run
Section에서App Language
를 확인하고자하는 언어로 변경합니다.String Catalog
에서English
에 대해Value
로 넣었던 값들로 변환된것을 확인할 수 있습니다.Preview에서 확인하기
Preview
를 사용해서도 현재 번역이 잘 적용되고 있는지 확인해 볼 수 있습니다.Preview
를 하나 만듭니다.Preview("Preview 이름")
를 이용해 새로 만든Preview
에 이름을 지정해 줄 수 있습니다.environment(\.locale, Locale(identifier: "언어 식별자"))
를 이용하면Preview
에서 원하는 언어 설정에 대한View
를 볼 수 있습니다.언어 추가하기
String Catalog
에 들어가서왼쪽 하단에 + 버튼 클릭
원하는 언어 선택 및 선택한 언어에 대한 번역
Preview에서 확인하기
String Catalog 속성 알아보기
State State: 현재 문자열의 번역 상태를 나타냅니다.
NEW : 새로 추가된 문자열로 아직 번역되지 않음
✅ : 번역이 완료된 상태
NEEDS REVIEW : 번역은 되었지만, 검토가 필요한 상태
STALE : 원본 문자열이 변경되어 번역 업데이트가 필요한 상태
Stale
이 되고 새롭게 "안녕히가세요"에 대한 key가 추가되었습니다.Vary by Device : 각 Platform 별로 각기 다른 번역을 제공가능
Comment : 번역자나 개발자에게 추가 정보를 제공하는 필드
Comment를 활용해 해당 텍스트가 사용된 맥락이나 각 문화적 특성, UI 적 제약을 설명하여 각 언어의 특성에 알맞는 번역을 제공할 수 있습니다.
View를 컴포넌트화했을때 번역 제공
아래와 같이 재사용되는 뷰를 하나의 컴포넌트로 추려 냈을 때
해당 컴포넌트의 프로퍼티 인자로 전해지는 Text의 경우 어떻게 번역을 제공할 수 있을까요?
String Catalog
에 들어가서 왼쪽 상단의 + 버튼을 눌러 원하는 String에 대한 key와 해당 key에 대한 value를 추가합니다.String(localized: "key_")
앞서 설정한 key 값을 넣어주면 언어 설정에 맞는 번역이 제공됩니다.Enum과 함께 활용
다음과 같이
enum
을 활용해서 각 case에 대응하며 특성을 설명하는 String을 연산 프로퍼티 형태로 활용하는 경우각 case에 대응하는 String에 번역을 제공하고 싶다면
String
을LocalizedStringResource
타입으로 바꾸고 빌드를 하면 각 case가 반환하고 있는 문자열이 key가 되어String Catalog
에 추가 됩니다.추가된 key에 대해 각 언어에 대해 번역을 제공하면 각 case에 대응하는 String에 대한 번역을 제공할 수 있습니다.
Beta Was this translation helpful? Give feedback.
All reactions