@yxw007/translate 0.4.0 → 0.4.1
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/README.md +4 -1
- package/README_zh-CN.md +4 -1
- package/dist/browser/index.cjs +45 -212
- package/dist/browser/index.esm.js +45 -212
- package/dist/browser/index.esm.min.js +1 -2
- package/dist/browser/index.min.cjs +1 -2
- package/dist/browser/index.umd.js +45 -212
- package/dist/browser/index.umd.min.js +1 -2
- package/dist/index.d.ts +877 -68
- package/dist/node/index.cjs +45 -212
- package/dist/node/index.js +45 -212
- package/dist/node/index.min.cjs +1 -0
- package/dist/node/index.min.js +1 -0
- package/dist/package.json +4 -2
- package/package.json +4 -2
- package/dist/browser/index.cjs.map +0 -1
- package/dist/browser/index.esm.js.map +0 -1
- package/dist/browser/index.esm.min.js.map +0 -1
- package/dist/browser/index.min.cjs.map +0 -1
- package/dist/browser/index.umd.js.map +0 -1
- package/dist/browser/index.umd.min.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/node/index.cjs.map +0 -1
- package/dist/node/index.js.map +0 -1
package/README.md
CHANGED
|
@@ -92,7 +92,7 @@ English | [简体中文](./README_zh-CN.md)
|
|
|
92
92
|
```typescript
|
|
93
93
|
translator.addEngine(engines.google());
|
|
94
94
|
const res1 = await translator.checkLanguage("hello", { engine:"google" });
|
|
95
|
-
console.log(
|
|
95
|
+
console.log(res1);
|
|
96
96
|
|
|
97
97
|
```
|
|
98
98
|
Output results
|
|
@@ -374,6 +374,9 @@ export interface TencentEngineOption extends BaseEngineOption {
|
|
|
374
374
|
const base = "https://translate.yandex.net/api/v1.5/tr.json/translate";
|
|
375
375
|
return {
|
|
376
376
|
name: "yandex",
|
|
377
|
+
async checkLanguage<T extends Engines>(text: string): Promise<string> {
|
|
378
|
+
//TODO: This can be done with translate, in which case the target language configuration is reused.
|
|
379
|
+
},
|
|
377
380
|
async translate<T extends Engines>(text: string | string[], opts: EngineTranslateOptions<T>) {
|
|
378
381
|
const { from, to } = opts;
|
|
379
382
|
if (!Array.isArray(text)) {
|
package/README_zh-CN.md
CHANGED
|
@@ -95,7 +95,7 @@ Translate 是一个支持多翻译引擎的翻译工具库,它提供了一套
|
|
|
95
95
|
```typescript
|
|
96
96
|
translator.addEngine(engines.google());
|
|
97
97
|
const res1 = await translator.checkLanguage("hello", { engine:"google" });
|
|
98
|
-
console.log(
|
|
98
|
+
console.log(res1);
|
|
99
99
|
```
|
|
100
100
|
|
|
101
101
|
输出结果
|
|
@@ -376,6 +376,9 @@ export interface TencentEngineOption extends BaseEngineOption {
|
|
|
376
376
|
const base = "https://translate.yandex.net/api/v1.5/tr.json/translate";
|
|
377
377
|
return {
|
|
378
378
|
name: "xx",
|
|
379
|
+
async checkLanguage<T extends Engines>(text: string): Promise<string> {
|
|
380
|
+
//TODO: 可以用translate来实现,这样的话就复用target语言配置
|
|
381
|
+
},
|
|
379
382
|
async translate<T extends Engines>(text: string | string[], opts: EngineTranslateOptions<T>) {
|
|
380
383
|
const { from, to } = opts;
|
|
381
384
|
if (!Array.isArray(text)) {
|
package/dist/browser/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// translate v0.4.
|
|
1
|
+
// translate v0.4.1 Copyright (c) 2025 Potter<aa4790139@gmail.com> and contributors
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
4
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
@@ -210,7 +210,7 @@ function isOverMaxCharacterNum(text, max_character_num) {
|
|
|
210
210
|
return total > max_character_num;
|
|
211
211
|
}
|
|
212
212
|
|
|
213
|
-
function google
|
|
213
|
+
function google(options) {
|
|
214
214
|
const base = "https://translate.googleapis.com/translate_a/single";
|
|
215
215
|
return {
|
|
216
216
|
name: "google",
|
|
@@ -261,7 +261,7 @@ function google$1(options) {
|
|
|
261
261
|
/**
|
|
262
262
|
* Azure translate documentation: https://learn.microsoft.com/zh-cn/azure/ai-services/translator/reference/v3-0-translate
|
|
263
263
|
*/
|
|
264
|
-
function azure$
|
|
264
|
+
function azure$1(options) {
|
|
265
265
|
const { key, region } = options;
|
|
266
266
|
const name = "azure";
|
|
267
267
|
const checkOptions = () => {
|
|
@@ -311,8 +311,8 @@ function azure$2(options) {
|
|
|
311
311
|
},
|
|
312
312
|
async checkLanguage(text) {
|
|
313
313
|
checkOptions();
|
|
314
|
-
const
|
|
315
|
-
const res = await fetch(
|
|
314
|
+
const url = `${base}&to=en`;
|
|
315
|
+
const res = await fetch(url, {
|
|
316
316
|
method: "POST",
|
|
317
317
|
headers: {
|
|
318
318
|
"Content-Type": "application/json; charset=UTF-8",
|
|
@@ -324,20 +324,23 @@ function azure$2(options) {
|
|
|
324
324
|
if (!res.ok) {
|
|
325
325
|
throw await throwResponseError(this.name, res);
|
|
326
326
|
}
|
|
327
|
-
const
|
|
328
|
-
if (
|
|
329
|
-
throw new
|
|
327
|
+
const bodyRes = await res.json();
|
|
328
|
+
if (bodyRes.error) {
|
|
329
|
+
throw new CheckLanguageError(this.name, `checkLanguage fail ! code: ${bodyRes.error.code}, message: ${bodyRes.error.message} \n Go to https://learn.microsoft.com/zh-cn/azure/ai-services/translator/text-translation/reference/v3/translate view details`);
|
|
330
330
|
}
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
throw new TranslationError(this.name, "Check language fail! Language not detected");
|
|
331
|
+
if (!bodyRes || !Array.isArray(bodyRes) || bodyRes.length === 0) {
|
|
332
|
+
throw new CheckLanguageError(this.name, "Check language fail! No result returned");
|
|
334
333
|
}
|
|
335
|
-
|
|
334
|
+
const detectedLanguage = bodyRes[0]?.detectedLanguage?.language;
|
|
335
|
+
if (!detectedLanguage) {
|
|
336
|
+
throw new CheckLanguageError(this.name, "Check language fail! Language not detected");
|
|
337
|
+
}
|
|
338
|
+
return detectedLanguage;
|
|
336
339
|
},
|
|
337
340
|
};
|
|
338
341
|
}
|
|
339
342
|
|
|
340
|
-
function amazon$
|
|
343
|
+
function amazon$1(options) {
|
|
341
344
|
const { region, accessKeyId, secretAccessKey } = options;
|
|
342
345
|
const name = "amazon";
|
|
343
346
|
const checkOptions = () => {
|
|
@@ -1595,7 +1598,7 @@ function baidu$2(options) {
|
|
|
1595
1598
|
};
|
|
1596
1599
|
}
|
|
1597
1600
|
|
|
1598
|
-
function deepl$
|
|
1601
|
+
function deepl$2(options) {
|
|
1599
1602
|
const { key } = options;
|
|
1600
1603
|
const name = "deepl";
|
|
1601
1604
|
const checkOptions = () => {
|
|
@@ -1809,7 +1812,7 @@ function buildAuthorization({ secretId, secretKey, service, host, payload, httpR
|
|
|
1809
1812
|
headers["X-TC-Region"] = region;
|
|
1810
1813
|
return headers;
|
|
1811
1814
|
}
|
|
1812
|
-
function tencent$
|
|
1815
|
+
function tencent$2(options) {
|
|
1813
1816
|
const { secretId, secretKey, region = "ap-guangzhou" } = options;
|
|
1814
1817
|
const name = "tencent";
|
|
1815
1818
|
const host = "tmt.tencentcloudapi.com";
|
|
@@ -1874,7 +1877,9 @@ function tencent$3(options) {
|
|
|
1874
1877
|
async checkLanguage(text) {
|
|
1875
1878
|
checkOptions();
|
|
1876
1879
|
const payloadObj = {
|
|
1877
|
-
|
|
1880
|
+
SourceText: text,
|
|
1881
|
+
Source: "auto",
|
|
1882
|
+
Target: "en",
|
|
1878
1883
|
ProjectId: 0,
|
|
1879
1884
|
};
|
|
1880
1885
|
const payload = JSON.stringify(payloadObj);
|
|
@@ -1885,7 +1890,7 @@ function tencent$3(options) {
|
|
|
1885
1890
|
host,
|
|
1886
1891
|
payload,
|
|
1887
1892
|
httpRequestMethod: "POST",
|
|
1888
|
-
action
|
|
1893
|
+
action,
|
|
1889
1894
|
apiVersion,
|
|
1890
1895
|
region,
|
|
1891
1896
|
});
|
|
@@ -1900,9 +1905,9 @@ function tencent$3(options) {
|
|
|
1900
1905
|
}
|
|
1901
1906
|
const data = await res.json();
|
|
1902
1907
|
if (data.Response?.Error) {
|
|
1903
|
-
throw new CheckLanguageError(name, `Tencent language detect fail: ${data.Response.Error.Code}, ${data.Response.Error.Message} \n Go to https://cloud.tencent.com/document/product/551/
|
|
1908
|
+
throw new CheckLanguageError(name, `Tencent language detect fail: ${data.Response.Error.Code}, ${data.Response.Error.Message} \n Go to https://cloud.tencent.com/document/product/551/15619 view details`);
|
|
1904
1909
|
}
|
|
1905
|
-
const detectedLanguage = data.Response?.
|
|
1910
|
+
const detectedLanguage = data.Response?.Source;
|
|
1906
1911
|
if (!detectedLanguage) {
|
|
1907
1912
|
throw new CheckLanguageError(name, "Language detect fail! No result returned");
|
|
1908
1913
|
}
|
|
@@ -1918,16 +1923,16 @@ function tencent$3(options) {
|
|
|
1918
1923
|
}
|
|
1919
1924
|
|
|
1920
1925
|
const engines = {
|
|
1921
|
-
google
|
|
1922
|
-
azure: azure$
|
|
1923
|
-
amazon: amazon$
|
|
1926
|
+
google,
|
|
1927
|
+
azure: azure$1,
|
|
1928
|
+
amazon: amazon$1,
|
|
1924
1929
|
baidu: baidu$2,
|
|
1925
|
-
deepl: deepl$
|
|
1930
|
+
deepl: deepl$2,
|
|
1926
1931
|
openai: openai$1,
|
|
1927
|
-
tencent: tencent$
|
|
1932
|
+
tencent: tencent$2,
|
|
1928
1933
|
};
|
|
1929
1934
|
|
|
1930
|
-
var azure
|
|
1935
|
+
var azure = {
|
|
1931
1936
|
Afrikaans: "af",
|
|
1932
1937
|
Albanian: "sq",
|
|
1933
1938
|
Amharic: "am",
|
|
@@ -2522,7 +2527,7 @@ var baidu$1 = {
|
|
|
2522
2527
|
Zulu: "zul",
|
|
2523
2528
|
};
|
|
2524
2529
|
|
|
2525
|
-
var deepl$
|
|
2530
|
+
var deepl$1 = {
|
|
2526
2531
|
English: "en",
|
|
2527
2532
|
Bulgarian: "bg",
|
|
2528
2533
|
Chinese: "zh",
|
|
@@ -2558,7 +2563,7 @@ var deepl$2 = {
|
|
|
2558
2563
|
Ukrainian: "uk",
|
|
2559
2564
|
};
|
|
2560
2565
|
|
|
2561
|
-
var tencent$
|
|
2566
|
+
var tencent$1 = {
|
|
2562
2567
|
Auto: "auto",
|
|
2563
2568
|
Chinese: "zh",
|
|
2564
2569
|
TraditionalChinese: "zh-TW",
|
|
@@ -2580,7 +2585,7 @@ var tencent$2 = {
|
|
|
2580
2585
|
Hindi: "hi",
|
|
2581
2586
|
};
|
|
2582
2587
|
|
|
2583
|
-
var amazon
|
|
2588
|
+
var amazon = {
|
|
2584
2589
|
Afrikaans: "af",
|
|
2585
2590
|
Albanian: "sq",
|
|
2586
2591
|
Amharic: "am",
|
|
@@ -2659,16 +2664,16 @@ var amazon$1 = {
|
|
|
2659
2664
|
};
|
|
2660
2665
|
|
|
2661
2666
|
const originLanguages = {
|
|
2662
|
-
azure: azure
|
|
2667
|
+
azure: azure,
|
|
2663
2668
|
google: openai,
|
|
2664
2669
|
baidu: baidu$1,
|
|
2665
|
-
deepl: deepl$
|
|
2666
|
-
amazon: amazon
|
|
2670
|
+
deepl: deepl$1,
|
|
2671
|
+
amazon: amazon,
|
|
2667
2672
|
openai: openai,
|
|
2668
|
-
tencent: tencent$
|
|
2673
|
+
tencent: tencent$1,
|
|
2669
2674
|
};
|
|
2670
2675
|
|
|
2671
|
-
var deepl
|
|
2676
|
+
var deepl = {
|
|
2672
2677
|
"American English": "en-US",
|
|
2673
2678
|
"Brazilian Portuguese": "pt-BR",
|
|
2674
2679
|
"British English": "en-GB",
|
|
@@ -2707,7 +2712,7 @@ var deepl$1 = {
|
|
|
2707
2712
|
Ukrainian: "uk",
|
|
2708
2713
|
};
|
|
2709
2714
|
|
|
2710
|
-
var tencent
|
|
2715
|
+
var tencent = {
|
|
2711
2716
|
"Simplified Chinese": "zh",
|
|
2712
2717
|
"Traditional Chinese": "zh-TW",
|
|
2713
2718
|
English: "en",
|
|
@@ -2729,13 +2734,13 @@ var tencent$1 = {
|
|
|
2729
2734
|
};
|
|
2730
2735
|
|
|
2731
2736
|
const targetLanguages = {
|
|
2732
|
-
azure: azure
|
|
2737
|
+
azure: azure,
|
|
2733
2738
|
google: openai,
|
|
2734
2739
|
baidu: baidu$1,
|
|
2735
|
-
deepl: deepl
|
|
2736
|
-
amazon: amazon
|
|
2740
|
+
deepl: deepl,
|
|
2741
|
+
amazon: amazon,
|
|
2737
2742
|
openai: openai,
|
|
2738
|
-
tencent: tencent
|
|
2743
|
+
tencent: tencent,
|
|
2739
2744
|
};
|
|
2740
2745
|
|
|
2741
2746
|
var baidu = {
|
|
@@ -2747,180 +2752,9 @@ var baidu = {
|
|
|
2747
2752
|
Russian: "ru",
|
|
2748
2753
|
};
|
|
2749
2754
|
|
|
2750
|
-
|
|
2751
|
-
Chinese: "zh",
|
|
2752
|
-
English: "en",
|
|
2753
|
-
Japanese: "jp",
|
|
2754
|
-
Korean: "kr",
|
|
2755
|
-
German: "de",
|
|
2756
|
-
French: "fr",
|
|
2757
|
-
Spanish: "es",
|
|
2758
|
-
Italian: "it",
|
|
2759
|
-
Turkish: "tr",
|
|
2760
|
-
Russian: "ru",
|
|
2761
|
-
Portuguese: "pt",
|
|
2762
|
-
Vietnamese: "vi",
|
|
2763
|
-
Indonesian: "id",
|
|
2764
|
-
Malay: "ms",
|
|
2765
|
-
Thai: "th",
|
|
2766
|
-
};
|
|
2767
|
-
|
|
2768
|
-
var azure = {
|
|
2769
|
-
Arabic: "ar",
|
|
2770
|
-
Bengali: "bn",
|
|
2771
|
-
Bulgarian: "bg",
|
|
2772
|
-
Catalan: "ca",
|
|
2773
|
-
Chinese: "zh-Hans",
|
|
2774
|
-
"Chinese (Traditional)": "zh-Hant",
|
|
2775
|
-
Croatian: "hr",
|
|
2776
|
-
Czech: "cs",
|
|
2777
|
-
Danish: "da",
|
|
2778
|
-
Dutch: "nl",
|
|
2779
|
-
English: "en",
|
|
2780
|
-
Finnish: "fi",
|
|
2781
|
-
French: "fr",
|
|
2782
|
-
German: "de",
|
|
2783
|
-
Greek: "el",
|
|
2784
|
-
Hebrew: "he",
|
|
2785
|
-
Hindi: "hi",
|
|
2786
|
-
Hungarian: "hu",
|
|
2787
|
-
Indonesian: "id",
|
|
2788
|
-
Italian: "it",
|
|
2789
|
-
Japanese: "ja",
|
|
2790
|
-
Korean: "ko",
|
|
2791
|
-
Malay: "ms",
|
|
2792
|
-
"Norwegian Bokmål": "nb",
|
|
2793
|
-
Persian: "fa",
|
|
2794
|
-
Polish: "pl",
|
|
2795
|
-
"Portugal (Brazil)": "pt",
|
|
2796
|
-
Romanian: "ro",
|
|
2797
|
-
Russian: "ru",
|
|
2798
|
-
Slovak: "sk",
|
|
2799
|
-
Spanish: "es",
|
|
2800
|
-
Swedish: "sv",
|
|
2801
|
-
Thai: "th",
|
|
2802
|
-
Turkish: "tr",
|
|
2803
|
-
Ukrainian: "uk",
|
|
2804
|
-
Urdu: "ur",
|
|
2805
|
-
Vietnamese: "vi",
|
|
2806
|
-
};
|
|
2807
|
-
|
|
2808
|
-
var amazon = {
|
|
2809
|
-
Arabic: "ar",
|
|
2810
|
-
Bengali: "bn",
|
|
2811
|
-
Bulgarian: "bg",
|
|
2812
|
-
Catalan: "ca",
|
|
2813
|
-
Chinese: "zh-Hans",
|
|
2814
|
-
"Chinese (Traditional)": "zh-Hant",
|
|
2815
|
-
Croatian: "hr",
|
|
2816
|
-
Czech: "cs",
|
|
2817
|
-
Danish: "da",
|
|
2818
|
-
Dutch: "nl",
|
|
2819
|
-
English: "en",
|
|
2820
|
-
Finnish: "fi",
|
|
2821
|
-
French: "fr",
|
|
2822
|
-
German: "de",
|
|
2823
|
-
Greek: "el",
|
|
2824
|
-
Hebrew: "he",
|
|
2825
|
-
Hindi: "hi",
|
|
2826
|
-
Hungarian: "hu",
|
|
2827
|
-
Indonesian: "id",
|
|
2828
|
-
Italian: "it",
|
|
2829
|
-
Japanese: "ja",
|
|
2830
|
-
Korean: "ko",
|
|
2831
|
-
Malay: "ms",
|
|
2832
|
-
Persian: "fa",
|
|
2833
|
-
Polish: "pl",
|
|
2834
|
-
"Portugal (Brazil)": "pt",
|
|
2835
|
-
Romanian: "ro",
|
|
2836
|
-
Russian: "ru",
|
|
2837
|
-
Slovak: "sk",
|
|
2838
|
-
Spanish: "es",
|
|
2839
|
-
Swedish: "sv",
|
|
2840
|
-
Thai: "th",
|
|
2841
|
-
Turkish: "tr",
|
|
2842
|
-
Ukrainian: "uk",
|
|
2843
|
-
Urdu: "ur",
|
|
2844
|
-
Vietnamese: "vi",
|
|
2845
|
-
};
|
|
2846
|
-
|
|
2847
|
-
var deepl = {
|
|
2848
|
-
"American English": "en",
|
|
2849
|
-
Bulgarian: "bg",
|
|
2850
|
-
Chinese: "zh",
|
|
2851
|
-
Czech: "cs",
|
|
2852
|
-
Danish: "da",
|
|
2853
|
-
Dutch: "nl",
|
|
2854
|
-
Estonian: "et",
|
|
2855
|
-
Finnish: "fi",
|
|
2856
|
-
French: "fr",
|
|
2857
|
-
German: "de",
|
|
2858
|
-
Greek: "el",
|
|
2859
|
-
Hungarian: "hu",
|
|
2860
|
-
Icelandic: "is",
|
|
2861
|
-
Indonesian: "id",
|
|
2862
|
-
Irish: "ga",
|
|
2863
|
-
Italian: "it",
|
|
2864
|
-
Japanese: "ja",
|
|
2865
|
-
Korean: "ko",
|
|
2866
|
-
Latvian: "lv",
|
|
2867
|
-
Lithuanian: "lt",
|
|
2868
|
-
Maltese: "mt",
|
|
2869
|
-
Norwegian: "nb",
|
|
2870
|
-
Polish: "pl",
|
|
2871
|
-
Portuguese: "pt",
|
|
2872
|
-
Romanian: "ro",
|
|
2873
|
-
Russian: "ru",
|
|
2874
|
-
Slovak: "sk",
|
|
2875
|
-
Slovenian: "sl",
|
|
2876
|
-
Spanish: "es",
|
|
2877
|
-
Swedish: "sv",
|
|
2878
|
-
Turkish: "tr",
|
|
2879
|
-
Ukrainian: "uk",
|
|
2880
|
-
};
|
|
2881
|
-
|
|
2882
|
-
var google = {
|
|
2883
|
-
English: "en",
|
|
2884
|
-
Bulgarian: "bg",
|
|
2885
|
-
Chinese: "zh-cn",
|
|
2886
|
-
Czech: "cs",
|
|
2887
|
-
Danish: "da",
|
|
2888
|
-
Dutch: "nl",
|
|
2889
|
-
Estonian: "et",
|
|
2890
|
-
Finnish: "fi",
|
|
2891
|
-
French: "fr",
|
|
2892
|
-
German: "de",
|
|
2893
|
-
Greek: "el",
|
|
2894
|
-
Hungarian: "hu",
|
|
2895
|
-
Icelandic: "is",
|
|
2896
|
-
Indonesian: "id",
|
|
2897
|
-
Irish: "ga",
|
|
2898
|
-
Italian: "it",
|
|
2899
|
-
Japanese: "ja",
|
|
2900
|
-
Korean: "ko",
|
|
2901
|
-
Latvian: "lv",
|
|
2902
|
-
Lithuanian: "lt",
|
|
2903
|
-
Maltese: "mt",
|
|
2904
|
-
Polish: "pl",
|
|
2905
|
-
Portuguese: "pt",
|
|
2906
|
-
Romanian: "ro",
|
|
2907
|
-
Russian: "ru",
|
|
2908
|
-
Slovak: "sk",
|
|
2909
|
-
Slovenian: "sl",
|
|
2910
|
-
Spanish: "es",
|
|
2911
|
-
Swedish: "sv",
|
|
2912
|
-
Turkish: "tr",
|
|
2913
|
-
Ukrainian: "uk",
|
|
2914
|
-
};
|
|
2915
|
-
|
|
2916
|
-
const checkLanguages = {
|
|
2755
|
+
const checkLanguages = Object.assign(Object.assign({}, originLanguages), {
|
|
2917
2756
|
baidu: baidu,
|
|
2918
|
-
|
|
2919
|
-
azure: azure,
|
|
2920
|
-
amazon: amazon,
|
|
2921
|
-
deepl: deepl,
|
|
2922
|
-
google: google,
|
|
2923
|
-
};
|
|
2757
|
+
});
|
|
2924
2758
|
|
|
2925
2759
|
function normalFromLanguage(from, engine) {
|
|
2926
2760
|
if (from === "auto") {
|
|
@@ -3148,4 +2982,3 @@ exports.normalToLanguage = normalToLanguage;
|
|
|
3148
2982
|
exports.originLanguages = originLanguages;
|
|
3149
2983
|
exports.targetLanguages = targetLanguages;
|
|
3150
2984
|
exports.translator = translator;
|
|
3151
|
-
//# sourceMappingURL=index.cjs.map
|