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
158 lines (157 loc) • 5.86 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.translate = void 0;
const lib_1 = require("./lib");
Object.defineProperty(exports, "translate", { enumerable: true, get: function () { return lib_1.translate; } });
const config = {};
setDefaultConfiguration();
console.log(config);
try {
setConfigurationFromEnvironment();
}
catch (error) {
console.log(config);
console.log(error);
}
try {
setConfigurationFromCLI();
}
catch (error) {
console.log(config);
console.log(error);
}
function setConfigurationFromCLI() {
const argv = require("yargs").argv;
if (argv === undefined) {
console.log("No arguments provided in CLI");
return;
}
if (argv.mode === "file") {
config.mode = "file";
}
else if (argv.mode === "folder") {
config.mode = "folder";
}
if (argv.startDelimiter !== undefined) {
config.startDelimiter = argv.startDelimiter;
}
if (argv.endDelimiter !== undefined) {
config.endDelimiter = argv.endDelimiter;
}
if (argv.keepExtraTranslations === "keep") {
config.keepExtraTranslations = "keep";
}
else if (argv.keepExtraTranslations === "remove") {
config.keepExtraTranslations = "remove";
}
if (argv.keepTranslations === "keep") {
config.keepTranslations = "keep";
}
else if (argv.keepTranslations === "retranslate") {
config.keepTranslations = "retranslate";
}
if (argv.sourceLocale !== undefined) {
config.sourceLocale = argv.sourceLocale;
}
if (argv.ignorePrefix !== undefined) {
config.ignorePrefix = argv.ignorePrefix;
}
if (argv.pivotTranslation !== undefined) {
(0, lib_1.translate)(argv.pivotTranslation, config);
}
else {
console.log(argv);
console.log("Please provide a pivot translation");
}
}
function setDefaultConfiguration() {
config.mode = "file";
config.startDelimiter = "{";
config.endDelimiter = "}";
config.keepExtraTranslations = "keep";
config.keepTranslations = "keep";
config.sourceLocale = "en";
config.ignorePrefix = "";
}
function setConfigurationFromEnvironment() {
var _a, _b, _c, _d, _e, _f, _g, _h;
require("dotenv").config();
if (process.env.ATJ_GOOGLE_API_KEY) {
config.translationKeyInfo = {
kind: "google",
apiKey: process.env.ATJ_GOOGLE_API_KEY,
};
}
if (process.env.ATJ_AWS_ACCESS_KEY_ID &&
process.env.ATJ_AWS_SECRET_ACCESS_KEY &&
process.env.ATJ_AWS_REGION) {
config.translationKeyInfo = {
kind: "aws",
accessKeyId: process.env.ATJ_AWS_ACCESS_KEY_ID,
secretAccessKey: process.env.ATJ_AWS_SECRET_ACCESS_KEY,
region: process.env.ATJ_AWS_REGION,
};
}
if (process.env.ATJ_AZURE_SECRET_KEY && process.env.ATJ_AZURE_REGION) {
config.translationKeyInfo = {
kind: "azure",
secretKey: process.env.ATJ_AZURE_SECRET_KEY,
region: process.env.ATJ_AZURE_REGION,
};
}
if (process.env.ATJ_DEEPL_PRO_SECRET_KEY) {
config.translationKeyInfo = {
kind: "deepLPro",
secretKey: process.env.ATJ_DEEPL_PRO_SECRET_KEY,
};
}
if (process.env.ATJ_DEEPL_FREE_SECRET_KEY) {
config.translationKeyInfo = {
kind: "deepLFree",
secretKey: process.env.ATJ_DEEPL_FREE_SECRET_KEY,
};
}
if (process.env.ATJ_OPEN_AI_SECRET_KEY) {
config.translationKeyInfo = {
kind: "openai",
apiKey: process.env.ATJ_OPEN_AI_SECRET_KEY,
baseUrl: (_a = process.env.ATJ_OPEN_AI_BASE_URL) !== null && _a !== void 0 ? _a : "https://api.openai.com/v1",
model: (_b = process.env.ATJ_OPEN_AI_MODEL) !== null && _b !== void 0 ? _b : "gpt-3.5-turbo",
maxTokens: Number((_c = process.env.ATJ_OPEN_AI_MAX_TOKENS) !== null && _c !== void 0 ? _c : "256"),
temperature: Number((_d = process.env.ATJ_OPEN_AI_TEMPERATURE) !== null && _d !== void 0 ? _d : "0.7"),
topP: Number((_e = process.env.ATJ_OPEN_AI_TOP_P) !== null && _e !== void 0 ? _e : "0.9"),
n: Number((_f = process.env.ATJ_OPEN_AI_N) !== null && _f !== void 0 ? _f : "1"),
frequencyPenalty: Number((_g = process.env.ATJ_OPEN_AI_FREQUENCY_PENALTY) !== null && _g !== void 0 ? _g : "0"),
presencePenalty: Number((_h = process.env.ATJ_OPEN_AI_PRESENCE_PENALTY) !== null && _h !== void 0 ? _h : "0"),
};
}
if (process.env.ATJ_START_DELIMITER) {
config.startDelimiter = process.env.ATJ_START_DELIMITER;
}
if (process.env.ATJ_END_DELIMITER) {
config.endDelimiter = process.env.ATJ_END_DELIMITER;
}
if (process.env.ATJ_END_DELIMITER) {
config.endDelimiter = process.env.ATJ_END_DELIMITER;
}
if (process.env.ATJ_MODE &&
(process.env.ATJ_MODE === "file" || process.env.ATJ_MODE === "folder")) {
config.mode = process.env.ATJ_MODE;
}
if (process.env.ATJ_SOURCE_LOCALE) {
config.sourceLocale = process.env.ATJ_SOURCE_LOCALE;
}
if (process.env.ATJ_KEEP_TRANSLATIONS &&
(process.env.ATJ_KEEP_TRANSLATIONS === "keep" ||
process.env.ATJ_KEEP_TRANSLATIONS === "retranslate")) {
config.keepTranslations = process.env.ATJ_KEEP_TRANSLATIONS;
}
if (process.env.ATJ_KEEP_EXTRA_TRANSLATIONS &&
(process.env.ATJ_KEEP_EXTRA_TRANSLATIONS === "keep" ||
process.env.ATJ_KEEP_EXTRA_TRANSLATIONS === "remove")) {
config.keepExtraTranslations = process.env.ATJ_KEEP_EXTRA_TRANSLATIONS;
}
if (process.env.ATJ_IGNORE_PREFIX && process.env.ATJ_IGNORE_PREFIX !== "") {
config.ignorePrefix = process.env.ATJ_IGNORE_PREFIX;
}
}