[swift] R.swift를 이용한 로컬라이징 자동화

iOS 앱을 다국어 지원하기 위해서는 각 언어에 해당하는 문자열 리소스를 관리해야 합니다. 이를 위해 일반적으로 .strings 파일을 사용하고, NSLocalizedString 함수를 호출하여 로컬라이징을 처리합니다.

하지만 이러한 방식은 문자열 리소스의 이름을 직접 작성해야 하고, 오타가 생기거나 관리가 어려울 수 있습니다. 이를 위해 R.swift라는 라이브러리를 사용하여 로컬라이징을 좀 더 효율적으로 자동화할 수 있습니다.

R.swift 소개

R.swift는 코드 생성 기능을 제공하는 Swift 라이브러리로, 앱 내에서 사용되는 리소스들을 컴파일 타임에 체크하여 안전하게 사용할 수 있도록 도와줍니다.

R.swift 라이브러리를 프로젝트에 추가하면, 로컬라이징된 문자열 리소스를 사용할 때 명확하고 안전한 방법으로 접근할 수 있습니다. 또한 리소스의 이름을 오타 없이 사용할 수 있고, 리소스 이름이 변경되더라도 컴파일 단계에서 에러가 발생합니다.

R.swift를 이용한 로컬라이징 자동화

R.swift를 사용하여 로컬라이즈된 문자열 리소스를 자동화하는 방법은 다음과 같습니다:

  1. 프로젝트에 R.swift 라이브러리를 추가합니다. (CocoaPods, Swift Package Manager, Carthage 등을 사용하여 설치할 수 있습니다.)

  2. .strings 파일을 추가하고 각 언어에 해당하는 문자열을 작성합니다.

  3. R.generated.swift 파일을 생성하고 다음 코드를 추가합니다:

import Rswift

extension R.string {
    // 로컬라이즈된 문자열 리소스를 사용하기 위한 속성들을 선언합니다.
    static let hello = R.string.localizable.hello()
    static let welcome = R.string.localizable.welcome()
    // 추가적인 로컬라이즈된 문자열 리소스를 선언합니다.
    // ...
}
  1. 이제 로컬라이즈된 문자열 리소스를 사용할 수 있습니다:
// hello 문자열 리소스 호출
label.text = R.string.hello

// welcome 문자열 리소스 호출
button.setTitle(R.string.welcome, for: .normal)

이렇게 R.swift를 이용하여 로컬라이징 자동화를 처리하면, 문자열 리소스의 이름을 직접 작성하지 않고도 간편하게 사용할 수 있습니다. 또한 오타나 이름 변경과 같은 에러도 컴파일 단계에서 확인할 수 있어 안전한 개발을 도와줍니다.

결론

R.swift를 이용하면 iOS 앱의 로컬라이징 작업을 보다 효율적으로 처리할 수 있습니다. 문자열 리소스의 이름을 오타 없이 사용하고, 강력한 타입 체크를 통해 안정성을 도모할 수 있습니다. R.swift를 활용하여 다국어 지원에 대한 작업을 간소화해 보세요!


참고 자료: