getBrowserLanguage

Usage:

mixed getBrowserLanguage ( [bool returnLong] )

  • bool returnLong returns a short two-letter description of the user’s main browser language when set to false. Returns detailed informations about all of the user’s browser languages when set to true. Default is false.

The returned value will be a two-letter string with the country code of the user’s main language or an array with all of the user’s installed browser languages.

What it does:
getBrowserLanguage provides you with a possibility to extract just the user’s main browser language or even all of the user’s browser languages including some maybe useful details. This comes in handy if you plan to do a multi-language blog or want to go for some multi-languaged advertising. Whenever you intend to do something for international audiences, this little plugin comes in use.

Examples:

$userLanguage = getBrowserLanguage()
Sets $userLanguage i.e. to “en” for English or “de” for German (Deutschland).

if( getBrowserLanguage() == "de" )
    include( "german-advertising.php" );

Checks if the user’s default language is German and includes the corresponding advertisement.

include( "languages/".getBrowserLanguage()."/lang.php" )
Loads a current language file, i.e. languages/de/lang.php. Probably not the very best example as this would get an include-error if you don’t have the corresponding language-directory. Would work swell with switch/case using a default language though.

$allLanguages = getBrowserLanguage( true )
Returns a more detailed array of all the languages the user has installed in his browser including their longer descriptions. As for an example:

[0] => Array
    (
        [0] => en-us
        [1] => en
        [2] => English (United States)
        [3] => English
    )
[1] => Array
    (
        [0] => de
        [1] => de
        [2] => German (Germany)
        [3] => German
    )

Supported Languages:
The following list contains all languages supported by the plugin. If you happen to know of one which is not yet in this list, please drop a line in the comments section.

‘af’ => ‘Afrikaans’,
’sq’ => ‘Albanian’,
‘ar-dz’ => ‘Arabic (Algeria)’,
‘ar-bh’ => ‘Arabic (Bahrain)’,
‘ar-eg’ => ‘Arabic (Egypt)’,
‘ar-iq’ => ‘Arabic (Iraq)’,
‘ar-jo’ => ‘Arabic (Jordan)’,
‘ar-kw’ => ‘Arabic (Kuwait)’,
‘ar-lb’ => ‘Arabic (Lebanon)’,
‘ar-ly’ => ‘Arabic (libya)’,
‘ar-ma’ => ‘Arabic (Morocco)’,
‘ar-om’ => ‘Arabic (Oman)’,
‘ar-qa’ => ‘Arabic (Qatar)’,
‘ar-sa’ => ‘Arabic (Saudi Arabia)’,
‘ar-sy’ => ‘Arabic (Syria)’,
‘ar-tn’ => ‘Arabic (Tunisia)’,
‘ar-ae’ => ‘Arabic (U.A.E.)’,
‘ar-ye’ => ‘Arabic (Yemen)’,
‘ar’ => ‘Arabic’,
‘hy’ => ‘Armenian’,
‘as’ => ‘Assamese’,
‘az’ => ‘Azeri’,
‘eu’ => ‘Basque’,
‘be’ => ‘Belarusian’,
‘bn’ => ‘Bengali’,
‘bg’ => ‘Bulgarian’,
‘ca’ => ‘Catalan’,
‘zh-cn’ => ‘Chinese (China)’,
‘zh-hk’ => ‘Chinese (Hong Kong SAR)’,
‘zh-mo’ => ‘Chinese (Macau SAR)’,
‘zh-sg’ => ‘Chinese (Singapore)’,
‘zh-tw’ => ‘Chinese (Taiwan)’,
‘zh’ => ‘Chinese’,
‘hr’ => ‘Croatian’,
‘cs’ => ‘Chech’,
‘da’ => ‘Danish’,
‘div’ => ‘Divehi’,
‘nl-be’ => ‘Dutch (Belgium)’,
‘nl’ => ‘Dutch (Netherlands)’,
‘en-au’ => ‘English (Australia)’,
‘en-bz’ => ‘English (Belize)’,
‘en-ca’ => ‘English (Canada)’,
‘en-ie’ => ‘English (Ireland)’,
‘en-jm’ => ‘English (Jamaica)’,
‘en-nz’ => ‘English (New Zealand)’,
‘en-ph’ => ‘English (Philippines)’,
‘en-za’ => ‘English (South Africa)’,
‘en-tt’ => ‘English (Trinidad)’,
‘en-gb’ => ‘English (United Kingdom)’,
‘en-us’ => ‘English (United States)’,
‘en-zw’ => ‘English (Zimbabwe)’,
‘en’ => ‘English’,
‘et’ => ‘Estonian’,
‘fo’ => ‘Faeroese’,
‘fa’ => ‘Farsi’,
‘fi’ => ‘Finnish’,
‘fr-be’ => ‘French (Belgium)’,
‘fr-ca’ => ‘French (Canada)’,
‘fr-lu’ => ‘French (Luxembourg)’,
‘fr-mc’ => ‘French (Monaco)’,
‘fr-ch’ => ‘French (Switzerland)’,
‘fr’ => ‘French (France)’,
‘mk’ => ‘FYRO Macedonian’,
‘gd’ => ‘Gaelic’,
‘ka’ => ‘Georgian’,
‘de-at’ => ‘German (Austria)’,
‘de-li’ => ‘German (Liechtenstein)’,
‘de-lu’ => ‘German (lexumbourg)’,
‘de-ch’ => ‘German (Switzerland)’,
‘de’ => ‘German (Germany)’,
‘el’ => ‘Greek’,
‘gu’ => ‘Gujarati’,
‘he’ => ‘Hebrew’,
‘hi’ => ‘Hindi’,
‘hu’ => ‘Hungarian’,
‘is’ => ‘Icelandic’,
‘id’ => ‘Indonesian’,
‘it-ch’ => ‘Italian (Switzerland)’,
‘it’ => ‘Italian (Italy)’,
‘ja’ => ‘Japanese’,
‘kn’ => ‘Kannada’,
‘kk’ => ‘Kazakh’,
‘kok’ => ‘Konkani’,
‘ko’ => ‘Korean’,
‘kz’ => ‘Kyrgyz’,
‘lv’ => ‘Latvian’,
‘lt’ => ‘Lithuanian’,
‘ms’ => ‘Malay’,
‘ml’ => ‘Malayalam’,
‘mt’ => ‘Maltese’,
‘mr’ => ‘Marathi’,
‘mn’ => ‘Mongolian (Cyrillic)’,
‘ne’ => ‘Nepali (India)’,
‘nb-no’ => ‘Norwegian (Bokmal)’,
‘nn-no’ => ‘Norwegian (Nynorsk)’,
‘no’ => ‘Norwegian (Bokmal)’,
‘or’ => ‘Oriya’,
‘pl’ => ‘Polish’,
‘pt-br’ => ‘Portuguese (Brazil)’,
‘pt’ => ‘Portuguese (Portugal)’,
‘pa’ => ‘Punjabi’,
‘rm’ => ‘Rhaeto-Romanic’,
‘ro-md’ => ‘Romanian (Moldova)’,
‘ro’ => ‘Romanian’,
‘ru-md’ => ‘Russian (Moldova)’,
‘ru’ => ‘Russian’,
’sa’ => ‘Sanskrit’,
’sr’ => ‘Serbian’,
’sk’ => ‘Slovak’,
‘ls’ => ‘Slovenian’,
’sb’ => ‘Sorbian’,
‘es-ar’ => ‘Spanish (Argentina)’,
‘es-bo’ => ‘Spanish (Bolivia)’,
‘es-cl’ => ‘Spanish (Chile)’,
‘es-co’ => ‘Spanish (Colombia)’,
‘es-cr’ => ‘Spanish (Costa Rica)’,
‘es-do’ => ‘Spanish (Dominican Republic)’,
‘es-ec’ => ‘Spanish (Ecuador)’,
‘es-sv’ => ‘Spanish (El Salvador)’,
‘es-gt’ => ‘Spanish (Guatemala)’,
‘es-hn’ => ‘Spanish (Honduras)’,
‘es-mx’ => ‘Spanish (Mexico)’,
‘es-ni’ => ‘Spanish (Nicaragua)’,
‘es-pa’ => ‘Spanish (Panama)’,
‘es-py’ => ‘Spanish (Paraguay)’,
‘es-pe’ => ‘Spanish (Peru)’,
‘es-pr’ => ‘Spanish (Puerto Rico)’,
‘es-us’ => ‘Spanish (United States)’,
‘es-uy’ => ‘Spanish (Uruguay)’,
‘es-ve’ => ‘Spanish (Venezuela)’,
‘es’ => ‘Spanish (Traditional Sort)’,
’sx’ => ‘Sutu’,
’sw’ => ‘Swahili’,
’sv-fi’ => ‘Swedish (Finland)’,
’sv’ => ‘Swedish’,
’syr’ => ‘Syriac’,
‘ta’ => ‘Tamil’,
‘tt’ => ‘Tatar’,
‘te’ => ‘Telugu’,
‘th’ => ‘Thai’,
‘ts’ => ‘Tsonga’,
‘tn’ => ‘Tswana’,
‘tr’ => ‘Turkish’,
‘uk’ => ‘Ukrainian’,
‘ur’ => ‘Urdu’,
‘uz’ => ‘Uzbek’,
‘vi’ => ‘Vietnamese’,
‘xh’ => ‘Xhosa’,
‘yi’ => ‘Yiddish’,
‘zu’ => ‘Zulu’

Download:
Go ahead and fetch it here: getbrowserlanguage.zip

Installation:
Extract getbrowserlanguage.php from the .zip-archive and place it in your WordPress plugin-folder. Then browse to your administration menu named “Plugins” and activate the plugin. That’s it.

History:

1.0.0 – Final Release.
0.2.0 – Added possibility to get all browser languages & long language descriptions.
0.1.0 – Initial Test Release.

  • #1 geschrieben von Stefan
    vor 4 Jahren

    Morgens, halb Sechs in Deutschland…
    …einfach mal durcharbeiten.

    …ich verstehe!
    nicht schlecht..

  • #2 geschrieben von Erik Range
    vor 4 Jahren

    Naja, das Durcharbeiten war eine Nacht davor. Aber das Projekt ist dafür inzwischen auch fertig. ;-)

  • #3 geschrieben von ker0zene
    vor 4 Jahren

    Tjaahaa …
    … wieder so ein Eintrag, wo die kleine Stimme in meinem Kopf mir einflüstert “Hätteste mal in der Schule aufgepasst und was vernünftiges gelernt, dann würdest Du das auch verstehen!”

    Respekt!

  • #4 geschrieben von Erik Range
    vor 4 Jahren

    Neenee, da hat die Stimme aber unrecht. Hätte ich in der Schule aufgepasst und was Vernünftiges gelernt, dann würde ich jetzt nicht hier sitzen, sondern wahrscheinlich schlafen, um morgen früh wieder bei Karstadt an der Kasse zu sitzen. Was ja nicht schlecht ist, wenn man’s mag. Aber nööööö… muss nicht sein.

    Ist einfach ein Hobby-zum-Beruf Ding quasi. Hätte auch Koch sein können, dann würd’ ich hier Rezepte schreiben. ;-)

  • #5 geschrieben von Stefan
    vor 4 Jahren

    yo – und wenn du koch geworden währst und rezepte schreiben würdest…
    säh das dann so aus:

    $userGeschmack = getZutaten()
    Sets $userGeschmack i.e. to “gut” for Spagetti or “schlecht” for Kassler (ekeliges Fleisch).

    if( getzutaten(5) == “gescheitert” )
    include( “neuesrezept.php” );
    Checks if the user’s default Küche is Vollständig and includes the Alle Werkzeuge.

  • #6 geschrieben von Erik Range
    vor 4 Jahren

    Da hat sich aber ‘n kleiner Bug eingeschlichen.. ich fix’ das mal eben für Dich:

    if( getzutaten(5) == “gescheitert” )
    fetchFromBringdienst( $userGeschmack );

    ;-)

  • #7 geschrieben von Stefan
    vor 4 Jahren

    Da hat sich aber ‘n kleiner Bug eingeschlichen.. ich fix’ das mal eben für Dich

    also doch koch :P

  • #8 geschrieben von Olaf
    vor 3 Jahren

    Hi Erik,
    das hört sich interessant an. Mir ist die Verwendung nicht ganz klar. Ich hab einen Blog mit dem Plugin Polyglot am Start, damit hab ich 2 Sprachen verfügbar. Kann ich dein Plug dazu nutzen die nichtdeutsch-sprachigen User automatisch auf den engl. Content zu lenken?
    Also im Prinzip müsst das so aussehen
    if $userLanguage != ‘de’ || ‘de-at’ || ‘de-li’ || ‘de-lu’ || ‘de-ch’ lenke um zu $adresse/?lang=en

    und wo sollte ich das dann hinschreiben?

    Vielen Dank, Olaf

  • #9 geschrieben von Sebastian
    vor 2 Jahren

    Habe die selbe Frage wie in Kommentar 13. Die Anleitung ist äußerst für jemanden geschrieben, der sich in Deine Gehirnwindungen auskennt ;) Vielleicht kannst du uns das mal ausführlicher erklären. Denn nach vielen zahlreichen anderen Lösungen, scheint mir Deine am elegantesten zu sein. greetzi

  • #10 geschrieben von stonesleeper
    vor 2 Jahren

    although in europe, obviously there is no bosnian language in your code…

  • #11 geschrieben von remseman
    vor 4 Monaten

    Увадаемый автор, благодарю Вас за ценный материал, добавлю Ваш сайт в закладки!