Spaces:
Sleeping
Sleeping
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>
- Dockerfile +1 -1
- frontend/electron-standalone.html +7 -3
Dockerfile
CHANGED
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
# OpenClaw on Hugging Face Spaces — Pre-built image (v4.
|
| 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.
|
| 2694 |
return langMap[stem] || stem;
|
| 2695 |
}
|
| 2696 |
|
|
@@ -4696,7 +4696,7 @@ function toggleBrokerPanel() {
|
|
| 4696 |
error: 'エラー発生!アラートエリアへ。'
|
| 4697 |
}
|
| 4698 |
};
|
| 4699 |
-
const bubbleTextMap = bubbleTextMapByLang[uiLang] || bubbleTextMapByLang.
|
| 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.
|
| 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');
|