代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
GO
】
百度 API 翻译工具
作者:
akang
/ 发布于
2015/10/19
/
1426
package main import ( "bufio" "fmt" "io" "os" "regexp" "unicode" "github.com/antonholmquist/jason" "github.com/astaxie/bat/httplib" "github.com/ttacon/chalk" ) const ( URL_dict = "http://apis.baidu.com/apistore/tranlateservice/dictionary" URL_translate = "http://apis.baidu.com/apistore/tranlateservice/translate" APIKEY = "" ) const ( EN = iota ZH JP ) func getflag() (str string) { // var str string info, _ := os.Stdin.Stat() if (info.Mode() & os.ModeCharDevice) == os.ModeCharDevice { if len(os.Args) == 1 { fmt.Printf("[Err] Usage: %s content", os.Args[0]) os.Exit(1) } for _, s := range os.Args[1:] { str = str + s + " " } } else if info.Size() > 0 { reader := bufio.NewReader(os.Stdin) // match(pattern, reader) for { input, err := reader.ReadString('\n') if err != nil && err == io.EOF { break } str = str + string(input) } } return } func main() { str := getflag() getdict := httplib.Get(URL_translate) getdict.Header("apikey", APIKEY) getdict.Param("query", str) switch charIS(str) { case JP: getdict.Param("from", "jp") getdict.Param("to", "zh") case EN: getdict.Param("from", "en") getdict.Param("to", "zh") case ZH: getdict.Param("from", "zh") getdict.Param("to", "en") default: getdict.Param("from", "zh") getdict.Param("to", "en") } body, _ := getdict.Bytes() data, _ := jason.NewObjectFromBytes(body) transData, _ := data.GetObjectArray("retData", "trans_result") for k, va := range transData { s1, _ := va.GetString("src") s2, _ := va.GetString("dst") fmt.Printf("%ssrc :%s %s %s\n", chalk.Red, chalk.Reset, chalk.Cyan, s1) fmt.Printf("%strans-%d :%s %s\n", chalk.Blue, k, chalk.Reset, s2) } } // engine var ( regJp = regexp.MustCompile("([あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをんがぎぐげござじずぜぞだぢづでどばびぶべぼぱぴぷぺぽアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤ(イ)ユェヨラリルレロワウィ(ウ)ウェヲンガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポ])") ) /* 判断字符串是否包含中文字符 */ func charIS(str string) int { l := EN if regJp.MatchString(str) { return JP } for _, r := range str { if unicode.Is(unicode.Scripts["Han"], r) && l != JP { l = ZH } if unicode.Is(unicode.Scripts["Hiragana"], r) { l = JP return l } } return l }
试试其它关键字
百度
API
翻译工具
同语言下
.
将SQL查询结果转换成map数组
.
德州扑克的核心规则算法
.
格式化时间
.
超简单QR二维码生成器
.
检查命令位置,替代 mac 下 whereis
.
百度 API 翻译工具
.
鼠标事件处理
.
快速排序
.
鸡尾酒排序
.
冒泡排序
可能有用的
.
实现测量程序运行时间及cpu使用时间
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
akang
贡献的其它代码
(
20
)
.
base64加解密
.
发邮件,密送多人,带附件,中文正文,收信信箱从exce
.
VBS脚本发送邮件,密送多人,带附件,可更换账号密码
.
石头, 剪刀, 布
.
通过正则表达式截取短信中流量信息
.
发送邮件,可带附件,可群发
.
二叉树的常用算法
.
复数类
.
向数据库添加数据
.
字符串转为十六进制
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3