mirror of
https://github.com/bluewave-labs/Checkmate.git
synced 2025-12-31 14:49:36 -06:00
65 lines
2.0 KiB
JavaScript
65 lines
2.0 KiB
JavaScript
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();
|