Model or dataset
YiiGuxing/TranslationPlugin avatar
YiiGuxing/TranslationPlugin

TranslationPlugin: seven engines behind one context menu, and the key you may need

Translation plugin for IntelliJ-based IDEs/Android Studio.

11,868 stars814 forksKotlinMIT

At a glance

What is it?
YiiGuxing/TranslationPlugin is a Kotlin plugin for IntelliJ-based IDEs and Android Studio that translates selected text, quick documentation and even identifiers, through seven translation engines and three text-to-speech engines. Its most useful action is Replace with Translation, and its most surprising one can rewrite a selected identifier into camel case when the target language is English.
Who is it for?
Adopt it if you read a lot of source in a language you do not write and you already hold credentials for one of the seven engines, because selection scoped extraction, in place replacement and documentation hooks are what a browser translator does not do.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 1 day ago.
What is it written in?
Mainly Kotlin, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on November 13, 2026, and from our analysis. They are not legal advice.

From daily snapshots

Star history

  • YiiGuxing/TranslationPlugin11,868 ★ · +19
Star history
Repository2026-09-222026-11-13
YiiGuxing/TranslationPlugin11.8k11.9k

19 Stars in the last 52 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

Seven translation engines and three TTS voices, swapped from the status bar

The engine list is the substance of the plugin: Microsoft Translator, Google Translate, DeepL, OpenAI, Youdao, Baidu and Alibaba, plus text-to-speech through Microsoft Edge TTS, Google TTS and OpenAI TTS. Which one answers a given selection is a user decision, not a fixed pipeline, and the switch is deliberately cheap. Click the engine widget in the status bar, or press Ctrl + Shift + S, with Control + Meta + Y on macOS, to move between the translation engine and the TTS engine without opening settings. The practical consequence is that the plugin is only as good as the weakest credential you own.

Replace with Translation rewrites the identifier you selected

One action goes further than showing you a translation: it edits your source. Select text or hover it, then use Replace with Translation, default shortcut Ctrl + Shift + X on Windows and Control + Meta + O on macOS, and the target text is overwritten with the translated result. The formatting rule is where this gets sharp. When the target language is English, the output arrives in camel case with a word separator, and when the result contains several words the separator itself is configurable under Translation Settings > Replace with Translation > Separator. An original format is offered as well. That is a genuinely useful rename, and it is also a rename you did not ask for: a symbol selected by mistake is rewritten in your source file, and nothing in the described flow shows a diff, a preview or an undo prompt before the edit lands.

Word extraction is automatic, and Inclusive versus Exclusive pick the range

The Translate action never needs you to select a whole expression, because extraction is automatic. If you have already selected text, words are taken from that portion. If you have not, words are extracted from the maximum range, and that extraction range is itself configurable in Settings. Two sibling actions narrow the behaviour deliberately. Translate(Inclusive) extracts and translates all words from a specific range and ignores whatever you had selected. Translate(Exclusive) takes the nearest single word, also ignoring the selection. Both ship with no default shortcut, so anyone who wants them must bind a key first.

Authentication Keys are bound under Tools > Translation > General > Translation Engine

The setup path is Preferences(Settings) > Tools > Translation > General > Translation Engine > Configure..., where the Authentication Key for each service is entered. The guide marks signing up for a translation service as optional, then says most of them require user registration to reach their services, naming OpenAI, DeepL and Youdao Translate among the examples. That is the honest shape of the dependency: you are not adding a local algorithm, you are wiring keys to third-party APIs and letting them see the text you select. The browser alternative is real, since the README links translate.google.com directly, and pasting a comment there costs no IDE configuration at all. What the plugin adds on top is selection scoped extraction, in place replacement and documentation hooks. What it costs is a credential stored in your IDE settings, which matters on a shared or managed workstation.

Install from the Marketplace or from disk, then restart the IDE

Two routes, one restart. Inside the IDE: Preferences(Settings) > Plugins > Marketplace, search for "Translation", then Install Plugin. Manually: take the plugin package from the project's GitHub releases or from the JetBrains Plugin Repository, then go to Preferences(Settings) > Plugins, open the gear menu and choose Install plugin from disk..., select the package and install. No unzipping is needed, which is worth knowing because the download is a packaged plugin rather than a source tree. A restart of the IDE is required either way, so plan the install when you are not mid refactor. Upgrade behaviour follows the route: the Marketplace entry is a live listing for plugin 8579, while a disk install leaves you holding a specific file that you replace yourself, which is what CHANGELOG.md at the repository root is for.

Quick Documentation can be translated before you finish hovering

Documentation is a separate path from text. The Translate Quick Documentation action displays the documentation of the symbol at the caret, and inside the Quick Documentation popup you can toggle between the translated text and the original, so the untranslated version is always one click away. If reading the popup is the part you want removed, Translation Settings > Other > Automatically translate documentation does it for you: with that option checked, Quick Documentation is translated as you view it. Inline Documentation is covered by the same translation path, reachable from the context menu or from shortcuts. The cost of the automatic option is that every popup becomes a request to whichever engine you configured, and the toggle described for the translated and original text sits in the Quick Documentation popup, so the setting you want to turn back off is not the same control.

Eighteen IDEs on the compatibility list, one Kotlin jar for all of them

The compatibility list is longer than most plugin pages bother to print: Android Studio, IntelliJ IDEA in both Community and Ultimate, PyCharm in Community and Professional, CLion, DataGrip, DataSpell, GoLand, PhpStorm, WebStorm, RubyMine, Rider, RustRover, MPS, Aqua, AppCode and HUAWEI DevEco Studio. The repository root holds src/, resources/, build.gradle.kts, settings.gradle.kts, a checked in gradle wrapper with gradlew and gradlew.bat, and pluginIcon.svg at the root, licensed MIT with the LICENSE file next to it. Getting started documentation is maintained in English, Chinese, Japanese and Korean. If you build from source you inherit a Gradle project rather than a plain Kotlin module, so the wrapper is the path of least resistance.

Editorial conclusion

Adopt it if you read a lot of source in a language you do not write and you already hold credentials for one of the seven engines, because selection scoped extraction, in place replacement and documentation hooks are what a browser translator does not do. Skip it if you cannot keep an Authentication Key in the IDE: the setup guide says most services such as OpenAI, DeepL and Youdao Translate require an account, and that step does not say which of the seven engines work without one. Check two things on day one, which engine actually answers with the credentials you hold, and whether Replace with Translation will touch identifiers you still reference, since it can rewrite them in camel case with a configurable separator when the target language is English. Keep an eye on CHANGELOG.md when a new IDE build lands: v3.9.3 shipped on 2026-10-12 and the last push was 2026-10-20.

Frequently asked questions

Is there a Google Translate plugin for IntelliJ IDEA from TranslationPlugin?

Yes, Google Translate is one of the seven translation engines the plugin offers, alongside Microsoft Translator, DeepL, OpenAI, Youdao, Baidu and Alibaba. The plugin itself is a Kotlin plugin for IntelliJ-based IDEs and Android Studio, installed from the Marketplace or from disk.

How do I install the TranslationPlugin extension in my IDE?

Inside the IDE go to Preferences(Settings) > Plugins > Marketplace, search for "Translation" and use Install Plugin. Or download the package from GitHub releases or the JetBrains Plugin Repository and use Install plugin from disk... without unzipping it. Restart the IDE afterwards either way.

Does TranslationPlugin work without an API key?

Signing up for a translation service is marked optional, but the guide says most services require registration, naming OpenAI, DeepL and Youdao Translate as examples, and an Authentication Key is bound under Preferences(Settings) > Tools > Translation > General > Translation Engine > Configure... The sign-up step does not say which of the seven engines answer without a key.

What does Replace with Translation do to my code in TranslationPlugin?

It overwrites the selected text with the translation. When the target language is English the output comes back in camel case with a word separator, configurable under Translation Settings > Replace with Translation > Separator, and an original format is offered as well.

Official sources

  1. License: MIT
  2. Project website
  3. README
  4. Releases
  5. YiiGuxing/TranslationPlugin on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/yiiguxing-translationplugin.svg)](https://hysenlabs.com/projects/yiiguxing-translationplugin)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/yiiguxing-translationplugin.svg)](https://hysenlabs.com/projects/yiiguxing-translationplugin)

Was this useful?