WordPress 插件 · 开发文档

NuxareLang

零内容副本的双引擎多语言插件 —— 结构化字段翻译 + 全站字符串字典,单内容 ID、无语言标记、无 post_meta 膨胀。

版本 v1.3.15 主类 Nuxare_Lang_Bootstrap 许可 专有 日期 2026-08-31
01 · 概览

插件元数据

NuxareLang 以「单一原始内容 + 翻译表」替代内容复制,支持文章、产品、媒体、分类多语言管理,hreflang SEO、浏览器语言识别、CSV 批量、AI 翻译。

插件名
NuxareLang
版本
1.3.15
主类
Nuxare_Lang_Bootstrap
加载方式
Bootstrap 在文件解析期直接 require 模块(无 autoloader)
数据表
仅 2 张自定义表:nuxare_lang_translationsnuxare_lang_strings
翻译对象
文章、页面、产品、媒体、分类法、自定义字段
AI 引擎
DeepL / 百度 / 腾讯 / 火山 / OpenAI / DeepSeek …
依赖库
assets/lib/simplehtmldom/simple_html_dom.php(DOM 解析,本地)
02 · 哲学

三位一体 · 零膨胀

零内容副本

不为每门语言复制文章/页面,单一原始内容 ID,翻译存于独立表,避免内容爆炸与同步地狱。

零语言标记

不在正文里插入 [lang] 等短码标记,原文保持纯净,翻译通过 WP 钩子过滤输出。

零 post_meta 膨胀

翻译不走 post_meta,避免 meta 表无限膨胀;统一收口到翻译表。

03 · 架构

双引擎翻译流水线

结构化字段引擎 + 全站字符串字典引擎,分工互补。

引擎 A · 结构化字段翻译

Nuxare_Lang_Front_Hooks 通过 WP 钩子过滤 the_title / the_content / the_excerpt / get_post_meta 及 WooCommerce 产品字段,按语言返回对应翻译。面向「有结构」的内容字段。

引擎 B · 全站字符串字典

Nuxare_Lang_String_Translation 用输出缓冲(OB)+ simple_html_dom 解析整页,对主题/插件硬编码字符串扫描入字典表 nuxare_lang_strings,批量保存后按语言替换。面向「无结构」的界面字符串。

请求流程

URL → Nuxare_Lang_Router 识别语言前缀 → 设置当前语言 → 结构化钩子过滤内容字段 → OB 缓冲 → 字符串字典替换硬编码字符串 → hreflang/canonical 输出(Nuxare_Lang_SEO / Nuxare_Lang_Sitemap)。

缓存层

Nuxare_Lang_Cache 基于 transient / object cache 缓存翻译查询,降低重复请求开销。

兼容桥接

Nuxare_Lang_Integrations 处理 WooCommerce / Elementor / ACF / WP Rocket / W3TC;legacy-compat.php 兼容旧标识符。

04 · 模块参考

模块清单(20 模块)

核心与数据

类 / 文件职责
Nuxare_Lang_Bootstrap (bootstrap.php)模块加载顺序、激活/停用、默认设置、升级、后台菜单
Nuxare_Lang_Database (database.php)两张表 CRUD:install() 建翻译表 + 字符串表
Nuxare_Lang_Cache (cache.php)翻译缓存层(transient / object cache)
Nuxare_Lang_Activity_Log活动日志

翻译双引擎

职责
Nuxare_Lang_Front_Hooks结构化字段钩子:the_title/the_content/the_excerpt/get_post_meta、WooCommerce 产品字段
Nuxare_Lang_String_TranslationOB + simple_html_dom 解析,全局字符串字典,页面扫描与批量保存
Nuxare_Lang_Front_Editor管理栏「翻译此页」按钮、内联翻译编辑器(带预览)
Nuxare_Lang_AI_Translator机器/AI 翻译:DeepL、百度、腾讯、火山、OpenAI、DeepSeek 等
Nuxare_Lang_CSVCSV 导入/导出解析与生成

语言 / 路由 / SEO

职责
Nuxare_Lang_Language主/次语言码、检测、语言码列表
Nuxare_Lang_RouterURL 路由:语言前缀、hreflang 输出、canonical
Nuxare_Lang_Switcher语言切换器、浏览器语言检测
Nuxare_Lang_SEO多语言标题/描述、OG/Twitter
Nuxare_Lang_Sitemap多语言 sitemap
Nuxare_Lang_Media_Sync媒体多语言标题/alt 同步

后台 / 集成 / 权限

职责
Nuxare_Lang_Settings后台设置面板 + 维护工具
Nuxare_Lang_Admin_Meta_Box后台多语言标签编辑面板
Nuxare_Lang_IntegrationsWooCommerce / Elementor / ACF / WP Rocket / W3TC 兼容
Nuxare_Lang_Capabilities基于角色的权限(4 项 capability)
legacy-compat.php旧 meta/标识符兼容桥
05 · 目录结构

文件组织

nuxare-lang/ ├── nuxare-lang.php # 主入口 ├── uninstall.php ├── includes/ │ ├── class-nuxare-lang-bootstrap.php │ ├── class-nuxare-lang-database.php │ ├── class-nuxare-lang-front-hooks.php # 引擎 A │ ├── class-nuxare-lang-string-translation.php # 引擎 B │ ├── class-nuxare-lang-front-editor.php │ ├── class-nuxare-lang-language.php │ ├── class-nuxare-lang-router.php │ ├── class-nuxare-lang-switcher.php │ ├── class-nuxare-lang-integrations.php │ ├── class-nuxare-lang-capabilities.php │ ├── class-nuxare-lang-csv.php │ ├── class-nuxare-lang-ai-translator.php │ ├── class-nuxare-lang-settings.php │ ├── class-nuxare-lang-admin-meta-box.php │ ├── class-nuxare-lang-cache.php │ ├── class-nuxare-lang-activity-log.php │ ├── class-nuxare-lang-seo.php │ ├── class-nuxare-lang-sitemap.php │ ├── class-nuxare-lang-media-sync.php │ └── legacy-compat.php ├── assets/ │ ├── css/ # design-tokens / admin / editor / front-editor / switcher │ ├── js/ # admin / ai-translator / editor / front-editor / gutenberg / scan / seo-admin / switcher │ ├── flags/ # 60 个国旗 SVG │ └── lib/simplehtmldom/simple_html_dom.php ├── bin/package.py ├── languages/nuxare-lang.pot └── docs/ # 功能说明书 / SEO 规格 / 开发基线
06 · 功能矩阵

全方位翻译能力

结构化字段翻译

文章/产品/页面的标题、正文、摘要、自定义字段、WooCommerce 产品字段按语言切换。

整页字符串翻译

主题/插件硬编码界面字符串扫描入字典,批量翻译,无需改源码。

支持翻译对象

文章、页面、产品、媒体、分类法、自定义字段全覆盖。

语言切换器

国旗 + 语言码切换器,支持浏览器语言自动检测与跳转。

自动翻译

多 AI 引擎一键批量翻译,支持 DeepL/OpenAI/百度/腾讯/火山/DeepSeek。

生态兼容

WooCommerce、Elementor、ACF、WP Rocket、W3TC 兼容。

后台管理面板

统一设置 + 维护工具 + 后台多语言标签编辑器 + 内联翻译编辑器。

hreflang SEO

多语言 hreflang、canonical、OG/Twitter、多语言 sitemap 自动输出。

CSV 批量

翻译数据 CSV 导入导出,便于离线协作与多站点迁移。

07 · 数据模型

两张自定义表

用途
nuxare_lang_translations结构化字段翻译:对象类型 + 对象 ID + 字段 + 语言 → 译文
nuxare_lang_strings全站字符串字典:字符串原文 + 来源 + 语言 → 译文,OB 扫描批量写入

原文始终单一存储,翻译以「对象 + 字段 + 语言」或「字符串 + 语言」为键查表;查询结果经 Nuxare_Lang_Cache 缓存。

08 · 钩子与扩展点

关键钩子

钩子类型说明
the_title / the_content / the_excerptfilter结构化引擎按语言替换字段输出
get_post_metafilter自定义字段翻译替换
template_redirect / initaction路由识别语言前缀、浏览器语言检测跳转
wp_headactionhreflang / canonical / OG 多语言标签输出
WooCommerce 产品字段钩子filter产品名称/描述/属性多语言
能力

Nuxare_Lang_Capabilities 定义 4 项 capability 控制翻译/导入导出/设置权限。

09 · 命名约定

命名规范

对象规范示例
PHP 类大驼峰 + 下划线Nuxare_Lang_String_Translation
文件名小写连字符class-nuxare-lang-string-translation.php
选项小写下划线nuxare_lang_*
数据表小写下划线nuxare_lang_translations
JS / CSS小写连字符nuxare-lang-switcher.js
文本域小写下划线nuxare-lang(.pot 在 languages/)
10 · 扩展指南

新增翻译字段 / AI 引擎

1
注册翻译字段:在 Front_Hooks 为目标字段挂 add_filter,按 Nuxare_Lang_Language::current() 返回译文,缺省回原文。
2
新增 AI 引擎:在 AI_Translator 增引擎分支,实现「请求 → 取译文 → 落表」并接入设置面板与 ai-translator.js
3
接入字符串:界面字符串自动被 OB 扫描入字典;如需手动登记,调用 String_Translation 的 scan/save 接口。