Skip to content

Instantly share code, notes, and snippets.

@stantoxt
Forked from leipert/detectBrowserLanguage.js
Created June 2, 2020 06:21
Show Gist options
  • Save stantoxt/6eb14b6f579968e623bc82718f32e0f0 to your computer and use it in GitHub Desktop.
Save stantoxt/6eb14b6f579968e623bc82718f32e0f0 to your computer and use it in GitHub Desktop.

Revisions

  1. @leipert leipert revised this gist Aug 12, 2015. 1 changed file with 4 additions and 2 deletions.
    6 changes: 4 additions & 2 deletions detectBrowserLanguage.js
    Original file line number Diff line number Diff line change
    @@ -8,9 +8,9 @@
    // 5. systemLanguage -> UI Language of Windows
    var browserLanguagePropertyKeys = ['languages', 'language', 'browserLanguage', 'userLanguage', 'systemLanguage'];

    var availableLanguages = ['de', 'en']
    var availableLanguages = ['de', 'ar'];

    var browserLocale = _.chain(window.navigator)
    var detectedLocale = _.chain(window.navigator)
    .pick(browserLanguagePropertyKeys) //Get only language properties
    .values() //Get values of the properties
    .flatten() //flatten all arrays
    @@ -22,3 +22,5 @@ var browserLocale = _.chain(window.navigator)
    return _.contains(availableLanguages, x); //Returns first language matched in available languages
    })
    .value();

    var locale = detectedLocale || 'en'; //If no locale is detected, fallback to 'en'
  2. @leipert leipert revised this gist Aug 12, 2015. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion detectBrowserLanguage.js
    Original file line number Diff line number Diff line change
    @@ -2,7 +2,7 @@
    // These window.navigator contain language information
    // 1. languages -> Array of preferred languages (eg ["en-US", "zh-CN", "ja-JP"]) Firefox^32, Chrome^32
    // 2. language -> Preferred language as String (eg "en-US") Firefox^5, IE^11, Safari,
    Chrome sends Browser UI language
    // Chrome sends Browser UI language
    // 3. browserLanguage -> UI Language of IE
    // 4. userLanguage -> Language of Windows Regional Options
    // 5. systemLanguage -> UI Language of Windows
  3. @invalid-email-address Anonymous created this gist Aug 12, 2015.
    24 changes: 24 additions & 0 deletions detectBrowserLanguage.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,24 @@

    // These window.navigator contain language information
    // 1. languages -> Array of preferred languages (eg ["en-US", "zh-CN", "ja-JP"]) Firefox^32, Chrome^32
    // 2. language -> Preferred language as String (eg "en-US") Firefox^5, IE^11, Safari,
    Chrome sends Browser UI language
    // 3. browserLanguage -> UI Language of IE
    // 4. userLanguage -> Language of Windows Regional Options
    // 5. systemLanguage -> UI Language of Windows
    var browserLanguagePropertyKeys = ['languages', 'language', 'browserLanguage', 'userLanguage', 'systemLanguage'];

    var availableLanguages = ['de', 'en']

    var browserLocale = _.chain(window.navigator)
    .pick(browserLanguagePropertyKeys) //Get only language properties
    .values() //Get values of the properties
    .flatten() //flatten all arrays
    .compact() //Remove undefined values
    .map(function (x) {
    return x.substr(0, 2); //Shorten strings to use two chars (en-US -> en)
    })
    .find(function (x) {
    return _.contains(availableLanguages, x); //Returns first language matched in available languages
    })
    .value();