| [ Index ] |
PHP Cross Reference of Joomla 1.5.26 DE |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * @version $Id: helper.php 14401 2010-01-26 14:10:00Z louis $ 4 * @package Joomla.Framework 5 * @subpackage Language 6 * @copyright Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved. 7 * @license GNU/GPL, see LICENSE.php 8 * Joomla! is free software. This version may have been modified pursuant 9 * to the GNU General Public License, and as distributed it includes or 10 * is derivative of works licensed under the GNU General Public License or 11 * other free or open source software licenses. 12 * See COPYRIGHT.php for copyright notices and details. 13 */ 14 15 // Check to ensure this file is within the rest of the framework 16 defined('JPATH_BASE') or die(); 17 18 /** 19 * @package Joomla.Framework 20 * @subpackage Language 21 * @static 22 * @since 1.5 23 */ 24 class JLanguageHelper 25 { 26 /** 27 * Builds a list of the system languages which can be used in a select option 28 * 29 * @access public 30 * @param string Client key for the area 31 * @param string Base path to use 32 * @param array An array of arrays ( text, value, selected ) 33 * @since 1.5 34 */ 35 function createLanguageList($actualLanguage, $basePath = JPATH_BASE, $caching = false) 36 { 37 $list = array (); 38 39 // cache activation 40 $langs = JLanguage::getKnownLanguages($basePath); 41 42 foreach ($langs as $lang => $metadata) 43 { 44 $option = array (); 45 46 $option['text'] = $metadata['name']; 47 $option['value'] = $lang; 48 if ($lang == $actualLanguage) { 49 $option['selected'] = 'selected="selected"'; 50 } 51 $list[] = $option; 52 } 53 54 return $list; 55 } 56 57 /** 58 * Tries to detect the language 59 * 60 * @access public 61 * @return string locale 62 * @since 1.5 63 */ 64 function detectLanguage() 65 { 66 if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) 67 { 68 $systemLangs = JLanguage::getKnownLanguages(); 69 $browserLangs = explode( ',', $_SERVER['HTTP_ACCEPT_LANGUAGE'] ); 70 71 foreach ($browserLangs as $browserLang) 72 { 73 // slice out the part before ; on first step, the part before - on second, place into array 74 $browserLang = substr( $browserLang, 0, strcspn( $browserLang, ';' ) ); 75 $primary_browserLang = substr( $browserLang, 0, 2 ); 76 77 foreach($systemLangs as $systemLang => $metadata) 78 { 79 if (strtolower($browserLang) == strtolower(substr($metadata['tag'], 0, strlen($browserLang)))) { 80 return $systemLang; 81 } elseif ($primary_browserLang == substr($metadata['tag'], 0, 2)) { 82 $primaryDetectedLang = $systemLang; 83 } 84 } 85 86 if (isset($primaryDetectedLang)) { 87 return $primaryDetectedLang; 88 } 89 } 90 } 91 92 return 'en-GB'; 93 } 94 95 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Wed Mar 28 15:54:07 2012 | Cross-referenced by PHPXref 0.7.1 |