tao-shen Claude Opus 4.6 commited on
Commit
c30380c
·
1 Parent(s): 35a128a

fix: Chinese bubble display — clear _lastBubbleText on lang switch, fix zh fallbacks

Browse files

- Clear guest sprite _lastBubbleText when switching language so bubbles
re-render with correct language text
- Refresh Star's own bubble on language switch
- Fix remaining zh fallbacks to en (nameMap, welcomeTexts, bubbleTextMap)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

Files changed (2) hide show
  1. Dockerfile +1 -1
  2. frontend/electron-standalone.html +7 -3
Dockerfile CHANGED
@@ -1,4 +1,4 @@
1
- # OpenClaw on Hugging Face Spaces — Pre-built image (v4.0)
2
  # Uses official pre-built image to avoid 30+ minute builds on cpu-basic
3
 
4
  # ── Stage 1: Pull pre-built OpenClaw ─────────────────────────────────────────
 
1
+ # OpenClaw on Hugging Face Spaces — Pre-built image (v4.1)
2
  # Uses official pre-built image to avoid 30+ minute builds on cpu-basic
3
 
4
  # ── Stage 1: Pull pre-built OpenClaw ─────────────────────────────────────────
frontend/electron-standalone.html CHANGED
@@ -2690,7 +2690,7 @@
2690
  'guest_anim_6': '訪客アニメ 6'
2691
  }
2692
  };
2693
- const langMap = nameMap[lang] || nameMap.zh;
2694
  return langMap[stem] || stem;
2695
  }
2696
 
@@ -4696,7 +4696,7 @@ function toggleBrokerPanel() {
4696
  error: 'エラー発生!アラートエリアへ。'
4697
  }
4698
  };
4699
- const bubbleTextMap = bubbleTextMapByLang[uiLang] || bubbleTextMapByLang.zh;
4700
 
4701
  // 确保两位 demo 角色不会总是同一个状态(增加可观测性)
4702
  const pickJs = (exclude) => {
@@ -4809,7 +4809,7 @@ function toggleBrokerPanel() {
4809
  };
4810
  const langPack = BUBBLE_TEXTS[lang] || BUBBLE_TEXTS.en;
4811
  const oldTexts = Array.isArray(langPack.writing) ? [...langPack.writing] : [];
4812
- langPack.writing = welcomeTexts[lang] || welcomeTexts.zh;
4813
  showBubble();
4814
  // 还原
4815
  langPack.writing = oldTexts;
@@ -5545,6 +5545,10 @@ function toggleBrokerPanel() {
5545
  renderChatlog();
5546
  // Clear existing guest bubbles so they re-render in new language
5547
  Object.keys(guestBubbles).forEach(k => { if (guestBubbles[k]) { guestBubbles[k].destroy(); delete guestBubbles[k]; } });
 
 
 
 
5548
  }
5549
  function renderChatlog() {
5550
  const el = document.getElementById('chatlog-content');
 
2690
  'guest_anim_6': '訪客アニメ 6'
2691
  }
2692
  };
2693
+ const langMap = nameMap[lang] || nameMap.en;
2694
  return langMap[stem] || stem;
2695
  }
2696
 
 
4696
  error: 'エラー発生!アラートエリアへ。'
4697
  }
4698
  };
4699
+ const bubbleTextMap = bubbleTextMapByLang[uiLang] || bubbleTextMapByLang.en;
4700
 
4701
  // 确保两位 demo 角色不会总是同一个状态(增加可观测性)
4702
  const pickJs = (exclude) => {
 
4809
  };
4810
  const langPack = BUBBLE_TEXTS[lang] || BUBBLE_TEXTS.en;
4811
  const oldTexts = Array.isArray(langPack.writing) ? [...langPack.writing] : [];
4812
+ langPack.writing = welcomeTexts[lang] || welcomeTexts.en;
4813
  showBubble();
4814
  // 还原
4815
  langPack.writing = oldTexts;
 
5545
  renderChatlog();
5546
  // Clear existing guest bubbles so they re-render in new language
5547
  Object.keys(guestBubbles).forEach(k => { if (guestBubbles[k]) { guestBubbles[k].destroy(); delete guestBubbles[k]; } });
5548
+ // Also clear _lastBubbleText on guest sprites so bubbles re-create with new language
5549
+ Object.values(guestSprites).forEach(g => { if (g) g._lastBubbleText = ''; });
5550
+ // Refresh Star's own bubble in new language
5551
+ if (typeof showBubble === 'function') showBubble();
5552
  }
5553
  function renderChatlog() {
5554
  const el = document.getElementById('chatlog-content');