2016-08-04 1 views
0

cocoapods 1.0.0.beta1의 changes은 "Base Internationalization - Base.lproj/Main.xib 및 en.lproj/Main.strings을 사용하는 지역화 된 인터페이스 파일 (XIB, Storyboard)은 Main.xib "및 cocoapods 1.0.0.beta.1까지"Base Internationalization을 사용할 때 변형 그룹에 XIB 또는 Storyboard 이름을 사용하는 특수 사례 인터페이스 파일 "포드하는 방법 xcode 프로젝트 구조로 현지화 된 인터페이스 파일 (XIB, 스토리 보드) 및 국제화 작업을 수행 하시겠습니까?

demo을 참조하고 resource_bundles를 사용하여 내 리소스를 내 podspec에 구성하십시오.

s.resource_bundles = { 
    'Resources' => ['LocalizationDemo/LocalizationDemo/Resources/**/*.{lproj,storyboard}'] 
} 

내 cocoapods 버전

1.0.1하지만 디렉토리 결과 그것은 내가 기대하고 인터페이스의 국제화가 작동하지 않습니다하지 결과 디렉토리의

-Resources 
--en.lproj 
---LocalizationDemo.strings 
--LocalizationDemo.storyboard 
--de.lproj 
---LocalizationDemo.strings 

입니다. 정확한 사용법이나 데모를 보여줄 사람이 있습니까?

ADD : xcode로 가져 오기/내보내기 현지화를 사용하여 다른 프로젝트에 추가하십시오. IBOutlet 또는 UI 컨트롤에 대한 하위 클래스를 추가하는 대신 직접 가져온 xliff 파일에서 작업 할 수 있기를 바랍니다.

+0

http://stackoverflow.com/questions/38716367/how -do-i-change-the-localizable-string-app-appatically-in-swift/38716404 # 38716404 –

+0

@ PoojaM.Bohora. 답장을 보내 주셔서 감사합니다. 그러나 그것은 나에게 도움이되지 않습니다. –

답변

0
당신은 다음과 같이 각각의 컨트롤 형식에 대한 클래스를 지정 XIB OR Storyboard Views &에 사용하여 controls에 대한 클래스를 작성해야

-

class LocalizedTextField: UITextField { 

    override func drawPlaceholderInRect(rect: CGRect) { 

     let localizedPlaceHolder = self.placeholder!.localized 
     self.placeholder = localizedPlaceHolder 
     super.drawPlaceholderInRect(rect) 
    } 
} 
class LocalizedLabel : UILabel { 
    override func awakeFromNib() { 
     if let text = text { 
      self.text = text.localized 
      self.bounds.size.width = CGFloat.max 
      self.sizeToFit() 
     } 
    } 
} 

class LocalizedButton : UIButton { 
    override func awakeFromNib() { 
     for state in [UIControlState.Normal, UIControlState.Highlighted, UIControlState.Selected, UIControlState.Disabled, UIControlState.Focused] { 
      if let title = titleForState(state) { 
       setTitle(title.localized, forState: state) 
      } 
     } 
    } 
} 

extension String { 

    var localized: String { 
     let localizedValue = NSLocalizedString(self, tableName: nil, bundle: NSBundle.mainBundle(), value: "", comment: "") 
     if localizedValue == "" { 

      return self 
     } 
     else 
     { 
      return localizedValue 
     } 
     return self 

    } 
} 

enter image description here

+0

xcode로 가져 오기/내보내기 현지화를 사용하여 다른 프로젝트에 추가하십시오. IBOutlet 또는 UI 컨트롤에 대한 하위 클래스를 추가하는 대신 직접 가져온 xliff 파일로 작업 할 수 있기를 바랍니다. –

관련 문제