티스토리 뷰

반응형

안녕하세요 Gons 입니다.

저번시간 다국어 설정 - 스토리보드 에 이어

이번에는 다국어 설정을 코드로 해보겠습니다.

 

 

 

 

 

 

파일을 추가해주세요.

 

 

 

 

 

 

string 파일을 선택해주세요.

 

 

 

 

 

 

이름은 Localizable 로 입력해주세요.

다른 이름은 안됩니다.

 

 

 

 

 

 

 

Localizable.string 파일을 선택해주세요.

 

 

 

 

 

우측에 Localize 버튼을 눌러주세요.

 

 

 

 

이런식으로 변할겁니다.

 

 

 

 

 

 

 

 

프로젝트 설정에서 언어를 추가해주세요.

 

 

 

 

 

기본값은 영어입니다.

한글을 추가해보겠습니다.

 

 

 

 

 

 

 

 

 

스토리보드들은 체크를 해제하고 스트링파일만 체크해주세요.

 

 

 

 

 

 

 

언어가 잘 추가됐는지 확인해주세요.

 

 

 

 

 

 

 

 

 

 

이제 Localizable 파일을 펼쳐보면 2가지 언어가 있을겁니다.

 

 

 

 

 

 

 

각 언어일 때 어떻게 표현할 건지 써줍니다.

; 세미콜론을 꼭 써줘야합니다.

 

 

 

 

 

 

 

이제 스토리보드에서 레이블을 하나 추가해주세요.

 

 

 

 

 

 

레이블을 아울렛 변수로 등록해주세요.

@IBOutlet var myLabel: UILabel!

 

 

 

NSLocalizedString 를 사용해서 Hello 라는 key 를 넣으면 각 언어에 맞게 설정해놓은 value 를 가져옵니다.

myLabel.text = NSLocalizedString("Hello", comment: "코멘트는 그냥 주석입니다.")

 

comment 는 그냥 주석입니다. "" 이렇게 써도 됩니다.

 

 

 

 

 

 

폰 언어에 설정된 대로 한글일 때 영어일 때 각각 잘 나오네요.

 

 

 

 

 

 

 

그리고 이렇게 string 파일에 있지 않은 key 값 "Hi" 를 써주면, 한국어든 영어든 그냥 Hi 로 나옵니다.

myLabel.text = NSLocalizedString("Hi", comment: "")

 

왼쪽부터 한국어일 때, 영어일 때

 

 

 

 

 

마지막으로 설정된 언어에 따라 문자열 포맷을 다르게 표현해보겠습니다.

 

%@ - string
%d - int
%f - float 
%ld - long 

 

포맷은 이런 종류가 있습니다.

 

 

 

 

문자열부터 한번 해볼게요. string 이 들어갈 자리에 %@ 를 써주세요.

 

 

 

 

 

 

String format 으로 Gons 를 써줍니다.

myLabel.text = String(format: NSLocalizedString("Welcome", comment: ""), "Gons")

 

 

 

 

잘 나오네요.

왼쪽부터 영어일 때, 한국어일 때

 

 

 

 

 

정수형도 한번 해보겠습니다. int 가 들어갈 자리에 %d 를 써주세요.

 

 

 

 

 

 

위와 같은 방식으로 정수를 넣어주세요.

myLabel.text = String(format: NSLocalizedString("Age", comment: ""), 20)

 

 

 

 

 

 

 

잘 나오네요.

왼쪽 한국어, 오른쪽 영어

 

 

 

 

 

 

 

끝입니다.

다음 글은 앱 언어를 앱 내에서 변경해보겠습니다.

감사합니다.

 

다음글 바로가기 -> 앱 안끄고 언어 변경

 

 

iOS Swift Xcode

반응형
댓글
300x250
반응형
최근에 올라온 글
최근에 달린 댓글
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Total
Today
Yesterday