feat: add TranslateCommandService

This commit is contained in:
memodack 2025-04-01 19:34:14 +03:00
parent a706fd54ad
commit b7d7bcdff9

View file

@ -0,0 +1,32 @@
import { Command, Editor } from 'obsidian';
import { IActionsService } from './actions.service';
import { ITranslationService } from './translation.service';
export class TranslateCommandService implements Command {
id = 'translate';
name = 'Translate';
private translationService: ITranslationService;
private actionService: IActionsService;
constructor(
translationService: ITranslationService,
actionService: IActionsService,
) {
this.translationService = translationService;
this.actionService = actionService;
}
async editorCallback(editor: Editor): Promise<void> {
const selection = editor.getSelection();
const translation = await this.translationService.translate(selection);
if (!translation) {
return;
}
editor.replaceSelection(`{${selection}|${translation}}`);
await this.actionService.playValueAndTranslation(selection, translation);
}
}