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

nextjs国际化

引用:https://blog.csdn.net/qq_41180335/article/details/138034870

官方教程:https://nextjs.org/docs/app/building-your-application/routing/internationalization

创建一个动态路由的目录,,

next.js 13+ 获取路由参数,,可以通过props传递params

在这里插入图片描述
这个params中的 lang属性就是动态设置的路由值

  1. 创建dictionaries文件夹,里面放国际化的json

  2. 创建一个dictionaries.ts工具类,,根据传入的lang语言,返回对应的json:

import 'server-only'const dictionaries = {en: () => import('./dictionaries/en.json').then((module) => module.default),zh: () => import('./dictionaries/zh.json').then((module) => module.default),
}export const getDictionary = async (locale: 'en' | 'zh') =>dictionaries[locale]()
  1. 在page页面通过 params 获取到lang,,然后在根据lang加载json渲染页面

import { getDictionary } from './dictionaries.ts'export default async  function DemoPage({params}:{params:{lang:"en"|"zh"}}) {// var params = useParams();// const {lang} = paramslet dict = await getDictionary(params.lang)console.log(dict,"dict")return (<main className="flex min-h-screen flex-col items-center justify-between p-24">111---{"en"}<div>{dict.products.cart}</div></main>);
}

next的middleware.ts ,可以作为中间件,拦截路由,,在src目录下面写,不是项目根目录

相关文章:

  • Vue3 + TypeScript,使用provide提供只读的响应式数据的详细分析与解决方法
  • #define STEUER_A_H {PWM_A_ON}
  • C#中用 OxyPlot 在 WinForms 实现波形图可视化(附源码教程)
  • 深度理解spring——BeanFactory的实现
  • 通付盾入选苏州市网络和数据安全免费体验目录,引领企业安全能力跃升
  • ubuntu20.04(ROS noetic版)安装cartographer
  • leetcode28. 找出字符串中第一个匹配项的下标_简单KMP
  • 基于Django的权限管理平台
  • Pgvector+R2R搭建RAG知识库
  • 问道数码兽 怀旧剧情回合手游源码搭建教程(反查重优化版)
  • 前缀和-724.寻找数组的中心下标-力扣(LeetCode)
  • OpenAI图像生成gpt-image-1登场,开启创意新可能
  • GPT-4o最新图像生成完全指南:10大应用场景与提示词模板
  • 【Vue】TypeScript与Vue3集成
  • Java学习手册:JSON 数据格式基础知识
  • 1Panel+Halo快速部署:简化服务器管理与网站搭建流程探索
  • 并发设计模式实战系列(6):读写锁
  • 立马耀:通过阿里云 Serverless Spark 和 Milvus 构建高效向量检索系统,驱动个性化推荐业务
  • 设计仿真 | Adams回调函数功能解析
  • 上岸率85%+,25西电先进材料与纳米科技学院(考研录取情况)
  • 荣盛发展股东所持1.17亿股将被司法拍卖,起拍价约1.788亿元
  • 医学统计专家童新元逝世,终年61岁
  • “五一”假期预计全社会跨区域人员流动量超14亿人次
  • “女乘客遭顺风车深夜丢高速服务区”续:滴滴永久封禁两名涉事司机账号
  • “麒麟王”亮相上海彩市,体彩即开票“瑞兽家族”迎来新成员
  • 马上评丨又见酒店坐地起价,“老毛病”不能惯着