import { TransformContext, DirectiveTransform } from '@vue/compiler-dom'; import { I18n, I18nMode } from 'vue-i18n'; /** * Translation signature resolver * * @remarks * This resolver is used at {@link TransformVTDirectiveOptions | 'translationSignatures' option} * * @public * * @example * ```js * import { compile } from '@vue/compiler-dom' * import { transformVTDirective } from '@intlify/vue-i18n-extensions' * * // the below is just an example, you can use your own signature resolver * const signatureMap = new Map() * * const transformVT = transformVTDirective({ * translationSignatures: (context) => { * const { prefixIdentifiers, bindingMetadata, inline, filename } = context * let signature = '' * * // something logic to resolve signature like using `signatureMap` * // signature = signatureMap.get(filename) * // ... * * return signature * } * }) * * const { code } = compile(`
`, { * // ... * directiveTransforms: { t: transformVT } * }) * ``` */ type TranslationSignatureResolver = (context: TransformContext, baseResolver: (context: TransformContext, signature: string) => string | undefined) => string | undefined; /** * Transform options for `v-t` custom directive * * @public */ interface TransformVTDirectiveOptions