Flutter 개발

Flutter iOS 앱에서 Info.plist 권한 메시지 다국어로 번역하기

withmilk 2025. 5. 18. 14:48

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에 입력해서 열수도 있어요.

XCode를 연 모습

2. Runner > Runner > Info.plist 파일을 선택해주세요.

Info.plist를 열어둔 모습

3. 상단 메뉴 > File > New > File from template... 를 선택해주세요.

File from Template... 선택하는 모습

4. String을 검색한 뒤 String file을 만들어주세요. 이름은 꼭 InfoPlist.strings로 만들어주세요.

String File을 생성하는 모습

5. InfoPlist.strings 파일이 생성됐는지 확인합니다.

InfoPlist.strings가 생성된 모습

6. Runner > Project > Runner > Info 탭으로 이동해주세요.

 

7. Localizations 영역에서 원하는 언어를 추가해주세요. 저는 Korean을 선택해서 진행해줬습니다.

Main.storyboard, LaunchScreen.storyboard는 Flutter에서는 딱히 사용하지 않기 때문에 저는 선택하지 않았습니다!

한국어 번역을 추가해주는 모습

8. 번역 파일이 잘 추가되었는지 확인해주세요. Localizations에 Korean이 추가된 것을 확인할 수 있습니다.

또한 원래 InfoPlist파일이 1개 있었지만 Toggle 표시가 생기면서 (English), (Korean) 두개로 나눠진 것을 알 수 있습니다.

번역 파일 생성이 완료된 모습

 

이제 원하는 텍스만 입력해주면 끝입니다!


번역 적용하기

카메라와 마이크 권한 요청하는 문구를 언어 별로 다르게 보여주고 싶기 때문에,

두개의 문구를 다음과 같이 입력해줬습니다.

각각의 언어에 맞는 InfoPlist.strings의 내용을 작성한 모습

 

그리고, Info.plist에서는 문구를 비워주시면 됩니다.

Info.plist 파일 변경점

 

이대로 빌드해서 번역이 잘 적용되는지 확인해볼게요.


한국어 번역 확인

한국어 번역이 적용된 모습

영어 번역 확인

기기의 언어 설정을 먼저 영어로 바꿔줄게요.

아이폰에서 "언어" 라고 검색해서 언어 & 지역 설정 메뉴에서 영어를 맨 위로 올려주시면 됩니다!

기기 언어 설정을 변경하는 모습
영어 번역이 적용된 모습


⚠️ 번역이 안 되는 경우 확인할 점

  • Info.plist에 해당 키가 존재해야 해요. .strings 파일만 있다고 메시지가 나오는 게 아니에요.
  • 언어 폴더 이름(ko.lproj, en.lproj)이 정확히 맞아야 해요.
  • Xcode에서 InfoPlist.strings 파일이 프로젝트에 추가되어 있어야 해요. 파일만 폴더에 있다고 적용되지 않아요.
  • 기기의 언어 설정이 해당 언어로 되어 있는지 확인해 보세요!
  •  

🙌 마무리하며

이제 Flutter로 만든 iOS 앱에서도 Info.plist에 있는 메시지를 다국어로 번역할 수 있어요!
처음에는 구조가 조금 헷갈릴 수 있지만, 한 번만 해보면 다음부터는 금방 익숙해질 거예요.

글로벌 유저를 대상으로 앱을 출시하고 싶다면, 이런 작은 부분까지 신경 쓰는 게 중요하답니다 😄