i18ntk 2.0.4 → 2.2.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 (57) hide show
  1. package/README.md +38 -60
  2. package/main/i18ntk-analyze.js +49 -44
  3. package/main/i18ntk-complete.js +75 -74
  4. package/main/i18ntk-fixer.js +3 -3
  5. package/main/i18ntk-init.js +5 -5
  6. package/main/i18ntk-scanner.js +2 -2
  7. package/main/i18ntk-sizing.js +35 -35
  8. package/main/i18ntk-summary.js +4 -4
  9. package/main/i18ntk-ui.js +54 -8
  10. package/main/i18ntk-usage.js +14 -14
  11. package/main/i18ntk-validate.js +6 -5
  12. package/main/manage/commands/AnalyzeCommand.js +40 -35
  13. package/main/manage/commands/FixerCommand.js +2 -2
  14. package/main/manage/commands/ScannerCommand.js +2 -2
  15. package/main/manage/commands/ValidateCommand.js +9 -9
  16. package/main/manage/index.js +147 -75
  17. package/main/manage/managers/LanguageMenu.js +7 -2
  18. package/main/manage/services/UsageService.js +7 -7
  19. package/package.json +269 -290
  20. package/settings/settings-cli.js +3 -3
  21. package/ui-locales/de.json +161 -166
  22. package/ui-locales/en.json +13 -18
  23. package/ui-locales/es.json +171 -184
  24. package/ui-locales/fr.json +155 -161
  25. package/ui-locales/ja.json +192 -243
  26. package/ui-locales/ru.json +145 -196
  27. package/ui-locales/zh.json +179 -185
  28. package/utils/cli-helper.js +26 -98
  29. package/utils/extractors/regex.js +39 -12
  30. package/utils/i18n-helper.js +88 -40
  31. package/{scripts → utils}/locale-optimizer.js +61 -60
  32. package/utils/security-check-improved.js +16 -13
  33. package/utils/security.js +6 -4
  34. package/main/i18ntk-go.js +0 -283
  35. package/main/i18ntk-java.js +0 -380
  36. package/main/i18ntk-js.js +0 -512
  37. package/main/i18ntk-manage.js +0 -1694
  38. package/main/i18ntk-php.js +0 -462
  39. package/main/i18ntk-py.js +0 -379
  40. package/main/i18ntk-settings.js +0 -23
  41. package/main/manage/index-fixed.js +0 -1447
  42. package/main/manage/services/ConfigurationService-fixed.js +0 -449
  43. package/scripts/build-lite.js +0 -279
  44. package/scripts/deprecate-versions.js +0 -317
  45. package/scripts/export-translations.js +0 -84
  46. package/scripts/fix-all-i18n.js +0 -215
  47. package/scripts/fix-and-purify-i18n.js +0 -213
  48. package/scripts/fix-locale-control-chars.js +0 -110
  49. package/scripts/lint-locales.js +0 -80
  50. package/scripts/prepublish.js +0 -348
  51. package/scripts/security-check.js +0 -117
  52. package/scripts/sync-translations.js +0 -151
  53. package/scripts/sync-ui-locales.js +0 -20
  54. package/scripts/validate-all-translations.js +0 -139
  55. package/scripts/verify-deprecations.js +0 -157
  56. package/scripts/verify-translations.js +0 -63
  57. package/utils/security-fixed.js +0 -607
package/package.json CHANGED
@@ -1,290 +1,269 @@
1
- {
2
- "name": "i18ntk",
3
- "version": "2.0.4",
4
- "description": "🚀 The fastest i18n toolkit with 97% performance boost! Zero-dependency, enterprise-grade internationalization for React, Vue, Angular, Python, Java, PHP & more. Features PIN protection, auto framework detection, 7+ UI languages, and comprehensive translation management. Perfect for startups to enterprises.",
5
- "keywords": [
6
- "i18n",
7
- "internationalization",
8
- "localization",
9
- "translation",
10
- "l10n",
11
- "multilingual",
12
- "globalization",
13
- "i18next",
14
- "react-i18next",
15
- "vue-i18n",
16
- "angular-i18n",
17
- "next-i18next",
18
- "nuxt-i18n",
19
- "svelte-i18n",
20
- "django",
21
- "flask",
22
- "fastapi",
23
- "laravel",
24
- "spring-boot",
25
- "nodejs",
26
- "javascript",
27
- "typescript",
28
- "cli",
29
- "command-line",
30
- "automation",
31
- "developer-tools",
32
- "productivity",
33
- "translation-management",
34
- "language-support",
35
- "framework-detection",
36
- "zero-dependency",
37
- "lightweight",
38
- "fast",
39
- "performance",
40
- "security",
41
- "enterprise",
42
- "devops",
43
- "ci-cd",
44
- "json",
45
- "yaml",
46
- "csv",
47
- "po",
48
- "xliff",
49
- "android",
50
- "ios",
51
- "react-native",
52
- "flutter",
53
- "expo",
54
- "electron",
55
- "desktop",
56
- "mobile",
57
- "web",
58
- "full-stack",
59
- "backend",
60
- "frontend",
61
- "api",
62
- "microservices",
63
- "serverless",
64
- "docker",
65
- "kubernetes",
66
- "cloud",
67
- "aws",
68
- "azure",
69
- "gcp",
70
- "saas",
71
- "paas",
72
- "open-source",
73
- "free",
74
- "npm",
75
- "package",
76
- "tool",
77
- "utility",
78
- "workflow",
79
- "efficiency",
80
- "best-practices",
81
- "standards",
82
- "compliance",
83
- "accessibility",
84
- "a11y",
85
- "seo",
86
- "marketing",
87
- "growth",
88
- "scale",
89
- "startup",
90
- "business",
91
- "professional",
92
- "expert",
93
- "advanced",
94
- "comprehensive",
95
- "complete",
96
- "all-in-one",
97
- "suite",
98
- "platform",
99
- "solution"
100
- ],
101
- "homepage": "https://github.com/vladnoskv/i18ntk#readme",
102
- "bugs": {
103
- "url": "https://github.com/vladnoskv/i18ntk/issues"
104
- },
105
- "repository": {
106
- "type": "git",
107
- "url": "git+https://github.com/vladnoskv/i18ntk.git"
108
- },
109
- "funding": {
110
- "type": "github",
111
- "url": "https://github.com/sponsors/vladnoskv"
112
- },
113
- "license": "MIT",
114
- "author": {
115
- "name": "Vladimir Noskov",
116
- "url": "https://github.com/vladnoskv"
117
- },
118
- "type": "commonjs",
119
- "main": "main/manage/index.js",
120
- "types": "runtime/i18ntk.d.ts",
121
- "exports": {
122
- ".": "./main/manage/index.js",
123
- "./runtime": {
124
- "types": "./runtime/i18ntk.d.ts",
125
- "require": "./runtime/index.js",
126
- "default": "./runtime/index.js"
127
- },
128
- "./runtime/enhanced": {
129
- "types": "./runtime/enhanced.d.ts",
130
- "require": "./runtime/enhanced.js",
131
- "default": "./runtime/enhanced.js"
132
- },
133
- "./runtime/*": "./runtime/*",
134
- "./main/*": "./main/*",
135
- "./utils/*": "./utils/*",
136
- "./settings/*": "./settings/*",
137
- "./scripts/*": "./scripts/*",
138
- "./ui-locales/*": "./ui-locales/*",
139
- "./package.json": "./package.json"
140
- },
141
- "bin": {
142
- "i18ntk": "main/manage/index.js",
143
- "i18ntk-setup": "main/i18ntk-setup.js",
144
- "i18ntk-manage": "main/manage/index.js",
145
- "i18ntk-init": "main/i18ntk-init.js",
146
- "i18ntk-analyze": "main/i18ntk-analyze.js",
147
- "i18ntk-validate": "main/i18ntk-validate.js",
148
- "i18ntk-usage": "main/i18ntk-usage.js",
149
- "i18ntk-complete": "main/i18ntk-complete.js",
150
- "i18ntk-sizing": "main/i18ntk-sizing.js",
151
- "i18ntk-summary": "main/i18ntk-summary.js",
152
- "i18ntk-doctor": "main/i18ntk-doctor.js",
153
- "i18ntk-fixer": "main/i18ntk-fixer.js",
154
- "i18ntk-scanner": "main/i18ntk-scanner.js",
155
- "i18ntk-backup": "main/i18ntk-backup.js"
156
- },
157
- "directories": {
158
- "doc": "docs",
159
- "test": "tests"
160
- },
161
- "files": [
162
- "main/",
163
- "runtime/",
164
- "utils/",
165
- "scripts/",
166
- "settings/",
167
- "ui-locales/",
168
- "LICENSE",
169
- "package.json",
170
- "README.md"
171
- ],
172
- "sideEffects": false,
173
- "scripts": {
174
- "i18ntk": "node main/manage/index.js",
175
- "i18ntk-setup": "node main/i18ntk-setup.js",
176
- "i18ntk-manage": "node main/manage/index.js",
177
- "i18ntk-init": "node main/i18ntk-init.js",
178
- "i18ntk-analyze": "node main/i18ntk-analyze.js",
179
- "i18ntk-validate": "node main/i18ntk-validate.js",
180
- "i18ntk-usage": "node main/i18ntk-usage.js",
181
- "i18ntk-complete": "node main/i18ntk-complete.js",
182
- "i18ntk-sizing": "node main/i18ntk-sizing.js",
183
- "i18ntk-summary": "node main/i18ntk-summary.js",
184
- "i18ntk-doctor": "node main/i18ntk-doctor.js",
185
- "i18ntk-fixer": "node main/i18ntk-fixer.js",
186
- "i18ntk-scanner": "node main/i18ntk-scanner.js",
187
- "i18ntk-backup": "node main/i18ntk-backup.js",
188
- "i18ntk-py": "node main/i18ntk-py.js",
189
- "i18ntk-js": "node main/i18ntk-js.js",
190
- "i18ntk-java": "node main/i18ntk-java.js",
191
- "i18ntk-php": "node main/i18ntk-php.js",
192
- "i18ntk-go": "node main/i18ntk-go.js",
193
- "start": "node main/manage/index.js",
194
- "security:check": "node utils/security-check-improved.js",
195
- "security:test": "node --test tests/security.test.js",
196
- "security:audit": "npm run security:check && npm run security:test",
197
- "test": "npm run security:test",
198
- "test:all": "npm run security:audit",
199
- "prepublishOnly": "npm run security:audit",
200
- "prepare": "npm run security:check",
201
- "backup:create": "node main/i18ntk-backup.js create",
202
- "backup:restore": "node main/i18ntk-backup.js restore",
203
- "backup:list": "node main/i18ntk-backup.js list",
204
- "backup:verify": "node main/i18ntk-backup.js verify",
205
- "backup:cleanup": "node main/i18ntk-backup.js cleanup",
206
- "languages:select": "node settings/settings-cli.js",
207
- "languages:list": "node settings/settings-cli.js --list-languages",
208
- "languages:status": "node settings/settings-cli.js --language-status",
209
- "lint:locales": "node scripts/lint-locales.js",
210
- "deprecate:versions": "node scripts/deprecate-versions.js",
211
- "deprecate:dry-run": "node scripts/deprecate-versions.js --dry-run",
212
- "deprecate:verify": "node scripts/verify-deprecations.js"
213
- },
214
- "engines": {
215
- "node": ">=16.0.0",
216
- "npm": ">=8.0.0"
217
- },
218
- "publishConfig": {
219
- "access": "public"
220
- },
221
- "preferGlobal": true,
222
- "versionInfo": {
223
- "version": "2.0.0",
224
- "releaseDate": "01/01/2026",
225
- "lastUpdated": "11/04/2026",
226
- "maintainer": "Vladimir Noskov",
227
- "changelog": "./CHANGELOG.md",
228
- "documentation": "./README.md",
229
- "apiReference": "./docs/api/API_REFERENCE.md",
230
- "majorChanges": [
231
- "BREAKING: Unified v2 command surface and release metadata",
232
- "SECURITY: Zero runtime dependencies and hardened config IO",
233
- "I18N: Added missing translation keys used by init/fixer/sizing/summary/usage/settings flows",
234
- "RELIABILITY: Initialization detection now honors .i18ntk-config setup state",
235
- "RELIABILITY: Added async safeReadFile/safeWriteFile + safeParseJSON compatibility helpers",
236
- "INIT: Auto-bootstrap source locale file when source language directory is empty"
237
- ],
238
- "breakingChanges": [],
239
- "deprecations": [
240
- "1.0.x",
241
- "1.1.x",
242
- "1.2.x",
243
- "1.3.x",
244
- "1.4.x",
245
- "1.5.x",
246
- "1.6.0",
247
- "1.6.1",
248
- "1.6.2",
249
- "1.6.3",
250
- "1.7.0",
251
- "1.7.1",
252
- "1.7.2",
253
- "1.7.3",
254
- "1.7.4",
255
- "1.7.5",
256
- "1.7.6",
257
- "1.8.0",
258
- "1.8.1",
259
- "1.8.2",
260
- "1.8.3",
261
- "1.9.0",
262
- "1.10.1",
263
- "1.10.2",
264
- "1.10.3"
265
- ],
266
- "nextVersion": "2.1.0",
267
- "supportedNodeVersions": ">=16.0.0",
268
- "supportedFrameworks": {
269
- "react-i18next": ">=11.0.0",
270
- "vue-i18n": ">=9.0.0",
271
- "angular-i18n": ">=12.0.0",
272
- "next-i18next": ">=13.0.0",
273
- "nuxt-i18n": ">=8.0.0",
274
- "svelte-i18n": ">=3.0.0",
275
- "sveltekit-i18n": ">=2.0.0",
276
- "react-native-localize": ">=2.0.0",
277
- "expo-localization": ">=14.0.0",
278
- "ionic-angular": ">=6.0.0",
279
- "ember-intl": ">=5.0.0",
280
- "formatjs": ">=2.0.0",
281
- "i18next": ">=21.0.0",
282
- "django": ">=3.0.0",
283
- "flask-babel": ">=2.0.0",
284
- "fastapi": ">=0.70.0",
285
- "spring-boot": ">=2.5.0",
286
- "laravel": ">=8.0.0"
287
- }
288
- },
289
- "_comment": "This package is zero-dependency and uses only native Node.js modules"
290
- }
1
+ {
2
+ "name": "i18ntk",
3
+ "version": "2.2.0",
4
+ "description": "🚀 The fastest i18n toolkit with 97% performance boost! Zero-dependency, enterprise-grade internationalization for React, Vue, Angular, Python, Java, PHP & more. Features PIN protection, auto framework detection, 7+ UI languages, and comprehensive translation management. Perfect for startups to enterprises.",
5
+ "keywords": [
6
+ "i18n",
7
+ "internationalization",
8
+ "localization",
9
+ "translation",
10
+ "l10n",
11
+ "multilingual",
12
+ "globalization",
13
+ "i18next",
14
+ "react-i18next",
15
+ "vue-i18n",
16
+ "angular-i18n",
17
+ "next-i18next",
18
+ "nuxt-i18n",
19
+ "svelte-i18n",
20
+ "django",
21
+ "flask",
22
+ "fastapi",
23
+ "laravel",
24
+ "spring-boot",
25
+ "nodejs",
26
+ "javascript",
27
+ "typescript",
28
+ "cli",
29
+ "command-line",
30
+ "automation",
31
+ "developer-tools",
32
+ "productivity",
33
+ "translation-management",
34
+ "language-support",
35
+ "framework-detection",
36
+ "zero-dependency",
37
+ "lightweight",
38
+ "fast",
39
+ "performance",
40
+ "security",
41
+ "enterprise",
42
+ "devops",
43
+ "ci-cd",
44
+ "json",
45
+ "yaml",
46
+ "csv",
47
+ "po",
48
+ "xliff",
49
+ "android",
50
+ "ios",
51
+ "react-native",
52
+ "flutter",
53
+ "expo",
54
+ "electron",
55
+ "desktop",
56
+ "mobile",
57
+ "web",
58
+ "full-stack",
59
+ "backend",
60
+ "frontend",
61
+ "api",
62
+ "microservices",
63
+ "serverless",
64
+ "docker",
65
+ "kubernetes",
66
+ "cloud",
67
+ "aws",
68
+ "azure",
69
+ "gcp",
70
+ "saas",
71
+ "paas",
72
+ "open-source",
73
+ "free",
74
+ "npm",
75
+ "package",
76
+ "tool",
77
+ "utility",
78
+ "workflow",
79
+ "efficiency",
80
+ "best-practices",
81
+ "standards",
82
+ "compliance",
83
+ "accessibility",
84
+ "a11y",
85
+ "seo",
86
+ "marketing",
87
+ "growth",
88
+ "scale",
89
+ "startup",
90
+ "business",
91
+ "professional",
92
+ "expert",
93
+ "advanced",
94
+ "comprehensive",
95
+ "complete",
96
+ "all-in-one",
97
+ "suite",
98
+ "platform",
99
+ "solution"
100
+ ],
101
+ "homepage": "https://github.com/vladnoskv/i18ntk#readme",
102
+ "bugs": {
103
+ "url": "https://github.com/vladnoskv/i18ntk/issues"
104
+ },
105
+ "repository": {
106
+ "type": "git",
107
+ "url": "git+https://github.com/vladnoskv/i18ntk.git"
108
+ },
109
+ "funding": {
110
+ "type": "github",
111
+ "url": "https://github.com/sponsors/vladnoskv"
112
+ },
113
+ "license": "MIT",
114
+ "author": {
115
+ "name": "Vladimir Noskov",
116
+ "url": "https://github.com/vladnoskv"
117
+ },
118
+ "type": "commonjs",
119
+ "main": "main/manage/index.js",
120
+ "types": "runtime/i18ntk.d.ts",
121
+ "exports": {
122
+ ".": "./main/manage/index.js",
123
+ "./runtime": {
124
+ "types": "./runtime/i18ntk.d.ts",
125
+ "require": "./runtime/index.js",
126
+ "default": "./runtime/index.js"
127
+ },
128
+ "./runtime/enhanced": {
129
+ "types": "./runtime/enhanced.d.ts",
130
+ "require": "./runtime/enhanced.js",
131
+ "default": "./runtime/enhanced.js"
132
+ },
133
+ "./runtime/*": "./runtime/*",
134
+ "./main/*": "./main/*",
135
+ "./utils/*": "./utils/*",
136
+ "./settings/*": "./settings/*",
137
+ "./ui-locales/*": "./ui-locales/*",
138
+ "./package.json": "./package.json"
139
+ },
140
+ "bin": {
141
+ "i18ntk": "main/manage/index.js",
142
+ "i18ntk-setup": "main/i18ntk-setup.js",
143
+ "i18ntk-manage": "main/manage/index.js",
144
+ "i18ntk-init": "main/i18ntk-init.js",
145
+ "i18ntk-analyze": "main/i18ntk-analyze.js",
146
+ "i18ntk-validate": "main/i18ntk-validate.js",
147
+ "i18ntk-usage": "main/i18ntk-usage.js",
148
+ "i18ntk-complete": "main/i18ntk-complete.js",
149
+ "i18ntk-sizing": "main/i18ntk-sizing.js",
150
+ "i18ntk-summary": "main/i18ntk-summary.js",
151
+ "i18ntk-doctor": "main/i18ntk-doctor.js",
152
+ "i18ntk-fixer": "main/i18ntk-fixer.js",
153
+ "i18ntk-scanner": "main/i18ntk-scanner.js",
154
+ "i18ntk-backup": "main/i18ntk-backup.js"
155
+ },
156
+ "directories": {
157
+ "doc": "docs",
158
+ "test": "tests"
159
+ },
160
+ "files": [
161
+ "main/",
162
+ "runtime/",
163
+ "utils/",
164
+ "settings/",
165
+ "ui-locales/",
166
+ "!main/manage/index-fixed.js",
167
+ "!main/i18ntk-manage.js",
168
+ "!main/i18ntk-py.js",
169
+ "!main/i18ntk-js.js",
170
+ "!main/i18ntk-java.js",
171
+ "!main/i18ntk-php.js",
172
+ "!main/i18ntk-go.js",
173
+ "!main/i18ntk-settings.js",
174
+ "!utils/security-fixed.js",
175
+ "LICENSE",
176
+ "package.json",
177
+ "README.md"
178
+ ],
179
+ "sideEffects": false,
180
+ "scripts": {
181
+ "i18ntk": "node main/manage/index.js",
182
+ "i18ntk-setup": "node main/i18ntk-setup.js",
183
+ "i18ntk-manage": "node main/manage/index.js",
184
+ "i18ntk-init": "node main/i18ntk-init.js",
185
+ "i18ntk-analyze": "node main/i18ntk-analyze.js",
186
+ "i18ntk-validate": "node main/i18ntk-validate.js",
187
+ "i18ntk-usage": "node main/i18ntk-usage.js",
188
+ "i18ntk-complete": "node main/i18ntk-complete.js",
189
+ "i18ntk-sizing": "node main/i18ntk-sizing.js",
190
+ "i18ntk-summary": "node main/i18ntk-summary.js",
191
+ "i18ntk-doctor": "node main/i18ntk-doctor.js",
192
+ "i18ntk-fixer": "node main/i18ntk-fixer.js",
193
+ "i18ntk-scanner": "node main/i18ntk-scanner.js",
194
+ "i18ntk-backup": "node main/i18ntk-backup.js",
195
+ "i18ntk-py": "node main/i18ntk-py.js",
196
+ "i18ntk-js": "node main/i18ntk-js.js",
197
+ "i18ntk-java": "node main/i18ntk-java.js",
198
+ "i18ntk-php": "node main/i18ntk-php.js",
199
+ "i18ntk-go": "node main/i18ntk-go.js",
200
+ "start": "node main/manage/index.js",
201
+ "security:check": "node utils/security-check-improved.js",
202
+ "security:test": "node --test tests/security.test.js",
203
+ "security:audit": "npm run security:check && npm run security:test",
204
+ "test": "npm run security:test",
205
+ "test:all": "npm run security:audit",
206
+ "prepublishOnly": "npm run security:audit",
207
+ "prepare": "npm run security:check",
208
+ "backup:create": "node main/i18ntk-backup.js create",
209
+ "backup:restore": "node main/i18ntk-backup.js restore",
210
+ "backup:list": "node main/i18ntk-backup.js list",
211
+ "backup:verify": "node main/i18ntk-backup.js verify",
212
+ "backup:cleanup": "node main/i18ntk-backup.js cleanup",
213
+ "languages:select": "node settings/settings-cli.js",
214
+ "languages:list": "node settings/settings-cli.js --list-languages",
215
+ "languages:status": "node settings/settings-cli.js --language-status",
216
+ "lint:locales": "node scripts/lint-locales.js",
217
+ "deprecate:versions": "node scripts/deprecate-versions.js",
218
+ "deprecate:dry-run": "node scripts/deprecate-versions.js --dry-run",
219
+ "deprecate:verify": "node scripts/verify-deprecations.js"
220
+ },
221
+ "engines": {
222
+ "node": ">=16.0.0",
223
+ "npm": ">=8.0.0"
224
+ },
225
+ "publishConfig": {
226
+ "access": "public"
227
+ },
228
+ "preferGlobal": true,
229
+ "versionInfo": {
230
+ "version": "2.2.0",
231
+ "releaseDate": "12/04/2026",
232
+ "lastUpdated": "12/04/2026",
233
+ "maintainer": "Vladimir Noskov",
234
+ "changelog": "./CHANGELOG.md",
235
+ "documentation": "./README.md",
236
+ "apiReference": "./docs/api/API_REFERENCE.md",
237
+ "majorChanges": [
238
+ "CRITICAL FIX: Resolved sizing and usage-analysis regressions in v2 command flow.",
239
+ "PACKAGING: Reduced publish footprint by removing internal development scripts and legacy fixed-file artifacts.",
240
+ "SECURITY: Hardened release checks and added explicit support guidance to update from pre-2.2.0 versions.",
241
+ "I18N: Completed internal UI locale parity and actionable untranslated-key cleanup across supported languages."
242
+ ],
243
+ "breakingChanges": [],
244
+ "nextVersion": "2.3.0",
245
+ "supportedNodeVersions": ">=16.0.0",
246
+ "supportedFrameworks": {
247
+ "react-i18next": ">=11.0.0",
248
+ "vue-i18n": ">=9.0.0",
249
+ "angular-i18n": ">=12.0.0",
250
+ "next-i18next": ">=13.0.0",
251
+ "nuxt-i18n": ">=8.0.0",
252
+ "svelte-i18n": ">=3.0.0",
253
+ "sveltekit-i18n": ">=2.0.0",
254
+ "react-native-localize": ">=2.0.0",
255
+ "expo-localization": ">=14.0.0",
256
+ "ionic-angular": ">=6.0.0",
257
+ "ember-intl": ">=5.0.0",
258
+ "formatjs": ">=2.0.0",
259
+ "i18next": ">=21.0.0",
260
+ "django": ">=3.0.0",
261
+ "flask-babel": ">=2.0.0",
262
+ "fastapi": ">=0.70.0",
263
+ "spring-boot": ">=2.5.0",
264
+ "laravel": ">=8.0.0"
265
+ },
266
+ "supportPolicy": "Versions earlier than 2.2.0 may be unstable or insecure. Upgrade to 2.2.0 or newer."
267
+ },
268
+ "_comment": "This package is zero-dependency and uses only native Node.js modules"
269
+ }
@@ -12,7 +12,7 @@ const settingsManager = new SettingsManager();
12
12
  const UIi18n = require('../main/i18ntk-ui');
13
13
  const configManager = require('../utils/config-manager');
14
14
  const { loadTranslations, t } = require('../utils/i18n-helper');
15
- loadTranslations(null, path.resolve(__dirname, '..', 'resources', 'i18n', 'ui-locales'));
15
+ loadTranslations(null, path.resolve(__dirname, '..', 'ui-locales'));
16
16
 
17
17
  const AdminAuth = require('../utils/admin-auth');
18
18
  const uiI18n = new UIi18n();
@@ -610,7 +610,7 @@ class SettingsCLI {
610
610
  }
611
611
  if (key === 'removeUiLanguages') {
612
612
  if (this.rl && this.rl.pause) this.rl.pause();
613
- const LocaleOptimizer = require('../scripts/locale-optimizer.js');
613
+ const LocaleOptimizer = require('../utils/locale-optimizer.js');
614
614
  const optimizer = new LocaleOptimizer();
615
615
  await optimizer.interactiveSelect();
616
616
  // Re-initialize readline if it was closed by locale optimizer
@@ -2135,4 +2135,4 @@ Note: Use arrow keys and Enter to navigate the interactive menu.
2135
2135
  console.error('Stack trace:', error.stack);
2136
2136
  process.exit(1);
2137
2137
  });
2138
- }
2138
+ }