不需安装插件,解决WooCommerce不能加载语言包问题

以下以斯洛伐克语言为例

检查 WooCommerce 当前语言包加载状态

add_action('admin_notices', 'check_woocommerce_translation_status');
function check_woocommerce_translation_status() {
    if ( ! is_admin() ) return;
    $locale = get_locale();
    $plugin_textdomain = 'woocommerce';
    // 获取已加载的翻译对象
    $translations = get_translations_for_domain( $plugin_textdomain );
    // 测试几个常见 WooCommerce 文本
    $test_strings = [
        'Add to cart',
        'Related products',
        'Billing details',
        'First name',
        'Default sorting',
    ];
    echo '<div class="notice notice-info"><strong>WooCommerce Slovak Translation Debug:</strong><br>';
    echo 'Aktuálne nastavený jazyk: <code>' . esc_html($locale) . '</code><br><br>';
    foreach ( $test_strings as $str ) {
        $translated = translate( $str, $plugin_textdomain );
        echo esc_html($str) . ' → <strong>' . esc_html($translated) . '</strong><br>';
    }
    echo '</div>';
}

将上面的代码复制粘贴到:
wp-content/themes/你的主題/functions.php
建议放在文件最底部以便删除。
刷新 WordPress 后台仪表盘(/wp-admin)页面。

=======================================

将以下代码添加到主题的 functions.php 中:
add_action('init', function() {
    unload_textdomain('woocommerce'); // 卸载已加载的英文语言包
    load_textdomain('woocommerce', WP_LANG_DIR . '/plugins/woocommerce-sk.mo');
});
这段代码将强制加载斯洛伐克语语言文件,即便 WordPress 默认没加载成功。

========================================

步骤 1 删除原来的语言包文件/wp-content/languages/plugins/

woocommerce-sk.po
woocommerce-sk.mo

这两个文件一般是找不到了

步骤 2 重新从 WordPress 翻译官网下载官方语言包

https://translate.wordpress.org/projects/wp-plugins/woocommerce/stable/sk/default/

在页面底部,你会看到“导出”选项:
    导出为 .mo 文件:选择“Machine Object Message Catalog (.mo)”格式,然后点击“导出”按钮。
    导出为 .po 文件:选择“Portable Object Message Catalog (.po/.pot)”格式,然后点击“导出”按钮。

下载后重新命名为

woocommerce-sk.po
woocommerce-sk.mo

步骤 3 上传语言文件
将下载的两个文件上传至你网站的以下目录:
/wp-content/languages/plugins/

经测试成功后,把前面那段测试代码删除,留着强制加载代码

posted on 2025-05-28 13:11  断掌  阅读(53)  评论(0)    收藏  举报

导航