auto-translate-json-library
Version:
Automatically translates JSON language files to other languages using Google Translate,AWS,Azure,DeepL,OpenAI or local OpenAI compatible server
132 lines (131 loc) • 3.08 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.AWSTranslate = void 0;
const client_translate_1 = require("@aws-sdk/client-translate");
const util_1 = require("./util");
const supportedLanguages = [
"af",
"sq",
"am",
"ar",
"hy",
"az",
"bn",
"bs",
"bg",
"ca",
"zh",
"zh-TW",
"hr",
"cs",
"da",
"fa-AF",
"nl",
"en",
"et",
"fa",
"tl",
"fi",
"fr",
"fr-CA",
"ka",
"de",
"el",
"gu",
"ht",
"ha",
"he",
"hi",
"hu",
"is",
"id",
"ga",
"it",
"ja",
"kn",
"kk",
"ko",
"lv",
"lt",
"mk",
"ms",
"ml",
"mt",
"mr",
"mn",
"no",
"ps",
"pl",
"pt",
"pt-PT",
"pa",
"ro",
"ru",
"sr",
"si",
"sk",
"sl",
"so",
"es",
"es-MX",
"sw",
"sv",
"ta",
"te",
"th",
"tr",
"uk",
"ur",
"uz",
"vi",
"cy",
];
class AWSTranslate {
constructor(accessKeyId, secretAccessKey, regions) {
this.accessKeyId = accessKeyId;
this.secretAccessKey = secretAccessKey;
this.regions = regions;
this.client = new client_translate_1.Translate({
credentials: {
accessKeyId: this.accessKeyId,
secretAccessKey: this.secretAccessKey,
},
region: this.regions,
});
}
isValidLocale(targetLocale) {
return supportedLanguages.includes(targetLocale);
}
translateText(text, sourceLocale, targetLocale) {
return __awaiter(this, void 0, void 0, function* () {
let args;
({ args, text } = util_1.Util.replaceContextVariables(text));
let result = "";
const params = {
SourceLanguageCode: sourceLocale,
TargetLanguageCode: targetLocale,
Text: text,
};
try {
const translation = yield this.client.translateText(params);
result = translation.TranslatedText;
}
catch (error) {
console.error(error);
return "";
}
result = util_1.Util.replaceArgumentsWithNumbers(args, result);
return result;
});
}
}
exports.AWSTranslate = AWSTranslate;