作者 张关杰

Merge branch 'develop' of http://47.244.231.31:8099/zhl/globalso-v6 into bate

@@ -24,11 +24,10 @@ class TranslateLogic extends BaseLogic @@ -24,11 +24,10 @@ class TranslateLogic extends BaseLogic
24 } 24 }
25 25
26 /** 26 /**
27 - * @remark :  
28 - * @name :getTranslateList  
29 - * @author :lyh  
30 - * @method :post  
31 - * @time :2024/1/12 9:43 27 + * 获取翻译校对文案
  28 + * @return array
  29 + * @throws \App\Exceptions\AsideGlobalException
  30 + * @throws \App\Exceptions\BsideGlobalException
32 */ 31 */
33 public function getTranslateList(){ 32 public function getTranslateList(){
34 $data = []; 33 $data = [];
@@ -42,44 +41,46 @@ class TranslateLogic extends BaseLogic @@ -42,44 +41,46 @@ class TranslateLogic extends BaseLogic
42 } 41 }
43 return $this->success($data); 42 return $this->success($data);
44 } 43 }
45 - $url = $this->user['domain'].(($this->param['url'] != '/') ? $this->param['url'] : ''); 44 + // 需要校对路由
  45 + $url = $this->user['domain'] . (($this->param['url'] != '/') ? $this->param['url'] : '');
  46 + // 需要校对语种
46 $languageInfo = $this->getLanguage($this->param['language_id']); 47 $languageInfo = $this->getLanguage($this->param['language_id']);
  48 + // 原始校对内容
47 $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']]);
48 //获取当前URl的所有文本内容 50 //获取当前URl的所有文本内容
49 - $new_key = $this->getUrlRead($url);  
50 - if($info === false){  
51 - $translate_list = Translate::tran($new_key, $languageInfo['short']);  
52 - if(empty($translate_list)){  
53 - $this->fail('翻译失败,请联系管理员');  
54 - }  
55 - foreach ($new_key as $k=>$v){  
56 - $data[] = [  
57 - trim($v)=>$translate_list[$k],  
58 - ];  
59 - }  
60 - return $this->success($data);  
61 - } 51 + $text_array = $this->getUrlRead($url);
  52 + // 原始校对程序
62 $old_key = [];//key值组成数据 53 $old_key = [];//key值组成数据
  54 + if($info !== false){
63 $data_read = json_decode($info['data'],JSON_UNESCAPED_UNICODE); 55 $data_read = json_decode($info['data'],JSON_UNESCAPED_UNICODE);
64 foreach ($data_read as $k => $v){ 56 foreach ($data_read as $k => $v){
65 $old_key[] = $k; 57 $old_key[] = $k;
66 $data[] = [$k => $v]; 58 $data[] = [$k => $v];
67 } 59 }
68 - $arr2 = array_values(array_diff($new_key, $old_key)); 60 + }
  61 + $arr2 = array_values(array_diff($text_array, $old_key));
69 if(!empty($arr2)){ 62 if(!empty($arr2)){
  63 + $i = 0;
  64 + TranslateText:
70 $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 + }
71 if(count($arr2) == 1){ 73 if(count($arr2) == 1){
72 $data[] = [ 74 $data[] = [
73 $arr2[0]=>$translate_list 75 $arr2[0]=>$translate_list
74 ]; 76 ];
75 }else{ 77 }else{
76 - if(!empty($translate_list)){  
77 foreach ($arr2 as $k => $v){ 78 foreach ($arr2 as $k => $v){
78 $data[] = [ 79 $data[] = [
79 trim($v)=>$translate_list[$k] 80 trim($v)=>$translate_list[$k]
80 ]; 81 ];
81 } 82 }
82 - } 83 +
83 } 84 }
84 } 85 }
85 return $this->success($data); 86 return $this->success($data);
@@ -153,11 +154,9 @@ class TranslateLogic extends BaseLogic @@ -153,11 +154,9 @@ class TranslateLogic extends BaseLogic
153 } 154 }
154 155
155 /** 156 /**
156 - * @remark :获取Url内容  
157 - * @name :getUrlRead  
158 - * @author :lyh  
159 - * @method :post  
160 - * @time :2023/11/22 10:02 157 + * 获取url HTML需要翻译的文本
  158 + * @param $url
  159 + * @return array
161 */ 160 */
162 public function getUrlRead($url){ 161 public function getUrlRead($url){
163 $dom = file_get_html($url); 162 $dom = file_get_html($url);
@@ -184,10 +183,9 @@ class TranslateLogic extends BaseLogic @@ -184,10 +183,9 @@ class TranslateLogic extends BaseLogic
184 } 183 }
185 $need_tran[] = htmlspecialchars_decode(html_entity_decode($string)); 184 $need_tran[] = htmlspecialchars_decode(html_entity_decode($string));
186 } 185 }
187 - $need_tran[] = $description->attr['content'];  
188 - $need_tran[] = $keywords->attr['content']; 186 + $need_tran[] = $description ? $description->attr['content'] : '';
  187 + $need_tran[] = $keywords ? $keywords->attr['content'] : '';
189 return $need_tran; 188 return $need_tran;
190 - return $data;  
191 } 189 }
192 190
193 191
@@ -27,10 +27,12 @@ class WebSettingAmpLogic extends BaseLogic @@ -27,10 +27,12 @@ class WebSettingAmpLogic extends BaseLogic
27 if ($info === false) { 27 if ($info === false) {
28 return $this->success(); 28 return $this->success();
29 } 29 }
  30 + //log图处理
  31 + $info['top_logo'] = getImageUrl($info['top_logo'], $this->user['storage_type'] ?? 0);
30 //banner处理 32 //banner处理
31 if (!empty($info['index_banner'])) { 33 if (!empty($info['index_banner'])) {
32 foreach ($info['index_banner'] as &$v) { 34 foreach ($info['index_banner'] as &$v) {
33 - $v = getImageUrl($v, $this->user['project_location'] ?? 0, $this->user['storage_type'] ?? 0); 35 + $v = getImageUrl($v, $this->user['storage_type'] ?? 0);
34 } 36 }
35 } 37 }
36 return $this->success($info); 38 return $this->success($info);
@@ -45,6 +47,8 @@ class WebSettingAmpLogic extends BaseLogic @@ -45,6 +47,8 @@ class WebSettingAmpLogic extends BaseLogic
45 public function ampSave() 47 public function ampSave()
46 { 48 {
47 try { 49 try {
  50 + //log图处理
  51 + $this->param['top_logo'] = str_replace_url($this->param['top_logo'] ?? '');
48 //banner处理 52 //banner处理
49 foreach ($this->param['index_banner'] ?? [] as &$v) { 53 foreach ($this->param['index_banner'] ?? [] as &$v) {
50 $v = str_replace_url($v); 54 $v = str_replace_url($v);