Accept-Language Inspect
Run parsing, conversion, and validation in your browser. No input is sent to a server. Use it for first-pass format troubleshooting.
Status
Runs in your browser. No input is sent to a server. Use this as a first-pass diagnostic step.
How to use
Paste Accept-Language or Request Headers and click “Parse”. It summarizes language tags and q priorities.
Notes (this tool)
- Accepts Accept-Language: header lines (multi-line paste is OK).
- q=0 means “not acceptable”.
About this page
What does this tool do?
Split Accept-Language to list language tags (ja/en/zh-Hans, etc.) and their q priorities.
Useful for troubleshooting language selection in multilingual sites.
Basics (role of Accept-Language)
- Accept-Language expresses user language preferences.
- Servers may use it to decide which language to return (server decides).
- If response varies by language, Vary: Accept-Language is needed.
How to read q values (priorities)
- q=1.0 is highest priority; smaller q means lower priority.
- q=0 means “not acceptable”.
- If omitted, q is typically treated as 1.0.
How to read language tags
- ja: Japanese
- en-US: English (United States)
- zh-Hans: Chinese (Simplified)
- *: any other language
Input examples
- Accept-Language: ja,en-US;q=0.9,en;q=0.8
- Accept-Language: en, *;q=0.5
- Paste full Request Headers
Caching and Vary: Accept-Language
If content varies by language, Vary: Accept-Language is crucial to avoid cache mixing.
- Too much Vary fragments caches
- Splitting by URL can be more stable than varying by header
Common pitfalls
- Over-trusting Accept-Language (browser settings may be stale)
- Missing Vary leads to mixed languages in CDN cache
- Mismatch between language detection and URL structure hurts SEO
Debugging workflow (recommended)
- Check Accept-Language via Request Headers Parser
- Summarize language tags and q priorities here
- Verify Vary: Accept-Language with Vary Inspect
Related tools
- Vary Inspect
- Request Headers Parser
- Response Headers Parser
- Content-Language Inspect (planned)
What this tool does
- Parse Accept-Language and summarize q priorities
- List language tags
- Highlight related headers to verify
Operational notes
- The same string can be interpreted differently by context. Prioritize destination specifications.
- Watch for upstream auto-conversion such as spaces, line breaks, and URL decoding.
Referenced specs
- RFC 9110 (HTTP Semantics)
- RFC 9111 (HTTP Caching)
- RFC 5646 (Language Tags)
- MDN: Accept-Language
FAQ
Is Accept-Language always sent?
Most browsers send it, but privacy settings/environments may omit it.
Is Vary: Accept-Language required?
If the same URL serves different languages, it’s generally required. If you split by URL, it may be unnecessary.
What if q is missing?
It is typically treated as q=1.0.
References
Next to view (diagnostic order)
These links are generated from site_map rules in recommended diagnostic order.
- Content-Language Inspect — Parse Content-Language and inspect delivered locale
- Accept Header Builder — Build Accept-family headers by use case
- Accept-Charset Inspect — Parse Accept-Charset and inspect charset preferences
Same-theme links
Language/Locale
Compare Accept headers with Content-Language to debug negotiation mismatches
- Accept Header Builder — Build Accept-family headers by use case
- Content-Language Inspect — Parse Content-Language and inspect delivered locale
- Accept-Charset Inspect — Parse Accept-Charset and inspect charset preferences