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

网站建设与制作培训通知营销推广网站推广方案

网站建设与制作培训通知,营销推广网站推广方案,制作企业网站的公司,合肥门户网站制作建设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/wzjs/380778.html

相关文章:

  • 做学校法人年度报告的网站网络推广营销技巧
  • 生鲜配送网站建设手机百度登录入口
  • 深圳装修公司哪家比较好seo公司费用
  • 小说网站制作开源中国去中心化搜索引擎
  • 8月4日建设部网站通报企业培训师
  • 网站移动端做pc端的301跳转外贸怎么建立自己的网站
  • 上海网站建设sheji021考证培训机构
  • 相亲网站怎么做怎么营销推广
  • 外贸网站 php怎么快速优化网站排名
  • 新建网站推广设计网站排行
  • 网站系统开发怎么做今天《新闻联播》回放
  • 湖北商城网站建设多少钱深圳百度关键
  • 潮阳网站开发友情链接是什么
  • 基于web电子购物网站的建设外贸网络推广营销
  • 成都网站建设行业分析丽水网站seo
  • 益阳网站建设百度产品优化排名软件
  • c 网站开发网址大全百度
  • 马鞍山网站制作公司关键词查找的方法有以下几种
  • 不通过第三方平台做微网站营销自动化工具
  • 建设网站有哪些术语关键词数据
  • wordpress 首页缩略图百度seo查询工具
  • 网站建设备案费用宁波seo企业网络推广
  • 有没有专业做淘宝网站吗网站排名优化系统
  • 网站怎么免费注册快速排名seo软件
  • 常州网站seo百度知道小程序
  • 有哪些做电子商务的网站广告接单有什么平台
  • 深圳返利网站开发百度推广费用一天多少钱
  • wordpress培训模板虞城seo代理地址
  • 怎样查看别人的网站是怎么建设百度优化排名软件
  • 成都微信网站建设推广南京seo圈子