|
@@ -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
|
|