nuxt-i18n-micro
Version:
Nuxt I18n Micro is a lightweight, high-performance internationalization module for Nuxt, designed to handle multi-language support with minimal overhead, fast build times, and efficient runtime performance.
97 lines (85 loc) • 4.53 kB
text/typescript
declare module '#build/i18n.plural.mjs' {
export function plural(key: string, count: number, params: Params, locale: string, getter: Getter): string | null
}
/** Приватный конфиг i18n (серверный): rootDir, rootDirs, debug, translationDir и т.д. Копия полей ModulePrivateOptionsExtend без импорта. */
interface I18nPrivateConfig {
rootDir: string
debug: boolean
translationDir: string
fallbackLocale?: string
apiBaseUrl: string
apiBaseClientHost?: string
apiBaseServerHost?: string
customRegexMatcher?: string
routesLocaleLinks?: Record<string, string>
serverTranslationPreload?: boolean
}
declare module '#build/i18n.config.mjs' {
export function getI18nPrivateConfig(): I18nPrivateConfig
}
/**
* Типы для #build/i18n.strategy.mjs — скопированы без импорта из @i18n-micro/path-strategy.
*/
/** Контекст стратегии (копия PathStrategyContext). */
interface I18nStrategyContextRouter {
hasRoute: (name: string) => boolean
resolve: (to: { name?: string | null, path?: string, params?: Record<string, unknown>, query?: Record<string, unknown>, hash?: string } | string) => I18nStrategyResolvedRoute
}
interface I18nStrategyContext {
strategy: 'no_prefix' | 'prefix_except_default' | 'prefix' | 'prefix_and_default'
defaultLocale: string
locales: Array<{ code: string, [key: string]: unknown }>
localizedRouteNamePrefix: string
router: I18nStrategyContextRouter
globalLocaleRoutes?: Record<string, Record<string, string> | false | boolean>
routeLocales?: Record<string, string[]>
routesLocaleLinks?: Record<string, string>
noPrefixRedirect?: boolean
}
interface I18nStrategyResolvedRoute {
name: string | null
path: string
fullPath: string
params?: Record<string, unknown>
query?: Record<string, unknown>
hash?: string
}
/** Экземпляр стратегии (копия PathStrategy). */
export interface I18nStrategyInstance {
getRedirect(currentPath: string, targetLocale: string): string | null
getLocaleFromPath(path: string): string | null
resolveLocaleFromPath(path: string): string | null
localeRoute(targetLocale: string, routeOrPath: I18nStrategyResolvedRoute | string, currentRoute?: I18nStrategyResolvedRoute): I18nStrategyResolvedRoute | string
switchLocaleRoute(fromLocale: string, toLocale: string, route: I18nStrategyResolvedRoute, options?: { i18nRouteParams?: Record<string, Record<string, unknown>> }): I18nStrategyResolvedRoute | string
getCanonicalPath(route: I18nStrategyResolvedRoute, targetLocale: string): string | null
setRouter(router: I18nStrategyRouterLike): void
getCurrentLocale(route: I18nStrategyResolvedRoute, getDefaultLocale?: () => string | null | undefined): string
getPluginRouteName(route: I18nStrategyResolvedRoute, locale: string): string
getCurrentLocaleName(route: I18nStrategyResolvedRoute, getDefaultLocale?: () => string | null | undefined): string | null
getDefaultLocale(): string
getLocales(): Array<{ code: string, [key: string]: unknown }>
getStrategy(): 'no_prefix' | 'prefix_except_default' | 'prefix' | 'prefix_and_default'
getLocalizedRouteNamePrefix(): string
getGlobalLocaleRoutes(): Record<string, Record<string, string> | false | boolean> | undefined
getRouteLocales(): Record<string, string[]> | undefined
getRoutesLocaleLinks(): Record<string, string> | undefined
getNoPrefixRedirect(): boolean | undefined
}
/** Роутер для createI18nStrategy (hasRoute, resolve). */
interface I18nStrategyRouterLike {
hasRoute(name: string): boolean
resolve(to: unknown): { name: string | null, path: string, fullPath: string, params?: Record<string, unknown>, query?: Record<string, unknown>, hash?: string }
}
declare module '#build/i18n.strategy.mjs' {
/** Создаёт инстанс стратегии: контекст (build-time) уже в файле, при импорте передаётся только router. */
export function createI18nStrategy(router: I18nStrategyRouterLike): I18nStrategyInstance
export function getI18nConfig(): unknown
}
/** Nitro-алиасы: те же экспорты, что и #build/..., для server routes/plugins/middleware */
declare module '#i18n-internal/config' {
export function getI18nPrivateConfig(): I18nPrivateConfig
}
declare module '#i18n-internal/strategy' {
export function getI18nConfig(): unknown
export function createI18nStrategy(router: I18nStrategyRouterLike): I18nStrategyInstance
}