fix(i18n): improve null handling in interpolation

This commit is contained in:
Simon
2025-10-21 16:25:32 +08:00
parent bb59eff79c
commit 11d582df49
2 changed files with 4 additions and 6 deletions

View File

@@ -35,7 +35,8 @@ export class I18n {
private interpolate(template: string, params: TranslationParams): string {
return template.replace(/\{\{(\w+)\}\}/g, (match, key) => {
return params[key]?.toString() || match
// Use != null to check for both null and undefined, allow empty strings
return params[key] != null ? params[key].toString() : match
})
}

View File

@@ -426,10 +426,7 @@ export class Panel {
#updateHistory(): void {
const steps = this.#state.getAllSteps()
this.#historySection.innerHTML = steps
.slice(-10) // Only show last 10 items
.map((step) => this.#createHistoryItem(step))
.join('')
this.#historySection.innerHTML = steps.map((step) => this.#createHistoryItem(step)).join('')
// Scroll to bottom to show latest records
this.#scrollToBottom()
@@ -491,7 +488,7 @@ export class Panel {
const stepLabel = this.#pageAgent.i18n.t('ui.panel.step', {
number: step.stepNumber.toString(),
time,
duration: durationText,
duration: durationText || '', // Explicitly pass empty string to replace template
})
return `