3탄 - 다국어처리 (feat. 변수 사용할 때)

안녕하세요
오늘은 다국어처리를 할 때 변수를 사용해야할 때 사용할 수 있는 방법을 소개하려고 합니다.

저번에 했던 다국어 처리에서 조금만 변경해주면 됩니다.
다국어처리가 처음이시라면 [Localization 1탄]을 먼저 보셔야합니다!

저번에 key & value 형식으로 Strings 파일에 넣어 주었었죠!

이번에도 Strings 파일에 넣어줍니다.

저기 %@, %d에 변수가 들어가게 됩니다.

문자열 포맷에 맞게 넣어주어야 하는데요.
자주 사용하는 것들은 아래와 같습니다.

%@ -> String
%% -> Character
%d -> Int
%u -> Unsigned Int (UInt)
%f -> Double

더 자세하게 보시려면 아래 링크로 가시면 볼 수 있습니다!
[애플문서] String Format Specifiers

그리고 나서 적용을 시켜주면 됩니다

let text = "My Name is %@, I`m from %@, I`m %d years old."
let localizedString = String(format: text, arguments: ["hoBhak", "Korea", 19])
label.text = localizedString

저번처럼 extension으로 따로 분리해서 사용하겠습니다!

extension String {
    func localized(comment: String = "") -> String {
        return NSLocalizedString(self, comment: comment)
    }
    
    func localized(with arguments: [CVarArg] = [], comment: String = "") -> String {
        return String(format: self.localized(comment: comment), arguments: arguments)
    }
}

extension으로 분리하면 아래처럼도 사용할 수 있겠습니다.

let text = "My Name is %@, I`m from %@, I`m %d years old."
label.text = text.localized(with: ["hoBhak", "Korea", 19])

아래와 같이 나오게 됩니다~!

재밌는 Localization 3탄은 여기서 마치겠습니다!
감사합니다.

좋은 웹페이지 즐겨찾기