[Localization] 다른 나라 언어 대응하기. (현지화)

이번 시간에는 앱에서 여러 국가의 언어를 대응하는 방법을 알아보려고 한다.

(Xcode15.2를 기준으로 작성되었다)

 

Xcode 실행 > 왼쪽 네비게이션 화면에서 Cmd + N 또는 

File > New > File 선택

String Catalog 생성

1. string 검색

2. String Catalog 선택후 Next

 

 

 

1. 원하는 이름 작성 (일반적으로는 Localizable로 그대로 둔다)

2. Create 버튼 선택

 

1. 생성된 Localizable 파일을 볼 수 있다. 선택한다.

2. + 버튼을 선택한다

3. 원하는 국가를 선택한다 (해당 예제에서는 ko를 선택함)

 

 

English를 선택한다.

1. Key를 입력하면 시스템에서 국가에 맞게 해당 텍스트를 보여준다. Default로 설정된 English는 Key와 실제로 앱에 나타날 텍스트가 일치되도록 처리 되어있다.

2. Key와 동일하지 않은 텍스트를 표현하고자 한다면 Key가 아닌 다른 텍스트로 교체한다.

3. Korea를 선택하고 영어 키에 해당하는곳에 한국어를 입력한다.

 

 

SwiftUI에서는 키 그대로 입력하면 해당 키에 맞는 나라별 언어가 표현된다.

이전 UIKit을 이용하여 앱을 개발했다면 String(localized:key)를 입력하면 처리된다.

 

시뮬레이터에서 적용된 언어 확인하기

시뮬레이터를 실행한다.

1. Settings 선택

2. General 선택

3. Language & Region 선택

4. 한국어를 위로 이동한다

5. 아래 창에서 Continue를 선택

시뮬레이터에서 언어 설정이 완료되면 실행했던 앱을 확인한다.

시뮬레이터에서 실행한 앱 화면 일부

한국어로 잘 표현된 것을 확인할 수 있다.

 

 

국가별 복수, 단수 텍스트 대응

영어를 기준으로 설명하면, 단수일때와 복수일때 단어를 다르게 표현한다

예를들면 1 Book, 2Books 또는 1Baby, 2Babies와 같이 나타난다.

Xcode에서도 이와 같이 대응할 수 있는데 아래 이미지를 보자

 

1. key값에 "%lld를 포함해서 텍스트를 입력한다" 예시에서는 "%lld Babaies"라 입력했다.

2. 마우스 오른쪽 버튼을 누르고 "Vary by Plural"를 선택한다.

3. 아래 화살표가 하나 생기는데 해당 버튼을 누른다.

4. 3번 액션을 통해 2개의 메뉴가 나온다. 여기서 One, Other가 있는데 단수와 복수를 나누어서 표현하도록 처리 할 수 있다.

예시에서는 One에 "Baby"로 수정하였고, 복수형태는 그대로 두었다.

 

1. Text안에 1로 설정했을때 단수로 표현되는 텍스트를 확인할 수 있다.

2. Text안에 2로 설정했을때 복수로 표현되는 텍스트를 확인할 수 있다.

'Xcode' 카테고리의 다른 글

Xcode Source Control (Git) 상태 표시의 의미  (0) 2024.03.11