正在显示
1 个修改的文件
包含
13 行增加
和
46 行删除
| @@ -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); |
-
请 注册 或 登录 后发表评论