Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

iOS 개발일지

0906 새싹 46회차 정리 - Localization 본문

SeSAC iOS 데뷔과정 2기

0906 새싹 46회차 정리 - Localization

Lia's iOS 2022. 9. 6. 21:56
iOS 앱 개발자 데뷔 과정 46회차

 

 

 

 

#1. Checklist

- Localization

- i18n : Internationalization (국제화) , 주로 문화에 대한 대응

- l10n : Localization (현지화) , 주로 언어에 대한 대응

 

국제화/현지화는 하드웨어, 소프트웨어 등의 제품을 언어와 문화권이 다른 환경에서 사용할 수 있도록 지원하는 서비스이다.

이를 지원할 경우, 일반적으로 사용자가 선택한 기기의 기본 언어에 따라 국제화/현지화가 이루어진다.

추가 기능 구현을 통해, iOS 13 이상부터는 사용자 기기의 기본 언어와 상관 없이 앱에서 사용할 언어를 선택할 수 있다.

시간대, 숫자, 화폐 단위의 표현 차이, 선호하는 레이아웃, 선호하는 프로모션 등에서 차이가 발생할 수 있기 때문에 언어 뿐만이 아니라 문화적/환경적인 측면도 고려할 필요가 있다.

 

Alppe API를 활용해 날짜, 길이, 무게, 가격 및 통화 기호와 같이 사용자에게 표시되거나 동적으로 생성되는 값을 모든 로케일에 올바르게 표현할 수 있게 구현할 수 있다.

 

+를 눌러 Localization을 지원할 언어 추가

 

- Localizable.strings : 각 나라와 지역에 맞는 정적 메세지 (고정된 텍스트) 를 제공

 

1. Localizable.strings 파일 생성

2. 인스펙터 영역에서 Localize 버튼을 통해 기본 다국어 생성

3. localize File 이후, 인스펙터 영역에서 다른 언어들도 모두 선택

 

 

4. Localizable.strings 구현

 

5. NSLocalizedString을 통해 현지화된 strings 파일의 Key 값을 읽어 다국어 지원

 

6. Extension을 통해 코드 개선

 

 

 

- InfoPlist.strings : 각 나라와 지역에 맞는 권한 문구를 출력

앱 이름 (Display Name) 또는 하드웨어, 개인 정보 권한 문구의 경우 Localizable.strings 파일로 지원할 수 없다.

이러한 정보들은 Apple API에 의해 정의된 Key를 사용해 구현할 수 있다.

 

1. InfoPlist.strings 파일 생성 스펠링 주의!

2. 사용할 항목을 Info에 추가하고, 알아보기 쉽도록 Value를 작성

3. 왼쪽의 파일 목록에서 Info 우클릭 ➡️ Open As ➡️ Source Code 클릭 =>Key값 확인

 

4. InfoPlist.strings 구현

 

 

 

- plural.stringsdict : 각 나라와 지역에 맞는  표현 단위 등을 출력

ex. 언어에 따라 순서가 다른 경우와 단수나 복수, 숫자 표현 대응

 

- Storyboard Object ID : 스토리보드로 다국어를 설정할 때 사용

새롭게 뷰 객체를 추가할 경우 Object ID를 수동으로 설정해야 하는 등의 문제가 있어, 잘 사용하지는 않는다.

 

 

 

- SKStoreReviewController

잘 사용하고 계신가요? 앱스토어에 평가를 남겨주세요!

라는 얼럿을 한 번쯤은 본 적이 있을텐데, 해당 기능을 구현하기 위해서 사용하는 것이 SKStoreReviewController 이다.

해당 얼럿은 디바이스당 1년에 3회 제한이 있기 때문에, 적절한 타이밍에 보여줄 수 있도록 설정하는 것이 중요하다.

아직은 사용할 예정이 없기 때문에 키워드만 알고 넘어가자!

 

 

 

- MessageUI

개발자에게 문의 남기기 기능을 구현하고 싶다면 MessageUI를 활용할 수 있다.

해당 기능을 개발할 때에는 디바이스로 테스트해야 하고, 사용자가 아이폰 메일 계정을 등록해야 사용이 가능하다.

 

- DebugLocalizable

현지화를 테스트할 때마다 설정 언어를 바꾸고, 재부팅하는 것이 꽤 번거로울 것이다.

Edit Scheme에서 App Language를 바꾸면 조금은 더 수월하게 테스트할 수 있다.

스토리보드를 통해 현지화를 구현했다면 Preview를 통해 보다 간단하게 확인해볼 수 있다.