@@ -20,26 +20,25 @@ import (
2020
2121// 中文字符长度,需要乘 3,中文占 3 个字节
2222// ==================== 命令行参数
23- var top = flag . Bool ( "top" , false , "[窗口] 置顶当前 CMD 窗口" )
24- var han = flag . Int ( "han" , 4 , "[关键字翻译] 汉语关键字长度,默认支持4个汉字,最少2个汉字。例如:订单编号、订单状态、创建时间" )
25- var hump = flag . Int ( "hump" , 1 , "[关键字翻译] 将翻译内容写入剪切板,命名规则:1.大驼峰 2.小驼峰 3.下划线" )
26- var tran = flag . Bool ( "tran" , false , "[翻译工具] 开启自动检测翻译,关键字翻译将关闭" )
27- var w = flag . Bool ( "w" , false , "[翻译工具] 将翻译内容写入剪切板" )
23+ var top bool
24+ var han int
25+ var hump int
26+ var tran bool
27+ var w bool
2828
2929var dicts []string
3030
3131var devPath = "./"
3232
3333func init () {
34+ flag .BoolVar (& top , "top" , false , "[窗口] 置顶当前 CMD 窗口" )
35+ flag .IntVar (& han , "han" , 4 , "[关键字翻译] 汉语关键字长度,默认支持4个汉字,最少2个汉字。例如:订单编号、订单状态、创建时间" )
36+ flag .IntVar (& hump , "hump" , 1 , "[关键字翻译] 将翻译内容写入剪切板,命名规则:1.大驼峰 2.小驼峰 3.下划线" )
37+ flag .BoolVar (& tran , "tran" , false , "[翻译工具] 开启自动检测翻译,关键字翻译将关闭" )
38+ flag .BoolVar (& w , "w" , false , "[翻译工具|关键字翻译] 将翻译内容写入剪切板" )
3439 // 解析命令行参数
3540 flag .Parse ()
3641
37- // 打印参数值
38- //fmt.Println("top:", *top)
39- //fmt.Println("han:", *han)
40- //fmt.Println("hump:", *hump)
41- //fmt.Println("tran:", *tran)
42-
4342 // 应用程序数据的存储目录
4443 devPath = os .Getenv ("DEVC" )
4544 if len (devPath ) == 0 {
@@ -65,31 +64,33 @@ func writeHistory(content string) {
6564
6665func main () {
6766 // 置顶窗口
68- if * top {
67+ if top {
6968 internal .TopUp ()
7069 }
71- length := * han
70+ length := han
7271 if length < 2 {
7372 length = 2
7473 }
74+
7575 // 临时写入
7676 tempWrite := ""
77+ tempData := ""
7778 // 开始监听
7879 watch := internal .Watch ()
7980 for data := range watch {
8081 // 跳过空内容、跳过写入剪切板内容
81- if len (strings .TrimSpace (data )) == 0 || strings .Contains (tempWrite , data ) || tempWrite == data {
82+ if len (strings .TrimSpace (data )) == 0 || strings .Contains (tempWrite , data ) || tempWrite == data || strings . Contains ( tempData , data ) || tempData == data {
8283 continue
8384 }
84-
8585 // 历史记录
8686 go writeHistory (data )
87+ tempData = data
8788
88- if * tran {
89+ if tran {
8990 translate := internal .Translate (data )
9091 fmt .Println ("原文->" , data )
9192 fmt .Println ("翻译->" , translate )
92- if * w && len (translate ) > 0 {
93+ if w && len (translate ) > 0 {
9394 err := internal .SetClipboardData (translate )
9495 if err != nil {
9596 fmt .Println ("写入失败" )
@@ -103,26 +104,42 @@ func main() {
103104 line := internal .FindDict (data , dicts )
104105 if len (line ) > 0 {
105106 fmt .Println ("缓存->" + line )
106- tempWrite = internal .SetData (line , * hump )
107+ if w {
108+ tempWrite = internal .SetData (line , hump )
109+ }
107110 } else if len (data ) <= length * 3 {
108111 translate := internal .Translate (data )
109112 if len (translate ) > 0 {
110113 line = fmt .Sprintf ("%s|%s\n " , data , internal .ToCamelCase (translate ))
111114 fmt .Print ("翻译->" + line )
112115 go internal .SaveDicts (devPath , line )
113116 dicts = append (dicts , line )
114- tempWrite = internal .SetData (line , * hump )
117+ if w {
118+ tempWrite = internal .SetData (line , hump )
119+ }
115120 }
116121 }
117122 } else if textType == internal .ENGLISH { // 英文
118123 line := internal .FindDict (data , dicts )
119124 if len (line ) > 0 {
120125 fmt .Println ("缓存->" + line )
121- tempWrite = internal .SetData (line , * hump )
126+ if w {
127+ tempWrite = internal .SetData (line , hump )
128+ }
122129 } else {
123130 translate := internal .Translate (data )
124- fmt .Println ("中文->" , data )
125- fmt .Println ("英文->" , translate )
131+ fmt .Println ("英文->" , data )
132+ fmt .Println ("中文->" , translate )
133+ }
134+ } else if textType == internal .CAMEL_CASE { // 驼峰
135+ word := internal .CamelToWord (data )
136+ line := internal .FindDict (data , dicts )
137+ fmt .Println ("格式转换->" + word )
138+ if len (line ) > 0 {
139+ fmt .Println ("字典缓存->" + strings .Split (line , "|" )[0 ])
140+ } else {
141+ translate := internal .Translate (word )
142+ fmt .Println ("转换翻译->" , translate )
126143 }
127144 } else {
128145 fmt .Println ("排除内容->" + data )
0 commit comments