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>
19 lines
498 B
TypeScript
19 lines
498 B
TypeScript
export const useApi = () => {
|
|
const config = useRuntimeConfig()
|
|
const { locale } = useI18n()
|
|
|
|
const apiFetch = async <T>(endpoint: string, options: Record<string, any> = {}) => {
|
|
return await $fetch<T>(`${config.public.apiUrl}${endpoint}`, {
|
|
...options,
|
|
headers: {
|
|
'X-API-Key': config.public.apiKey as string,
|
|
'Accept-Language': locale.value,
|
|
'Content-Type': 'application/json',
|
|
...options.headers,
|
|
},
|
|
})
|
|
}
|
|
|
|
return { apiFetch }
|
|
}
|