支持 K2 模式
📝 Issue Description
在 IDEA 设置里启用 K2 模式后,打开自动翻译文档,不能浮窗显示 Kotlin 代码注释的翻译,但还是能正常显示 Java 代码的翻译。
由于截图会导致浮窗关闭,所以没截到。
🏷 Plugin Version
3.6.4
🔁 Translation Engine(s)
Google Translate
💻 IDE and Operating Environment
IntelliJ IDEA 2024.2 (Ultimate Edition)
Build #IU-242.20224.300, built on August 7, 2024
Runtime version: 21.0.3+13-b509.4 aarch64 (JCEF 122.1.9)
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
macOS 14.6.1
Kotlin 插件: K2 模式(Beta)
Kotlin: 242.20224.300-IJ
📋 Stacktrace
No response
我也遇到这个问题了
me too,我今天才发现没发翻译了
K2 目前还不支持
分支已支持: https://github.com/xuhuanzy/TranslationPlugin-New
对K2支持有更新的计划吗
对K2支持有更新的计划吗
有,但改动很大。。。
对K2支持有更新的计划吗
有,但改动很大。。。
开始改了吗, 有没有分支
开始改了吗, 有没有分支
如果不反射内部api不可能有现在的效果, 但反射了jb不给你上架
不反射的情况下大概率是
完整的原始文档
翻译后的文档
你需要拉完完整的文档才能看到翻译的文档
你需要拉完完整的文档才能看到翻译的文档
至少能用,而现在是完全无法使用
并且K2已经变成默认启用了🤔
有计划什么时候支持吗?
做着做着不知道什么时候就会遇到一个问题卡住。
有计划什么时候支持吗?
@bovindev 正在开发了:feature/k2 。这个很恶心,很多有用的API官方不公开,有些功能要实现就得用反射,烦得要死。。。
用反射他不给你上架吧
@xuhuanzy 应该可以,我的插件他们好像不检查。
现在的问题是,即使用了反射,功能有些还是有些受限,但没办法了,大体能用就行了。
报告一下开发进度吧,目前快速文档部分的支持已经开发完成,欢迎大家抢先体验:
TranslationPlugin-3.8.0-SNAPSHOT.250830.zip(2025.08.30 更新)
现在也支持在不开启自动翻译文档的情况下一键显示快速文档并翻译了,不再像之前那样要先显示快速文档,然后再手动操作翻译:
通过快捷键 Ctrl+Shift+Q(macOS 是 ^Q)就可以一键显示/切换。
下一步是内联文档的支持了,这一块也是老火得很啊,大家敬请期待!
@xuhuanzy 目前还是没有支持到 Rider ,大佬有没有兴趣和时间帮忙添加对 Rider 的支持?Rider 这部分我还没有去了解过,不过实现思路应该和现在对 K2 的实现思路是一样的,必要的时候可以使用 Kotlin 反射,但不能用你之前使用的修改字节码的方式,可能会被认定为是“毒”。我这边光翻译倒是没有使用到反射,但只能翻译第一个文档,点击文档里的链接跳到其他文档后有无法翻译了,这部分平台的相关数据类是不公开的,无奈只能用反射了,见 TranslatableDocumentationLinkHandler.kt。
这种是内联文档吗?
这种是内联文档吗?
试用了下是OK的,感谢大佬
@imhansai 内联文档是这个:
目前个人测试体验,只有上述截图中没有翻译的问题,就是代码补全时,查看快速文档,没有翻译操作。 之前正式版中是有个翻译文档的操作,尽管只对Java起作用,见下图
目前个人测试体验,只有上述截图中没有翻译的问题,就是代码补全时,查看快速文档,没有翻译操作。 之前正式版中是有个翻译文档的操作,尽管只对Java起作用,见下图
OK,我看一下。
目前个人测试体验,只有上述截图中没有翻译的问题,就是代码补全时,查看快速文档,没有翻译操作。 之前正式版中是有个翻译文档的操作,尽管只对Java起作用,见下图
@imhansai 已支持:TranslationPlugin-3.8.0-SNAPSHOT.250830.zip(2025.08.30 更新)
支持记住翻译状态: TranslationPlugin-3.8.0-SNAPSHOT.250830.zip(2025.08.30 更新)
有计划什么时候支持吗?
@bovindev 正在开发了:feature/k2 。这个很恶心,很多有用的API官方不公开,有些功能要实现就得用反射,烦得要死。。。
用反射他不给你上架吧
佬, 我看作者说他的这个好像不检查, 你能你改的那个fork的版本, 合并一下吗? Clion 和 Rider 感觉用户还是挺多的.
必要的时候可以使用 Kotlin 反射,但不能用你之前使用的修改字节码的方式,可能会被认定为是“毒”。
不懂你是咋搞的, 怎么拿到底层第一个执行结果的引用? 当时我是对着 jadx 反编译去改的, 没记错的话 k2 跟 rider 的布局差不多, 没道理 k2 行 rider 不行, 有可能是没处理协程?
必要的时候可以使用 Kotlin 反射,但不能用你之前使用的修改字节码的方式,可能会被认定为是“毒”。
不懂你是咋搞的, 怎么拿到底层第一个执行结果的引用? 当时我是对着 jadx 反编译去改的, 没记错的话 k2 跟 rider 的布局差不多, 没道理 k2 行 rider 不行, 有可能是没处理协程?
@xuhuanzy 主要是在 TranslatableIdeDocumentationTargetProvider.kt 和 TranslatablePsiDocumentationTargetProvider.kt 两个 Provider ,代理并拓展了原始的 DocumentationTarget。Rider 不行的原因在于我和 Rider 都对 IdeDocumentationTargetProvider 进行重新实现,并覆盖了IDE的默认实现,而我的实现在 Rider 中被 Rider 的实现覆盖了,所以我的不生效。即使我的实现优先级高,覆盖了 Rider 的实现,由于我的是基于IDEA默认实现的,也会导致 Rider 的文档无法生成。所以要解决的问题是怎么能代理 Rider 实现的 IdeDocumentationTargetProvider 并覆盖它。我尝试过,没能覆盖它,都是被它所覆盖。。。。
你可以尝试解决一下这个问题,实在不行的话,我准备在这一版本开放一些插件的拓展点,让其他插件也能使用我插件的翻译能力,到时候你通过你之前的方式,写一个插件,依赖我的插件,使用我插件开放的 API 对 Rider 文档进行翻译,这样,两个插件可以独立更新,你我各自的插件后续的更新功能大家都能用。最后再尝试上架插件市场,如果官方不给通过,我就开一个私有的插件仓库,上架到那上面,供大家使用。
同时也报告一下内联文档支持的开发进度吧,最近比较忙,事件比较多,没有多少时间处理,都是过一段时间动一小点,再过一段时间再动一小点,没办法全力搞,等忙过后再说吧。而且内联文档的问题比快速文档的问题更加严峻,我都搞不明白官方为什么要那么设计,完全就不考虑第三方可能会拓展,一点口子都不开。。。。本来之前就处理好一版的,以为可以了,可是它在处理文档的时候虽然是在后台线程里处理的,但它会持有读锁,会把编辑文件的写操作给阻塞了,最后还是得推翻重来。。。。。不过现在也有新的思路了,只是还没空处理,唉~~~
@YiiGuxing 还是开放插件的拓展点吧, rider里这个功能是必须要注入代码的.
代码扩展点要包含如何处理 html 的, 这个功能的 html 结构不一样.
@YiiGuxing 还是开放插件的拓展点吧, rider里这个功能是必须要注入代码的. 代码扩展点要包含如何处理 html 的, 这个功能的 html 结构不一样.
@xuhuanzy 可以,等我先处理完内联文档,再着手搞这个。
终于把内联文档翻译搞定了,欢迎大家抢先体验: TranslationPlugin-3.8.0-SNAPSHOT.250830.zip(2025.08.30 更新)
大家帮忙测测,现在还差一个一键翻译全文件的内联文档的功能,做完这个功能,再接着搞开发拓展点的功能,这个版本就才算是完成了。。。。