UNPKG

auto-translatr

Version:
67 lines (66 loc) 3.59 kB
"use strict"; 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.run = exports.parseCodeBaseTranslations = void 0; const utils_1 = require("./utils"); const translationsReader_1 = require("./translationsReader"); const translationsParser_1 = require("./translationsParser"); const openaiClient_1 = require("./openaiClient"); const codebaseReader_1 = require("./codebaseReader"); const settingsReader_1 = require("./settingsReader"); const parseCodeBaseTranslations = (settings) => __awaiter(void 0, void 0, void 0, function* () { const codebaseConfig = { include: settings.include, ignore: settings.ignore }; const translationConfig = { output: settings.output }; const readResult = yield (0, codebaseReader_1.read)(codebaseConfig); if ((0, utils_1.isLeft)(readResult)) { console.error('❌ Error parsing codebase translations:', readResult.value.message); throw readResult.value; } const defaultTranslations = readResult.value; const writeResult = (0, translationsReader_1.writeLanguageFile)(settings.default, defaultTranslations, translationConfig, { append: false }); if ((0, utils_1.isLeft)(writeResult)) { console.error('❌ Failed to write translation file:', writeResult.value.message); throw writeResult.value; } console.log(`✅ Successfully updated ${settings.default}.json with ${Object.keys(defaultTranslations).length} translations`); console.log(`📍 Translation file location: ./${settings.output}/${settings.default}.json`); }); exports.parseCodeBaseTranslations = parseCodeBaseTranslations; const translate = (settings) => __awaiter(void 0, void 0, void 0, function* () { const translationConfig = { output: settings.output }; yield (0, translationsParser_1.addMissingTranslations)(settings.default, { reader: () => Promise.resolve((0, translationsReader_1.readAllTranslations)(settings.supported, translationConfig)), writer: (translations) => (0, translationsReader_1.writeLanguageFiles)(translations, translationConfig, { append: true }), translator: (text) => (0, openaiClient_1.prompt)(text, settings.openai.model, settings.openai.apiKey) }); }); const run = () => __awaiter(void 0, void 0, void 0, function* () { const settingsResult = yield (0, settingsReader_1.initializeSettings)(); if ((0, utils_1.isLeft)(settingsResult)) { console.error('❌ Failed to load settings:', settingsResult.value.message); throw settingsResult.value; } const settings = settingsResult.value; console.log(`🌍 Auto-translating from ${settings.default} to: ${settings.supported.filter((lang) => lang !== settings.default).join(', ')}`); yield (0, exports.parseCodeBaseTranslations)(settings); yield translate(settings); }); exports.run = run; exports.default = { run: exports.run };