iOS info.plist 파일 내의 문자열을 현지화하려면 어떻게 해야 합니까?
아시다시피 iOS 8에는 NSLocation이 필요합니다.사용자의 위치를 사용하기 위한 WhenInUseUsageDescription 키.이 키와 일반적인 정보를 정보 목록에 추가했습니다.
plist 파일 내에서 번역 문자열을 사용하려면 어떻게 해야 합니까?
-- 갱신 --
로컬화 가능한 문자열이 이미 있습니다.그냥 궁금해서 그러는데 NSLocalized String(MYSTRING,nil) 같은 걸 plist string 안에 써도 될까요?현지화를 위해 info.plist 파일을 여러 개 만들 수 있다는 것은 알고 있습니다만, 더 쉬운 방법이 없을까 생각하고 있습니다.
하면 됩니다.InfoPlist.strings
양쪽 모두 )I
&P
(Info.plist
를하려면 을 참조해 File->New->File
를 선택합니다.Strings File
아래Resource
의 탭iOS
을 붙여주세요InfoPlist
.Info.plist
하다
NSLocationWhenInUseUsageDescription = "Description of this";
를 할 수 있습니다.InfoPlist.strings
역역파파 작작작작
현지화 옵션을 선택하거나 필요에 따라 현지화를 활성화합니다.
왼쪽 에디터에서도 파일을 볼 수 있습니다.
메모: 시뮬레이터에서 현지화를 테스트할 때Xcode 타겟의 언어뿐만 아니라 시뮬레이터 자체의 언어도 변경해야 합니다.(John Webb에 대한 크레딧)
여기 의 공식 문서가 있습니다.Info.plist
키 현지화
마르코★, 이 답변에 사진을 포함시켜 주셔서 감사합니다!
위의 모든 것이 나에게 효과가 없었기 때문에(XCode 7.3), Apple의 조작 방법에 관한 레퍼런스를 읽었는데, 위에서 설명한 것보다 훨씬 심플합니다.Apple에 따르면:
현지화된 값은 Info.plist 파일 자체에 저장되지 않습니다.대신 특정 현지화 값을 InfoPlist.strings라는 이름의 문자열 파일에 저장합니다.이 파일은 동일한 현지화에 대한 다른 리소스를 저장하는 데 사용하는 언어별 프로젝트 디렉터리에 배치합니다.
따라서 저는 InfoPlist.strings라는 이름의 문자열 파일을 작성하여 xx.lproj 폴더에 "xx" 언어의 폴더에 넣었습니다(그리고 File-> Add Files to ...을 사용하여 프로젝트에 추가).바로 그겁니다."Localized resources can be mixed" = YES, base.lproj 또는 en.lproj에 InfoPlist.strings가 필요 없습니다.
언어 고유의 파일에서 키를 찾을 수 없는 경우 응용 프로그램은 Info.plist 키 값을 기본값으로 사용합니다.따라서 저는 영어 값을 Info.plist 파일에 입력하고 번역된 값을 언어별 파일에 입력해 테스트했습니다.
특히 InfoPlist.strings(base.lproj, en.lroj 및 xx.lproj에 파일 버전을 작성함)를 현지화할 필요가 없습니다.이러한 방법은 동작하지 않습니다.
단계별로 현지화 Info.plist:
- Xcode에서 폴더 리소스 찾기(루트에 위치)
- [ Resources ]폴더를 선택합니다.
- 그런 다음 메인 메뉴인 [파일]-> [새로 만들기]-> [파일...]를 누릅니다.
- "Resource" Strings File 섹션에서 선택하고 Next를 누릅니다.
- ㅇㅇㅇㅇ에서
Save As
필드 쓰기 InfoPlist ONLY ("I" (눈) 대문자 및 "P" 대문자 - P 뒤의 l (ell)은 대문자일 수 없습니다) - 그런 다음 Create를 누릅니다.
- 그런 다음 Resources 폴더에서 작성한 InfoPlist.strings 파일을 선택하고 오른쪽 메뉴에서 Localize(로컬라이즈
- 그런 다음 프로젝트 탐색기에서 프로젝트를 선택하고 프로젝트 목록에서 프로젝트를 선택합니다.
- 하단의 [Info]탭에서는 원하는 수만큼 언어를 사용할 수 있습니다([Localizations]섹션에 기재되어 있습니다).
- 리소스 폴더에 표시되는 언어
- info.plist 파일에서 값("키")을 현지화하려면 텍스트 편집기로 열고 현지화할 모든 키를 가져옵니다.
- 위의 예시와 같이 임의의 InfoPlist.string에 예시로 임의의 키를 씁니다.
NSLocation항시InUseUsageDescription"="blabla"일 때;
NSLocationAlways Usage Description"="blabla2";
여기까지가 작업입니다.info.plist 파일을 현지화했습니다.
팁들
iOS Simulator는 기본적으로 시스템 언어를 악용합니다.번역을 테스트하려면 iOS Simulator Setting(iOS 시뮬레이터 설정)에서 언어(및 지역)도 변경하십시오.
현지화 문자열(여기 Apple 문서 참조)은 다음과 같습니다.
NSLocationWhenInUseUsageDescription = "Description of this";
(따옴표 "..." 포함)가 아닙니다.
"NSLocationWhenInUseUsageDescription" = "Description of this";
정상적으로 동작하지 않는 경우는, 다음과 같이 추가합니다.
"로컬화된 리소스를 혼재시킬 수 있습니다." = 예
info.plist로 이동합니다.제 경우 InfoPlist.strings 파일은 무시되었습니다.
Apple의 가이드를 읽고, 다음의 WWDC 자원을 참조하는 것을 강하게 추천합니다.국제화와 현지화 토픽
에 대한 을 드리자면 할 때포함할 InfoPlist 파일을 선택할 수 있습니다(타깃이 여러 개인 경우 여러 개의 Info plist 파일이 있습니다).다음 화면을 표시하려면 Localizations(로컬라이제이션) 아래의 +를 누르고 지원을 추가할 새 언어를 선택하면 됩니다.
추가한 후에는 해당 언어에 적합한 lproj 디렉토리에 필요한 문자열 파일이 생성됩니다.
--편집--
확실히 하기 위해 iOS는 사용자의 현재 선택된 언어에 따라 Plist 파일의 문자열을 현지화된 문자열 파일의 키로 교환합니다.
새로운 XCode 12 / 13 /...
1. 만듭니다.InfoPlist.string
일일에파
2. 파일을 선택하면 오른쪽 사이드바 옵션 "Localize"가 표시됩니다.
3. 프로젝트의 [Info]> [ Localizations ]에 언어를 추가하고 싶은 경우
추가한 새로운 언어의 "InfoPlist.string" 복사본이 자동으로 생성됩니다.
승인된 답변 외에 (프로젝트는 Flutter에 있지만 기본적으로 네이티브와 동일합니다)
폴더는 .Base.lproj
,en.lproj
,xx.kproj.
을 포함한 InfoPlist.strings
각각에 대해서요.이 파일에는 다음과 같은 행이 있습니다(키 주위에 따옴표가 없고 끝에는 세미콜론이 있습니다).
NSLocationWhenInUseUsageDescription = "My explanation why I need this";
[프로젝트(Your Project)]> [정보(Info)]에서 언어가 설정되어 있는지 확인합니다.
「」를 .project.pbxproj
XXX.xcodeproj/project.pbxproj 。en, fr 등 en, fr을 쓰다
하지만 그때도 소용없었다.아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아,아, 아, 아, 아, 아, 아, 아.CFBundleLocalizations
를 누르다Info.plist
(- )Info.plist
file >As -> Code) 코드인지 를 들어, 「 - > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > fr
French
syslog.
<key>CFBundleLocalizations</key>
<array>
<string>en</string>
<string>ru</string>
<string>lv</string>
</array>
또한 장치가 테스트 중인 언어로 설정되어 있는지 다시 확인하십시오.건배.
추신: "개발 언어"는 문제에 영향을 주지 않습니다. 굳이 변경하지 마십시오.
Xcode 9와 같이 현지화를 추가할 때 info.plist가 포함되지 않는 문제를 겪고 있는 모든 사용자에게 적합합니다.
다음과 같이 info.plist localiazble로 이동하여 파일인스펙터의 localize 버튼을 클릭하여 info.plist localiazble을 작성해야 합니다.
그런 다음 info.plist가 파일리소스에 포함되어 새로운 Localizations를 추가할 수 있습니다.
RGML에서 설명한 바와 같이 InfoPlist.strings를 생성하여 현지화한 후 키와 다음과 같은 값을 추가할 수 있습니다.NSLocationInUseUsageDescription" = "찾기 도움말!" ,
지정된 언어의 info.plist에 키가 추가됩니다.
사용시InfoPlist.strings
파일(XCode에서는 파일 옆에 배치해야 합니다).Info.plist
file - 실제 파일 위치는 프로젝트 내 어디에나 있을 수 있습니다.
) 변환에는 키의 단축명을 사용하는 것에 주의해 주세요.
내가 쓰려고 했는데Privacy - Camera Usage Description
단, 동작하는 키는NSCameraUsageDescription
제 경우 모든 것이 올바르게 설정되었지만 InfoPlist.strings 파일은 찾을 수 없었습니다.
유일하게 효과가 있었던 것은 InfoPlist.strings 파일을 삭제하고 프로젝트에 다시 추가하는 것이었습니다.
제 경우 이름에 '-' 기호가 있어서 현지화가 되지 않았습니다.예: "aero-Info.plist" 및 현지화된 파일: "aero-InfoPlist.strings" 및 "aeroInfoPlist.strings"는 작동하지 않았습니다.
iOS 현지화 .plist
키의 정의는 생략할 수 있습니다..plist
에 넣으면InfoPlist.string
.plist
InfoPlist.string
"NSPhotoLibraryAddUsageDescription" = "You need to allow access to the photo library to download image";
언급URL : https://stackoverflow.com/questions/25736700/how-to-localise-a-string-inside-the-ios-info-plist-file
'bestsource' 카테고리의 다른 글
VBA(Excel) 오류의 적절한 처리 (0) | 2023.04.09 |
---|---|
WPF 라운드 코너 컨테이너를 작성하려면 어떻게 해야 합니까? (0) | 2023.04.09 |
프리태그에 텍스트를 줄 바꿈하려면 어떻게 해야 합니까? (0) | 2023.04.09 |
Powershell 명령어를 병렬로 실행할 수 있습니까? (0) | 2023.04.09 |
지정된 커밋을 포함하는 브랜치를 나열하려면 어떻게 해야 합니까? (0) | 2023.04.09 |