当前位置: 首页 > news >正文

网站开发要点2345网址导航桌面版

网站开发要点,2345网址导航桌面版,wordpress flv,免费网站电视剧全免费next-intl 是为 Next.js 提供国际化(i18n)支持的强大库,getTranslations 是它在 服务器端加载翻译文本 时的重要函数,适用于 App Router 场景(如 app/ 目录下的页面、layout、server component)。 ✅ 安装 …

next-intl 是为 Next.js 提供国际化(i18n)支持的强大库,getTranslations 是它在 服务器端加载翻译文本 时的重要函数,适用于 App Router 场景(如 app/ 目录下的页面、layout、server component)。


✅ 安装 next-intl

如果你还没安装:

npm install next-intl

🌍 项目结构建议

.
├── app
│   ├── [locale]             # 动态路由处理多语言
│   │   ├── page.tsx
│   │   ├── layout.tsx
├── messages
│   ├── en.json
│   ├── zh.json
├── middleware.ts

📦 创建多语言 JSON 文件(如 messages/en.json

jsonCopyEdit
{"home": {"title": "Welcome to the site!","description": "This is a demo page."}
}

🛠 配置 middleware.ts

tsCopyEdit
import createMiddleware from 'next-intl/middleware';export default createMiddleware({locales: ['en', 'zh'],defaultLocale: 'en'
});export const config = {matcher: ['/', '/(en|zh)/:path*']
};

📚 使用 getTranslations(核心部分)

👇 示例:app/[locale]/page.tsx

tsxCopyEdit
import { getTranslations } from 'next-intl/server';export default async function HomePage() {const t = await getTranslations('home'); // 读取 "home" 命名空间return (<div><h1>{t('title')}</h1><p>{t('description')}</p></div>);
}

getTranslations服务器端函数,适用于 Server Component 中(也就是不能用于 use client 的组件中)。


📌 getTranslations 的参数说明

tsCopyEdit
const t = await getTranslations(namespace?: string);
  • namespace(可选):对应 JSON 中的顶层键,如 home
  • 返回的 t 是一个类似函数的对象,可用于 t('key') 获取翻译值。

如果你的翻译结构是这样的:

jsonCopyEdit
{"hello": "你好","user": {"greeting": "你好,{name}!"}
}

你可以这样用:

tsCopyEdit
const t = await getTranslations();
t('hello'); // "你好"
t('user.greeting', { name: '小明' }); // "你好,小明!"

⚠ 注意事项

  • getTranslations 只能在 服务器组件、layout.tsx 或 page.tsx 中使用。
  • 对于客户端组件,使用 useTranslations()(配合 use client)代替。
  • 多语言的 JSON 文件应放在统一的 messages/ 目录,并按语言命名。

🎯 小技巧:动态传参

tsCopyEdit
const t = await getTranslations();
const name = 'David';
t('user.greeting', { name }); // "Hello, David!"

💡 配合 layout 使用

tsxCopyEdit
// app/[locale]/layout.tsx
import { getTranslations } from 'next-intl/server';export default async function LocaleLayout({ children }: { children: React.ReactNode }) {const t = await getTranslations('layout');return (<><header>{t('title')}</header>{children}</>);
}

🧪 适用于的场景

  • SEO 友好的 SSR 多语言页面
  • 服务端渲染组件中需要使用国际化
  • App Router 模式下使用 layout.tsxpage.tsxserver component
http://www.dtcms.com/a/584780.html

相关文章:

  • 网站前台空白沪上家居装修官网
  • 多种五屏网站建设wordpress文章怎么消失
  • 软件网站模版360网站建设
  • 自己做的网站打不开是什么原因自动提卡的网站怎么做的
  • 邳州建设银行招聘网站wordpress数据库备份到本地
  • 提供手机网站建设企业做网站用的动漫资料
  • 网页设计建网站如何快速制作网页界面
  • seo网站营销推广全...重庆公司社保开户流程
  • 个人做电梯网站北京网站设计必看刻
  • 怎么免费增加网站流量吗深圳市企业服务体系平台建设方案
  • 厦门做英文网站住总第三开发建设有限公司网站
  • 重庆神态网站建设景观设计展板
  • 青海省交通建设管理局网站网站的主流趋势
  • 网页设计模板素材网站大全卖水果网站建设的策划书
  • 什么公司做网站会提供源代码电脑如何下载网页视频文件
  • 培训报名成都做seo网站公司
  • 宁波网站制作 收费标准营销网站定制的优势
  • 织梦做的网站被黑了正在进入一站式服务平台
  • 制作企业网站页面实训项目企业电子商务网站开发数据库设计
  • 企业网站制作 厦门宿迁网站seo
  • 未来做哪些网站能致富高级ppt模板免费下载
  • 做海报兼职网站wordpress编辑器代码
  • 电子商务网站建设包括哪些内容开发个直播app软件多少钱
  • 我想注册一个网站怎么注册哦咪咖网站建设
  • 江门市蓬江区最新发布湖南优化推广
  • 网站建设的基本要素南宁制作企业服装
  • 苏州h5网站建设价钱网站域名被注销
  • 临平做网站电话什么是网络营销推广三板斧
  • 做网站 给图片加链接网站换关键词
  • 深圳网站建设设计seo教程优化