nuxt-modules / i18n

I18n module for Nuxt
https://i18n.nuxtjs.org
MIT License
1.71k stars 478 forks source link

`setI18nParams` automatically adds `<link rel="alternate" />` #2780

Open luca-smartpricing opened 7 months ago

luca-smartpricing commented 7 months ago

Environment

Reproduction

https://stackblitz.com/edit/github-c7te5q-j2hjui?file=app.vue

Describe the bug

Also if i don't set useLocaleHead() with useHead, setI18nParams automatically adds <link rel="alternate" /> and og:property.

<link id="i18n-alt-it" rel="alternate" href="https://www.dummy.com/it/blog-1-it" hreflang="it">
<link id="i18n-alt-de" rel="alternate" href="https://www.dummy.com/de/blog-1-de" hreflang="de">
<link id="i18n-xd" rel="alternate" href="https://www.dummy.com/it/blog-1-it" hreflang="x-default">
<link id="i18n-can" rel="canonical" href="https://www.dummy.com/it/blog-1-ita">
<meta id="i18n-og-url" property="og:url" content="https://www.dummy.com/it/blog-1-ita">
<meta id="i18n-og" property="og:locale" content="it">
<meta id="i18n-og-alt-en" property="og:locale:alternate" content="en">
<meta id="i18n-og-alt-de" property="og:locale:alternate" content="de">

Additional context

Wow, that's good, but why only whit setI18nParams and not in the othter pages? If i don't use setI18nParams i have to set all this code on App.vue

const localeHead = useLocaleHead({
    addSeoAttributes: true,
    addDirAttribute: true,
})

useHead({
    htmlAttrs: () => localeHead.value.htmlAttrs ?? {},
    link: () => localeHead.value.link ?? [],
    meta: () => localeHead.value.meta ?? []
})

So either everything is handled automatically or everything is handled via the mix of useLocaleHead and useHead

Logs

No response