Spaces:
Running
Running
Upload 15 files
Browse files- node_modules/.package-lock.json +13 -0
- node_modules/open-google-translator/.github/workflows/npm-publish.yml +34 -0
- node_modules/open-google-translator/LICENSE +21 -0
- node_modules/open-google-translator/dist/bundle.js +259 -0
- node_modules/open-google-translator/example/client.ts +11 -0
- node_modules/open-google-translator/example/test_translator.html +103 -0
- node_modules/open-google-translator/package.json +35 -0
- node_modules/open-google-translator/readme.md +105 -0
- node_modules/open-google-translator/src/api/translate_api.js +77 -0
- node_modules/open-google-translator/src/index.js +23 -0
- node_modules/open-google-translator/src/utils/languages.js +108 -0
- node_modules/open-google-translator/src/utils/token_gen.js +42 -0
- node_modules/open-google-translator/types.d.ts +126 -0
- package-lock.json +21 -0
- package.json +15 -0
node_modules/.package-lock.json
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"name": "translators",
|
| 3 |
+
"version": "1.0.0",
|
| 4 |
+
"lockfileVersion": 3,
|
| 5 |
+
"requires": true,
|
| 6 |
+
"packages": {
|
| 7 |
+
"node_modules/open-google-translator": {
|
| 8 |
+
"version": "1.0.5",
|
| 9 |
+
"resolved": "https://registry.npmjs.org/open-google-translator/-/open-google-translator-1.0.5.tgz",
|
| 10 |
+
"integrity": "sha512-4J1KBqxCXmIG5IyW2OwFMdR0dgya6ph0Cx7DpRaKytnq8Tsgw/lK1JdlhtpJjGccNmGvmU05pBMzdUHDAZgqbw=="
|
| 11 |
+
}
|
| 12 |
+
}
|
| 13 |
+
}
|
node_modules/open-google-translator/.github/workflows/npm-publish.yml
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# This workflow will run tests using node and then publish a package to GitHub Packages when a release is created
|
| 2 |
+
# For more information see: https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages
|
| 3 |
+
|
| 4 |
+
name: Node.js Package
|
| 5 |
+
|
| 6 |
+
on:
|
| 7 |
+
push:
|
| 8 |
+
branches:
|
| 9 |
+
- main
|
| 10 |
+
|
| 11 |
+
jobs:
|
| 12 |
+
build:
|
| 13 |
+
runs-on: ubuntu-latest
|
| 14 |
+
steps:
|
| 15 |
+
- uses: actions/checkout@v3
|
| 16 |
+
- uses: actions/setup-node@v3
|
| 17 |
+
with:
|
| 18 |
+
node-version: 16
|
| 19 |
+
- run: npm install -g browserify
|
| 20 |
+
- run: npm run build
|
| 21 |
+
|
| 22 |
+
publish-npm:
|
| 23 |
+
needs: build
|
| 24 |
+
runs-on: ubuntu-latest
|
| 25 |
+
steps:
|
| 26 |
+
- uses: actions/checkout@v3
|
| 27 |
+
- uses: actions/setup-node@v3
|
| 28 |
+
with:
|
| 29 |
+
node-version: 16
|
| 30 |
+
registry-url: https://registry.npmjs.org/
|
| 31 |
+
- run: echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > ~/.npmrc
|
| 32 |
+
- run: npm publish --access public
|
| 33 |
+
env:
|
| 34 |
+
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
|
node_modules/open-google-translator/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
MIT License
|
| 2 |
+
|
| 3 |
+
Copyright (c) 2023 Vidya Sagar
|
| 4 |
+
|
| 5 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
| 6 |
+
of this software and associated documentation files (the "Software"), to deal
|
| 7 |
+
in the Software without restriction, including without limitation the rights
|
| 8 |
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
| 9 |
+
copies of the Software, and to permit persons to whom the Software is
|
| 10 |
+
furnished to do so, subject to the following conditions:
|
| 11 |
+
|
| 12 |
+
The above copyright notice and this permission notice shall be included in all
|
| 13 |
+
copies or substantial portions of the Software.
|
| 14 |
+
|
| 15 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
| 16 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
| 17 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
| 18 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
| 19 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
| 20 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
| 21 |
+
SOFTWARE.
|
node_modules/open-google-translator/dist/bundle.js
ADDED
|
@@ -0,0 +1,259 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
|
| 2 |
+
const generateFinalToken = require("../utils/token_gen");
|
| 3 |
+
|
| 4 |
+
function constructTranslationUrl({
|
| 5 |
+
translateFrom,
|
| 6 |
+
translateTo,
|
| 7 |
+
generatedToken,
|
| 8 |
+
}) {
|
| 9 |
+
const baseUrl = "https://translate.googleapis.com/translate_a/t";
|
| 10 |
+
const queryParams = new URLSearchParams({
|
| 11 |
+
client: "te",
|
| 12 |
+
v: "1.0",
|
| 13 |
+
sl: translateFrom,
|
| 14 |
+
tl: translateTo,
|
| 15 |
+
tk: generatedToken,
|
| 16 |
+
});
|
| 17 |
+
|
| 18 |
+
return `${baseUrl}?${queryParams.toString()}`;
|
| 19 |
+
}
|
| 20 |
+
|
| 21 |
+
function getHeaders() {
|
| 22 |
+
const headers = new Headers();
|
| 23 |
+
headers.append("accept", "*/*");
|
| 24 |
+
headers.append("Content-Type", "application/x-www-form-urlencoded");
|
| 25 |
+
return headers;
|
| 26 |
+
}
|
| 27 |
+
|
| 28 |
+
function getEncodedBody({ phrases }) {
|
| 29 |
+
const urlencodedBody = new URLSearchParams();
|
| 30 |
+
phrases.forEach((phrase) => urlencodedBody.append("q", phrase));
|
| 31 |
+
return urlencodedBody;
|
| 32 |
+
}
|
| 33 |
+
async function translateText({
|
| 34 |
+
listOfWordsToTranslate,
|
| 35 |
+
translateFrom = "en",
|
| 36 |
+
translateTo = "en",
|
| 37 |
+
}) {
|
| 38 |
+
var _result = listOfWordsToTranslate.map((originalPhrase, index) => ({
|
| 39 |
+
original: originalPhrase,
|
| 40 |
+
translation: originalPhrase,
|
| 41 |
+
}));
|
| 42 |
+
if (translateFrom === translateTo) {
|
| 43 |
+
return _result;
|
| 44 |
+
}
|
| 45 |
+
var generatedToken = generateFinalToken(listOfWordsToTranslate);
|
| 46 |
+
|
| 47 |
+
const url = constructTranslationUrl({
|
| 48 |
+
generatedToken: generatedToken,
|
| 49 |
+
translateFrom: translateFrom,
|
| 50 |
+
translateTo: translateTo,
|
| 51 |
+
});
|
| 52 |
+
|
| 53 |
+
const headers = getHeaders();
|
| 54 |
+
const urlencodedBody = getEncodedBody({
|
| 55 |
+
phrases: listOfWordsToTranslate,
|
| 56 |
+
});
|
| 57 |
+
// Create requestOptions
|
| 58 |
+
const requestOptions = {
|
| 59 |
+
method: "POST",
|
| 60 |
+
headers: headers,
|
| 61 |
+
body: urlencodedBody,
|
| 62 |
+
redirect: "follow",
|
| 63 |
+
};
|
| 64 |
+
|
| 65 |
+
try {
|
| 66 |
+
const response = await fetch(url, requestOptions);
|
| 67 |
+
var result = await response.json();
|
| 68 |
+
_result = listOfWordsToTranslate.map((originalPhrase, index) => ({
|
| 69 |
+
original: originalPhrase,
|
| 70 |
+
translation: result[index].length == 0 ? originalPhrase : result[index],
|
| 71 |
+
}));
|
| 72 |
+
} catch (error) {
|
| 73 |
+
console.error("Error:", error);
|
| 74 |
+
}
|
| 75 |
+
return _result;
|
| 76 |
+
}
|
| 77 |
+
|
| 78 |
+
module.exports = translateText;
|
| 79 |
+
|
| 80 |
+
},{"../utils/token_gen":4}],2:[function(require,module,exports){
|
| 81 |
+
const translateText = require("./api/translate_api");
|
| 82 |
+
const SUPPORTED_LANGUAGES = require("./utils/languages");
|
| 83 |
+
|
| 84 |
+
async function TranslateLanguageData({
|
| 85 |
+
listOfWordsToTranslate,
|
| 86 |
+
fromLanguage,
|
| 87 |
+
toLanguage,
|
| 88 |
+
}) {
|
| 89 |
+
var translatedData = await translateText({
|
| 90 |
+
listOfWordsToTranslate: listOfWordsToTranslate,
|
| 91 |
+
translateFrom: fromLanguage,
|
| 92 |
+
translateTo: toLanguage,
|
| 93 |
+
});
|
| 94 |
+
return translatedData;
|
| 95 |
+
}
|
| 96 |
+
function supportedLanguages() {
|
| 97 |
+
return SUPPORTED_LANGUAGES;
|
| 98 |
+
}
|
| 99 |
+
if (typeof window !== "undefined") {
|
| 100 |
+
window.openGoogleTranslator = { TranslateLanguageData, supportedLanguages };
|
| 101 |
+
} else {
|
| 102 |
+
module.exports = { TranslateLanguageData, supportedLanguages };
|
| 103 |
+
}
|
| 104 |
+
|
| 105 |
+
},{"./api/translate_api":1,"./utils/languages":3}],3:[function(require,module,exports){
|
| 106 |
+
const SUPPORTED_LANGUAGES = {
|
| 107 |
+
af: "Afrikaans",
|
| 108 |
+
sq: "Albanian",
|
| 109 |
+
am: "Amharic",
|
| 110 |
+
ar: "Arabic",
|
| 111 |
+
hy: "Armenian",
|
| 112 |
+
az: "Azerbaijani",
|
| 113 |
+
eu: "Basque",
|
| 114 |
+
be: "Belarusian",
|
| 115 |
+
bn: "Bengali",
|
| 116 |
+
bs: "Bosnian",
|
| 117 |
+
bg: "Bulgarian",
|
| 118 |
+
ca: "Catalan",
|
| 119 |
+
ceb: "Cebuano",
|
| 120 |
+
ny: "Chichewa",
|
| 121 |
+
"zh-cn": "Chinese Simplified",
|
| 122 |
+
"zh-tw": "Chinese Traditional",
|
| 123 |
+
co: "Corsican",
|
| 124 |
+
hr: "Croatian",
|
| 125 |
+
cs: "Czech",
|
| 126 |
+
da: "Danish",
|
| 127 |
+
nl: "Dutch",
|
| 128 |
+
en: "English",
|
| 129 |
+
eo: "Esperanto",
|
| 130 |
+
et: "Estonian",
|
| 131 |
+
tl: "Filipino",
|
| 132 |
+
fi: "Finnish",
|
| 133 |
+
fr: "French",
|
| 134 |
+
fy: "Frisian",
|
| 135 |
+
gl: "Galician",
|
| 136 |
+
ka: "Georgian",
|
| 137 |
+
de: "German",
|
| 138 |
+
el: "Greek",
|
| 139 |
+
gu: "Gujarati",
|
| 140 |
+
ht: "Haitian Creole",
|
| 141 |
+
ha: "Hausa",
|
| 142 |
+
haw: "Hawaiian",
|
| 143 |
+
iw: "Hebrew",
|
| 144 |
+
hi: "Hindi",
|
| 145 |
+
hmn: "Hmong",
|
| 146 |
+
hu: "Hungarian",
|
| 147 |
+
is: "Icelandic",
|
| 148 |
+
ig: "Igbo",
|
| 149 |
+
id: "Indonesian",
|
| 150 |
+
ga: "Irish",
|
| 151 |
+
it: "Italian",
|
| 152 |
+
ja: "Japanese",
|
| 153 |
+
jw: "Javanese",
|
| 154 |
+
kn: "Kannada",
|
| 155 |
+
kk: "Kazakh",
|
| 156 |
+
km: "Khmer",
|
| 157 |
+
ko: "Korean",
|
| 158 |
+
ku: "Kurdish (Kurmanji)",
|
| 159 |
+
ky: "Kyrgyz",
|
| 160 |
+
lo: "Lao",
|
| 161 |
+
la: "Latin",
|
| 162 |
+
lv: "Latvian",
|
| 163 |
+
lt: "Lithuanian",
|
| 164 |
+
lb: "Luxembourgish",
|
| 165 |
+
mk: "Macedonian",
|
| 166 |
+
mg: "Malagasy",
|
| 167 |
+
ms: "Malay",
|
| 168 |
+
ml: "Malayalam",
|
| 169 |
+
mt: "Maltese",
|
| 170 |
+
mi: "Maori",
|
| 171 |
+
mr: "Marathi",
|
| 172 |
+
mn: "Mongolian",
|
| 173 |
+
my: "Myanmar (Burmese)",
|
| 174 |
+
ne: "Nepali",
|
| 175 |
+
no: "Norwegian",
|
| 176 |
+
ps: "Pashto",
|
| 177 |
+
fa: "Persian",
|
| 178 |
+
pl: "Polish",
|
| 179 |
+
pt: "Portuguese",
|
| 180 |
+
pa: "Punjabi",
|
| 181 |
+
ro: "Romanian",
|
| 182 |
+
ru: "Russian",
|
| 183 |
+
sm: "Samoan",
|
| 184 |
+
gd: "Scots Gaelic",
|
| 185 |
+
sr: "Serbian",
|
| 186 |
+
st: "Sesotho",
|
| 187 |
+
sn: "Shona",
|
| 188 |
+
sd: "Sindhi",
|
| 189 |
+
si: "Sinhala",
|
| 190 |
+
sk: "Slovak",
|
| 191 |
+
sl: "Slovenian",
|
| 192 |
+
so: "Somali",
|
| 193 |
+
es: "Spanish",
|
| 194 |
+
su: "Sundanese",
|
| 195 |
+
sw: "Swahili",
|
| 196 |
+
sv: "Swedish",
|
| 197 |
+
tg: "Tajik",
|
| 198 |
+
ta: "Tamil",
|
| 199 |
+
te: "Telugu",
|
| 200 |
+
th: "Thai",
|
| 201 |
+
tr: "Turkish",
|
| 202 |
+
uk: "Ukrainian",
|
| 203 |
+
ur: "Urdu",
|
| 204 |
+
uz: "Uzbek",
|
| 205 |
+
vi: "Vietnamese",
|
| 206 |
+
cy: "Welsh",
|
| 207 |
+
xh: "Xhosa",
|
| 208 |
+
yi: "Yiddish",
|
| 209 |
+
yo: "Yoruba",
|
| 210 |
+
zu: "Zulu",
|
| 211 |
+
};
|
| 212 |
+
|
| 213 |
+
module.exports = SUPPORTED_LANGUAGES;
|
| 214 |
+
|
| 215 |
+
},{}],4:[function(require,module,exports){
|
| 216 |
+
function oo(a) {
|
| 217 |
+
for (var b = [], c = 0, d = 0; d < a.length; d++) {
|
| 218 |
+
var e = a.charCodeAt(d);
|
| 219 |
+
128 > e
|
| 220 |
+
? (b[c++] = e)
|
| 221 |
+
: (2048 > e
|
| 222 |
+
? (b[c++] = (e >> 6) | 192)
|
| 223 |
+
: (55296 == (e & 64512) &&
|
| 224 |
+
d + 1 < a.length &&
|
| 225 |
+
56320 == (a.charCodeAt(d + 1) & 64512)
|
| 226 |
+
? ((e = 65536 + ((e & 1023) << 10) + (a.charCodeAt(++d) & 1023)),
|
| 227 |
+
(b[c++] = (e >> 18) | 240),
|
| 228 |
+
(b[c++] = ((e >> 12) & 63) | 128))
|
| 229 |
+
: (b[c++] = (e >> 12) | 224),
|
| 230 |
+
(b[c++] = ((e >> 6) & 63) | 128)),
|
| 231 |
+
(b[c++] = (e & 63) | 128));
|
| 232 |
+
}
|
| 233 |
+
return b;
|
| 234 |
+
}
|
| 235 |
+
function jq(a, b) {
|
| 236 |
+
for (var c = 0; c < b.length - 2; c += 3) {
|
| 237 |
+
var d = b.charAt(c + 2);
|
| 238 |
+
d = "a" <= d ? d.charCodeAt(0) - 87 : Number(d);
|
| 239 |
+
d = "+" == b.charAt(c + 1) ? a >>> d : a << d;
|
| 240 |
+
a = "+" == b.charAt(c) ? (a + d) & 4294967295 : a ^ d;
|
| 241 |
+
}
|
| 242 |
+
return a;
|
| 243 |
+
}
|
| 244 |
+
function generateFinalToken(sentenceToTranslate) {
|
| 245 |
+
var a = sentenceToTranslate.join("");
|
| 246 |
+
var b = ["471414", "523112976"],
|
| 247 |
+
c = Number(b[0]) || 0;
|
| 248 |
+
a = oo(a);
|
| 249 |
+
for (var d = c, e = 0; e < a.length; e++) (d += a[e]), (d = jq(d, "+-a^+6"));
|
| 250 |
+
d = jq(d, "+-3^+b+-f");
|
| 251 |
+
d ^= Number(b[1]) || 0;
|
| 252 |
+
0 > d && (d = (d & 2147483647) + 2147483648);
|
| 253 |
+
b = d % 1e6;
|
| 254 |
+
return b.toString() + "." + (b ^ c);
|
| 255 |
+
}
|
| 256 |
+
|
| 257 |
+
module.exports = generateFinalToken;
|
| 258 |
+
|
| 259 |
+
},{}]},{},[2]);
|
node_modules/open-google-translator/example/client.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
const { supportedLanguages, TranslateLanguageData } = require("../");
|
| 2 |
+
|
| 3 |
+
console.log(Object.keys(supportedLanguages()).length);
|
| 4 |
+
|
| 5 |
+
TranslateLanguageData({
|
| 6 |
+
listOfWordsToTranslate: ["hello here i am", "HI hello"],
|
| 7 |
+
fromLanguage: "en",
|
| 8 |
+
toLanguage: "pa",
|
| 9 |
+
}).then((data) => {
|
| 10 |
+
console.log(data);
|
| 11 |
+
});
|
node_modules/open-google-translator/example/test_translator.html
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!DOCTYPE html>
|
| 2 |
+
<html lang="en">
|
| 3 |
+
|
| 4 |
+
<head>
|
| 5 |
+
<meta charset="UTF-8" />
|
| 6 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
| 7 |
+
<title>Google Translator Test</title>
|
| 8 |
+
</head>
|
| 9 |
+
|
| 10 |
+
<body>
|
| 11 |
+
<style>
|
| 12 |
+
.textAreas {
|
| 13 |
+
display: flex;
|
| 14 |
+
}
|
| 15 |
+
|
| 16 |
+
textarea {
|
| 17 |
+
padding: 10px;
|
| 18 |
+
margin-right: 10px;
|
| 19 |
+
}
|
| 20 |
+
|
| 21 |
+
.dropdown {
|
| 22 |
+
padding: 10px;
|
| 23 |
+
font-size: 16px;
|
| 24 |
+
border: 1px solid #ccc;
|
| 25 |
+
border-radius: 4px;
|
| 26 |
+
box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
|
| 27 |
+
appearance: none;
|
| 28 |
+
/* Remove default arrow */
|
| 29 |
+
-moz-appearance: none;
|
| 30 |
+
/* Firefox */
|
| 31 |
+
-webkit-appearance: none;
|
| 32 |
+
}
|
| 33 |
+
|
| 34 |
+
.dropdown:focus {
|
| 35 |
+
border-color: #007bff;
|
| 36 |
+
outline: none;
|
| 37 |
+
box-shadow: 0 0 5px rgba(0, 123, 255, 0.5);
|
| 38 |
+
}
|
| 39 |
+
|
| 40 |
+
.dropdown option {
|
| 41 |
+
padding: 10px;
|
| 42 |
+
}
|
| 43 |
+
</style>
|
| 44 |
+
<h1 id="word">Google Translator Test</h1>
|
| 45 |
+
<script src="https://cdn.statically.io/gh/vidya-hub/open-google-translator/main/dist/bundle.js"></script>
|
| 46 |
+
<div class="dropdown-container">
|
| 47 |
+
<select id="languageDropdown" class="dropdown">
|
| 48 |
+
<option value="">-- Select Language --</option>
|
| 49 |
+
</select>
|
| 50 |
+
</div>
|
| 51 |
+
|
| 52 |
+
<br />
|
| 53 |
+
<br />
|
| 54 |
+
<div class="textAreas">
|
| 55 |
+
<textarea id="textToTranslate" placeholder="Enter text to translate" onchange="" cols="40" rows="5"></textarea>
|
| 56 |
+
<textarea id="textToDisplay" placeholder="Translated Text" onchange="" cols="40" rows="5"></textarea>
|
| 57 |
+
</div>
|
| 58 |
+
<script>
|
| 59 |
+
const languages = openGoogleTranslator.supportedLanguages();
|
| 60 |
+
var dropdown = document.getElementById("languageDropdown");
|
| 61 |
+
for (const code in languages) {
|
| 62 |
+
if (languages.hasOwnProperty(code)) {
|
| 63 |
+
var option = document.createElement("option");
|
| 64 |
+
option.value = code;
|
| 65 |
+
option.text = languages[code];
|
| 66 |
+
dropdown.appendChild(option);
|
| 67 |
+
}
|
| 68 |
+
}
|
| 69 |
+
async function testTranslation() {
|
| 70 |
+
var textToTranslate = document.getElementById("textToTranslate");
|
| 71 |
+
var textToDisplay = document.getElementById("textToDisplay");
|
| 72 |
+
var dropdown = document.getElementById("languageDropdown");
|
| 73 |
+
|
| 74 |
+
var selectedLanguageCode = dropdown.value;
|
| 75 |
+
var enteredText = textToTranslate.value;
|
| 76 |
+
var sentenceToTranslate = [enteredText];
|
| 77 |
+
|
| 78 |
+
var translatedData = await openGoogleTranslator.TranslateLanguageData({
|
| 79 |
+
fromLanguage: "en",
|
| 80 |
+
toLanguage:
|
| 81 |
+
selectedLanguageCode.length == 0 ? "en" : selectedLanguageCode,
|
| 82 |
+
listOfWordsToTranslate: sentenceToTranslate,
|
| 83 |
+
});
|
| 84 |
+
textToDisplay.value = translatedData[0]["translation"];
|
| 85 |
+
console.log(translatedData[0]["translation"]);
|
| 86 |
+
}
|
| 87 |
+
</script>
|
| 88 |
+
<br />
|
| 89 |
+
<br />
|
| 90 |
+
<button id="trnButton" style="
|
| 91 |
+
padding: 10px 20px;
|
| 92 |
+
font-size: 16px;
|
| 93 |
+
border-radius: 8px;
|
| 94 |
+
background-color: #3498db;
|
| 95 |
+
color: #fff;
|
| 96 |
+
border: none;
|
| 97 |
+
cursor: pointer;
|
| 98 |
+
" onclick="testTranslation()">
|
| 99 |
+
Translate
|
| 100 |
+
</button>
|
| 101 |
+
</body>
|
| 102 |
+
|
| 103 |
+
</html>
|
node_modules/open-google-translator/package.json
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"name": "open-google-translator",
|
| 3 |
+
"version": "1.0.5",
|
| 4 |
+
"description": "A versatile and easy-to-use NPM package that leverages the power of the Google Translator API",
|
| 5 |
+
"main": "src/index.js",
|
| 6 |
+
"types": "types.d.ts",
|
| 7 |
+
"directories": {
|
| 8 |
+
"example": "example"
|
| 9 |
+
},
|
| 10 |
+
"scripts": {
|
| 11 |
+
"build": "browserify src/index.js -o dist/bundle.js"
|
| 12 |
+
},
|
| 13 |
+
"repository": {
|
| 14 |
+
"type": "git",
|
| 15 |
+
"url": "git+https://github.com/vidya-hub/open-google-translator.git"
|
| 16 |
+
},
|
| 17 |
+
"author": "",
|
| 18 |
+
"license": "ISC",
|
| 19 |
+
"bugs": {
|
| 20 |
+
"url": "https://github.com/vidya-hub/open-google-translator/issues"
|
| 21 |
+
},
|
| 22 |
+
"homepage": "https://github.com/vidya-hub/open-google-translator#readme",
|
| 23 |
+
"keywords": [
|
| 24 |
+
"translator",
|
| 25 |
+
"google-translator",
|
| 26 |
+
"free-google-translator",
|
| 27 |
+
"open-google-translator",
|
| 28 |
+
"translate"
|
| 29 |
+
],
|
| 30 |
+
"devDependencies": {
|
| 31 |
+
"@types/node": "^20.14.11",
|
| 32 |
+
"ts-node": "^10.9.2",
|
| 33 |
+
"typescript": "^5.5.4"
|
| 34 |
+
}
|
| 35 |
+
}
|
node_modules/open-google-translator/readme.md
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# open-google-translator
|
| 2 |
+
|
| 3 |
+
 
|
| 4 |
+
|
| 5 |
+
A versatile and easy-to-use NPM package that leverages the power of the Google Translator API. With support for 104 languages, this package can seamlessly translate text in both web and Node.js environments.
|
| 6 |
+
|
| 7 |
+
## Installation
|
| 8 |
+
|
| 9 |
+
```bash
|
| 10 |
+
npm install open-google-translator
|
| 11 |
+
```
|
| 12 |
+
|
| 13 |
+
## Usage
|
| 14 |
+
|
| 15 |
+
### Node.js
|
| 16 |
+
|
| 17 |
+
```javascript
|
| 18 |
+
const translator = require("open-google-translator");
|
| 19 |
+
|
| 20 |
+
translator.supportedLanguages();
|
| 21 |
+
|
| 22 |
+
translator
|
| 23 |
+
.TranslateLanguageData({
|
| 24 |
+
listOfWordsToTranslate: ["hello here i am", "HI hello"],
|
| 25 |
+
fromLanguage: "en",
|
| 26 |
+
toLanguage: "hi",
|
| 27 |
+
})
|
| 28 |
+
.then((data) => {
|
| 29 |
+
console.log(data);
|
| 30 |
+
});
|
| 31 |
+
```
|
| 32 |
+
|
| 33 |
+
- `translator.supportedLanguages();` this method will provide pair of language iso639-1 language codes with respective language original names
|
| 34 |
+
|
| 35 |
+
Example:
|
| 36 |
+
|
| 37 |
+
```json
|
| 38 |
+
{
|
| 39 |
+
af: "Afrikaans",
|
| 40 |
+
sq: "Albanian",
|
| 41 |
+
am: "Amharic",
|
| 42 |
+
ar: "Arabic",
|
| 43 |
+
hy: "Armenian",
|
| 44 |
+
az: "Azerbaijani",
|
| 45 |
+
eu: "Basque",......
|
| 46 |
+
}
|
| 47 |
+
```
|
| 48 |
+
|
| 49 |
+
### Browser
|
| 50 |
+
|
| 51 |
+
1. Include the script in your HTML file:
|
| 52 |
+
|
| 53 |
+
```html
|
| 54 |
+
<script src="https://cdn.statically.io/gh/vidya-hub/open-google-translator/main/dist/bundle.js"></script>
|
| 55 |
+
```
|
| 56 |
+
|
| 57 |
+
2. Access the package methods using the `openGoogleTranslator` variable:
|
| 58 |
+
|
| 59 |
+
```javascript
|
| 60 |
+
openGoogleTranslator
|
| 61 |
+
.TranslateLanguageData({
|
| 62 |
+
listOfWordsToTranslate: ["hello here i am", "HI hello"],
|
| 63 |
+
fromLanguage: "en",
|
| 64 |
+
toLanguage: "te",
|
| 65 |
+
})
|
| 66 |
+
.then((data) => {
|
| 67 |
+
console.log(data);
|
| 68 |
+
});
|
| 69 |
+
```
|
| 70 |
+
|
| 71 |
+
## Inputs
|
| 72 |
+
|
| 73 |
+
- `listOfWordsToTranslate`: An array of sentences to be translated.
|
| 74 |
+
- `fromLanguage`: The language code of the original text (e.g., "en" for English).
|
| 75 |
+
- `toLanguage`: The language code of the target translation (e.g., "hi" for HIndi).
|
| 76 |
+
|
| 77 |
+
## Output
|
| 78 |
+
|
| 79 |
+
The output consists of an array of objects, each containing the original and translated sentences.
|
| 80 |
+
|
| 81 |
+
```js
|
| 82 |
+
[
|
| 83 |
+
{ original: "hello here i am", translation: "नमस्ते मैं यहाँ हूँ" },
|
| 84 |
+
{ original: "HI hello", translation: "हाय हैलो" },
|
| 85 |
+
];
|
| 86 |
+
```
|
| 87 |
+
|
| 88 |
+
## Features
|
| 89 |
+
|
| 90 |
+
- Supports translation for 104 languages.
|
| 91 |
+
- Works seamlessly in both Node.js and browser environments.
|
| 92 |
+
- Simple and intuitive API for easy integration.
|
| 93 |
+
- Fast and efficient unlimited translation using the free Google Translator API.
|
| 94 |
+
|
| 95 |
+
## Contributing
|
| 96 |
+
|
| 97 |
+
If you find any issues or have suggestions for improvement, feel free to open an [issue](https://github.com/vidya-hub/open-google-translator/issues) or submit a [pull request](https://github.com/vidya-hub/open-google-translator/pulls).
|
| 98 |
+
|
| 99 |
+
## License
|
| 100 |
+
|
| 101 |
+
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
| 102 |
+
|
| 103 |
+
## Disclaimer 📝
|
| 104 |
+
|
| 105 |
+
Please be aware that this package is created exclusively for educational purposes. The token generation method employed in this package is based on the one utilized by https://translate.googleapis.com. It is important to note that for other types of usage (COMMERCIAL or PRODUCTION use), acquiring the official [Google Translator API](https://cloud.google.com/translate/) is recommended.
|
node_modules/open-google-translator/src/api/translate_api.js
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
const generateFinalToken = require("../utils/token_gen");
|
| 2 |
+
|
| 3 |
+
function constructTranslationUrl({
|
| 4 |
+
translateFrom,
|
| 5 |
+
translateTo,
|
| 6 |
+
generatedToken,
|
| 7 |
+
}) {
|
| 8 |
+
const baseUrl = "https://translate.googleapis.com/translate_a/t";
|
| 9 |
+
const queryParams = new URLSearchParams({
|
| 10 |
+
client: "te",
|
| 11 |
+
v: "1.0",
|
| 12 |
+
sl: translateFrom,
|
| 13 |
+
tl: translateTo,
|
| 14 |
+
tk: generatedToken,
|
| 15 |
+
});
|
| 16 |
+
|
| 17 |
+
return `${baseUrl}?${queryParams.toString()}`;
|
| 18 |
+
}
|
| 19 |
+
|
| 20 |
+
function getHeaders() {
|
| 21 |
+
const headers = new Headers();
|
| 22 |
+
headers.append("accept", "*/*");
|
| 23 |
+
headers.append("Content-Type", "application/x-www-form-urlencoded");
|
| 24 |
+
return headers;
|
| 25 |
+
}
|
| 26 |
+
|
| 27 |
+
function getEncodedBody({ phrases }) {
|
| 28 |
+
const urlencodedBody = new URLSearchParams();
|
| 29 |
+
phrases.forEach((phrase) => urlencodedBody.append("q", phrase));
|
| 30 |
+
return urlencodedBody;
|
| 31 |
+
}
|
| 32 |
+
async function translateText({
|
| 33 |
+
listOfWordsToTranslate,
|
| 34 |
+
translateFrom = "en",
|
| 35 |
+
translateTo = "en",
|
| 36 |
+
}) {
|
| 37 |
+
var _result = listOfWordsToTranslate.map((originalPhrase, index) => ({
|
| 38 |
+
original: originalPhrase,
|
| 39 |
+
translation: originalPhrase,
|
| 40 |
+
}));
|
| 41 |
+
if (translateFrom === translateTo) {
|
| 42 |
+
return _result;
|
| 43 |
+
}
|
| 44 |
+
var generatedToken = generateFinalToken(listOfWordsToTranslate);
|
| 45 |
+
|
| 46 |
+
const url = constructTranslationUrl({
|
| 47 |
+
generatedToken: generatedToken,
|
| 48 |
+
translateFrom: translateFrom,
|
| 49 |
+
translateTo: translateTo,
|
| 50 |
+
});
|
| 51 |
+
|
| 52 |
+
const headers = getHeaders();
|
| 53 |
+
const urlencodedBody = getEncodedBody({
|
| 54 |
+
phrases: listOfWordsToTranslate,
|
| 55 |
+
});
|
| 56 |
+
// Create requestOptions
|
| 57 |
+
const requestOptions = {
|
| 58 |
+
method: "POST",
|
| 59 |
+
headers: headers,
|
| 60 |
+
body: urlencodedBody,
|
| 61 |
+
redirect: "follow",
|
| 62 |
+
};
|
| 63 |
+
|
| 64 |
+
try {
|
| 65 |
+
const response = await fetch(url, requestOptions);
|
| 66 |
+
var result = await response.json();
|
| 67 |
+
_result = listOfWordsToTranslate.map((originalPhrase, index) => ({
|
| 68 |
+
original: originalPhrase,
|
| 69 |
+
translation: result[index].length == 0 ? originalPhrase : result[index],
|
| 70 |
+
}));
|
| 71 |
+
} catch (error) {
|
| 72 |
+
console.error("Error:", error);
|
| 73 |
+
}
|
| 74 |
+
return _result;
|
| 75 |
+
}
|
| 76 |
+
|
| 77 |
+
module.exports = translateText;
|
node_modules/open-google-translator/src/index.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
const translateText = require("./api/translate_api");
|
| 2 |
+
const SUPPORTED_LANGUAGES = require("./utils/languages");
|
| 3 |
+
|
| 4 |
+
async function TranslateLanguageData({
|
| 5 |
+
listOfWordsToTranslate,
|
| 6 |
+
fromLanguage,
|
| 7 |
+
toLanguage,
|
| 8 |
+
}) {
|
| 9 |
+
var translatedData = await translateText({
|
| 10 |
+
listOfWordsToTranslate: listOfWordsToTranslate,
|
| 11 |
+
translateFrom: fromLanguage,
|
| 12 |
+
translateTo: toLanguage,
|
| 13 |
+
});
|
| 14 |
+
return translatedData;
|
| 15 |
+
}
|
| 16 |
+
function supportedLanguages() {
|
| 17 |
+
return SUPPORTED_LANGUAGES;
|
| 18 |
+
}
|
| 19 |
+
if (typeof window !== "undefined") {
|
| 20 |
+
window.openGoogleTranslator = { TranslateLanguageData, supportedLanguages };
|
| 21 |
+
} else {
|
| 22 |
+
module.exports = { TranslateLanguageData, supportedLanguages };
|
| 23 |
+
}
|
node_modules/open-google-translator/src/utils/languages.js
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
const SUPPORTED_LANGUAGES = {
|
| 2 |
+
af: "Afrikaans",
|
| 3 |
+
sq: "Albanian",
|
| 4 |
+
am: "Amharic",
|
| 5 |
+
ar: "Arabic",
|
| 6 |
+
hy: "Armenian",
|
| 7 |
+
az: "Azerbaijani",
|
| 8 |
+
eu: "Basque",
|
| 9 |
+
be: "Belarusian",
|
| 10 |
+
bn: "Bengali",
|
| 11 |
+
bs: "Bosnian",
|
| 12 |
+
bg: "Bulgarian",
|
| 13 |
+
ca: "Catalan",
|
| 14 |
+
ceb: "Cebuano",
|
| 15 |
+
ny: "Chichewa",
|
| 16 |
+
"zh-cn": "Chinese Simplified",
|
| 17 |
+
"zh-tw": "Chinese Traditional",
|
| 18 |
+
co: "Corsican",
|
| 19 |
+
hr: "Croatian",
|
| 20 |
+
cs: "Czech",
|
| 21 |
+
da: "Danish",
|
| 22 |
+
nl: "Dutch",
|
| 23 |
+
en: "English",
|
| 24 |
+
eo: "Esperanto",
|
| 25 |
+
et: "Estonian",
|
| 26 |
+
tl: "Filipino",
|
| 27 |
+
fi: "Finnish",
|
| 28 |
+
fr: "French",
|
| 29 |
+
fy: "Frisian",
|
| 30 |
+
gl: "Galician",
|
| 31 |
+
ka: "Georgian",
|
| 32 |
+
de: "German",
|
| 33 |
+
el: "Greek",
|
| 34 |
+
gu: "Gujarati",
|
| 35 |
+
ht: "Haitian Creole",
|
| 36 |
+
ha: "Hausa",
|
| 37 |
+
haw: "Hawaiian",
|
| 38 |
+
iw: "Hebrew",
|
| 39 |
+
hi: "Hindi",
|
| 40 |
+
hmn: "Hmong",
|
| 41 |
+
hu: "Hungarian",
|
| 42 |
+
is: "Icelandic",
|
| 43 |
+
ig: "Igbo",
|
| 44 |
+
id: "Indonesian",
|
| 45 |
+
ga: "Irish",
|
| 46 |
+
it: "Italian",
|
| 47 |
+
ja: "Japanese",
|
| 48 |
+
jw: "Javanese",
|
| 49 |
+
kn: "Kannada",
|
| 50 |
+
kk: "Kazakh",
|
| 51 |
+
km: "Khmer",
|
| 52 |
+
ko: "Korean",
|
| 53 |
+
ku: "Kurdish (Kurmanji)",
|
| 54 |
+
ky: "Kyrgyz",
|
| 55 |
+
lo: "Lao",
|
| 56 |
+
la: "Latin",
|
| 57 |
+
lv: "Latvian",
|
| 58 |
+
lt: "Lithuanian",
|
| 59 |
+
lb: "Luxembourgish",
|
| 60 |
+
mk: "Macedonian",
|
| 61 |
+
mg: "Malagasy",
|
| 62 |
+
ms: "Malay",
|
| 63 |
+
ml: "Malayalam",
|
| 64 |
+
mt: "Maltese",
|
| 65 |
+
mi: "Maori",
|
| 66 |
+
mr: "Marathi",
|
| 67 |
+
mn: "Mongolian",
|
| 68 |
+
my: "Myanmar (Burmese)",
|
| 69 |
+
ne: "Nepali",
|
| 70 |
+
no: "Norwegian",
|
| 71 |
+
ps: "Pashto",
|
| 72 |
+
fa: "Persian",
|
| 73 |
+
pl: "Polish",
|
| 74 |
+
pt: "Portuguese",
|
| 75 |
+
pa: "Punjabi",
|
| 76 |
+
ro: "Romanian",
|
| 77 |
+
ru: "Russian",
|
| 78 |
+
sm: "Samoan",
|
| 79 |
+
gd: "Scots Gaelic",
|
| 80 |
+
sr: "Serbian",
|
| 81 |
+
st: "Sesotho",
|
| 82 |
+
sn: "Shona",
|
| 83 |
+
sd: "Sindhi",
|
| 84 |
+
si: "Sinhala",
|
| 85 |
+
sk: "Slovak",
|
| 86 |
+
sl: "Slovenian",
|
| 87 |
+
so: "Somali",
|
| 88 |
+
es: "Spanish",
|
| 89 |
+
su: "Sundanese",
|
| 90 |
+
sw: "Swahili",
|
| 91 |
+
sv: "Swedish",
|
| 92 |
+
tg: "Tajik",
|
| 93 |
+
ta: "Tamil",
|
| 94 |
+
te: "Telugu",
|
| 95 |
+
th: "Thai",
|
| 96 |
+
tr: "Turkish",
|
| 97 |
+
uk: "Ukrainian",
|
| 98 |
+
ur: "Urdu",
|
| 99 |
+
uz: "Uzbek",
|
| 100 |
+
vi: "Vietnamese",
|
| 101 |
+
cy: "Welsh",
|
| 102 |
+
xh: "Xhosa",
|
| 103 |
+
yi: "Yiddish",
|
| 104 |
+
yo: "Yoruba",
|
| 105 |
+
zu: "Zulu",
|
| 106 |
+
};
|
| 107 |
+
|
| 108 |
+
module.exports = SUPPORTED_LANGUAGES;
|
node_modules/open-google-translator/src/utils/token_gen.js
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
function oo(a) {
|
| 2 |
+
for (var b = [], c = 0, d = 0; d < a.length; d++) {
|
| 3 |
+
var e = a.charCodeAt(d);
|
| 4 |
+
128 > e
|
| 5 |
+
? (b[c++] = e)
|
| 6 |
+
: (2048 > e
|
| 7 |
+
? (b[c++] = (e >> 6) | 192)
|
| 8 |
+
: (55296 == (e & 64512) &&
|
| 9 |
+
d + 1 < a.length &&
|
| 10 |
+
56320 == (a.charCodeAt(d + 1) & 64512)
|
| 11 |
+
? ((e = 65536 + ((e & 1023) << 10) + (a.charCodeAt(++d) & 1023)),
|
| 12 |
+
(b[c++] = (e >> 18) | 240),
|
| 13 |
+
(b[c++] = ((e >> 12) & 63) | 128))
|
| 14 |
+
: (b[c++] = (e >> 12) | 224),
|
| 15 |
+
(b[c++] = ((e >> 6) & 63) | 128)),
|
| 16 |
+
(b[c++] = (e & 63) | 128));
|
| 17 |
+
}
|
| 18 |
+
return b;
|
| 19 |
+
}
|
| 20 |
+
function jq(a, b) {
|
| 21 |
+
for (var c = 0; c < b.length - 2; c += 3) {
|
| 22 |
+
var d = b.charAt(c + 2);
|
| 23 |
+
d = "a" <= d ? d.charCodeAt(0) - 87 : Number(d);
|
| 24 |
+
d = "+" == b.charAt(c + 1) ? a >>> d : a << d;
|
| 25 |
+
a = "+" == b.charAt(c) ? (a + d) & 4294967295 : a ^ d;
|
| 26 |
+
}
|
| 27 |
+
return a;
|
| 28 |
+
}
|
| 29 |
+
function generateFinalToken(sentenceToTranslate) {
|
| 30 |
+
var a = sentenceToTranslate.join("");
|
| 31 |
+
var b = ["471414", "523112976"],
|
| 32 |
+
c = Number(b[0]) || 0;
|
| 33 |
+
a = oo(a);
|
| 34 |
+
for (var d = c, e = 0; e < a.length; e++) (d += a[e]), (d = jq(d, "+-a^+6"));
|
| 35 |
+
d = jq(d, "+-3^+b+-f");
|
| 36 |
+
d ^= Number(b[1]) || 0;
|
| 37 |
+
0 > d && (d = (d & 2147483647) + 2147483648);
|
| 38 |
+
b = d % 1e6;
|
| 39 |
+
return b.toString() + "." + (b ^ c);
|
| 40 |
+
}
|
| 41 |
+
|
| 42 |
+
module.exports = generateFinalToken;
|
node_modules/open-google-translator/types.d.ts
ADDED
|
@@ -0,0 +1,126 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/**
|
| 2 |
+
* @returns object of Language Code -> Language Name
|
| 3 |
+
* @example { "zh-cn": "Chinese Simplified", "zh-tw": "Chinese Traditional" }
|
| 4 |
+
*/
|
| 5 |
+
export function supportedLanguages(): Record<LanguageCode, string>;
|
| 6 |
+
|
| 7 |
+
export function TranslateLanguageData(
|
| 8 |
+
options: TranslateOptions
|
| 9 |
+
): Promise<TranslateResult[]>;
|
| 10 |
+
|
| 11 |
+
export type TranslateOptions = {
|
| 12 |
+
listOfWordsToTranslate: string[];
|
| 13 |
+
fromLanguage: LanguageCode;
|
| 14 |
+
toLanguage: LanguageCode;
|
| 15 |
+
};
|
| 16 |
+
|
| 17 |
+
export type TranslateResult = {
|
| 18 |
+
original: string;
|
| 19 |
+
translation: string;
|
| 20 |
+
};
|
| 21 |
+
|
| 22 |
+
export type LanguageCode =
|
| 23 |
+
| "af"
|
| 24 |
+
| "sq"
|
| 25 |
+
| "am"
|
| 26 |
+
| "ar"
|
| 27 |
+
| "hy"
|
| 28 |
+
| "az"
|
| 29 |
+
| "eu"
|
| 30 |
+
| "be"
|
| 31 |
+
| "bn"
|
| 32 |
+
| "bs"
|
| 33 |
+
| "bg"
|
| 34 |
+
| "ca"
|
| 35 |
+
| "ceb"
|
| 36 |
+
| "ny"
|
| 37 |
+
| "zh-cn"
|
| 38 |
+
| "zh-tw"
|
| 39 |
+
| "co"
|
| 40 |
+
| "hr"
|
| 41 |
+
| "cs"
|
| 42 |
+
| "da"
|
| 43 |
+
| "nl"
|
| 44 |
+
| "en"
|
| 45 |
+
| "eo"
|
| 46 |
+
| "et"
|
| 47 |
+
| "tl"
|
| 48 |
+
| "fi"
|
| 49 |
+
| "fr"
|
| 50 |
+
| "fy"
|
| 51 |
+
| "gl"
|
| 52 |
+
| "ka"
|
| 53 |
+
| "de"
|
| 54 |
+
| "el"
|
| 55 |
+
| "gu"
|
| 56 |
+
| "ht"
|
| 57 |
+
| "ha"
|
| 58 |
+
| "haw"
|
| 59 |
+
| "iw"
|
| 60 |
+
| "hi"
|
| 61 |
+
| "hmn"
|
| 62 |
+
| "hu"
|
| 63 |
+
| "is"
|
| 64 |
+
| "ig"
|
| 65 |
+
| "id"
|
| 66 |
+
| "ga"
|
| 67 |
+
| "it"
|
| 68 |
+
| "ja"
|
| 69 |
+
| "jw"
|
| 70 |
+
| "kn"
|
| 71 |
+
| "kk"
|
| 72 |
+
| "km"
|
| 73 |
+
| "ko"
|
| 74 |
+
| "ku"
|
| 75 |
+
| "ky"
|
| 76 |
+
| "lo"
|
| 77 |
+
| "la"
|
| 78 |
+
| "lv"
|
| 79 |
+
| "lt"
|
| 80 |
+
| "lb"
|
| 81 |
+
| "mk"
|
| 82 |
+
| "mg"
|
| 83 |
+
| "ms"
|
| 84 |
+
| "ml"
|
| 85 |
+
| "mt"
|
| 86 |
+
| "mi"
|
| 87 |
+
| "mr"
|
| 88 |
+
| "mn"
|
| 89 |
+
| "my"
|
| 90 |
+
| "ne"
|
| 91 |
+
| "no"
|
| 92 |
+
| "ps"
|
| 93 |
+
| "fa"
|
| 94 |
+
| "pl"
|
| 95 |
+
| "pt"
|
| 96 |
+
| "pa"
|
| 97 |
+
| "ro"
|
| 98 |
+
| "ru"
|
| 99 |
+
| "sm"
|
| 100 |
+
| "gd"
|
| 101 |
+
| "sr"
|
| 102 |
+
| "st"
|
| 103 |
+
| "sn"
|
| 104 |
+
| "sd"
|
| 105 |
+
| "si"
|
| 106 |
+
| "sk"
|
| 107 |
+
| "sl"
|
| 108 |
+
| "so"
|
| 109 |
+
| "es"
|
| 110 |
+
| "su"
|
| 111 |
+
| "sw"
|
| 112 |
+
| "sv"
|
| 113 |
+
| "tg"
|
| 114 |
+
| "ta"
|
| 115 |
+
| "te"
|
| 116 |
+
| "th"
|
| 117 |
+
| "tr"
|
| 118 |
+
| "uk"
|
| 119 |
+
| "ur"
|
| 120 |
+
| "uz"
|
| 121 |
+
| "vi"
|
| 122 |
+
| "cy"
|
| 123 |
+
| "xh"
|
| 124 |
+
| "yi"
|
| 125 |
+
| "yo"
|
| 126 |
+
| "zu";
|
package-lock.json
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"name": "translators",
|
| 3 |
+
"version": "1.0.0",
|
| 4 |
+
"lockfileVersion": 3,
|
| 5 |
+
"requires": true,
|
| 6 |
+
"packages": {
|
| 7 |
+
"": {
|
| 8 |
+
"name": "translators",
|
| 9 |
+
"version": "1.0.0",
|
| 10 |
+
"license": "ISC",
|
| 11 |
+
"dependencies": {
|
| 12 |
+
"open-google-translator": "^1.0.5"
|
| 13 |
+
}
|
| 14 |
+
},
|
| 15 |
+
"node_modules/open-google-translator": {
|
| 16 |
+
"version": "1.0.5",
|
| 17 |
+
"resolved": "https://registry.npmjs.org/open-google-translator/-/open-google-translator-1.0.5.tgz",
|
| 18 |
+
"integrity": "sha512-4J1KBqxCXmIG5IyW2OwFMdR0dgya6ph0Cx7DpRaKytnq8Tsgw/lK1JdlhtpJjGccNmGvmU05pBMzdUHDAZgqbw=="
|
| 19 |
+
}
|
| 20 |
+
}
|
| 21 |
+
}
|
package.json
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"name": "translators",
|
| 3 |
+
"version": "1.0.0",
|
| 4 |
+
"description": "",
|
| 5 |
+
"main": "fetch.js",
|
| 6 |
+
"scripts": {
|
| 7 |
+
"test": "echo \"Error: no test specified\" && exit 1"
|
| 8 |
+
},
|
| 9 |
+
"keywords": [],
|
| 10 |
+
"author": "",
|
| 11 |
+
"license": "ISC",
|
| 12 |
+
"dependencies": {
|
| 13 |
+
"open-google-translator": "^1.0.5"
|
| 14 |
+
}
|
| 15 |
+
}
|