xfslove / alfred-google-translate

Alfred 3 workflow - translate with google api💵🚫
MIT License
618 stars 65 forks source link

希望能支持自动检测输入语言 (language auto detected) #36

Closed lonelygo closed 5 years ago

lonelygo commented 5 years ago

希望能支持自动检测输入语言,使用alfred-language-configuration 做hardcode的配置使用灵活性不如之前1.X版本

xfslove commented 5 years ago

感谢提的意见,确实是这样的,因为之前是只有中英互译,自动检测还比较好实现,但是需要支持所有语言,我目前还没有特别好的想法(issues:#25, #29)

ps:按google翻译的参数,source到时可以用auto实现自动检测,但是target就不太好做了

或者有好的想法可以提出来🙂

xfslove commented 5 years ago

the language-configuraiton just config the pair, like trc en zh-CN

and assign the source and target when translate, like tr > hello and tr < 你好

what about that

lonelygo commented 5 years ago

the language-configuraiton just config the pair, like trc en zh-CN

and assign the source and target when translate, like tr > hello and tr < 你好

what about that

如果没有更好的方案,like tr > hello and tr < 你好 的方法,起码可以配置一次,在多敲一个空格加字母的情况下,实现双向翻译,也是能接受的选择。

我不确定 source 为auto的时候,API是否会返回检测到的语言种类(肯定检测到语言种类了,就是不确定是否会返回),但是之前用auto实现了中英互译,估摸着是拿到了返回值之后去set target 。 所以,以下我会假定API 是可以在source 为 auto 时可以返回语言名称给调用方的。 几个思路: trc en zh-CN 定义:如果源语言为其中一种,则翻译为另一种;如果源语言不在述列表中,则默认翻译为列表中的第二项(解决非源语言向“母语”翻译)

方案A: 用法:tr hello or tr 你好 or tr こんにちは source 为 auto ,拿到翻译内容的语言种类后,去依据上述trc的列表和逻辑去set target语言种类。 这是最理想状况,中英互译,非英可以译为中文。

方案B: 用法:tr > hello or tr < 你好 你给出的方案,熟悉之后,可实现双语互译(对非source语言,可能需要考虑抛出错误。)

方案C: 用法可以参考:https://github.com/zetavg/alfred-google-translate-workflow/ 的实现,通过hardcode的方法,实现了几种语言的互译。 在language-configuraiton 中完成语言对的配置,在translate中用这种hardcode的方法实现(这个不知道Alfred是不是能支持),而且估计代码量会大很多。

有空了我争取能看懂你代码,也琢磨下这几个方案实现可能。

xfslove commented 5 years ago

@lonelygo 用心了,期待期待😀

lonelygo commented 5 years ago

@lonelygo用心了,期待期待😀

主要代码渣渣渣渣,js能看明白就谢天谢地了。 还记得有段时间google-translate 的 token算法不能用么,查询报错,看了看代码,愣是没看明白怎么算出来的😂

Sir-lu commented 5 years ago

Looking forward to the realization of this feature

JerryChenn07 commented 5 years ago

我也是最近才接触alfred,我说说下我的想法吧,能否将2者集成到一起,统一在一起设置。

提供两种配置方案

  1. 统一在Environment Variables进行配置,如果选择enzh-CH则在两者间识别并互转。
  2. trc zh-CH&en在两者间识别并互转。现在的方法trc zh-CH>entrc en>zh-CN操作感觉有些繁琐。

    ps可以开个二维码收款,请你喝咖啡

xfslove commented 5 years ago

@Jerry007s 感谢提的建议,另外也感谢支持🙂

xfslove commented 5 years ago

I found that there are languages in google translation results, so @lonelygo ‘s plan A can be achieved!

it willbe looks like:

trc config the language pair. trc zh-CN&en.

then tr hello or tr 你好 will detect the input language and get result.

and I'll do this recently, and release soon.

JerryChenn07 commented 5 years ago

&不是我的建议么

xfslove commented 5 years ago

&不是我的建议么

是的是的😄

xfslove commented 5 years ago

Now, language auto detect supported! please upgrade the version to v2.0.5, and enjoy it.

I'll close this issue, if anyone has any suggestion, could reopen it, or raise a new issue.🙂

lonelygo commented 5 years ago

@xfslove 最近在撸个文档,突然想起来过来看看,哇,都搞定了,怒赞👍👍👍👍👍👍

dingcang commented 5 years ago

我也是最近才接触alfred,我说说下我的想法吧,能否将2者集成到一起,统一在一起设置。

提供两种配置方案

  1. 统一在Environment Variables进行配置,如果选择enzh-CH则在两者间识别并互转。
  2. trc zh-CH&en在两者间识别并互转。现在的方法trc zh-CH>entrc en>zh-CN操作感觉有些繁琐。

ps可以开个二维码收款,请你喝咖啡

哈哈,支持二维码,给作者大大一杯咖啡,真是辛苦啦💦

gudongfeng commented 5 years ago

辛苦辛苦。哪儿有donation 的二维码?我也想给个咖啡。

xfslove commented 5 years ago

辛苦辛苦。哪儿有donation 的二维码?我也想给个咖啡。

@gudongfeng @dingcang 感谢支持🙂,不过暂时没打算放二维码。只要大家在用,这个会一直维护的

zhangpeiran commented 4 years ago

大佬,首先你的插件相当的不错,但问题是关于这个自动检测功能到底怎么用?我还是没弄懂,只能config出互译,比如中英,那怎么才能比如日语翻译成中文,韩语翻译成中文。如果我配置成中英互译,我输入日文,他就会提示检测到language 为 japanese ,not one of your configuration。是我配置的问题么 还是说没有这个功能。config好像也没有重置功能啊。谢谢!

xfslove commented 4 years ago

大佬,首先你的插件相当的不错,但问题是关于这个自动检测功能到底怎么用?我还是没弄懂,只能config出互译,比如中英,那怎么才能比如日语翻译成中文,韩语翻译成中文。如果我配置成中英互译,我输入日文,他就会提示检测到language 为 japanese ,not one of your configuration。是我配置的问题么 还是说没有这个功能。config好像也没有重置功能啊。谢谢!

@zhangpeiran 看下readme,安装alfred-language-configuration即可。

zhangpeiran commented 4 years ago

大佬,首先你的插件相当的不错,但问题是关于这个自动检测功能到底怎么用?我还是没弄懂,只能config出互译,比如中英,那怎么才能比如日语翻译成中文,韩语翻译成中文。如果我配置成中英互译,我输入日文,他就会提示检测到language 为 japanese ,not one of your configuration。是我配置的问题么 还是说没有这个功能。config好像也没有重置功能啊。谢谢!

@zhangpeiran 看下readme,安装alfred-language-configuration即可。

谢谢你的回复,alfred-language-configuration我已经安装了,但是只有比如互译的配置方案:trc zh-CN & ja ,你的usage中并没有提到如何配置自动检测语言。自动检测语言应当怎么配置。。。。,如果你的意思是不配置的初始设定能够实现自动检测语言,那我现在已经设置了互译配置(trc zh-CN & ja),并不知道重置配置的方法。。并且那如何设置targe语言?

xfslove commented 4 years ago

@zhangpeiran trc readme也有介绍,trc zh-CN&ja配置就是自动检测,trc zh-CN>ja或者trc ja>zh-CN是就是指定source和target。

zhangpeiran commented 4 years ago

@zhangpeiran trc readme也有介绍,trc zh-CN&ja配置就是自动检测,trc zh-CN>ja或者trc ja>zh-CN是就是指定source和target。

谢谢!看来是我理解错了,我以为自动检测是能够检测出任意语言(自动识别出何种语言然后翻译,比如日语,韩语,英语。。。。)然后翻译。现在的意思是比如本来设置的是日语跟中文的互译,那要翻译英语需要重新trc配置成英语跟中文互译,是这个意思吧。

xfslove commented 4 years ago

@zhangpeiran trc readme也有介绍,trc zh-CN&ja配置就是自动检测,trc zh-CN>ja或者trc ja>zh-CN是就是指定source和target。

谢谢!看来是我理解错了,我以为自动检测是能够检测出任意语言(自动识别出何种语言然后翻译,比如日语,韩语,英语。。。。)然后翻译。现在的意思是比如本来设置的是日语跟中文的互译,那要翻译英语需要重新trc配置成英语跟中文互译,是这个意思吧。

@zhangpeiran 对的,目前是这样的 🙂

zhangpeiran commented 4 years ago

@zhangpeiran trc readme也有介绍,trc zh-CN&ja配置就是自动检测,trc zh-CN>ja或者trc ja>zh-CN是就是指定source和target。

谢谢!看来是我理解错了,我以为自动检测是能够检测出任意语言(自动识别出何种语言然后翻译,比如日语,韩语,英语。。。。)然后翻译。现在的意思是比如本来设置的是日语跟中文的互译,那要翻译英语需要重新trc配置成英语跟中文互译,是这个意思吧。

@zhangpeiran 对的,目前是这样的 🙂

明白了 谢谢!