22#include " cmdline.hpp"
33#include < cstring>
44#include < cstdio>
5+ #include < fstream>
56
67class Translator
78{
@@ -95,7 +96,7 @@ int main(int argc, char *argv[])
9596 cmdline::parser parser;
9697 parser.add <std::string>(" model" , ' m' , " model path for axmodel)" , true );
9798 parser.add <std::string>(" tokenizer_dir" , ' k' , " tokenizer dir" , true );
98- parser.add <std::string>(" text" , ' t' , " text to translate" , true );
99+ parser.add <std::string>(" text" , ' t' , " text or .txt file to translate" , true );
99100 parser.parse_check (argc, argv);
100101
101102 std::string model_path = parser.get <std::string>(" model" );
@@ -109,8 +110,26 @@ int main(int argc, char *argv[])
109110 printf (" init translator failed\n " );
110111 return -1 ;
111112 }
112-
113- std::string output = translator.Translate (text);
114- printf (" output: %s\n " , output.c_str ());
113+ if (text.find (" .txt" ) != std::string::npos)
114+ {
115+ std::ifstream ifs (text);
116+ if (!ifs.is_open ())
117+ {
118+ printf (" open file failed\n " );
119+ return -1 ;
120+ }
121+ std::string line;
122+ while (std::getline (ifs, line))
123+ {
124+ std::string output = translator.Translate (line);
125+ printf (" input: %s, output: %s\n " , line.c_str (), output.c_str ());
126+ }
127+ ifs.close ();
128+ }
129+ else
130+ {
131+ std::string output = translator.Translate (text);
132+ printf (" output: %s\n " , output.c_str ());
133+ }
115134 return 0 ;
116135}
0 commit comments