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

Webflow HTML Embed+Weglot翻译:多语言嵌入代码切换方案求助

针对Weglot多语言环境配置不同邮件订阅嵌入代码的解决方案

方案1:通过Weglot客户端API动态加载对应语言表单

利用Weglot提供的初始化事件和语言检测方法,在页面加载完成后根据当前语言插入对应嵌入代码:

  1. 先在页面预留表单容器:
<div id="email-subscribe-container"></div>
  1. 编写JavaScript逻辑:
// 等待Weglot完成初始化
document.addEventListener('WeglotReady', function() {
  const currentLang = Weglot.getCurrentLang();
  const container = document.getElementById('email-subscribe-container');
  
  // 定义各语言对应的嵌入代码(替换为你的实际代码)
  const formConfigs = {
    'en': '<form action="https://your-en-mail-service.com/subscribe" method="POST"><input type="email" name="email" placeholder="Enter your email"><button type="submit">Subscribe</button></form>',
    'fr': '<form action="https://your-fr-mail-service.com/subscribe" method="POST"><input type="email" name="email" placeholder="Entrez votre email"><button type="submit">S\'abonner</button></form>',
    'zh': '<form action="https://your-zh-mail-service.com/subscribe" method="POST"><input type="email" name="email" placeholder="输入您的邮箱"><button type="submit">订阅</button></form>'
  };
  
  // 插入对应表单,无匹配则用默认语言
  container.innerHTML = formConfigs[currentLang] || formConfigs['en'];
  
  // 若嵌入代码含第三方脚本,需动态创建脚本标签(示例)
  if (currentLang === 'fr') {
    const script = document.createElement('script');
    script.src = 'https://your-fr-mail-service.com/embed.js';
    script.async = true;
    container.appendChild(script);
  }
});

方案2:监听语言切换事件实时更新表单

如果需要在用户切换语言时立即更新表单,可监听Weglot的languageChanged事件:

// 初始化默认语言表单
const container = document.getElementById('email-subscribe-container');
const formConfigs = { /* 同方案1的配置 */ };
container.innerHTML = formConfigs['en'];

// 监听语言切换
document.addEventListener('languageChanged', function(event) {
  const newLang = event.detail.lang;
  container.innerHTML = formConfigs[newLang] || formConfigs['en'];
  
  // 重新加载第三方脚本(若需要)
  const existingScripts = container.querySelectorAll('script');
  existingScripts.forEach(s => s.remove());
  
  if (newLang === 'zh') {
    const script = document.createElement('script');
    script.src = 'https://your-zh-mail-service.com/embed.js';
    script.async = true;
    container.appendChild(script);
  }
});

方案3:纯CSS控制多表单显示/隐藏

若嵌入代码无需动态加载脚本,可同时插入所有语言表单,通过Weglot自动添加的HTML语言类实现显示控制:

  1. 插入多语言表单:
<form class="subscribe-form lang-en" action="https://your-en-mail-service.com/subscribe">...</form>
<form class="subscribe-form lang-fr" action="https://your-fr-mail-service.com/subscribe">...</form>
<form class="subscribe-form lang-zh" action="https://your-zh-mail-service.com/subscribe">...</form>
  1. 添加CSS规则:
/* 默认隐藏所有表单 */
.subscribe-form {
  display: none;
}

/* 显示当前语言对应的表单 */
html.lang-en .lang-en,
html.lang-fr .lang-fr,
html.lang-zh .lang-zh {
  display: block;
}

注意事项

  • 确保Weglot初始化脚本在自定义代码之前加载,避免Weglot对象未定义错误
  • 第三方邮件服务的嵌入脚本可能需要在DOM插入后重新执行,需用动态创建脚本的方式处理
  • 测试所有语言切换场景,验证表单提交功能正常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 11:23:12