Yii.Guxing

Results 130 comments of Yii.Guxing

哈哈,刚才我灵光一现,突然想到一个解决这个问题的办法。就是利用缓存,先在后台把当前文件的所有文档读取出来并全部翻译,缓存到内存中,最后再一把刷到UI上,貌似就可以解决一键翻译整个文件的文档了。只不过体验可能并不是很好,会出现UI跳动的问题,不过可以慢慢解决。当然一键翻译单个文档也是要实现的。😁😁😁 之前老是想着打开文件就自动翻译和动态翻译,老是想着最完美的使用体验,那样会阻塞UI,而且会出现滚动视图中,因为原文档和翻译后的文档组件高度不一,导致UI乱跳的问题。如果牺牲一部分使用体验,完全是可以实现的。思维局限性太大了啊,唉~

现在解决办法是有了,可是一直没有时间来处理啊。。。。😫😫😫

> > 现在解决办法是有了,可是一直没有时间来处理啊。。。。😫😫😫 > > 老哥这个全文翻译功能大概啥时候上有个时间吗.这个插件真的好用. @noenif 目前还没有时间来处理这个需求,所以无法给出一个时间上的承诺。感谢支持!

@noenif 目前的工作重点在TTS和新版本兼容上,仍然没有时间处理。

> > @noenif 目前的工作重点在TTS和新版本兼容上,仍然没有时间处理。 > > 老哥,你能提示我下解决方案吗? document.setText直接操作不行,因为他是read only 我看了文档,官方api确实没有直接操作源码的. @noenif 请问你是想实现什么样的一个需求?是直接翻译一个代码文件里的文档注释然后替换原文件是吗?

@noenif 首先,我还是不是很明白你的意图,我要先确认一下,你是想尝试实现此 issue 的需求,还是你自己有自己的和此 issue 类似的功能需求? 如果是前者,你最终的目的是否是向此项目提交PR?如果是,我在此先表示感谢,但我还是建议你先等一等,我处理完现在的工作后或许可以处理一下这个需求,这个看情况而定。我不想到时候你白白在这上面浪费精力。当然,如果你还是想练练手,也不是不可以😁。 我说说我的原本的计划和思路吧: 我的计划是只在阅读模式下才能进行一键全文件翻译,在文件右上角的这个位置添加一个翻译按钮: ![image](https://github.com/YiiGuxing/TranslationPlugin/assets/10737066/82e85e7e-fd3c-4185-90e0-5a04ac9900b9) 点击以后开始进行翻译,翻译过程中翻译按钮图标变为加载中动画。翻译步骤: 1. 收集文件中所有文档注释:`DocumentationManager.getProviderFromElement(psiFile).collectDocComments(...)`; 2. 如果文档注释中有没有开启 `Rendered Mode` 则将其开启; 3. 生成文档 html:`DocumentationManager.getProviderFromElement(docComment).generateRenderedDoc(docComment)`; 4. 翻译并缓存起来; 5. 刷新 UI。 当然,中间还会有很多细节的。整个过程并不会涉及到修改原文件的内容的,你的实现思路一开始方向就不对,当然,这是你对文档的渲染过程不熟悉的缘故。过程中需要用到的和有参考价值的关键类有: - [DocTranslationService.kt](https://github.com/YiiGuxing/TranslationPlugin/blob/master/src/main/kotlin/cn/yiiguxing/plugin/translate/documentation/DocTranslationService.kt), -...

> > 1. getProviderFromElement > > 我打了断点 查看了内容,只能说逆天,老大,他文档都没有详细介绍,你是如何知道这些使用方法的 没办法,只能是多看源代码。。。熟悉以后,多点两下,再搜索一下,就能找到相似的代码,然后就是抄。。。

@limina-miao 你的数据库驱动出现了问题。请到 `C:\Users\{你的用户名}\AppData\Local\Yii.Guxing\TranslationPlugin` 目录下看看是否有一个 `driver-xxx.jar` 的一个文件,如果有,删除后重启IDE再试试。

我这没办法复现你的问题。。。,你删了重启后使用单词本时是不是需要重新下载驱动?