Nuxt i18n with lazy-loaded JSON files, localized routes, hreflang SEO tags, LanguageSwitcher component. Laravel SetLocale middleware, HasTranslations trait, API Resources and Controllers for projects/skills with Accept-Language support. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
30 lines
659 B
TypeScript
30 lines
659 B
TypeScript
export const useLocale = () => {
|
|
const { locale, locales, setLocale } = useI18n()
|
|
const switchLocalePath = useSwitchLocalePath()
|
|
const localePath = useLocalePath()
|
|
|
|
const currentLocale = computed(() => locale.value)
|
|
|
|
const availableLocales = computed(() =>
|
|
(locales.value as Array<{ code: string; name: string }>).map(l => ({
|
|
code: l.code,
|
|
name: l.name,
|
|
}))
|
|
)
|
|
|
|
const switchLocale = (code: string) => {
|
|
return navigateTo(switchLocalePath(code))
|
|
}
|
|
|
|
const localizedPath = (path: string) => {
|
|
return localePath(path)
|
|
}
|
|
|
|
return {
|
|
currentLocale,
|
|
availableLocales,
|
|
switchLocale,
|
|
localizedPath,
|
|
}
|
|
}
|