@@ -85,7 +85,10 @@ type VTDirectiveValue = {
85
85
* })
86
86
* ```
87
87
*/
88
- export type TranslationSignatureResolver = ( context : TransformContext ) => string
88
+ export type TranslationSignatureResolver = (
89
+ context : TransformContext ,
90
+ baseResolver : ( context : TransformContext , signature : string ) => string | undefined
91
+ ) => string | undefined
89
92
90
93
/**
91
94
* Transform options for `v-t` custom directive
@@ -452,24 +455,27 @@ function generateTranslationCallableSignatures(
452
455
context : TransformContext ,
453
456
translationSignatures : ( string | TranslationSignatureResolver ) [ ]
454
457
) : string {
455
- const { prefixIdentifiers, bindingMetadata, inline } = context
458
+ const baseResolver = ( context : TransformContext , signature : string ) => {
459
+ const { prefixIdentifiers, bindingMetadata, inline } = context
460
+ if ( inline && signature !== GLOBAL_TRANSLATE_SIGNATURE ) {
461
+ return signature
462
+ }
463
+ const type = hasOwn ( bindingMetadata , signature ) && bindingMetadata [ signature ]
464
+ const bindingContext = prefixIdentifiers
465
+ ? ( type && type . startsWith ( 'setup' ) ) || type === BindingTypes . LITERAL_CONST
466
+ ? '$setup.'
467
+ : '_ctx.'
468
+ : ''
469
+ return `${ bindingContext } ${ signature } `
470
+ }
456
471
return translationSignatures
457
472
. map ( signatureOrResolver => {
458
473
if ( isFunction ( signatureOrResolver ) ) {
459
- return signatureOrResolver ( context )
460
- }
461
- if ( inline && signatureOrResolver !== GLOBAL_TRANSLATE_SIGNATURE ) {
462
- return signatureOrResolver
474
+ return signatureOrResolver ( context , baseResolver )
463
475
}
464
- const type =
465
- hasOwn ( bindingMetadata , signatureOrResolver ) && bindingMetadata [ signatureOrResolver ]
466
- const bindingContext = prefixIdentifiers
467
- ? ( type && type . startsWith ( 'setup' ) ) || type === BindingTypes . LITERAL_CONST
468
- ? '$setup.'
469
- : '_ctx.'
470
- : ''
471
- return `${ bindingContext } ${ signatureOrResolver } `
476
+ return baseResolver ( context , signatureOrResolver )
472
477
} )
478
+ . filter ( Boolean )
473
479
. join ( ' || ' )
474
480
}
475
481
0 commit comments