Socket
Socket
Sign inDemoInstall

combinedtranslate

Package Overview
Dependencies
162
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.0.5 to 0.1.0

dist/functions/getLanguageByName.d.ts

13

dist/functions/getLanguage.d.ts

@@ -1,9 +0,6 @@

/**
* A function to find both the name and ISO code of a language by either of the language
* @param {string} query - The language name or ISO code
* @returns An object containing both language name and ISO code
*/
export default function getLanguage(query: string): {
language: string | null;
code: string | null;
};
code: string;
name: string;
local: never[];
translate: boolean;
} | null;

@@ -1,18 +0,5 @@

"use strict";
import getLanguageByCode from "./getLanguageByCode.js";
import getLanguageByName from "./getLanguageByName.js";
/**
* A function to find both the name and ISO code of a language by either of the language
* @param {string} query - The language name or ISO code
* @returns An object containing both language name and ISO code
*/
export default function getLanguage(query) {
if (typeof query !== "string")
throw new Error("Can't find language by non-string values.");
let language = getLanguageByCode(query), code = getLanguageByName(query);
if (!language)
language = getLanguageByCode(code);
if (!code)
code = getLanguageByName(language);
return { language, code };
return getLanguageByCode(query) || getLanguageByName(query);
}

@@ -6,2 +6,7 @@ /**

*/
export default function getLanguageByCode(code: string): string | null;
export default function getLanguageByCode(code: string): {
code: string;
name: string;
local: never[];
translate: boolean;
} | null;

@@ -1,3 +0,2 @@

"use strict";
import getLanguages from "./getLanguages.js";
import languages from "../tools/languages.js";
/**

@@ -9,7 +8,13 @@ * A function to get the language name by it's ISO code

export default function getLanguageByCode(code) {
if (typeof code !== "string")
throw new Error("Can't find language by non-string values.");
return getLanguages().languagesByCode[`${code.split(/-/g)[0].toLowerCase()}${code.split(/-/g)[1]
? `-${code.split(/-/g)[1].toUpperCase()}`
: ""}`] || null;
if (typeof code !== "string")
throw new Error("Can't find language by non-string values.");
return (
languages.find(
(l) =>
l.code ==
`${code.split(/-/g)[0].toLowerCase()}${
code.split(/-/g)[1] ? `-${code.split(/-/g)[1].toLowerCase()}` : ""
}`
) || null
);
}

@@ -1,9 +0,1 @@

/**
* A function that will return a list of languages.
* @returns
*/
export default function getLanguages(): {
languagesByCode: Record<string, string>;
languagesByName: Record<string, string>;
languages: string[];
};
export {};

@@ -1,58 +0,57 @@

"use strict";
import * as asma from "@asmagin/google-translate-api";
import * as imli from "@imlinhanchao/google-translate-api";
import * as iuse from "@iuser/google-translate-api";
import * as plai from "@plainheart/google-translate-api";
import * as gtae from "google-translate-api-extend";
import * as gtan from "google-translate-api-next";
/**
* A function that will return a list of languages.
* @returns
*/
export default function getLanguages() {
const languagesByCode = {
zh: "Chinese",
"zh-cn": "Chinese Simplified",
"zh-tw": "Chinese Traditional",
ma: "Mandarin",
}, languagesByName = {
Chinese: "zh",
"Chinese Simplified": "zh-cn",
"Chinese Traditional": "zh-tw",
Mandarin: "ma",
};
[
asma.languages,
imli.languages,
iuse.languages,
plai.languages,
gtae.languages,
gtan.languages,
].map((language) => {
Object.entries(language).map(([code, name]) => {
if (typeof name === "function")
return;
try {
Object.defineProperty(languagesByCode, code, {
value: name,
writable: false,
enumerable: true,
});
}
catch { }
try {
Object.defineProperty(languagesByName, name, {
value: code,
writable: false,
enumerable: true,
});
}
catch { }
});
});
return {
languagesByCode,
languagesByName,
languages: Object.keys(languagesByName),
};
}
// "use strict";
export {};
// import * as asma from "@asmagin/google-translate-api";
// import * as imli from "@imlinhanchao/google-translate-api";
// import * as iuse from "@iuser/google-translate-api";
// import * as plai from "@plainheart/google-translate-api";
// import * as gtae from "google-translate-api-extend";
// import * as gtan from "google-translate-api-next";
// /**
// * A function that will return a list of languages.
// * @returns
// */
// export default function getLanguages() {
// const languagesByCode: Record<string, string> = {
// zh: "Chinese",
// "zh-cn": "Chinese Simplified",
// "zh-tw": "Chinese Traditional",
// ma: "Mandarin",
// },
// languagesByName: Record<string, string> = {
// Chinese: "zh",
// "Chinese Simplified": "zh-cn",
// "Chinese Traditional": "zh-tw",
// Mandarin: "ma",
// };
// [
// asma.languages,
// imli.languages,
// iuse.languages,
// plai.languages,
// gtae.languages,
// gtan.languages,
// ].map((language) => {
// Object.entries(language).map(([code, name]) => {
// if (typeof name === "function") return;
// try {
// Object.defineProperty(languagesByCode, code, {
// value: name,
// writable: false,
// enumerable: true,
// });
// } catch { }
// try {
// Object.defineProperty(languagesByName, name, {
// value: code,
// writable: false,
// enumerable: true,
// });
// } catch { }
// });
// });
// return {
// languagesByCode,
// languagesByName,
// languages: Object.keys(languagesByName),
// };
// }

@@ -1,38 +0,1 @@

interface Options {
to?: string;
from?: string | null;
logOnFail?: boolean;
}
/**
*
* @param {string} text - A string value with any characters up to 5000 at once
* @param {Options} options - A set of optional options
* @returns an object containing translation, source and target language and much more.
*/
export default function translate(text: string, options?: Options): Promise<{
readonly content: any;
readonly pronunciation: any;
readonly translated: boolean;
readonly tries: number;
readonly time: number;
readonly language: {
readonly source: {
readonly name: string | null;
readonly code: any;
};
readonly target: {
readonly name: string | null;
readonly code: string | null;
};
readonly corrected: any;
readonly certainty: any;
};
readonly text: {
readonly input: string;
readonly output: any;
readonly corrected: any;
readonly value: any;
};
readonly raw: any;
}>;
export {};

@@ -1,167 +0,161 @@

"use strict";
import asma from "@asmagin/google-translate-api";
import imli from "@imlinhanchao/google-translate-api";
import iuse from "@iuser/google-translate-api";
import leiz from "@leizl/google-translate-open-api";
import plai from "@plainheart/google-translate-api";
import vita from "@vitalets/google-translate-api";
import gtae from "google-translate-api-extend";
import gtan from "google-translate-api-next";
import gtax from "google-translate-api-x";
import gtoa from "google-translate-open-api";
import trga from "trgoogleapi";
import * as main from "../main.js";
/**
*
* @param {string} text - A string value with any characters up to 5000 at once
* @param {Options} options - A set of optional options
* @returns an object containing translation, source and target language and much more.
*/
export default async function translate(text, options = {}) {
const start = Number(Date.now());
if (!options.to)
options.to = "English";
if (typeof text !== "string")
throw new Error("Can't translate non-string values.");
const target = getCredentials(options.to);
const from = getCredentials(options.from);
let response, tries = 0;
for (const translate of [asma, gtan, iuse, imli, gtae, plai]) {
for (const to of target) {
if (!to)
break;
let translated;
if (!from[0] && !from[1]) {
try {
translated = await translate(text, { to });
}
catch { }
}
else {
try {
translated = await translate(text, {
to,
from: from[target.indexOf(to)],
});
}
catch { }
}
if (translated?.text) {
response = translated;
break;
}
else {
tries++;
if (options.logOnFail)
console.log(`[${tries}] Failed to translate with "${to}".`);
continue;
}
}
if (response)
break;
else
continue;
}
for (const translator of [leiz, gtax, gtoa, trga]) {
for (const to of target) {
if (!to)
break;
let translated;
if (!from[0] && !from[1]) {
try {
translated = await translator.default(text, { to });
}
catch { }
}
else {
translated = await translator.default(text, {
to,
from: from[target.indexOf(to)],
});
}
if (translated?.text) {
response = translated;
break;
}
else {
tries++;
if (options.logOnFail)
console.log(`[${tries}] Failed to translate with "${to}".`);
continue;
}
}
if (response)
break;
else
continue;
}
for (const to of target) {
if (!to)
break;
let translated;
if (!from[0] && !from[1]) {
try {
translated = await vita.translate(text, { to });
}
catch { }
}
else {
translated = await vita.translate(text, {
to,
from: from[target.indexOf(to)],
});
}
if (translated?.text) {
response = translated;
break;
}
else {
tries++;
if (options.logOnFail)
console.log(`[${tries}] Failed to translate with "${to}".`);
continue;
}
}
return {
content: response?.text || text,
pronunciation: response?.pronunciation || null,
translated: !!response?.text,
tries: tries,
time: Number(Date.now()) - start,
language: {
source: {
name: main.languagesByCode[response?.from?.language?.iso || response?.raw?.src || ""] || null,
code: response?.from?.language?.iso || response?.raw?.src || null,
},
target: {
name: target[1],
code: target[0],
},
corrected: response?.from?.language?.didYouMean || false,
certainty: response?.raw?.confidence || null,
},
text: {
input: text,
output: response?.text || text,
corrected: response?.from?.text?.autoCorrected || false,
value: response?.from?.text?.value || null,
},
raw: response?.raw || null,
};
}
function getCredentials(language) {
let code, name;
if (language)
code =
main.languagesByName[language.charAt(0).toUpperCase() + language.slice(1).toLowerCase()];
if (language)
name =
main.languagesByCode[`${language.split(/-/g)[0].toLowerCase()}${language.split(/-/g)[1]
? `-${language.split(/-/g)[1].toUpperCase()}`
: ""}`];
if (!code && name)
code = main.languagesByName[name];
if (!name && code)
name = main.languagesByCode[code];
return [code || null, name || null];
}
// 'use strict';
export {};
// // @ts-ignore
// import asma from '@asmagin/google-translate-api';
// // @ts-ignore
// import imli from '@imlinhanchao/google-translate-api';
// // @ts-ignore
// import iuse from '@iuser/google-translate-api';
// // @ts-ignore
// import leiz from '@leizl/google-translate-open-api';
// // @ts-ignore
// import plai from '@plainheart/google-translate-api';
// // @ts-ignore
// import vita from '@vitalets/google-translate-api';
// // @ts-ignore
// import gtae from 'google-translate-api-extend';
// // @ts-ignore
// import gtan from 'google-translate-api-next';
// // @ts-ignore
// import gtax from 'google-translate-api-x';
// // @ts-ignore
// import gtoa from 'google-translate-open-api';
// // @ts-ignore
// import trga from 'trgoogleapi';
// import * as main from '../main.js';
// interface Options {
// to?: string;
// from?: string | null;
// logOnFail?: boolean;
// }
// /**
// *
// * @param {string} text - A string value with any characters up to 5000 at once
// * @param {Options} options - A set of optional options
// * @returns an object containing translation, source and target language and much more.
// */
// export default async function translate(text: string, options: Options = {}) {
// const start: number = Number(Date.now());
// if (!options.to) options.to = 'English';
// if (typeof text !== 'string') throw new Error("Can't translate non-string values.");
// const target = getCredentials(options.to);
// const from = getCredentials(options.from as string | null);
// let response,
// tries = 0;
// for (const translate of [asma, gtan, iuse, imli, gtae, plai]) {
// for (const to of target) {
// if (!to) break;
// let translated;
// if (!from[0] && !from[1]) {
// try {
// translated = await translate(text, { to });
// } catch {}
// } else {
// try {
// translated = await translate(text, {
// to,
// from: from[target.indexOf(to)] as string,
// });
// } catch {}
// }
// if (translated?.text) {
// response = translated;
// break;
// } else {
// tries++;
// if (options.logOnFail) console.log(`[${tries}] Failed to translate with "${to}".`);
// continue;
// }
// }
// if (response) break;
// else continue;
// }
// for (const translator of [leiz, gtax, gtoa, trga]) {
// for (const to of target) {
// if (!to) break;
// let translated;
// if (!from[0] && !from[1]) {
// try {
// translated = await translator.default(text, { to });
// } catch {}
// } else {
// translated = await translator.default(text, {
// to,
// from: from[target.indexOf(to)] as string,
// });
// }
// if (translated?.text) {
// response = translated;
// break;
// } else {
// tries++;
// if (options.logOnFail) console.log(`[${tries}] Failed to translate with "${to}".`);
// continue;
// }
// }
// if (response) break;
// else continue;
// }
// for (const to of target) {
// if (!to) break;
// let translated;
// if (!from[0] && !from[1]) {
// try {
// translated = await vita.translate(text, { to });
// } catch {}
// } else {
// translated = await vita.translate(text, {
// to,
// from: from[target.indexOf(to)] as string,
// });
// }
// if (translated?.text) {
// response = translated;
// break;
// } else {
// tries++;
// if (options.logOnFail) console.log(`[${tries}] Failed to translate with "${to}".`);
// continue;
// }
// }
// return {
// content: response?.text || text,
// pronunciation: response?.pronunciation || null,
// translated: !!response?.text,
// tries: tries,
// time: Number(Date.now()) - start,
// language: {
// source: {
// name: main.languagesByCode[response?.from?.language?.iso || response?.raw?.src || ''] || null,
// code: response?.from?.language?.iso || response?.raw?.src || null,
// },
// target: {
// name: target[1],
// code: target[0],
// },
// corrected: response?.from?.language?.didYouMean || false,
// certainty: response?.raw?.confidence || null,
// },
// text: {
// input: text,
// output: response?.text || text,
// corrected: response?.from?.text?.autoCorrected || false,
// value: response?.from?.text?.value || null,
// },
// raw: response?.raw || null,
// } as const;
// }
// function getCredentials(language: string | null) {
// let code, name;
// if (language) code = main.languagesByName[language.charAt(0).toUpperCase() + language.slice(1).toLowerCase()];
// if (language)
// name =
// main.languagesByCode[
// `${language.split(/-/g)[0].toLowerCase()}${
// language.split(/-/g)[1] ? `-${language.split(/-/g)[1].toUpperCase()}` : ''
// }`
// ];
// if (!code && name) code = main.languagesByName[name];
// if (!name && code) name = main.languagesByCode[code];
// return [code || null, name || null];
// }

@@ -1,7 +0,8 @@

import translate from "./functions/translate.js";
import getLanguageByName from "./functions/getLanguageByName.js";
import getLanguageByCode from "./functions/getLanguageByCode.js";
import getLanguage from "./functions/getLanguage.js";
declare const languagesByCode: Record<string, string>, languagesByName: Record<string, string>, languagesList: string[];
export { languagesByCode, languagesByName, languagesList, translate, getLanguageByCode, getLanguageByName, getLanguage };
export default translate;
import emojify from "./models/emojify.js";
import morse from "./models/morse.js";
import pigify from "./models/pigify.js";
import convert from "convert-units";
import translate from "./models/translate.js";
import detect from "./models/detect.js";
import languages from "./tools/languages.js";
export { morse, pigify, emojify, convert, translate, detect, languages };

@@ -1,13 +0,8 @@

"use strict";
import translate from "./functions/translate.js";
import getLanguages from "./functions/getLanguages.js";
import getLanguageByName from "./functions/getLanguageByName.js";
import getLanguageByCode from "./functions/getLanguageByCode.js";
import getLanguage from "./functions/getLanguage.js";
const languagesByCode = getLanguages().languagesByCode, languagesByName = getLanguages().languagesByName, languagesList = getLanguages().languages;
export {
// Constants
languagesByCode, languagesByName, languagesList,
// Functions
translate, getLanguageByCode, getLanguageByName, getLanguage };
export default translate;
import emojify from "./models/emojify.js";
import morse from "./models/morse.js";
import pigify from "./models/pigify.js";
import convert from "convert-units";
import translate from "./models/translate.js";
import detect from "./models/detect.js";
import languages from "./tools/languages.js";
export { morse, pigify, emojify, convert, translate, detect, languages };
{
"name": "combinedtranslate",
"version": "0.0.5",
"description": "A translate package that combines multiple API's and packages.",
"main": "dist/main.js",
"scripts": {
"dummi": "echo Hi!"
},
"repository": {
"type": "git",
"url": "git+https://github.com/TheDummi/combinedTranslate.git"
},
"keywords": [
"translate",
"free"
],
"author": "Dummi",
"type": "module",
"license": "MIT",
"bugs": {
"url": "https://github.com/TheDummi/combinedTranslate/issues"
},
"homepage": "https://github.com/TheDummi/combinedTranslate#readme",
"dependencies": {
"@asmagin/google-translate-api": "^8.0.2",
"@imlinhanchao/google-translate-api": "^8.0.1",
"@iuser/google-translate-api": "^0.0.2",
"@leizl/google-translate-open-api": "^0.0.2",
"@plainheart/google-translate-api": "^1.2.0",
"@vitalets/google-translate-api": "^9.0.0",
"google-translate-api-extend": "^8.0.1",
"google-translate-api-next": "^0.1.0",
"google-translate-api-x": "^10.5.0",
"google-translate-open-api": "^1.3.7",
"trgoogleapi": "^1.5.1"
}
"name": "combinedtranslate",
"version": "0.1.0",
"description": "A translate package that combines multiple API's and packages.",
"main": "dist/main.js",
"scripts": {
"build": "tsc && npx prettier --write ."
},
"repository": {
"type": "git",
"url": "git+https://github.com/TheDummi/combinedTranslate.git"
},
"keywords": [
"translate",
"free"
],
"author": "Dummi",
"type": "module",
"license": "MIT",
"bugs": {
"url": "https://github.com/TheDummi/combinedTranslate/issues"
},
"homepage": "https://github.com/TheDummi/combinedTranslate#readme",
"dependencies": {
"@asmagin/google-translate-api": "^8.0.2",
"@imlinhanchao/google-translate-api": "^8.0.1",
"@iuser/google-translate-api": "^0.0.2",
"@leizl/google-translate-open-api": "^0.0.2",
"@vitalets/google-translate-api": "^9.2.0",
"convert-units": "^2.3.4",
"fanyi-google": "^1.1.1",
"google-translate-api": "^0.1.1",
"google-translate-api-extend": "^8.0.1",
"google-translate-api-next": "^0.1.0",
"google-translate-api-x": "^10.6.7",
"moji-translate": "^1.0.8",
"morcedecoder": "^1.0.1",
"open-translate": "^1.4.2",
"pig-latin": "^2.0.2",
"translate-emoji": "^1.0.0",
"trgoogleapi": "^1.5.1"
},
"devDependencies": {
"@types/convert-units": "^2.3.5",
"@types/google-translate-api": "^2.3.2",
"prettier": "^2.8.8",
"typescript": "^5.1.3"
}
}

@@ -18,5 +18,5 @@ # CombinedTranslate \[BETA\]

```js
import translate from 'combinedtranslate';
import translate from "combinedtranslate";
const translation = await translate('Hallo Wereld', { to: 'English' });
const translation = await translate("Hallo Wereld", { to: "English" });
// Output: translation.content = 'Hello World'

@@ -69,3 +69,7 @@ ```

```js
import translate, { languagesByCode, languagesByName, languageList } from 'combinedtranslate';
import translate, {
languagesByCode,
languagesByName,
languageList,
} from "combinedtranslate";

@@ -72,0 +76,0 @@ languagesByCode; // An object with all supported languages by their ISO code.

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc