[swift] Swift SkeletonView 다국어 지원

프로그래밍 언어: Swift

SkeletonView는 앱의 로딩 상황을 시각적으로 보여주는 라이브러리입니다. 그러나 기본적으로 영어로 제공되는데, 이를 다국어로 지원하는 방법을 알아보겠습니다.

다국어 파일 추가

  1. 프로젝트 내에 Localizable.strings 파일을 추가합니다.
  2. 다국어 파일을 추가하기 위해 Project settings로 이동합니다.
  3. Localizations 섹션에서 원하는 언어를 추가합니다.
  4. 추가한 언어에 대한 Localizable.strings 파일을 생성합니다.

SkeletonView의 다국어 처리

  1. Localizable.strings 파일을 열고 SkeletonView에서 사용되는 텍스트를 지정합니다.

    /* Localized strings for SkeletonView */
    "loadingText" = "로딩 중...";
    "retryText" = "재시도";
    /* Add other SkeletonView strings as necessary */
    
  2. SkeletonView가 사용되는 화면에서 해당 텍스트를 로드하고 설정합니다.

    // 다국어 문자열 가져오기
    let loadingText = NSLocalizedString("loadingText", comment: "")
    let retryText = NSLocalizedString("retryText", comment: "")
    
    // SkeletonView 사용 예시
    let skeletonView = UIView()
    skeletonView.showSkeletonAnimation(text: loadingText, detailText: retryText)
    
    // Add other SkeletonView strings as necessary
    

언어 변경을 통한 텍스트 업데이트

  1. 언어 변경 시, 해당 화면에서 SkeletonView의 텍스트를 업데이트 하도록 합니다.

    override func viewDidLoad() {
        super.viewDidLoad()
        NotificationCenter.default.addObserver(self, selector: #selector(languageDidChanged), name: NSLocale.currentLocaleDidChangeNotification, object: nil)
    }
    
    @objc func languageDidChanged() {
        guard let loadingText = NSLocalizedString("loadingText", comment: "") else { return }
        guard let retryText = NSLocalizedString("retryText", comment: "") else { return }
    
        skeletonView.updateText(text: loadingText, detailText: retryText)
        // Update other SkeletonView strings as necessary
    }
    
    deinit {
        NotificationCenter.default.removeObserver(self)
    }
    

참고 자료