UNPKG

translate-table

Version:

A powerful CLI tool for translating PostgreSQL table content to multiple languages and generating translations for internationalization (i18n).

57 lines 2.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.translateText = translateText; const google_translate_api_x_1 = require("google-translate-api-x"); /** * Translates text values to multiple languages using Google Translate API * * @param values - The items with ID and name to be translated * @param languagesToTranslate - Target language codes (e.g. ['en', 'es']) * @param defaultLanguage - Source language code (default: 'en') * @returns Promise with array of translations */ async function translateText(values, languagesToTranslate, defaultLanguage = "en") { // Check if there's data to translate if (!values.length || !languagesToTranslate.length) { return []; } try { // Extract only the names for translation const textsToTranslate = values.map((value) => value.name); // Create an array of promises to translate for each language const translationPromises = languagesToTranslate.map(async (language) => { try { // Translate all texts for current language const translations = await (0, google_translate_api_x_1.translate)(textsToTranslate, { from: defaultLanguage, to: language, forceTo: true, autoCorrect: true, }); // Map results to output format return translations.map((translation, index) => ({ itemId: values[index].id, text: translation.text, language, })); } catch (error) { // Log error for specific language and return original text console.error(`Translation error for language ${language}:`, error); return values.map((value) => ({ itemId: value.id, text: value.name, // Keep original text in case of error language, })); } }); // Wait for all translations and combine results const translationResults = await Promise.all(translationPromises); return translationResults.flat(); } catch (error) { console.error("Translation failed:", error); throw new Error(`Failed to translate texts: ${error.message}`); } } //# sourceMappingURL=translate.js.map