brunch

You can make anything
by writing

C.S.Lewis

by charian Dec 08. 2018

디자이너의 네이티브 앱 개발 도전기 #17

Localization #2

아내의 배려 덕분에 하루 종일 코딩하고 있다.

물론 어제. 그리고 내일도.


다국어를 오늘 거의 완료하였다.

화면의 모든 엘리먼트를 다국어로 바꿔치기했다는 의미가 아니라 api를 fetch 하는 구간까지 완료했다는 의미이다. 기능적인 의미이다.

일단 accuweather는 다국어를 지원한다.

받고자 하는 언어를 language 파라미터를 붙여 fetch를 하면 그에 맞게 데이터를 보내준다.

이를테면 날씨 이름이나 지역 이름 말이다.

나머진 대부분 숫자 등이므로 큰 의미 없다.


하지만 애초에 다국어에 대한 기초설계를 하지 않았으므로 다국어를 설계하는데 함께 재설계를 했다.

기존에 사용했던 디바이스 언어를 받아왔던 state값이 남아있으므로 그것을 변형해 사용하기로 했다.

accuweather에서 사용하는 방식과 조금 다르게(대문자가 섞여있다거나...) 남아있으므로 그에 맞게 변경하여 state에 저장한 다음, accuweather api를 fetch 하는 부분에다가 넣어주었다.



날씨 이름별로 케이스를 나누어 이미지와 백그라운드 컬러 등을 모두 설계했는데 날씨 이름이 한글로 넘어와버려서 한글 케이스도 모두 다 추가를 해줘야 하는 불상사가 생겨버렸다.

그리고 또 다른 문제.


지역명을 검색할 때 디바이스가 한글이면 한글로 검색해야 하고 영어라면 영어로 검색해야 하는 불상사가 생겨버렸다.

검색하는 api조차 언어 설정이 필요하기 때문이다.

따르지 않으면 에러가 뿜뿜이다.

커뮤니티의 선배들이 조언하길, 정규식을 사용하여 사용자가 알파벳을 사용하면 영문 버전의 콜을, 한글을 사용하면 한글 버전의 콜을 때리라 하였다.

어차피 결과는 해당 언어에 따라 다를 것이고 로케이션은 key값을 기반으로 할 것이므로 화면에 표현하는데 큰 문제가 없을 것이다.


하지만, 정규식을 사용해본 적이 없으므로 좀 미루어두어야겠다.


매거진의 이전글 디자이너의 네이티브 앱 개발 도전기 #16
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari