iOS 앱을 개발하다 보면, 사용자에게 권한을 요청하는 메시지를 보여주는 일이 많아요.
예를 들어, "이 앱은 카메라를 사용하려면 권한이 필요합니다" 같은 문장이죠.
그런데! 앱을 다국어로 만들고 싶은데 이 메시지가 고정된 언어로만 나와서 곤란했던 적 있지 않으신가요?
오늘은 그런 문제를 해결해주는 방법! 바로 InfoPlist.strings 파일을 활용해
Info.plist 메시지를 다국어로 번역하는 방법에 대해 알아볼게요 🙌
✅ 이 글에서 배울 내용
- iOS에서 권한 메시지를 번역해야 하는 이유
- InfoPlist.strings 파일이 뭔지 이해하기
- 각 언어별 번역 파일 만드는 방법
- Flutter 프로젝트에 적용하는 실전 팁
- 번역이 안 되는 경우 해결법까지!
🤔 왜 Info.plist를 번역해야 할까?
- iOS에서는 위치, 카메라, 마이크 등 민감한 기능을 사용할 때 반드시 Info.plist에 메시지를 작성해야 해요.
- 이 메시지는 시스템이 직접 보여주는 거라 앱 내에서 번역이 불가능해요.
- 즉, 사용자의 기기 언어 설정에 맞는 번역을 InfoPlist.strings 파일을 통해 미리 준비해줘야 해요.
📂 InfoPlist.strings 파일이란?
InfoPlist.strings는 Info.plist 안의 문자열을 언어별로 번역해서 저장하는 파일이에요.
- 예:
- en.lproj/InfoPlist.strings → 영어
- ko.lproj/InfoPlist.strings → 한국어
- 파일 내부에는 Info.plist에 작성한 키와 그에 대한 번역을 넣어요: 예를 들면 다음 같이요!
/* en.lproj/InfoPlist.strings */
NSCameraUsageDescription = "This app needs access to your camera.";
/* ko.lproj/InfoPlist.strings */
NSCameraUsageDescription = "이 앱은 카메라 사용 권한이 필요합니다.";
🛠️ InfoPlist.strings 파일 만들기 (Step-by-Step)
1. XCode 프로젝트를 열어주세요.
open ios/Runner.xcworkspace/ 명령어를 cli에 입력해서 열수도 있어요.
2. Runner > Runner > Info.plist 파일을 선택해주세요.
3. 상단 메뉴 > File > New > File from template... 를 선택해주세요.
4. String을 검색한 뒤 String file을 만들어주세요. 이름은 꼭 InfoPlist.strings로 만들어주세요.
5. InfoPlist.strings 파일이 생성됐는지 확인합니다.
6. Runner > Project > Runner > Info 탭으로 이동해주세요.
7. Localizations 영역에서 원하는 언어를 추가해주세요. 저는 Korean을 선택해서 진행해줬습니다.
Main.storyboard, LaunchScreen.storyboard는 Flutter에서는 딱히 사용하지 않기 때문에 저는 선택하지 않았습니다!
8. 번역 파일이 잘 추가되었는지 확인해주세요. Localizations에 Korean이 추가된 것을 확인할 수 있습니다.
또한 원래 InfoPlist파일이 1개 있었지만 Toggle 표시가 생기면서 (English), (Korean) 두개로 나눠진 것을 알 수 있습니다.
이제 원하는 텍스만 입력해주면 끝입니다!
번역 적용하기
카메라와 마이크 권한 요청하는 문구를 언어 별로 다르게 보여주고 싶기 때문에,
두개의 문구를 다음과 같이 입력해줬습니다.
그리고, Info.plist에서는 문구를 비워주시면 됩니다.
이대로 빌드해서 번역이 잘 적용되는지 확인해볼게요.
한국어 번역 확인
영어 번역 확인
기기의 언어 설정을 먼저 영어로 바꿔줄게요.
아이폰에서 "언어" 라고 검색해서 언어 & 지역 설정 메뉴에서 영어를 맨 위로 올려주시면 됩니다!
⚠️ 번역이 안 되는 경우 확인할 점
- Info.plist에 해당 키가 존재해야 해요. .strings 파일만 있다고 메시지가 나오는 게 아니에요.
- 언어 폴더 이름(ko.lproj, en.lproj)이 정확히 맞아야 해요.
- Xcode에서 InfoPlist.strings 파일이 프로젝트에 추가되어 있어야 해요. 파일만 폴더에 있다고 적용되지 않아요.
- 기기의 언어 설정이 해당 언어로 되어 있는지 확인해 보세요!
🙌 마무리하며
이제 Flutter로 만든 iOS 앱에서도 Info.plist에 있는 메시지를 다국어로 번역할 수 있어요!
처음에는 구조가 조금 헷갈릴 수 있지만, 한 번만 해보면 다음부터는 금방 익숙해질 거예요.
글로벌 유저를 대상으로 앱을 출시하고 싶다면, 이런 작은 부분까지 신경 쓰는 게 중요하답니다 😄
'Flutter 개발' 카테고리의 다른 글
Riverpod 심화편: FutureProvider, StreamProvider, NotifierProvider 완벽 가이드 (0) | 2025.05.25 |
---|---|
Flutter 상태 관리 어렵다면? riverpod으로 쉽게 시작하자! (0) | 2025.05.25 |
Flutter에서 permission_handler 사용법 완벽 가이드 (0) | 2025.05.18 |
Flutter 메신저 앱 업그레이드: Firebase Storage로 프로필 이미지 저장하고 공유하기 (0) | 2025.05.04 |
Flutter 메신저 앱에 닉네임과 프로필 이미지 추가하기 (Firebase + SharedPreferences 활용) (0) | 2025.05.04 |