anylang
Version:
A translator's kit that uses the free APIs of Google Translate, Yandex, Bing, ChatGPT, and other LLMs
61 lines (59 loc) • 8.82 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.createLanguageAliasesMap = exports.LanguageAliases = void 0;
const createLanguageAliasesMap = languages => {
const complexLanguages = languages.filter(language => language.includes('-'));
// Build languages map
const languagesMap = {};
for (const language of complexLanguages) {
const simpleLanguage = language.split('-')[0];
if (!(simpleLanguage in languagesMap)) {
languagesMap[simpleLanguage] = [language];
continue;
}
languagesMap[simpleLanguage].push(language);
}
return languagesMap;
};
exports.createLanguageAliasesMap = createLanguageAliasesMap;
class LanguageAliases {
constructor(languagesList, options = {}) {
this.languagesList = languagesList;
this.options = options;
// Build map
const languagesMap = createLanguageAliasesMap(languagesList);
this.languagesMaps = {
normal: languagesMap,
reverse: Object.fromEntries(Object.entries(languagesMap).map(([simpleLanguage, aliases]) => aliases.map(alias => [alias, simpleLanguage])).flat())
};
this.simpleLanguages = new Set(languagesList);
}
getAll() {
var _a;
return Array.from(new Set([...this.languagesList, ...Object.keys(this.languagesMaps.normal), ...Object.keys((_a = this.options.map) !== null && _a !== void 0 ? _a : {})]));
}
get(language) {
var _a, _b;
const mappedLanguage = this.getMappedLanguage(language);
if (mappedLanguage) return mappedLanguage;
// Return mapped language
const languageAliases = this.languagesMaps.normal[language];
// Check if key is exists
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
if (languageAliases) return (_a = this.getMappedLanguage(languageAliases[0])) !== null && _a !== void 0 ? _a : languageAliases[0];
// Return language in list
if (this.simpleLanguages.has(language)) return (_b = this.getMappedLanguage(language)) !== null && _b !== void 0 ? _b : language;
return null;
}
getMappedLanguage(language) {
const {
map = {}
} = this.options;
// Return mapped language
return language in map ? map[language] : null;
}
}
exports.LanguageAliases = LanguageAliases;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2VzL0xhbmd1YWdlQWxpYXNlcy5qcyIsIm5hbWVzIjpbImNyZWF0ZUxhbmd1YWdlQWxpYXNlc01hcCIsImxhbmd1YWdlcyIsImNvbXBsZXhMYW5ndWFnZXMiLCJmaWx0ZXIiLCJsYW5ndWFnZSIsImluY2x1ZGVzIiwibGFuZ3VhZ2VzTWFwIiwic2ltcGxlTGFuZ3VhZ2UiLCJzcGxpdCIsInB1c2giLCJleHBvcnRzIiwiTGFuZ3VhZ2VBbGlhc2VzIiwiY29uc3RydWN0b3IiLCJsYW5ndWFnZXNMaXN0Iiwib3B0aW9ucyIsImxhbmd1YWdlc01hcHMiLCJub3JtYWwiLCJyZXZlcnNlIiwiT2JqZWN0IiwiZnJvbUVudHJpZXMiLCJlbnRyaWVzIiwibWFwIiwiYWxpYXNlcyIsImFsaWFzIiwiZmxhdCIsInNpbXBsZUxhbmd1YWdlcyIsIlNldCIsImdldEFsbCIsIkFycmF5IiwiZnJvbSIsImtleXMiLCJfYSIsImdldCIsIm1hcHBlZExhbmd1YWdlIiwiZ2V0TWFwcGVkTGFuZ3VhZ2UiLCJsYW5ndWFnZUFsaWFzZXMiLCJoYXMiLCJfYiJdLCJzb3VyY2VzIjpbImxhbmd1YWdlcy9MYW5ndWFnZUFsaWFzZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGNyZWF0ZUxhbmd1YWdlQWxpYXNlc01hcCA9IChsYW5ndWFnZXM6IHN0cmluZ1tdKSA9PiB7XG5cdGNvbnN0IGNvbXBsZXhMYW5ndWFnZXMgPSBsYW5ndWFnZXMuZmlsdGVyKChsYW5ndWFnZSkgPT4gbGFuZ3VhZ2UuaW5jbHVkZXMoJy0nKSk7XG5cblx0Ly8gQnVpbGQgbGFuZ3VhZ2VzIG1hcFxuXHRjb25zdCBsYW5ndWFnZXNNYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPiA9IHt9O1xuXHRmb3IgKGNvbnN0IGxhbmd1YWdlIG9mIGNvbXBsZXhMYW5ndWFnZXMpIHtcblx0XHRjb25zdCBzaW1wbGVMYW5ndWFnZSA9IGxhbmd1YWdlLnNwbGl0KCctJylbMF07XG5cblx0XHRpZiAoIShzaW1wbGVMYW5ndWFnZSBpbiBsYW5ndWFnZXNNYXApKSB7XG5cdFx0XHRsYW5ndWFnZXNNYXBbc2ltcGxlTGFuZ3VhZ2VdID0gW2xhbmd1YWdlXTtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGxhbmd1YWdlc01hcFtzaW1wbGVMYW5ndWFnZV0ucHVzaChsYW5ndWFnZSk7XG5cdH1cblxuXHRyZXR1cm4gbGFuZ3VhZ2VzTWFwO1xufTtcblxuZXhwb3J0IGNsYXNzIExhbmd1YWdlQWxpYXNlcyB7XG5cdHByaXZhdGUgcmVhZG9ubHkgc2ltcGxlTGFuZ3VhZ2VzO1xuXHRwcml2YXRlIHJlYWRvbmx5IGxhbmd1YWdlc01hcHM7XG5cdGNvbnN0cnVjdG9yKFxuXHRcdHByaXZhdGUgcmVhZG9ubHkgbGFuZ3VhZ2VzTGlzdDogc3RyaW5nW10sXG5cdFx0cHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiB7XG5cdFx0XHRtYXA/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXHRcdH0gPSB7fSxcblx0KSB7XG5cdFx0Ly8gQnVpbGQgbWFwXG5cdFx0Y29uc3QgbGFuZ3VhZ2VzTWFwID0gY3JlYXRlTGFuZ3VhZ2VBbGlhc2VzTWFwKGxhbmd1YWdlc0xpc3QpO1xuXHRcdHRoaXMubGFuZ3VhZ2VzTWFwcyA9IHtcblx0XHRcdG5vcm1hbDogbGFuZ3VhZ2VzTWFwLFxuXHRcdFx0cmV2ZXJzZTogT2JqZWN0LmZyb21FbnRyaWVzKFxuXHRcdFx0XHRPYmplY3QuZW50cmllcyhsYW5ndWFnZXNNYXApXG5cdFx0XHRcdFx0Lm1hcCgoW3NpbXBsZUxhbmd1YWdlLCBhbGlhc2VzXSkgPT5cblx0XHRcdFx0XHRcdGFsaWFzZXMubWFwKChhbGlhcykgPT4gW2FsaWFzLCBzaW1wbGVMYW5ndWFnZV0pLFxuXHRcdFx0XHRcdClcblx0XHRcdFx0XHQuZmxhdCgpLFxuXHRcdFx0KSBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4sXG5cdFx0fTtcblxuXHRcdHRoaXMuc2ltcGxlTGFuZ3VhZ2VzID0gbmV3IFNldChsYW5ndWFnZXNMaXN0KTtcblx0fVxuXG5cdHB1YmxpYyBnZXRBbGwoKSB7XG5cdFx0cmV0dXJuIEFycmF5LmZyb20oXG5cdFx0XHRuZXcgU2V0KFtcblx0XHRcdFx0Li4udGhpcy5sYW5ndWFnZXNMaXN0LFxuXHRcdFx0XHQuLi5PYmplY3Qua2V5cyh0aGlzLmxhbmd1YWdlc01hcHMubm9ybWFsKSxcblx0XHRcdFx0Li4uT2JqZWN0LmtleXModGhpcy5vcHRpb25zLm1hcCA/PyB7fSksXG5cdFx0XHRdKSxcblx0XHQpO1xuXHR9XG5cblx0cHVibGljIGdldChsYW5ndWFnZTogc3RyaW5nKSB7XG5cdFx0Y29uc3QgbWFwcGVkTGFuZ3VhZ2UgPSB0aGlzLmdldE1hcHBlZExhbmd1YWdlKGxhbmd1YWdlKTtcblx0XHRpZiAobWFwcGVkTGFuZ3VhZ2UpIHJldHVybiBtYXBwZWRMYW5ndWFnZTtcblxuXHRcdC8vIFJldHVybiBtYXBwZWQgbGFuZ3VhZ2Vcblx0XHRjb25zdCBsYW5ndWFnZUFsaWFzZXMgPSB0aGlzLmxhbmd1YWdlc01hcHMubm9ybWFsW2xhbmd1YWdlXTtcblx0XHQvLyBDaGVjayBpZiBrZXkgaXMgZXhpc3RzXG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS1jb25kaXRpb25cblx0XHRpZiAobGFuZ3VhZ2VBbGlhc2VzKVxuXHRcdFx0cmV0dXJuIHRoaXMuZ2V0TWFwcGVkTGFuZ3VhZ2UobGFuZ3VhZ2VBbGlhc2VzWzBdKSA/PyBsYW5ndWFnZUFsaWFzZXNbMF07XG5cblx0XHQvLyBSZXR1cm4gbGFuZ3VhZ2UgaW4gbGlzdFxuXHRcdGlmICh0aGlzLnNpbXBsZUxhbmd1YWdlcy5oYXMobGFuZ3VhZ2UpKVxuXHRcdFx0cmV0dXJuIHRoaXMuZ2V0TWFwcGVkTGFuZ3VhZ2UobGFuZ3VhZ2UpID8/IGxhbmd1YWdlO1xuXG5cdFx0cmV0dXJuIG51bGw7XG5cdH1cblxuXHRwcml2YXRlIGdldE1hcHBlZExhbmd1YWdlKGxhbmd1YWdlOiBzdHJpbmcpIHtcblx0XHRjb25zdCB7IG1hcCA9IHt9IH0gPSB0aGlzLm9wdGlvbnM7XG5cblx0XHQvLyBSZXR1cm4gbWFwcGVkIGxhbmd1YWdlXG5cdFx0cmV0dXJuIGxhbmd1YWdlIGluIG1hcCA/IG1hcFtsYW5ndWFnZV0gOiBudWxsO1xuXHR9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFPLE1BQU1BLHdCQUF3QixHQUFJQyxTQUFtQixJQUFJO0VBQy9ELE1BQU1DLGdCQUFnQixHQUFHRCxTQUFTLENBQUNFLE1BQU0sQ0FBRUMsUUFBUSxJQUFLQSxRQUFRLENBQUNDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUUvRTtFQUNBLE1BQU1DLFlBQVksR0FBNkIsRUFBRTtFQUNqRCxLQUFLLE1BQU1GLFFBQVEsSUFBSUYsZ0JBQWdCLEVBQUU7SUFDeEMsTUFBTUssY0FBYyxHQUFHSCxRQUFRLENBQUNJLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFN0MsSUFBSSxFQUFFRCxjQUFjLElBQUlELFlBQVksQ0FBQyxFQUFFO01BQ3RDQSxZQUFZLENBQUNDLGNBQWMsQ0FBQyxHQUFHLENBQUNILFFBQVEsQ0FBQztNQUN6QztJQUNEO0lBRUFFLFlBQVksQ0FBQ0MsY0FBYyxDQUFDLENBQUNFLElBQUksQ0FBQ0wsUUFBUSxDQUFDO0VBQzVDO0VBRUEsT0FBT0UsWUFBWTtBQUNwQixDQUFDO0FBQUNJLE9BQUEsQ0FBQVYsd0JBQUEsR0FBQUEsd0JBQUE7QUFFSSxNQUFPVyxlQUFlO0VBRzNCQyxZQUNrQkMsYUFBdUIsRUFDdkJDLE9BQUEsR0FFYixFQUFFO0lBSFcsS0FBQUQsYUFBYSxHQUFiQSxhQUFhO0lBQ2IsS0FBQUMsT0FBTyxHQUFQQSxPQUFPO0lBSXhCO0lBQ0EsTUFBTVIsWUFBWSxHQUFHTix3QkFBd0IsQ0FBQ2EsYUFBYSxDQUFDO0lBQzVELElBQUksQ0FBQ0UsYUFBYSxHQUFHO01BQ3BCQyxNQUFNLEVBQUVWLFlBQVk7TUFDcEJXLE9BQU8sRUFBRUMsTUFBTSxDQUFDQyxXQUFXLENBQzFCRCxNQUFNLENBQUNFLE9BQU8sQ0FBQ2QsWUFBWSxDQUFDLENBQzFCZSxHQUFHLENBQUMsQ0FBQyxDQUFDZCxjQUFjLEVBQUVlLE9BQU8sQ0FBQyxLQUM5QkEsT0FBTyxDQUFDRCxHQUFHLENBQUVFLEtBQUssSUFBSyxDQUFDQSxLQUFLLEVBQUVoQixjQUFjLENBQUMsQ0FBQyxDQUMvQyxDQUNBaUIsSUFBSSxFQUFFO0tBRVQ7SUFFRCxJQUFJLENBQUNDLGVBQWUsR0FBRyxJQUFJQyxHQUFHLENBQUNiLGFBQWEsQ0FBQztFQUM5QztFQUVPYyxNQUFNQSxDQUFBOztJQUNaLE9BQU9DLEtBQUssQ0FBQ0MsSUFBSSxDQUNoQixJQUFJSCxHQUFHLENBQUMsQ0FDUCxHQUFHLElBQUksQ0FBQ2IsYUFBYSxFQUNyQixHQUFHSyxNQUFNLENBQUNZLElBQUksQ0FBQyxJQUFJLENBQUNmLGFBQWEsQ0FBQ0MsTUFBTSxDQUFDLEVBQ3pDLEdBQUdFLE1BQU0sQ0FBQ1ksSUFBSSxDQUFDLENBQUFDLEVBQUEsT0FBSSxDQUFDakIsT0FBTyxDQUFDTyxHQUFHLGNBQUFVLEVBQUEsY0FBQUEsRUFBQSxHQUFJLEVBQUUsQ0FBQyxDQUN0QyxDQUFDLENBQ0Y7RUFDRjtFQUVPQyxHQUFHQSxDQUFDNUIsUUFBZ0I7O0lBQzFCLE1BQU02QixjQUFjLEdBQUcsSUFBSSxDQUFDQyxpQkFBaUIsQ0FBQzlCLFFBQVEsQ0FBQztJQUN2RCxJQUFJNkIsY0FBYyxFQUFFLE9BQU9BLGNBQWM7SUFFekM7SUFDQSxNQUFNRSxlQUFlLEdBQUcsSUFBSSxDQUFDcEIsYUFBYSxDQUFDQyxNQUFNLENBQUNaLFFBQVEsQ0FBQztJQUMzRDtJQUNBO0lBQ0EsSUFBSStCLGVBQWUsRUFDbEIsT0FBTyxDQUFBSixFQUFBLE9BQUksQ0FBQ0csaUJBQWlCLENBQUNDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFBSixFQUFBLGNBQUFBLEVBQUEsR0FBSUksZUFBZSxDQUFDLENBQUMsQ0FBQztJQUV4RTtJQUNBLElBQUksSUFBSSxDQUFDVixlQUFlLENBQUNXLEdBQUcsQ0FBQ2hDLFFBQVEsQ0FBQyxFQUNyQyxPQUFPLENBQUFpQyxFQUFBLE9BQUksQ0FBQ0gsaUJBQWlCLENBQUM5QixRQUFRLENBQUMsY0FBQWlDLEVBQUEsY0FBQUEsRUFBQSxHQUFJakMsUUFBUTtJQUVwRCxPQUFPLElBQUk7RUFDWjtFQUVROEIsaUJBQWlCQSxDQUFDOUIsUUFBZ0I7SUFDekMsTUFBTTtNQUFFaUIsR0FBRyxHQUFHO0lBQUUsQ0FBRSxHQUFHLElBQUksQ0FBQ1AsT0FBTztJQUVqQztJQUNBLE9BQU9WLFFBQVEsSUFBSWlCLEdBQUcsR0FBR0EsR0FBRyxDQUFDakIsUUFBUSxDQUFDLEdBQUcsSUFBSTtFQUM5Qzs7QUFDQU0sT0FBQSxDQUFBQyxlQUFBLEdBQUFBLGVBQUEiLCJpZ25vcmVMaXN0IjpbXX0=