[ Index ]

PHP Cross Reference of Joomla 1.5.26 DE

title

Body

[close]

/libraries/joomla/language/ -> helper.php (source)

   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  }


Generated: Wed Mar 28 15:54:07 2012 Cross-referenced by PHPXref 0.7.1