tlmkira621 downloadsTranslate selections, notes, Markdown documents, images, and speech with AI and machine translation providers.
Selection Translator is an Obsidian plugin for translating selected text, paragraphs, Markdown notes, embedded images, and speech output from inside your vault.
The plugin does not collect analytics and does not upload vault content in the background.
Text, images, or speech requests are sent only when you actively use translation, TTS, model listing, connection testing, or image translation with a configured provider. API keys are stored in Obsidian plugin data; hidden inputs prevent casual viewing but do not encrypt the stored values. Translation cache entries are stored locally in plugin settings and can be cleared or disabled from the plugin settings.
Supported external services depend on your configuration and may include OpenAI-compatible APIs, DeepSeek, OpenRouter, Gemini, Claude, Ollama, Google Cloud Translation, Azure Translator, AWS Translate, DeepL/DeepLX, Baidu, Youdao, OpenAI Images, OpenAI TTS, and Azure Speech.
Install dependencies:
npm install
Run the development build watcher:
npm run dev
Create a production build:
npm run build
Run lint checks:
npm run lint
Release tags must exactly match manifest.json version, without a leading v.
The release workflow builds main.js, verifies manifest.json and versions.json, generates GitHub artifact attestations, and uploads manifest.json, main.js, and styles.css to the GitHub release.
For manual local testing, copy main.js, manifest.json, and styles.css into:
<Vault>/.obsidian/plugins/selection-translator/