作者 lyh

gx

@@ -49,14 +49,20 @@ class TranslateLogic extends BaseLogic @@ -49,14 +49,20 @@ 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) { 52 + // 原始校对程序
  53 + $old_key = [];//key值组成数据
  54 + if($info !== false){
  55 + $data_read = json_decode($info['data'],JSON_UNESCAPED_UNICODE);
  56 + foreach ($data_read as $k => $v){
  57 + $old_key[] = $k;
  58 + $data[] = [$k => $v];
  59 + }
  60 + }
  61 + $arr2 = array_values(array_diff($text_array, $old_key));
  62 + if(!empty($arr2)){
57 $i = 0; 63 $i = 0;
58 TranslateText: 64 TranslateText:
59 - $translate_list = Translate::tran($need_tran, $languageInfo['short']); 65 + $translate_list = Translate::tran($arr2, $languageInfo['short']);
60 if(empty($translate_list)){ 66 if(empty($translate_list)){
61 if ($i < 3) { 67 if ($i < 3) {
62 $i++; 68 $i++;
@@ -64,56 +70,17 @@ class TranslateLogic extends BaseLogic @@ -64,56 +70,17 @@ class TranslateLogic extends BaseLogic
64 } 70 }
65 $this->fail('翻译失败,请稍后重试!'); 71 $this->fail('翻译失败,请稍后重试!');
66 } 72 }
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 - // 原始校对程序  
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值组成数据  
97 - $data_read = json_decode($info['data'],JSON_UNESCAPED_UNICODE);  
98 - foreach ($data_read as $k => $v){  
99 - $old_key[] = $k;  
100 - $data[] = [$k => $v];  
101 - }  
102 - $arr2 = array_values(array_diff($need_tran, $old_key));  
103 - if(!empty($arr2)){  
104 - $translate_list = Translate::tran($arr2, $languageInfo['short']);  
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){  
112 - $data[] = [  
113 - trim($v)=>$translate_list[$k]  
114 - ];  
115 - } 78 + foreach ($arr2 as $k => $v){
  79 + $data[] = [
  80 + trim($v)=>$translate_list[$k]
  81 + ];
116 } 82 }
  83 +
117 } 84 }
118 } 85 }
119 return $this->success($data); 86 return $this->success($data);