怎么正确的复制代码

今年有一个目标是用 Go 语言写几个应用,并且这几个应用一定要放到线上去,订了一个小目标,每一个应用帮 10 万人,我以前是写 C 的,也写过 php,后来负责大数据的时候,也用过 java,scala 之类的,Go 语言没有完整的学习过,只是看了一下 A Tour of Go,发现 Go 语言有 C 语言的一些影子,我就开始用 Go 来写我的第一个应用,实现一个格式化的 Google 服务翻译,工作量全部加起来不超过 3 天,到目前为止,使用人数已经超过 1 万人。

20220506CpPY36

翻译服务

为什么要写这个翻译服务,我是没能力去实现整个翻译引擎的,一是没这么多语料,二是也没这个算法和工程能力,认清这一点就非常重要了,我主要是解决我经常遇到的两个问题:

  • 长文翻译
  • 有格式的翻译(markdown、HTML)

在 Google 或者 DeepL 是不能翻译长文的,也不支持 markdown 之类的富文本翻译,我就解决这两个问题。

Read more

Google 翻译工具上线了

翻译工具是我每天必须用的工具,用各种翻译工具时,总是感觉不好用,为什么翻译不能保留格式?为什么会有 5000 字的限制?我认为这些肯定不是技术问题,翻译做为一种原子能力,他应该被包装的更好,所以我自己写了这个翻译工具,调用的是 google api,因为我对比下来,google 翻译的效果还是不错的,整体上比较稳定, deepl 有时读起来更加顺畅,但是他不是特别稳定,有时候读起来就特别不顺,有时候又特别顺,所以我选择了 google 翻译,google 翻译不是免费的,他有 50 万字符的免费额度,超过了这个就要付费,这个我也能理解,只要他能提高我的效率,我认为付费是应该的,以前上线了一个内部的试用版,发现他们用了以后就一直在用(我们有很大一部分工作是内容的输出,而不仅仅是卖东西,通过内容获客是非常持久的),现在把这个工具放出来,并没有希望有多少人用,我写工具的目的是先解决自己的问题,如果有人用了感觉还可以,或者有哪些还可以提高的地方,欢迎与我联系。

202112248EEKy8

如果感觉 google 网页翻译不好用的话,可以试一下我写的翻译。

连接

https://fanyi.qishiya.com/

Read more

为什么要自己写一个翻译

自己去实现一个翻译引擎这太难了,一是没有这么多语料,二是没有这个技术能力,但是我可以调用几家翻译平台的 API,在体验上进行优化,我做的这个事情是完全解决我自己和我身边人的需求,我准备写完后,开源给大家用。

相比百度、腾讯、Google 网页的翻译,我主要优化了如下几个点。

  1. 没有长度限制,你可以上传任意长度的文本,翻译完成后,会自动拼接起来。
  2. 批量翻译,你可以上传多一个文件,以 zip 包的方式,我会自动解压,然后把每一个文件都翻译完成后,再把翻译结果打包成一个 zip 包,这样就可以节省你的时间。
  3. 多个翻译结果同时对比,你可以选择多个翻译平台,然后比较翻译结果,这样就可以看到哪个翻译结果更好。
  4. 支持图片到图片的翻译,比如电商场景下,可以把中文的图片翻译成英文的图片。

Read more

百度翻译为什么不好用

机器翻译是我每天必不可少的工具,因为要批量翻译一些资料,在各个翻译引擎的页面上翻译,太慢了,所以我自己买了三家的翻译(google, baidu, tencent) api ,在调用 API 的过程中,发现百度翻译在使用体验上是最差的,他会删除换行的格式,删除自己翻译不了的特殊字符,我同时也把这些问题反馈给了百度翻译,因为我也在百度工作过,希望他们做的更好。

不保留原有格式

这一点百度做的非常不好,比如我要翻译的原文如下,在腾讯翻译、Google 翻译里面,翻译的结果里面是保留了原文的换行,只有百度翻译,他是自动把多个换行符变成了一个,所以你一看就能看出来,格式没了,我试了一下百度的 api,也是同样的效果,不会保留换行符,我猜他是把换行符当作分段来翻译,如果遇到一个换行符,没有别的内容,只有一个换行符,他直接给你删除了。

原文

Here, s is the original or given string, old is the string that you want to replace. new is the which replaces the old, and n is the number of times the old replaced.

Note: If old is empty, it matches at the beginning of the string and after each UTF-8 sequence, yielding up to k+1 replacements for a k-rune string. If n < 0, there is no limit on the number of replacements.

Example 1:
202111251mYT3z

百度的翻译结果

可以清楚的看到,百度的翻译结果没有了格式,多行变成了一行,非常难看。

20211125plo1i0

Read more