FinchUI 多语言网站翻译插件-404 页面会消耗翻译接口额度吗?

先说结论!

在当前 FinchUI 多语言网站插件与 Z-BlogPHP 的处理流程中,主题自带的 404 页面不会调用第三方机器翻译接口,不会消耗翻译额度。

image

一、什么情况下会显示主题 404 页面

当访问的网站地址不存在,且服务器将该请求转发给 Z-BlogPHP 的 index.php 处理时,Z-BlogPHP 会进入路由匹配流程。若没有任何路由匹配成功,系统会设置 HTTP 404 状态并渲染当前主题的 template/404.php。

因此,无论不存在的是文章地址、分类地址还是任意伪静态路径,只要最终由 Z-BlogPHP 接管并显示主题 404,都会使用主题的 404 模板。


二、多语言插件在正常页面中的翻译流程

正常页面处理时,插件会在页面开始阶段开启输出缓冲;页面模板、主题和其他插件输出完成后,再在页面结束阶段取得整段 HTML,进行链接改写、语言标记处理和正文机器翻译。

正常页面:
Index_Begin → 开启输出缓冲 → 路由与模板输出 → Index_End → 处理 HTML → 必要时请求翻译接口

只有执行到页面结束阶段,插件才会处理 HTML;并且只有非默认语言、非简繁互转、启用了翻译服务且本地缓存未命中的文本,才会请求第三方翻译接口。


三、404 页面为何不会翻译

404 的处理方式与正常页面不同。路由无法匹配后,Z-BlogPHP 会进入错误处理器,加载主题的 404 模板并立即结束本次 PHP 请求。

404 页面:
Index_Begin → 开启输出缓冲 → 路由未匹配 → 输出主题 404 模板 → 结束请求

不会进入:Index_End → HTML 翻译处理 → 翻译接口请求

主题 404 模板虽然会输出“页面不存在”“返回首页”等文字,但这些文字不会进入多语言插件的正文翻译处理步骤。PHP 结束请求时只会直接释放已有输出缓冲内容,不会执行插件在正常页面结束阶段注册的翻译处理。


四、FinchUI Store 主题的 404 文案来源

以 FinchUI Store 主题为例,template/404.php 使用的是主题本地语言包变量,例如:

{$language['404title']}
{$language['404loading']}
{$language['404home']}
{$language['404goback']}
{$language['404tips']}

这些内容来自主题自身的语言数组,不是通过 DeepL、Google、火山引擎、腾讯云、阿里云、百度、有道等在线翻译接口实时取得,因此本身也不会产生翻译服务费用。


五、需要区分的两类请求

请求类型是否执行主题 404是否消耗翻译额度
服务器直接返回静态 404否。PHP 和插件均不会执行。
Z-BlogPHP 路由未命中,显示主题 404否。请求在 404 输出后结束,不进入翻译处理。
404 页面自动跳转或用户点击返回首页后产生的新首页请求不适用首页按正常规则处理;仅缓存未命中的待翻译文本可能请求接口。


六、如何自行验证

  1. 在插件后台清理翻译缓存,并记录翻译服务商后台的用量。
  2. 连续访问几个不存在的非默认语言地址,例如 /en/not-found-a、/en/not-found-b。
  3. 检查 zb_users/cache/fui_multilang/en/ 是否新增 JSON 翻译缓存文件。
  4. 再次检查翻译服务商后台的请求数或字符消耗。

预期结果:仅访问主题 404 页面不会新增正文翻译 JSON 缓存,也不会让翻译服务商用量增长。

注意:如果 404 页面配置了自动返回首页,蜘蛛或访客随后请求首页是一次独立请求。应将首页请求与最初的 404 请求分开统计。

不喜欢1

本文链接:https://www.finchui.com/zblog-course/193.html

网友评论

猜你喜欢

热门商品
热门文章
热门标签
相关标签
FinchUI商店版

分享

复制链接

星岚工作室添加客服qq

上班时间:9:00-22:00
周六、周日:14:00-22:00
wechat
扫码添加客服微信