@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 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("en");
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("en");
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)) {
@@ -1,4 +1,4 @@
1
- // translate v0.4.0 Copyright (c) 2025 Potter<aa4790139@gmail.com> and contributors
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$1(options) {
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$2(options) {
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 detectUrl = "https://api.cognitive.microsofttranslator.com/detect?api-version=3.0";
315
- const res = await fetch(detectUrl, {
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 response = await res.json();
328
- if (!response || !Array.isArray(response) || response.length === 0) {
329
- throw new TranslationError(this.name, "Check language fail! No result returned");
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
- const detection = response[0];
332
- if (!detection.language) {
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
- return detection.language;
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$2(options) {
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$3(options) {
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$3(options) {
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
- Text: text,
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: "LanguageDetect",
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/15620 view details`);
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?.Lang;
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: google$1,
1922
- azure: azure$2,
1923
- amazon: amazon$2,
1926
+ google,
1927
+ azure: azure$1,
1928
+ amazon: amazon$1,
1924
1929
  baidu: baidu$2,
1925
- deepl: deepl$3,
1930
+ deepl: deepl$2,
1926
1931
  openai: openai$1,
1927
- tencent: tencent$3,
1932
+ tencent: tencent$2,
1928
1933
  };
1929
1934
 
1930
- var azure$1 = {
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$2 = {
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$2 = {
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$1 = {
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$1,
2667
+ azure: azure,
2663
2668
  google: openai,
2664
2669
  baidu: baidu$1,
2665
- deepl: deepl$2,
2666
- amazon: amazon$1,
2670
+ deepl: deepl$1,
2671
+ amazon: amazon,
2667
2672
  openai: openai,
2668
- tencent: tencent$2,
2673
+ tencent: tencent$1,
2669
2674
  };
2670
2675
 
2671
- var deepl$1 = {
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$1 = {
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$1,
2737
+ azure: azure,
2733
2738
  google: openai,
2734
2739
  baidu: baidu$1,
2735
- deepl: deepl$1,
2736
- amazon: amazon$1,
2740
+ deepl: deepl,
2741
+ amazon: amazon,
2737
2742
  openai: openai,
2738
- tencent: tencent$1,
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
- var tencent = {
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
- tencent: tencent,
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