i18n-jsautotranslate 3.18.54 → 3.18.56
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ArcoDesign/Vue3/LanguageSelect.vue +6 -5
- package/index.js +65 -55
- package/package.json +1 -1
|
@@ -113,9 +113,10 @@ onMounted(() => {
|
|
|
113
113
|
languageList.value = allowLanguageList;
|
|
114
114
|
|
|
115
115
|
//显示上一次切换后的语种
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
116
|
+
language.value = translate.language.getCurrent();
|
|
117
|
+
//setTimeout(function(){
|
|
118
|
+
//language.value = translate.language.getCurrent();
|
|
119
|
+
//}, 100);
|
|
119
120
|
}
|
|
120
121
|
|
|
121
122
|
const refreshLanguage = function(){
|
|
@@ -125,16 +126,16 @@ onMounted(() => {
|
|
|
125
126
|
language.value = translate.language.getCurrent();
|
|
126
127
|
};
|
|
127
128
|
|
|
129
|
+
|
|
128
130
|
// 当用户打开页面后,第一次触发 translate.execute() 时,进行触发
|
|
129
131
|
translate.lifecycle.execute.trigger.push(function(data){
|
|
130
|
-
if(
|
|
132
|
+
if(data.executeTriggerNumber === 1){
|
|
131
133
|
//console.log('这是打开页面后,第一次触发 translate.execute() ,因为translate.executeNumber 记录的是translate.execute() 执行完的次数。');
|
|
132
134
|
// 触发语言下拉列表出现
|
|
133
135
|
//渲染语言下拉列表出现
|
|
134
136
|
refreshLanguage();
|
|
135
137
|
}
|
|
136
138
|
});
|
|
137
|
-
|
|
138
139
|
//如果已经触发了 translate.execute() 那么直接就渲染
|
|
139
140
|
//console.log(translate.executeTriggerNumber+ ', '+translate.state)
|
|
140
141
|
if(translate.executeTriggerNumber > 0 || translate.state > 0){
|
package/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var translate = {
|
|
|
14
14
|
* 格式:major.minor.patch.date
|
|
15
15
|
*/
|
|
16
16
|
// AUTO_VERSION_START
|
|
17
|
-
version: '3.18.
|
|
17
|
+
version: '3.18.56.20250928',
|
|
18
18
|
// AUTO_VERSION_END
|
|
19
19
|
/*
|
|
20
20
|
当前使用的版本,默认使用v2. 可使用 setUseVersion2();
|
|
@@ -1893,22 +1893,34 @@ var translate = {
|
|
|
1893
1893
|
这个触发是指在所有判断之前,也就是只要 触发了 translate.execute() 会立即触发此,然后在进行执行其他的。
|
|
1894
1894
|
{
|
|
1895
1895
|
to: , //翻译为的语种
|
|
1896
|
-
docs: //当前触发 translate.execute() 要进行翻译的元素。
|
|
1897
|
-
比如单纯触发执行 translate.execute() 、translate.request.listener.start() 那么这里 docs 则是 通过 translate.setDocuments(...)
|
|
1896
|
+
docs: //当前触发 translate.execute() 要进行翻译的元素。
|
|
1897
|
+
比如单纯触发执行 translate.execute() 、translate.request.listener.start() 那么这里 docs 则是 通过 translate.setDocuments(...) 所设置的元素。 如果没有使用 translate.setDocuments(...) 设置过,那就是翻译整个html页面。
|
|
1898
1898
|
如果是 translate.listener.start(); 监控页面发生变化的元素进行翻译,则这里的docs 则是发生变化的元素
|
|
1899
|
-
|
|
1899
|
+
executeTriggerNumber: 整数型,当前触发 translate.execute() 执行,属于打开页面后第几次执行 translate.execute() , 它不会经过任何初始化判断,只要触发了 translate.execute() 就会立即+1,即使初始化判断当前不需要翻译、或者当前正在翻译需要排队等待,它依旧也会+1
|
|
1900
|
+
|
|
1900
1901
|
}
|
|
1901
1902
|
|
|
1903
|
+
注意,它有返回参数,boolean 类型:
|
|
1904
|
+
true 则是继续执行 translate.execute()
|
|
1905
|
+
false 则是不继续执行,直接终止本次的 translate.execute() 也就是后面的 translate.lifecycle.execute.start 都不会执行到,不会触发。
|
|
1906
|
+
如果钩子没有任何返回值,则默认是 true
|
|
1907
|
+
|
|
1908
|
+
如果本钩子有多个实现,其中某个实现返回 false,它不会阻止其他钩子的执行,其他的钩子实现也都会触发执行。 只不过里面只要其中有一个是返回 false,那么 translate.execute() 都会终止。
|
|
1902
1909
|
*/
|
|
1903
1910
|
trigger: [],
|
|
1904
1911
|
trigger_Trigger:function(data){
|
|
1912
|
+
var isNextExecute = true; //是否继续向下执行,true则是继续执行,false则是不继续执行。
|
|
1905
1913
|
for(var i = 0; i < translate.lifecycle.execute.trigger.length; i++){
|
|
1906
1914
|
try{
|
|
1907
|
-
translate.lifecycle.execute.trigger[i](data);
|
|
1915
|
+
var isNext = translate.lifecycle.execute.trigger[i](data);
|
|
1916
|
+
if(typeof(isNext) === 'boolean' && boolean === false){
|
|
1917
|
+
isNextExecute = false;
|
|
1918
|
+
}
|
|
1908
1919
|
}catch(e){
|
|
1909
1920
|
console.log(e);
|
|
1910
1921
|
}
|
|
1911
1922
|
}
|
|
1923
|
+
return isNextExecute;
|
|
1912
1924
|
},
|
|
1913
1925
|
|
|
1914
1926
|
/*
|
|
@@ -2105,15 +2117,53 @@ var translate = {
|
|
|
2105
2117
|
如果不传入或者传入null,则是翻译整个网页所有能翻译的元素
|
|
2106
2118
|
*/
|
|
2107
2119
|
execute:function(docs){
|
|
2120
|
+
translate.executeTriggerNumber = translate.executeTriggerNumber + 1;
|
|
2121
|
+
var triggerNumber = translate.executeTriggerNumber; //为了整个 translate.execute 的数据一致性,下面都是使用这个变量
|
|
2122
|
+
|
|
2123
|
+
//每次执行execute,都会生成一个唯一uuid,也可以叫做队列的唯一标识,每一次执行execute都会创建一个独立的翻译执行队列
|
|
2124
|
+
var uuid = translate.util.uuid();
|
|
2125
|
+
translate.time.log('创建uuid:'+uuid);
|
|
2126
|
+
|
|
2127
|
+
//如果页面打开第一次使用,先判断缓存中有没有上次使用的语种,从缓存中取出
|
|
2128
|
+
if(translate.to == null || translate.to == ''){
|
|
2129
|
+
var to_storage = translate.storage.get('to');
|
|
2130
|
+
if(to_storage != null && typeof(to_storage) != 'undefined' && to_storage.length > 0){
|
|
2131
|
+
translate.to = to_storage;
|
|
2132
|
+
}
|
|
2133
|
+
}
|
|
2134
|
+
|
|
2135
|
+
/*
|
|
2136
|
+
进行翻译指定的node操作。优先级为:
|
|
2137
|
+
1. 这个方法已经指定的翻译 nodes
|
|
2138
|
+
2. setDocuments 指定的
|
|
2139
|
+
3. 整个网页
|
|
2140
|
+
其实2、3都是通过 getDocuments() 取,在getDocuments() 就对2、3进行了判断
|
|
2141
|
+
*/
|
|
2142
|
+
var all;
|
|
2143
|
+
if(typeof(docs) != 'undefined' && docs != null){
|
|
2144
|
+
if(typeof(docs.length) == 'undefined'){
|
|
2145
|
+
//不是数组,是单个元素
|
|
2146
|
+
all = new Array();
|
|
2147
|
+
all[0] = docs;
|
|
2148
|
+
}else{
|
|
2149
|
+
//是数组,直接赋予
|
|
2150
|
+
all = docs;
|
|
2151
|
+
}
|
|
2152
|
+
}else{
|
|
2153
|
+
//2、3
|
|
2154
|
+
all = translate.getDocuments();
|
|
2155
|
+
}
|
|
2156
|
+
|
|
2157
|
+
|
|
2108
2158
|
//钩子
|
|
2109
2159
|
translate.lifecycle.execute.trigger_Trigger({
|
|
2110
2160
|
to:translate.to,
|
|
2111
|
-
docs:
|
|
2161
|
+
docs: all,
|
|
2162
|
+
executeTriggerNumber: triggerNumber,
|
|
2163
|
+
uuid: uuid
|
|
2112
2164
|
});
|
|
2113
2165
|
|
|
2114
2166
|
|
|
2115
|
-
translate.executeTriggerNumber = translate.executeTriggerNumber + 1;
|
|
2116
|
-
var triggerNumber = translate.executeTriggerNumber; //为了整个 translate.execute 的数据一致性,下面都是使用这个变量
|
|
2117
2167
|
|
|
2118
2168
|
if(translate.waitingExecute.use){
|
|
2119
2169
|
if(translate.state != 0){
|
|
@@ -2150,7 +2200,7 @@ var translate = {
|
|
|
2150
2200
|
|
|
2151
2201
|
//钩子
|
|
2152
2202
|
translate.lifecycle.execute.finally_Trigger({
|
|
2153
|
-
uuid:
|
|
2203
|
+
uuid:uuid,
|
|
2154
2204
|
to:translate.to,
|
|
2155
2205
|
state: 2,
|
|
2156
2206
|
triggerNumber: triggerNumber
|
|
@@ -2188,9 +2238,7 @@ var translate = {
|
|
|
2188
2238
|
/****** 采用 2.x 版本的翻译,使用自有翻译算法 */
|
|
2189
2239
|
|
|
2190
2240
|
|
|
2191
|
-
|
|
2192
|
-
var uuid = translate.util.uuid();
|
|
2193
|
-
translate.time.log('创建uuid:'+uuid);
|
|
2241
|
+
|
|
2194
2242
|
//console.log('=====')
|
|
2195
2243
|
//console.log(translate.nodeQueue);
|
|
2196
2244
|
|
|
@@ -2203,13 +2251,7 @@ var translate = {
|
|
|
2203
2251
|
//console.log(translate.nodeQueue);
|
|
2204
2252
|
//console.log('=====end')
|
|
2205
2253
|
|
|
2206
|
-
|
|
2207
|
-
if(translate.to == null || translate.to == ''){
|
|
2208
|
-
var to_storage = translate.storage.get('to');
|
|
2209
|
-
if(to_storage != null && typeof(to_storage) != 'undefined' && to_storage.length > 0){
|
|
2210
|
-
translate.to = to_storage;
|
|
2211
|
-
}
|
|
2212
|
-
}
|
|
2254
|
+
|
|
2213
2255
|
|
|
2214
2256
|
translate.time.log('渲染出选择语言的select窗口-开始');
|
|
2215
2257
|
//渲染select选择语言
|
|
@@ -2232,7 +2274,7 @@ var translate = {
|
|
|
2232
2274
|
|
|
2233
2275
|
//钩子
|
|
2234
2276
|
translate.lifecycle.execute.finally_Trigger({
|
|
2235
|
-
uuid:
|
|
2277
|
+
uuid:uuid,
|
|
2236
2278
|
to:translate.to,
|
|
2237
2279
|
state: 3,
|
|
2238
2280
|
triggerNumber: triggerNumber
|
|
@@ -2252,8 +2294,8 @@ var translate = {
|
|
|
2252
2294
|
|
|
2253
2295
|
//钩子
|
|
2254
2296
|
translate.lifecycle.execute.finally_Trigger({
|
|
2255
|
-
uuid:
|
|
2256
|
-
to:
|
|
2297
|
+
uuid:uuid,
|
|
2298
|
+
to:translate.to,
|
|
2257
2299
|
state: 5,
|
|
2258
2300
|
triggerNumber: triggerNumber
|
|
2259
2301
|
});
|
|
@@ -2279,39 +2321,7 @@ var translate = {
|
|
|
2279
2321
|
translate.images.execute();
|
|
2280
2322
|
translate.time.log('进行图片翻译-完成');
|
|
2281
2323
|
|
|
2282
|
-
|
|
2283
|
-
进行翻译指定的node操作。优先级为:
|
|
2284
|
-
1. 这个方法已经指定的翻译 nodes
|
|
2285
|
-
2. setDocuments 指定的
|
|
2286
|
-
3. 整个网页
|
|
2287
|
-
其实2、3都是通过 getDocuments() 取,在getDocuments() 就对2、3进行了判断
|
|
2288
|
-
*/
|
|
2289
|
-
var all;
|
|
2290
|
-
if(typeof(docs) != 'undefined' && docs != null){
|
|
2291
|
-
//1. 这个方法已经指定的翻译 nodes
|
|
2292
|
-
|
|
2293
|
-
/* v3.12.6 注释,转到判断非null
|
|
2294
|
-
if(docs == null){
|
|
2295
|
-
//要翻译的目标区域不存在
|
|
2296
|
-
console.log('translate.execute(...) 中传入的要翻译的目标区域不存在。');
|
|
2297
|
-
translate.state = 0;
|
|
2298
|
-
return;
|
|
2299
|
-
}
|
|
2300
|
-
*/
|
|
2301
|
-
|
|
2302
|
-
if(typeof(docs.length) == 'undefined'){
|
|
2303
|
-
//不是数组,是单个元素
|
|
2304
|
-
all = new Array();
|
|
2305
|
-
all[0] = docs;
|
|
2306
|
-
}else{
|
|
2307
|
-
//是数组,直接赋予
|
|
2308
|
-
all = docs;
|
|
2309
|
-
}
|
|
2310
|
-
|
|
2311
|
-
}else{
|
|
2312
|
-
//2、3
|
|
2313
|
-
all = translate.getDocuments();
|
|
2314
|
-
}
|
|
2324
|
+
|
|
2315
2325
|
//console.log('----要翻译的目标元素-----');
|
|
2316
2326
|
//console.log(all)
|
|
2317
2327
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "i18n-jsautotranslate",
|
|
3
|
-
"version": "3.18.
|
|
3
|
+
"version": "3.18.56",
|
|
4
4
|
"description": "Two lines of js realize automatic html translation. No need to change the page, no language configuration file, no API key, SEO friendly!",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|