KISS Translator
A simple, open source bilingual translation extension & Greasemonkey script.
Features
- Keep it simple, smart
- Open source
- Adapt to common browsers
- Chrome/Edge
- Firefox
- Kiwi (Android)
- Orion (iOS)
- Safari
- Thunderbird
- Supports multiple translation services
- Google/Microsoft
- Tencent/Volcengine
- OpenAI/Gemini/Claude/Ollama/DeepSeek/OpenRouter
- DeepL/DeepLX/NiuTrans
- AzureAI / CloudflareAI
- Chrome built-in AI translation (BuiltinAI)
- Covers common translation scenarios
- Webpage bilingual translation
- Input-box translation
- Instantly translate text in input fields into other languages via shortcut keys
- Text selection translation
- Open translation popup on any page, support multiple translation services for comparison
- English dictionary lookup
- Save vocabulary
- Hover translation
- YouTube subtitle translation
- Support translating video subtitles with any translation service and display bilingually
- Built-in basic subtitle merging and sentence-splitting algorithm to improve translation quality
- Supports AI-powered sentence segmentation for even better translation
- Custom subtitle style
- Supports diverse translation modes
- Supports both automatic text recognition and manual rule modes
- Automatic text recognition mode allows most sites to be translated fully without writing rules
- Manual rule mode enables extreme optimization for specific sites
- Custom translation styling
- Supports rich-text translation and rendering, preserving links and other text styles where possible
- Option to show only translation (hide original text)
- Supports both automatic text recognition and manual rule modes
- Advanced translation API features
- With custom API support, theoretically works with any translation service
- Batch aggregation of translation requests
- Supports AI conversation context memory to improve translation quality
- Custom AI terminology dictionary
- All APIs support hooks and custom parameters for advanced usage
- Cross-client data synchronization
- KISS-Worker(cloudflare/docker)
- WebDAV
- Custom translation rules
- Rule subscription/rule sharing
- Customized terminology
- Custom shortcut keys
Alt+QToggle TranslationAlt+CToggle StylesAlt+KOpen Setting PopupAlt+SOpen Translate Popup / Translate Selected TextAlt+OOpen Options PageAlt+IInput Box Translation
Install
Note: For the following reasons, it is recommended to use browser extensions first
- Browser extensions have more complete functions (local language recognition, context menu, etc.)
- Grease Monkey script will encounter more usage problems (cross domain issues, script conflicts, etc.)
- Browser extension
- Chrome Installation address
- Kiwi (Android)
- Orion (iOS)
- Edge Installation address
- Firefox Installation address
- Safari
- Safari (Mac)
- Safari (iOS)
- Thunderbird Download address
- Chrome Installation address
- GreaseMonkey Script
- Chrome/Edge/Firefox (Tampermonkey/Violentmonkey) Installation link
- iOS Safari (Userscripts Safari) Installation link
Associated Projects
- Data synchronization service: https://github.com/fishjar/kiss-worker
- Data synchronization service available for this project.
- Can also be used to share personal private rule lists.
- Deploy by yourself, manage by yourself, data is private.
- Community subscription rules: https://github.com/fishjar/kiss-rules
- Provides the latest and most complete list of subscription rules maintained by the community.
- Help with rules-related issues.
Frequently Asked Questions
How to Set Keyboard Shortcuts
Set this in the extension management page, for example:
- chrome chrome://extensions/shortcuts
- firefox about:addons
What is the priority order of rule settings?
Personal Rules > Subscription Rules > Global Rules
Among these, Global Rules have the lowest priority but are very important as they serve as the default rules.
API (Ollama, etc.) Test Failure
Common reasons for API test failures include:
- Incorrect address:
- For example,
Ollamahas a native API address and anOpenai-compatible address. This plugin currently supports theOpenai-compatible address and does not support theOllamanative API address.
- For example,
- Some AI models do not support batch translation:
- In this case, you can choose to disable batch translation or use a custom API.
- Alternatively, you can use a custom API. For details, please refer to: Custom API Example Documentation
- Some AI models have inconsistent parameters:
- For example, the parameters of the
Gemininative API are highly inconsistent. Some model versions do not support certain parameters, leading to errors. - In this case, you can modify the request body using a
Hook, or replace it withGemini2(an OpenAI-compatible address).
- For example, the parameters of the
- The server restricts cross-origin access, returning a 403 error:
- For example,
Ollamarequires adding the environment variableOLLAMA_ORIGINS=*when starting. See: https://github.com/fishjar/kiss-translator/issues/174
- For example,
Custom API doesn't work in Tampermonkey scripts
Tampermonkey scripts require adding domains to the whitelist; otherwise, requests cannot be sent.
How to set up a hook function for a custom API
Custom APIs are very powerful and flexible, and can theoretically connect to any translation API.
Example reference: custom-api_v2.md
How to directly access the Tampermonkey script settings page
Settings page address: https://fishjar.github.io/kiss-translator/options.html
Future Plans
This is a side project with no strict timeline. Community contributions are welcome. The following are preliminary feature directions:
- Batch Text Requests: Optimize request strategy to reduce translation API calls and improve performance.
- Enhanced Rich Text Translation: Support accurate translation of complex page structures and rich text content.
- Advanced Custom/AI Interfaces: Add support for context memory, multi-turn conversations, and other advanced AI features.
- Fallback English Dictionary: When translation services fail, fall back to a local dictionary lookup.
- Improved YouTube Subtitle Support: Enhance merging and translation experience for streaming subtitles, reducing sentence fragmentation.
- Upgraded Rule Collaboration System: Introduce more flexible rule sharing, version management, and community review processes.
If you're interested in any of these directions, feel free to discuss in Issues or submit a PR!
Development Guidelines
git clone https://github.com/fishjar/kiss-translator.git
cd kiss-translator
git checkout dev # Submit a PR suggestion to push to the dev branch
pnpm install
pnpm build
Discussion
- Join Telegram Group