@ollang-dev/sdk 0.3.4 → 0.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/index.js +29 -16
- package/dist/browser/ollang-browser.min.js +1 -1
- package/dist/browser/script-loader.js +1 -7
- package/dist/index.js +3 -2
- package/dist/logger.d.ts +6 -0
- package/dist/logger.js +30 -0
- package/dist/tms/config.js +5 -4
- package/dist/tms/multi-content-tms.js +5 -4
- package/dist/tms/server/index.js +71 -77
- package/dist/tms/tms.js +37 -42
- package/dist/tms/ui-dist/assets/{index-HvrqZV5Z.js → index-BPh6OEAp.js} +5 -5
- package/dist/tms/ui-dist/index.html +1 -1
- package/package.json +1 -1
package/dist/tms/tms.js
CHANGED
|
@@ -7,6 +7,7 @@ const video_detector_js_1 = require("./detector/video-detector.js");
|
|
|
7
7
|
const image_detector_js_1 = require("./detector/image-detector.js");
|
|
8
8
|
const audio_detector_js_1 = require("./detector/audio-detector.js");
|
|
9
9
|
const config_js_1 = require("./config.js");
|
|
10
|
+
const logger_js_1 = require("../logger.js");
|
|
10
11
|
class TranslationManagementSystem {
|
|
11
12
|
constructor(customConfig = {}) {
|
|
12
13
|
this.configManager = new config_js_1.ConfigManager();
|
|
@@ -96,7 +97,7 @@ class TranslationManagementSystem {
|
|
|
96
97
|
}
|
|
97
98
|
}
|
|
98
99
|
catch (error) {
|
|
99
|
-
|
|
100
|
+
logger_js_1.logger.error(`Error checking translation for ${text.id}`, error);
|
|
100
101
|
}
|
|
101
102
|
if (hasExistingTranslation) {
|
|
102
103
|
processedTexts.push({
|
|
@@ -188,7 +189,7 @@ class TranslationManagementSystem {
|
|
|
188
189
|
}
|
|
189
190
|
}
|
|
190
191
|
catch (error) {
|
|
191
|
-
|
|
192
|
+
logger_js_1.logger.error(`Error syncing ${text.id}`, error);
|
|
192
193
|
}
|
|
193
194
|
}
|
|
194
195
|
}
|
|
@@ -213,12 +214,7 @@ class TranslationManagementSystem {
|
|
|
213
214
|
return order;
|
|
214
215
|
}
|
|
215
216
|
catch (error) {
|
|
216
|
-
|
|
217
|
-
console.error(' Error:', error);
|
|
218
|
-
if (error instanceof Error) {
|
|
219
|
-
console.error(' Message:', error.message);
|
|
220
|
-
console.error(' Stack:', error.stack);
|
|
221
|
-
}
|
|
217
|
+
logger_js_1.logger.error('Translation failed', error);
|
|
222
218
|
this.state.lastError = error;
|
|
223
219
|
throw error;
|
|
224
220
|
}
|
|
@@ -297,47 +293,47 @@ class TranslationManagementSystem {
|
|
|
297
293
|
formData.append('name', `TMS-Document-${Date.now()}`);
|
|
298
294
|
formData.append('sourceLanguage', params.sourceLanguage);
|
|
299
295
|
if (params.folderId) {
|
|
300
|
-
|
|
296
|
+
logger_js_1.logger.debug(`Using provided folderId: ${params.folderId}`);
|
|
301
297
|
formData.append('folderId', params.folderId);
|
|
302
298
|
}
|
|
303
299
|
else if (params.folderName) {
|
|
304
|
-
|
|
300
|
+
logger_js_1.logger.debug(`Getting folderId for folder: ${params.folderName}`);
|
|
305
301
|
try {
|
|
306
302
|
const axios = require('axios');
|
|
307
303
|
const response = await axios.get('http://localhost:5972/api/folders');
|
|
308
304
|
const folders = response.data.folders || [];
|
|
309
305
|
const targetFolder = folders.find((f) => f.name === params.folderName);
|
|
310
306
|
if (targetFolder && targetFolder.id) {
|
|
311
|
-
|
|
307
|
+
logger_js_1.logger.debug(`Found folderId: ${targetFolder.id}`);
|
|
312
308
|
formData.append('folderId', targetFolder.id);
|
|
313
309
|
}
|
|
314
310
|
else {
|
|
315
|
-
|
|
311
|
+
logger_js_1.logger.warn(`Folder "${params.folderName}" not found in folders list`);
|
|
316
312
|
}
|
|
317
313
|
}
|
|
318
314
|
catch (error) {
|
|
319
|
-
|
|
315
|
+
logger_js_1.logger.error('Could not get folder list', error);
|
|
320
316
|
}
|
|
321
317
|
}
|
|
322
318
|
else if (params.projectId) {
|
|
323
|
-
|
|
319
|
+
logger_js_1.logger.debug(`Getting folder from project: ${params.projectId}`);
|
|
324
320
|
try {
|
|
325
321
|
const project = await this.ollangClient.projects.get(params.projectId);
|
|
326
322
|
if (project.folderId) {
|
|
327
|
-
|
|
323
|
+
logger_js_1.logger.debug(`Found folderId: ${project.folderId}`);
|
|
328
324
|
formData.append('folderId', project.folderId);
|
|
329
325
|
}
|
|
330
326
|
}
|
|
331
327
|
catch (error) {
|
|
332
|
-
|
|
328
|
+
logger_js_1.logger.error('Could not get project folder', error);
|
|
333
329
|
}
|
|
334
330
|
}
|
|
335
|
-
|
|
331
|
+
logger_js_1.logger.debug('Uploading document...');
|
|
336
332
|
const uploadResponse = await this.ollangClient
|
|
337
333
|
.getClient()
|
|
338
334
|
.uploadFile('/integration/upload/direct', formData);
|
|
339
335
|
const projectId = uploadResponse.projectId;
|
|
340
|
-
|
|
336
|
+
logger_js_1.logger.debug(`Document uploaded, project: ${projectId}`);
|
|
341
337
|
const orderParams = {
|
|
342
338
|
orderType: 'document',
|
|
343
339
|
level: params.level,
|
|
@@ -349,8 +345,7 @@ class TranslationManagementSystem {
|
|
|
349
345
|
},
|
|
350
346
|
],
|
|
351
347
|
};
|
|
352
|
-
|
|
353
|
-
console.log(JSON.stringify(orderParams, null, 2));
|
|
348
|
+
logger_js_1.logger.debug('Creating order with params:', orderParams);
|
|
354
349
|
const orderResponse = await this.ollangClient.orders.create(orderParams);
|
|
355
350
|
const order = {
|
|
356
351
|
id: orderResponse.id,
|
|
@@ -393,17 +388,17 @@ class TranslationManagementSystem {
|
|
|
393
388
|
documents = [order.document];
|
|
394
389
|
}
|
|
395
390
|
if (documents.length > 0) {
|
|
396
|
-
|
|
391
|
+
logger_js_1.logger.debug(`Found ${documents.length} documents`);
|
|
397
392
|
for (const doc of documents) {
|
|
398
393
|
const documentUrl = doc.targetDocumentUrl || doc.url || doc.documentUrl;
|
|
399
394
|
if (documentUrl) {
|
|
400
|
-
|
|
395
|
+
logger_js_1.logger.debug(`Downloading translated document: ${documentUrl}`);
|
|
401
396
|
const axios = require('axios');
|
|
402
397
|
const response = await axios.get(documentUrl, {
|
|
403
398
|
responseType: 'json',
|
|
404
399
|
});
|
|
405
400
|
const translatedData = response.data;
|
|
406
|
-
|
|
401
|
+
logger_js_1.logger.debug('Translated document received');
|
|
407
402
|
if (translatedData.slides && Array.isArray(translatedData.slides)) {
|
|
408
403
|
for (const slide of translatedData.slides) {
|
|
409
404
|
if (slide.textElements && Array.isArray(slide.textElements)) {
|
|
@@ -429,23 +424,23 @@ class TranslationManagementSystem {
|
|
|
429
424
|
}
|
|
430
425
|
}
|
|
431
426
|
else {
|
|
432
|
-
|
|
427
|
+
logger_js_1.logger.warn('Document URL not found in document');
|
|
433
428
|
}
|
|
434
429
|
}
|
|
435
|
-
|
|
430
|
+
logger_js_1.logger.debug(`Extracted ${this.state.translations.size} translations`);
|
|
436
431
|
}
|
|
437
432
|
else {
|
|
438
|
-
|
|
433
|
+
logger_js_1.logger.debug('No documents found in order, trying alternative methods...');
|
|
439
434
|
if (order.projectId) {
|
|
440
|
-
|
|
435
|
+
logger_js_1.logger.debug(`Fetching documents from project: ${order.projectId}`);
|
|
441
436
|
try {
|
|
442
437
|
const project = await this.ollangClient.projects.get(order.projectId);
|
|
443
|
-
|
|
438
|
+
logger_js_1.logger.debug('Project structure received');
|
|
444
439
|
if (project.targetDocuments && project.targetDocuments.length > 0) {
|
|
445
440
|
const targetDoc = project.targetDocuments[0];
|
|
446
441
|
const documentUrl = targetDoc.url || targetDoc.documentUrl;
|
|
447
442
|
if (documentUrl) {
|
|
448
|
-
|
|
443
|
+
logger_js_1.logger.debug(`Downloading from project: ${documentUrl}`);
|
|
449
444
|
const axios = require('axios');
|
|
450
445
|
const response = await axios.get(documentUrl, {
|
|
451
446
|
responseType: 'json',
|
|
@@ -472,7 +467,7 @@ class TranslationManagementSystem {
|
|
|
472
467
|
}
|
|
473
468
|
}
|
|
474
469
|
catch (error) {
|
|
475
|
-
|
|
470
|
+
logger_js_1.logger.error('Error fetching from project', error);
|
|
476
471
|
}
|
|
477
472
|
}
|
|
478
473
|
if (this.state.translations.size === 0) {
|
|
@@ -490,7 +485,7 @@ class TranslationManagementSystem {
|
|
|
490
485
|
}
|
|
491
486
|
}
|
|
492
487
|
catch (error) {
|
|
493
|
-
|
|
488
|
+
logger_js_1.logger.error('Error extracting translations', error);
|
|
494
489
|
throw error;
|
|
495
490
|
}
|
|
496
491
|
}
|
|
@@ -582,7 +577,7 @@ class TranslationManagementSystem {
|
|
|
582
577
|
const absoluteFilePath = path.resolve(this.config.projectRoot, filePath);
|
|
583
578
|
if (!absoluteFilePath.startsWith(path.resolve(this.config.projectRoot) + path.sep) &&
|
|
584
579
|
absoluteFilePath !== path.resolve(this.config.projectRoot)) {
|
|
585
|
-
|
|
580
|
+
logger_js_1.logger.warn(`Skipping path outside project root: ${filePath}`);
|
|
586
581
|
continue;
|
|
587
582
|
}
|
|
588
583
|
const key = afterJson.substring(1);
|
|
@@ -590,12 +585,12 @@ class TranslationManagementSystem {
|
|
|
590
585
|
fileGroups.set(filePath, new Map());
|
|
591
586
|
}
|
|
592
587
|
fileGroups.get(filePath).set(key, translation.translatedText);
|
|
593
|
-
|
|
588
|
+
logger_js_1.logger.debug(`Mapped: ${key} -> ${filePath}`);
|
|
594
589
|
}
|
|
595
590
|
}
|
|
596
591
|
}
|
|
597
592
|
}
|
|
598
|
-
|
|
593
|
+
logger_js_1.logger.debug(`Found ${fileGroups.size} files to update`);
|
|
599
594
|
let updatedFiles = 0;
|
|
600
595
|
for (const [originalFilePath, translations] of fileGroups) {
|
|
601
596
|
try {
|
|
@@ -603,10 +598,10 @@ class TranslationManagementSystem {
|
|
|
603
598
|
const absoluteTargetPath = path.resolve(this.config.projectRoot, targetFilePath);
|
|
604
599
|
if (!absoluteTargetPath.startsWith(path.resolve(this.config.projectRoot) + path.sep) &&
|
|
605
600
|
absoluteTargetPath !== path.resolve(this.config.projectRoot)) {
|
|
606
|
-
|
|
601
|
+
logger_js_1.logger.warn(`Skipping target path outside project root: ${targetFilePath}`);
|
|
607
602
|
continue;
|
|
608
603
|
}
|
|
609
|
-
|
|
604
|
+
logger_js_1.logger.debug(`Processing: ${targetFilePath}`);
|
|
610
605
|
const targetDir = path.dirname(absoluteTargetPath);
|
|
611
606
|
await fs.mkdir(targetDir, { recursive: true });
|
|
612
607
|
let existingContent = {};
|
|
@@ -615,7 +610,7 @@ class TranslationManagementSystem {
|
|
|
615
610
|
existingContent = JSON.parse(content);
|
|
616
611
|
}
|
|
617
612
|
catch (error) {
|
|
618
|
-
|
|
613
|
+
logger_js_1.logger.debug(`Creating new file: ${targetFilePath}`);
|
|
619
614
|
}
|
|
620
615
|
for (const [key, value] of translations) {
|
|
621
616
|
const keys = key.split('.');
|
|
@@ -629,16 +624,16 @@ class TranslationManagementSystem {
|
|
|
629
624
|
current[keys[keys.length - 1]] = value;
|
|
630
625
|
}
|
|
631
626
|
await fs.writeFile(absoluteTargetPath, JSON.stringify(existingContent, null, 2) + '\n', 'utf-8');
|
|
632
|
-
|
|
627
|
+
logger_js_1.logger.debug(`Updated: ${targetFilePath} (${translations.size} keys)`);
|
|
633
628
|
updatedFiles++;
|
|
634
629
|
}
|
|
635
630
|
catch (error) {
|
|
636
|
-
|
|
631
|
+
logger_js_1.logger.error(`Error updating ${originalFilePath}`, error);
|
|
637
632
|
}
|
|
638
633
|
}
|
|
639
|
-
|
|
634
|
+
logger_js_1.logger.debug(`Applied translations to ${updatedFiles} files`);
|
|
640
635
|
if (this.state.imageTranslations && this.state.imageTranslations.size > 0) {
|
|
641
|
-
|
|
636
|
+
logger_js_1.logger.debug(`Applying ${this.state.imageTranslations.size} image translations...`);
|
|
642
637
|
for (const [imageId, translation] of this.state.imageTranslations) {
|
|
643
638
|
if (translation.targetLanguage !== targetLanguage) {
|
|
644
639
|
continue;
|
|
@@ -698,7 +693,7 @@ class TranslationManagementSystem {
|
|
|
698
693
|
await fs.writeFile(filePath, content, 'utf-8');
|
|
699
694
|
}
|
|
700
695
|
catch (error) {
|
|
701
|
-
|
|
696
|
+
logger_js_1.logger.error(`Error replacing URL in ${filePath}`, error);
|
|
702
697
|
throw error;
|
|
703
698
|
}
|
|
704
699
|
}
|