2017-12-02 5 views
0

앱을 처음 시작할 때 다른 언어를 기본값으로 설정하고 싶습니다. iOS에는이 언어가 인터페이스 언어로되어 있지 않으므로 수동으로 설정하는 것이 유일한 방법입니다. 저는 수십 가지 솔루션을 찾았습니다. 작동하는 솔루션은 시뮬레이터에서만 작동하며 실제 장치에서는 작동하지 않습니다. 여기에 내가 무엇을 시도했다입니다 : 모든iOS/Swift에서 앱을 처음 시작하기 전에 기본 언어를 설정하십시오.

첫째, 응용 프로그램의 언어를 설정하는 방법은 다음과 같습니다

UserDefaults.standard.set(["xx-XX", "yy-YY"], forKey: "AppleLanguages") 

것은이 다시 시작되는 응용 프로그램을 필요로한다, 동안 난에 원하는 앱이 처음 시작될 때 설정하십시오. 나는 또한 시도했다 :

UserDefaults.standard.register(defaults: ["AppleLanguages": ["xx-XX", "yy-YY"]]) 

그리고 대부분의 경우에 전혀 호출 할 필요가없는 UserDefaults.standard.synchronize()을 호출했다.

그리고 장소는이 코드 퍼팅 시도했다 :

  1. 응용 프로그램 (: didFinishLaunchingWithOptions :
  2. 응용 프로그램 초기화를 : |
  3. 서브 클래스 UIApplication, main.swift 생성 및 최상위 문

같은 코드 위 info.plist에 추가 :

  1. xx-XX
  2. Localizations의 첫 번째 요소를 설정 xx-XX
  3. Localization native development region 설정

그런데 맞춤 현지화를 구현하는 것은 현재 시점에서 옵션이 아닙니다.

가장 혼란스러워하는 부분은 왜 그런 기능이 실제 장치가 아닌 시뮬레이터에서 작동하는지입니다.

편집 : 나는 심지어 기본 영어 (English)를 삭제하고, 그 옆에는 Development Language 레이블이 없었다, 그래서 다시 English (World)를 추가. 아직도 작동하지 않았다.

답변

0

글쎄, 단 하나의 합법적 인 방법이 없었다. 그래서 나는 더러운 트릭을 써야했다.

  1. 우리가 창조의 과정에서 enter image description here
  2. (이 경우 fr에서) 사용하지 않는 언어는되도록 참조 언어로서 영어 (내 문제로 YY-YY)를 (선택 추가 나는이 시점에서 enter image description here

) 다시 어떤 번역/현지화 할 필요가 없습니다 것) FA-IR, 내 개발 언어에 쫓겨,이 경우 XX-XX (내 기본이었다. 나머지는 사용자가 기본값 인 AppleLanguages으로 설정하면됩니다.

다시 말하지만,이 방법이 최선의 방법은 아니며, 개발 초기 단계 인 경우 앱을 현지화하는 맞춤 구현 방법을 사용하거나 L10n-Swift을 사용하십시오. 물론 iOS가 사용자가 선택한 기기 로캘을 기반으로 선택하는 항목을 고수 할 수없는 경우 물론입니다.

옆에있는 시작 정지 버튼 당신이 "프로젝트 이름"를 눌러하실 수 있습니다에서 엑스 코드에
0

-> 편집 계획 ... -> 실행 -> 옵션 변경

enter image description here

응용 프로그램 언어에서