0Pricing
React Academy · 강의

useTranslation 훅 사용하기

하드코딩된 문자열을 t() 호출로 바꾸고 번역 JSON 파일을 정리합니다.

useTranslation 훅 사용하기은(는) CoddyKit의 무료 React Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 React Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. React Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

환영합니다

이 학습에서는 useTranslation Hook을 사용해 t() 함수에 접근하고, 컴포넌트의 문자열을 번역하며, 네임스페이스별로 번역 JSON 파일을 구성합니다.

useTranslation Hook

컴포넌트 내부에서 useTranslation()을 호출하면 `t` 번역 함수와 `i18n` 인스턴스를 가져올 수 있습니다. 네임스페이스를 사용한다면 네임스페이스 이름을 전달합니다.
import { useTranslation } from 'react-i18next';

function Header() {
  const { t } = useTranslation('common');
  return <h1>{t('app_title')}</h1>;
}

기본 번역 키

언어와 네임스페이스마다 JSON 파일을 만듭니다. 키는 점 표기법으로 접근할 수 있는 문자열입니다. 평면 키는 단순하고, 중첩 키는 점 표기법을 사용합니다.
// public/locales/en/common.json
{
  "app_title": "My App",
  "nav": {
    "home": "Home",
    "about": "About"
  }
}

점 표기법 키

t() 함수에서 점 표기법으로 중첩 키에 접근합니다. `t('nav.home')`은 JSON에서 `nav -> home`을 읽습니다.
const { t } = useTranslation('common');
return <a href="/">{t('nav.home')}</a>;

기본 네임스페이스

i18n init에서 `defaultNS`를 구성하면 인수 없이 useTranslation()을 호출할 수 있고, 키가 자동으로 기본 네임스페이스에서 확인됩니다.
i18n.init({ defaultNS: 'common', ... });

// No namespace argument needed
const { t } = useTranslation();
t('app_title'); // resolves in 'common'

여러 네임스페이스에 접근하기

여러 네임스페이스에 접근하려면 useTranslation에 배열을 전달합니다. 키 앞에 네임스페이스와 콜론을 붙입니다.
const { t } = useTranslation(['common', 'auth']);

t('common:app_title');
t('auth:login');

JSX 콘텐츠를 위한 Trans 컴포넌트

번역된 문자열에 HTML 또는 React 컴포넌트가 포함된 경우 Trans 컴포넌트를 사용합니다. React 컴포넌트에 대응하는 자리 표시자를 지원합니다.
import { Trans } from 'react-i18next';

// JSON: "tos": "Read our <1>Terms</1>"
<Trans i18nKey="tos">
  Read our <a href="/terms">Terms</a>
</Trans>

번역 파일 구조

JSON 파일을 `public/locales/{lang}/{ns}.json` 형식으로 구성합니다. 키는 의미가 분명하도록 정하고 기능별로 묶습니다. 지나치게 깊은 중첩 키는 피하세요. 일반적으로 2단계면 충분합니다.
public/
  locales/
    en/
      common.json
      auth.json
      dashboard.json
    tr/
      common.json
      auth.json

실행 중 언어 변경하기

`i18n.changeLanguage(lng)`를 사용해 프로그래밍 방식으로 활성 언어를 전환합니다. useTranslation을 사용하는 React 컴포넌트는 자동으로 다시 렌더링됩니다.
const { i18n } = useTranslation();

<button onClick={() => i18n.changeLanguage('tr')}>Turkish</button>

활성 언어 감지하기

`i18n.language`를 읽어 현재 활성 로캘을 가져옵니다. 이를 사용해 국기를 표시하거나 활성 언어 버튼을 강조할 수 있습니다.
const { i18n } = useTranslation();
return <p>Current lang: {i18n.language}</p>;

빠른 확인

'common' 네임스페이스에서 중첩 번역 키 'nav.home'에 어떻게 접근하나요?

정리

useTranslation은 t() 함수를 제공합니다. 네임스페이스 JSON 파일에 키를 구성합니다. 중첩 키에는 점 표기법을 사용합니다. i18n.changeLanguage로 언어를 전환합니다. JSX가 포함된 문자열에는 Trans 컴포넌트를 사용합니다.

다음 학습

다음 학습: **복수형 및 보간** — 수에 따른 복수형을 처리하고 번역된 문자열에 동적 값을 삽입합니다.

자주 묻는 질문

“useTranslation 훅 사용하기” 강의는 무료인가요?

네 — “useTranslation 훅 사용하기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 React Academy 강의 전체를 잠금 해제할 수 있습니다. React Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“useTranslation 훅 사용하기”에서 뭘 배우나요?

하드코딩된 문자열을 t() 호출로 바꾸고 번역 JSON 파일을 정리합니다. 브라우저에서 직접 실행하는 실습 코드로 React Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

React Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 React Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“useTranslation 훅 사용하기” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 React Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 React Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. react-i18next 설정하기
  2. useTranslation 훅 사용하기
  3. 복수형 처리와 보간
  4. 언어 전환기와 번역 지연 로딩
← React Academy(으)로 돌아가기