2017-09-27 1 views
-1

선생님.스위프트 3의 언어 설정에 실패했습니다.

다국어 지원 앱을 만들려고합니다. zh-Hant, en, jp와 같은 약어를 사용하여 사용자 기본값으로 저장합니다. 앱의 언어를 변경하십시오. 텍스트 필드의 자리 표시자를 예로 들어 컬렉션보기 항목을 클릭하면 텍스트 필드의 자리 표시 자 텍스트가 변경됩니다. 그러나, 나는 이것을 할 수 없다. 시뮬레이터 언어는 기본적 여기

영어입니다 내 작품 진행 :

현지화 파일 : 일본 (JP)

"User Email"; = "ユーザーメール"; 

텍스트 설정 방법

let lcode : String = self.langList[indexPath.item].code 
    print("You selected cell #\(indexPath.item) and code : \(lcode)") 
    UserDefaults.standard.setValue(lcode, forKey: "lang") 
    txtUsername.placeholder = "User Email".localized(lang: lcode) 

문자열 exntension

extension String { 

    func localized(lang:String) ->String { 

     if let path = Bundle.main.path(forResource: lang, ofType: "lproj") { 
      if let bundle = Bundle(path: path) { 
       return NSLocalizedString(self, tableName: nil, bundle: bundle, value: "", comment: "") 
      } 
     } 

     return ""; 
    } 
+0

앱의 언어는 앱 자체에서가 아니라 기기에서 변경되는 것입니다. 현지화 된 문자열을 보려면 장치 설정에서 언어를 변경하십시오. – matt

+0

어떻게 런타임에 응용 프로그램 언어를 변경해야합니까? –

답변

0

앱의 언어는 기기 언어에 따라 다릅니다. 현지화 된 문자열을 테스트하려면 장치 언어를 변경하십시오. 그렇지 않으면 을 권장하지 않지만 ViewController에 UserDefaults.standard.set("zh", forKey: "AppleLanguages")을 추가하여 런타임에 앱 언어를 변경할 수 있습니다. 하지만 언어 변경 사항을 보려면 앱을 다시 시작해야합니다.

관련 문제