@scoutello/i18n-magic 0.51.0 → 0.52.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.
@@ -1 +1 @@
1
- {"version":3,"file":"clean.d.ts","sourceRoot":"","sources":["../../src/commands/clean.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAQpD,eAAO,MAAM,gBAAgB,GAAU,QAAQ,aAAa,kBAsF3D,CAAA"}
1
+ {"version":3,"file":"clean.d.ts","sourceRoot":"","sources":["../../src/commands/clean.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAQpD,eAAO,MAAM,gBAAgB,GAAU,QAAQ,aAAa,kBAyF3D,CAAA"}
@@ -24,16 +24,12 @@ export const removeUnusedKeys = async (config) => {
24
24
  }
25
25
  }
26
26
  }
27
- // Process each namespace and locale
28
- for (const namespace of namespaces) {
27
+ // Process each namespace and locale in parallel
28
+ const results = await Promise.all(namespaces.flatMap((namespace) => {
29
29
  const usedKeysSet = keysByNamespace[namespace] || new Set();
30
- // Process each locale
31
- for (const locale of locales) {
32
- // Load existing keys for this locale and namespace
30
+ return locales.map(async (locale) => {
33
31
  const existingKeys = await loadLocalesFile(loadPath, locale, namespace);
34
32
  const existingKeysCount = Object.keys(existingKeys).length;
35
- stats.total += existingKeysCount;
36
- // Create a new object with only the keys that are used
37
33
  const cleanedKeys = {};
38
34
  let removedCount = 0;
39
35
  for (const [key, value] of Object.entries(existingKeys)) {
@@ -44,8 +40,6 @@ export const removeUnusedKeys = async (config) => {
44
40
  removedCount++;
45
41
  }
46
42
  }
47
- stats.removed += removedCount;
48
- // Only write the file if keys were removed
49
43
  if (removedCount > 0) {
50
44
  await writeLocalesFile(savePath, locale, namespace, cleanedKeys);
51
45
  console.log(`✓ Removed ${removedCount} unused keys from ${locale}:${namespace} (${Object.keys(cleanedKeys).length} keys remaining)`);
@@ -53,7 +47,13 @@ export const removeUnusedKeys = async (config) => {
53
47
  else {
54
48
  console.log(`No unused keys found in ${locale}:${namespace}`);
55
49
  }
56
- }
50
+ return { total: existingKeysCount, removed: removedCount };
51
+ });
52
+ }));
53
+ // Aggregate stats from all parallel operations
54
+ for (const result of results) {
55
+ stats.total += result.total;
56
+ stats.removed += result.removed;
57
57
  }
58
58
  if (stats.removed > 0) {
59
59
  console.log(`✅ Removed ${stats.removed} unused keys (out of ${stats.total} total keys)`);
@@ -1 +1 @@
1
- {"version":3,"file":"clean.js","sourceRoot":"","sources":["../../src/commands/clean.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clean.js","sourceRoot":"","sources":["../../src/commands/clean.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"replace.d.ts","sourceRoot":"","sources":["../../src/commands/replace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AA6BpD,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,aAAa,EACrB,MAAM,MAAM,kBAqHb,CAAA"}
1
+ {"version":3,"file":"replace.d.ts","sourceRoot":"","sources":["../../src/commands/replace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AA6BpD,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,aAAa,EACrB,MAAM,MAAM,kBA0Ib,CAAA"}
@@ -18,8 +18,11 @@ export const replaceTranslation = async (config, key) => {
18
18
  });
19
19
  // Build a map of all available keys across all namespaces
20
20
  const allAvailableKeys = {};
21
- for (const namespace of namespaces) {
22
- const keys = await loadLocalesFile(loadPath, defaultLocale, namespace);
21
+ const namespaceKeysResults = await Promise.all(namespaces.map(async (namespace) => ({
22
+ namespace,
23
+ keys: await loadLocalesFile(loadPath, defaultLocale, namespace),
24
+ })));
25
+ for (const { namespace, keys } of namespaceKeysResults) {
23
26
  for (const [keyName, value] of Object.entries(keys)) {
24
27
  if (!allAvailableKeys[keyName]) {
25
28
  allAvailableKeys[keyName] = [];
@@ -64,38 +67,43 @@ export const replaceTranslation = async (config, key) => {
64
67
  targetNamespaces = result.namespaces;
65
68
  }
66
69
  // Show current translations across namespaces
67
- for (const namespace of targetNamespaces) {
70
+ const currentTranslations = await Promise.all(targetNamespaces.map(async (namespace) => {
68
71
  const keys = await loadLocalesFile(loadPath, defaultLocale, namespace);
69
- if (keys[keyToReplace]) {
70
- console.log(`Current translation in ${defaultLocale} (${namespace}): "${keys[keyToReplace]}"`);
72
+ return { namespace, value: keys[keyToReplace] };
73
+ }));
74
+ for (const { namespace, value } of currentTranslations) {
75
+ if (value) {
76
+ console.log(`Current translation in ${defaultLocale} (${namespace}): "${value}"`);
71
77
  }
72
78
  }
73
79
  const newTranslation = await getTextInput("Enter the new translation: ");
74
- // Update the key in all relevant namespaces and locales
75
- for (const namespace of targetNamespaces) {
76
- for (const locale of locales) {
77
- let newValue = "";
78
- if (locale === defaultLocale) {
79
- newValue = newTranslation;
80
- }
81
- else {
82
- const translation = await translateKey({
83
- context,
84
- inputLanguage: defaultLocale,
85
- outputLanguage: locale,
86
- object: {
87
- [keyToReplace]: newTranslation,
88
- },
89
- openai,
90
- model: config.model,
91
- });
92
- newValue = translation[keyToReplace];
93
- }
94
- const existingKeys = await loadLocalesFile(loadPath, locale, namespace);
95
- existingKeys[keyToReplace] = newValue;
96
- await writeLocalesFile(savePath, locale, namespace, existingKeys);
97
- console.log(`Updated "${keyToReplace}" in ${locale} (${namespace}): "${newValue}"`);
98
- }
80
+ // Batch translate for all non-default locales first
81
+ const translationCache = {
82
+ [defaultLocale]: newTranslation,
83
+ };
84
+ const nonDefaultLocales = locales.filter((l) => l !== defaultLocale);
85
+ if (nonDefaultLocales.length > 0) {
86
+ await Promise.all(nonDefaultLocales.map(async (locale) => {
87
+ const translation = await translateKey({
88
+ context,
89
+ inputLanguage: defaultLocale,
90
+ outputLanguage: locale,
91
+ object: {
92
+ [keyToReplace]: newTranslation,
93
+ },
94
+ openai,
95
+ model: config.model,
96
+ });
97
+ translationCache[locale] = translation[keyToReplace];
98
+ }));
99
99
  }
100
+ // Update the key in all relevant namespaces and locales in parallel
101
+ await Promise.all(targetNamespaces.flatMap((namespace) => locales.map(async (locale) => {
102
+ const newValue = translationCache[locale];
103
+ const existingKeys = await loadLocalesFile(loadPath, locale, namespace);
104
+ existingKeys[keyToReplace] = newValue;
105
+ await writeLocalesFile(savePath, locale, namespace, existingKeys);
106
+ console.log(`Updated "${keyToReplace}" in ${locale} (${namespace}): "${newValue}"`);
107
+ })));
100
108
  };
101
109
  //# sourceMappingURL=replace.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"replace.js","sourceRoot":"","sources":["../../src/commands/replace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"replace.js","sourceRoot":"","sources":["../../src/commands/replace.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../src/commands/scan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAapD,eAAO,MAAM,gBAAgB,GAAU,QAAQ,aAAa,kBAwH3D,CAAA"}
1
+ {"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../src/commands/scan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAYpD,eAAO,MAAM,gBAAgB,GAAU,QAAQ,aAAa,kBAmI3D,CAAA"}
@@ -46,13 +46,14 @@ export const translateMissing = async (config) => {
46
46
  return prev;
47
47
  }, {});
48
48
  const allLocales = disableTranslationDuringScan ? [defaultLocale] : locales;
49
- for (const locale of allLocales) {
50
- let translatedValues = {};
51
- if (locale === defaultLocale) {
52
- translatedValues = newKeysObject;
53
- }
54
- else {
55
- translatedValues = await translateKey({
49
+ // Batch translate for all non-default locales in parallel
50
+ const translationCache = {
51
+ [defaultLocale]: newKeysObject,
52
+ };
53
+ const nonDefaultLocales = allLocales.filter((l) => l !== defaultLocale);
54
+ if (nonDefaultLocales.length > 0) {
55
+ await Promise.all(nonDefaultLocales.map(async (locale) => {
56
+ const translatedValues = await translateKey({
56
57
  inputLanguage: defaultLocale,
57
58
  outputLanguage: locale,
58
59
  context,
@@ -60,19 +61,22 @@ export const translateMissing = async (config) => {
60
61
  openai,
61
62
  model: config.model,
62
63
  });
64
+ translationCache[locale] = translatedValues;
65
+ }));
66
+ }
67
+ // Process all locale/namespace combinations in parallel
68
+ await Promise.all(allLocales.flatMap((locale) => namespaces.map(async (namespace) => {
69
+ const existingKeys = await loadLocalesFile(loadPath, locale, namespace);
70
+ const relevantKeys = newKeysWithDefaultLocale.filter((key) => key.namespaces?.includes(namespace));
71
+ if (relevantKeys.length === 0) {
72
+ return;
63
73
  }
64
- for (const namespace of namespaces) {
65
- const existingKeys = await loadLocalesFile(loadPath, locale, namespace);
66
- const relevantKeys = newKeysWithDefaultLocale.filter((key) => key.namespaces?.includes(namespace));
67
- if (relevantKeys.length === 0) {
68
- continue;
69
- }
70
- for (const key of relevantKeys) {
71
- existingKeys[key.key] = translatedValues[key.key];
72
- }
73
- writeLocalesFile(savePath, locale, namespace, existingKeys);
74
+ const translatedValues = translationCache[locale];
75
+ for (const key of relevantKeys) {
76
+ existingKeys[key.key] = translatedValues[key.key];
74
77
  }
75
- }
78
+ await writeLocalesFile(savePath, locale, namespace, existingKeys);
79
+ })));
76
80
  await checkAllKeysExist(config);
77
81
  console.log(`Successfully translated ${newKeys.length} keys.`);
78
82
  };
@@ -1 +1 @@
1
- {"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/commands/scan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/commands/scan.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"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"}
package/dist/lib/utils.js CHANGED
@@ -477,67 +477,47 @@ export class TranslationError extends Error {
477
477
  */
478
478
  export const addTranslationKey = async ({ key, value, config, }) => {
479
479
  const { loadPath, savePath, defaultNamespace, namespaces, globPatterns, defaultLocale, openai, context, model } = config;
480
- // Use console.error for logging when called from MCP server (console.log is suppressed)
481
- const log = console.log;
482
- // Validate that config has required fields
483
- if (!loadPath || !savePath) {
484
- throw new Error("Config must have loadPath and savePath defined");
485
- }
486
- if (!namespaces || namespaces.length === 0) {
487
- throw new Error("Config must have at least one namespace defined");
488
- }
489
480
  // Try to find which namespaces this key is used in by scanning the codebase
490
481
  const affectedNamespaces = [];
491
482
  try {
492
- log(`🔍 Scanning codebase for key "${key}"...`);
493
- log(` Glob patterns: ${extractGlobPatterns(globPatterns).length} pattern(s)`);
494
- log(` Default namespace: ${defaultNamespace}`);
495
483
  // Scan the codebase to find where this key is already being used
496
484
  const keysWithNamespaces = await getKeysWithNamespaces({
497
485
  globPatterns,
498
486
  defaultNamespace,
499
487
  });
500
- log(` Scanned ${keysWithNamespaces.length} total key instances across all files`);
501
488
  // Find entries for this specific key
502
- const keyEntries = keysWithNamespaces.filter((entry) => entry.key === key || entry.key === `${defaultNamespace}:${key}` || entry.key.endsWith(`:${key}`));
503
- log(` Found ${keyEntries.length} instance(s) of key "${key}"`);
489
+ const keyEntries = keysWithNamespaces.filter((entry) => entry.key === key || entry.key === `${defaultNamespace}:${key}`);
504
490
  // Collect unique namespaces where this key is used
505
491
  const foundNamespaces = new Set();
506
492
  for (const entry of keyEntries) {
507
- log(` File: ${entry.file} → Namespaces: ${entry.namespaces.join(", ")}`);
508
493
  for (const ns of entry.namespaces) {
509
494
  foundNamespaces.add(ns);
510
495
  }
511
496
  }
512
497
  if (foundNamespaces.size > 0) {
513
498
  affectedNamespaces.push(...Array.from(foundNamespaces));
514
- log(`✓ Found key "${key}" in use across ${affectedNamespaces.length} namespace(s): ${affectedNamespaces.join(", ")}`);
499
+ console.log(`🔍 Found key "${key}" in use across ${affectedNamespaces.length} namespace(s): ${affectedNamespaces.join(", ")}`);
515
500
  }
516
501
  }
517
502
  catch (error) {
518
- // If scanning fails, log the error with details but continue with fallback logic
519
- log(`⚠️ Warning: Failed to scan codebase for key usage`);
520
- if (error instanceof Error) {
521
- log(` Error: ${error.message}`);
522
- if (error.stack) {
523
- log(` Stack trace: ${error.stack}`);
524
- }
525
- }
503
+ // If scanning fails, continue with fallback logic
504
+ console.error(`Warning: Failed to scan codebase for key usage: ${error}`);
526
505
  }
527
506
  if (affectedNamespaces.length === 0) {
528
507
  // If the key is not found in the codebase, use the default namespace
529
508
  affectedNamespaces.push(defaultNamespace);
530
- log(`📝 Key "${key}" not found in codebase. Adding to default namespace "${defaultNamespace}".`);
509
+ console.log(`📝 Key "${key}" not found in codebase. Adding to default namespace "${defaultNamespace}".`);
531
510
  }
532
511
  // Always use "en" as the locale for adding keys (English)
533
512
  const locale = "en";
513
+ // Use console.error for logging when called from MCP server (console.log is suppressed)
514
+ const log = console.log;
534
515
  for (const targetNamespace of affectedNamespaces) {
535
516
  log(`➕ Adding translation key "${key}" to namespace "${targetNamespace}" (${locale})`);
536
517
  // Load existing keys for the English locale
537
518
  let existingKeys;
538
519
  try {
539
520
  existingKeys = await loadLocalesFile(loadPath, locale, targetNamespace);
540
- log(` Loaded ${Object.keys(existingKeys).length} existing keys from ${locale}/${targetNamespace}`);
541
521
  }
542
522
  catch (error) {
543
523
  // If file doesn't exist, start with empty object
@@ -555,51 +535,37 @@ export const addTranslationKey = async ({ key, value, config, }) => {
555
535
  await writeLocalesFile(savePath, locale, targetNamespace, existingKeys);
556
536
  log(`✅ Successfully saved key to ${locale}/${targetNamespace}`);
557
537
  // If defaultLocale is different from "en", translate and save to defaultLocale
558
- if (defaultLocale !== "en") {
559
- if (!openai) {
560
- log(`⚠️ No OpenAI client configured. Skipping translation to ${defaultLocale}.`);
561
- log(` You can run 'i18n-magic sync' to translate this key later`);
562
- }
563
- else if (!model) {
564
- log(`⚠️ No model specified in config. Skipping translation to ${defaultLocale}.`);
565
- log(` You can run 'i18n-magic sync' to translate this key later`);
566
- }
567
- else {
568
- log(`🌐 Translating key "${key}" to ${defaultLocale}...`);
569
- log(` Using model: ${model}`);
538
+ if (defaultLocale !== "en" && openai) {
539
+ log(`🌐 Translating key "${key}" to ${defaultLocale}...`);
540
+ try {
541
+ // Translate the single key
542
+ const translatedValue = await translateKey({
543
+ inputLanguage: "en",
544
+ outputLanguage: defaultLocale,
545
+ context: context || "",
546
+ object: { [key]: value },
547
+ openai,
548
+ model,
549
+ });
550
+ // Load existing keys for the default locale
551
+ let defaultLocaleKeys;
570
552
  try {
571
- // Translate the single key
572
- const translatedValue = await translateKey({
573
- inputLanguage: "en",
574
- outputLanguage: defaultLocale,
575
- context: context || "",
576
- object: { [key]: value },
577
- openai,
578
- model: model,
579
- });
580
- // Load existing keys for the default locale
581
- let defaultLocaleKeys;
582
- try {
583
- defaultLocaleKeys = await loadLocalesFile(loadPath, defaultLocale, targetNamespace);
584
- }
585
- catch (error) {
586
- // If file doesn't exist, start with empty object
587
- log(`📄 Creating new namespace file for ${defaultLocale}/${targetNamespace}`);
588
- defaultLocaleKeys = {};
589
- }
590
- // Add the translated key
591
- defaultLocaleKeys[key] = translatedValue[key];
592
- // Save the updated keys
593
- await writeLocalesFile(savePath, defaultLocale, targetNamespace, defaultLocaleKeys);
594
- log(`✅ Successfully translated and saved key to ${defaultLocale}/${targetNamespace}`);
553
+ defaultLocaleKeys = await loadLocalesFile(loadPath, defaultLocale, targetNamespace);
595
554
  }
596
555
  catch (error) {
597
- log(`⚠️ Failed to translate key to ${defaultLocale}: ${error instanceof Error ? error.message : "Unknown error"}`);
598
- if (error instanceof Error && error.stack) {
599
- log(` Stack: ${error.stack}`);
600
- }
601
- log(` You can run 'i18n-magic sync' to translate this key later`);
556
+ // If file doesn't exist, start with empty object
557
+ log(`📄 Creating new namespace file for ${defaultLocale}/${targetNamespace}`);
558
+ defaultLocaleKeys = {};
602
559
  }
560
+ // Add the translated key
561
+ defaultLocaleKeys[key] = translatedValue[key];
562
+ // Save the updated keys
563
+ await writeLocalesFile(savePath, defaultLocale, targetNamespace, defaultLocaleKeys);
564
+ log(`✅ Successfully translated and saved key to ${defaultLocale}/${targetNamespace}`);
565
+ }
566
+ catch (error) {
567
+ log(`⚠️ Failed to translate key to ${defaultLocale}: ${error instanceof Error ? error.message : "Unknown error"}`);
568
+ log(` You can run 'i18n-magic sync' to translate this key later`);
603
569
  }
604
570
  }
605
571
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,6 @@
1
1
  {
2
-
3
2
  "name": "@scoutello/i18n-magic",
4
- "version": "0.51.0",
3
+ "version": "0.52.0",
5
4
  "private": false,
6
5
  "license": "MIT",
7
6
  "description": "Intelligent CLI toolkit that automates internationalization workflows with AI-powered translations for JavaScript/TypeScript projects",
@@ -47,7 +46,10 @@
47
46
  "types": "./dist/index.d.ts"
48
47
  }
49
48
  },
50
- "files": ["dist", "src"],
49
+ "files": [
50
+ "dist",
51
+ "src"
52
+ ],
51
53
  "scripts": {
52
54
  "analyze": "size-limit --why",
53
55
  "build": "tsc && echo '#!/usr/bin/env node' | cat - dist/cli.js > temp && mv temp dist/cli.js && chmod +x dist/cli.js && echo '#!/usr/bin/env node' | cat - dist/mcp-server.js > temp && mv temp dist/mcp-server.js && chmod +x dist/mcp-server.js",
@@ -89,4 +91,4 @@
89
91
  "typescript": "^5.9.2"
90
92
  },
91
93
  "packageManager": "pnpm@10.2.1+sha512.398035c7bd696d0ba0b10a688ed558285329d27ea994804a52bad9167d8e3a72bcb993f9699585d3ca25779ac64949ef422757a6c31102c12ab932e5cbe5cc92"
92
- }
94
+ }
@@ -44,43 +44,46 @@ export const removeUnusedKeys = async (config: Configuration) => {
44
44
  }
45
45
  }
46
46
 
47
- // Process each namespace and locale
48
- for (const namespace of namespaces) {
49
- const usedKeysSet = keysByNamespace[namespace] || new Set()
47
+ // Process each namespace and locale in parallel
48
+ const results = await Promise.all(
49
+ namespaces.flatMap((namespace) => {
50
+ const usedKeysSet = keysByNamespace[namespace] || new Set()
50
51
 
51
- // Process each locale
52
- for (const locale of locales) {
53
- // Load existing keys for this locale and namespace
54
- const existingKeys = await loadLocalesFile(loadPath, locale, namespace)
55
- const existingKeysCount = Object.keys(existingKeys).length
56
- stats.total += existingKeysCount
52
+ return locales.map(async (locale) => {
53
+ const existingKeys = await loadLocalesFile(loadPath, locale, namespace)
54
+ const existingKeysCount = Object.keys(existingKeys).length
57
55
 
58
- // Create a new object with only the keys that are used
59
- const cleanedKeys: Record<string, string> = {}
60
- let removedCount = 0
56
+ const cleanedKeys: Record<string, string> = {}
57
+ let removedCount = 0
61
58
 
62
- for (const [key, value] of Object.entries(existingKeys)) {
63
- if (usedKeysSet.has(key)) {
64
- cleanedKeys[key] = value
59
+ for (const [key, value] of Object.entries(existingKeys)) {
60
+ if (usedKeysSet.has(key)) {
61
+ cleanedKeys[key] = value
62
+ } else {
63
+ removedCount++
64
+ }
65
+ }
66
+
67
+ if (removedCount > 0) {
68
+ await writeLocalesFile(savePath, locale, namespace, cleanedKeys)
69
+ console.log(
70
+ `✓ Removed ${removedCount} unused keys from ${locale}:${namespace} (${
71
+ Object.keys(cleanedKeys).length
72
+ } keys remaining)`,
73
+ )
65
74
  } else {
66
- removedCount++
75
+ console.log(`No unused keys found in ${locale}:${namespace}`)
67
76
  }
68
- }
69
77
 
70
- stats.removed += removedCount
78
+ return { total: existingKeysCount, removed: removedCount }
79
+ })
80
+ })
81
+ )
71
82
 
72
- // Only write the file if keys were removed
73
- if (removedCount > 0) {
74
- await writeLocalesFile(savePath, locale, namespace, cleanedKeys)
75
- console.log(
76
- `✓ Removed ${removedCount} unused keys from ${locale}:${namespace} (${
77
- Object.keys(cleanedKeys).length
78
- } keys remaining)`,
79
- )
80
- } else {
81
- console.log(`No unused keys found in ${locale}:${namespace}`)
82
- }
83
- }
83
+ // Aggregate stats from all parallel operations
84
+ for (const result of results) {
85
+ stats.total += result.total
86
+ stats.removed += result.removed
84
87
  }
85
88
 
86
89
  if (stats.removed > 0) {
@@ -55,8 +55,14 @@ export const replaceTranslation = async (
55
55
  { namespace: string; value: string }[]
56
56
  > = {}
57
57
 
58
- for (const namespace of namespaces) {
59
- const keys = await loadLocalesFile(loadPath, defaultLocale, namespace)
58
+ const namespaceKeysResults = await Promise.all(
59
+ namespaces.map(async (namespace) => ({
60
+ namespace,
61
+ keys: await loadLocalesFile(loadPath, defaultLocale, namespace),
62
+ }))
63
+ )
64
+
65
+ for (const { namespace, keys } of namespaceKeysResults) {
60
66
  for (const [keyName, value] of Object.entries(keys)) {
61
67
  if (!allAvailableKeys[keyName]) {
62
68
  allAvailableKeys[keyName] = []
@@ -105,24 +111,32 @@ export const replaceTranslation = async (
105
111
  }
106
112
 
107
113
  // Show current translations across namespaces
108
- for (const namespace of targetNamespaces) {
109
- const keys = await loadLocalesFile(loadPath, defaultLocale, namespace)
110
- if (keys[keyToReplace]) {
114
+ const currentTranslations = await Promise.all(
115
+ targetNamespaces.map(async (namespace) => {
116
+ const keys = await loadLocalesFile(loadPath, defaultLocale, namespace)
117
+ return { namespace, value: keys[keyToReplace] }
118
+ })
119
+ )
120
+
121
+ for (const { namespace, value } of currentTranslations) {
122
+ if (value) {
111
123
  console.log(
112
- `Current translation in ${defaultLocale} (${namespace}): "${keys[keyToReplace]}"`,
124
+ `Current translation in ${defaultLocale} (${namespace}): "${value}"`,
113
125
  )
114
126
  }
115
127
  }
116
128
 
117
129
  const newTranslation = await getTextInput("Enter the new translation: ")
118
130
 
119
- // Update the key in all relevant namespaces and locales
120
- for (const namespace of targetNamespaces) {
121
- for (const locale of locales) {
122
- let newValue = ""
123
- if (locale === defaultLocale) {
124
- newValue = newTranslation
125
- } else {
131
+ // Batch translate for all non-default locales first
132
+ const translationCache: Record<string, string> = {
133
+ [defaultLocale]: newTranslation,
134
+ }
135
+
136
+ const nonDefaultLocales = locales.filter((l) => l !== defaultLocale)
137
+ if (nonDefaultLocales.length > 0) {
138
+ await Promise.all(
139
+ nonDefaultLocales.map(async (locale) => {
126
140
  const translation = await translateKey({
127
141
  context,
128
142
  inputLanguage: defaultLocale,
@@ -133,17 +147,24 @@ export const replaceTranslation = async (
133
147
  openai,
134
148
  model: config.model,
135
149
  })
136
-
137
- newValue = translation[keyToReplace]
138
- }
139
-
140
- const existingKeys = await loadLocalesFile(loadPath, locale, namespace)
141
- existingKeys[keyToReplace] = newValue
142
- await writeLocalesFile(savePath, locale, namespace, existingKeys)
143
-
144
- console.log(
145
- `Updated "${keyToReplace}" in ${locale} (${namespace}): "${newValue}"`,
146
- )
147
- }
150
+ translationCache[locale] = translation[keyToReplace]
151
+ })
152
+ )
148
153
  }
154
+
155
+ // Update the key in all relevant namespaces and locales in parallel
156
+ await Promise.all(
157
+ targetNamespaces.flatMap((namespace) =>
158
+ locales.map(async (locale) => {
159
+ const newValue = translationCache[locale]
160
+ const existingKeys = await loadLocalesFile(loadPath, locale, namespace)
161
+ existingKeys[keyToReplace] = newValue
162
+ await writeLocalesFile(savePath, locale, namespace, existingKeys)
163
+
164
+ console.log(
165
+ `Updated "${keyToReplace}" in ${locale} (${namespace}): "${newValue}"`,
166
+ )
167
+ })
168
+ )
169
+ )
149
170
  }
@@ -3,7 +3,6 @@ import {
3
3
  checkAllKeysExist,
4
4
  getMissingKeys,
5
5
  getTextInput,
6
- findExistingTranslation,
7
6
  findExistingTranslations,
8
7
  loadLocalesFile,
9
8
  translateKey,
@@ -93,40 +92,51 @@ export const translateMissing = async (config: Configuration) => {
93
92
 
94
93
  const allLocales = disableTranslationDuringScan ? [defaultLocale] : locales
95
94
 
96
- for (const locale of allLocales) {
97
- let translatedValues = {}
95
+ // Batch translate for all non-default locales in parallel
96
+ const translationCache: Record<string, Record<string, string>> = {
97
+ [defaultLocale]: newKeysObject,
98
+ }
98
99
 
99
- if (locale === defaultLocale) {
100
- translatedValues = newKeysObject
101
- } else {
102
- translatedValues = await translateKey({
103
- inputLanguage: defaultLocale,
104
- outputLanguage: locale,
105
- context,
106
- object: newKeysObject,
107
- openai,
108
- model: config.model,
100
+ const nonDefaultLocales = allLocales.filter((l) => l !== defaultLocale)
101
+ if (nonDefaultLocales.length > 0) {
102
+ await Promise.all(
103
+ nonDefaultLocales.map(async (locale) => {
104
+ const translatedValues = await translateKey({
105
+ inputLanguage: defaultLocale,
106
+ outputLanguage: locale,
107
+ context,
108
+ object: newKeysObject,
109
+ openai,
110
+ model: config.model,
111
+ })
112
+ translationCache[locale] = translatedValues
109
113
  })
110
- }
114
+ )
115
+ }
111
116
 
112
- for (const namespace of namespaces) {
113
- const existingKeys = await loadLocalesFile(loadPath, locale, namespace)
117
+ // Process all locale/namespace combinations in parallel
118
+ await Promise.all(
119
+ allLocales.flatMap((locale) =>
120
+ namespaces.map(async (namespace) => {
121
+ const existingKeys = await loadLocalesFile(loadPath, locale, namespace)
114
122
 
115
- const relevantKeys = newKeysWithDefaultLocale.filter((key) =>
116
- key.namespaces?.includes(namespace),
117
- )
123
+ const relevantKeys = newKeysWithDefaultLocale.filter((key) =>
124
+ key.namespaces?.includes(namespace),
125
+ )
118
126
 
119
- if (relevantKeys.length === 0) {
120
- continue
121
- }
127
+ if (relevantKeys.length === 0) {
128
+ return
129
+ }
122
130
 
123
- for (const key of relevantKeys) {
124
- existingKeys[key.key] = translatedValues[key.key]
125
- }
131
+ const translatedValues = translationCache[locale]
132
+ for (const key of relevantKeys) {
133
+ existingKeys[key.key] = translatedValues[key.key]
134
+ }
126
135
 
127
- writeLocalesFile(savePath, locale, namespace, existingKeys)
128
- }
129
- }
136
+ await writeLocalesFile(savePath, locale, namespace, existingKeys)
137
+ })
138
+ )
139
+ )
130
140
 
131
141
  await checkAllKeysExist(config)
132
142
 
package/src/lib/utils.ts CHANGED
@@ -703,45 +703,24 @@ export const addTranslationKey = async ({
703
703
  }) => {
704
704
  const { loadPath, savePath, defaultNamespace, namespaces, globPatterns, defaultLocale, openai, context, model } = config
705
705
 
706
- // Use console.error for logging when called from MCP server (console.log is suppressed)
707
- const log = console.log
708
-
709
- // Validate that config has required fields
710
- if (!loadPath || !savePath) {
711
- throw new Error("Config must have loadPath and savePath defined")
712
- }
713
-
714
- if (!namespaces || namespaces.length === 0) {
715
- throw new Error("Config must have at least one namespace defined")
716
- }
717
-
718
706
  // Try to find which namespaces this key is used in by scanning the codebase
719
707
  const affectedNamespaces: string[] = []
720
708
 
721
709
  try {
722
- log(`🔍 Scanning codebase for key "${key}"...`)
723
- log(` Glob patterns: ${extractGlobPatterns(globPatterns).length} pattern(s)`)
724
- log(` Default namespace: ${defaultNamespace}`)
725
-
726
710
  // Scan the codebase to find where this key is already being used
727
711
  const keysWithNamespaces = await getKeysWithNamespaces({
728
712
  globPatterns,
729
713
  defaultNamespace,
730
714
  })
731
715
 
732
- log(` Scanned ${keysWithNamespaces.length} total key instances across all files`)
733
-
734
716
  // Find entries for this specific key
735
717
  const keyEntries = keysWithNamespaces.filter(
736
- (entry) => entry.key === key || entry.key === `${defaultNamespace}:${key}` || entry.key.endsWith(`:${key}`)
718
+ (entry) => entry.key === key || entry.key === `${defaultNamespace}:${key}`
737
719
  )
738
720
 
739
- log(` Found ${keyEntries.length} instance(s) of key "${key}"`)
740
-
741
721
  // Collect unique namespaces where this key is used
742
722
  const foundNamespaces = new Set<string>()
743
723
  for (const entry of keyEntries) {
744
- log(` File: ${entry.file} → Namespaces: ${entry.namespaces.join(", ")}`)
745
724
  for (const ns of entry.namespaces) {
746
725
  foundNamespaces.add(ns)
747
726
  }
@@ -749,25 +728,19 @@ export const addTranslationKey = async ({
749
728
 
750
729
  if (foundNamespaces.size > 0) {
751
730
  affectedNamespaces.push(...Array.from(foundNamespaces))
752
- log(
753
- `✓ Found key "${key}" in use across ${affectedNamespaces.length} namespace(s): ${affectedNamespaces.join(", ")}`
731
+ console.log(
732
+ `🔍 Found key "${key}" in use across ${affectedNamespaces.length} namespace(s): ${affectedNamespaces.join(", ")}`
754
733
  )
755
734
  }
756
735
  } catch (error) {
757
- // If scanning fails, log the error with details but continue with fallback logic
758
- log(`⚠️ Warning: Failed to scan codebase for key usage`)
759
- if (error instanceof Error) {
760
- log(` Error: ${error.message}`)
761
- if (error.stack) {
762
- log(` Stack trace: ${error.stack}`)
763
- }
764
- }
736
+ // If scanning fails, continue with fallback logic
737
+ console.error(`Warning: Failed to scan codebase for key usage: ${error}`)
765
738
  }
766
739
 
767
740
  if (affectedNamespaces.length === 0) {
768
741
  // If the key is not found in the codebase, use the default namespace
769
742
  affectedNamespaces.push(defaultNamespace)
770
- log(
743
+ console.log(
771
744
  `📝 Key "${key}" not found in codebase. Adding to default namespace "${defaultNamespace}".`
772
745
  )
773
746
  }
@@ -775,6 +748,9 @@ export const addTranslationKey = async ({
775
748
  // Always use "en" as the locale for adding keys (English)
776
749
  const locale = "en"
777
750
 
751
+ // Use console.error for logging when called from MCP server (console.log is suppressed)
752
+ const log = console.log
753
+
778
754
  for (const targetNamespace of affectedNamespaces) {
779
755
  log(`➕ Adding translation key "${key}" to namespace "${targetNamespace}" (${locale})`)
780
756
 
@@ -782,7 +758,6 @@ export const addTranslationKey = async ({
782
758
  let existingKeys: Record<string, string>
783
759
  try {
784
760
  existingKeys = await loadLocalesFile(loadPath, locale, targetNamespace)
785
- log(` Loaded ${Object.keys(existingKeys).length} existing keys from ${locale}/${targetNamespace}`)
786
761
  } catch (error) {
787
762
  // If file doesn't exist, start with empty object
788
763
  log(`📄 Creating new namespace file for ${locale}/${targetNamespace}`)
@@ -803,51 +778,39 @@ export const addTranslationKey = async ({
803
778
  log(`✅ Successfully saved key to ${locale}/${targetNamespace}`)
804
779
 
805
780
  // If defaultLocale is different from "en", translate and save to defaultLocale
806
- if (defaultLocale !== "en") {
807
- if (!openai) {
808
- log(`⚠️ No OpenAI client configured. Skipping translation to ${defaultLocale}.`)
809
- log(` You can run 'i18n-magic sync' to translate this key later`)
810
- } else if (!model) {
811
- log(`⚠️ No model specified in config. Skipping translation to ${defaultLocale}.`)
812
- log(` You can run 'i18n-magic sync' to translate this key later`)
813
- } else {
814
- log(`🌐 Translating key "${key}" to ${defaultLocale}...`)
815
- log(` Using model: ${model}`)
816
-
817
- try {
818
- // Translate the single key
819
- const translatedValue = await translateKey({
820
- inputLanguage: "en",
821
- outputLanguage: defaultLocale,
822
- context: context || "",
823
- object: { [key]: value },
824
- openai,
825
- model: model as string,
826
- })
827
-
828
- // Load existing keys for the default locale
829
- let defaultLocaleKeys: Record<string, string>
830
- try {
831
- defaultLocaleKeys = await loadLocalesFile(loadPath, defaultLocale, targetNamespace)
832
- } catch (error) {
833
- // If file doesn't exist, start with empty object
834
- log(`📄 Creating new namespace file for ${defaultLocale}/${targetNamespace}`)
835
- defaultLocaleKeys = {}
836
- }
837
-
838
- // Add the translated key
839
- defaultLocaleKeys[key] = translatedValue[key]
781
+ if (defaultLocale !== "en" && openai) {
782
+ log(`🌐 Translating key "${key}" to ${defaultLocale}...`)
783
+
784
+ try {
785
+ // Translate the single key
786
+ const translatedValue = await translateKey({
787
+ inputLanguage: "en",
788
+ outputLanguage: defaultLocale,
789
+ context: context || "",
790
+ object: { [key]: value },
791
+ openai,
792
+ model,
793
+ })
840
794
 
841
- // Save the updated keys
842
- await writeLocalesFile(savePath, defaultLocale, targetNamespace, defaultLocaleKeys)
843
- log(`✅ Successfully translated and saved key to ${defaultLocale}/${targetNamespace}`)
795
+ // Load existing keys for the default locale
796
+ let defaultLocaleKeys: Record<string, string>
797
+ try {
798
+ defaultLocaleKeys = await loadLocalesFile(loadPath, defaultLocale, targetNamespace)
844
799
  } catch (error) {
845
- log(`⚠️ Failed to translate key to ${defaultLocale}: ${error instanceof Error ? error.message : "Unknown error"}`)
846
- if (error instanceof Error && error.stack) {
847
- log(` Stack: ${error.stack}`)
848
- }
849
- log(` You can run 'i18n-magic sync' to translate this key later`)
800
+ // If file doesn't exist, start with empty object
801
+ log(`📄 Creating new namespace file for ${defaultLocale}/${targetNamespace}`)
802
+ defaultLocaleKeys = {}
850
803
  }
804
+
805
+ // Add the translated key
806
+ defaultLocaleKeys[key] = translatedValue[key]
807
+
808
+ // Save the updated keys
809
+ await writeLocalesFile(savePath, defaultLocale, targetNamespace, defaultLocaleKeys)
810
+ log(`✅ Successfully translated and saved key to ${defaultLocale}/${targetNamespace}`)
811
+ } catch (error) {
812
+ log(`⚠️ Failed to translate key to ${defaultLocale}: ${error instanceof Error ? error.message : "Unknown error"}`)
813
+ log(` You can run 'i18n-magic sync' to translate this key later`)
851
814
  }
852
815
  }
853
816
  }