@scoutello/i18n-magic 0.57.2 โ†’ 0.57.4

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":"sync-locales.d.ts","sourceRoot":"","sources":["../../src/commands/sync-locales.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AASpD,eAAO,MAAM,WAAW,GAAU,QAAQ,aAAa,kBAiOtD,CAAA"}
1
+ {"version":3,"file":"sync-locales.d.ts","sourceRoot":"","sources":["../../src/commands/sync-locales.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAepD,eAAO,MAAM,WAAW,GAAU,QAAQ,aAAa,kBAuUtD,CAAA"}
@@ -1,10 +1,33 @@
1
1
  import fs from "node:fs";
2
+ import chalk from "chalk";
3
+ import cliProgress from "cli-progress";
2
4
  import { TranslationError, loadLocalesFile, translateKey, writeLocalesFile, findExistingTranslations, } from "../lib/utils.js";
5
+ import { languages } from "../lib/languges.js";
6
+ const getLanguageLabel = (locale) => {
7
+ const lang = languages.find((l) => l.value === locale);
8
+ return lang?.label || locale;
9
+ };
3
10
  export const syncLocales = async (config) => {
4
11
  const { loadPath, savePath, defaultLocale, namespaces, locales, context, openai, } = config;
5
- console.log(`๐Ÿ”„ Syncing translations for locales: ${locales.join(", ")}`);
6
- console.log(`๐Ÿ“ฆ Namespaces: ${namespaces.join(", ")}`);
7
- console.log(`๐ŸŒ Default locale: ${defaultLocale}`);
12
+ const localesToProcess = locales.filter((l) => l !== defaultLocale);
13
+ console.log(chalk.cyan("\n๐Ÿ”„ Syncing translations\n"));
14
+ console.log(chalk.dim(` Default locale: ${chalk.white(getLanguageLabel(defaultLocale))}`));
15
+ console.log(chalk.dim(` Namespaces: ${chalk.white(namespaces.join(", "))}`));
16
+ console.log(chalk.dim(` Target languages: ${chalk.white(localesToProcess.length)}\n`));
17
+ // Track results for each locale
18
+ const localeResults = {};
19
+ for (const locale of localesToProcess) {
20
+ localeResults[locale] = { status: "pending", translated: 0, reused: 0 };
21
+ }
22
+ // Create a single progress bar for overall progress
23
+ const progressBar = new cliProgress.SingleBar({
24
+ format: ` Progress |${chalk.cyan("{bar}")}| {percentage}% | {current}/{total} languages | {status}`,
25
+ barCompleteChar: "โ–ˆ",
26
+ barIncompleteChar: "โ–‘",
27
+ hideCursor: true,
28
+ clearOnComplete: false,
29
+ }, cliProgress.Presets.shades_classic);
30
+ progressBar.start(localesToProcess.length, 0, { status: "Starting...", current: 0 });
8
31
  try {
9
32
  // Helper to ensure a locale/namespace file exists before we add keys
10
33
  const ensureLocaleNamespaceFile = async (locale, namespace) => {
@@ -13,124 +36,209 @@ export const syncLocales = async (config) => {
13
36
  .replace("{{lng}}", locale)
14
37
  .replace("{{ns}}", namespace);
15
38
  if (!fs.existsSync(filePath)) {
16
- console.log(`๐Ÿ“„ Creating missing namespace file: ${filePath}`);
17
39
  await writeLocalesFile(savePath, locale, namespace, {});
18
40
  }
19
41
  }
20
42
  };
21
43
  // Ensure all default-locale namespace files exist first
22
44
  await Promise.all(namespaces.map((namespace) => ensureLocaleNamespaceFile(defaultLocale, namespace)));
23
- // Process all non-default locales in parallel
24
- const localesToProcess = locales.filter((l) => l !== defaultLocale);
25
- await Promise.all(localesToProcess.map(async (locale) => {
26
- console.log(`\n๐Ÿ” Processing locale: ${locale}`);
27
- // Ensure all namespace files for this locale exist before filling keys
28
- await Promise.all(namespaces.map((namespace) => ensureLocaleNamespaceFile(locale, namespace)));
29
- // Collect all missing keys for this locale across all namespaces
30
- const allMissingKeys = {};
31
- const namespaceKeys = {};
32
- // Load existing keys for all namespaces in parallel
33
- const namespaceResults = await Promise.all(namespaces.map(async (namespace) => {
34
- const defaultLocaleKeys = await loadLocalesFile(loadPath, defaultLocale, namespace);
35
- const localeKeys = await loadLocalesFile(loadPath, locale, namespace);
36
- return {
37
- namespace,
38
- defaultLocaleKeys,
39
- localeKeys,
40
- };
41
- }));
42
- // Process results and collect missing keys
43
- for (const result of namespaceResults) {
44
- const { namespace, defaultLocaleKeys, localeKeys } = result;
45
- namespaceKeys[namespace] = localeKeys;
46
- // Check which keys from default locale are missing in current locale
47
- for (const [key, value] of Object.entries(defaultLocaleKeys)) {
48
- if (!localeKeys[key]) {
49
- if (allMissingKeys[key]) {
50
- // Key already exists, add this namespace to the list
51
- allMissingKeys[key].namespaces.push(namespace);
52
- }
53
- else {
54
- // New missing key
55
- allMissingKeys[key] = {
56
- value,
57
- namespaces: [namespace],
58
- };
45
+ // Process locales sequentially for clean output
46
+ let completedCount = 0;
47
+ for (const locale of localesToProcess) {
48
+ const langLabel = getLanguageLabel(locale);
49
+ localeResults[locale].status = "processing";
50
+ progressBar.update(completedCount, {
51
+ status: `Processing ${chalk.white(langLabel)}...`,
52
+ current: completedCount
53
+ });
54
+ try {
55
+ // Ensure all namespace files for this locale exist
56
+ await Promise.all(namespaces.map((namespace) => ensureLocaleNamespaceFile(locale, namespace)));
57
+ // Collect all missing keys for this locale across all namespaces
58
+ const allMissingKeys = {};
59
+ const namespaceKeys = {};
60
+ // Load existing keys for all namespaces in parallel
61
+ const namespaceResults = await Promise.all(namespaces.map(async (namespace) => {
62
+ const defaultLocaleKeys = await loadLocalesFile(loadPath, defaultLocale, namespace, { silent: true });
63
+ const localeKeys = await loadLocalesFile(loadPath, locale, namespace, { silent: true });
64
+ return {
65
+ namespace,
66
+ defaultLocaleKeys,
67
+ localeKeys,
68
+ };
69
+ }));
70
+ // Process results and collect missing keys
71
+ for (const result of namespaceResults) {
72
+ const { namespace, defaultLocaleKeys, localeKeys } = result;
73
+ namespaceKeys[namespace] = localeKeys;
74
+ for (const [key, value] of Object.entries(defaultLocaleKeys)) {
75
+ if (!localeKeys[key]) {
76
+ if (allMissingKeys[key]) {
77
+ allMissingKeys[key].namespaces.push(namespace);
78
+ }
79
+ else {
80
+ allMissingKeys[key] = {
81
+ value,
82
+ namespaces: [namespace],
83
+ };
84
+ }
59
85
  }
60
86
  }
61
87
  }
62
- }
63
- const missingKeysList = Object.keys(allMissingKeys);
64
- if (missingKeysList.length === 0) {
65
- console.log(`โœ… No missing keys found for ${locale}`);
66
- return;
67
- }
68
- console.log(`Found ${missingKeysList.length} unique missing keys in ${locale}`);
69
- // Check for existing translations of these keys in other namespaces (parallelized)
70
- const keysToTranslate = {};
71
- const existingTranslations = {};
72
- const existingTranslationResults = await findExistingTranslations(missingKeysList, namespaces, locale, loadPath);
73
- const reusedKeys = [];
74
- for (const key of missingKeysList) {
75
- const existingValue = existingTranslationResults[key];
76
- // Use explicit null check instead of truthy check to handle empty string values
77
- if (existingValue !== null) {
78
- existingTranslations[key] = existingValue;
79
- reusedKeys.push(key);
80
- }
81
- else {
82
- keysToTranslate[key] = allMissingKeys[key].value;
83
- }
84
- }
85
- // Batch log reused translations
86
- if (reusedKeys.length > 0) {
87
- console.log(`๐Ÿ”„ Reusing ${reusedKeys.length} existing translations for ${locale}`);
88
- }
89
- let translatedValues = {};
90
- // Translate only the keys that don't have existing translations
91
- if (Object.keys(keysToTranslate).length > 0) {
92
- console.log(`๐Ÿ”ค Translating ${Object.keys(keysToTranslate).length} new keys for ${locale}`);
93
- try {
94
- translatedValues = await translateKey({
95
- inputLanguage: defaultLocale,
96
- outputLanguage: locale,
97
- context,
98
- object: keysToTranslate,
99
- openai,
100
- model: config.model,
88
+ const missingKeysList = Object.keys(allMissingKeys);
89
+ if (missingKeysList.length === 0) {
90
+ localeResults[locale].status = "done";
91
+ completedCount++;
92
+ progressBar.update(completedCount, {
93
+ status: `${chalk.white(langLabel)} ${chalk.green("โœ“")} up to date`,
94
+ current: completedCount
101
95
  });
96
+ continue;
102
97
  }
103
- catch (error) {
104
- throw new TranslationError(`Failed to translate keys for locale "${locale}"`, locale, undefined, error instanceof Error ? error : undefined);
105
- }
106
- }
107
- // Combine existing translations with new translations
108
- const allTranslations = { ...existingTranslations, ...translatedValues };
109
- // Distribute translations to all relevant namespaces in parallel
110
- await Promise.all(namespaces.map(async (namespace) => {
111
- let hasChanges = false;
112
- const updatedKeys = { ...namespaceKeys[namespace] };
98
+ // Check for existing translations
99
+ const keysToTranslate = {};
100
+ const existingTranslations = {};
101
+ const existingTranslationResults = await findExistingTranslations(missingKeysList, namespaces, locale, loadPath, { silent: true });
113
102
  for (const key of missingKeysList) {
114
- if (allMissingKeys[key].namespaces.includes(namespace)) {
115
- const translation = allTranslations[key] || "";
116
- updatedKeys[key] = translation;
117
- hasChanges = true;
103
+ const existingValue = existingTranslationResults[key];
104
+ if (existingValue !== null) {
105
+ existingTranslations[key] = existingValue;
106
+ localeResults[locale].reused++;
107
+ }
108
+ else {
109
+ keysToTranslate[key] = allMissingKeys[key].value;
118
110
  }
119
111
  }
120
- if (hasChanges) {
112
+ let translatedValues = {};
113
+ // Translate if needed
114
+ if (Object.keys(keysToTranslate).length > 0) {
115
+ const keysCount = Object.keys(keysToTranslate).length;
116
+ progressBar.update(completedCount, {
117
+ status: `${chalk.white(langLabel)} translating ${keysCount} keys...`,
118
+ current: completedCount
119
+ });
121
120
  try {
122
- await writeLocalesFile(savePath, locale, namespace, updatedKeys);
123
- const addedKeysCount = Object.keys(allMissingKeys).filter((key) => allMissingKeys[key].namespaces.includes(namespace)).length;
124
- console.log(`โœ… Updated ${locale} (${namespace}): ${addedKeysCount} keys`);
121
+ translatedValues = await translateKey({
122
+ inputLanguage: defaultLocale,
123
+ outputLanguage: locale,
124
+ context,
125
+ object: keysToTranslate,
126
+ openai,
127
+ model: config.model,
128
+ });
129
+ localeResults[locale].translated = Object.keys(translatedValues).length;
125
130
  }
126
131
  catch (error) {
127
- throw new TranslationError(`Failed to save translations for locale "${locale}" (namespace: ${namespace})`, locale, namespace, error instanceof Error ? error : undefined);
132
+ localeResults[locale].status = "error";
133
+ localeResults[locale].error = error instanceof Error ? error.message : "Translation failed";
134
+ completedCount++;
135
+ progressBar.update(completedCount, {
136
+ status: `${chalk.white(langLabel)} ${chalk.red("โœ—")} translation failed`,
137
+ current: completedCount
138
+ });
139
+ continue;
128
140
  }
129
141
  }
130
- }));
131
- }));
142
+ // Combine and save
143
+ const allTranslations = { ...existingTranslations, ...translatedValues };
144
+ await Promise.all(namespaces.map(async (namespace) => {
145
+ let hasChanges = false;
146
+ const updatedKeys = { ...namespaceKeys[namespace] };
147
+ for (const key of missingKeysList) {
148
+ if (allMissingKeys[key].namespaces.includes(namespace)) {
149
+ const translation = allTranslations[key] || "";
150
+ updatedKeys[key] = translation;
151
+ hasChanges = true;
152
+ }
153
+ }
154
+ if (hasChanges) {
155
+ await writeLocalesFile(savePath, locale, namespace, updatedKeys);
156
+ }
157
+ }));
158
+ localeResults[locale].status = "done";
159
+ completedCount++;
160
+ const translated = localeResults[locale].translated;
161
+ const reused = localeResults[locale].reused;
162
+ const statusText = translated > 0
163
+ ? `+${translated} translated`
164
+ : `${reused} reused`;
165
+ progressBar.update(completedCount, {
166
+ status: `${chalk.white(langLabel)} ${chalk.green("โœ“")} ${statusText}`,
167
+ current: completedCount
168
+ });
169
+ }
170
+ catch (error) {
171
+ localeResults[locale].status = "error";
172
+ localeResults[locale].error = error instanceof Error ? error.message : "Unknown error";
173
+ completedCount++;
174
+ progressBar.update(completedCount, {
175
+ status: `${chalk.white(langLabel)} ${chalk.red("โœ—")} error`,
176
+ current: completedCount
177
+ });
178
+ }
179
+ }
180
+ progressBar.stop();
181
+ // Print summary
182
+ console.log("");
183
+ console.log(chalk.green("โœจ Sync complete!\n"));
184
+ // Count totals
185
+ let totalTranslated = 0;
186
+ let totalReused = 0;
187
+ let totalErrors = 0;
188
+ for (const locale of localesToProcess) {
189
+ const result = localeResults[locale];
190
+ totalTranslated += result.translated;
191
+ totalReused += result.reused;
192
+ if (result.status === "error")
193
+ totalErrors++;
194
+ }
195
+ // Show summary table
196
+ console.log(chalk.dim(" Results by language:"));
197
+ console.log("");
198
+ // Group results into columns for compact display
199
+ const doneLocales = localesToProcess.filter(l => localeResults[l].status === "done");
200
+ const errorLocales = localesToProcess.filter(l => localeResults[l].status === "error");
201
+ // Show successful languages in a compact grid
202
+ if (doneLocales.length > 0) {
203
+ const columns = 4;
204
+ const rows = Math.ceil(doneLocales.length / columns);
205
+ for (let row = 0; row < rows; row++) {
206
+ let line = " ";
207
+ for (let col = 0; col < columns; col++) {
208
+ const idx = row + col * rows;
209
+ if (idx < doneLocales.length) {
210
+ const locale = doneLocales[idx];
211
+ const result = localeResults[locale];
212
+ const label = getLanguageLabel(locale).substring(0, 12).padEnd(12);
213
+ const count = result.translated > 0
214
+ ? chalk.cyan(`+${result.translated}`.padStart(4))
215
+ : chalk.dim(`${result.reused}`.padStart(4));
216
+ line += `${chalk.green("โœ“")} ${label} ${count} `;
217
+ }
218
+ }
219
+ console.log(line);
220
+ }
221
+ }
222
+ // Show errors if any
223
+ if (errorLocales.length > 0) {
224
+ console.log("");
225
+ console.log(chalk.red(" Errors:"));
226
+ for (const locale of errorLocales) {
227
+ const result = localeResults[locale];
228
+ console.log(chalk.red(` โœ— ${getLanguageLabel(locale)}: ${result.error}`));
229
+ }
230
+ }
231
+ console.log("");
232
+ console.log(chalk.dim(" Summary:"));
233
+ console.log(chalk.dim(` โ€ข ${chalk.white(totalTranslated)} keys translated`));
234
+ console.log(chalk.dim(` โ€ข ${chalk.white(totalReused)} keys reused`));
235
+ if (totalErrors > 0) {
236
+ console.log(chalk.dim(` โ€ข ${chalk.red(totalErrors)} languages failed`));
237
+ }
238
+ console.log("");
132
239
  }
133
240
  catch (error) {
241
+ progressBar.stop();
134
242
  if (error instanceof TranslationError) {
135
243
  throw error;
136
244
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sync-locales.js","sourceRoot":"","sources":["../../src/commands/sync-locales.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-locales.js","sourceRoot":"","sources":["../../src/commands/sync-locales.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"languges.d.ts","sourceRoot":"","sources":["../../src/lib/languges.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS;;;;GA6IrB,CAAA"}
1
+ {"version":3,"file":"languges.d.ts","sourceRoot":"","sources":["../../src/lib/languges.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS;;;;GAkJrB,CAAA"}
@@ -139,5 +139,10 @@ export const languages = [
139
139
  name: "Vietnamese",
140
140
  value: "vn",
141
141
  },
142
+ {
143
+ label: "เน„เธ—เธข",
144
+ name: "Thai",
145
+ value: "th",
146
+ },
142
147
  ];
143
148
  //# sourceMappingURL=languges.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"languges.js","sourceRoot":"","sources":["../../src/lib/languges.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"languges.js","sourceRoot":"","sources":["../../src/lib/languges.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,9 @@ export declare const translateKey: ({ inputLanguage, context, object, openai, ou
12
12
  model: string;
13
13
  openai: OpenAI;
14
14
  }) => Promise<Record<string, string>>;
15
- export declare const loadLocalesFile: (loadPath: string | ((locale: string, namespace: string) => Promise<Record<string, string>>), locale: string, namespace: string) => Promise<Record<string, string>>;
15
+ export declare const loadLocalesFile: (loadPath: string | ((locale: string, namespace: string) => Promise<Record<string, string>>), locale: string, namespace: string, options?: {
16
+ silent?: boolean;
17
+ }) => Promise<Record<string, string>>;
16
18
  export declare const writeLocalesFile: (savePath: string | ((locale: string, namespace: string, data: Record<string, string>) => Promise<void>), locale: string, namespace: string, data: Record<string, string>) => Promise<void>;
17
19
  export declare const getPureKey: (key: string, namespace?: string, isDefault?: boolean) => string;
18
20
  /**
@@ -49,7 +51,9 @@ export declare const findExistingTranslation: (key: string, namespaces: string[]
49
51
  /**
50
52
  * Find existing translations for multiple keys in parallel
51
53
  */
52
- export declare const findExistingTranslations: (keys: string[], namespaces: string[], locale: string, loadPath: string | ((locale: string, namespace: string) => Promise<Record<string, string>>)) => Promise<Record<string, string | null>>;
54
+ export declare const findExistingTranslations: (keys: string[], namespaces: string[], locale: string, loadPath: string | ((locale: string, namespace: string) => Promise<Record<string, string>>), options?: {
55
+ silent?: boolean;
56
+ }) => Promise<Record<string, string | null>>;
53
57
  export declare const getTextInput: (key: string, namespaces?: string[]) => Promise<string>;
54
58
  export declare const checkAllKeysExist: ({ namespaces, defaultLocale, loadPath, locales, context, openai, savePath, disableTranslationDuringScan, model, }: Configuration) => Promise<void>;
55
59
  export declare class TranslationError extends Error {
@@ -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
@@ -92,14 +92,17 @@ export const translateKey = async ({ inputLanguage, context, object, openai, out
92
92
  }
93
93
  return result;
94
94
  };
95
- export const loadLocalesFile = async (loadPath, locale, namespace) => {
95
+ export const loadLocalesFile = async (loadPath, locale, namespace, options) => {
96
+ const silent = options?.silent ?? false;
96
97
  if (typeof loadPath === "string") {
97
98
  const resolvedPath = loadPath
98
99
  .replace("{{lng}}", locale)
99
100
  .replace("{{ns}}", namespace);
100
101
  // Check if file exists, return empty object if it doesn't
101
102
  if (!fs.existsSync(resolvedPath)) {
102
- console.log(`๐Ÿ“„ Creating new namespace file: ${resolvedPath}`);
103
+ if (!silent) {
104
+ console.log(`๐Ÿ“„ Creating new namespace file: ${resolvedPath}`);
105
+ }
103
106
  return {};
104
107
  }
105
108
  const content = fs.readFileSync(resolvedPath, "utf-8");
@@ -388,12 +391,14 @@ export const findExistingTranslation = async (key, namespaces, locale, loadPath)
388
391
  /**
389
392
  * Find existing translations for multiple keys in parallel
390
393
  */
391
- export const findExistingTranslations = async (keys, namespaces, locale, loadPath) => {
394
+ export const findExistingTranslations = async (keys, namespaces, locale, loadPath, options) => {
395
+ const silent = options?.silent ?? false;
396
+ const log = silent ? () => { } : console.log;
392
397
  // Load all namespace files in parallel first
393
398
  const namespaceKeys = {};
394
399
  const loadPromises = namespaces.map(async (namespace) => {
395
400
  try {
396
- const existingKeys = await loadLocalesFile(loadPath, locale, namespace);
401
+ const existingKeys = await loadLocalesFile(loadPath, locale, namespace, { silent });
397
402
  namespaceKeys[namespace] = existingKeys;
398
403
  }
399
404
  catch (error) {
@@ -402,20 +407,20 @@ export const findExistingTranslations = async (keys, namespaces, locale, loadPat
402
407
  });
403
408
  await Promise.all(loadPromises);
404
409
  // Log how many keys were found in each namespace for the default locale
405
- console.log(`\n๐Ÿ”Ž Searching for existing translations in ${locale}:`);
410
+ log(`\n๐Ÿ”Ž Searching for existing translations in ${locale}:`);
406
411
  for (const namespace of namespaces) {
407
412
  const nsKeys = Object.keys(namespaceKeys[namespace] || {});
408
- console.log(` ๐Ÿ“ ${namespace}.json: ${nsKeys.length} keys available`);
413
+ log(` ๐Ÿ“ ${namespace}.json: ${nsKeys.length} keys available`);
409
414
  // Show sample keys from the namespace (first 3)
410
415
  if (nsKeys.length > 0) {
411
416
  const sampleKeys = nsKeys.slice(0, 3);
412
- console.log(` Sample keys: ${sampleKeys.join(", ")}${nsKeys.length > 3 ? "..." : ""}`);
417
+ log(` Sample keys: ${sampleKeys.join(", ")}${nsKeys.length > 3 ? "..." : ""}`);
413
418
  }
414
419
  }
415
420
  // Show sample of keys we're searching for
416
421
  if (keys.length > 0) {
417
422
  const sampleSearchKeys = keys.slice(0, 3);
418
- console.log(`\n ๐Ÿ” Looking for keys like: ${sampleSearchKeys.join(", ")}${keys.length > 3 ? "..." : ""}`);
423
+ log(`\n ๐Ÿ” Looking for keys like: ${sampleSearchKeys.join(", ")}${keys.length > 3 ? "..." : ""}`);
419
424
  }
420
425
  // Now find translations for all keys
421
426
  const results = {};
@@ -440,14 +445,14 @@ export const findExistingTranslations = async (keys, namespaces, locale, loadPat
440
445
  // Log how many keys were found in each namespace
441
446
  const totalFound = Object.values(foundInNamespace).reduce((sum, count) => sum + count, 0);
442
447
  const notFound = keys.length - totalFound;
443
- console.log(`\n๐Ÿ“Š Search results for ${keys.length} missing keys:`);
448
+ log(`\n๐Ÿ“Š Search results for ${keys.length} missing keys:`);
444
449
  for (const [namespace, count] of Object.entries(foundInNamespace)) {
445
- console.log(` โœ… Found ${count} keys in ${namespace}.json`);
450
+ log(` โœ… Found ${count} keys in ${namespace}.json`);
446
451
  }
447
452
  if (notFound > 0) {
448
- console.log(` โŒ ${notFound} keys not found in any namespace`);
453
+ log(` โŒ ${notFound} keys not found in any namespace`);
449
454
  }
450
- console.log("");
455
+ log("");
451
456
  return results;
452
457
  };
453
458
  export const getTextInput = async (key, namespaces) => {