Raycast-Easydict icon indicating copy to clipboard operation
Raycast-Easydict copied to clipboard

WIP: feat: use deeplx to translate

Open so2liu opened this issue 10 months ago • 7 comments

可以正常搜索翻译,但是 action 是空的。那个ListDisplayItem还在研究,感觉好复杂呀,大佬你写的代码是不是有点儿太绕了,感觉没必要做这么多抽象

https://github.com/tisfeng/Raycast-Easydict/issues/56

image

so2liu avatar Apr 22 '24 14:04 so2liu

不需要显示翻译原文。

image

tisfeng avatar Apr 23 '24 14:04 tisfeng

中文翻译有问题。

image

tisfeng avatar Apr 23 '24 14:04 tisfeng

如果译文过长,应该使用 detail 页面显示的,具体请看代码。

image image

tisfeng avatar Apr 23 '24 14:04 tisfeng

如果要重构,我建议可以先重构翻译服务结构,参考我另一个项目 Easydict ,写一个翻译服务基类,定义好各种协议方法,如服务名字,图标,支持的语言,翻译接口 translate 方法等,然后每个翻译服务都是一个子类重写就可以,这样结构会好很多。

例如这个 彩云小译 代码实现。

tisfeng avatar Apr 23 '24 15:04 tisfeng

可以正常搜索翻译,但是 action 是空的

这个什么意思,没明白 😑

感觉好复杂呀,大佬你写的代码是不是有点儿太绕了,感觉没必要做这么多抽象

复杂吗,有可能,毕竟我对 ts 和 react 不熟悉,毕竟这是我第一个前端项目,看了一周 TS 入门教程,然后基于这个开源项目 raycast-Parrot 做的,代码很丑陋也正常。

虽然代码比较糟糕,功能比较多、比较杂,但这个项目我还是花了心思的,一些细节设计我觉得还是可以的。

如果你想优化或重构代码,我是非常欢迎的,但建议你先多使用它,熟悉一下已有的各项功能,然后在保持这些功能不被破坏的情况下进行重构优化。

如果你对一些功能不了解,或者有不同看法,或者想修改它,可以先开个 issue 我们讨论一下。

@tisfeng 感谢大佬写了这么多意见。我主要是发现有两个问题,一个是没有用async/await,全部使用Promise的callback,导致逻辑比较绕;一个是没有用现有react的各种生态。这个PR我再改一改哈

so2liu avatar Apr 24 '24 03:04 so2liu

ok,代码层面请放心大胆优化,这个你应该比我了解,就不多说了。

另外,这个 PR 是实现 DeepL 网页接口,如果你想先做一些其他的代码结构优化,建议另外开 PR。

建议每个 PR 都只做一件事,保持简洁,如果一个 PR 分多个步骤,也要拆分为多个单独的 commit,这样我 review 也轻松点。

tisfeng avatar Apr 24 '24 06:04 tisfeng

你好,请问这个 PR 还在继续吗 🥲

tisfeng avatar Aug 25 '24 10:08 tisfeng