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.
- package/CHANGELOG.md +401 -0
- package/LICENSE +21 -0
- package/README.md +507 -0
- package/dev/README.md +37 -0
- package/dev/debug/README.md +30 -0
- package/dev/debug/complete-console-translations.js +295 -0
- package/dev/debug/console-key-checker.js +408 -0
- package/dev/debug/console-translations.js +335 -0
- package/dev/debug/debugger.js +408 -0
- package/dev/debug/export-missing-keys.js +432 -0
- package/dev/debug/final-normalize.js +236 -0
- package/dev/debug/find-extra-keys.js +68 -0
- package/dev/debug/normalize-locales.js +153 -0
- package/dev/debug/refactor-locales.js +240 -0
- package/dev/debug/reorder-locales.js +85 -0
- package/dev/debug/replace-hardcoded-console.js +378 -0
- package/docs/INSTALLATION.md +449 -0
- package/docs/README.md +222 -0
- package/docs/TODO_ROADMAP.md +279 -0
- package/docs/api/API_REFERENCE.md +377 -0
- package/docs/api/COMPONENTS.md +492 -0
- package/docs/api/CONFIGURATION.md +651 -0
- package/docs/api/NPM_PUBLISHING_GUIDE.md +434 -0
- package/docs/debug/DEBUG_README.md +30 -0
- package/docs/debug/DEBUG_TOOLS.md +494 -0
- package/docs/development/AGENTS.md +351 -0
- package/docs/development/DEVELOPMENT_RULES.md +165 -0
- package/docs/development/DEV_README.md +37 -0
- package/docs/release-notes/RELEASE_NOTES_v1.0.0.md +173 -0
- package/docs/release-notes/RELEASE_NOTES_v1.6.0.md +141 -0
- package/docs/release-notes/RELEASE_NOTES_v1.6.1.md +185 -0
- package/docs/release-notes/RELEASE_NOTES_v1.6.3.md +199 -0
- package/docs/reports/ANALYSIS_README.md +17 -0
- package/docs/reports/CONSOLE_MISMATCH_BUG_REPORT_v1.5.0.md +181 -0
- package/docs/reports/SIZING_README.md +18 -0
- package/docs/reports/SUMMARY_README.md +18 -0
- package/docs/reports/TRANSLATION_BUG_REPORT_v1.5.0.md +129 -0
- package/docs/reports/USAGE_README.md +18 -0
- package/docs/reports/VALIDATION_README.md +18 -0
- package/locales/de/auth.json +3 -0
- package/locales/de/common.json +16 -0
- package/locales/de/pagination.json +6 -0
- package/locales/en/auth.json +3 -0
- package/locales/en/common.json +16 -0
- package/locales/en/pagination.json +6 -0
- package/locales/es/auth.json +3 -0
- package/locales/es/common.json +16 -0
- package/locales/es/pagination.json +6 -0
- package/locales/fr/auth.json +3 -0
- package/locales/fr/common.json +16 -0
- package/locales/fr/pagination.json +6 -0
- package/locales/ru/auth.json +3 -0
- package/locales/ru/common.json +16 -0
- package/locales/ru/pagination.json +6 -0
- package/main/i18ntk-analyze.js +625 -0
- package/main/i18ntk-autorun.js +461 -0
- package/main/i18ntk-complete.js +494 -0
- package/main/i18ntk-init.js +686 -0
- package/main/i18ntk-manage.js +848 -0
- package/main/i18ntk-sizing.js +557 -0
- package/main/i18ntk-summary.js +671 -0
- package/main/i18ntk-usage.js +1282 -0
- package/main/i18ntk-validate.js +762 -0
- package/main/ui-i18n.js +332 -0
- package/package.json +152 -0
- package/scripts/fix-missing-translation-keys.js +214 -0
- package/scripts/verify-package.js +168 -0
- package/ui-locales/de.json +637 -0
- package/ui-locales/en.json +688 -0
- package/ui-locales/es.json +637 -0
- package/ui-locales/fr.json +637 -0
- package/ui-locales/ja.json +637 -0
- package/ui-locales/ru.json +637 -0
- package/ui-locales/zh.json +637 -0
- package/utils/admin-auth.js +317 -0
- package/utils/admin-cli.js +353 -0
- package/utils/admin-pin.js +409 -0
- package/utils/detect-language-mismatches.js +454 -0
- package/utils/i18n-helper.js +128 -0
- package/utils/maintain-language-purity.js +433 -0
- package/utils/native-translations.js +478 -0
- package/utils/security.js +384 -0
- package/utils/test-complete-system.js +356 -0
- package/utils/test-console-i18n.js +402 -0
- package/utils/translate-mismatches.js +571 -0
- 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).
|