[swift] Swift PromiseKit를 활용한 앱의 다국어 지원 방법

앱 개발에서 다국어 지원은 매우 중요한 요소입니다. 사용자들이 앱을 사용할 때 자신의 언어로 콘텐츠를 보는 것은 사용자 경험을 향상시키기 위해서 꼭 해야 하는 작업입니다. 이번 블로그 포스트에서는 Swift PromiseKit를 사용하여 앱의 다국어 지원 방법에 대해 알아보겠습니다.

1. Localizable 파일 준비

첫 번째 단계는 앱의 로컬 라이징을 위한 Localizable 파일을 준비하는 것입니다. 이 파일은 각 언어별로 번역된 콘텐츠를 담고 있는 텍스트 파일입니다.

Localizable 파일을 프로젝트에 추가하려면 다음 단계를 따르세요.

  1. Xcode에서 프로젝트 네비게이터에서 프로젝트를 선택합니다.
  2. 프로젝트 세부 정보 설정으로 이동합니다.
  3. ‘Localizations’ 섹션에서 체크 박스를 사용하여 지원할 언어를 선택합니다.
  4. 선택한 언어에 따라 .strings 파일이 생성됩니다. 이 파일에 번역된 콘텐츠를 추가합니다.

2. PromiseKit로 로컬라이징 지원

PromiseKit는 비동기 작업의 순차적 실행을 편리하게 해주는 라이브러리입니다. 이를 사용하여 앱의 다국어 지원을 구현할 수 있습니다.

다음 예제 코드는 PromiseKit를 사용하여 로컬라이징을 구현하는 방법을 보여줍니다.

import PromiseKit

func localizeString(key: String) -> Promise<String> {
    return Promise { seal in
        let localizedString = NSLocalizedString(key, comment: "")
        seal.fulfill(localizedString)
    }
}

let localizedTitle = firstly {
    localizeString(key: "app_title")
}.done { title in
    // 로컬라이즈된 타이틀 사용
    print("Localized Title: \(title)")
}.catch { error in
    // 로컬라이징 에러 핸들링
    print(error.localizedDescription)
}

위 코드는 localizeString 함수를 사용하여 NSLocalizedString 함수를 호출하는 비동기 작업을 Promise로 감싸 줍니다. 이렇게 함으로써 비동기 작업을 순차적으로 실행할 수 있습니다.

localizeString 함수에서는 NSLocalizedString 함수를 통해 Localizable 파일에서 적절한 번역된 텍스트를 가져옵니다. 그리고 Promiseseal을 통해 작업이 완료되었음을 알립니다.

localizedTitlefirstly 함수를 사용하여 비동기 작업을 실행하고, done 블록에서 로컬라이즈된 타이틀을 사용하고 에러를 처리하기 위해 catch 블록을 사용합니다.

3. 앱에서 로컬라이즈된 텍스트 사용

위의 예제에서 로컬라이징된 텍스트는 localizedTitle으로 사용되었습니다. 이와 같이 다국어 지원이 필요한 모든 텍스트에 대해 위와 같은 방식으로 작업을 수행하면 됩니다.

다음은 로컬라이즈된 텍스트를 사용하는 예제입니다.

localizedTitle.done { title in
    self.titleLabel.text = title
}

해당 예제에서는 done 블록에서 받은 로컬라이즈된 텍스트를 UI 요소에 할당하고 있습니다.

마무리

이번 포스트에서는 Swift PromiseKit를 사용하여 앱의 다국어 지원 방법에 대해 알아보았습니다. PromiseKit은 비동기 작업을 수행하고 결과를 순차적으로 처리하는데 매우 편리한 도구입니다. 이를 활용하여 앱의 다국어 지원 작업을 간편하게 구현할 수 있습니다.

더 자세한 내용을 원하시면 PromiseKit 공식 문서를 참고하시기 바랍니다.