i18next-cli 1.56.9 → 1.56.11
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/README.md +41 -7
- package/dist/cjs/cli.js +1 -1
- package/dist/cjs/extractor/parsers/call-expression-handler.js +69 -7
- package/dist/cjs/extractor/parsers/scope-manager.js +57 -42
- package/dist/cjs/linter.js +1 -0
- package/dist/esm/cli.js +1 -1
- package/dist/esm/extractor/parsers/call-expression-handler.js +69 -7
- package/dist/esm/extractor/parsers/scope-manager.js +57 -42
- package/dist/esm/linter.js +1 -0
- package/package.json +2 -2
- package/types/extractor/parsers/call-expression-handler.d.ts +18 -0
- package/types/extractor/parsers/call-expression-handler.d.ts.map +1 -1
- package/types/extractor/parsers/scope-manager.d.ts +14 -0
- package/types/extractor/parsers/scope-manager.d.ts.map +1 -1
- package/types/types.d.ts +11 -0
- package/types/types.d.ts.map +1 -1
package/README.md
CHANGED
|
@@ -44,7 +44,7 @@ A unified, high-performance i18next CLI toolchain, powered by SWC.
|
|
|
44
44
|
- **Translation Status**: Get a high-level overview or a detailed, key-by-key report of your project's translation completeness.
|
|
45
45
|
- **Plugin System**: Extensible architecture for custom extraction patterns and file types (e.g., HTML, Handlebars).
|
|
46
46
|
- **Legacy Migration**: Automatic migration from `i18next-parser` configurations.
|
|
47
|
-
- **Cloud Integration**: Seamless integration with the [Locize](https://locize.com) translation management platform.
|
|
47
|
+
- **Cloud Integration**: Seamless integration with the [Locize](https://www.locize.com?utm_source=i18next_cli_readme&utm_medium=github&utm_campaign=readme) translation management platform.
|
|
48
48
|
|
|
49
49
|
## Installation
|
|
50
50
|
|
|
@@ -253,7 +253,7 @@ npx i18next-cli lint
|
|
|
253
253
|
|
|
254
254
|
### `instrument`
|
|
255
255
|
|
|
256
|
-
Scans your source code for hardcoded user-facing strings and instruments them with i18next translation calls. This is useful for adding i18next instrumentation to an existing codebase that wasn't built with internationalization in mind. You can see this in action in [this video](https://youtu.be/aWZnZXwGg34) or in [this blog post](https://www.locize.com/blog/i18next-cli-instrument).
|
|
256
|
+
Scans your source code for hardcoded user-facing strings and instruments them with i18next translation calls. This is useful for adding i18next instrumentation to an existing codebase that wasn't built with internationalization in mind. You can see this in action in [this video](https://youtu.be/aWZnZXwGg34) or in [this blog post](https://www.locize.com/blog/i18next-cli-instrument?utm_source=i18next_cli_readme&utm_medium=github&utm_campaign=readme).
|
|
257
257
|
|
|
258
258
|
> **⚠️ First-Step Tool:** The `instrument` command uses heuristic-based detection and is designed as a **first pass** to identify and suggest transformation candidates. It will **not catch 100% of cases**, and you should expect both false positives and false negatives. Always review the suggested transformations carefully before committing them to your codebase. Think of it as an intelligent code assistant, not an automated compiler.
|
|
259
259
|
|
|
@@ -1386,6 +1386,40 @@ const fixedT = getFixedT('en', 'namespace');
|
|
|
1386
1386
|
fixedT('key');
|
|
1387
1387
|
```
|
|
1388
1388
|
|
|
1389
|
+
### Selector API
|
|
1390
|
+
|
|
1391
|
+
The extractor handles the type-safe Selector API and mirrors the runtime
|
|
1392
|
+
namespace-routing rule from i18next v25.8.19. With a single-namespace hook,
|
|
1393
|
+
selector paths are extracted into the bound namespace as-is:
|
|
1394
|
+
|
|
1395
|
+
```ts
|
|
1396
|
+
const { t } = useTranslation('common');
|
|
1397
|
+
|
|
1398
|
+
t($ => $.button.save); // → common.json: button.save
|
|
1399
|
+
t($ => $.button.save, { ns: 'auth' }); // → auth.json: button.save
|
|
1400
|
+
```
|
|
1401
|
+
|
|
1402
|
+
When the hook is called with a multi-namespace array, a leading path segment
|
|
1403
|
+
that matches a **secondary** namespace is treated as a namespace prefix and
|
|
1404
|
+
the rest of the path is routed to that namespace's file. The primary
|
|
1405
|
+
namespace (the array's first entry) is **never** rewritten — its keys are
|
|
1406
|
+
exposed flat on the selector proxy:
|
|
1407
|
+
|
|
1408
|
+
```ts
|
|
1409
|
+
const { t } = useTranslation(['auth', 'validation']);
|
|
1410
|
+
|
|
1411
|
+
t($ => $.login['Welcome Back!']); // → auth.json: login.Welcome Back!
|
|
1412
|
+
t($ => $.validation.email['Required']); // → validation.json: email.Required
|
|
1413
|
+
t($ => $.email['Required'], { ns: 'validation'}); // → validation.json: email.Required
|
|
1414
|
+
```
|
|
1415
|
+
|
|
1416
|
+
This matches the behavior of `i18next/src/selector.js` exactly: paths whose
|
|
1417
|
+
first segment is the primary namespace, or doesn't appear in the hook's
|
|
1418
|
+
namespace list at all, are joined with the configured `keySeparator` and
|
|
1419
|
+
routed to the primary. Secondary-prefixed paths are joined as
|
|
1420
|
+
`<ns><nsSeparator><rest>` so the standard `ns:key` routing places them in
|
|
1421
|
+
the correct file.
|
|
1422
|
+
|
|
1389
1423
|
## Programmatic Usage
|
|
1390
1424
|
|
|
1391
1425
|
In addition to the CLI commands, `i18next-cli` can be used programmatically in your build scripts, Gulp tasks, or any Node.js application:
|
|
@@ -1507,21 +1541,21 @@ This programmatic API gives you the same power as the CLI but with full control
|
|
|
1507
1541
|
<h3 align="center">Gold Sponsors</h3>
|
|
1508
1542
|
|
|
1509
1543
|
<p align="center">
|
|
1510
|
-
<a href="https://www.locize.com
|
|
1544
|
+
<a href="https://www.locize.com/?utm_source=i18next_cli_readme&utm_medium=github&utm_campaign=readme" target="_blank">
|
|
1511
1545
|
<img src="https://raw.githubusercontent.com/i18next/i18next/master/assets/locize_sponsor_240.gif" width="240px">
|
|
1512
1546
|
</a>
|
|
1513
1547
|
</p>
|
|
1514
1548
|
|
|
1515
1549
|
---
|
|
1516
1550
|
|
|
1517
|
-
**From the creators of i18next: localization as a service - [Locize](https://www.locize.com)**
|
|
1551
|
+
**From the creators of i18next: localization as a service - [Locize](https://www.locize.com?utm_source=i18next_cli_readme&utm_medium=github&utm_campaign=readme)**
|
|
1518
1552
|
|
|
1519
|
-
A translation management system built around the i18next ecosystem - [Locize](https://locize.com).
|
|
1553
|
+
A translation management system built around the i18next ecosystem - [Locize](https://www.locize.com?utm_source=i18next_cli_readme&utm_medium=github&utm_campaign=readme).
|
|
1520
1554
|
|
|
1521
|
-
**Now with a [Free plan](https://locize.com/pricing) for small projects!** Perfect for hobbyists or getting started.
|
|
1555
|
+
**Now with a [Free plan](https://www.locize.com/pricing?utm_source=i18next_cli_readme&utm_medium=github&utm_campaign=readme) for small projects!** Perfect for hobbyists or getting started.
|
|
1522
1556
|
|
|
1523
1557
|

|
|
1524
1558
|
|
|
1525
|
-
With using [Locize](https://www.locize.com/?utm_source=i18next_cli_readme&utm_medium=github) you directly support the future of i18next.
|
|
1559
|
+
With using [Locize](https://www.locize.com/?utm_source=i18next_cli_readme&utm_medium=github&utm_campaign=readme) you directly support the future of i18next.
|
|
1526
1560
|
|
|
1527
1561
|
---
|
package/dist/cjs/cli.js
CHANGED
|
@@ -32,7 +32,7 @@ const program = new commander.Command();
|
|
|
32
32
|
program
|
|
33
33
|
.name('i18next-cli')
|
|
34
34
|
.description('A unified, high-performance i18next CLI.')
|
|
35
|
-
.version('1.56.
|
|
35
|
+
.version('1.56.11'); // This string is replaced with the actual version at build time by rollup
|
|
36
36
|
// new: global config override option
|
|
37
37
|
program.option('-c, --config <path>', 'Path to i18next-cli config file (overrides detection)');
|
|
38
38
|
program
|
|
@@ -107,7 +107,7 @@ class CallExpressionHandler {
|
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
|
-
const { keysToProcess, isSelectorAPI } = this.handleCallExpressionArgument(node, 0);
|
|
110
|
+
const { keysToProcess, originalKeysToProcess, isSelectorAPI } = this.handleCallExpressionArgument(node, 0, scopeInfo);
|
|
111
111
|
if (keysToProcess.length === 0)
|
|
112
112
|
return;
|
|
113
113
|
let isOrdinalByKey = false;
|
|
@@ -172,7 +172,11 @@ class CallExpressionHandler {
|
|
|
172
172
|
const explicitPluralForVariants = Boolean(explicitPluralDefaultsInOptions || (typeof finalDefaultValue === 'string' && !containsCountPlaceholder(finalDefaultValue)));
|
|
173
173
|
// Loop through each key found (could be one or more) and process it
|
|
174
174
|
for (let i = 0; i < keysToProcess.length; i++) {
|
|
175
|
-
|
|
175
|
+
// For the dv heuristic we want the user-typed shape, not the post-rewrite
|
|
176
|
+
// form: a synthetic `validation:email` (rewritten from a `$.validation.email`
|
|
177
|
+
// selector) shouldn't leak into the default value. originalKeysToProcess
|
|
178
|
+
// is the pre-rewrite path; for non-selector calls it's the same as keysToProcess.
|
|
179
|
+
const originalKey = originalKeysToProcess[i];
|
|
176
180
|
let key = keysToProcess[i];
|
|
177
181
|
let ns;
|
|
178
182
|
// Determine namespace (explicit ns > ns:key > scope ns > default)
|
|
@@ -555,32 +559,90 @@ class CallExpressionHandler {
|
|
|
555
559
|
* @param argIndex - The index of the argument to process
|
|
556
560
|
* @returns An object containing the keys to process and a flag indicating if the selector API is used
|
|
557
561
|
*/
|
|
558
|
-
handleCallExpressionArgument(node, argIndex) {
|
|
562
|
+
handleCallExpressionArgument(node, argIndex, scopeInfo) {
|
|
559
563
|
const firstArg = node.arguments[argIndex].expression;
|
|
560
564
|
const keysToProcess = [];
|
|
565
|
+
// Mirror of keysToProcess BEFORE selector-ns rewriting. For non-selector
|
|
566
|
+
// calls and selector calls that don't trigger a rewrite, both arrays hold
|
|
567
|
+
// identical strings. Used by the default-value heuristic so a synthetic
|
|
568
|
+
// `ns:key` from selector rewriting doesn't surface as the dv.
|
|
569
|
+
const originalKeysToProcess = [];
|
|
561
570
|
let isSelectorAPI = false;
|
|
562
571
|
if (firstArg.type === 'ArrowFunctionExpression') {
|
|
563
572
|
const keys = this.extractKeysFromSelector(firstArg);
|
|
564
573
|
if (keys.length > 0) {
|
|
565
|
-
|
|
574
|
+
for (const k of keys) {
|
|
575
|
+
originalKeysToProcess.push(k);
|
|
576
|
+
keysToProcess.push(this.applySelectorNsRewrite(k, scopeInfo));
|
|
577
|
+
}
|
|
566
578
|
isSelectorAPI = true;
|
|
567
579
|
}
|
|
568
580
|
}
|
|
569
581
|
else if (firstArg.type === 'ArrayExpression') {
|
|
570
582
|
for (const element of firstArg.elements) {
|
|
571
583
|
if (element?.expression) {
|
|
572
|
-
|
|
584
|
+
const resolved = this.expressionResolver.resolvePossibleKeyStringValues(element.expression);
|
|
585
|
+
keysToProcess.push(...resolved);
|
|
586
|
+
originalKeysToProcess.push(...resolved);
|
|
573
587
|
}
|
|
574
588
|
}
|
|
575
589
|
}
|
|
576
590
|
else {
|
|
577
|
-
|
|
591
|
+
const resolved = this.expressionResolver.resolvePossibleKeyStringValues(firstArg);
|
|
592
|
+
keysToProcess.push(...resolved);
|
|
593
|
+
originalKeysToProcess.push(...resolved);
|
|
594
|
+
}
|
|
595
|
+
// Filter empties on both arrays in lockstep to keep them index-aligned.
|
|
596
|
+
const filteredKeys = [];
|
|
597
|
+
const filteredOriginals = [];
|
|
598
|
+
for (let i = 0; i < keysToProcess.length; i++) {
|
|
599
|
+
if (keysToProcess[i]) {
|
|
600
|
+
filteredKeys.push(keysToProcess[i]);
|
|
601
|
+
filteredOriginals.push(originalKeysToProcess[i]);
|
|
602
|
+
}
|
|
578
603
|
}
|
|
579
604
|
return {
|
|
580
|
-
keysToProcess:
|
|
605
|
+
keysToProcess: filteredKeys,
|
|
606
|
+
originalKeysToProcess: filteredOriginals,
|
|
581
607
|
isSelectorAPI,
|
|
582
608
|
};
|
|
583
609
|
}
|
|
610
|
+
/**
|
|
611
|
+
* Mirror i18next v25.8.19's runtime selector rule: when the hook was called
|
|
612
|
+
* with a multi-element namespace array (e.g. `useTranslation(['nsA', 'nsB'])`)
|
|
613
|
+
* and a selector path's first segment matches a *secondary* namespace,
|
|
614
|
+
* rewrite the joined key to `ns<nsSeparator>rest` so the downstream
|
|
615
|
+
* extractor's standard `ns:key` split routes the key to the right file.
|
|
616
|
+
*
|
|
617
|
+
* The primary namespace is intentionally never rewritten — its keys are
|
|
618
|
+
* exposed flat on `$`, so a leading segment matching the primary name means
|
|
619
|
+
* a literal sub-key (see #2405). This matches the runtime behavior in
|
|
620
|
+
* i18next/src/selector.js exactly.
|
|
621
|
+
*
|
|
622
|
+
* Falls through to the input string when:
|
|
623
|
+
* - the call had no selector (string keys go through this path unchanged),
|
|
624
|
+
* - scope has < 2 namespaces, or
|
|
625
|
+
* - first segment is the primary or not in the scope's namespaces list.
|
|
626
|
+
*/
|
|
627
|
+
applySelectorNsRewrite(key, scopeInfo) {
|
|
628
|
+
const ns = scopeInfo?.namespaces;
|
|
629
|
+
if (!ns || ns.length < 2)
|
|
630
|
+
return key;
|
|
631
|
+
const keySeparator = this.config.extract.keySeparator;
|
|
632
|
+
const joiner = typeof keySeparator === 'string' ? keySeparator : '.';
|
|
633
|
+
const nsSeparator = this.config.extract.nsSeparator ?? ':';
|
|
634
|
+
if (keySeparator === false || !nsSeparator)
|
|
635
|
+
return key;
|
|
636
|
+
const firstSepAt = key.indexOf(joiner);
|
|
637
|
+
if (firstSepAt < 0)
|
|
638
|
+
return key;
|
|
639
|
+
const head = key.slice(0, firstSepAt);
|
|
640
|
+
if (head === ns[0])
|
|
641
|
+
return key;
|
|
642
|
+
if (!ns.includes(head))
|
|
643
|
+
return key;
|
|
644
|
+
return `${head}${nsSeparator}${key.slice(firstSepAt + joiner.length)}`;
|
|
645
|
+
}
|
|
584
646
|
/**
|
|
585
647
|
* Extracts translation key(s) from selector API arrow function.
|
|
586
648
|
*
|
|
@@ -380,25 +380,9 @@ class ScopeManager {
|
|
|
380
380
|
else {
|
|
381
381
|
// Position-driven extraction: respect hookConfig positions (nsArg/keyPrefixArg).
|
|
382
382
|
if (nsArgIndex !== -1) {
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
}
|
|
387
|
-
else if (nsNode?.type === 'Identifier') {
|
|
388
|
-
defaultNs = this.resolveSimpleStringIdentifier(nsNode.value);
|
|
389
|
-
}
|
|
390
|
-
else if (nsNode?.type === 'MemberExpression') {
|
|
391
|
-
defaultNs = this.resolveSimpleMemberExpression(nsNode);
|
|
392
|
-
}
|
|
393
|
-
else if (nsNode?.type === 'ArrayExpression') {
|
|
394
|
-
const first = nsNode.elements[0]?.expression;
|
|
395
|
-
if (first?.type === 'StringLiteral') {
|
|
396
|
-
defaultNs = first.value;
|
|
397
|
-
}
|
|
398
|
-
else if (first?.type === 'Identifier') {
|
|
399
|
-
defaultNs = this.resolveSimpleStringIdentifier(first.value);
|
|
400
|
-
}
|
|
401
|
-
}
|
|
383
|
+
// Comment scope only cares about the primary ns — selector multi-ns
|
|
384
|
+
// rewriting is handled by the runtime extractor scope, not comments.
|
|
385
|
+
defaultNs = this.resolveNsArg(callExpr.arguments?.[nsArgIndex]?.expression).defaultNs;
|
|
402
386
|
}
|
|
403
387
|
kpArg = kpArgIndex === -1 ? undefined : callExpr.arguments?.[kpArgIndex]?.expression;
|
|
404
388
|
}
|
|
@@ -448,6 +432,7 @@ class ScopeManager {
|
|
|
448
432
|
const nsArgIndex = hookConfig.nsArg ?? 0;
|
|
449
433
|
const kpArgIndex = hookConfig.keyPrefixArg ?? 1;
|
|
450
434
|
let defaultNs;
|
|
435
|
+
let namespaces;
|
|
451
436
|
let keyPrefix;
|
|
452
437
|
// Early detect useTranslation(lng, ns) for built-in hook name only
|
|
453
438
|
const first = callExpr.arguments?.[0]?.expression;
|
|
@@ -465,25 +450,9 @@ class ScopeManager {
|
|
|
465
450
|
}
|
|
466
451
|
else {
|
|
467
452
|
if (nsArgIndex !== -1) {
|
|
468
|
-
const
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
}
|
|
472
|
-
else if (nsNode?.type === 'Identifier') {
|
|
473
|
-
defaultNs = this.resolveSimpleStringIdentifier(nsNode.value);
|
|
474
|
-
}
|
|
475
|
-
else if (nsNode?.type === 'MemberExpression') {
|
|
476
|
-
defaultNs = this.resolveSimpleMemberExpression(nsNode);
|
|
477
|
-
}
|
|
478
|
-
else if (nsNode?.type === 'ArrayExpression') {
|
|
479
|
-
const first = nsNode.elements[0]?.expression;
|
|
480
|
-
if (first?.type === 'StringLiteral') {
|
|
481
|
-
defaultNs = first.value;
|
|
482
|
-
}
|
|
483
|
-
else if (first?.type === 'Identifier') {
|
|
484
|
-
defaultNs = this.resolveSimpleStringIdentifier(first.value);
|
|
485
|
-
}
|
|
486
|
-
}
|
|
453
|
+
const resolved = this.resolveNsArg(callExpr.arguments?.[nsArgIndex]?.expression);
|
|
454
|
+
defaultNs = resolved.defaultNs;
|
|
455
|
+
namespaces = resolved.namespaces;
|
|
487
456
|
}
|
|
488
457
|
kpArg = kpArgIndex === -1 ? undefined : callExpr.arguments?.[kpArgIndex]?.expression;
|
|
489
458
|
}
|
|
@@ -505,24 +474,25 @@ class ScopeManager {
|
|
|
505
474
|
keyPrefix = tpl.quasis?.[0]?.cooked ?? undefined;
|
|
506
475
|
}
|
|
507
476
|
}
|
|
477
|
+
const info = { defaultNs, namespaces, keyPrefix };
|
|
508
478
|
// Attach scope info to all destructured properties (custom functions, t, getFixedT, etc.)
|
|
509
479
|
if (node.id.type === 'ObjectPattern') {
|
|
510
480
|
for (const prop of node.id.properties) {
|
|
511
481
|
if (prop.type === 'AssignmentPatternProperty' && prop.key.type === 'Identifier') {
|
|
512
|
-
this.setVarInScope(prop.key.value,
|
|
482
|
+
this.setVarInScope(prop.key.value, info);
|
|
513
483
|
}
|
|
514
484
|
if (prop.type === 'KeyValuePatternProperty' && prop.value.type === 'Identifier') {
|
|
515
|
-
this.setVarInScope(prop.value.value,
|
|
485
|
+
this.setVarInScope(prop.value.value, info);
|
|
516
486
|
}
|
|
517
487
|
}
|
|
518
488
|
}
|
|
519
489
|
else if (node.id.type === 'Identifier') {
|
|
520
|
-
this.setVarInScope(node.id.value,
|
|
490
|
+
this.setVarInScope(node.id.value, info);
|
|
521
491
|
}
|
|
522
492
|
else if (node.id.type === 'ArrayPattern') {
|
|
523
493
|
const firstElement = node.id.elements[0];
|
|
524
494
|
if (firstElement?.type === 'Identifier') {
|
|
525
|
-
this.setVarInScope(firstElement.value,
|
|
495
|
+
this.setVarInScope(firstElement.value, info);
|
|
526
496
|
}
|
|
527
497
|
}
|
|
528
498
|
}
|
|
@@ -558,6 +528,51 @@ class ScopeManager {
|
|
|
558
528
|
* without interpolation. Returns undefined when the expression cannot be
|
|
559
529
|
* resolved statically.
|
|
560
530
|
*/
|
|
531
|
+
/**
|
|
532
|
+
* Resolve the `ns` argument of useTranslation to `{ defaultNs, namespaces }`.
|
|
533
|
+
*
|
|
534
|
+
* - String literal / identifier / member-expr → single `defaultNs`, no array.
|
|
535
|
+
* - Array expression → first element becomes `defaultNs`, every statically
|
|
536
|
+
* resolvable element ends up in `namespaces` (preserving order).
|
|
537
|
+
*
|
|
538
|
+
* `namespaces` is only set when the input was an array form, so consumers can
|
|
539
|
+
* distinguish `useTranslation('a')` (single, `namespaces` undefined) from
|
|
540
|
+
* `useTranslation(['a'])` (single-element array, `namespaces = ['a']`).
|
|
541
|
+
* The runtime selector rule from v25.8.19 only applies when length > 1, so
|
|
542
|
+
* either single form behaves identically downstream.
|
|
543
|
+
*/
|
|
544
|
+
resolveNsArg(nsNode) {
|
|
545
|
+
if (!nsNode)
|
|
546
|
+
return {};
|
|
547
|
+
if (nsNode.type === 'StringLiteral')
|
|
548
|
+
return { defaultNs: nsNode.value };
|
|
549
|
+
if (nsNode.type === 'Identifier')
|
|
550
|
+
return { defaultNs: this.resolveSimpleStringIdentifier(nsNode.value) };
|
|
551
|
+
if (nsNode.type === 'MemberExpression')
|
|
552
|
+
return { defaultNs: this.resolveSimpleMemberExpression(nsNode) };
|
|
553
|
+
if (nsNode.type === 'ArrayExpression') {
|
|
554
|
+
const namespaces = [];
|
|
555
|
+
for (const el of nsNode.elements) {
|
|
556
|
+
const expr = el?.expression;
|
|
557
|
+
if (!expr)
|
|
558
|
+
continue;
|
|
559
|
+
if (expr.type === 'StringLiteral')
|
|
560
|
+
namespaces.push(expr.value);
|
|
561
|
+
else if (expr.type === 'Identifier') {
|
|
562
|
+
const resolved = this.resolveSimpleStringIdentifier(expr.value);
|
|
563
|
+
if (resolved !== undefined)
|
|
564
|
+
namespaces.push(resolved);
|
|
565
|
+
}
|
|
566
|
+
else if (expr.type === 'MemberExpression') {
|
|
567
|
+
const resolved = this.resolveSimpleMemberExpression(expr);
|
|
568
|
+
if (resolved !== undefined)
|
|
569
|
+
namespaces.push(resolved);
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
return { defaultNs: namespaces[0], namespaces: namespaces.length > 0 ? namespaces : undefined };
|
|
573
|
+
}
|
|
574
|
+
return {};
|
|
575
|
+
}
|
|
561
576
|
resolveStringArg(node) {
|
|
562
577
|
if (!node)
|
|
563
578
|
return undefined;
|
package/dist/cjs/linter.js
CHANGED
package/dist/esm/cli.js
CHANGED
|
@@ -30,7 +30,7 @@ const program = new Command();
|
|
|
30
30
|
program
|
|
31
31
|
.name('i18next-cli')
|
|
32
32
|
.description('A unified, high-performance i18next CLI.')
|
|
33
|
-
.version('1.56.
|
|
33
|
+
.version('1.56.11'); // This string is replaced with the actual version at build time by rollup
|
|
34
34
|
// new: global config override option
|
|
35
35
|
program.option('-c, --config <path>', 'Path to i18next-cli config file (overrides detection)');
|
|
36
36
|
program
|
|
@@ -105,7 +105,7 @@ class CallExpressionHandler {
|
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
|
-
const { keysToProcess, isSelectorAPI } = this.handleCallExpressionArgument(node, 0);
|
|
108
|
+
const { keysToProcess, originalKeysToProcess, isSelectorAPI } = this.handleCallExpressionArgument(node, 0, scopeInfo);
|
|
109
109
|
if (keysToProcess.length === 0)
|
|
110
110
|
return;
|
|
111
111
|
let isOrdinalByKey = false;
|
|
@@ -170,7 +170,11 @@ class CallExpressionHandler {
|
|
|
170
170
|
const explicitPluralForVariants = Boolean(explicitPluralDefaultsInOptions || (typeof finalDefaultValue === 'string' && !containsCountPlaceholder(finalDefaultValue)));
|
|
171
171
|
// Loop through each key found (could be one or more) and process it
|
|
172
172
|
for (let i = 0; i < keysToProcess.length; i++) {
|
|
173
|
-
|
|
173
|
+
// For the dv heuristic we want the user-typed shape, not the post-rewrite
|
|
174
|
+
// form: a synthetic `validation:email` (rewritten from a `$.validation.email`
|
|
175
|
+
// selector) shouldn't leak into the default value. originalKeysToProcess
|
|
176
|
+
// is the pre-rewrite path; for non-selector calls it's the same as keysToProcess.
|
|
177
|
+
const originalKey = originalKeysToProcess[i];
|
|
174
178
|
let key = keysToProcess[i];
|
|
175
179
|
let ns;
|
|
176
180
|
// Determine namespace (explicit ns > ns:key > scope ns > default)
|
|
@@ -553,32 +557,90 @@ class CallExpressionHandler {
|
|
|
553
557
|
* @param argIndex - The index of the argument to process
|
|
554
558
|
* @returns An object containing the keys to process and a flag indicating if the selector API is used
|
|
555
559
|
*/
|
|
556
|
-
handleCallExpressionArgument(node, argIndex) {
|
|
560
|
+
handleCallExpressionArgument(node, argIndex, scopeInfo) {
|
|
557
561
|
const firstArg = node.arguments[argIndex].expression;
|
|
558
562
|
const keysToProcess = [];
|
|
563
|
+
// Mirror of keysToProcess BEFORE selector-ns rewriting. For non-selector
|
|
564
|
+
// calls and selector calls that don't trigger a rewrite, both arrays hold
|
|
565
|
+
// identical strings. Used by the default-value heuristic so a synthetic
|
|
566
|
+
// `ns:key` from selector rewriting doesn't surface as the dv.
|
|
567
|
+
const originalKeysToProcess = [];
|
|
559
568
|
let isSelectorAPI = false;
|
|
560
569
|
if (firstArg.type === 'ArrowFunctionExpression') {
|
|
561
570
|
const keys = this.extractKeysFromSelector(firstArg);
|
|
562
571
|
if (keys.length > 0) {
|
|
563
|
-
|
|
572
|
+
for (const k of keys) {
|
|
573
|
+
originalKeysToProcess.push(k);
|
|
574
|
+
keysToProcess.push(this.applySelectorNsRewrite(k, scopeInfo));
|
|
575
|
+
}
|
|
564
576
|
isSelectorAPI = true;
|
|
565
577
|
}
|
|
566
578
|
}
|
|
567
579
|
else if (firstArg.type === 'ArrayExpression') {
|
|
568
580
|
for (const element of firstArg.elements) {
|
|
569
581
|
if (element?.expression) {
|
|
570
|
-
|
|
582
|
+
const resolved = this.expressionResolver.resolvePossibleKeyStringValues(element.expression);
|
|
583
|
+
keysToProcess.push(...resolved);
|
|
584
|
+
originalKeysToProcess.push(...resolved);
|
|
571
585
|
}
|
|
572
586
|
}
|
|
573
587
|
}
|
|
574
588
|
else {
|
|
575
|
-
|
|
589
|
+
const resolved = this.expressionResolver.resolvePossibleKeyStringValues(firstArg);
|
|
590
|
+
keysToProcess.push(...resolved);
|
|
591
|
+
originalKeysToProcess.push(...resolved);
|
|
592
|
+
}
|
|
593
|
+
// Filter empties on both arrays in lockstep to keep them index-aligned.
|
|
594
|
+
const filteredKeys = [];
|
|
595
|
+
const filteredOriginals = [];
|
|
596
|
+
for (let i = 0; i < keysToProcess.length; i++) {
|
|
597
|
+
if (keysToProcess[i]) {
|
|
598
|
+
filteredKeys.push(keysToProcess[i]);
|
|
599
|
+
filteredOriginals.push(originalKeysToProcess[i]);
|
|
600
|
+
}
|
|
576
601
|
}
|
|
577
602
|
return {
|
|
578
|
-
keysToProcess:
|
|
603
|
+
keysToProcess: filteredKeys,
|
|
604
|
+
originalKeysToProcess: filteredOriginals,
|
|
579
605
|
isSelectorAPI,
|
|
580
606
|
};
|
|
581
607
|
}
|
|
608
|
+
/**
|
|
609
|
+
* Mirror i18next v25.8.19's runtime selector rule: when the hook was called
|
|
610
|
+
* with a multi-element namespace array (e.g. `useTranslation(['nsA', 'nsB'])`)
|
|
611
|
+
* and a selector path's first segment matches a *secondary* namespace,
|
|
612
|
+
* rewrite the joined key to `ns<nsSeparator>rest` so the downstream
|
|
613
|
+
* extractor's standard `ns:key` split routes the key to the right file.
|
|
614
|
+
*
|
|
615
|
+
* The primary namespace is intentionally never rewritten — its keys are
|
|
616
|
+
* exposed flat on `$`, so a leading segment matching the primary name means
|
|
617
|
+
* a literal sub-key (see #2405). This matches the runtime behavior in
|
|
618
|
+
* i18next/src/selector.js exactly.
|
|
619
|
+
*
|
|
620
|
+
* Falls through to the input string when:
|
|
621
|
+
* - the call had no selector (string keys go through this path unchanged),
|
|
622
|
+
* - scope has < 2 namespaces, or
|
|
623
|
+
* - first segment is the primary or not in the scope's namespaces list.
|
|
624
|
+
*/
|
|
625
|
+
applySelectorNsRewrite(key, scopeInfo) {
|
|
626
|
+
const ns = scopeInfo?.namespaces;
|
|
627
|
+
if (!ns || ns.length < 2)
|
|
628
|
+
return key;
|
|
629
|
+
const keySeparator = this.config.extract.keySeparator;
|
|
630
|
+
const joiner = typeof keySeparator === 'string' ? keySeparator : '.';
|
|
631
|
+
const nsSeparator = this.config.extract.nsSeparator ?? ':';
|
|
632
|
+
if (keySeparator === false || !nsSeparator)
|
|
633
|
+
return key;
|
|
634
|
+
const firstSepAt = key.indexOf(joiner);
|
|
635
|
+
if (firstSepAt < 0)
|
|
636
|
+
return key;
|
|
637
|
+
const head = key.slice(0, firstSepAt);
|
|
638
|
+
if (head === ns[0])
|
|
639
|
+
return key;
|
|
640
|
+
if (!ns.includes(head))
|
|
641
|
+
return key;
|
|
642
|
+
return `${head}${nsSeparator}${key.slice(firstSepAt + joiner.length)}`;
|
|
643
|
+
}
|
|
582
644
|
/**
|
|
583
645
|
* Extracts translation key(s) from selector API arrow function.
|
|
584
646
|
*
|
|
@@ -378,25 +378,9 @@ class ScopeManager {
|
|
|
378
378
|
else {
|
|
379
379
|
// Position-driven extraction: respect hookConfig positions (nsArg/keyPrefixArg).
|
|
380
380
|
if (nsArgIndex !== -1) {
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
}
|
|
385
|
-
else if (nsNode?.type === 'Identifier') {
|
|
386
|
-
defaultNs = this.resolveSimpleStringIdentifier(nsNode.value);
|
|
387
|
-
}
|
|
388
|
-
else if (nsNode?.type === 'MemberExpression') {
|
|
389
|
-
defaultNs = this.resolveSimpleMemberExpression(nsNode);
|
|
390
|
-
}
|
|
391
|
-
else if (nsNode?.type === 'ArrayExpression') {
|
|
392
|
-
const first = nsNode.elements[0]?.expression;
|
|
393
|
-
if (first?.type === 'StringLiteral') {
|
|
394
|
-
defaultNs = first.value;
|
|
395
|
-
}
|
|
396
|
-
else if (first?.type === 'Identifier') {
|
|
397
|
-
defaultNs = this.resolveSimpleStringIdentifier(first.value);
|
|
398
|
-
}
|
|
399
|
-
}
|
|
381
|
+
// Comment scope only cares about the primary ns — selector multi-ns
|
|
382
|
+
// rewriting is handled by the runtime extractor scope, not comments.
|
|
383
|
+
defaultNs = this.resolveNsArg(callExpr.arguments?.[nsArgIndex]?.expression).defaultNs;
|
|
400
384
|
}
|
|
401
385
|
kpArg = kpArgIndex === -1 ? undefined : callExpr.arguments?.[kpArgIndex]?.expression;
|
|
402
386
|
}
|
|
@@ -446,6 +430,7 @@ class ScopeManager {
|
|
|
446
430
|
const nsArgIndex = hookConfig.nsArg ?? 0;
|
|
447
431
|
const kpArgIndex = hookConfig.keyPrefixArg ?? 1;
|
|
448
432
|
let defaultNs;
|
|
433
|
+
let namespaces;
|
|
449
434
|
let keyPrefix;
|
|
450
435
|
// Early detect useTranslation(lng, ns) for built-in hook name only
|
|
451
436
|
const first = callExpr.arguments?.[0]?.expression;
|
|
@@ -463,25 +448,9 @@ class ScopeManager {
|
|
|
463
448
|
}
|
|
464
449
|
else {
|
|
465
450
|
if (nsArgIndex !== -1) {
|
|
466
|
-
const
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
}
|
|
470
|
-
else if (nsNode?.type === 'Identifier') {
|
|
471
|
-
defaultNs = this.resolveSimpleStringIdentifier(nsNode.value);
|
|
472
|
-
}
|
|
473
|
-
else if (nsNode?.type === 'MemberExpression') {
|
|
474
|
-
defaultNs = this.resolveSimpleMemberExpression(nsNode);
|
|
475
|
-
}
|
|
476
|
-
else if (nsNode?.type === 'ArrayExpression') {
|
|
477
|
-
const first = nsNode.elements[0]?.expression;
|
|
478
|
-
if (first?.type === 'StringLiteral') {
|
|
479
|
-
defaultNs = first.value;
|
|
480
|
-
}
|
|
481
|
-
else if (first?.type === 'Identifier') {
|
|
482
|
-
defaultNs = this.resolveSimpleStringIdentifier(first.value);
|
|
483
|
-
}
|
|
484
|
-
}
|
|
451
|
+
const resolved = this.resolveNsArg(callExpr.arguments?.[nsArgIndex]?.expression);
|
|
452
|
+
defaultNs = resolved.defaultNs;
|
|
453
|
+
namespaces = resolved.namespaces;
|
|
485
454
|
}
|
|
486
455
|
kpArg = kpArgIndex === -1 ? undefined : callExpr.arguments?.[kpArgIndex]?.expression;
|
|
487
456
|
}
|
|
@@ -503,24 +472,25 @@ class ScopeManager {
|
|
|
503
472
|
keyPrefix = tpl.quasis?.[0]?.cooked ?? undefined;
|
|
504
473
|
}
|
|
505
474
|
}
|
|
475
|
+
const info = { defaultNs, namespaces, keyPrefix };
|
|
506
476
|
// Attach scope info to all destructured properties (custom functions, t, getFixedT, etc.)
|
|
507
477
|
if (node.id.type === 'ObjectPattern') {
|
|
508
478
|
for (const prop of node.id.properties) {
|
|
509
479
|
if (prop.type === 'AssignmentPatternProperty' && prop.key.type === 'Identifier') {
|
|
510
|
-
this.setVarInScope(prop.key.value,
|
|
480
|
+
this.setVarInScope(prop.key.value, info);
|
|
511
481
|
}
|
|
512
482
|
if (prop.type === 'KeyValuePatternProperty' && prop.value.type === 'Identifier') {
|
|
513
|
-
this.setVarInScope(prop.value.value,
|
|
483
|
+
this.setVarInScope(prop.value.value, info);
|
|
514
484
|
}
|
|
515
485
|
}
|
|
516
486
|
}
|
|
517
487
|
else if (node.id.type === 'Identifier') {
|
|
518
|
-
this.setVarInScope(node.id.value,
|
|
488
|
+
this.setVarInScope(node.id.value, info);
|
|
519
489
|
}
|
|
520
490
|
else if (node.id.type === 'ArrayPattern') {
|
|
521
491
|
const firstElement = node.id.elements[0];
|
|
522
492
|
if (firstElement?.type === 'Identifier') {
|
|
523
|
-
this.setVarInScope(firstElement.value,
|
|
493
|
+
this.setVarInScope(firstElement.value, info);
|
|
524
494
|
}
|
|
525
495
|
}
|
|
526
496
|
}
|
|
@@ -556,6 +526,51 @@ class ScopeManager {
|
|
|
556
526
|
* without interpolation. Returns undefined when the expression cannot be
|
|
557
527
|
* resolved statically.
|
|
558
528
|
*/
|
|
529
|
+
/**
|
|
530
|
+
* Resolve the `ns` argument of useTranslation to `{ defaultNs, namespaces }`.
|
|
531
|
+
*
|
|
532
|
+
* - String literal / identifier / member-expr → single `defaultNs`, no array.
|
|
533
|
+
* - Array expression → first element becomes `defaultNs`, every statically
|
|
534
|
+
* resolvable element ends up in `namespaces` (preserving order).
|
|
535
|
+
*
|
|
536
|
+
* `namespaces` is only set when the input was an array form, so consumers can
|
|
537
|
+
* distinguish `useTranslation('a')` (single, `namespaces` undefined) from
|
|
538
|
+
* `useTranslation(['a'])` (single-element array, `namespaces = ['a']`).
|
|
539
|
+
* The runtime selector rule from v25.8.19 only applies when length > 1, so
|
|
540
|
+
* either single form behaves identically downstream.
|
|
541
|
+
*/
|
|
542
|
+
resolveNsArg(nsNode) {
|
|
543
|
+
if (!nsNode)
|
|
544
|
+
return {};
|
|
545
|
+
if (nsNode.type === 'StringLiteral')
|
|
546
|
+
return { defaultNs: nsNode.value };
|
|
547
|
+
if (nsNode.type === 'Identifier')
|
|
548
|
+
return { defaultNs: this.resolveSimpleStringIdentifier(nsNode.value) };
|
|
549
|
+
if (nsNode.type === 'MemberExpression')
|
|
550
|
+
return { defaultNs: this.resolveSimpleMemberExpression(nsNode) };
|
|
551
|
+
if (nsNode.type === 'ArrayExpression') {
|
|
552
|
+
const namespaces = [];
|
|
553
|
+
for (const el of nsNode.elements) {
|
|
554
|
+
const expr = el?.expression;
|
|
555
|
+
if (!expr)
|
|
556
|
+
continue;
|
|
557
|
+
if (expr.type === 'StringLiteral')
|
|
558
|
+
namespaces.push(expr.value);
|
|
559
|
+
else if (expr.type === 'Identifier') {
|
|
560
|
+
const resolved = this.resolveSimpleStringIdentifier(expr.value);
|
|
561
|
+
if (resolved !== undefined)
|
|
562
|
+
namespaces.push(resolved);
|
|
563
|
+
}
|
|
564
|
+
else if (expr.type === 'MemberExpression') {
|
|
565
|
+
const resolved = this.resolveSimpleMemberExpression(expr);
|
|
566
|
+
if (resolved !== undefined)
|
|
567
|
+
namespaces.push(resolved);
|
|
568
|
+
}
|
|
569
|
+
}
|
|
570
|
+
return { defaultNs: namespaces[0], namespaces: namespaces.length > 0 ? namespaces : undefined };
|
|
571
|
+
}
|
|
572
|
+
return {};
|
|
573
|
+
}
|
|
559
574
|
resolveStringArg(node) {
|
|
560
575
|
if (!node)
|
|
561
576
|
return undefined;
|
package/dist/esm/linter.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "i18next-cli",
|
|
3
|
-
"version": "1.56.
|
|
3
|
+
"version": "1.56.11",
|
|
4
4
|
"description": "A unified, high-performance i18next CLI.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"minimatch": "^10.2.5",
|
|
86
86
|
"ora": "^9.3.0",
|
|
87
87
|
"react": "^19.2.5",
|
|
88
|
-
"react-i18next": "^17.0.
|
|
88
|
+
"react-i18next": "^17.0.7",
|
|
89
89
|
"yaml": "^2.8.3"
|
|
90
90
|
}
|
|
91
91
|
}
|
|
@@ -49,6 +49,24 @@ export declare class CallExpressionHandler {
|
|
|
49
49
|
* @returns An object containing the keys to process and a flag indicating if the selector API is used
|
|
50
50
|
*/
|
|
51
51
|
private handleCallExpressionArgument;
|
|
52
|
+
/**
|
|
53
|
+
* Mirror i18next v25.8.19's runtime selector rule: when the hook was called
|
|
54
|
+
* with a multi-element namespace array (e.g. `useTranslation(['nsA', 'nsB'])`)
|
|
55
|
+
* and a selector path's first segment matches a *secondary* namespace,
|
|
56
|
+
* rewrite the joined key to `ns<nsSeparator>rest` so the downstream
|
|
57
|
+
* extractor's standard `ns:key` split routes the key to the right file.
|
|
58
|
+
*
|
|
59
|
+
* The primary namespace is intentionally never rewritten — its keys are
|
|
60
|
+
* exposed flat on `$`, so a leading segment matching the primary name means
|
|
61
|
+
* a literal sub-key (see #2405). This matches the runtime behavior in
|
|
62
|
+
* i18next/src/selector.js exactly.
|
|
63
|
+
*
|
|
64
|
+
* Falls through to the input string when:
|
|
65
|
+
* - the call had no selector (string keys go through this path unchanged),
|
|
66
|
+
* - scope has < 2 namespaces, or
|
|
67
|
+
* - first segment is the primary or not in the scope's namespaces list.
|
|
68
|
+
*/
|
|
69
|
+
private applySelectorNsRewrite;
|
|
52
70
|
/**
|
|
53
71
|
* Extracts translation key(s) from selector API arrow function.
|
|
54
72
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call-expression-handler.d.ts","sourceRoot":"","sources":["../../../src/extractor/parsers/call-expression-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAA6C,MAAM,WAAW,CAAA;AAC1F,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,EAAgB,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1G,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAa7D,qBAAa,qBAAqB;IAChC,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,MAAM,CAAuC;IACrD,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,kBAAkB,CAAoB;IACvC,UAAU,cAAoB;IACrC,OAAO,CAAC,cAAc,CAAc;IACpC,OAAO,CAAC,cAAc,CAAc;IACpC,OAAO,CAAC,iBAAiB,CAAsC;gBAG7D,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,EAC7C,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM,EACd,kBAAkB,EAAE,kBAAkB,EACtC,cAAc,EAAE,MAAM,MAAM,EAC5B,cAAc,EAAE,MAAM,MAAM,EAC5B,iBAAiB,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAA2B;IAW3E;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAiB3B;;;;;;;;;;;;;;OAcG;IACH,oBAAoB,CAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,GAAG,SAAS,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"call-expression-handler.d.ts","sourceRoot":"","sources":["../../../src/extractor/parsers/call-expression-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAA6C,MAAM,WAAW,CAAA;AAC1F,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,EAAgB,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1G,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAa7D,qBAAa,qBAAqB;IAChC,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,MAAM,CAAuC;IACrD,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,kBAAkB,CAAoB;IACvC,UAAU,cAAoB;IACrC,OAAO,CAAC,cAAc,CAAc;IACpC,OAAO,CAAC,cAAc,CAAc;IACpC,OAAO,CAAC,iBAAiB,CAAsC;gBAG7D,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,EAC7C,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM,EACd,kBAAkB,EAAE,kBAAkB,EACtC,cAAc,EAAE,MAAM,MAAM,EAC5B,cAAc,EAAE,MAAM,MAAM,EAC5B,iBAAiB,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAA2B;IAW3E;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAiB3B;;;;;;;;;;;;;;OAcG;IACH,oBAAoB,CAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,GAAG,SAAS,GAAG,IAAI;IAgaxG;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAmBzB,OAAO,CAAC,wBAAwB;IAyEhC;;;;;;OAMG;IACH,OAAO,CAAC,4BAA4B;IAsDpC;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,sBAAsB;IAkB9B;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,uBAAuB;IAgB/B;;;;;;;;OAQG;IACH,OAAO,CAAC,iCAAiC;IAwFzC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,gBAAgB;IAyMxB;;;;;;;;;OASG;IACH,OAAO,CAAC,eAAe;CA2BxB"}
|
|
@@ -147,6 +147,20 @@ export declare class ScopeManager {
|
|
|
147
147
|
* without interpolation. Returns undefined when the expression cannot be
|
|
148
148
|
* resolved statically.
|
|
149
149
|
*/
|
|
150
|
+
/**
|
|
151
|
+
* Resolve the `ns` argument of useTranslation to `{ defaultNs, namespaces }`.
|
|
152
|
+
*
|
|
153
|
+
* - String literal / identifier / member-expr → single `defaultNs`, no array.
|
|
154
|
+
* - Array expression → first element becomes `defaultNs`, every statically
|
|
155
|
+
* resolvable element ends up in `namespaces` (preserving order).
|
|
156
|
+
*
|
|
157
|
+
* `namespaces` is only set when the input was an array form, so consumers can
|
|
158
|
+
* distinguish `useTranslation('a')` (single, `namespaces` undefined) from
|
|
159
|
+
* `useTranslation(['a'])` (single-element array, `namespaces = ['a']`).
|
|
160
|
+
* The runtime selector rule from v25.8.19 only applies when length > 1, so
|
|
161
|
+
* either single form behaves identically downstream.
|
|
162
|
+
*/
|
|
163
|
+
private resolveNsArg;
|
|
150
164
|
private resolveStringArg;
|
|
151
165
|
/**
|
|
152
166
|
* Handles cases where a getFixedT-like function is a variable (from a custom hook)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scope-manager.d.ts","sourceRoot":"","sources":["../../../src/extractor/parsers/scope-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EAEV,kBAAkB,EAMnB,MAAM,WAAW,CAAA;AAClB,OAAO,KAAK,EAAE,SAAS,EAA4B,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAG/F,qBAAa,YAAY;IACvB,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,MAAM,CAAuC;IACrD,OAAO,CAAC,KAAK,CAAqE;IAMlF,OAAO,CAAC,cAAc,CAAoC;IAG1D,OAAO,CAAC,eAAe,CAAiC;IAGxD,OAAO,CAAC,qBAAqB,CAAiD;IAI9E,OAAO,CAAC,eAAe,CAAiC;IACxD,OAAO,CAAC,qBAAqB,CAAiD;gBAEjE,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC;IAI1D;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAcjC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,+BAA+B;IAgB9C;;;;;;OAMG;IACI,KAAK,IAAK,IAAI;IAQrB;;;;OAIG;IACH,eAAe,IAAK,IAAI;IAIxB;;;OAGG;IACH,cAAc,IAAK,IAAI;IAIvB;;;;;;;OAOG;IACH,YAAY,CAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAMvD;;;;;OAKG;IACH,YAAY,CAAE,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IASvD;;;OAGG;IACH,UAAU,IAAK,IAAI;IAInB;;;OAGG;IACH,SAAS,IAAK,IAAI;IAIlB;;;;;;OAMG;IACH,aAAa,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAUnD;;;;;;OAMG;IACH,eAAe,CAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAkBrD,OAAO,CAAC,uBAAuB;IAoB/B;;OAEG;IACI,6BAA6B,CAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIvE;;;OAGG;IACH,OAAO,CAAC,6BAA6B;IAqBrC;;;;;;;;;;OAUG;IACH,wBAAwB,CAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI;IAsGzD;;;;;;;;OAQG;IACH,OAAO,CAAC,+BAA+B;
|
|
1
|
+
{"version":3,"file":"scope-manager.d.ts","sourceRoot":"","sources":["../../../src/extractor/parsers/scope-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EAEV,kBAAkB,EAMnB,MAAM,WAAW,CAAA;AAClB,OAAO,KAAK,EAAE,SAAS,EAA4B,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAG/F,qBAAa,YAAY;IACvB,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,MAAM,CAAuC;IACrD,OAAO,CAAC,KAAK,CAAqE;IAMlF,OAAO,CAAC,cAAc,CAAoC;IAG1D,OAAO,CAAC,eAAe,CAAiC;IAGxD,OAAO,CAAC,qBAAqB,CAAiD;IAI9E,OAAO,CAAC,eAAe,CAAiC;IACxD,OAAO,CAAC,qBAAqB,CAAiD;gBAEjE,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC;IAI1D;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAcjC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,+BAA+B;IAgB9C;;;;;;OAMG;IACI,KAAK,IAAK,IAAI;IAQrB;;;;OAIG;IACH,eAAe,IAAK,IAAI;IAIxB;;;OAGG;IACH,cAAc,IAAK,IAAI;IAIvB;;;;;;;OAOG;IACH,YAAY,CAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAMvD;;;;;OAKG;IACH,YAAY,CAAE,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IASvD;;;OAGG;IACH,UAAU,IAAK,IAAI;IAInB;;;OAGG;IACH,SAAS,IAAK,IAAI;IAIlB;;;;;;OAMG;IACH,aAAa,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAUnD;;;;;;OAMG;IACH,eAAe,CAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAkBrD,OAAO,CAAC,uBAAuB;IAoB/B;;OAEG;IACI,6BAA6B,CAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIvE;;;OAGG;IACH,OAAO,CAAC,6BAA6B;IAqBrC;;;;;;;;;;OAUG;IACH,wBAAwB,CAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI;IAsGzD;;;;;;;;OAQG;IACH,OAAO,CAAC,+BAA+B;IA8FvC;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,8BAA8B;IA0EtC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,yBAAyB;IAiBjC;;;;;;OAMG;IACH;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,YAAY;IAwBpB,OAAO,CAAC,gBAAgB;IAexB;;;;;;;;;OASG;IACH,OAAO,CAAC,qCAAqC;IAqB7C;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAgBnC;;;OAGG;IACH,OAAO,CAAC,6BAA6B;IAyBrC;;;;;;;;;;;OAWG;IACH,kBAAkB,CAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;IAwBlF;;;;;OAKG;IACH,OAAO,CAAC,4BAA4B;CA+DrC"}
|
package/types/types.d.ts
CHANGED
|
@@ -678,6 +678,17 @@ export interface PluginContext {
|
|
|
678
678
|
export interface ScopeInfo {
|
|
679
679
|
/** Default namespace for translation calls in this scope */
|
|
680
680
|
defaultNs?: string;
|
|
681
|
+
/**
|
|
682
|
+
* Full namespace list when the hook was called with an array
|
|
683
|
+
* (e.g. `useTranslation(['nsA', 'nsB'])`).
|
|
684
|
+
*
|
|
685
|
+
* Mirrors the runtime selector rule from i18next v25.8.19: when a selector
|
|
686
|
+
* path's first segment matches a secondary namespace in this list, the
|
|
687
|
+
* extractor rewrites the key to `ns:rest` so it routes to the right file.
|
|
688
|
+
* `defaultNs` is the primary (`namespaces[0]`); subsequent entries are
|
|
689
|
+
* "secondary" and eligible for the rewrite.
|
|
690
|
+
*/
|
|
691
|
+
namespaces?: string[];
|
|
681
692
|
/** Key prefix to prepend to all translation keys in this scope */
|
|
682
693
|
keyPrefix?: string;
|
|
683
694
|
}
|
package/types/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|