You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

添加.mo和.po文件后WordPress主题仍无法翻译问题排查

主题翻译不生效的可能原因及排查方案

以下是导致你的立陶宛语翻译无法生效的常见原因,按优先级排查:

  • 文本域与文件名不匹配
    WordPress加载主题翻译文件时,默认会寻找格式为{text-domain}-{locale}.mo的文件。你当前的文件名是lt_LT.mo,但文本域是simppple,正确的文件名应该是simppple-lt_LT.mo(对应PO文件为simppple-lt_LT.po)。将文件名修改后,再测试是否生效。

  • 文本域拼写不一致
    检查主题代码中所有翻译函数(如__('文本内容', 'simppple')、_e('文本内容', 'simppple'))的第二个参数是否与你使用的simppple完全一致,包括字母数量(比如是否多写/少写了p)。如果主题内部用的是其他文本域(比如simpple),你的翻译文件会无法匹配。

  • 翻译文件路径错误
    确认/lang目录确实位于主题根目录下。如果你的主题是子主题,需要将get_template_directory()替换为get_stylesheet_directory(),因为前者指向父主题路径,后者才是子主题的路径。修改后的加载代码应为:

    function my_theme_load_theme_textdomain() {
        load_theme_textdomain( 'simppple', get_stylesheet_directory() . '/lang' );
    }
    add_action( 'after_setup_theme', 'my_theme_load_theme_textdomain' );
    
  • 缓存干扰
    清除以下缓存后再测试:

    • WordPress缓存插件(如WP Rocket、W3 Total Cache)的缓存
    • 服务器端的OPcache或页面缓存
    • 浏览器的本地缓存(可通过Ctrl+F5强制刷新)
  • 翻译函数未正确调用
    检查主题中的英文文本是否使用了WordPress标准翻译函数。如果文本是硬编码(直接写死英文,没有包裹在__()或_e()中),翻译文件无法生效。

  • MO文件编译异常
    重新用Poedit打开lt_LT.po文件,确认所有需要翻译的条目都已完成翻译,然后点击Poedit的「编译为MO」按钮,重新生成MO文件,替换原文件后测试。

  • 站点语言包未正确安装
    进入WordPress后台「设置-常规」,确认站点语言已切换为立陶宛语(lt_LT),且语言包已成功安装。如果语言包未安装,WordPress会自动 fallback 到英文。

  • 加载钩子优先级问题
    尝试提高文本域加载函数的优先级,确保它在主题其他功能之前执行:

    function my_theme_load_theme_textdomain() {
        load_theme_textdomain( 'simppple', get_template_directory() . '/lang' );
    }
    add_action( 'after_setup_theme', 'my_theme_load_theme_textdomain', 1 );
    

内容的提问来源于stack exchange,提问作者E R

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 06:22:43