作者 lyh

gx

@@ -49,71 +49,38 @@ class TranslateLogic extends BaseLogic @@ -49,71 +49,38 @@ class TranslateLogic extends BaseLogic
49 $info = $this->model->read(['url'=>$this->param['url'],'language_id'=>$this->param['language_id'],'type'=>$this->param['type']]); 49 $info = $this->model->read(['url'=>$this->param['url'],'language_id'=>$this->param['language_id'],'type'=>$this->param['type']]);
50 //获取当前URl的所有文本内容 50 //获取当前URl的所有文本内容
51 $text_array = $this->getUrlRead($url); 51 $text_array = $this->getUrlRead($url);
52 - // TODO 获取原始校对内容, 获取字符数组, 过滤已有内容, 进行翻译, 合并原始内容  
53 - $origin_text = json_decode($info['data'], true);  
54 - $need_tran = array_values(array_diff($text_array, array_keys($origin_text)));  
55 -  
56 - if ($need_tran) {  
57 - $i = 0;  
58 - TranslateText:  
59 - $translate_list = Translate::tran($need_tran, $languageInfo['short']);  
60 - if(empty($translate_list)){  
61 - if ($i < 3) {  
62 - $i++;  
63 - goto TranslateText;  
64 - }  
65 - $this->fail('翻译失败,请稍后重试!');  
66 - }  
67 - // 只有一个内容对象, 直接返回字符串  
68 - if (FALSE == is_array($translate_list)) {  
69 - $translate_list = [$translate_list];  
70 - }  
71 - // 拼装机翻内容  
72 - foreach ($need_tran as $key=>$val){  
73 - array_push($data, [$val => $translate_list[$key]]);  
74 - }  
75 - }  
76 - // 拼装原始校对内容  
77 - foreach ($origin_text as $key=>$val) {  
78 - array_push($data, [$key => $val]);  
79 - }  
80 - return $this->success($data);  
81 -  
82 // 原始校对程序 52 // 原始校对程序
83 -  
84 - if($info === false){  
85 - $translate_list = Translate::tran($need_tran, $languageInfo['short']);  
86 - if(empty($translate_list)){  
87 - $this->fail('翻译失败,请稍后重试!');  
88 - }  
89 - foreach ($need_tran as $k=>$v){  
90 - $data[] = [  
91 - trim($v)=>$translate_list[$k],  
92 - ];  
93 - }  
94 - return $this->success($data);  
95 - }  
96 $old_key = [];//key值组成数据 53 $old_key = [];//key值组成数据
  54 + if($info !== false){
97 $data_read = json_decode($info['data'],JSON_UNESCAPED_UNICODE); 55 $data_read = json_decode($info['data'],JSON_UNESCAPED_UNICODE);
98 foreach ($data_read as $k => $v){ 56 foreach ($data_read as $k => $v){
99 $old_key[] = $k; 57 $old_key[] = $k;
100 $data[] = [$k => $v]; 58 $data[] = [$k => $v];
101 } 59 }
102 - $arr2 = array_values(array_diff($need_tran, $old_key)); 60 + }
  61 + $arr2 = array_values(array_diff($text_array, $old_key));
103 if(!empty($arr2)){ 62 if(!empty($arr2)){
  63 + $i = 0;
  64 + TranslateText:
104 $translate_list = Translate::tran($arr2, $languageInfo['short']); 65 $translate_list = Translate::tran($arr2, $languageInfo['short']);
  66 + if(empty($translate_list)){
  67 + if ($i < 3) {
  68 + $i++;
  69 + goto TranslateText;
  70 + }
  71 + $this->fail('翻译失败,请稍后重试!');
  72 + }
105 if(count($arr2) == 1){ 73 if(count($arr2) == 1){
106 $data[] = [ 74 $data[] = [
107 $arr2[0]=>$translate_list 75 $arr2[0]=>$translate_list
108 ]; 76 ];
109 }else{ 77 }else{
110 - if(!empty($translate_list)){  
111 foreach ($arr2 as $k => $v){ 78 foreach ($arr2 as $k => $v){
112 $data[] = [ 79 $data[] = [
113 trim($v)=>$translate_list[$k] 80 trim($v)=>$translate_list[$k]
114 ]; 81 ];
115 } 82 }
116 - } 83 +
117 } 84 }
118 } 85 }
119 return $this->success($data); 86 return $this->success($data);