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