@@ -3,49 +3,29 @@ package main
33import (
44 "bufio"
55 "fmt"
6- "io"
6+ "io/ioutil "
77 "log"
88 "os"
9- "path"
109 "strings"
1110 "time"
1211
13- "translate/BaiduTranslate"
14-
15- "github.com/dablelv/go-huge-util/file"
12+ "github.com/UlinoyaPed/BaiduTranslate"
1613)
1714
1815func init () {
1916 now := time .Now ()
20- file := "./" + now .Format ("2006-01-02" ) + ".log" // 使用2006年1月2号15点04分
17+ file := "./" + now .Format ("2006-01-02" ) + ".log"
2118 logFile , err := os .OpenFile (file , os .O_WRONLY | os .O_CREATE | os .O_APPEND , 0755 )
2219 if err != nil {
23- log .Println (err . Error () )
20+ log .Fatal (err )
2421 }
25- log .SetOutput (logFile ) // 将文件设置为log输出的文件
22+ log .SetOutput (logFile )
2623 log .SetPrefix ("[Translate]" )
2724 log .SetFlags (log .LstdFlags | log .Lshortfile )
28-
29- return
30- }
31-
32- func FindFile (dirname string , format string ) ([]string , error ) {
33- names , err := file .GetDirAllEntryPaths (dirname , true )
34- if err != nil {
35- log .Println (err .Error ())
36- }
37- var result []string
38- ext := ""
39- for i := 0 ; i < len (names ); i ++ {
40- ext = path .Ext (names [i ])
41- if ext == format {
42- result [i ] = names [i ]
43- }
44- }
45- return result , err
4625}
4726
4827func main () {
28+ // 打印欢迎消息
4929 s := `如果您第一次使用,请在本目录下创建profile.txt,并填入您的AppID和SecretKey
5030一行一个,不加前后缀!
5131请填入正确的AppID和SecretKey,否则输出为空!
@@ -55,59 +35,50 @@ jXXEOXyXXXfXXXXXsXXX
5535`
5636 fmt .Println (s )
5737
58- deploy , err := os .OpenFile ("profile.txt" , os .O_RDONLY | os .O_CREATE , 0755 )
38+ // 读取配置文件中的AppID和SecretKey
39+ deployData , err := ioutil .ReadFile ("profile.txt" )
5940 if err != nil {
60- log .Println (err . Error () )
41+ log .Fatal (err )
6142 }
62-
63- d := bufio .NewReader (deploy )
64- appID , _ := d .ReadString ('\n' )
65- appID = strings .TrimSpace (appID )
66- secretKey , _ := d .ReadString ('\n' )
67- secretKey = strings .TrimSpace (secretKey )
43+ deployLines := strings .Split (string (deployData ), "\n " )
44+ appID := strings .TrimSpace (deployLines [0 ])
45+ secretKey := strings .TrimSpace (deployLines [1 ])
6846 btr := BaiduTranslate.BaiduInfo {AppID : appID , SecretKey : secretKey }
6947
70- in , err := os .OpenFile ("input.txt" , os .O_RDONLY | os .O_CREATE , 0755 )
48+ // 读取输入文件内容
49+ inputData , err := ioutil .ReadFile ("input.txt" )
7150 if err != nil {
72- log .Println (err . Error () )
51+ log .Fatal (err )
7352 }
74- // 创建 Reader
75- r := bufio .NewReader (in )
53+ inputLines := strings .Split (string (inputData ), "\n " )
7654
77- file , err := os .OpenFile ("output.txt" , os .O_WRONLY | os .O_CREATE | os .O_TRUNC , 0755 )
55+ // 打开输出文件
56+ outputFile , err := os .OpenFile ("output.txt" , os .O_WRONLY | os .O_CREATE | os .O_TRUNC , 0755 )
7857 if err != nil {
79- fmt . Println (err . Error () )
58+ log . Fatal (err )
8059 }
81- defer file .Close ()
82- writer := bufio .NewWriter (file )
60+ defer outputFile .Close ()
61+
62+ writer := bufio .NewWriter (outputFile )
8363
84- i := 0
8564 n := 0
8665 from := "en"
8766 to := "zh"
88- for {
89- line , ierr := r .ReadString ('\n' )
90- line = strings .TrimSpace (line ) // 去掉字符串首尾空白字符
91- if ierr != nil && ierr != io .EOF {
92- log .Println (err .Error ())
93- }
94-
95- i ++
96-
67+ for i , line := range inputLines {
68+ line = strings .TrimSpace (line )
9769 if line == "" {
98- log .Printf ("第%d行是空行" , i )
70+ log .Printf ("第%d行是空行" , i + 1 )
9971 fmt .Println ()
100-
10172 _ , err = writer .WriteString ("\n " )
10273 if err != nil {
103- log .Println (err . Error () )
74+ log .Fatal (err )
10475 }
105-
10676 } else {
10777 if n != 1 {
78+ // 检测语言并切换翻译方向
10879 lang := btr .Detect (line )
10980 if lang .Err () != nil {
110- log .Println ( lang .Err ().Error ())
81+ log .Printf ( "第%d行出现错误,错误:%s" , i + 1 , lang .Err ().Error ())
11182 } else {
11283 fmt .Printf ("语言:%s\n " , lang .Lang )
11384 if lang .Lang == to {
@@ -118,32 +89,26 @@ jXXEOXyXXXfXXXXXsXXX
11889 }
11990 }
12091
92+ // 进行翻译
12193 result := btr .NormalTr (line , from , to )
12294 if result .Err () != nil {
123- log .Printf ("第%d行出现错误,错误:%s" , i , result .Err ().Error ())
95+ log .Printf ("第%d行出现错误,错误:%s" , i + 1 , result .Err ().Error ())
12496 _ , err = writer .WriteString ("\n " )
12597 } else {
12698 fmt .Printf ("%s\n " , result .Dst )
127- log .Printf ("第%d行翻译完成!" , i )
128-
99+ log .Printf ("第%d行翻译完成!" , i + 1 )
129100 _ , err = writer .WriteString (result .Dst + "\n " )
130101 if err != nil {
131- log .Println (err . Error () )
102+ log .Fatal (err )
132103 }
133104 }
134-
135105 }
136-
137- if ierr == io .EOF {
138- break
139- }
140-
141106 }
142107
143108 fmt .Println ("---翻译已完成,按回车键退出---" )
144109 log .Println ("---翻译已完成---" )
145110
111+ // 刷新缓冲区并关闭写入器
146112 writer .Flush ()
147113 BaiduTranslate .Input ()
148- return
149114}
0 commit comments