mirror of
https://github.com/fancive/obsidian-parallel-reader.git
synced 2026-07-22 06:53:43 +00:00
fix: localize remaining action labels
Change-Id: I4ac6db14c4aede9a106e8023effac3c99d3c037a
This commit is contained in:
parent
2d39a91aed
commit
5304ed3a48
5 changed files with 25 additions and 5 deletions
8
main.ts
8
main.ts
|
|
@ -328,7 +328,13 @@ class ParallelReaderPlugin extends Plugin {
|
|||
}
|
||||
|
||||
confirmRegenerateEditedCards(): Promise<boolean> {
|
||||
return confirmRegenerateEditedCards(this.app, this.t('displayName'), this.t('confirmRegenerateEditedCards'));
|
||||
return confirmRegenerateEditedCards(
|
||||
this.app,
|
||||
this.t('displayName'),
|
||||
this.t('confirmRegenerateEditedCards'),
|
||||
this.t('confirmRegenerateCancel'),
|
||||
this.t('confirmRegenerateProceed'),
|
||||
);
|
||||
}
|
||||
|
||||
addFileMenuItems(menu: ObsidianMenu, file: unknown) {
|
||||
|
|
|
|||
|
|
@ -60,6 +60,8 @@ export const STRINGS: Record<string, Record<string, string>> = {
|
|||
noActiveCard: '当前没有可跳转的摘要卡片',
|
||||
viewOpenFailed: '无法打开对照笔记面板',
|
||||
confirmRegenerateEditedCards: '这篇笔记的对照卡片已被手动编辑。重新生成会覆盖这些修改,是否继续?',
|
||||
confirmRegenerateCancel: '取消',
|
||||
confirmRegenerateProceed: '重新生成',
|
||||
regenerateCancelled: '已取消重新生成',
|
||||
cardDeleted: '已删除此卡片',
|
||||
cardSaved: '已保存此卡片',
|
||||
|
|
@ -132,6 +134,7 @@ export const STRINGS: Record<string, Record<string, string>> = {
|
|||
settingCustomPromptDesc: '可选。支持变量:{minCards}、{maxCards}、{languageInstruction}、{schema}、{example}',
|
||||
settingCustomPromptPlaceholder: '留空使用内置 prompt',
|
||||
settingTestBackendName: '测试当前后端',
|
||||
settingTestBackendButton: '测试',
|
||||
settingTestBackendDescApi: '会发起一次最小 LLM 请求验证 API 设置',
|
||||
settingTestBackendDescCli: '调用 `<cli> --version` 验证 spawn 能找到二进制',
|
||||
backendTestFailed: '✗ 后端测试失败:{error}',
|
||||
|
|
@ -221,6 +224,8 @@ export const STRINGS: Record<string, Record<string, string>> = {
|
|||
viewOpenFailed: 'Could not open the Parallel Reader pane',
|
||||
confirmRegenerateEditedCards:
|
||||
'These parallel-reader cards were edited manually. Regenerating will overwrite those edits. Continue?',
|
||||
confirmRegenerateCancel: 'Cancel',
|
||||
confirmRegenerateProceed: 'Regenerate',
|
||||
regenerateCancelled: 'Regeneration cancelled',
|
||||
cardDeleted: 'Deleted this card',
|
||||
cardSaved: 'Saved this card',
|
||||
|
|
@ -296,6 +301,7 @@ export const STRINGS: Record<string, Record<string, string>> = {
|
|||
settingCustomPromptDesc: 'Optional. Variables: {minCards}, {maxCards}, {languageInstruction}, {schema}, {example}',
|
||||
settingCustomPromptPlaceholder: 'Leave blank to use built-in prompt',
|
||||
settingTestBackendName: 'Test current backend',
|
||||
settingTestBackendButton: 'Test',
|
||||
settingTestBackendDescApi: 'Sends a minimal LLM request to validate API settings.',
|
||||
settingTestBackendDescCli: 'Runs `<cli> --version` to verify the binary can be spawned.',
|
||||
backendTestFailed: '✗ Backend test failed: {error}',
|
||||
|
|
|
|||
12
src/modal.ts
12
src/modal.ts
|
|
@ -4,7 +4,13 @@ import { type App, Modal } from 'obsidian';
|
|||
import type { CardPatch, PluginHost, ResolvedCard } from './types';
|
||||
import { addTextButton } from './ui-helpers';
|
||||
|
||||
export function confirmRegenerateEditedCards(app: App, title: string, message: string): Promise<boolean> {
|
||||
export function confirmRegenerateEditedCards(
|
||||
app: App,
|
||||
title: string,
|
||||
message: string,
|
||||
cancelText: string,
|
||||
confirmText: string,
|
||||
): Promise<boolean> {
|
||||
return new Promise<boolean>((resolve) => {
|
||||
let settled = false;
|
||||
const settle = (value: boolean) => {
|
||||
|
|
@ -16,11 +22,11 @@ export function confirmRegenerateEditedCards(app: App, title: string, message: s
|
|||
modal.titleEl.setText(title);
|
||||
modal.contentEl.createEl('p', { text: message });
|
||||
const btnRow = modal.contentEl.createDiv({ cls: 'modal-button-container' });
|
||||
btnRow.createEl('button', { text: 'Cancel' }).addEventListener('click', () => {
|
||||
btnRow.createEl('button', { text: cancelText }).addEventListener('click', () => {
|
||||
modal.close();
|
||||
settle(false);
|
||||
});
|
||||
btnRow.createEl('button', { text: 'OK', cls: 'mod-cta' }).addEventListener('click', () => {
|
||||
btnRow.createEl('button', { text: confirmText, cls: 'mod-cta' }).addEventListener('click', () => {
|
||||
modal.close();
|
||||
settle(true);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -342,7 +342,7 @@ export class ParallelReaderSettingTab extends PluginSettingTab {
|
|||
.setName(this.tr('settingTestBackendName'))
|
||||
.setDesc(isCliBacked ? this.tr('settingTestBackendDescCli') : this.tr('settingTestBackendDescApi'))
|
||||
.addButton((b) =>
|
||||
b.setButtonText('Test').onClick(async () => {
|
||||
b.setButtonText(this.tr('settingTestBackendButton')).onClick(async () => {
|
||||
try {
|
||||
const result = await testBackend(this.plugin.settings);
|
||||
new Notice(`✓ ${result.slice(0, 180)}`, 8000);
|
||||
|
|
|
|||
|
|
@ -25,5 +25,7 @@ assert.strictEqual(
|
|||
);
|
||||
assert.strictEqual(t.translate({ uiLanguage: 'zh' }, 'appTitle'), '对照阅读笔记', 'zh translation for appTitle');
|
||||
assert.strictEqual(t.translate({ uiLanguage: 'en' }, '__no_such_key__'), '__no_such_key__', 'missing key returns key');
|
||||
assert.strictEqual(t.translate({ uiLanguage: 'zh' }, 'settingTestBackendButton'), '测试');
|
||||
assert.strictEqual(t.translate({ uiLanguage: 'en' }, 'confirmRegenerateProceed'), 'Regenerate');
|
||||
|
||||
console.log('i18n tests passed');
|
||||
|
|
|
|||
Loading…
Reference in a new issue