ForHosting KIT · Websites auslesen & überwachen

Accept-Language parsen und Sprachpräferenzen sortieren

Accept-Language wirkt übersichtlich, doch zuverlässiges Parsen erfordert mehr als das Trennen einer Zeichenfolge an Kommas.

● BetaKostenlos · im Browser
Nutzen Sie es über WebAPIE-MailTelegramApp bald

Jeder Sprachbereich kann einen Gütewert tragen, Einträge mit gleichem Gewicht müssen ihre ursprüngliche Reihenfolge behalten und fehlerhafte Tags sind vor der Inhaltsaushandlung abzulehnen. Dieser Parser wandelt einen Headerwert in eine verlässliche Liste regionaler Präferenzen um. Er vereinheitlicht die Groß- und Kleinschreibung von Sprache, Schrift und Region, bewahrt Platzhalter, prüft Gütewerte und liefert die Auswahl absteigend sortiert für Routing, Tests, Protokolle oder die Sprachauswahl Ihrer Anwendung.

Machen Sie aus dem Header eindeutige Präferenzen

Ein Accept-Language-Header fasst mehrere Wünsche auf engem Raum zusammen. Ein Browser kann zuerst eine regionale Variante, danach die übergeordnete Sprache und zuletzt einen Platzhalter als Rückfall senden. Wird der Wert unmittelbar in jeder Routingstelle verarbeitet, entstehen leicht doppelter Code und widersprüchliche Randfallregeln. Der Parser erzeugt ein Präferenz-Array, dessen Einträge jeweils einen Sprachraum und einen numerischen Gütewert enthalten. Ohne ausdrücklichen Güteparameter gilt der Standardwert 1. Die Liste wird nach absteigender Güte sortiert; bei gleichem Gewicht bleibt die vom Absender vorgegebene Reihenfolge erhalten. Diese Stabilität ist wichtig, weil die Position dann das einzige verbleibende Präferenzsignal ist. Zudem wird die Schreibweise vereinheitlicht: Sprachen erscheinen klein, Regionen aus zwei Buchstaben groß und Schriften aus vier Buchstaben mit großem Anfang. Das Sternchen bleibt unverändert, damit Ihre Anwendung einen allgemeinen Rückfall erkennt und ihn nicht als konkreten Sprachraum behandelt.

Weisen Sie mehrdeutige oder fehlerhafte Eingaben früh ab

Der Header stammt gewöhnlich von einem Client und überschreitet damit eine Vertrauensgrenze. Stille Korrekturen können einen Tippfehler in eine unerwartete Sprachwahl verwandeln. Deshalb weist der Parser ungültige Eingaben ab, anstatt die Absicht zu erraten. Ein Sprachbereich muss mit einem alphabetischen Subtag beginnen und darf durch Bindestriche getrennte alphanumerische Subtags enthalten. Unterstriche, innere Leerzeichen, leere Subtags und Satzzeichen sind ungültig. Als Platzhalter ist nur ein alleinstehendes Sternchen zulässig. Der Güteparameter verwendet q und einen Wert von 0 bis 1 mit höchstens drei Dezimalstellen. Höhere oder negative Werte, unbekannte Parameter sowie wiederholte Semikolons lösen einen Fehler aus. Leere Einträge zwischen Kommas werden ebenfalls abgelehnt. Die festgelegte maximale Headerlänge begrenzt die Verarbeitung. So werden Fehler bereits an der API-Grenze sichtbar und ein nur teilweise gelesener Header kann keine Inhalte auswählen, die der Client nie angefordert hat.

Nutzen Sie das Ergebnis für die Sprachaushandlung

Die sortierte Ausgabe ist eine saubere Grundlage für die Zuordnungsregeln Ihrer Anwendung. Gehen Sie die Präferenzen durch und vergleichen Sie jeden Sprachraum mit Ihren verfügbaren Übersetzungen. Sie können zunächst die genaue regionale Variante suchen, anschließend etwa fr-CA auf die Basissprache zurückführen und zuletzt den Platzhalter oder den Produktstandard verwenden. Der Parser schreibt diese Regeln bewusst nicht vor: Unterstützte Sprachräume, Rückfalllogik und der Umgang mit Güte null hängen von Ihrer Anwendung ab. Die Trennung von Parsen und Auswahl macht das Verhalten in Gateways, serverseitig gerenderten Seiten, API und Analyseabläufen leichter testbar und wiederverwendbar. Falls jemand die falsche Sprache erhält, können Protokolle statt eines undurchsichtigen Headers die strukturierte Liste speichern und die Diagnose vereinfachen. Automatisierte Anfragen kosten jeweils $0.002. Die Browserversion führt dieselbe deterministische Logik lokal aus, sodass Sie Header untersuchen können, ohne deren Inhalt weiterzugeben.

Lokalisierte Inhalte auswählen

Wandeln Sie den Browserheader in sortierte Kandidaten um, bevor Sie diese mit den unterstützten Sprachräumen Ihrer Website vergleichen.

Clients und Proxys prüfen

Kontrollieren Sie, ob Browser, SDK oder Gateway die erwarteten Sprachbereiche und Gewichtungen sendet.

Anfrageprotokolle vereinheitlichen

Speichern Sie strukturierte Präferenzen, um Vorfälle beim Sprachrouting konsistent zu suchen und zu vergleichen.

Was wird zurückgegeben?

Das Ergebnis enthält ein nach absteigender Güte sortiertes Präferenz-Array. Jeder Eintrag umfasst einen normalisierten Sprachraum und einen numerischen Gütewert.

Was geschieht, wenn q fehlt?

Der Eintrag erhält die Güte 1, also die übliche maximale Präferenz.

Werden Einträge gleicher Güte umsortiert?

Nein. Ihre ursprüngliche relative Reihenfolge bleibt erhalten.

Wählt der Parser einen unterstützten Sprachraum aus?

Nein. Er parst und sortiert den Header; Ihre Anwendung bestimmt exakte Treffer, Rückfälle und den Standardsprachraum.

Welche fehlerhaften Werte verursachen einen Fehler?

Dazu gehören Tags mit Unterstrichen oder leeren Subtags, leere Listeneinträge, unbekannte Parameter und Gütewerte außerhalb von 0 bis 1 oder mit mehr als drei Dezimalstellen.

Was kostet eine API-Anfrage?

Jede API-Anfrage kostet $0.002. Das deterministische Werkzeug lässt sich auf dieser Seite auch lokal ausführen.

Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.

POSThttps://api.kit.forhosting.com/web/accept-language-parse

Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.

curl -X POST https://api.kit.forhosting.com/web/accept-language-parse \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"en-US,en;q=0.9,fr-CA;q=0.7,*;q=0.1"}'
{
  "text": "en-US,en;q=0.9,fr-CA;q=0.7,*;q=0.1"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "web.accept_language_parse",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.

pro Anfrage$0.002

Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.

max_chars8192
HTTPCodeBedeutung
401unauthorizedDer API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer).
402insufficient_balanceIhr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht.
404unknown_typeUnbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog.
429rate_limitedZu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt.

Vollständige KIT-Dokumentation lesen →