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://zh-tw.finchui.com/zblog-course/193.html

网友評論

猜你喜歡

熱門商品
熱門文章
熱門標簽
相關標簽
FinchUI商店版

分享

複製連結

星岚工作室添加客服qq

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