Type: JavaScript Property (navigator.language)
Data Source: Browser Settings / Operating System
When Available: Always accessible via JavaScript
The navigator.language property returns a string representing the user's preferred language, typically based on browser or operating system settings. This follows the IETF BCP 47 language tag standard (RFC 5646).
Historical Context:
Accept-Language HTTP headerFormat: Language tags follow the pattern language[-region][-script]
| Language Tag | Meaning | Common Region |
|---|---|---|
en-US |
English (United States) | North America |
en-GB |
English (United Kingdom) | Europe |
es-ES |
Spanish (Spain) | Europe |
es-MX |
Spanish (Mexico) | North America |
zh-CN |
Chinese (Simplified, China) | Asia |
zh-TW |
Chinese (Traditional, Taiwan) | Asia |
ja |
Japanese | Asia |
fr-FR |
French (France) | Europe |
de-DE |
German (Germany) | Europe |
pt-BR |
Portuguese (Brazil) | South America |
Legitimate Uses:
How Language is Determined:
| Platform | Language Source | Typical Format |
|---|---|---|
| Windows Chrome | Chrome language settings (or OS if not set) | en-US, en-GB |
| macOS Safari | System Preferences > Language & Region | en-US, en-GB |
| Firefox (All OS) | Firefox language preferences | en-US, en-GB |
| iOS Safari | Settings > General > Language & Region | en-US, en-GB |
| Android Chrome | System language setting | en-US, en-GB |
Note: The navigator.languages property (plural) returns an array of all preferred languages in order of preference.
Tracking Risk: MEDIUM
Privacy Concerns:
Why It's Relatively Lower Risk:
How to Change Your Language Setting:
Chrome:
navigator.languageFirefox:
Safari:
Privacy-Enhanced Browsers:
Limitations:
Mozilla's comprehensive documentation on the language property
The standard defining how language tags should be formatted
Guide to configuring language preferences for internationalization
Documentation for the languages array property (plural)
Database of locale codes and their meanings
Overview of language tag structure and history