API16

Difference between revisions of "JLanguageHelper/detectLanguage"

From Joomla! Documentation

< API16:JLanguageHelper
(New page: ===Description=== Tries to detect the language. <span class="editsection" style="font-size:76%;"> <nowiki>[</nowiki>Edit Descripton<nowi...)
 
m (removing red link to edit, no existant pages)
Line 3: Line 3:
  
 
<span class="editsection" style="font-size:76%;">
 
<span class="editsection" style="font-size:76%;">
<nowiki>[</nowiki>[[Description:JLanguageHelper/detectLanguage|Edit Descripton]]<nowiki>]</nowiki>
+
<nowiki>[<! removed edit link to red link >]</nowiki>
 
</span>
 
</span>
  
{{Description:JLanguageHelper/detectLanguage}}
+
<! removed transcluded page call, red link never existed >
  
 
===Syntax===
 
===Syntax===
Line 62: Line 62:
  
 
<span class="editsection" style="font-size:76%;">
 
<span class="editsection" style="font-size:76%;">
<nowiki>[</nowiki>[[SeeAlso:JLanguageHelper/detectLanguage|Edit See Also]]<nowiki>]</nowiki>
+
<nowiki>[<! removed edit link to red link >]</nowiki>
 
</span>
 
</span>
{{SeeAlso:JLanguageHelper/detectLanguage}}
+
<! removed transcluded page call, red link never existed >
  
 
===Examples===
 
===Examples===
Line 77: Line 77:
 
  format= ,,,
 
  format= ,,,
 
</dpl>
 
</dpl>
 +
[[Category:Archived pages API16]]

Revision as of 22:04, 13 May 2013

The "API16" namespace is an archived namespace. This page contains information for a Joomla! version which is no longer supported. It exists only as a historical reference, it will not be improved and its content may be incomplete and/or contain broken links.

Description[edit]

Tries to detect the language.

[<! removed edit link to red link >]

<! removed transcluded page call, red link never existed >

Syntax[edit]

static detectLanguage()


Returns[edit]

string locale

Defined in[edit]

libraries/joomla/language/helper.php

Importing[edit]

jimport( 'joomla.language.helper' );

Source Body[edit]

public static function detectLanguage()
{
        if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE']))
        {
                $systemLangs    = JLanguage::getKnownLanguages();
                $browserLangs   = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);

                foreach ($browserLangs as $browserLang)
                {
                        // slice out the part before ; on first step, the part before - on second, place into array
                        $browserLang = substr($browserLang, 0, strcspn($browserLang, ';'));
                        $primary_browserLang = substr($browserLang, 0, 2);

                        foreach($systemLangs as $systemLang => $metadata)
                        {
                        // take off 3 letters iso code languages as they can't match browsers' languages and default them to en
                                $Jinstall_lang = $metadata['tag'];

                                if (strlen($Jinstall_lang) < 6)
                                {
                                        if (strtolower($browserLang) == strtolower(substr($metadata['tag'], 0, strlen($browserLang)))) {
                                                return $systemLang;
                                        }
                                        else if ($primary_browserLang == substr($metadata['tag'], 0, 2)) {
                                                $primaryDetectedLang = $systemLang;
                                        }
                                }
                        }

                        if (isset($primaryDetectedLang)) {
                                return $primaryDetectedLang;
                        }
                }
        }

        return 'en-GB';
}

[<! removed edit link to red link >] <! removed transcluded page call, red link never existed >

Examples[edit]

<CodeExamplesForm />