2024-09-11 00:03:13 +08:00

32 lines
948 B
TypeScript

import { computed, toRef } from 'vue'
import { useRouteLocale } from 'vuepress/client'
import type { MaybeRef } from 'vue'
import type { SearchBoxLocales } from '../../shared/index.js'
const defaultLocales: SearchBoxLocales = {
'/': {
placeholder: 'Search',
resetButtonTitle: 'Reset search',
backButtonTitle: 'Close search',
noResultsText: 'No results for',
footer: {
selectText: 'to select',
selectKeyAriaLabel: 'enter',
navigateText: 'to navigate',
navigateUpKeyAriaLabel: 'up arrow',
navigateDownKeyAriaLabel: 'down arrow',
closeText: 'to close',
closeKeyAriaLabel: 'escape',
},
},
}
export function useLocale(locales: MaybeRef<SearchBoxLocales>) {
const localesRef = toRef(locales)
const routeLocale = useRouteLocale()
const locale = computed(() => localesRef.value[routeLocale.value] ?? defaultLocales[routeLocale.value] ?? defaultLocales['/'])
return locale
}