i18ntk 1.0.0

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.
Files changed (86) hide show
  1. package/CHANGELOG.md +401 -0
  2. package/LICENSE +21 -0
  3. package/README.md +507 -0
  4. package/dev/README.md +37 -0
  5. package/dev/debug/README.md +30 -0
  6. package/dev/debug/complete-console-translations.js +295 -0
  7. package/dev/debug/console-key-checker.js +408 -0
  8. package/dev/debug/console-translations.js +335 -0
  9. package/dev/debug/debugger.js +408 -0
  10. package/dev/debug/export-missing-keys.js +432 -0
  11. package/dev/debug/final-normalize.js +236 -0
  12. package/dev/debug/find-extra-keys.js +68 -0
  13. package/dev/debug/normalize-locales.js +153 -0
  14. package/dev/debug/refactor-locales.js +240 -0
  15. package/dev/debug/reorder-locales.js +85 -0
  16. package/dev/debug/replace-hardcoded-console.js +378 -0
  17. package/docs/INSTALLATION.md +449 -0
  18. package/docs/README.md +222 -0
  19. package/docs/TODO_ROADMAP.md +279 -0
  20. package/docs/api/API_REFERENCE.md +377 -0
  21. package/docs/api/COMPONENTS.md +492 -0
  22. package/docs/api/CONFIGURATION.md +651 -0
  23. package/docs/api/NPM_PUBLISHING_GUIDE.md +434 -0
  24. package/docs/debug/DEBUG_README.md +30 -0
  25. package/docs/debug/DEBUG_TOOLS.md +494 -0
  26. package/docs/development/AGENTS.md +351 -0
  27. package/docs/development/DEVELOPMENT_RULES.md +165 -0
  28. package/docs/development/DEV_README.md +37 -0
  29. package/docs/release-notes/RELEASE_NOTES_v1.0.0.md +173 -0
  30. package/docs/release-notes/RELEASE_NOTES_v1.6.0.md +141 -0
  31. package/docs/release-notes/RELEASE_NOTES_v1.6.1.md +185 -0
  32. package/docs/release-notes/RELEASE_NOTES_v1.6.3.md +199 -0
  33. package/docs/reports/ANALYSIS_README.md +17 -0
  34. package/docs/reports/CONSOLE_MISMATCH_BUG_REPORT_v1.5.0.md +181 -0
  35. package/docs/reports/SIZING_README.md +18 -0
  36. package/docs/reports/SUMMARY_README.md +18 -0
  37. package/docs/reports/TRANSLATION_BUG_REPORT_v1.5.0.md +129 -0
  38. package/docs/reports/USAGE_README.md +18 -0
  39. package/docs/reports/VALIDATION_README.md +18 -0
  40. package/locales/de/auth.json +3 -0
  41. package/locales/de/common.json +16 -0
  42. package/locales/de/pagination.json +6 -0
  43. package/locales/en/auth.json +3 -0
  44. package/locales/en/common.json +16 -0
  45. package/locales/en/pagination.json +6 -0
  46. package/locales/es/auth.json +3 -0
  47. package/locales/es/common.json +16 -0
  48. package/locales/es/pagination.json +6 -0
  49. package/locales/fr/auth.json +3 -0
  50. package/locales/fr/common.json +16 -0
  51. package/locales/fr/pagination.json +6 -0
  52. package/locales/ru/auth.json +3 -0
  53. package/locales/ru/common.json +16 -0
  54. package/locales/ru/pagination.json +6 -0
  55. package/main/i18ntk-analyze.js +625 -0
  56. package/main/i18ntk-autorun.js +461 -0
  57. package/main/i18ntk-complete.js +494 -0
  58. package/main/i18ntk-init.js +686 -0
  59. package/main/i18ntk-manage.js +848 -0
  60. package/main/i18ntk-sizing.js +557 -0
  61. package/main/i18ntk-summary.js +671 -0
  62. package/main/i18ntk-usage.js +1282 -0
  63. package/main/i18ntk-validate.js +762 -0
  64. package/main/ui-i18n.js +332 -0
  65. package/package.json +152 -0
  66. package/scripts/fix-missing-translation-keys.js +214 -0
  67. package/scripts/verify-package.js +168 -0
  68. package/ui-locales/de.json +637 -0
  69. package/ui-locales/en.json +688 -0
  70. package/ui-locales/es.json +637 -0
  71. package/ui-locales/fr.json +637 -0
  72. package/ui-locales/ja.json +637 -0
  73. package/ui-locales/ru.json +637 -0
  74. package/ui-locales/zh.json +637 -0
  75. package/utils/admin-auth.js +317 -0
  76. package/utils/admin-cli.js +353 -0
  77. package/utils/admin-pin.js +409 -0
  78. package/utils/detect-language-mismatches.js +454 -0
  79. package/utils/i18n-helper.js +128 -0
  80. package/utils/maintain-language-purity.js +433 -0
  81. package/utils/native-translations.js +478 -0
  82. package/utils/security.js +384 -0
  83. package/utils/test-complete-system.js +356 -0
  84. package/utils/test-console-i18n.js +402 -0
  85. package/utils/translate-mismatches.js +571 -0
  86. package/utils/validate-language-purity.js +531 -0
@@ -0,0 +1,651 @@
1
+ # I18N Management Toolkit - Configuration Guide
2
+
3
+ **Version:** 1.0.0
4
+ **Last Updated:** 27/07/2025
5
+ **Maintainer:** Vladimir Noskov
6
+
7
+ ## 📋 Overview
8
+
9
+ This guide provides comprehensive information about configuring the I18N Management Toolkit for optimal performance and functionality in your project.
10
+
11
+ ## 🔧 Configuration Files
12
+
13
+ ### Primary Configuration Files
14
+
15
+ #### `user-config.json`
16
+ **Location:** Project root directory
17
+ **Purpose:** User-specific settings and preferences
18
+ **Auto-generated:** Yes (on first run)
19
+
20
+ ```json
21
+ {
22
+ "version": "1.0.0",
23
+ "lastUpdated": "2025-07-27",
24
+ "project": {
25
+ "name": "My Project",
26
+ "type": "react",
27
+ "framework": "react-i18next"
28
+ },
29
+ "directories": {
30
+ "source": "./src",
31
+ "locales": "./locales",
32
+ "reports": "./i18ntk-reports",
33
+ "backups": "./backups"
34
+ },
35
+ "languages": {
36
+ "default": "en",
37
+ "supported": ["en", "es", "fr", "de", "ru"],
38
+ "fallback": "en"
39
+ },
40
+ "features": {
41
+ "autoTranslate": false,
42
+ "autoValidate": true,
43
+ "autoBackup": true,
44
+ "strictMode": false
45
+ },
46
+ "translation": {
47
+ "provider": "google",
48
+ "apiKey": "",
49
+ "batchSize": 50,
50
+ "rateLimit": 100
51
+ },
52
+ "validation": {
53
+ "strict": true,
54
+ "autoFix": false,
55
+ "checkSyntax": true,
56
+ "checkConsistency": true,
57
+ "checkCompleteness": true
58
+ },
59
+ "reporting": {
60
+ "format": "html",
61
+ "includeCharts": true,
62
+ "includeStatistics": true,
63
+ "autoOpen": false
64
+ },
65
+ "ui": {
66
+ "language": "en",
67
+ "theme": "default",
68
+ "showProgress": true,
69
+ "verboseOutput": false
70
+ }
71
+ }
72
+ ```
73
+
74
+ #### `admin-config.json`
75
+ **Location:** Project root directory
76
+ **Purpose:** Administrative settings and security configuration
77
+ **Auto-generated:** Yes (when admin features are enabled)
78
+
79
+ ```json
80
+ {
81
+ "version": "1.6.3",
82
+ "lastUpdated": "2025-07-27",
83
+ "security": {
84
+ "adminMode": false,
85
+ "encryptionEnabled": true,
86
+ "securityLevel": "standard",
87
+ "sessionTimeout": 3600,
88
+ "maxLoginAttempts": 3
89
+ },
90
+ "backup": {
91
+ "enabled": true,
92
+ "retention": 30,
93
+ "compression": true,
94
+ "location": "./backups"
95
+ },
96
+ "logging": {
97
+ "enabled": true,
98
+ "level": "info",
99
+ "auditTrail": true,
100
+ "maxLogSize": "10MB",
101
+ "logRotation": true
102
+ },
103
+ "api": {
104
+ "rateLimit": {
105
+ "enabled": true,
106
+ "requestsPerMinute": 60,
107
+ "burstLimit": 10
108
+ },
109
+ "cors": {
110
+ "enabled": false,
111
+ "origins": []
112
+ }
113
+ },
114
+ "maintenance": {
115
+ "autoCleanup": true,
116
+ "cleanupInterval": "24h",
117
+ "tempFileRetention": "1h"
118
+ }
119
+ }
120
+ ```
121
+
122
+ ### Package Configuration
123
+
124
+ #### `package.json` Integration
125
+ **Required Scripts:** Already configured in package.json
126
+
127
+ ```json
128
+ {
129
+ "scripts": {
130
+ "i18ntk": "node main/i18ntk-manage.js",
131
+ "i18ntk:init": "node main/i18ntk-init.js",
132
+ "i18ntk:analyze": "node main/i18ntk-analyze.js",
133
+ "i18ntk:validate": "node main/i18ntk-validate.js",
134
+ "i18ntk:usage": "node main/i18ntk-usage.js",
135
+ "i18ntk:complete": "node main/i18ntk-complete.js",
136
+ "i18ntk:sizing": "node main/i18ntk-sizing.js",
137
+ "i18ntk:summary": "node main/i18ntk-summary.js",
138
+ "i18ntk:autorun": "node main/i18ntk-autorun.js"
139
+ }
140
+ }
141
+ ```
142
+
143
+ ## 🌍 Environment Variables
144
+
145
+ ### Core Environment Variables
146
+
147
+ | Variable | Description | Default | Example |
148
+ |----------|-------------|---------|----------|
149
+ | `I18N_SOURCE_DIR` | Source directory path | `./src` | `./app/src` |
150
+ | `I18N_LOCALES_DIR` | Locales directory path | `./locales` | `./public/locales` |
151
+ | `I18N_DEFAULT_LANG` | Default language code | `en` | `en-US` |
152
+ | `I18N_SUPPORTED_LANGS` | Supported languages (comma-separated) | `en,es,fr,de` | `en,es,fr,de,ru,ja` |
153
+ | `I18N_FRAMEWORK` | i18n framework | `react-i18next` | `vue-i18n` |
154
+ | `I18N_STRICT_MODE` | Enable strict validation | `false` | `true` |
155
+ | `I18N_AUTO_BACKUP` | Enable automatic backups | `true` | `false` |
156
+ | `I18N_REPORT_FORMAT` | Default report format | `html` | `json` |
157
+ | `I18N_UI_LANGUAGE` | UI language | `en` | `es` |
158
+ | `I18N_VERBOSE` | Enable verbose output | `false` | `true` |
159
+
160
+ ### Translation Service Variables
161
+
162
+ | Variable | Description | Required | Provider |
163
+ |----------|-------------|----------|----------|
164
+ | `GOOGLE_TRANSLATE_API_KEY` | Google Translate API key | For Google Translate | Google |
165
+ | `DEEPL_API_KEY` | DeepL API key | For DeepL | DeepL |
166
+ | `OPENAI_API_KEY` | OpenAI API key | For AI translation | OpenAI |
167
+ | `AZURE_TRANSLATOR_KEY` | Azure Translator key | For Azure | Microsoft |
168
+ | `AWS_TRANSLATE_ACCESS_KEY` | AWS Translate access key | For AWS | Amazon |
169
+ | `AWS_TRANSLATE_SECRET_KEY` | AWS Translate secret key | For AWS | Amazon |
170
+
171
+ ### Security Variables
172
+
173
+ | Variable | Description | Default | Security Level |
174
+ |----------|-------------|---------|----------------|
175
+ | `I18N_ADMIN_MODE` | Enable admin features | `false` | High |
176
+ | `I18N_ENCRYPTION_KEY` | Encryption key for sensitive data | Auto-generated | High |
177
+ | `I18N_SESSION_SECRET` | Session secret key | Auto-generated | Medium |
178
+ | `I18N_AUDIT_LOGGING` | Enable audit logging | `true` | Medium |
179
+ | `I18N_SECURE_MODE` | Enable secure mode | `false` | High |
180
+
181
+ ## 🏗️ Framework-Specific Configuration
182
+
183
+ ### React i18next Configuration
184
+
185
+ #### Required Dependencies
186
+ ```json
187
+ {
188
+ "dependencies": {
189
+ "react-i18next": "^15.6.1",
190
+ "i18next": "^23.0.0"
191
+ }
192
+ }
193
+ ```
194
+
195
+ #### Framework Detection
196
+ The toolkit automatically detects React i18next by:
197
+ - Checking `package.json` dependencies
198
+ - Looking for `i18next` configuration files
199
+ - Scanning for React i18next usage patterns
200
+
201
+ #### Configuration Example
202
+ ```javascript
203
+ // i18n.js
204
+ import i18n from 'i18next';
205
+ import { initReactI18next } from 'react-i18next';
206
+
207
+ i18n
208
+ .use(initReactI18next)
209
+ .init({
210
+ lng: 'en',
211
+ fallbackLng: 'en',
212
+ resources: {
213
+ en: {
214
+ translation: require('./locales/en/common.json')
215
+ }
216
+ }
217
+ });
218
+
219
+ export default i18n;
220
+ ```
221
+
222
+ ### Vue i18n Configuration
223
+
224
+ #### Required Dependencies
225
+ ```json
226
+ {
227
+ "dependencies": {
228
+ "vue-i18n": "^9.0.0"
229
+ }
230
+ }
231
+ ```
232
+
233
+ #### Configuration Example
234
+ ```javascript
235
+ // i18n.js
236
+ import { createI18n } from 'vue-i18n';
237
+
238
+ const i18n = createI18n({
239
+ locale: 'en',
240
+ fallbackLocale: 'en',
241
+ messages: {
242
+ en: require('./locales/en/common.json')
243
+ }
244
+ });
245
+
246
+ export default i18n;
247
+ ```
248
+
249
+ ### Angular i18n Configuration
250
+
251
+ #### Required Dependencies
252
+ ```json
253
+ {
254
+ "dependencies": {
255
+ "@angular/localize": "^16.0.0"
256
+ }
257
+ }
258
+ ```
259
+
260
+ #### Configuration Example
261
+ ```json
262
+ // angular.json
263
+ {
264
+ "projects": {
265
+ "app": {
266
+ "i18n": {
267
+ "sourceLocale": "en",
268
+ "locales": {
269
+ "es": "src/locales/es.json",
270
+ "fr": "src/locales/fr.json"
271
+ }
272
+ }
273
+ }
274
+ }
275
+ }
276
+ ```
277
+
278
+ ## 📁 Directory Structure Configuration
279
+
280
+ ### Recommended Structure
281
+
282
+ ```
283
+ project-root/
284
+ ├── src/ # Source code directory
285
+ │ ├── components/
286
+ │ ├── pages/
287
+ │ └── utils/
288
+ ├── locales/ # Translation files
289
+ │ ├── en/
290
+ │ │ ├── common.json
291
+ │ │ ├── auth.json
292
+ │ │ └── validation.json
293
+ │ ├── es/
294
+ │ ├── fr/
295
+ │ └── de/
296
+ ├── i18ntk-reports/ # Generated reports
297
+ │ ├── analysis/
298
+ │ ├── validation/
299
+ │ ├── usage/
300
+ │ ├── sizing/
301
+ │ └── summary/
302
+ ├── backups/ # Configuration backups
303
+ ├── docs/ # Documentation
304
+ ├── user-config.json # User configuration
305
+ ├── admin-config.json # Admin configuration
306
+ └── package.json
307
+ ```
308
+
309
+ ### Custom Directory Configuration
310
+
311
+ ```json
312
+ {
313
+ "directories": {
314
+ "source": "./app/src", # Custom source directory
315
+ "locales": "./public/i18n", # Custom locales directory
316
+ "reports": "./reports/i18n", # Custom reports directory
317
+ "backups": "./data/backups", # Custom backups directory
318
+ "temp": "./tmp", # Temporary files directory
319
+ "logs": "./logs" # Log files directory
320
+ }
321
+ }
322
+ ```
323
+
324
+ ## 🔍 Validation Configuration
325
+
326
+ ### Validation Rules
327
+
328
+ ```json
329
+ {
330
+ "validation": {
331
+ "strict": true, # Enable strict validation
332
+ "autoFix": false, # Auto-fix common issues
333
+ "rules": {
334
+ "syntax": {
335
+ "enabled": true,
336
+ "checkJSON": true,
337
+ "checkYAML": true,
338
+ "allowComments": false
339
+ },
340
+ "consistency": {
341
+ "enabled": true,
342
+ "checkKeys": true,
343
+ "checkValues": true,
344
+ "caseSensitive": true
345
+ },
346
+ "completeness": {
347
+ "enabled": true,
348
+ "requireAllKeys": true,
349
+ "allowEmpty": false,
350
+ "threshold": 95
351
+ },
352
+ "quality": {
353
+ "enabled": true,
354
+ "checkLength": true,
355
+ "maxLength": 500,
356
+ "checkSpecialChars": true,
357
+ "checkEncoding": true
358
+ }
359
+ },
360
+ "ignore": {
361
+ "files": ["test.json", "temp.json"],
362
+ "keys": ["debug.*", "temp.*"],
363
+ "patterns": ["*.test.json"]
364
+ }
365
+ }
366
+ }
367
+ ```
368
+
369
+ ## 📊 Reporting Configuration
370
+
371
+ ### Report Settings
372
+
373
+ ```json
374
+ {
375
+ "reporting": {
376
+ "format": "html", # Default format: html, json, csv, pdf
377
+ "template": "default", # Report template
378
+ "includeCharts": true, # Include visual charts
379
+ "includeStatistics": true, # Include statistical data
380
+ "includeDetails": true, # Include detailed information
381
+ "autoOpen": false, # Auto-open reports in browser
382
+ "compression": true, # Compress large reports
383
+ "retention": 30, # Days to keep reports
384
+ "customFields": [ # Custom report fields
385
+ "projectName",
386
+ "version",
387
+ "buildDate"
388
+ ],
389
+ "export": {
390
+ "enabled": true,
391
+ "formats": ["html", "json", "csv"],
392
+ "location": "./exports"
393
+ }
394
+ }
395
+ }
396
+ ```
397
+
398
+ ### Chart Configuration
399
+
400
+ ```json
401
+ {
402
+ "charts": {
403
+ "enabled": true,
404
+ "library": "chartjs", # Chart library: chartjs, d3, plotly
405
+ "theme": "default", # Chart theme
406
+ "colors": {
407
+ "primary": "#007bff",
408
+ "secondary": "#6c757d",
409
+ "success": "#28a745",
410
+ "warning": "#ffc107",
411
+ "danger": "#dc3545"
412
+ },
413
+ "types": {
414
+ "completeness": "pie", # Chart type for completeness
415
+ "progress": "bar", # Chart type for progress
416
+ "trends": "line", # Chart type for trends
417
+ "distribution": "doughnut" # Chart type for distribution
418
+ }
419
+ }
420
+ }
421
+ ```
422
+
423
+ ## 🔄 Workflow Configuration
424
+
425
+ ### Automated Workflow Settings
426
+
427
+ ```json
428
+ {
429
+ "workflow": {
430
+ "enabled": true,
431
+ "schedule": {
432
+ "enabled": false,
433
+ "cron": "0 2 * * *", # Daily at 2 AM
434
+ "timezone": "UTC"
435
+ },
436
+ "steps": [
437
+ {
438
+ "name": "analyze",
439
+ "enabled": true,
440
+ "config": {
441
+ "detailed": true,
442
+ "threshold": 90
443
+ }
444
+ },
445
+ {
446
+ "name": "validate",
447
+ "enabled": true,
448
+ "config": {
449
+ "strict": true,
450
+ "autoFix": false
451
+ }
452
+ },
453
+ {
454
+ "name": "usage",
455
+ "enabled": true,
456
+ "config": {
457
+ "checkUnused": true,
458
+ "checkMissing": true
459
+ }
460
+ },
461
+ {
462
+ "name": "complete",
463
+ "enabled": false,
464
+ "config": {
465
+ "auto": false,
466
+ "provider": "google"
467
+ }
468
+ },
469
+ {
470
+ "name": "summary",
471
+ "enabled": true,
472
+ "config": {
473
+ "format": "html",
474
+ "includeCharts": true
475
+ }
476
+ }
477
+ ],
478
+ "notifications": {
479
+ "enabled": false,
480
+ "email": {
481
+ "enabled": false,
482
+ "recipients": [],
483
+ "smtp": {}
484
+ },
485
+ "webhook": {
486
+ "enabled": false,
487
+ "url": "",
488
+ "method": "POST"
489
+ }
490
+ }
491
+ }
492
+ }
493
+ ```
494
+
495
+ ## 🔐 Security Configuration
496
+
497
+ ### Security Settings
498
+
499
+ ```json
500
+ {
501
+ "security": {
502
+ "encryption": {
503
+ "enabled": true,
504
+ "algorithm": "aes-256-gcm",
505
+ "keyDerivation": "pbkdf2",
506
+ "iterations": 100000
507
+ },
508
+ "authentication": {
509
+ "enabled": false,
510
+ "method": "local", # local, oauth, ldap
511
+ "sessionTimeout": 3600,
512
+ "maxAttempts": 3,
513
+ "lockoutDuration": 900
514
+ },
515
+ "authorization": {
516
+ "enabled": false,
517
+ "roles": ["admin", "user", "viewer"],
518
+ "permissions": {
519
+ "admin": ["*"],
520
+ "user": ["read", "write"],
521
+ "viewer": ["read"]
522
+ }
523
+ },
524
+ "audit": {
525
+ "enabled": true,
526
+ "logLevel": "info",
527
+ "includeData": false,
528
+ "retention": 90
529
+ }
530
+ }
531
+ }
532
+ ```
533
+
534
+ ## 🎨 UI Configuration
535
+
536
+ ### User Interface Settings
537
+
538
+ ```json
539
+ {
540
+ "ui": {
541
+ "language": "en", # UI language
542
+ "theme": "default", # UI theme: default, dark, light
543
+ "dateFormat": "YYYY-MM-DD", # Date format
544
+ "timeFormat": "HH:mm:ss", # Time format
545
+ "timezone": "UTC", # Timezone
546
+ "pagination": {
547
+ "enabled": true,
548
+ "pageSize": 50,
549
+ "maxPages": 100
550
+ },
551
+ "progress": {
552
+ "enabled": true,
553
+ "style": "bar", # bar, spinner, dots
554
+ "showPercentage": true,
555
+ "showETA": true
556
+ },
557
+ "notifications": {
558
+ "enabled": true,
559
+ "position": "top-right", # Position for notifications
560
+ "duration": 5000, # Duration in milliseconds
561
+ "sound": false
562
+ }
563
+ }
564
+ }
565
+ ```
566
+
567
+ ## 🔧 Performance Configuration
568
+
569
+ ### Performance Optimization
570
+
571
+ ```json
572
+ {
573
+ "performance": {
574
+ "caching": {
575
+ "enabled": true,
576
+ "ttl": 3600, # Cache TTL in seconds
577
+ "maxSize": "100MB", # Maximum cache size
578
+ "strategy": "lru" # Cache strategy: lru, fifo, lfu
579
+ },
580
+ "concurrency": {
581
+ "maxWorkers": 4, # Maximum worker threads
582
+ "batchSize": 100, # Batch processing size
583
+ "timeout": 30000 # Operation timeout in ms
584
+ },
585
+ "memory": {
586
+ "maxHeapSize": "512MB", # Maximum heap size
587
+ "gcInterval": 60000, # Garbage collection interval
588
+ "monitoring": true # Enable memory monitoring
589
+ },
590
+ "io": {
591
+ "bufferSize": 8192, # I/O buffer size
592
+ "maxFileSize": "10MB", # Maximum file size
593
+ "compression": true # Enable compression
594
+ }
595
+ }
596
+ }
597
+ ```
598
+
599
+ ## 📝 Configuration Validation
600
+
601
+ ### Validation Rules
602
+
603
+ The toolkit automatically validates configuration files on startup:
604
+
605
+ 1. **Schema Validation** - Ensures all required fields are present
606
+ 2. **Type Validation** - Checks data types for all fields
607
+ 3. **Range Validation** - Validates numeric ranges and limits
608
+ 4. **Path Validation** - Verifies directory and file paths exist
609
+ 5. **Dependency Validation** - Checks for required dependencies
610
+
611
+ ### Configuration Errors
612
+
613
+ Common configuration errors and solutions:
614
+
615
+ | Error | Cause | Solution |
616
+ |-------|-------|----------|
617
+ | `Invalid source directory` | Directory doesn't exist | Create directory or update path |
618
+ | `Missing API key` | Translation service key not set | Add API key to environment variables |
619
+ | `Invalid language code` | Unsupported language code | Use ISO 639-1 language codes |
620
+ | `Permission denied` | Insufficient file permissions | Update file/directory permissions |
621
+ | `Invalid JSON syntax` | Malformed configuration file | Fix JSON syntax errors |
622
+
623
+ ## 🔄 Configuration Migration
624
+
625
+ ### Version Migration
626
+
627
+ When upgrading to version 1.4.6, the toolkit automatically:
628
+
629
+ 1. **Backs up** existing configuration files
630
+ 2. **Migrates** settings to new format
631
+ 3. **Validates** migrated configuration
632
+ 4. **Reports** any migration issues
633
+
634
+ ### Manual Migration
635
+
636
+ For manual migration:
637
+
638
+ ```bash
639
+ # Backup current configuration
640
+ npm run i18ntk:settings -- --export ./config-backup.json
641
+
642
+ # Reset to defaults
643
+ npm run i18ntk:settings -- --reset
644
+
645
+ # Import backed up settings
646
+ npm run i18ntk:settings -- --import ./config-backup.json
647
+ ```
648
+
649
+ ---
650
+
651
+ **Note:** This configuration guide is maintained for version 1.4.6. For the latest configuration options, refer to the [API Reference](./API_REFERENCE.md) and [Components Documentation](./COMPONENTS.md).