fix: skip i18n for raw error texts

这个提交包含在:
Zain 2026-03-20 17:52:37 +08:00
父节点 ec172a8762
当前提交 eb53123490
共有 2 个文件被更改,包括 40 次插入 和 1 次删除

查看文件

@ -74,9 +74,17 @@ export class VirtualPreviewList extends LitElement {
* Render a single preview item
* @private
*/
private isTranslationCandidate(error: string): boolean {
return /^[a-z0-9_]+$/.test(error);
}
private resolveErrorText(error?: string): string | undefined {
if (!error) return undefined;
if (!this.isTranslationCandidate(error)) {
return error;
}
const translationKey = `error_${error}`;
const translated = I18nService.t(translationKey);

查看文件

@ -1,4 +1,4 @@
import { describe, expect, it } from 'vitest';
import { describe, expect, it, vi } from 'vitest';
import { VirtualPreviewList } from '../../src/content/components/virtual-preview-list';
import { I18nService } from '../../src/utils/i18n';
@ -118,4 +118,35 @@ describe('VirtualPreviewList pending preview mapping', () => {
element.remove();
});
it('renders raw error text without warning when given a network error message', async () => {
const warnSpy = vi.spyOn(console, 'warn').mockImplementation(() => {});
const element = new VirtualPreviewList();
element.items = [
{
file: {
id: 'file-network',
name: 'old-network.mkv',
ext: 'mkv',
size: 1,
mtime: Date.now(),
isDir: false,
},
newName: 'new-network.mkv',
conflict: false,
error: 'Network error',
},
];
document.body.appendChild(element);
await element.updateComplete;
const textContent = element.shadowRoot?.textContent ?? '';
expect(textContent).toContain('Network error');
expect(warnSpy).not.toHaveBeenCalled();
warnSpy.mockRestore();
element.remove();
});
});