🌐 Next.js Metadata에 λ‹€κ΅­μ–΄ μ§€μ›ν•˜κΈ° (next-intl)

HaileyΒ·2024λ…„ 4μ›” 30일

next-intl

λͺ©λ‘ 보기
2/3

μ•žμ„  ν¬μŠ€νŠΈμ—μ„œ next-intl을 μ„€μΉ˜ν•˜κ³  μ‚¬μš©ν•˜λŠ” 방법을 μ•Œμ•„λ³΄μ•˜μŠ΅λ‹ˆλ‹€.

μ΄λ²ˆμ—λŠ” 메타데이터에 μ μš©ν•˜λŠ” 방법을 μ†Œκ°œν•΄ λ³΄κ² μŠ΅λ‹ˆλ‹€.

μ°Έκ³ ν•  λ§Œν•œ κ³΅μ‹λ¬Έμ„œ πŸ“‘
1. next-intl
2. Next.js 메타데이터
3. Next.js generateMetadata()


κ³Όμ •

λ¨Όμ €, 각 json νŒŒμΌμ— 메타데이터 λ‚΄μš©μ„ μž‘μ„±ν•©λ‹ˆλ‹€.

"Metadata": {
  "title": "...",
  "description": "...",
  ...
},

그리고 layout.tsx에 μ•„λž˜ μ½”λ“œλ₯Ό μž‘μ„±ν•΄ μ€λ‹ˆλ‹€.

Tip πŸ’‘ generateMetadata() ν•¨μˆ˜λŠ” Metadata object와 ν•¨κ»˜ μ‚¬μš©ν•  수 μ—†μŠ΅λ‹ˆλ‹€.
νŒŒμΌμ— export const metadata: Metadata = {...};이 μžˆλ‹€λ©΄ μ§€μ›Œμ£Όμ„Έμš”.

// app/[locale]/layout.tsx

import {getTranslations} from 'next-intl/server';
 
interface Params {
    params: { locale: string };
}

export async function generateMetadata({ params: { locale } }: Params) {
    const t = await getTranslations({ locale, namespace: 'Metadata' });

    return {
        title: t('title'),
        description: t('description'),
    };
}

κ²°κ³Ό

μ•„λž˜μ™€ 같이 titleκ³Ό description이 λ°”λ€ŒλŠ” 것을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.


profile
λΉ λ₯΄κ²Œ λ°œμ „ν•˜λŠ” ν”„λ‘ νŠΈμ—”λ“œ 개발자

0개의 λŒ“κΈ€