본문 바로가기
개발/Flutter

다국어 처리를 통해 Flutter 앱 이름을 언어에 맞게 설정해보자.

by leedonggeun 2023. 9. 14.

플러터

안녕하세요. 이번 게시글에서는 앱 이름의 다국어 처리를 진행해볼 예정입니다.
우리가 앱을 사용할 때, 한국인이어도 스마트폰의 언어를 영어로 사용할 수도 있고, 스페인어로 사용할 수도 있습니다.
그런데도 앱 이름이 한국어로 통일된다면 이질감이 있겠죠?

이를 개선하기 위해 이번 게시글에서는 플러터 앱 이름을 다국어 처리하는 방법에 대해 알아보겠습니다.

1. Android

1-1. EN

android/app/src/main/res의 values/ 디렉토리에 strings.xml을 생성하고, 아래와 같이 선언합니다.

android/app/src/main/res/values/strings.xml

2-2. KO

android/app/src/main/res 디렉토리에 values-ko/ 디렉토리를 생성하고, 그 디렉토리에 strings.xml을 생성합니다.

2-3. 앱 이름 선언하기

android/app/src/main/AndroidManifest.xml의 application/android:label 에 @string/app_name을 작성합니다.
* 우리는 stirng 값의 name값을 app_name으로 적었기 때문에 app_name을 선언한 것입니다.
   다른 값으로 변경해도 무방합니다.

2. iOS

2-1. Localizations 설정하기

플러터 프로젝트의 루트 디렉토리에서 open ios/Runner.xcodeproj 명령어를 입력하여 XCode를 엽니다.
Runner > Info > Localizations에서 사용할 언어를 추가합니다.

이후 추가할 리소스를 선택하는 화면에서는 어차피 플러터를 통해 개발하기 때문에 사용하지 않지만 Finish를 눌러줍니다.

XCode의 Localization을 추가합니다.

2-2. InfoPlist.strings 파일 추가하기

1. [File] > [New] > [File...] 를 클릭해줍니다.
2. Strings File을 선택하여 InfoPlist.strings 이름으로 파일을 생성합니다.

2-3. Localization 추가하기

XCode 화면의 우측 LocalizationLocalize 버튼을 클릭하여 다국어 처리할 랭귀지를 모두 선택해줍니다.
그러면 아래 2번째 사진과 같이 InfoPlist Korean / English 등의 파일이 생기는 것을 볼 수 있습니다.

2-4. 다국어 property 추가하기

iOS 앱의 이름을 처리하는 info.plist의 키값은 CFBundleDisplayName입니다.

English
Korean

2-5. info.plist 수정하기

다국어 처리된 InfoPlist.strings의 key값이 들어가는 property는 비워둡니다.

3. 빌드하기

빌드하면 정상적으로 다국어 처리가 된 값으로 앱 이름이 표시되는 것을 볼 수 있습니다.

3-1. 겪은 오류 내역

1. 빌드해도 정상적으로 다국어처리가 되지 않았을 때는 flutter clean재빌드했습니다.

2. 아래와 같은 에러가 표시될 때엔 InfoPlist.strings의 프로퍼티 선언 후 세미콜론(;)이 누락되었는지 확인합시다.

validation failed: Couldn't parse property list because the input data was in an invalid format

 

댓글