TacoTranslate
/
문서요금
 
문서
2025년 5월 04일

Next.js 앱을 위한 최고의 국제화(i18n) 솔루션

Next.js 애플리케이션을 새로운 시장으로 확장하려고 하시나요? TacoTranslate는 귀하의 Next.js 프로젝트를 손쉽게 현지화하여 번거로움 없이 전 세계 사용자에게 도달할 수 있도록 합니다.

Next.js에 TacoTranslate를 선택해야 하는 이유는?

  • 원활한 통합: Next.js 애플리케이션을 위해 특별히 설계되어, TacoTranslate는 기존 워크플로우에 손쉽게 통합됩니다.
  • 자동 문자열 수집: 더 이상 JSON 파일을 수동으로 관리할 필요가 없습니다. TacoTranslate는 코드베이스에서 문자열을 자동으로 수집합니다.
  • AI 기반 번역: AI의 힘을 활용해 애플리케이션의 어조에 맞는 문맥적으로 정확한 번역을 제공합니다.
  • 즉시 언어 지원: 한 번의 클릭으로 새 언어 지원을 추가해 애플리케이션을 전 세계에서 접근할 수 있도록 만듭니다.

작동 방식

세계가 점점 더 글로벌화됨에 따라, 웹 개발자는 다양한 국가와 문화의 사용자를 수용할 수 있는 애플리케이션을 만드는 것이 점점 더 중요해지고 있습니다. 이를 달성하는 핵심 방법 중 하나는 국제화(i18n)로, 애플리케이션을 다양한 언어, 통화 및 날짜 형식에 맞게 조정할 수 있게 해줍니다.

이 튜토리얼에서는 서버 사이드 렌더링을 사용하여 React Next.js 애플리케이션에 국제화를 추가하는 방법을 살펴보겠습니다. TL;DR: 전체 예제를 여기에서 확인하세요.

이 가이드는 Next.js 애플리케이션에서 Pages Router를 사용하는 경우를 위한 것입니다.
만약 App Router를 사용 중이라면, 대신 이 가이드를 참조하세요.

Step 1: i18n 라이브러리 설치

Next.js 애플리케이션에 국제화를 구현하기 위해, 먼저 i18n 라이브러리를 선택하겠습니다. 여러 인기 있는 라이브러리가 있으며, next-intl 등이 있습니다. 하지만 이 예제에서는 TacoTranslate를 사용하겠습니다.

TacoTranslate는 최신 AI를 사용하여 문자열을 어떤 언어로든 자동으로 번역해 주며, JSON 파일 관리의 번거로움에서 해방해 줍니다.

터미널에서 npm을 사용해 설치해 봅시다:

npm install tacotranslate

2단계: 무료로 TacoTranslate 계정 만들기

모듈을 설치했으니 이제 TacoTranslate 계정과 번역 프로젝트, 그리고 관련 API 키를 생성할 차례입니다. 여기에서 계정을 만드세요. 무료이며, 신용카드를 등록할 필요가 없습니다.

TacoTranslate 애플리케이션 UI에서 프로젝트를 생성한 후 API 키 탭으로 이동하세요. 하나의 read 키와 하나의 read/write 키를 생성하세요. 해당 키들을 환경 변수로 저장합니다. read 키는 우리가 public이라고 부르는 것이고, read/write 키는 secret입니다. 예를 들어, 프로젝트 루트의 .env 파일에 추가할 수 있습니다.

.env
TACOTRANSLATE_PUBLIC_API_KEY=123456
TACOTRANSLATE_SECRET_API_KEY=789010

비밀 read/write API 키를 클라이언트 측 프로덕션 환경에 절대 유출하지 마십시오.

또한 두 개의 환경 변수를 추가하겠습니다: TACOTRANSLATE_DEFAULT_LOCALETACOTRANSLATE_ORIGIN.

.env
TACOTRANSLATE_DEFAULT_LOCALE=en
TACOTRANSLATE_ORIGIN=your-website-url.com

3단계: TacoTranslate 설정하기

TacoTranslate를 애플리케이션에 통합하려면 앞에서 만든 API 키를 사용하여 클라이언트를 생성해야 합니다. 예를 들어 /tacotranslate-client.js라는 이름의 파일을 만드세요.

/tacotranslate-client.js
const {default: createTacoTranslateClient} = require('tacotranslate');

const tacoTranslate = createTacoTranslateClient({
	apiKey:
		process.env.TACOTRANSLATE_SECRET_API_KEY ??
		process.env.TACOTRANSLATE_PUBLIC_API_KEY ??
		process.env.TACOTRANSLATE_API_KEY ??
		'',
	projectLocale: process.env.TACOTRANSLATE_DEFAULT_LOCALE ?? '',
});

module.exports = tacoTranslate;

곧 자동으로 TACOTRANSLATE_API_KEY을 정의할 예정입니다.

클라이언트를 별도의 파일에 생성하면 나중에 다시 사용하기가 더 쉬워집니다. 이제 커스텀 /pages/_app.tsx을 사용하여 TacoTranslate 프로바이더를 추가하겠습니다.

/pages/_app.tsx
import React from 'react';
import {type AppProps} from 'next/app';
import {type Origin, type Locale, type Localizations} from 'tacotranslate';
import TacoTranslate from 'tacotranslate/react';
import TacoTranslateHead from 'tacotranslate/next/head';
import tacoTranslate from '../tacotranslate-client';

type PageProperties = {
	origin: Origin;
	locale: Locale;
	locales: Locale[];
	localizations: Localizations;
};

export default function App({Component, pageProps}: AppProps<PageProperties>) {
	const {origin, locale, locales, localizations} = pageProps;

	return (
		<TacoTranslate
			client={tacoTranslate}
			origin={origin}
			locale={locale}
			localizations={localizations}
		>
			<TacoTranslateHead rootUrl="https://your-website.com" locales={locales} />
			<Component {...pageProps} />
		</TacoTranslate>
	);
}

이미 사용자 지정 pageProps_app.tsx가 있는 경우, 위의 속성과 코드를 포함하도록 정의를 확장해 주세요.

4단계: 서버 사이드 렌더링 구현

TacoTranslate는 번역을 서버 사이드 렌더링할 수 있게 해줍니다. 이렇게 하면 번역되지 않은 콘텐츠가 잠깐 표시되는 대신 번역된 콘텐츠를 즉시 보여줘 사용자 경험이 크게 향상됩니다. 또한 필요한 모든 번역을 이미 보유하고 있기 때문에 클라이언트에서 네트워크 요청을 건너뛸 수 있습니다.

먼저 /next.config.js 파일을 생성하거나 수정하는 것부터 시작하겠습니다.

/next.config.js
const withTacoTranslate = require('tacotranslate/next/config').default;
const tacoTranslateClient = require('./tacotranslate-client');

module.exports = async () => {
	const config = {};

	return withTacoTranslate(config, {
		client: tacoTranslateClient,
		isProduction:
			process.env.TACOTRANSLATE_ENV === 'production' ||
			process.env.VERCEL_ENV === 'production' ||
			(!(process.env.TACOTRANSLATE_ENV || process.env.VERCEL_ENV) &&
				process.env.NODE_ENV === 'production'),
	});
};

설정에 맞게 isProduction 체크를 수정하세요. 만약 true, TacoTranslate는 공개 API 키를 노출합니다. 로컬, 테스트 또는 스테이징 환경에 있으면 (isProduction is false), 새 문자열이 번역을 위해 전송되도록 비밀 read/write API 키를 사용합니다.

지금까지는 Next.js 애플리케이션에 지원되는 언어 목록만 설정했습니다. 다음으로 할 일은 모든 페이지의 번역을 가져오는 것입니다. 이를 위해서는 요구사항에 따라 getTacoTranslateStaticProps 또는 getTacoTranslateServerSideProps 중 하나를 사용하면 됩니다.

이 함수들은 세 개의 인수를 받습니다: 하나는 Next.js Static Props Context 객체, 하나는 TacoTranslate 설정, 그리고 선택적인 Next.js 속성들입니다. 참고로 revalidategetTacoTranslateStaticProps에서 기본값으로 60으로 설정되어 있어 번역이 최신 상태로 유지됩니다.

페이지에서 어느 함수를 사용하려면, 예를 들어 /pages/hello-world.tsx 같은 페이지 파일이 있다고 가정해 보겠습니다.

/pages/hello-world.tsx
import {Translate} from 'tacotranslate/react';
import getTacoTranslateStaticProps from 'tacotranslate/next/get-static-props';
import tacoTranslateClient from '../tacotranslate-client';

export async function getStaticProps(context) {
	return getTacoTranslateStaticProps(context, {client: tacoTranslateClient});
}

export default function Page() {
	return <Translate string="Hello, world!"/>;
}

이제 모든 React 컴포넌트 내에서 문자열을 번역하기 위해 Translate 컴포넌트를 사용할 수 있습니다.

import {Translate} from 'tacotranslate/react';

function Component() {
	return <Translate string="Hello, world!"/>
}

5단계: 배포하고 테스트하세요!

이제 완료되었습니다! 이제 Translate 컴포넌트에 문자열을 추가하면 Next.js 애플리케이션이 자동으로 번역됩니다. 참고로 API 키에 read/write 권한이 있는 환경에서만 번역할 새로운 문자열을 생성할 수 있습니다. 배포 전에 그런 API 키로 프로덕션 애플리케이션을 테스트하고 새 문자열을 추가할 수 있는 폐쇄적이고 안전한 스테이징 환경을 마련하는 것을 권장합니다. 이렇게 하면 누군가가 비밀 API 키를 탈취하는 것을 방지하고, 관련 없는 새로운 문자열을 추가해 번역 프로젝트가 불필요하게 확장되는 것을 막을 수 있습니다.

Be sure to check out the complete example over at our GitHub profile. There, you’ll also find an example of how to do this using the App Router! If you encounter any problems, feel free to reach out, and we’ll be more than happy to help.

TacoTranslate lets you automatically localize your React applications quickly to and from over 75 languages. Get started today!

Nattskiftet의 제품노르웨이산