ztechno_core 0.0.70 → 0.0.72
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/lib/translate_service.js +215 -4
- package/package.json +1 -1
package/lib/translate_service.js
CHANGED
|
@@ -246,6 +246,212 @@ class ZTranslateService {
|
|
|
246
246
|
[`♀`]: `♀`,
|
|
247
247
|
[`♂`]: `♂`,
|
|
248
248
|
[`❤`]: `❤`,
|
|
249
|
+
// Arabic characters (U+0600 to U+06FF range)
|
|
250
|
+
[`؀`]: ``,
|
|
251
|
+
[`؁`]: ``,
|
|
252
|
+
[`؂`]: ``,
|
|
253
|
+
[`؃`]: ``,
|
|
254
|
+
[`؄`]: ``,
|
|
255
|
+
[`؅`]: ``,
|
|
256
|
+
[`؆`]: `؆`,
|
|
257
|
+
[`؇`]: `؇`,
|
|
258
|
+
[`؈`]: `؈`,
|
|
259
|
+
[`؉`]: `؉`,
|
|
260
|
+
[`؊`]: `؊`,
|
|
261
|
+
[`؋`]: `؋`,
|
|
262
|
+
[`،`]: `،`,
|
|
263
|
+
[`؍`]: `؍`,
|
|
264
|
+
[`؎`]: `؎`,
|
|
265
|
+
[`؏`]: `؏`,
|
|
266
|
+
[`ؐ`]: `ؐ`,
|
|
267
|
+
[`ؑ`]: `ؑ`,
|
|
268
|
+
[`ؒ`]: `ؒ`,
|
|
269
|
+
[`ؓ`]: `ؓ`,
|
|
270
|
+
[`ؔ`]: `ؔ`,
|
|
271
|
+
[`ؕ`]: `ؕ`,
|
|
272
|
+
[`ؖ`]: `ؖ`,
|
|
273
|
+
[`ؗ`]: `ؗ`,
|
|
274
|
+
[`ؘ`]: `ؘ`,
|
|
275
|
+
[`ؙ`]: `ؙ`,
|
|
276
|
+
[`ؚ`]: `ؚ`,
|
|
277
|
+
[`؛`]: `؛`,
|
|
278
|
+
[`؜`]: ``,
|
|
279
|
+
[`؝`]: `؝`,
|
|
280
|
+
[`؞`]: `؞`,
|
|
281
|
+
[`؟`]: `؟`,
|
|
282
|
+
[`ؠ`]: `ؠ`,
|
|
283
|
+
[`ء`]: `ء`,
|
|
284
|
+
[`آ`]: `آ`,
|
|
285
|
+
[`أ`]: `أ`,
|
|
286
|
+
[`ؤ`]: `ؤ`,
|
|
287
|
+
[`إ`]: `إ`,
|
|
288
|
+
[`ئ`]: `ئ`,
|
|
289
|
+
[`ا`]: `ا`,
|
|
290
|
+
[`ب`]: `ب`,
|
|
291
|
+
[`ة`]: `ة`,
|
|
292
|
+
[`ت`]: `ت`,
|
|
293
|
+
[`ث`]: `ث`,
|
|
294
|
+
[`ج`]: `ج`,
|
|
295
|
+
[`ح`]: `ح`,
|
|
296
|
+
[`خ`]: `خ`,
|
|
297
|
+
[`د`]: `د`,
|
|
298
|
+
[`ذ`]: `ذ`,
|
|
299
|
+
[`ر`]: `ر`,
|
|
300
|
+
[`ز`]: `ز`,
|
|
301
|
+
[`س`]: `س`,
|
|
302
|
+
[`ش`]: `ش`,
|
|
303
|
+
[`ص`]: `ص`,
|
|
304
|
+
[`ض`]: `ض`,
|
|
305
|
+
[`ط`]: `ط`,
|
|
306
|
+
[`ظ`]: `ظ`,
|
|
307
|
+
[`ع`]: `ع`,
|
|
308
|
+
[`غ`]: `غ`,
|
|
309
|
+
[`ػ`]: `ػ`,
|
|
310
|
+
[`ؼ`]: `ؼ`,
|
|
311
|
+
[`ؽ`]: `ؽ`,
|
|
312
|
+
[`ؾ`]: `ؾ`,
|
|
313
|
+
[`ؿ`]: `ؿ`,
|
|
314
|
+
[`ـ`]: `ـ`,
|
|
315
|
+
[`ف`]: `ف`,
|
|
316
|
+
[`ق`]: `ق`,
|
|
317
|
+
[`ك`]: `ك`,
|
|
318
|
+
[`ل`]: `ل`,
|
|
319
|
+
[`م`]: `م`,
|
|
320
|
+
[`ن`]: `ن`,
|
|
321
|
+
[`ه`]: `ه`,
|
|
322
|
+
[`و`]: `و`,
|
|
323
|
+
[`ى`]: `ى`,
|
|
324
|
+
[`ي`]: `ي`,
|
|
325
|
+
// Arabic diacritics (most common ones)
|
|
326
|
+
[`ً`]: `ً`,
|
|
327
|
+
[`ٌ`]: `ٌ`,
|
|
328
|
+
[`ٍ`]: `ٍ`,
|
|
329
|
+
[`َ`]: `َ`,
|
|
330
|
+
[`ُ`]: `ُ`,
|
|
331
|
+
[`ِ`]: `ِ`,
|
|
332
|
+
[`ّ`]: `ّ`,
|
|
333
|
+
[`ْ`]: `ْ`,
|
|
334
|
+
[`ٓ`]: `ٓ`,
|
|
335
|
+
[`ٔ`]: `ٔ`,
|
|
336
|
+
[`ٕ`]: `ٕ`,
|
|
337
|
+
// Arabic-Indic digits
|
|
338
|
+
[`٠`]: `٠`,
|
|
339
|
+
[`١`]: `١`,
|
|
340
|
+
[`٢`]: `٢`,
|
|
341
|
+
[`٣`]: `٣`,
|
|
342
|
+
[`٤`]: `٤`,
|
|
343
|
+
[`٥`]: `٥`,
|
|
344
|
+
[`٦`]: `٦`,
|
|
345
|
+
[`٧`]: `٧`,
|
|
346
|
+
[`٨`]: `٨`,
|
|
347
|
+
[`٩`]: `٩`,
|
|
348
|
+
// Extended Arabic characters (commonly used)
|
|
349
|
+
[`٪`]: `٪`,
|
|
350
|
+
[`٫`]: `٫`,
|
|
351
|
+
[`٬`]: `٬`,
|
|
352
|
+
[`٭`]: `٭`,
|
|
353
|
+
[`ٮ`]: `ٮ`,
|
|
354
|
+
[`ٯ`]: `ٯ`,
|
|
355
|
+
[`ٰ`]: `ٰ`,
|
|
356
|
+
[`ٱ`]: `ٱ`,
|
|
357
|
+
[`ٲ`]: `ٲ`,
|
|
358
|
+
[`ٳ`]: `ٳ`,
|
|
359
|
+
[`ٴ`]: `ٴ`,
|
|
360
|
+
[`ٵ`]: `ٵ`,
|
|
361
|
+
[`ٶ`]: `ٶ`,
|
|
362
|
+
[`ٷ`]: `ٷ`,
|
|
363
|
+
[`ٸ`]: `ٸ`,
|
|
364
|
+
[`ٹ`]: `ٹ`,
|
|
365
|
+
[`ٺ`]: `ٺ`,
|
|
366
|
+
[`ٻ`]: `ٻ`,
|
|
367
|
+
[`ټ`]: `ټ`,
|
|
368
|
+
[`ٽ`]: `ٽ`,
|
|
369
|
+
[`پ`]: `پ`,
|
|
370
|
+
[`ٿ`]: `ٿ`,
|
|
371
|
+
[`ڀ`]: `ڀ`,
|
|
372
|
+
[`ځ`]: `ځ`,
|
|
373
|
+
[`ڂ`]: `ڂ`,
|
|
374
|
+
[`ڃ`]: `ڃ`,
|
|
375
|
+
[`ڄ`]: `ڄ`,
|
|
376
|
+
[`څ`]: `څ`,
|
|
377
|
+
[`چ`]: `چ`,
|
|
378
|
+
[`ڇ`]: `ڇ`,
|
|
379
|
+
[`ڈ`]: `ڈ`,
|
|
380
|
+
[`ډ`]: `ډ`,
|
|
381
|
+
[`ڊ`]: `ڊ`,
|
|
382
|
+
[`ڋ`]: `ڋ`,
|
|
383
|
+
[`ڌ`]: `ڌ`,
|
|
384
|
+
[`ڍ`]: `ڍ`,
|
|
385
|
+
[`ڎ`]: `ڎ`,
|
|
386
|
+
[`ڏ`]: `ڏ`,
|
|
387
|
+
[`ڐ`]: `ڐ`,
|
|
388
|
+
[`ڑ`]: `ڑ`,
|
|
389
|
+
[`ڒ`]: `ڒ`,
|
|
390
|
+
[`ړ`]: `ړ`,
|
|
391
|
+
[`ڔ`]: `ڔ`,
|
|
392
|
+
[`ڕ`]: `ڕ`,
|
|
393
|
+
[`ږ`]: `ږ`,
|
|
394
|
+
[`ڗ`]: `ڗ`,
|
|
395
|
+
[`ژ`]: `ژ`,
|
|
396
|
+
[`ڙ`]: `ڙ`,
|
|
397
|
+
[`ښ`]: `ښ`,
|
|
398
|
+
[`ڛ`]: `ڛ`,
|
|
399
|
+
[`ڜ`]: `ڜ`,
|
|
400
|
+
[`ڝ`]: `ڝ`,
|
|
401
|
+
[`ڞ`]: `ڞ`,
|
|
402
|
+
[`ڟ`]: `ڟ`,
|
|
403
|
+
[`ڠ`]: `ڠ`,
|
|
404
|
+
[`ڡ`]: `ڡ`,
|
|
405
|
+
[`ڢ`]: `ڢ`,
|
|
406
|
+
[`ڣ`]: `ڣ`,
|
|
407
|
+
[`ڤ`]: `ڤ`,
|
|
408
|
+
[`ڥ`]: `ڥ`,
|
|
409
|
+
[`ڦ`]: `ڦ`,
|
|
410
|
+
[`ڧ`]: `ڧ`,
|
|
411
|
+
[`ڨ`]: `ڨ`,
|
|
412
|
+
[`ک`]: `ک`,
|
|
413
|
+
[`ڪ`]: `ڪ`,
|
|
414
|
+
[`ګ`]: `ګ`,
|
|
415
|
+
[`ڬ`]: `ڬ`,
|
|
416
|
+
[`ڭ`]: `ڭ`,
|
|
417
|
+
[`ڮ`]: `ڮ`,
|
|
418
|
+
[`گ`]: `گ`,
|
|
419
|
+
[`ڰ`]: `ڰ`,
|
|
420
|
+
[`ڱ`]: `ڱ`,
|
|
421
|
+
[`ڲ`]: `ڲ`,
|
|
422
|
+
[`ڳ`]: `ڳ`,
|
|
423
|
+
[`ڴ`]: `ڴ`,
|
|
424
|
+
[`ڵ`]: `ڵ`,
|
|
425
|
+
[`ڶ`]: `ڶ`,
|
|
426
|
+
[`ڷ`]: `ڷ`,
|
|
427
|
+
[`ڸ`]: `ڸ`,
|
|
428
|
+
[`ڹ`]: `ڹ`,
|
|
429
|
+
[`ں`]: `ں`,
|
|
430
|
+
[`ڻ`]: `ڻ`,
|
|
431
|
+
[`ڼ`]: `ڼ`,
|
|
432
|
+
[`ڽ`]: `ڽ`,
|
|
433
|
+
[`ھ`]: `ھ`,
|
|
434
|
+
[`ڿ`]: `ڿ`,
|
|
435
|
+
[`ۀ`]: `ۀ`,
|
|
436
|
+
[`ہ`]: `ہ`,
|
|
437
|
+
[`ۂ`]: `ۂ`,
|
|
438
|
+
[`ۃ`]: `ۃ`,
|
|
439
|
+
[`ۄ`]: `ۄ`,
|
|
440
|
+
[`ۅ`]: `ۅ`,
|
|
441
|
+
[`ۆ`]: `ۆ`,
|
|
442
|
+
[`ۇ`]: `ۇ`,
|
|
443
|
+
[`ۈ`]: `ۈ`,
|
|
444
|
+
[`ۉ`]: `ۉ`,
|
|
445
|
+
[`ۊ`]: `ۊ`,
|
|
446
|
+
[`ۋ`]: `ۋ`,
|
|
447
|
+
[`ی`]: `ی`,
|
|
448
|
+
[`ۍ`]: `ۍ`,
|
|
449
|
+
[`ێ`]: `ێ`,
|
|
450
|
+
[`ۏ`]: `ۏ`,
|
|
451
|
+
[`ې`]: `ې`,
|
|
452
|
+
[`ۑ`]: `ۑ`,
|
|
453
|
+
[`ے`]: `ے`,
|
|
454
|
+
[`ۓ`]: `ۓ`, // Arabic Letter Yeh Barree with Hamza Above
|
|
249
455
|
};
|
|
250
456
|
if (!opt.googleApiKey) {
|
|
251
457
|
throw new typings_1.ValidationError('googleApiKey', opt.googleApiKey);
|
|
@@ -468,12 +674,16 @@ class ZTranslateService {
|
|
|
468
674
|
if (node.getAttribute && node.getAttribute('notranslate') != null) {
|
|
469
675
|
skipTranslate = true;
|
|
470
676
|
}
|
|
471
|
-
// Skip HTML comments
|
|
472
677
|
if (node.nodeName === '#comment') {
|
|
678
|
+
// Skip HTML comments
|
|
679
|
+
return;
|
|
680
|
+
}
|
|
681
|
+
if (node.nodeName === 'script') {
|
|
682
|
+
// Skip script tags
|
|
473
683
|
return;
|
|
474
684
|
}
|
|
475
|
-
// Skip style tags
|
|
476
685
|
if (node.nodeName === 'style') {
|
|
686
|
+
// Skip style tags
|
|
477
687
|
return;
|
|
478
688
|
}
|
|
479
689
|
if (node.nodeName === '#text') {
|
|
@@ -599,7 +809,7 @@ class ZTranslateService {
|
|
|
599
809
|
}
|
|
600
810
|
const results = await this.retryOperation(async () => {
|
|
601
811
|
return await this.sql.query(
|
|
602
|
-
`SELECT \`value\` FROM translations WHERE \`lang\`=? AND \`key\`=CONVERT(? USING
|
|
812
|
+
`SELECT \`value\` FROM translations WHERE \`lang\`=? AND \`key\`=CONVERT(? USING utf8mb4)`,
|
|
603
813
|
[lang, key],
|
|
604
814
|
);
|
|
605
815
|
}, 'fetch translation');
|
|
@@ -685,7 +895,8 @@ class ZTranslateService {
|
|
|
685
895
|
}
|
|
686
896
|
exports.ZTranslateService = ZTranslateService;
|
|
687
897
|
function strContainsLetters(text) {
|
|
688
|
-
|
|
898
|
+
// Updated regex to include Arabic characters (U+0600-U+06FF) and other scripts
|
|
899
|
+
const regExp = /[a-zA-Z\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF\uFB50-\uFDFF\uFE70-\uFEFF]/g;
|
|
689
900
|
return regExp.test(text);
|
|
690
901
|
}
|
|
691
902
|
function genSpaces(length) {
|