Returns all defined language negotiation methods.
An array of language negotiation methods.
function language_negotiation_info() {
$negotiation_info =& drupal_static(__FUNCTION__);
if (!isset($negotiation_info)) {
// Collect all the module-defined language negotiation methods.
$negotiation_info = module_invoke_all('language_negotiation_info');
$languages = language_list();
$selected_language = $languages[language_from_selected($languages)];
$description = 'Language based on a selected language. ';
$description .= $selected_language->langcode == language_default()->langcode ? "(Site's default language (@language_name))" : '(@language_name)';
// Add the default language negotiation method.
$negotiation_info[LANGUAGE_NEGOTIATION_SELECTED] = array(
'callbacks' => array(
'negotiation' => 'language_from_selected',
),
'weight' => 12,
'name' => t('Selected language'),
'description' => t($description, array(
'@language_name' => $selected_language->name,
)),
'config' => 'admin/config/regional/language/detection/selected',
);
// Let other modules alter the list of language negotiation methods.
drupal_alter('language_negotiation_info', $negotiation_info);
}
return $negotiation_info;
}