공청
개발하는 금융인
공청
전체 방문자
오늘
어제
  • 분류 전체보기 (102)
    • 개인적인 이야기 (27)
    • IT에 관한 글 (15)
    • 경제, 금융 (12)
    • Python (2)
    • Javascript (6)
    • golang (2)
    • 비전공자를 위한 IT 지식 (0)
    • SQL (SQLD,SQLP) (1)
    • React (Front-end) (29)
    • 정보처리기사 (0)
    • Typescript (4)
    • (study) 모던 자바스크립트 Deep Dive (0)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 방명록
  • 글쓰기

공지사항

인기 글

태그

  • 트래블카드
  • 언섹시비즈니스
  • 미국주식
  • Golang
  • javascript
  • go
  • react
  • 짧은생각
  • Effective Typescript
  • 창업
  • HTTP
  • Fira Code
  • 프로그래밍
  • vite
  • 인터넷
  • 기술스택
  • typescript
  • next.js
  • vscode
  • 조건부렌더링
  • 일기
  • WSGI
  • ChatGPT
  • approute
  • sql
  • useref
  • 트래블월렛
  • 웹개발
  • python
  • react-router

최근 댓글

최근 글

티스토리

반응형
공청

개발하는 금융인

(React 다국어 웹 만들기) 2. 다국어 변환을 돕는 모듈 설치(react-i18next와 i18next)
카테고리 없음

(React 다국어 웹 만들기) 2. 다국어 변환을 돕는 모듈 설치(react-i18next와 i18next)

2023. 3. 8. 19:50

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

"블로그 내의 광고와 쿠팡 링크를 클릭해주시면 블로그 운영에 큰 힘이 됩니다."

반응형

0. 모듈 설치

이제 react에서 사용할 국제화를 도울 모듈을 설치해야한다.

 

2개인데 react-i18next와 i18next이다.

 

npm i react-18next i18next

공식 사이트에는 --save를 넣으라고 하지만, npm 5 버전부터는 자동으로 dependency에 추가해주기 때문에 입력할 필요가 없다.

 

설치된 이후에 JSON 파일을 체크해보면 된다.

 

 

 

설치 매우 잘된다.

 

 

 

1. 기본적인 t 함수 사용법

위에서 설치한 모듈을 사용해보자.

 

기본적인 사용 방법은 다음과 같다.

 

import i18n from "i18next";
import { useTranslation, initReactI18next } from "react-i18next";

i18n
  .use(initReactI18next)
  .init(
     // 여기에 내가 사용할 리소스 JSON 데이터를 넣으면 된다.
  )
  
function App() {
    const { t } = useTranslation();


    return (
    <div>{t("hello")}</div>
);

이렇게 전체적인 틀을 잡고, 우리는 아래에 리턴문에 있는 t 함수에 JSON의 key를 넣어줄 것이다.

 

예를 들어 저기 JSON 데이터에 이렇게 넣어보자.

{
  "resources": {
    "en": {
      "translation": {
        "hello": "Welcome to React and react-i18next!"
      }
    }
  },
  "lng": "en",
  "fallbackLng": "en",
  "interpolation": {
    "escapeValue": false
  }
}

이런 JSON 데이터가 들어가면, translation에 있는 키가 hello인 값(value)을 출력한다.

 

 

 

실제 실행화면

 

나는 이것을 별도의 JSON으로 뽑아내어서 구성했다.

 

App.jsx 코드

import { useState } from "react";
// import reactLogo from './assets/react.svg'
import "./App.css";
import i18n from "i18next";
import { useTranslation, initReactI18next } from "react-i18next";
import languageJSON from "./json/language"

i18n
  .use(initReactI18next)
  .init(
      languageJSON
  )


function App() {
  const { t } = useTranslation();


  return (
    <div>{t("hello")}</div>
  );
}

export default App;

 

위의 코드를 보면 languageJSON 이라는 변수에 JSON 데이터를 가지고 오고 있다.

 

 

src/json/language.json 파일

{
  "resources": {
    "en": {
      "translation": {
        "hello": "Welcome to React and react-i18next!"
      }
    }
  },
  "lng": "en",
  "fallbackLng": "en",
  "interpolation": {
    "escapeValue": false
  }
}

 

이렇게 작성해두었다.

 

다음 포스팅에서는 다양한 언어로 변환해보고, 

그 언어로 변환할 수 있는 버튼도 만들어서 웹 앱을 제작해보자.

 

 

 

 

2. 참고자료

 

1. 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

 

끝.

반응형
    공청
    공청
    투자, 프로그래밍, IT에 대한 글을 씁니다.

    티스토리툴바