- next-intl 5.x 도입
- src/i18n/config.ts: LOCALES 상수, detectBrowserLocale, LOCALE_LABELS(국기/네이티브명)
- src/i18n/LocaleProvider.tsx: NextIntlClientProvider wrap + localStorage tasteby_locale 저장
- src/messages/{ko,en,ja,es}.json: 초기 30개 키 (header/actions/filter/restaurant/review 5 카테고리)
- src/components/LanguageSwitcher.tsx: 헤더용 드롭다운 (국기 + native, ARIA listbox, 44px 터치)
- providers.tsx: LocaleProvider로 AuthProvider 감싸기
- page.tsx 헤더에 LanguageSwitcher 배치
설계서: docs/design/352-i18n-skeleton/README.md (Approved)
언어 선택 근거:
- ko: 기본
- en: 글로벌 1순위
- ja: 일본 사용자 + 한국 음식 관광
- es: 5억 화자, 라틴아메리카 + 스페인 확장
미번역 키는 ko fallback. URL 라우팅(/en/)/SEO meta/사용자 콘텐츠 번역은 후속.
Refs: #352
42 lines
973 B
JSON
42 lines
973 B
JSON
{
|
|
"header": {
|
|
"search": "検索",
|
|
"login": "ログイン",
|
|
"logout": "ログアウト",
|
|
"menu": "メニュー",
|
|
"myReviews": "マイレビュー",
|
|
"favorites": "お気に入り"
|
|
},
|
|
"actions": {
|
|
"save": "保存",
|
|
"cancel": "キャンセル",
|
|
"delete": "削除",
|
|
"edit": "編集",
|
|
"confirm": "確認",
|
|
"close": "閉じる",
|
|
"loading": "読み込み中...",
|
|
"submit": "送信"
|
|
},
|
|
"filter": {
|
|
"title": "フィルター",
|
|
"cuisine": "料理ジャンル",
|
|
"price": "価格帯",
|
|
"region": "地域",
|
|
"channel": "チャンネル",
|
|
"reset": "リセット"
|
|
},
|
|
"restaurant": {
|
|
"rating": "評価",
|
|
"address": "住所",
|
|
"phone": "電話",
|
|
"website": "ウェブサイト",
|
|
"closed": "閉店",
|
|
"tempClosed": "一時休業"
|
|
},
|
|
"review": {
|
|
"title": "レビュー",
|
|
"write": "レビューを書く",
|
|
"noReviews": "まだレビューがありません"
|
|
}
|
|
}
|