Wie mache ich das mit Typescript? Das Importieren von Typescript scheint es gebrochen zu haben :/
– Robby Hoover
20. Juli um 1:42
Fabio Rosado
Wenn du benutzt weiter/Kopf Sie können die Sprache für das HTML-Tag festlegen. Alles, was Sie an die Head-Komponente übergeben, wird entweder in die platziert <head> oder <html>.
Next Head funktioniert ähnlich wie React Helmet, also könnten Sie für Ihren Fall etwas in dieser Richtung tun:
Erstellen Sie eine Komponente und importieren Sie Head aus “next/head”
Innerhalb des Head-Tags fügen Sie die hinzu <html lang={lan} /> zum Bauteil.
Dann können Sie die gewünschte Sprache an diese Komponente übergeben und dann die Komponente auf den gewünschten Seiten importieren.
import React from "react"
import Head from "next/head"
const Language = ({title, lang}) => (
<Head>
<html lang={lang} />
<title>{title}</title>
</Head>
)
export default Language
Dieses HTML-Bit wird in die eingefügt <html> Schild.
Beachten Sie, dass selbst wenn wir es so injizieren, die Konsole den folgenden Fehler protokolliert: TypeError: n is null.
Ich habe diesen Fehler auf der Konsole: head-manager.js?0ea4:2 Warnung: next-head-count fehlt. err.sh/next.js/next-head-count-missing. In beiden Fällen ist dies kein Weg zu gehen.
– MiguelSlv
19. Mai 2020 um 22:40 Uhr
Beachten Sie auch, dass das Html-Tag dem Head-Tag übergeordnet ist. Ich denke nicht, dass die Head-Komponente auf diese Weise verwendet werden soll.
– MiguelSlv
19. Mai 2020 um 23:06 Uhr
Danke, das ist die richtige Antwort. Dasselbe wie in den nextjs-Dokumenten angegeben.
– Gabriel Linassi
30. Mai 2021 um 15:25 Uhr
@GabrielLinassi, das ist nicht ganz dasselbe wie in der Dokumente, wo es heißt, dass Sie dies in _document tun sollten. Es an anderer Stelle zu tun, funktioniert technisch, obwohl Sie sich vielleicht nicht darauf verlassen können, dass es weiter funktioniert, und die Konsole nachlässt Warning: next-head-count is missing wie oben erwähnt.
– Arne Hugo
3. September 2021 um 12:46 Uhr
@ArneHugo Das stimmt. Danke für die Korrektur. Ich habe hier meinen Code überprüft und er ist auch im _document definiert.
Für zukünftige Leser wird dies derzeit nicht unterstützt, wenn Sie SSG via verwenden next export – Bezug und Dokumentation
– Gangula
15. Januar um 8:20 Uhr
Ich habe dies implementiert, indem ich dies zur Datei next.config.js hinzugefügt habe:
i18n: {
// These are all the locales you want to support in
// your application
locales: ['en-US'],
// This is the default locale you want to be used when visiting
// a non-locale prefixed path e.g. `/hello`
defaultLocale: 'en-US' }
Ich musste keine benutzerdefinierte _document.js erstellen
Schaffen _document.js im `pages“-Ordner und verwende dies:
Nextjs-Versionen nach 10 bieten standardmäßige Lokalisierungsunterstützung. Sie müssen nicht viel konfigurieren.
Es fügt HTML automatisch das lang-Attribut hinzu, aber es gibt immer noch bisher keine Unterstützung mit v12 für dir-Attribut Dazu gehört, dass wir diesen kleinen Trick im Inneren anwenden können _Ordner.
Sie können einen useEffect-Hook von React verwenden, um die Sprache des Dokuments festzulegen, ohne die Art und Weise ändern zu müssen, wie Next.js das HTML-Tag selbst generiert.
Fügen Sie innerhalb Ihrer Seitenkomponente oder einer anderen geeigneten Komponente den useEffect-Hook hinzu:
import {useEffect} from "react";
Und dann den Haken hinzufügen:
const MyPage = () => {
useEffect(() => {
document.documentElement.lang = "en-us";
});
// The rest of your component
}
Dies besteht Lighthouses Überprüfung auf „hreflang“, und wenn Ihre Website mehrere Sprachen hat, können Sie dies verwenden, um die Seitensprache pro Seite festzulegen.
das ist leider nicht SEO-freundlich
– itsjavi
28. Februar um 23:41 Uhr
14341600cookie-checkWie setze ich das HTML-lang-Attribut dynamisch für NextJs-Dokument?yes