i18ntk 4.1.0 → 4.2.1
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/CHANGELOG.md +64 -5
- package/README.md +73 -17
- package/SECURITY.md +10 -4
- package/main/i18ntk-analyze.js +10 -20
- package/main/i18ntk-backup.js +106 -44
- package/main/i18ntk-init.js +153 -157
- package/main/i18ntk-setup.js +36 -13
- package/main/i18ntk-sizing.js +44 -27
- package/main/i18ntk-translate.js +311 -41
- package/main/i18ntk-usage.js +272 -103
- package/main/i18ntk-validate.js +38 -31
- package/main/manage/commands/AnalyzeCommand.js +7 -17
- package/main/manage/commands/CommandRouter.js +6 -6
- package/main/manage/commands/SizingCommand.js +5 -2
- package/main/manage/commands/TranslateCommand.js +73 -56
- package/main/manage/commands/ValidateCommand.js +58 -26
- package/main/manage/index.js +11 -42
- package/main/manage/managers/InteractiveMenu.js +11 -40
- package/main/manage/services/InitService.js +114 -118
- package/main/manage/services/UsageService.js +247 -96
- package/package.json +19 -14
- package/runtime/enhanced.d.ts +5 -5
- package/runtime/enhanced.js +49 -25
- package/runtime/i18ntk.d.ts +30 -7
- package/runtime/index.d.ts +48 -19
- package/runtime/index.js +175 -90
- package/settings/settings-cli.js +115 -38
- package/settings/settings-manager.js +24 -6
- package/ui-locales/de.json +192 -11
- package/ui-locales/en.json +182 -8
- package/ui-locales/es.json +193 -12
- package/ui-locales/fr.json +189 -8
- package/ui-locales/ja.json +190 -8
- package/ui-locales/ru.json +191 -9
- package/ui-locales/zh.json +194 -9
- package/utils/cli-helper.js +8 -12
- package/utils/config-helper.js +1 -1
- package/utils/config-manager.js +8 -6
- package/utils/localized-confirm.js +55 -0
- package/utils/menu-layout.js +41 -0
- package/utils/report-writer.js +110 -0
- package/utils/security.js +15 -22
- package/utils/translate/api.js +31 -3
- package/utils/translate/placeholder.js +42 -1
- package/utils/translate/report.js +32 -4
- package/utils/translate/safe-network.js +24 -4
- package/utils/usage-insights.js +435 -0
- package/utils/usage-source.js +50 -0
- package/utils/watch-locales.js +1 -8
package/ui-locales/en.json
CHANGED
|
@@ -536,7 +536,7 @@
|
|
|
536
536
|
"argsParseFailed": "Argument parsing failed: {error}",
|
|
537
537
|
"translationDiscoveryError": "Translation discovery error: {error}",
|
|
538
538
|
"fileTraversalError": "File traversal error: {error}",
|
|
539
|
-
"sourceEqualsI18nWarn": "
|
|
539
|
+
"sourceEqualsI18nWarn": "{reason}. Usage analysis will not scan locale files as source code.",
|
|
540
540
|
"i18nEqualsSourceWarn": "⚠️ I18n directory and source directory are the same. This may cause issues with the analysis.",
|
|
541
541
|
"usageAnalysisFailed": "⚠️ Usage analysis failed: {error}",
|
|
542
542
|
"translationFileParseError": "⚠️ Translation file parse error: {error}",
|
|
@@ -642,7 +642,8 @@
|
|
|
642
642
|
"failedToSaveReport": "Failed to save usage report: {error}",
|
|
643
643
|
"i18nDirectoryDoesNotExist": "I18n directory does not exist: {dir}",
|
|
644
644
|
"reportSavedTo": "Usage report saved to: {reportPath}",
|
|
645
|
-
"sourceDirectoryDoesNotExist": "Source directory does not exist: {dir}"
|
|
645
|
+
"sourceDirectoryDoesNotExist": "Source directory does not exist: {dir}",
|
|
646
|
+
"noSourceDirectoryConfigured": "(none configured)"
|
|
646
647
|
},
|
|
647
648
|
"validate": {
|
|
648
649
|
"help_message": "I18n Translation Validator Usage: node i18ntk-validate.js [options] Options: --source-dir <dir> Source directory to scan (default: ./src) --i18n-dir <dir> I18n directory (default: ./src/locales) --output-report Generate detailed report --output-dir <dir> Output directory for reports (default: ./reports) --help Show this help Examples: node i18ntk-validate.js --output-report node i18ntk-validate.js --source-dir=./app --i18n-dir=./locales node i18ntk-validate.js --output-dir=./analysis --output-report",
|
|
@@ -922,7 +923,7 @@
|
|
|
922
923
|
"summaryCommand": "summary - Show project status",
|
|
923
924
|
"debugCommand": "debug - Debug translation issues",
|
|
924
925
|
"scannerCommand": "scanner - Scan for keys",
|
|
925
|
-
"translateCommand": "translate - Auto-translate locale files
|
|
926
|
+
"translateCommand": "translate - Auto-translate locale files",
|
|
926
927
|
"menu": {
|
|
927
928
|
"pressEnterToContinue": "Press Enter to continue...",
|
|
928
929
|
"title": "🌐 I18NTK MANAGEMENT MENU",
|
|
@@ -1102,7 +1103,32 @@
|
|
|
1102
1103
|
"translationFilesCreatedWarning": "Translation files were created with placeholders; review before production use.",
|
|
1103
1104
|
"warningCannotReadSourceDir": "Warning: cannot read source directory {dir}: {error}",
|
|
1104
1105
|
"warningInvalidLanguageCodes": "Warning: invalid language codes ignored: {languages}",
|
|
1105
|
-
"warningProceedingWithoutFramework": "Proceeding without detected i18n framework."
|
|
1106
|
+
"warningProceedingWithoutFramework": "Proceeding without detected i18n framework.",
|
|
1107
|
+
"backup": {
|
|
1108
|
+
"title": "Backup Settings",
|
|
1109
|
+
"description": "Backups are disabled by default to avoid backup recursion and repo pollution.",
|
|
1110
|
+
"enablePrompt": "Enable automatic backups? (y/N): ",
|
|
1111
|
+
"keepPrompt": "How many backups should be kept automatically (1-3, default 1): "
|
|
1112
|
+
},
|
|
1113
|
+
"completionSummaryTitle": "Completion Summary",
|
|
1114
|
+
"completionSummaryBasicTitle": "Completion Summary (Basic)",
|
|
1115
|
+
"totalChanges": "Total changes: {count}",
|
|
1116
|
+
"languagesProcessed": "Languages processed: {count}",
|
|
1117
|
+
"missingKeysAdded": "Missing keys added: {count}",
|
|
1118
|
+
"reportPrompt": "Would you like a report generated? (Y/n): ",
|
|
1119
|
+
"reportGenerated": "Report generated: {reportPath}",
|
|
1120
|
+
"reportFailed": "Failed to generate report: {error}",
|
|
1121
|
+
"completionError": "Error during completion: {error}",
|
|
1122
|
+
"optimize": {
|
|
1123
|
+
"title": "Package size optimization",
|
|
1124
|
+
"preview": "Running locale optimization preview...",
|
|
1125
|
+
"reduceTip": "You can reduce package size by selecting only the languages you need.",
|
|
1126
|
+
"prompt": "Would you like to run interactive optimization now? (y/n): ",
|
|
1127
|
+
"starting": "Starting interactive locale optimization...",
|
|
1128
|
+
"completed": "Package optimization completed.",
|
|
1129
|
+
"later": "You can run locale optimization later with:",
|
|
1130
|
+
"unavailable": "Could not offer locale optimization: {error}"
|
|
1131
|
+
}
|
|
1106
1132
|
},
|
|
1107
1133
|
"language": {
|
|
1108
1134
|
"title": "🌍 Change Language",
|
|
@@ -1147,7 +1173,7 @@
|
|
|
1147
1173
|
"sizing": "📏 Analyze sizing",
|
|
1148
1174
|
"fix": "🛠️ Fix placeholder translations",
|
|
1149
1175
|
"scanner": "🔍 Scan for i18n issues",
|
|
1150
|
-
"translate": "🌐 Auto Translate
|
|
1176
|
+
"translate": "🌐 Auto Translate",
|
|
1151
1177
|
"workflow": "🔄 Run full workflow",
|
|
1152
1178
|
"status": "📋 Show project status",
|
|
1153
1179
|
"delete": "🗑️ Delete all reports",
|
|
@@ -1447,7 +1473,9 @@
|
|
|
1447
1473
|
"securitySettings": "Security Settings",
|
|
1448
1474
|
"securitySettingsDesc": "Admin PIN and other security options",
|
|
1449
1475
|
"backupSettings": "Backup Settings",
|
|
1450
|
-
"backupSettingsDesc": "Backup and restore configuration settings"
|
|
1476
|
+
"backupSettingsDesc": "Backup and restore configuration settings",
|
|
1477
|
+
"autoTranslate": "Auto Translate",
|
|
1478
|
+
"autoTranslateDesc": "Tune placeholder handling, concurrency, batching, and reports"
|
|
1451
1479
|
},
|
|
1452
1480
|
"updatePackage": {
|
|
1453
1481
|
"title": "Update Package",
|
|
@@ -1569,7 +1597,8 @@
|
|
|
1569
1597
|
"processingSettings": "Processing Settings",
|
|
1570
1598
|
"advancedSettings": "Advanced Settings",
|
|
1571
1599
|
"scriptDirectorySettings": "Script Directory Settings",
|
|
1572
|
-
"securitySettings": "Security Settings"
|
|
1600
|
+
"securitySettings": "Security Settings",
|
|
1601
|
+
"autoTranslate": "Auto Translate Settings"
|
|
1573
1602
|
},
|
|
1574
1603
|
"security": {
|
|
1575
1604
|
"title": "🔐 Security Settings",
|
|
@@ -1893,6 +1922,70 @@
|
|
|
1893
1922
|
},
|
|
1894
1923
|
"${helperKey}": {
|
|
1895
1924
|
"help": "Help"
|
|
1925
|
+
},
|
|
1926
|
+
"reports_format": {
|
|
1927
|
+
"label": "Report Format",
|
|
1928
|
+
"help": "Choose markdown for readable reports, json for automation, or text for plain logs."
|
|
1929
|
+
},
|
|
1930
|
+
"autoTranslate_placeholderMode": {
|
|
1931
|
+
"label": "Placeholder handling mode",
|
|
1932
|
+
"help": "How placeholder-bearing strings are handled during auto translation."
|
|
1933
|
+
},
|
|
1934
|
+
"autoTranslate_concurrency": {
|
|
1935
|
+
"label": "Concurrent translation requests",
|
|
1936
|
+
"help": "Maximum concurrent provider requests. Google supports up to 100 in i18ntk; DeepL and LibreTranslate are capped lower."
|
|
1937
|
+
},
|
|
1938
|
+
"autoTranslate_batchSize": {
|
|
1939
|
+
"label": "Text segments per batch",
|
|
1940
|
+
"help": "Number of text segments scheduled per batch."
|
|
1941
|
+
},
|
|
1942
|
+
"autoTranslate_progressInterval": {
|
|
1943
|
+
"label": "Progress update interval",
|
|
1944
|
+
"help": "Completed text segments between progress updates."
|
|
1945
|
+
},
|
|
1946
|
+
"autoTranslate_retryCount": {
|
|
1947
|
+
"label": "Retry count",
|
|
1948
|
+
"help": "Maximum retries per failed request."
|
|
1949
|
+
},
|
|
1950
|
+
"autoTranslate_retryDelay": {
|
|
1951
|
+
"label": "Retry delay (ms)",
|
|
1952
|
+
"help": "Base retry delay in milliseconds."
|
|
1953
|
+
},
|
|
1954
|
+
"autoTranslate_timeout": {
|
|
1955
|
+
"label": "Request timeout (ms)",
|
|
1956
|
+
"help": "Translation provider request timeout."
|
|
1957
|
+
},
|
|
1958
|
+
"autoTranslate_dryRunFirst": {
|
|
1959
|
+
"label": "Dry-run preview first",
|
|
1960
|
+
"help": "Preview what will be translated before writing files."
|
|
1961
|
+
},
|
|
1962
|
+
"autoTranslate_onlyMissingOrEnglish": {
|
|
1963
|
+
"label": "Only missing or English keys",
|
|
1964
|
+
"help": "Keep existing translated target values and translate only missing, marker, source-copy, or likely English values."
|
|
1965
|
+
},
|
|
1966
|
+
"autoTranslate_reportStdout": {
|
|
1967
|
+
"label": "Print report to terminal",
|
|
1968
|
+
"help": "Print the post-translation report to stdout."
|
|
1969
|
+
},
|
|
1970
|
+
"autoTranslate_bom": {
|
|
1971
|
+
"label": "Write UTF-8 BOM",
|
|
1972
|
+
"help": "Write translated JSON files with a UTF-8 BOM."
|
|
1973
|
+
},
|
|
1974
|
+
"autoTranslate_protectionEnabled": {
|
|
1975
|
+
"label": "Protect brand terms, keys, values",
|
|
1976
|
+
"help": "Enable user-editable protected terms, keys, values, and patterns."
|
|
1977
|
+
},
|
|
1978
|
+
"autoTranslate_protectionFile": {
|
|
1979
|
+
"label": "Protection JSON file",
|
|
1980
|
+
"help": "Project JSON file containing Auto Translate protection rules."
|
|
1981
|
+
},
|
|
1982
|
+
"autoTranslate_promptProtectionSetup": {
|
|
1983
|
+
"label": "Ask to create protection file",
|
|
1984
|
+
"help": "Ask to create the protection file when Auto Translate first runs."
|
|
1985
|
+
},
|
|
1986
|
+
"autoTranslate_promptProtectionUpdate": {
|
|
1987
|
+
"label": "Ask to update protection rules",
|
|
1988
|
+
"help": "Ask whether to update protection rules before manager translations."
|
|
1896
1989
|
}
|
|
1897
1990
|
},
|
|
1898
1991
|
"actions": {
|
|
@@ -2111,7 +2204,7 @@
|
|
|
2111
2204
|
"completeCommand": "complete - Complete translations (100% coverage)",
|
|
2112
2205
|
"summaryCommand": "summary - Show project status",
|
|
2113
2206
|
"scannerCommand": "scanner - Scan for i18n issues",
|
|
2114
|
-
"translateCommand": "translate - Auto-translate locale files
|
|
2207
|
+
"translateCommand": "translate - Auto-translate locale files",
|
|
2115
2208
|
"debugCommand": "debug - Debug translation issues"
|
|
2116
2209
|
},
|
|
2117
2210
|
"test_complete_system": {
|
|
@@ -2409,5 +2502,86 @@
|
|
|
2409
2502
|
"pressEnterToContinue": "Press Enter to continue...",
|
|
2410
2503
|
"status": {
|
|
2411
2504
|
"exitingCompleted": "Workflow completed. Exiting..."
|
|
2505
|
+
},
|
|
2506
|
+
"prompt": {
|
|
2507
|
+
"yesTokens": [
|
|
2508
|
+
"y",
|
|
2509
|
+
"yes"
|
|
2510
|
+
],
|
|
2511
|
+
"noTokens": [
|
|
2512
|
+
"n",
|
|
2513
|
+
"no"
|
|
2514
|
+
]
|
|
2515
|
+
},
|
|
2516
|
+
"translate": {
|
|
2517
|
+
"title": "Auto Translate",
|
|
2518
|
+
"sourceDirectory": {
|
|
2519
|
+
"title": "Source locale directory",
|
|
2520
|
+
"currentProject": "Current project: {dir}",
|
|
2521
|
+
"accepted": "Accepted: an absolute path, or a path relative to the current project.",
|
|
2522
|
+
"localeRootExample": "./locales (then choose source language: en)",
|
|
2523
|
+
"folderHint": "The folder can contain JSON files directly, or language folders such as ./locales/en.",
|
|
2524
|
+
"defaultNotFound": "Default directory not found: {dir}",
|
|
2525
|
+
"enterExisting": "Please enter an existing directory with JSON locale files.",
|
|
2526
|
+
"directoryNotFound": "Directory not found: {dir}",
|
|
2527
|
+
"enterFolderExample": "Enter an existing folder, for example ./locales/en.",
|
|
2528
|
+
"notDirectory": "Not a directory: {dir}",
|
|
2529
|
+
"using": "Using source directory: {dir}"
|
|
2530
|
+
},
|
|
2531
|
+
"targetLanguages": {
|
|
2532
|
+
"title": "Target language(s)",
|
|
2533
|
+
"allConfigured": "a) All configured target languages: {languages}",
|
|
2534
|
+
"noneConfigured": "a) All configured target languages: none configured",
|
|
2535
|
+
"enterCodes": "Or enter one or more comma/space-separated language codes.",
|
|
2536
|
+
"sourceExcluded": "Source language \"{lang}\" will be excluded automatically.",
|
|
2537
|
+
"noneSelected": "No valid target languages selected. Aborting.",
|
|
2538
|
+
"configureHint": "Configure defaultLanguages in .i18ntk-config, or enter target codes manually.",
|
|
2539
|
+
"selected": "Target languages: {languages}"
|
|
2540
|
+
},
|
|
2541
|
+
"protection": {
|
|
2542
|
+
"title": "Protected terms and keys"
|
|
2543
|
+
},
|
|
2544
|
+
"common": {
|
|
2545
|
+
"default": "Default: {value}",
|
|
2546
|
+
"examples": "Examples:",
|
|
2547
|
+
"exampleValue": "Example: {value}",
|
|
2548
|
+
"examplesInline": "Examples: {examples}",
|
|
2549
|
+
"pressEnterDefault": "Press Enter to use the default.",
|
|
2550
|
+
"usingDefault": "Using default: {value}"
|
|
2551
|
+
},
|
|
2552
|
+
"sourceLanguage": {
|
|
2553
|
+
"title": "Source language code",
|
|
2554
|
+
"hint": "This should match the language of the source JSON values.",
|
|
2555
|
+
"using": "Using source language: {lang}",
|
|
2556
|
+
"invalid": "Invalid language code. Use 2+ characters (e.g. en, de, fr)."
|
|
2557
|
+
},
|
|
2558
|
+
"files": {
|
|
2559
|
+
"title": "Which file(s) to translate?",
|
|
2560
|
+
"all": "a) All JSON files ({count}: {files})",
|
|
2561
|
+
"choicePrompt": "Choice [a/all or file number]: ",
|
|
2562
|
+
"invalidChoice": "Invalid choice. Aborting."
|
|
2563
|
+
},
|
|
2564
|
+
"dryRun": {
|
|
2565
|
+
"previewFor": "Dry-run preview for \"{lang}\"..."
|
|
2566
|
+
},
|
|
2567
|
+
"confirm": {
|
|
2568
|
+
"proceed": "Proceed with actual translation?",
|
|
2569
|
+
"yesNoPrompt": "[y]es / [n]o: ",
|
|
2570
|
+
"cancelled": "Translation cancelled."
|
|
2571
|
+
},
|
|
2572
|
+
"run": {
|
|
2573
|
+
"translatingTo": "Translating to \"{lang}\"...",
|
|
2574
|
+
"failedFor": "Failed for \"{lang}\": {error}"
|
|
2575
|
+
},
|
|
2576
|
+
"summary": {
|
|
2577
|
+
"title": "Summary:",
|
|
2578
|
+
"complete": "Translation complete!"
|
|
2579
|
+
},
|
|
2580
|
+
"nonInteractive": {
|
|
2581
|
+
"useDirect": "Non-interactive mode. Use direct CLI instead:"
|
|
2582
|
+
},
|
|
2583
|
+
"errors": {
|
|
2584
|
+
"sourceDirectoryNotFound": "Source locale directory not found: {dir}"
|
|
2585
|
+
}
|
|
2412
2586
|
}
|
|
2413
2587
|
}
|
package/ui-locales/es.json
CHANGED
|
@@ -536,7 +536,7 @@
|
|
|
536
536
|
"argsParseFailed": "Error al analizar el argumento: {error}",
|
|
537
537
|
"translationDiscoveryError": "Error de descubrimiento de traducción: {error}",
|
|
538
538
|
"fileTraversalError": "Error de recorrido de archivo: {error}",
|
|
539
|
-
"sourceEqualsI18nWarn": "
|
|
539
|
+
"sourceEqualsI18nWarn": "{reason}. El an?lisis de uso no escanear? archivos de idioma como c?digo fuente.",
|
|
540
540
|
"i18nEqualsSourceWarn": "⚠️ El directorio I18n y el directorio fuente son los mismos. Esto puede causar problemas con el análisis.",
|
|
541
541
|
"usageAnalysisFailed": "⚠️ Error en el análisis de uso: {error}",
|
|
542
542
|
"translationFileParseError": "⚠️ Error de análisis del archivo de traducción: {error}",
|
|
@@ -642,7 +642,8 @@
|
|
|
642
642
|
"failedToSaveReport": "No se pudo guardar el informe de uso: {error}",
|
|
643
643
|
"i18nDirectoryDoesNotExist": "El directorio I18n no existe: {dir}",
|
|
644
644
|
"reportSavedTo": "Informe de uso guardado en: {reportPath}",
|
|
645
|
-
"sourceDirectoryDoesNotExist": "El directorio de origen no existe: {dir}"
|
|
645
|
+
"sourceDirectoryDoesNotExist": "El directorio de origen no existe: {dir}",
|
|
646
|
+
"noSourceDirectoryConfigured": "(sin configurar)"
|
|
646
647
|
},
|
|
647
648
|
"validate": {
|
|
648
649
|
"help_message": "Uso del validador de traducción I18n: nodo i18ntk-validate.js [opciones] Opciones: --source-dir <dir> Directorio de origen para escanear (predeterminado: ./src) --i18n-dir <dir> Directorio I18n (predeterminado: ./src/locales) --output-report Generar informe detallado --output-dir <dir> Directorio de salida para informes (predeterminado: ./reports) --help Mostrar esta ayuda Ejemplos: nodo i18ntk-validate.js --output-report nodo i18ntk-validate.js --source-dir=./app --i18n-dir=./locales nodo i18ntk-validate.js --output-dir=./analysis --output-report",
|
|
@@ -922,7 +923,7 @@
|
|
|
922
923
|
"summaryCommand": "resumen - Mostrar el estado del proyecto",
|
|
923
924
|
"debugCommand": "debug - Problemas de traducción de depuración",
|
|
924
925
|
"scannerCommand": "escáner - Escanear en busca de llaves",
|
|
925
|
-
"translateCommand": "traducir: traducción automática de archivos locales
|
|
926
|
+
"translateCommand": "traducir: traducción automática de archivos locales",
|
|
926
927
|
"menu": {
|
|
927
928
|
"pressEnterToContinue": "Presione Entrar para continuar...",
|
|
928
929
|
"title": "🌐 MENÚ DE GESTIÓN I18NTK",
|
|
@@ -1102,7 +1103,32 @@
|
|
|
1102
1103
|
"translationFilesCreatedWarning": "Los archivos de traducción se crearon con marcadores de posición; revisión antes del uso en producción.",
|
|
1103
1104
|
"warningCannotReadSourceDir": "Advertencia: no se puede leer el directorio fuente {dir}: {error}",
|
|
1104
1105
|
"warningInvalidLanguageCodes": "Advertencia: se ignoran los códigos de idioma no válidos: {languages}",
|
|
1105
|
-
"warningProceedingWithoutFramework": "Procediendo sin marco i18n detectado."
|
|
1106
|
+
"warningProceedingWithoutFramework": "Procediendo sin marco i18n detectado.",
|
|
1107
|
+
"backup": {
|
|
1108
|
+
"title": "Configuraci?n de copias de seguridad",
|
|
1109
|
+
"description": "Las copias de seguridad est?n desactivadas por defecto para evitar recursi?n y contaminaci?n del repositorio.",
|
|
1110
|
+
"enablePrompt": "?Activar copias de seguridad autom?ticas? (s/N): ",
|
|
1111
|
+
"keepPrompt": "?Cu?ntas copias conservar autom?ticamente (1-3, predeterminado 1)?: "
|
|
1112
|
+
},
|
|
1113
|
+
"completionSummaryTitle": "Resumen de finalizaci?n",
|
|
1114
|
+
"completionSummaryBasicTitle": "Resumen de finalizaci?n (b?sico)",
|
|
1115
|
+
"totalChanges": "Cambios totales: {count}",
|
|
1116
|
+
"languagesProcessed": "Idiomas procesados: {count}",
|
|
1117
|
+
"missingKeysAdded": "Claves faltantes a?adidas: {count}",
|
|
1118
|
+
"reportPrompt": "?Quieres generar un informe? (S/n): ",
|
|
1119
|
+
"reportGenerated": "Informe generado: {reportPath}",
|
|
1120
|
+
"reportFailed": "No se pudo generar el informe: {error}",
|
|
1121
|
+
"completionError": "Error durante la finalizaci?n: {error}",
|
|
1122
|
+
"optimize": {
|
|
1123
|
+
"title": "Optimizacion del tamano del paquete",
|
|
1124
|
+
"preview": "Ejecutando vista previa de optimizacion de locales...",
|
|
1125
|
+
"reduceTip": "Puedes reducir el tamano del paquete seleccionando solo los idiomas necesarios.",
|
|
1126
|
+
"prompt": "Quieres ejecutar la optimizacion interactiva ahora? (s/N): ",
|
|
1127
|
+
"starting": "Iniciando optimizacion interactiva de locales...",
|
|
1128
|
+
"completed": "Optimizacion del paquete completada.",
|
|
1129
|
+
"later": "Puedes ejecutar la optimizacion de locales mas tarde con:",
|
|
1130
|
+
"unavailable": "No se pudo ofrecer la optimizacion de locales: {error}"
|
|
1131
|
+
}
|
|
1106
1132
|
},
|
|
1107
1133
|
"language": {
|
|
1108
1134
|
"title": "🌍 Cambiar idioma",
|
|
@@ -1147,7 +1173,7 @@
|
|
|
1147
1173
|
"sizing": "📏 Analizar tallas",
|
|
1148
1174
|
"fix": "🛠️ Corregir traducciones de marcadores de posición",
|
|
1149
1175
|
"scanner": "🔍 Escanee en busca de problemas con i18n",
|
|
1150
|
-
"translate": "🌐 Traducción automática
|
|
1176
|
+
"translate": "🌐 Traducción automática",
|
|
1151
1177
|
"workflow": "🔄 Ejecute el flujo de trabajo completo",
|
|
1152
1178
|
"status": "📋 Mostrar estado del proyecto",
|
|
1153
1179
|
"delete": "🗑️ Eliminar todos los informes",
|
|
@@ -1447,7 +1473,9 @@
|
|
|
1447
1473
|
"securitySettings": "Configuración de seguridad",
|
|
1448
1474
|
"securitySettingsDesc": "PIN de administrador y otras opciones de seguridad",
|
|
1449
1475
|
"backupSettings": "Configuración de copia de seguridad",
|
|
1450
|
-
"backupSettingsDesc": "Copia de seguridad y restauración de los ajustes de configuración"
|
|
1476
|
+
"backupSettingsDesc": "Copia de seguridad y restauración de los ajustes de configuración",
|
|
1477
|
+
"autoTranslate": "Traduccion automatica",
|
|
1478
|
+
"autoTranslateDesc": "Ajustar marcadores, concurrencia, lotes e informes"
|
|
1451
1479
|
},
|
|
1452
1480
|
"updatePackage": {
|
|
1453
1481
|
"title": "Paquete de actualización",
|
|
@@ -1569,7 +1597,8 @@
|
|
|
1569
1597
|
"processingSettings": "Configuración de procesamiento",
|
|
1570
1598
|
"advancedSettings": "Configuración avanzada",
|
|
1571
1599
|
"scriptDirectorySettings": "Configuración del directorio de secuencias de comandos",
|
|
1572
|
-
"securitySettings": "Configuración de seguridad"
|
|
1600
|
+
"securitySettings": "Configuración de seguridad",
|
|
1601
|
+
"autoTranslate": "Configuracion de traduccion automatica"
|
|
1573
1602
|
},
|
|
1574
1603
|
"security": {
|
|
1575
1604
|
"title": "🔐 Configuración de seguridad",
|
|
@@ -1925,6 +1954,70 @@
|
|
|
1925
1954
|
"description": "Requerir confirmación para operaciones de respaldo",
|
|
1926
1955
|
"help": "Confirmar operación de copia de seguridad"
|
|
1927
1956
|
}
|
|
1957
|
+
},
|
|
1958
|
+
"reports_format": {
|
|
1959
|
+
"label": "Formato de informe",
|
|
1960
|
+
"help": "Elige markdown para informes legibles, json para automatizacion o text para registros simples."
|
|
1961
|
+
},
|
|
1962
|
+
"autoTranslate_placeholderMode": {
|
|
1963
|
+
"label": "Modo de marcadores",
|
|
1964
|
+
"help": "Como se tratan las cadenas con marcadores durante la traduccion automatica."
|
|
1965
|
+
},
|
|
1966
|
+
"autoTranslate_concurrency": {
|
|
1967
|
+
"label": "Solicitudes de traduccion simultaneas",
|
|
1968
|
+
"help": "Maximo de solicitudes simultaneas al proveedor. Google admite hasta 100 en i18ntk; DeepL y LibreTranslate tienen limites mas bajos."
|
|
1969
|
+
},
|
|
1970
|
+
"autoTranslate_batchSize": {
|
|
1971
|
+
"label": "Segmentos de texto por lote",
|
|
1972
|
+
"help": "Numero de segmentos de texto programados por lote."
|
|
1973
|
+
},
|
|
1974
|
+
"autoTranslate_progressInterval": {
|
|
1975
|
+
"label": "Intervalo de progreso",
|
|
1976
|
+
"help": "Segmentos completados entre actualizaciones de progreso."
|
|
1977
|
+
},
|
|
1978
|
+
"autoTranslate_retryCount": {
|
|
1979
|
+
"label": "Reintentos",
|
|
1980
|
+
"help": "Maximo de reintentos por solicitud fallida."
|
|
1981
|
+
},
|
|
1982
|
+
"autoTranslate_retryDelay": {
|
|
1983
|
+
"label": "Retraso de reintento (ms)",
|
|
1984
|
+
"help": "Retraso base de reintento en milisegundos."
|
|
1985
|
+
},
|
|
1986
|
+
"autoTranslate_timeout": {
|
|
1987
|
+
"label": "Tiempo limite de solicitud (ms)",
|
|
1988
|
+
"help": "Tiempo limite de la solicitud al proveedor de traduccion."
|
|
1989
|
+
},
|
|
1990
|
+
"autoTranslate_dryRunFirst": {
|
|
1991
|
+
"label": "Vista previa primero",
|
|
1992
|
+
"help": "Previsualizar lo que se traducira antes de escribir archivos."
|
|
1993
|
+
},
|
|
1994
|
+
"autoTranslate_onlyMissingOrEnglish": {
|
|
1995
|
+
"label": "Solo claves faltantes o en ingles",
|
|
1996
|
+
"help": "Conservar valores ya traducidos y traducir solo valores faltantes, marcadores, copias del origen o probablemente en ingles."
|
|
1997
|
+
},
|
|
1998
|
+
"autoTranslate_reportStdout": {
|
|
1999
|
+
"label": "Imprimir informe en terminal",
|
|
2000
|
+
"help": "Imprimir el informe posterior a la traduccion en stdout."
|
|
2001
|
+
},
|
|
2002
|
+
"autoTranslate_bom": {
|
|
2003
|
+
"label": "Escribir BOM UTF-8",
|
|
2004
|
+
"help": "Escribir archivos JSON traducidos con BOM UTF-8."
|
|
2005
|
+
},
|
|
2006
|
+
"autoTranslate_protectionEnabled": {
|
|
2007
|
+
"label": "Proteger marcas, claves y valores",
|
|
2008
|
+
"help": "Activar terminos, claves, valores y patrones protegidos editables por el usuario."
|
|
2009
|
+
},
|
|
2010
|
+
"autoTranslate_protectionFile": {
|
|
2011
|
+
"label": "Archivo JSON de proteccion",
|
|
2012
|
+
"help": "Archivo JSON del proyecto con reglas de proteccion de traduccion automatica."
|
|
2013
|
+
},
|
|
2014
|
+
"autoTranslate_promptProtectionSetup": {
|
|
2015
|
+
"label": "Preguntar para crear archivo de proteccion",
|
|
2016
|
+
"help": "Preguntar si se crea el archivo de proteccion cuando se ejecuta por primera vez."
|
|
2017
|
+
},
|
|
2018
|
+
"autoTranslate_promptProtectionUpdate": {
|
|
2019
|
+
"label": "Preguntar para actualizar reglas de proteccion",
|
|
2020
|
+
"help": "Preguntar si se actualizan las reglas de proteccion antes de traducciones desde el gestor."
|
|
1928
2021
|
}
|
|
1929
2022
|
},
|
|
1930
2023
|
"actions": {
|
|
@@ -2028,11 +2121,11 @@
|
|
|
2028
2121
|
"helpDeleteReports": "--delete-reports Eliminar informes existentes",
|
|
2029
2122
|
"helpHelp": "--help, -h Mostrar esta ayuda",
|
|
2030
2123
|
"helpExamples": "Ejemplos:",
|
|
2031
|
-
"helpExample1": "
|
|
2032
|
-
"helpExample2": "
|
|
2124
|
+
"helpExample1": "nodo i18ntk-summary.js",
|
|
2125
|
+
"helpExample2": "nodo i18ntk-summary.js --source-dir ./locales",
|
|
2033
2126
|
"helpExample3": "node i18ntk-summary.js --resumen de salida-report.txt",
|
|
2034
|
-
"helpExample4": "
|
|
2035
|
-
"helpExample5": "
|
|
2127
|
+
"helpExample4": "nodo i18ntk-summary.js --verbose",
|
|
2128
|
+
"helpExample5": "nodo i18ntk-summary.js --source-dir ./locales --output report.json",
|
|
2036
2129
|
"couldNotReadFile": "⚠️ No se pudo leer el archivo: {filePath}",
|
|
2037
2130
|
"couldNotParseJSFile": "⚠️ No se pudo analizar el archivo JS/TS: {filePath}",
|
|
2038
2131
|
"errorReadingFile": "⚠️ Error al leer el archivo {filePath}: {error}",
|
|
@@ -2143,7 +2236,7 @@
|
|
|
2143
2236
|
"completeCommand": "complete - Traducciones completas (100% de cobertura)",
|
|
2144
2237
|
"summaryCommand": "resumen - Mostrar el estado del proyecto",
|
|
2145
2238
|
"scannerCommand": "escáner - Escanear en busca de problemas con i18n",
|
|
2146
|
-
"translateCommand": "traducir: traducción automática de archivos locales
|
|
2239
|
+
"translateCommand": "traducir: traducción automática de archivos locales",
|
|
2147
2240
|
"debugCommand": "debug - Problemas de traducción de depuración"
|
|
2148
2241
|
},
|
|
2149
2242
|
"test_complete_system": {
|
|
@@ -2441,5 +2534,93 @@
|
|
|
2441
2534
|
"pressEnterToContinue": "Presione Entrar para continuar...",
|
|
2442
2535
|
"status": {
|
|
2443
2536
|
"exitingCompleted": "Flujo de trabajo completado. Saliendo..."
|
|
2537
|
+
},
|
|
2538
|
+
"prompt": {
|
|
2539
|
+
"yesTokens": [
|
|
2540
|
+
"s",
|
|
2541
|
+
"si",
|
|
2542
|
+
"s?",
|
|
2543
|
+
"y",
|
|
2544
|
+
"yes"
|
|
2545
|
+
],
|
|
2546
|
+
"noTokens": [
|
|
2547
|
+
"norte",
|
|
2548
|
+
"No"
|
|
2549
|
+
]
|
|
2550
|
+
},
|
|
2551
|
+
"translate": {
|
|
2552
|
+
"title": "Traduccion automatica",
|
|
2553
|
+
"sourceDirectory": {
|
|
2554
|
+
"title": "Directorio de locales de origen",
|
|
2555
|
+
"currentProject": "Proyecto actual: {dir}",
|
|
2556
|
+
"accepted": "Aceptado: una ruta absoluta o una ruta relativa al proyecto actual.",
|
|
2557
|
+
"localeRootExample": "./locales (despues elige idioma de origen: en)",
|
|
2558
|
+
"folderHint": "La carpeta puede contener archivos JSON directamente o carpetas de idioma como ./locales/en.",
|
|
2559
|
+
"defaultNotFound": "Directorio predeterminado no encontrado: {dir}",
|
|
2560
|
+
"enterExisting": "Introduce un directorio existente con archivos JSON de locales.",
|
|
2561
|
+
"directoryNotFound": "Directorio no encontrado: {dir}",
|
|
2562
|
+
"enterFolderExample": "Introduce una carpeta existente, por ejemplo ./locales/en.",
|
|
2563
|
+
"notDirectory": "No es un directorio: {dir}",
|
|
2564
|
+
"using": "Usando directorio de origen: {dir}",
|
|
2565
|
+
"noJsonDirect": "No se encontraron archivos JSON directamente en: {dir}",
|
|
2566
|
+
"usingLanguageFolder": "Usando carpeta del idioma de origen: {dir}",
|
|
2567
|
+
"noJsonWithLanguageFolder": "No se encontraron archivos JSON en: {dir}\nTambien se comprobo la carpeta del idioma de origen: {languageDir}",
|
|
2568
|
+
"noJson": "No se encontraron archivos JSON en: {dir}"
|
|
2569
|
+
},
|
|
2570
|
+
"targetLanguages": {
|
|
2571
|
+
"title": "Idioma(s) de destino",
|
|
2572
|
+
"allConfigured": "a) Todos los idiomas de destino configurados: {languages}",
|
|
2573
|
+
"noneConfigured": "a) Todos los idiomas de destino configurados: ninguno configurado",
|
|
2574
|
+
"enterCodes": "O introduce uno o mas codigos de idioma separados por comas o espacios.",
|
|
2575
|
+
"sourceExcluded": "El idioma de origen \"{lang}\" se excluira automaticamente.",
|
|
2576
|
+
"noneSelected": "No se seleccionaron idiomas de destino validos. Cancelando.",
|
|
2577
|
+
"configureHint": "Configura defaultLanguages en .i18ntk-config o introduce codigos manualmente.",
|
|
2578
|
+
"selected": "Idiomas de destino: {languages}"
|
|
2579
|
+
},
|
|
2580
|
+
"protection": {
|
|
2581
|
+
"title": "Terminos y claves protegidos"
|
|
2582
|
+
},
|
|
2583
|
+
"common": {
|
|
2584
|
+
"default": "Predeterminado: {value}",
|
|
2585
|
+
"examples": "Ejemplos:",
|
|
2586
|
+
"exampleValue": "Ejemplo: {value}",
|
|
2587
|
+
"examplesInline": "Ejemplos: {examples}",
|
|
2588
|
+
"pressEnterDefault": "Pulsa Enter para usar el valor predeterminado.",
|
|
2589
|
+
"usingDefault": "Usando predeterminado: {value}"
|
|
2590
|
+
},
|
|
2591
|
+
"sourceLanguage": {
|
|
2592
|
+
"title": "Codigo de idioma de origen",
|
|
2593
|
+
"hint": "Debe coincidir con el idioma de los valores JSON de origen.",
|
|
2594
|
+
"using": "Usando idioma de origen: {lang}",
|
|
2595
|
+
"invalid": "Codigo de idioma no valido. Usa 2+ caracteres (p. ej. en, de, fr)."
|
|
2596
|
+
},
|
|
2597
|
+
"files": {
|
|
2598
|
+
"title": "Que archivo(s) traducir?",
|
|
2599
|
+
"all": "a) Todos los archivos JSON ({count}: {files})",
|
|
2600
|
+
"choicePrompt": "Seleccion [a/all o numero de archivo]: ",
|
|
2601
|
+
"invalidChoice": "Seleccion no valida. Cancelando."
|
|
2602
|
+
},
|
|
2603
|
+
"dryRun": {
|
|
2604
|
+
"previewFor": "Vista previa para \"{lang}\"..."
|
|
2605
|
+
},
|
|
2606
|
+
"confirm": {
|
|
2607
|
+
"proceed": "Continuar con la traduccion real?",
|
|
2608
|
+
"yesNoPrompt": "[s]i / [n]o: ",
|
|
2609
|
+
"cancelled": "Traduccion cancelada."
|
|
2610
|
+
},
|
|
2611
|
+
"run": {
|
|
2612
|
+
"translatingTo": "Traduciendo a \"{lang}\"...",
|
|
2613
|
+
"failedFor": "Error para \"{lang}\": {error}"
|
|
2614
|
+
},
|
|
2615
|
+
"summary": {
|
|
2616
|
+
"title": "Resumen:",
|
|
2617
|
+
"complete": "Traduccion completada!"
|
|
2618
|
+
},
|
|
2619
|
+
"nonInteractive": {
|
|
2620
|
+
"useDirect": "Modo no interactivo. Usa la CLI directa:"
|
|
2621
|
+
},
|
|
2622
|
+
"errors": {
|
|
2623
|
+
"sourceDirectoryNotFound": "Directorio de locales de origen no encontrado: {dir}"
|
|
2624
|
+
}
|
|
2444
2625
|
}
|
|
2445
2626
|
}
|