ForHosting KIT · Veille et lecture de sites web

Analysez Accept-Language et classez les préférences locales

Accept-Language paraît simple, mais son traitement fiable ne se résume pas à découper une chaîne aux virgules.

● BetaGratuit · dans votre navigateur
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt

Chaque plage linguistique peut porter une qualité, les éléments de même poids doivent garder leur ordre initial et les balises incorrectes doivent être refusées avant toute négociation de contenu. Cet analyseur transforme une valeur d’en-tête en liste prévisible de préférences locales. Il normalise la casse des langues, écritures et régions, conserve les jokers, contrôle la qualité et renvoie les choix par préférence décroissante pour le routage, les tests, les journaux ou la sélection de langue.

Transformez l’en-tête en préférences explicites

Un en-tête Accept-Language exprime plusieurs choix dans très peu de texte. Un navigateur peut indiquer d’abord une variante régionale, puis une langue générale et enfin un joker de dernier recours. Traiter cette valeur directement dans le routage favorise la duplication et des décisions divergentes face aux cas limites. L’analyseur crée un tableau de préférences dont chaque entrée contient une locale et une qualité numérique. Une entrée sans qualité explicite reçoit la valeur standard 1. Le tableau est classé de la qualité la plus forte à la plus faible, tout en conservant l’ordre donné par l’expéditeur lorsque deux poids sont égaux. Cette stabilité est essentielle, car la position reste alors le seul indice de préférence. La casse est également harmonisée : langue en minuscules, région de deux lettres en majuscules et écriture de quatre lettres avec une capitale initiale. L’astérisque reste inchangé afin que votre application reconnaisse un repli général sans le confondre avec une locale précise.

Refusez rapidement les données ambiguës ou incorrectes

L’en-tête provient habituellement d’un client et franchit donc une frontière de confiance. Une correction silencieuse peut transformer une faute en choix linguistique inattendu ; l’analyseur refuse alors la valeur au lieu d’en deviner le sens. Une plage commence par un sous-tag alphabétique et peut continuer avec des sous-tags alphanumériques séparés par des tirets. Les traits de soulignement, espaces internes, sous-tags vides et signes de ponctuation sont interdits. Le seul joker accepté est l’astérisque utilisé comme plage complète. Le paramètre de qualité doit employer q et une valeur comprise entre 0 et 1, avec trois décimales au maximum. Une valeur supérieure, négative, un paramètre inconnu ou des points-virgules répétés déclenchent une erreur. Les éléments vides entre virgules sont aussi refusés. La longueur maximale déclarée borne le travail. Les erreurs apparaissent ainsi à l’entrée de l’API, avant qu’une lecture partielle ne sélectionne un contenu jamais demandé.

Appliquez le résultat à la négociation de locale

La sortie ordonnée alimente proprement la politique de correspondance de votre application. Parcourez les préférences et comparez chaque locale aux traductions disponibles. Vous pouvez rechercher une correspondance régionale exacte, réduire ensuite fr-CA à sa langue de base, puis utiliser le joker ou la valeur par défaut du produit. L’analyseur n’impose pas cette politique : les locales prises en charge, les règles de repli et le traitement d’une qualité nulle appartiennent à l’application. Séparer analyse et sélection rend le comportement testable et réutilisable dans les passerelles, pages rendues côté serveur, API et chaînes analytiques. Lorsqu’une personne reçoit la mauvaise langue, les journaux peuvent conserver la liste structurée plutôt qu’un en-tête opaque, ce qui facilite le diagnostic. Pour l’automatisation, chaque requête coûte $0.002. La version navigateur exécute localement la même logique déterministe afin d’examiner les en-têtes sans transmettre leur contenu ailleurs.

Choisir un contenu localisé

Convertissez l’en-tête du navigateur en candidats classés avant de les comparer aux locales proposées par votre site.

Tester les clients et les mandataires

Vérifiez qu’un navigateur, un SDK ou une passerelle transmet les plages linguistiques et les poids attendus.

Normaliser les journaux de requêtes

Conservez des préférences structurées pour rechercher et comparer uniformément les incidents de routage linguistique.

Quel est le résultat obtenu ?

Le résultat contient un tableau de préférences classé par qualité décroissante. Chaque entrée comporte une locale normalisée et une qualité numérique.

Que se passe-t-il si q est absent ?

L’entrée reçoit la qualité 1, qui correspond à la préférence maximale standard.

Les entrées de même qualité sont-elles réordonnées ?

Non. Elles conservent leur ordre relatif initial.

L’analyseur choisit-il une locale prise en charge ?

Non. Il analyse et classe l’en-tête ; votre application décide des correspondances exactes, replis et valeurs par défaut.

Quelles valeurs incorrectes provoquent une erreur ?

Par exemple, les balises avec traits de soulignement ou sous-tags vides, les éléments blancs, les paramètres inconnus et les qualités hors de 0 à 1 ou dépassant trois décimales.

Quel est le prix d’une requête API ?

Chaque requête API coûte $0.002. L’outil déterministe peut aussi s’exécuter localement sur cette page.

Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.

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

Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.

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"
  }
}

L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

max_chars8192
HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

Consulter la documentation complète du KIT →