Next.js WordPress Starter国际化支持:多语言网站构建完整指南
Next.js WordPress Starter国际化支持多语言网站构建完整指南【免费下载链接】nextjs-wordpress-starterA headless starter for WordPress powered by Next.js.项目地址: https://gitcode.com/gh_mirrors/ne/nextjs-wordpress-starterNext.js WordPress Starter是一个功能强大的无头CMS解决方案它将WordPress的内容管理能力与Next.js的现代前端框架完美结合。本教程将带你了解如何为这个强大的 starter 项目添加全面的国际化支持轻松构建面向全球用户的多语言网站。国际化架构概览前后端协同方案Next.js WordPress Starter的国际化实现需要前端和后端的协同工作。WordPress作为内容管理后端负责多语言内容的创建和管理Next.js作为前端框架则处理语言切换、路由国际化和内容展示。图Next.js WordPress Starter前后端架构展示国际化支持需要两边协同配置核心实现组件后端WordPress多语言插件 WP GraphQL国际化扩展前端Next.js国际化路由 翻译管理库数据传输GraphQL查询多语言内容后端配置WordPress多语言内容管理推荐插件组合要在WordPress中实现多语言内容管理推荐使用以下插件组合Polylang轻量级多语言内容管理插件支持自定义文章类型和分类法的翻译WP GraphQL Polylang为GraphQL API添加多语言支持Advanced Custom Fields (ACF)管理多语言自定义字段这些插件可以通过WordPress后台的插件安装界面搜索并安装安装完成后需要激活并进行基础配置。内容翻译工作流在Polylang设置中配置网站支持的语言如中文、英文、日文等为每种语言创建对应的菜单确保导航也支持多语言切换图在WordPress后台设置多语言菜单确保不同语言版本有独立导航结构创建或编辑内容时使用Polylang提供的翻译功能为每种语言创建对应内容前端实现Next.js国际化配置安装国际化依赖首先需要安装Next.js国际化相关的依赖包。在项目根目录执行以下命令npm install next-translate react-i18next i18next配置国际化文件在项目根目录创建i18n.json配置文件{ locales: [zh-CN, en, ja], defaultLocale: zh-CN, pages: { *: [common], /: [home], /about: [about] } }创建翻译文件目录结构/public/locales/ /zh-CN/ common.json home.json /en/ common.json home.json /ja/ common.json home.json配置环境变量在Vercel或本地开发环境中添加国际化相关的环境变量图在Vercel后台配置国际化相关环境变量添加以下环境变量NEXT_PUBLIC_SUPPORTED_LANGUAGESzh-CN,en,ja NEXT_PUBLIC_DEFAULT_LANGUAGEzh-CN实现国际化路由修改next.config.js文件添加国际化配置const nextConfig { i18n: { locales: [zh-CN, en, ja], defaultLocale: zh-CN, }, // 其他配置... }数据获取多语言内容查询GraphQL查询多语言内容在lib/wordpress/connector.js中配置GraphQL客户端添加语言参数支持const query gql query GetPageBySlug($slug: ID!, $language: String!) { page(id: $slug, idType: URI, language: $language) { title content slug language { code } } } ;页面组件中使用多语言数据在页面组件中通过语言参数获取对应语言的内容export async function getStaticProps({ locale }) { const { data } await client.query({ query: GET_PAGE, variables: { slug: home, language: locale }, }); return { props: { page: data.page, locale, }, }; }语言切换组件实现创建一个语言切换组件放在导航栏中// components/molecules/Navigation/LanguageSwitcher.js import { useRouter } from next/router; const LanguageSwitcher () { const router useRouter(); const { locales, locale: currentLocale } router; return ( div classNamelanguage-switcher {locales.map((locale) ( button key{locale} onClick{() router.push(router.asPath, router.asPath, { locale })} disabled{locale currentLocale} {locale} /button ))} /div ); }; export default LanguageSwitcher;将此组件添加到导航组件中位置在components/molecules/Navigation/Navigation.js。测试与部署本地测试启动开发服务器进行测试npm run dev访问不同语言版本的网站验证内容是否正确切换中文http://localhost:3000英文http://localhost:3000/en日文http://localhost:3000/ja部署注意事项确保所有翻译文件都已提交到代码仓库在部署平台如Vercel中正确配置环境变量测试生产环境中的语言切换功能和内容加载高级优化提升国际化用户体验自动检测用户语言在_app.js中添加语言自动检测逻辑import { useEffect } from react; import { useRouter } from next/router; function MyApp({ Component, pageProps }) { const router useRouter(); useEffect(() { // 仅在首次加载且未指定语言时运行 if (!router.query.lang) { const userLang navigator.language || navigator.userLanguage; const supportedLangs process.env.NEXT_PUBLIC_SUPPORTED_LANGUAGES.split(,); // 检查用户语言是否受支持 const defaultLang process.env.NEXT_PUBLIC_DEFAULT_LANGUAGE; const lang supportedLangs.includes(userLang) ? userLang : defaultLang; if (lang ! defaultLang) { router.push(/${lang}); } } }, []); return Component {...pageProps} /; }SEO优化为多语言页面添加hreflang标签在components/common/Meta.js中实现import Head from next/head; const Meta ({ page, locale }) { const supportedLangs process.env.NEXT_PUBLIC_SUPPORTED_LANGUAGES.split(,); return ( Head {/* 其他meta标签 */} {supportedLangs.map(lang ( link key{lang} relalternate hreflang{lang} href{https://yourdomain.com/${lang process.env.NEXT_PUBLIC_DEFAULT_LANGUAGE ? : lang}/${page.slug}} / ))} /Head ); };总结通过本教程你已经了解了如何为Next.js WordPress Starter添加全面的国际化支持。从后端WordPress的多语言内容管理到前端Next.js的国际化路由和翻译实现再到用户体验的优化这些步骤将帮助你构建一个真正面向全球用户的多语言网站。国际化是现代网站开发的重要组成部分特别是对于希望扩大全球影响力的企业和内容创作者。Next.js WordPress Starter的灵活架构使其能够轻松支持多语言功能为你的项目提供强大的国际化基础。【免费下载链接】nextjs-wordpress-starterA headless starter for WordPress powered by Next.js.项目地址: https://gitcode.com/gh_mirrors/ne/nextjs-wordpress-starter创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

计算机毕业设计之企业移动办公工作平台的设计与实现

计算机毕业设计之企业移动办公工作平台的设计与实现

企业移动办公工作平台是企业中重要的一环,企业移动办公工作是员工、人事部获取信息的主要渠道。于是经过考虑之后决定开发基于JSP技术设计与实现了一款简洁、轻便的企业移动办公工作平台。本系统解决了职位的主要问题,包括以下多个功能模块:员…

2026/7/10 16:43:02阅读更多 →
3分钟快速上手:免费开源OmenSuperHub终极控制指南

3分钟快速上手:免费开源OmenSuperHub终极控制指南

3分钟快速上手:免费开源OmenSuperHub终极控制指南 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否厌倦了…

2026/7/10 16:43:02阅读更多 →
工业级信号隔离与噪声免疫设计实战解析

工业级信号隔离与噪声免疫设计实战解析

1. 工业环境中的信号隔离挑战在电机控制、电力电子和自动化产线等工业场景中,电磁干扰(EMI)就像一场永不停止的电子风暴。我曾在某变频器项目中,测量到控制线上高达2kV/μs的瞬态电压——这足以让未受保护的MCU瞬间"失忆"。FOD4216这类光耦器件…

2026/7/10 16:37:55阅读更多 →
《Java 100 天进阶之路》第54篇:AQS抽象队列同步器(2026版)

《Java 100 天进阶之路》第54篇:AQS抽象队列同步器(2026版)

第54篇:AQS抽象队列同步器(2026版) 📌 系列导航:《Java 100 天进阶之路》完整目录 | ⬅️ 上一篇:第53篇:volatile与JMM | ➡️ 下一篇:第55篇:线程池ThreadPoolExecutor…

2026/7/10 20:28:23阅读更多 →
为什么Nemotron-Labs-Audex-30B-A3B能在保持文本智能的同时实现音频理解?深度技术解析

为什么Nemotron-Labs-Audex-30B-A3B能在保持文本智能的同时实现音频理解?深度技术解析

为什么Nemotron-Labs-Audex-30B-A3B能在保持文本智能的同时实现音频理解?深度技术解析 【免费下载链接】Nemotron-Labs-Audex-30B-A3B 项目地址: https://ai.gitcode.com/hf_mirrors/nvidia/Nemotron-Labs-Audex-30B-A3B Nemotron-Labs-Audex-30B-A3B是一款…

2026/7/10 20:28:23阅读更多 →
终极指南:使用llama-nemotron-embed-vl-1b-v2构建高效的视觉文档检索应用 [特殊字符]

终极指南:使用llama-nemotron-embed-vl-1b-v2构建高效的视觉文档检索应用 [特殊字符]

终极指南:使用llama-nemotron-embed-vl-1b-v2构建高效的视觉文档检索应用 🚀 【免费下载链接】llama-nemotron-embed-vl-1b-v2 项目地址: https://ai.gitcode.com/hf_mirrors/nvidia/llama-nemotron-embed-vl-1b-v2 在当今AI驱动的信息时代&…

2026/7/10 20:28:23阅读更多 →
掌握三指拖拽:在Windows上解锁macOS级触控板操作体验

掌握三指拖拽:在Windows上解锁macOS级触控板操作体验

掌握三指拖拽:在Windows上解锁macOS级触控板操作体验 【免费下载链接】ThreeFingersDragOnWindows Enables macOS-style three-finger dragging functionality on Windows Precision touchpads. 项目地址: https://gitcode.com/gh_mirrors/th/ThreeFingersDragOnW…

2026/7/10 20:28:23阅读更多 →
如何使用CST2026版本的无参优化器进行拓扑优化

如何使用CST2026版本的无参优化器进行拓扑优化

作者 | Ma Bin 在CST2026版本中,无参数优化器进行了大量的优化。其中最大的变化就是CST已经将Tosca的求解器集成在CST安装包内。这意味着之前因为某种神秘原因而无法使用ToscaCST组合进行无参数优化的用户,现在可以不安装Tosca直接使用CST完成无参优化的…

2026/7/10 20:28:23阅读更多 →
革命性统一音频-文本大语言模型:深入解析Nemotron-Labs-Audex-30B-A3B的核心架构

革命性统一音频-文本大语言模型:深入解析Nemotron-Labs-Audex-30B-A3B的核心架构

革命性统一音频-文本大语言模型:深入解析Nemotron-Labs-Audex-30B-A3B的核心架构 【免费下载链接】Nemotron-Labs-Audex-30B-A3B 项目地址: https://ai.gitcode.com/hf_mirrors/nvidia/Nemotron-Labs-Audex-30B-A3B Nemotron-Labs-Audex-30B-A3B是一款突破性…

2026/7/10 20:23:22阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/10 12:10:00阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/10 12:29:21阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/10 4:59:05阅读更多 →
浏览器缓存行为深度解析:Chrome/Firefox/Safari 对 304 响应的 5 种触发场景对比

浏览器缓存行为深度解析:Chrome/Firefox/Safari 对 304 响应的 5 种触发场景对比

浏览器缓存行为深度解析:Chrome/Firefox/Safari 对 304 响应的 5 种触发场景对比当你在浏览器地址栏敲入一个网址时,背后可能隐藏着一场关于"要不要重新下载资源"的精密博弈。这场博弈的裁判是HTTP缓存机制,而304状态码则是这场博弈…

2026/7/10 0:00:01阅读更多 →
RoboWits:面向创造性问题求解的双臂机器人认知推理基准

RoboWits:面向创造性问题求解的双臂机器人认知推理基准

1. 项目概述:这不是又一个机器人抓取数据集,而是一次对“思考力”的压力测试 RoboWits——这个名字里藏着两个关键信号:“Robo”直指物理世界中的具身智能体,“Wits”则毫不掩饰地指向人类最核心的认知能力:机敏、判断…

2026/7/10 0:00:01阅读更多 →
5分钟完全指南:如何使用TegraRcmGUI图形化工具解锁Switch无限可能

5分钟完全指南:如何使用TegraRcmGUI图形化工具解锁Switch无限可能

5分钟完全指南:如何使用TegraRcmGUI图形化工具解锁Switch无限可能 【免费下载链接】TegraRcmGUI C GUI for TegraRcmSmash (Fuse Gele exploit for Nintendo Switch) 项目地址: https://gitcode.com/gh_mirrors/te/TegraRcmGUI TegraRcmGUI是一款专为Windows…

2026/7/10 0:00:01阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/10 13:39:09阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/9 15:50:44阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/10 17:29:22阅读更多 →