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

基于WPML的菜单按钮翻译:求JS/PHP最简实现方案

解决方案:翻译按钮文字(基于WPML语言后缀)

PHP 最简实现(推荐)

利用WPML内置函数直接获取当前语言,后端渲染文本,避免前端闪烁且更可靠:

<div class="nav-button">
    <a href="#" class="button">
        <svg ...></svg>
        <span><?php echo icl_get_current_language() === 'ru' ? 'Связаться с нами' : 'Contact Us'; ?></span>
    </a>
</div>

如果需要扩展多语言,可改用映射数组:

<?php
$contactLabels = [
    'en' => 'Contact Us',
    'ru' => 'Связаться с нами',
    // 可添加其他语言代码对应文本
];
$lang = icl_get_current_language();
$label = $contactLabels[$lang] ?? $contactLabels['en'];
?>
<div class="nav-button">
    <a href="#" class="button">
        <svg ...></svg>
        <span><?php echo $label; ?></span>
    </a>
</div>

JS 最简实现(前端动态替换)

通过解析当前URL路径判断语言,动态修改按钮文本:

const contactTextEl = document.querySelector('.nav-button .button span');
const path = window.location.pathname;

// 匹配俄语路径后缀
if (path.startsWith('/ru/')) {
    contactTextEl.textContent = 'Связаться с нами';
}

// 多语言扩展版
/*
const textMap = {
    '/en/': 'Contact Us',
    '/ru/': 'Связаться с нами'
};
for (const [langPath, text] of Object.entries(textMap)) {
    if (path.startsWith(langPath)) {
        contactTextEl.textContent = text;
        break;
    }
}
*/

优先推荐PHP方案:后端直接渲染目标文本,不会出现前端加载时的原文本闪烁问题,且WPML的语言检测函数比前端解析URL更准确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 16:15:26