Binomo 다국어 지원

마지막 업데이트: 2022년 3월 17일 | 0개 댓글
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기

zepinos BLOG

그렇다면 Spring 은 어떻게 사용자의 언어나 국가를 판단하는 것일까요? 사실 매우 간단한데, 어떻게 처리하고 있는건지 모르는 분들이 많습니다.

방법은 바로 브라우져의 언어 설정입니다.

많이들 사용하시는 크롬에서는 "설정 > 고급 > 언어" 에서 이를 설정하고, 우선순위를 결정할 수도 있습니다.

저의 기본 브라우져인 파이어폭스에서는 아래와 같이 "설정 > 언어와 표현 > 언어" 에서 "선택" 버튼을 클릭하면 언어를 추가/제거하거나 순서를 변경할 수 있습니다.

언어의 우선순위를 변경하면 HTTP 요청 시 header 에 언어 정보가 포함되어 전송됩니다. 이에 대한 설명은 Accept-Language(https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/Accept-Language) 에 대한 문서들을 찾아보시면 확인할 수 있습니다.

Spring 에서는 header 로 넘어온 브라우져의 언어 선호도를 확인하여 제공할 수 있는 properties 파일을 찾은 뒤 없을 경우 default 파일인 messages.properties 파일의 내용을 사용자에게 표시하게 됩니다. messages 파일에 test.message.value 와 같은 key 로 다국어를 저장해뒀다면 Thymeleaf 와 같은 Template 에서 # 와 같이 key 을 이용해 value 을 출력할 때 다국어를 출력해줍니다.

그러므로, REST API 을 이용해 다국어 메세지를 전송받기 위해서는 Accept-Language 정보를 전달하거나, 매개변수로 서비스할 언어-국가코드를 넘겨줘서 처리할 수 있도록 개발해야 합니다. 이를 위해 Spring 에서는 LocaleResolver interface 을 이용해서 언어 정보가 넘어오지 않았을 때의 기본 언어와 언어 정보를 어떤 식으로 저장하고 있을지 지정할 수 있는 기능을 제공하고 있습니다.

Yoondesign Binomo 다국어 지원 M

"개똥도 약에 쓰려면 없다"라는 속담이 있습니다. 딱히 중요하지도, 당장 필요하지도 않은 물건이었는데 Binomo 다국어 지원 막상 쓰려고 찾으니 없었던 당황스러움을 겪어 보셨나요? 이번 포스팅은 이 속담을 되새기며 만들어 봤습니다. 당장은 필요하지 않지만 언젠가는 필요할지도 모를 다양한 나라 글자의 폰트를 찾는 방법 , 소개해 드릴게요.

세계에는 얼마나 다양한 글자들이 사용되고 있을까?

가장 널리 쓰이는 언어는 영어, 가장 많이 쓰이는 언어는 중국어라는 말을 들어본 적이 있으신가요? 이렇게 널리, 그리고 많이 쓰이는 언어에 사용되는 글자만 만든다면 폰트 디자이너는 참 편하겠죠. 하지만 애석하게도 세상은 참 넓답니다. 정확히 몇 개의 문자가 있는지는 모르지만 위키피디아의 자료를 보면 전 세계에는 이렇게 다양한 글자가 존재한답니다 .Binomo 다국어 지원

전 세계 다양한 문자 / 이미지 출처: 위키피디아

지역별 사용문자 / 이미지 출처: 위키피디아

한글, Khmer, Maynamr, Laos, Arab, Ethiopic, 인도의 다양한 문자 등 여러 다국어 폰트를 만들면서 꽤 많은 폰트를 접했다고 자부했습니다. 하지만 지도를 보니 아직도 처음 보는 글자가 있더군요. 이런 다양한 언어의 폰트는 어디서 찾을 수 있을까요? 그리고 이런 낯선 글자들은 어떻게 쓰는 걸까요?

김병만처럼 오지탐험을 할 일이 없을 바에야 이런 글자를 볼 일은 없습니다. 알면 머리만 아프겠죠. 당장에 쓸 일도 없고요. 하지만 당신이 희귀 외국어를 전공하는 학생이라면, 외교관이라면, 해외에 수출할 제품을 기획하는 사람이라면, 알파벳과 한자, 한글만으로 디자인하는 것에 싫증이 난 디자이너라면, 혹시 필요할지도 모르는 정보겠죠?

다양한 언어를 지원하는 폰트 찾기

요즘은 Mac을 쓰시는 분이 많으나 아직은 윈도우를 쓰는 분이 더 많은 것 같습니다. 그래서 윈도우에서 다양한 언어를 지원하는 폰트를 찾는 방법을 알아보기로 합시다. 윈도우는 전 세계 PC에서 사용되는 운영체제인 만큼 아주 많은 언어를 지원하고 있답니다. 윈도우에서 인터넷 익스플로러를 이용해 다국어 폰트를 찾을 수 있답니다 . 그 방법을 설명해 드릴게요 .

익스플로러의 ① 번 '설정' 버튼을 통해 ② 번 '인터넷 옵션'을 엽니다 .

인터넷 옵션의 ③ 번 '일반'탭에서 ④ 번의 '글꼴' 버튼을 누릅니다. 그러면 웹페이지를 언어별로 표현할 때 그 폰트를 언어별로 확인할 수 있는 옵션창이 뜨게 됩니다. 여기서 내가 찾고 Binomo 다국어 지원 싶은 언어를 ⑤ 번의 '언어 스크립트' 메뉴를 클릭해서 고릅니다. 그러면 ⑥ 번에 그 언어를 지원하는 폰트가 무엇인지 보여줍니다. 물론 자신의 PC에 설치돼있는 한도에서 말이죠. 저는 한 번도 제대로 본 적이 없는 몽골문자 를 선택해봤습니다 .

윈도우의 'Font' 폴더에 들어가 몽골문자를 지원하는 폰트를 찾을 수 있습니다 .

몽골문자를 지원하는 폰트는 찾았지만 우리가 가진 키보드에는 한글과 영문, 숫자와 약간의 기능키만 있을 뿐입니다. 이렇게 찾은 몽골문자를 어떻게 입력해야 할까요? 이것을 도와주는 웹사이트가 있습니다. 우리가 스마트폰에서 키보드에 언어를 추가해서 쓰는 것처럼 가상 키보드를 통해 언어를 입력할 수 있게 해주는 사이트 랍니다 .

Gate2Home 웹사이트 / 이미지 출처 : gate2home

다음과 같이 원하는 언어를 선택해서 ‘Continue’를 Binomo 다국어 지원 누르면 해당 언어의 키보드를 불러올 수 있습니다.

그런데 몽골에서는 요즘 러시아와 같이 'Cyrillic' 문자를 사용하는군요! 훨씬 불편하긴 하지만 몽골의 고유문자를 입력할 수 있는 다른 방법이 있습니다. 바로 '문자표'를 사용하는 것이죠 .

맨 처음 지도에서 본 것처럼 세상에는 이 외에도 다양한 언어와 그것을 표현하는 문자가 있답니다. 이번 포스팅에는 극소수의 사람들이 찾아볼 만한 문자들에 대해 적어봤습니다. 다음에 기회가 되면 좀 더 생활에 밀접(?)한 한·중·일의 한자의 차이를 구분하고, 올바른 폰트를 사용하는 방법에 대해 적어보고 싶네요 . 혹시 다국어 폰트에 대해 궁금한 부분이 있다면 댓글을 달아주시면 아는 만큼 답변해드릴게요 .

Yoondesign M

윤디자인의 새로운 서체, UC고딕이 지난 11월 5일 출시됐습니다. 이 서체는 다른 무엇보다 기능에 초점을 두어 디자인 해 남녀노소, 장애와 비장애를 넘어 누구나 쉽게 읽을 수 있도록 유니버셜 디자인 폰트로 제작되었습니다. UC고딕은 한국어를 기반으로 일본어와 중국어까지 3개국어를 사용할 수 있는 다국어서체이기도 합니다. 각 언어의 완성도와 조화를 위해 중국의 Founder社와 일본의 Fontworks社와의 협약을 바탕으로 만들어졌는데요. 이는 세계 최초로 공동 개발한 서체이기도 합니다. 이런 시도는 유니버셜 디자인 개념에 폰트의 기본 속성인 소통을 더해 유니버셜 커뮤니케이션이라는 이름을 붙이게 되었습니다.

유니버셜 디자인 폰트라는 이름에 걸맞게 개발 당시 디자인보다는 가독성과 판독성, 그리고 시인성에 우선순위를 두고 개발해 타 서체보다 문자의 공간을 최대한 넓게 디자인했으며, 이를 통해 더 크고 또렷하게 보이도록 디자인했습니다. 이는 어떤 상황에서도 쉽고 명확하게 읽힐 수 있는 서체로 기존의 고딕의 문제점을 해결했습니다.

가장 먼저 개발된 한국어는 UD고딕이라는 이름으로 2010년 개발을 시작했습니다. 당시 트루 타입 폰트로는 최초로 굿디자인 시각디자인 부문에 선정되는 쾌거를 이루기도 했습니다. 하지만 저희는 이를 4년간 꾸준히 보완·개발해 완성했습니다. 이를 바탕으로 일본어와 중국어를 개발해 각기 다른 언어이지만 시각적으로 조화롭고 안정적으로 보일 수 있도록 만들어 보다 편리하게 사용하실 수 있습니다.

UC고딕은 3개국어 13종으로 이루어진 서체로 소비자들이 더욱 경제적으로 사용할 수 있으며, 필요시 언어별 개인 라이선스도 가능합니다. 윤멤버십 RED와 BLACK을 사용하시는 분들이라면 누구나 이용하실 수 있습니다. 또한 윤디자인은 UC고딕이 필요한 기관이나 단체에서는 별도 문의 시 무상지원도 가능하니 많은 관심 부탁드립니다. (단, 비상업적 용도에 한함 ) 자세한 사항은 폰코에서 확인해보세요.

다국어 지원

특징 다국어 지원 여러 언어로 활동을 기록하고 다국어 앱 인터페이스를 표시하는 것으로 표시됩니다. 프랑스어, 이탈리아어, 독일어, 스페인어, 러시아어, 중국어, 한국어, 일본어 등 전 세계 사용자의 요구를 충족하기 위해 지원됩니다.

iPhone Android

휴대폰

다국어

다국어 지원 기능으로 다음을 수행 할 수 있습니다:

다국어 PC

다국어 지원이 유용한 이유는 무엇입니까?

iKeyMontor 다국어 지원 두 가지 측면에서. 기록 및 표시되는 텍스트 로그는 언어에 관계없이 입력 한 정보와 동일합니다. iKeyMonitor 인터페이스 언어도 사용자 정의 할 수 있습니다. 고급 설정에서 선호하는 언어를 선택할 수 있습니다.

사용하기 쉬운

iKeyMontior는 다양한 국가 및 지역의 사용자 요구 사항을 높이 평가합니다. 모든 사용자에게 최고의 사용자 경험을 제공하기 위해 iKeyMonitor를 사용하면 사용자가 선호하는 언어를 앱 인터페이스 언어로 선택할 수 있습니다. 사용자가 선택할 수있는 언어는 영어, 프랑스어, 독일어, 이탈리아어, 일본어, 한국어, 러시아어, 포르투갈어, 스페인어, 힌디어, 중국어 간체 및 중국어 번체입니다. 사용자는 인터페이스를 쉽게 이해하고 iKeyMontior를 올바른 방법으로 사용하는 방법을 알게됩니다.

모국어로 모든 정보 모니터링

대상 장치에서 감지 된 언어에 관계없이 모니터링되는 문자 Binomo 다국어 지원 메시지는 항상 모국어로 표시 될 수 있습니다, 아랍어, 스페인어, 이탈리아어, 독일어, 중국어 등. 음성 메시지도 모국어로 녹음 할 수 있습니다.

SpringBoot 다국어 지원 설정 가이드

spring-boot-starter-thymeleaf 를 추가해야 한다. 사실 타임리프는 스프링부트에서 기본으로 의존성을 포함해 뒀을 것이므로 이 단계를 해야 하는 경우는 거의 없을 것이다.

만약 의존성이 포함돼 있지 않다면 포함시킨다. 메이븐이라면 아래 코드를 사용한다. 2019년 4월 14일 현재 최신 버전은 2.1.4.RELEASE 다. 물론 자신의 스프링부트 버전을 따라야 하므로 최신 버전이 뭔지는 이 자체로는 큰 의미가 없다.

그래들(gradle)이라면 아래처럼 코드를 추가한다. 버전을 적지 않으면 스프링부트 버전을 따르는 듯.

Config 클래스를 만든다

나는 기본 로케일을 한국어로 설정했다.

그리고 쿠키 기반 로케일 설정을 사용한다. 원래 예제는 페이지별로 url의 lang 파라미터를 받아서 판단하게 돼 있다(세션 기반).

쿠키 리졸버를 사용하는 것으로 설정하면 스프링이 알아서 쿠키를 처리한다.

아래부터는 위 코드의 각 부분에 대한 설명이다.

클래스 정의부 extends, implements

클래스 정의부인데, extends WebMvcConfigurerAdapter 와 implements WebMvcConfigurer 가 다 있어야 한다.

implements WebMvcConfigurer 만 있으면 WebMvcConfigurer 인터페이스에 있는 메서드를 다 구현해야 한다. 그걸 해 놓은 게 WebMvcConfigurerAdapter 이므로 이걸 상속받으면 해결된다.

LocaleConfig 라는 클래스 이름은 임의로 정한 이름이므로 자유롭게 고칠 수 있다.

로케일 결정 Binomo 다국어 지원 Binomo 다국어 지원 Bean

로케일 1 을 결정하는 빈을 생성한다. 로케일 결정자(Resolver) 종류엔 세션( SessionLocaleResolver ), 쿠키( CookieLocaleResolver ), 헤더( AcceptHeaderLocaleResolver , 헤더의 Accept-Language 값 기반으로 판단), 고정값( FixedLocaleResolver ) 리졸버가 있다. 내 코드에선 쿠키 기반 로케일 결정을 사용했다.

setDefaultLocale() 을 사용해 쿠키명을 APPLICATION_LOCALE 로 설정해 줬다. 언어를 변경하면 해당 쿠키가 설정된 것을 확인할 수 있다. (언어 변경법은 아래서 설명한다.)

setDefaultLocale() 로 기본 로케일을 설정하는데, 인자값으로 Locale 클래스를 넣어 줘야 한다. 자동완성이 잘 되므로 원하는 로케일을 찾아서 Locale.KOREAN 식으로 넣어 주면 된다.

로케일 변경 Interceptor Bean

url 파라미터를 받아서 로케일을 변경하는 방법을 설정하는 부분이다. 위 코드대로 하면 https://domain.com?locale=en 으로 들어왔을 때, APPLICATION_LOCALE 쿠키가 en 으로 설정되면서 로케일이 변경된다.

위 코드에선 인자값을 locale 로 설정했지만, 원하는대로 설정하면 된다.

인터셉터 목록에 인터셉터를 등록

위 코드는 localeChangeInterceptor() 를 스프링의 인터셉터 목록에 등록하는 코드다. 이렇게 하지 않으면 작동하지 않는다.

@Override 라는 어노테이션을 통해 유추할 수 있겠지만, WebMvcConfigurer 가 정의한 것을 구현한 것이다.

번역 파일 위치와 형식

번역 파일을 둘 위치는 src/main/resources 폴더다. 파일명을 Binomo 다국어 지원 규칙에 맞게 해야 하는데, 기본 로케일의 파일명은 messages.properties 로 하면 된다. 다른 언어는 messages_.properties 로 만든다. 즉, 한국어라면 messages_ko.properties , 영어라면 message_en.properties 로 파일을 만든다.


0 개 댓글

답장을 남겨주세요