function i18n_languages in Internationalization 5
Same name and namespace in other branches
- 5.3 i18n.module \i18n_languages()
 - 5.2 i18n.module \i18n_languages()
 
Get locale languages plus i18n language settings
Parameters
$key: Data to be returned, defaults to 'active' 'active' => array of enabled languages with native name 'enabled' => array of enabled languages with english name 'name' => all languages defined in locale module with english name 'site_default' => code of default site language
9 calls to i18n_languages()
- i18n_default_language in ./
i18n.module  - Returns default language
 - i18n_get_lang_prefix in ./
i18n.module  - Get language code from path.
 - i18n_get_links in ./
i18n.module  - Function i18n_get_links
 - i18n_language_list in ./
i18n.module  - Get localized language list, sort alphabetically
 - i18n_language_property in ./
i18n.module  - Get language properties
 
3 string references to 'i18n_languages'
- i18n_admin_manage_screen_submit in ./
i18n.module  - Save language settings in variable
 - i18n_admin_settings in ./
i18n.module  - Form builder function.
 - i18n_form_alter in ./
i18n.module  - Implementation of hook_form_alter
 
File
- ./
i18n.module, line 397  - Internationalization (i18n) module
 
Code
function i18n_languages($key = 'active') {
  static $languages;
  if (!$languages) {
    if ($languages = variable_get('i18n_languages', 0)) {
      foreach ($languages['name'] as $code => $name) {
        if ($languages['enabled'][$code]) {
          $languages['active'][$code] = $name;
        }
      }
    }
    else {
      // It is possible that languages are not initialized
      if (function_exists('locale_supported_languages')) {
        $languages = locale_supported_languages();
      }
      else {
        // Worst case scenario: locale module not loaded, for cached pages, at least this won't break everything
        unset($languages);
        // There's some PHP bug: http://www.zend.com/zend/week/week98.php
        $languages['name'] = array(
          'en' => 'English',
        );
      }
      $languages['site_default'] = key($languages['name']);
      $languages['active'] = $languages['name'];
      $languages['native'] = $languages['name'];
    }
    // Sort everything alphabetically
    asort($languages['name']);
    asort($languages['active']);
    asort($languages['native']);
  }
  return $key ? $languages[$key] : $languages;
}