Programing

iOS info.plist 파일에서 문자열을 현지화하는 방법은 무엇입니까?

lottogame 2020. 4. 15. 10:24
반응형

iOS info.plist 파일에서 문자열을 현지화하는 방법은 무엇입니까?


아시다시피 iOS 8 에는 사용자 위치를 사용하기 위해 NSLocationWhenInUseUsageDescription가 필요합니다 . 이 키와 일반적인 정보를 정보 plist에 추가했습니다.여기에 이미지 설명을 입력하십시오

plist 파일에서 번역 문자열을 어떻게 사용합니까?

-업데이트-

지역화 가능한 문자열이 이미 있습니다. plist 문자열 내에서 NSLocalizedString (MYSTRING, nil)과 같은 것을 사용할 수 있는지 궁금합니다. 현지화를 위해 info.plist의 여러 파일을 만들 수 있지만 더 쉬운 방법이 있는지 궁금합니다.


InfoPlist.strings파일을 사용 하여의 값을 현지화 해야합니다 Info.plist. 이렇게하려면로 이동하여의 아래를 File->New->File선택 Strings File하고 이름을 지정한 다음 생성하십시오. 다음과 같이 현지화하려는 값을 열고 삽입하십시오 .ResourceiOSInfoPlistInfo.plist

NSLocationWhenInUseUsageDescription = "Description of this";

이제 InfoPlist.strings번역으로 파일을 현지화 할 수 있습니다 . 행운을 빕니다!

편집하다:

현지화 옵션을 선택하거나 필요한 경우 현지화를 활성화하십시오.

오른쪽 편집기

왼쪽 편집기에서도 파일을 볼 수 있어야합니다.

왼쪽 편집기

편집하다:

Info.plist키 현지화에 대한 공식 문서는 다음과 같습니다 .


위의 모든 내용이 저에게는 효과가 없었으므로 (XCode 7.3) Apple의 방법에 대한 참조를 읽었으며 위에서 설명한 것보다 훨씬 간단합니다. 애플에 따르면 :

현지화 된 값은 Info.plist 파일 자체에 저장되지 않습니다. 대신 특정 지역화 값을 InfoPlist.strings라는 이름의 문자열 파일에 저장합니다. 이 파일은 동일한 지역화를 위해 다른 리소스를 저장하는 데 사용하는 것과 같은 언어 별 프로젝트 디렉토리에 배치합니다.

따라서 InfoPlist.strings 라는 문자열 파일을 만들어 "xx"언어의 xx.lproj 폴더에 배치 한 다음 File-> Add Files to ...를 사용하여 프로젝트에 추가했습니다. 그게 다야. "현지화 된 자원을 혼합 할 수 있습니다"키 = YES가 필요하지 않으며 base.lproj 또는 en.lproj에 InfoPlist.string이 필요하지 않습니다.

응용 프로그램은 Info.plist 키-값을 언어 별 파일에서 키를 찾을 수없는 경우 기본값으로 사용합니다. 따라서 영어 값을 Info.plist 파일에, 번역 된 값을 언어 별 파일에 넣고 테스트하여 모든 것이 작동합니다.

특히, InfoPlist.strings (base.lproj, en.lroj 및 xx.lproj에 파일 버전을 작성 함)를 현지화 할 필요가 없으며 제 경우에는 작동하지 않습니다.


무언가가 작동하지 않으면 다음을 추가했는지 확인하십시오.

"현지화 된 자원을 혼합 할 수 있습니다"= 예

info.plist에. 필자의 경우 InfoPlist.strings 파일은 무시되었습니다.


Apple 안내서를 읽고 여기에 나열된 WWDC 자료를 보는 것이 좋습니다. 국제화 및 현지화 주제

구체적으로 질문에 대답하기 위해 프로젝트에 새 언어를 추가하면 여기에 이미지 설명을 입력하십시오포함 할 InfoPlist 파일을 선택할 수 있습니다 (대상이 여러 개인 경우 Info plist 파일이 여러 개 있음). 다음 화면을 보려면 현지화 아래의 +를 누르고 지원을 추가 할 새 언어를 선택하십시오.여기에 이미지 설명을 입력하십시오

추가 한 후에는 주어진 언어에 적합한 lproj 디렉토리에 필요한 문자열 파일을 작성합니다.

--편집하다--

분명히하기 위해 iOS는 plist 항목의 키를 현지화 된 문자열 파일의 키로 사용하여 사용자가 현재 선택한 언어에 따라 Plist 파일의 문자열을 교체합니다.


  1. iOS 시뮬레이터는 기본적으로 시스템 언어를 이용합니다. 번역을 테스트하려면 iOS 시뮬레이터 설정에서 언어 및 지역을 변경하십시오.

  2. 현지화 문자열 ( 여기에서 Apple 문서 참조 )은

    NSLocationWhenInUseUsageDescription = "Description of this";
    

    (따옴표 "...")

    "NSLocationWhenInUseUsageDescription" = "Description of this";
    

Xcode 9와 같이 현지화를 추가하려고 할 때 info.plist의 문제가 발생하지 않는 사람

info.plist를 localiazble로 설정하고 아래 그림과 같이 파일 관리자에서 localize 버튼을 클릭하십시오.

그러면 새 현지화를 추가 할 때 info.plist가 파일 리소스에 포함됩니다.

여기에 이미지 설명을 입력하십시오


RGML에서 알 수 있듯이 InfoPlist.strings를 작성하고 현지화 한 다음 키와 값을 다음과 같이 추가 할 수 있습니다. "NSLocationWhenInUseUsageDescription"= "도움이 필요합니다!";

지정된 언어의 info.plist에 키가 추가됩니다.


단계별 Info.plist 현지화 :

  1. x-code에서 Resources 폴더 (루트에 위치)를 찾으십시오.
  2. Resources 폴더를 선택하십시오
  3. 그런 다음 주 메뉴 File-> New-> File ...을 누르십시오.
  4. "자원"문자열 파일 섹션을 선택하고 다음을 누르십시오.
  5. 그런 다음 다른 이름으로 저장 필드에 InfoPlist 만 작성하십시오 ( "I"자본 및 "P"자본)
  6. 그런 다음 만들기를 누릅니다
  7. 그런 다음 Resources 폴더에 생성 된 InfoPlist.strings 파일을 선택하고 오른쪽 메뉴에서 "Localize"버튼을 누릅니다.
  8. 그런 다음 프로젝트 네비게이터에서 프로젝트를 선택하고 프로젝트의 프로젝트 목록을 선택하십시오.
  9. 하단의 정보 탭에서 원하는 언어를 사용할 수 있습니다 (현지화 섹션에 있음)
  10. 리소스 폴더에서 볼 수있는 언어
  11. To localize the values ("key") from info.plist file you can open with a text editor and get all the keys you want to localize
  12. You write any key as the example in any InfoPlist.strings like the above example

"NSLocationAlwaysAndWhenInUseUsageDescription"="blabla";

"NSLocationAlwaysUsageDescription"="blabla2";

That's all work and you have localize your info.plist file!


In my case everything was set up correctly but still the InfoPlist.strings file was not found.

The only thing that really worked was, to remove and add the InfoPlist.strings files again to the project.


필자의 경우 현지화가 작동하지 않아 이름에 '-'기호가 표시되었습니다. 예 : "aero-Info.plist"및 현지화 된 파일 : "aero-InfoPlist.strings"및 "aeroInfoPlist.strings"가 작동하지 않았습니다.

참고 URL : https://stackoverflow.com/questions/25736700/how-to-localise-a-string-inside-the-ios-info-plist-file

반응형