JLanguageHelper/detectLanguage: Difference between revisions
From Joomla! Documentation
New page: ===Description===
Tries to detect the language
<span class="editsection" style="font-size:76%;">
<nowiki>[</nowiki>Edit Descripton<nowik... |
m preparing for archive only |
||
| (One intermediate revision by the same user not shown) | |||
| Line 3: | Line 3: | ||
<span class="editsection" style="font-size:76%;"> | <span class="editsection" style="font-size:76%;"> | ||
<nowiki>[< | <nowiki>[<! removed edit link to red link >]</nowiki> | ||
</span> | </span> | ||
<! removed transcluded page call, red link never existed > | |||
===Syntax=== | ===Syntax=== | ||
| Line 55: | Line 55: | ||
<span class="editsection" style="font-size:76%;"> | <span class="editsection" style="font-size:76%;"> | ||
<nowiki>[< | <nowiki>[<! removed edit link to red link >]</nowiki> | ||
</span> | </span> | ||
<! removed transcluded page call, red link never existed > | |||
===Examples=== | ===Examples=== | ||
=== Code Examples === | |||
<dpl> | <dpl> | ||
noresultsheader=\n | noresultsheader=\n | ||
category=detectLanguage | category=detectLanguage | ||
category=JLanguageHelper | category=JLanguageHelper | ||
namespace=CodeExample | |||
category=MethodExample | category=MethodExample | ||
include=* | include=* | ||
format= ,,, | format= ,,, | ||
</dpl> | </dpl> | ||
[[Category:Archived pages API15]] | |||
Latest revision as of 00:56, 25 March 2017
Description
Tries to detect the language
[<! removed edit link to red link >]
<! removed transcluded page call, red link never existed >
Syntax
detectLanguage()
Returns
string locale
Defined in
libraries/joomla/language/helper.php
Importing
jimport( 'joomla.language.helper' );
Source Body
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)
{
if (strtolower($browserLang) == strtolower(substr($metadata['tag'], 0, strlen($browserLang)))) {
return $systemLang;
} elseif ($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
Code Examples