import axios from "axios"; import FormData from "form-data"; import fs from "fs-extra"; // POEditor API information const API_TOKEN = process.env.POEDITOR_API; const PROJECT_ID = process.env.POEDITOR_PROJECT_ID; const FILE_PATH = process.env.FILE_PATH; const LANGUAGE = process.env.LANGUAGE; // POEditor API endpoint const API_URL = 'https://api.poeditor.com/v2'; // Function to upload translations async function uploadTranslations() { try { console.log(`Uploading translations for ${LANGUAGE} language from ${FILE_PATH}... test1`); // Check if file exists if (!await fs.pathExists(FILE_PATH)) { throw new Error(`File not found: ${FILE_PATH}`); } // Read file content const fileContent = await fs.readFile(FILE_PATH, 'utf8'); // Validate JSON format try { JSON.parse(fileContent); } catch (error) { throw new Error(`Invalid JSON format in ${FILE_PATH}: ${error.message}`); } // Create form data for upload const formData = new FormData(); formData.append('api_token', API_TOKEN); formData.append('id', PROJECT_ID); formData.append('language', LANGUAGE); formData.append('updating', 'terms_translations'); formData.append('file', fs.createReadStream(FILE_PATH)); formData.append('overwrite', '1'); formData.append('sync_terms', '1'); // Upload to POEditor const response = await axios.post(`${API_URL}/projects/upload`, formData, { headers: { 'Content-Type': 'application/x-www-form-urlencoded', } }); if (response.data.response.status !== 'success') { throw new Error(`Failed to upload translations: ${JSON.stringify(response.data)}`); } console.log(`Successfully uploaded translations for ${LANGUAGE} language.`); console.log(`Statistics: ${JSON.stringify(response.data.result)}`); } catch (error) { console.error('An error occurred while uploading translations:', error); process.exit(1); } } // Run script uploadTranslations();