Next.js App Router のAPIルートを多言語対応にするスキル。 UI は next-intl 等で対応済みのケースでも、APIエラーメッセージが日本語固定になりがち。 Accept-Language ヘッダーベースで自動切替する仕組みを提供。 ## アーキテクチャ ``` messages/ ja.json ← 日本語メッセージ en.json ← 英語メッセージ src/lib/i18n.ts ← ロケール検出 + t() 関数 ``` ## メッセージファイル構造 ```json // messages/ja.json { "api": { "authRequired": "ログインが必要です", "serverError": "エラーが発生しました", "pointsInsufficient": "ポイントが不足しています" } } // messages/en.json { "api": { "authRequired": "Login required", "serverError": "An error occurred", "pointsInsufficient": "Insufficient points" } } ``` ## i18n ユーティリティ ```typescript // src/lib/i18n.ts import ja from "../../messages/ja.json"; import en from "../../messages/en.json"; export type Locale = "ja" | "en"; export function detectLocale(acceptLanguage?: string | null): Locale { if (!acceptLanguage) return "ja"; const primary = acceptLanguage.split(",")[0]?.trim().toLowerCase().split(";")[0]; return primary?.startsWith("ja") ? "ja" : "en"; } export function createApiT(acceptLanguage?: string | null) { const locale = detectLocale(acceptLanguage); return (key: string) => { // ドット区切りでネスト解決 const keys = key.split("."); let value: unknown = { ja, en }[locale]; for (const k of keys) { value = (value as Record)?.[k]; } return typeof value === "string" ? value : key; }; } ``` ## APIルートでの使い方 ```typescript import { createApiT } from "@/lib/i18n"; export async function POST(req: NextRequest) { const t = createApiT(req.headers.get("accept-language")); if (!session) { return NextResponse.json({ error: t("api.authRequired") }, { status: 401 }); } } ``` ## 通貨の多言語対応 ```typescript // 価格表示もロケールに連動 export function formatPriceLabel(priceJpy: number, priceType: string, currency: "jpy" | "usd"): string {
Philosophy
Skillora では、スキルを売る人も買う人も同じコミュニティにいます。 気に入った作者の新作やアップデートを追いかけたり、自分も出品して還元を受け取ったり。 好きなクリエイターをフォローして、発見と応援をひとつの場所で。
npx skillora install nextjs-i18n-api購入後にターミナルで実行してください。
正規購入者にはインストールコマンド再実行で最新版が配信されます。
継続的な価値を提供します
Skilloraのスキルはライセンス認証で保護されており、定期的にアップデートされます。スクリーンショットやコピーでは最新版を受け取れず、バグ修正や新機能の恩恵も得られません。正規購入者には常に最新バージョンが自動配信されます。
利用規約を確認 →—
評価なし
まだレビューがありません。最初のレビューを書いてみましょう。
Free
無料で導入共有する
SNS・リンクで広める
Nextjs I18n Api — AIの使い方が変わるスキル
Next.js APIルート多言語化(Accept-Language日英自動切替)。トリガー: i18n、多言語化、国際化、翻訳
https://skillora.jp/skills/nextjs-i18n-api
この作者の他のスキル
このスキルに似たスキル
Font Selection
Freeフォント選定・タイプスケール・パフォーマンス最適化(Web/iOS/Android)。トリガー: フォント選定、タイポグラフィ、font selection、書体選び
Ui Ux Pro Max
FreeUI/UX design intelligence for web and mobile. 50+ styles, 161 palettes, 57 font pairings, 10 stacks. Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor,
Skillora Quick Publish
Freeスキルファイル渡すだけで全自動出品。ヒアリングなし即掲載。