Die meisten Probleme mit der Astro-Integration äußern sich als Seite, die in Ihrer Quellsprache verbleibt, oder als Sprach-URL, die eine 404-Fehlermeldung zurückgibt. Das Serverprotokoll nennt die Ursache für die meisten davon, und jede Warnung wird einmal protokolliert.
Prüfen Sie zuerst die Grundlagen
- Der Build- oder Dev-Server startet. Wenn er mit "set UNIVERSALLY_API_KEY in .env oder pass apiKey in the integration options" fehlschlägt, fehlt der Schlüssel. Fügen Sie ihn in
.envnebenastro.config.mjsein oder in die Umgebung, in der der Build ausgeführt wird. Auf Node älter als 20.12 werden.env-Dateien übersprungen, verwenden Sie also die Umgebung. - Der Schlüssel ist der 64-stellige von der Einrichtungs-Seite oder den API-Einstellungen des Projekts. Ein
pk_-Schlüssel schlägt den Sprachenaufruf und den Build fehl. - Der Live-Schalter der Sprache ist aktiviert unter Alle Sprachen.
- Der Text wird durch
t()verarbeitet. Außerhalb vont()wird nichts übersetzt.
Das erste Rendern zeigt den Quelltext an
Ursache. Die Zeichenkette hatte noch keine Übersetzung. Sie wird nach der Antwort an Universally gemeldet und im Hintergrund übersetzt. Korrektur. Laden Sie nach ein oder zwei Sekunden neu. Eine übersehene Zeichenkette wird bei ihrem nächsten Rendern erneut gemeldet, sodass sie bei einer späteren Anfrage ankommt. Siehe Übersetzungsaktualisierungen in Astro.
Eine Sprache gibt nach dem Hinzufügen 404 zurück
Ursache. Sprachen werden einmal gelesen, wenn Ihre Astro-Konfiguration ausgeführt wird. Eine nachträglich hinzugefügte oder umgeschaltete Sprache ist keine Route im laufenden Build. Korrektur. Starten Sie den Dev-Server neu oder bauen und stellen Sie neu bereit.
Wenn die Sprache vorhanden war, aber ihr Katalog nicht geladen werden konnte, zeigt das Protokoll universally: could not preload ... an, und diese Sprache wird bis zum Neustart nicht erneut versucht. Beheben Sie die Ursache und starten Sie neu.
Eine Zeichenkette bleibt unverändert, während der Rest übersetzt wird
Ursache. Der Quelltext ist der Schlüssel, und er stimmt nicht mit der Quellzeichenkette im Dashboard überein. Ein zusätzliches Leerzeichen, ein geändertes Wort oder eine andere Interpunktion machen ihn zu einer anderen Zeichenkette. Eine URL innerhalb der Zeichenkette macht sie zu einem anderen Schlüssel auf jeder Seite.
Korrektur. Vergleichen Sie das Argument von t() mit der Quellzeichenkette auf dem Bildschirm Übersetzungen, Zeichen für Zeichen. Halten Sie <a> außerhalb von t(). Siehe Seiten in Astro übersetzen.
Keine hreflang-Links im HTML
Ursache. site ist in astro.config.mjs nicht gesetzt, daher kann keine absolute URL erstellt werden. Das Log sagt „site is not set in your Astro config, so no hreflang links were rendered.“
Behebung. Setzen Sie site auf Ihre Domain, z. B. site: 'https://example.com'. Überprüfen Sie auch, ob <UniversallyHead /> sich innerhalb von <head> in Ihrem Layout befindet. t(), href() und der Wechsler funktionieren in beiden Fällen. Siehe hreflang-Tags.
Im Proxy-Modus bedeutet eine fehlende Sprache, dass sie noch keinen aktiven Hostnamen hat. Siehe Astro mit Sprach-Subdomains.
Eine Dashboard-Bearbeitung wird nicht angezeigt
Ursache. Der Push an /_universally/revalidate hat Ihren Server nicht erreicht, und das Polling ist noch nicht erfolgt. Wenn revalidateSeconds auf 0 gesetzt ist und der Endpunkt nicht erreichbar ist, kommt die Bearbeitung nie an.
Behebung. Warten Sie bis zu revalidateSeconds (standardmäßig 60). Für sofortige Bearbeitungen machen Sie https://{Ihre Domain}/_universally/revalidate vom Internet aus erreichbar. Bei mehreren Serverinstanzen holen die anderen durch Polling auf. Siehe Astro-Website mit Universally bereitstellen.
Eine statische Website zeigt keine neuen Zeichenketten oder Bearbeitungen an
Ursache. Ein statischer Build ist HTML auf der Festplatte. Er hat kein Polling und keinen Push-Endpunkt.
Behebung. Bauen Sie neu. Wenn das Build-Log N new strings translated. Rebuild to include them. anzeigt, bauen Sie erneut und stellen Sie dann bereit.
Jede Seite bleibt in der Quellsprache
Ursache. Das Projekt hat seine vorausbezahlten Wörter aufgebraucht, daher gibt Universally nur Zeichenketten zurück, die es bereits enthält. Das Log sagt universally: word limit reached, {variant} keeps serving source text.
Behebung. Fügen Sie dem Projekt Wörter hinzu. Bereits übersetzte Zeichenketten werden weiterhin angezeigt, und fehlende werden bei ihrer nächsten Wiedergabe erneut gemeldet. Siehe Nutzungslimits und Nutzen Sie Ihre Nutzung nach.
Der Push-Endpunkt gibt 401 zurück
Ursache. Die Signatur stimmt nicht mit der privaten Hälfte des Schlüssels auf Ihrem Server überein, oder die ts des Bodys ist mehr als 5 Minuten von der Uhr Ihres Servers entfernt. Ein neu generierter Schlüssel verursacht dies, bis Sie erneut bereitstellen.
Behebung. Setzen Sie den aktuellen Schlüssel auf Ihrem Host und stellen Sie erneut bereit, und überprüfen Sie die Uhr des Servers. Das vollständige Format finden Sie in Astro-Integrationsoptionen.
Das Wechsler-Skript fehlt
Ursache. switcher: false ist gesetzt, oder der Schlüssel hat keine öffentliche Hälfte (ein sk_ Schlüssel). Der zweite Fall protokolliert eine Warnung.
Behebung. Entfernen Sie switcher: false oder ersetzen Sie den Schlüssel durch den 64-stelligen.
Immer noch festgefahren
Kontaktieren Sie den Support mit Ihrer Projektdomain, Ihrer Astro-Version, Ihrer output-Einstellung und jeder universally:-Zeile aus dem Server-Log.