본문 바로가기
IT공부/IOS개발

IOS공부 _ Localization ! 로컬라이징, Localizable (part3) 및 xcode사용 팁

by 놀고싶은 노자 2021. 3. 7.

part2에 이어서 계속해서 진행해 보도록 하겠습니다. 

 

1. MainStroyBoard.xib에 들어가면 휴대폰 화면이 나오게 됩니다. 

거기에서 

Tip) 우측 상단의 빨간 원으로 표시된 위치에 

와 같은 버튼을 클릭하면 항목 중에 Assistant를 클릭하면 해당 view와 연결된 swift파일을 보여줍니다.!! 

 

 

 

+ 버튼을 클릭하여 Label을 좌클릭해서 휴대폰 모양에 끌어 옮겨줍니다. 

아래의 버튼을 클릭해서 라벨의 제약조건을 수직, 수평 중간으로 제약조건을 걸어줍니다. 

글자의 크기를 여기서 조정할 수 있습니다. 

이렇게 하면, 해당 글자가 출력되는 앱이 만들어졌습니다. !! 

 

하지만, 우리는 지금 로컬라이징을 하려고 하기 때문에 여기서 끝나지 않습니다.

우선 localizable의 eng와 kor에 들어가 다음과 같이 작성해 봅니다.!!

 각각의 파일에

"Hello" = "(Eng) Hello";

"Hello" = "안녕하세요";

를 적어 주었는데요 

이는 Hello를 우측에 적어둔 글자로 바꾸겠다고 선언한 것입니다. 

여기서 중요한 것은 ';'를 빼먹으면 안 된다는 것입니다. 

 

여기서 모든 것이 끝나면 좋겠지만, 아직 해야 할 일이 남아있습니다. 

ViewController파일에 다음과 같이 작성해 주어야 하는데요!! 

그전에 위의 상단에 helloLabel이라는 변수가 있습니다. 

이는 메인보드에서 만들었던 라벨을 이어놓은 것으로, 해당 라벨에 속성을 부여하기 위해 선언한 것입니다. 

이렇게 연결을 하는 것은 선언만으로 끝나는 것이 아니라 

메인보드의 라벨을 뷰 컨트롤러의 변수에 직접 연결을 해주어야 하는데요!! 

Control (^) 키를 누르면서 변수에 연결을 해주면 하얀 동그라미가 채워지면서 연결이 되었음을 알려줍니다. 

그 이후 

helloLabel.text (helloLabel의 텍스트)를 NSLocalizedString("Hello", comment: "")로 입력해 줍니다. 

이렇게 하면 

해당 라벨을 Hello로 인식하고, Hello에 대한 로컬라이즈 한 표현이 출력되게 됩니다. 

시뮬레이터를 켜서 확인을 하면 이렇게 됩니다. 

 

언어 설정 : 영어
언어 설정 : 한국

저 한 문구만 추가해주면 이렇게 로컬라이징이 가능해집니다.

 

다른 방법도 하나가 있는데요

 이렇게 extension을 활용하여 텍스트에 영향을 끼치는 방법인데요. 

이 방법의 경우에는 위에서와 같이 라벨을 컨트롤러에 엮을. 필요가 없습니다. 

그러면 어떻게 알고 텍스트를 로컬라이징 하냐고요? 

 

바로 localizedKey를 활용하는 것입니다. 

저렇게 UIlabel에 extension을 주고 나면 label의 속성에 localizedKey가 추가된 것을 확인할 수 있습니다. 

명확히 구분하기 위해 

localizedKey의 값을 "Hello1"로 바꾸고

localizable의 파일에 있는 Hello를 Hello1로 바꾸어 보겠습니다. 

이렇게 바꾸고 실행을 하면 

좀 전과 같이 로컬라이징이 되어 글자가 변형되어 나오게 됩니다. 

즉, localizedKey 속성을 추가해서 해당 키값으로 로컬라이징을 한다고 보면 됩니다. 

 

이렇게 로컬라이징 하는 두 가지의 방법을 알아보았습니다.

아직 미숙하지만,

도움이 되길 바라겠습니다.

끝!