이 페이지와 원하는 AI 어시스턴트를 사용하여 문서를 요약합니다
이 페이지의 콘텐츠는 AI를 사용하여 번역되었습니다.
영어 원본 내용의 최신 버전을 보기이 문서를 개선할 아이디어가 있으시면 GitHub에 풀 리퀘스트를 제출하여 자유롭게 기여해 주세요.
문서에 대한 GitHub 링크문서의 Markdown을 클립보드에 복사
Intlayer를 사용하여 next-intl 기반 Next.js 15 웹사이트 번역하기 | 국제화(i18n)
이 가이드는 Next.js 15 (App Router) 앱에서 next-intl의 모범 사례를 안내하며, 강력한 번역 관리 및 자동화를 위해 Intlayer를 어떻게 적용하는지 보여줍니다.
next-i18next vs next-intl vs Intlayer 비교를 참고하세요.
- 주니어 개발자: 단계별 섹션을 따라가며 작동하는 다국어 앱을 만드세요.
- 중급 개발자: 페이로드 최적화와 서버/클라이언트 분리에 주의하세요.
- 시니어 개발자: 정적 생성, 미들웨어, SEO 통합, 자동화 훅에 주목하세요.
다룰 내용:
- 설정 및 파일 구조
- 메시지 로딩 최적화
- 클라이언트 및 서버 컴포넌트 사용법
- 메타데이터, 사이트맵, 로봇을 통한 SEO
- 로케일 라우팅을 위한 미들웨어
- Intlayer 추가 (CLI 및 자동화)
next-intl을 사용하여 애플리케이션 설정하기
next-intl 의존성을 설치하세요:
코드를 클립보드에 복사
코드를 클립보드에 복사
설정 및 콘텐츠 로딩
라우트에서 필요한 네임스페이스만 로드하고 로케일을 조기에 검증하세요. 서버 컴포넌트는 가능하면 동기적으로 유지하고, 클라이언트에는 필요한 메시지만 전달하세요.
코드를 클립보드에 복사
코드를 클립보드에 복사
코드를 클립보드에 복사
클라이언트 컴포넌트에서의 사용법
카운터를 렌더링하는 클라이언트 컴포넌트의 예를 들어보겠습니다.
번역 (형식 재사용; 원하는 대로 next-intl 메시지에 로드하세요)
코드를 클립보드에 복사
코드를 클립보드에 복사
클라이언트 컴포넌트
코드를 클립보드에 복사
페이지 클라이언트 메시지에 "about" 메시지를 추가하는 것을 잊지 마세요 (클라이언트가 실제로 필요한 네임스페이스만 포함하세요).
서버 컴포넌트에서의 사용법
이 UI 컴포넌트는 서버 컴포넌트이며 클라이언트 컴포넌트 아래에서 렌더링될 수 있습니다 (페이지 → 클라이언트 → 서버). 미리 계산된 문자열을 전달하여 동기적으로 유지하세요.
코드를 클립보드에 복사
노트:
formattedCount는 서버 측에서 계산하세요 (예:const initialFormattedCount = format.number(0)).- 서버 컴포넌트에 함수나 직렬화할 수 없는 객체를 전달하지 마십시오.
코드를 클립보드에 복사
코드를 클립보드에 복사
코드를 클립보드에 복사
로케일 라우팅을 위한 미들웨어
로케일 감지 및 라우팅을 처리하는 미들웨어를 추가하세요:
코드를 클립보드에 복사
모범 사례
- html
lang및dir설정:src/app/[locale]/layout.tsx에서getLocaleDirection(locale)을 통해dir을 계산하고<html lang={locale} dir={dir}>로 설정하세요. - 네임스페이스별 메시지 분리: 로케일 및 네임스페이스별로 JSON을 구성하세요 (예:
common.json,about.json). - 클라이언트 페이로드 최소화: 페이지에서
NextIntlClientProvider에 필요한 네임스페이스만 전송하세요 (예:pick(messages, ['common', 'about'])). - 정적 페이지 선호:
export const dynamic = 'force-static'를 내보내고 모든locales에 대해 정적 파라미터를 생성하세요. - 동기 서버 컴포넌트: 비동기 호출이나 직렬화 불가능한 함수 대신 미리 계산된 문자열(번역된 라벨, 포맷된 숫자)을 전달하세요.
next-intl 위에 Intlayer 구현하기
intlayer 의존성을 설치하세요:
코드를 클립보드에 복사
intlayer 구성 파일을 생성하세요:
코드를 클립보드에 복사
package.json 스크립트 추가:
코드를 클립보드에 복사
노트:
intlayer fill: 구성된 로케일을 기반으로 AI 공급자를 사용하여 누락된 번역을 채웁니다.intlayer test: 누락되거나 잘못된 번역을 검사합니다(CI에서 사용).
인수 및 공급자를 구성할 수 있습니다. 자세한 내용은 Intlayer CLI를 참조하세요.