不需安装插件,解决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/
经测试成功后,把前面那段测试代码删除,留着强制加载代码
浙公网安备 33010602011771号