티스토리 뷰
[React | 다국어 지원] i18n이란? react-i18next(리액트 다국어 지원 라이브러리)
blueprint-12 2023. 3. 22. 20:31i18n이란 internationalization(국제화) 라는 단어를 축약한 것이다.
i부터 n까지 18개의 문자수를 축약해서 i18n으로 나타낸다. 국제화는 다양한 언어 및 지역에 적용할 수 있도록 프로그램을 설계하는 프로세스이다. 이상적으로는 국제화는 설계의 기본 단계 중 하나이다.
- 현지화, 국제적인 배포에 대한 장벽을 제거하는 방식으로 설계 및 개발
- Unicode 사용
- 필요에 따라 적절하게 레거시한 문자 인코딩을 처리
- 문자열 연결에 신경쓰는 것
- 유저 인터페이스의 문자열 값에 의존하지 않는 것
- 현지화가 이루어질 때까지 사용할 수 없는 기능을 지원
- 양방향 텍스트를 지원
- 언어를 식별하기 위해 DTD(document type definition)에 마크업을 추가
- 세로 텍스트나 기타 라틴어 이외의 인쇄 기능에 대한 CSS지원 추가
- 코드가 지역, 언어 또는 문화적으로 적절하게 지원
- 현지화 데이터
- 날짜 및 시간 형식
- 달력
- 숫자 형식 및 숫자 시스템
- 정렬 방식 및 표시
- 이름
- 주소 형식 처리 등
- 소스코드와 콘텐츠에서 현지화 가능한 요소를 분리하여 지역에 따라 현지화된 대체적인 요소를 로드하거나 선택
-> 일반적으로 i18n 은 웹 개발에서 '텍스트 번역'을 의미한다.
https://phrase.com/blog/posts/react-i18n-best-libraries/
The Best React Libraries for Internationalization
There may be no built-in solution for React i18n, but these amazing libraries will help you manage your i18n projects in React from start to finish.
phrase.com
> 리액트에서 사용하기 좋은 i18n 라이브러리를 소개하는 사이트이다.
그 중에서도 react-i18next 가 가장 많이 사용되는 라이브러리인 거 같아 찾아왔다. i18next는 여러 프레임워크를 지원하고 있으며 나는 그 중에서도 리액트를 사용하기 때문에 react-i18next를 설치하여 사용)
https://react.i18next.com/getting-started
Getting started - react-i18next documentation
The module is optimized to load by webpack, rollup, ... The correct entry points are already configured in the package.json. There should be no extra setup needed to get the best build option.
react.i18next.com
- react-i18next 의 경우에, 기본 번들러 세팅으로 webpack과 rollup을 지원하고 있으므로 CRA(webpack), Vite(rollup)를 쓰면 편리하게 이용할 수 있을 거 같다.
- 안드로이드 스튜디오의 경우는 i18n을 기본 제공하고있는데 나는 웹으로 모바일 뷰를 만들어야 하므로 안타깝게도 사용하지 못한다.
react-i18next는 4가지 방법으로 i18n을 제공한다
- useTranslation(hook) // 가장 직관적이다.
- withTranslation (HOC)
- Translation (render props)
- Trans Component
+ 외에도 변수를 받아 처리하는 방법도 제공하고 있다.
유저의 입력을 받아 지원해야하는 상황
현재로써는 json 파일로만 관리하는 것이 최선인 거 같은데 능력이 닿는다면 자동화하는 방법도 있다.
https://meetup.nhncloud.com/posts/295
국제화(i18n) 자동화 가이드 : NHN Cloud Meetup
프런트엔드 개발을 하다 보면 국제화와 번역을 수작업과 막일로 하는 경우가 있습니다."복붙"이나 반복적인 수작업으로 인해 고통받는 모든 프런트엔드 개발자를 자동화 가이드를 작성하였습
meetup.nhncloud.com
참고 ref:
[리액트] 글로벌한 웹을 향하여 (react-i18next, 다국어지원)
들어가며 이번 글에서는 글로벌한 웹을 위해서 react i18n를 적용하는 방법과 나름의 best practice에 대해 적어보겠습니다. 이 글은 아직 이제 막 프로젝트에 i18n을 던지려는 용기 있는 개발자를 위한
all-dev-kang.tistory.com
'Frontend > react.js' 카테고리의 다른 글
[React | CSS] #root 과 :root의 차이점 (전역 CSS) (0) | 2023.04.19 |
---|---|
[React] 리액트에서 이벤트 핸들링하기, 디자인 시스템 with.아토믹 디자인 패턴 (0) | 2023.04.05 |
[React | Vite] CRA 대신 Vite(비트)? (0) | 2023.03.02 |
[React | React hook form] 리액트 훅 폼 라이브러리 사용해보기 (0) | 2023.02.09 |
[React] svg파일 사용법 (with. create-react-app) (1) | 2023.01.27 |
- Total
- Today
- Yesterday
- 형제 요소 선택자
- is()
- grid flex
- && 셸 명령어
- nvm 설치순서
- reactAPI
- getStaticPaths
- 프리온보딩 프론트엔드 챌린지 3월
- 틸드와 캐럿
- 원티드 프리온보딩 FE 챌린지
- 프리렌더링확인법
- float 레이아웃
- aspect-ratio
- tilde caret
- 원티드 3월 프론트엔드 챌린지
- 항해99프론트
- Prittier
- 항해99추천비추천
- 항해99프론트후기
- 타입스크립트 장점
- 원티드 프리온보딩 프론트엔드 챌린지 3일차
- text input pattern
- 부트캠프항해
- 원티드 FE 프리온보딩 챌린지
- 타입스크립트 DT
- nvm경로 오류
- fs모듈 넥스트
- ~ ^
- D 플래그
- getServerSideProps
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |