tisfeng / Raycast-Easydict

A Raycast Extension for looking up words or translating text in an easy way. Support 48+ languages, support Linguee and Youdao dictionary, support OpenAI, DeepL, Google, Bing, Apple, Baidu, Tencent, Volcano, Youdao and Caiyun translation.
https://www.raycast.com/isfeng/easydict
MIT License
382 stars 21 forks source link

WIP: feat: use deeplx to translate #58

Open so2liu opened 4 months ago

so2liu commented 4 months ago

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

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

image
tisfeng commented 4 months ago

不需要显示翻译原文。

image
tisfeng commented 4 months ago

中文翻译有问题。

image
tisfeng commented 4 months ago

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

image image
tisfeng commented 4 months ago

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

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

so2liu commented 4 months ago

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

这个什么意思,没明白 😑

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

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

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

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

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

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

tisfeng commented 4 months ago

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

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

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

tisfeng commented 2 weeks ago

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