danielebarchiesi@0: language) { danielebarchiesi@0: case 'it': danielebarchiesi@0: $conf['site_name'] = 'Il mio sito Drupal'; danielebarchiesi@0: break; danielebarchiesi@0: danielebarchiesi@0: case 'fr': danielebarchiesi@0: $conf['site_name'] = 'Mon site Drupal'; danielebarchiesi@0: break; danielebarchiesi@0: } danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * Perform alterations on language switcher links. danielebarchiesi@0: * danielebarchiesi@0: * A language switcher link may need to point to a different path or use a danielebarchiesi@0: * translated link text before going through l(), which will just handle the danielebarchiesi@0: * path aliases. danielebarchiesi@0: * danielebarchiesi@0: * @param $links danielebarchiesi@0: * Nested array of links keyed by language code. danielebarchiesi@0: * @param $type danielebarchiesi@0: * The language type the links will switch. danielebarchiesi@0: * @param $path danielebarchiesi@0: * The current path. danielebarchiesi@0: */ danielebarchiesi@0: function hook_language_switch_links_alter(array &$links, $type, $path) { danielebarchiesi@0: global $language; danielebarchiesi@0: danielebarchiesi@0: if ($type == LANGUAGE_TYPE_CONTENT && isset($links[$language->language])) { danielebarchiesi@0: foreach ($links[$language->language] as $link) { danielebarchiesi@0: $link['attributes']['class'][] = 'active-language'; danielebarchiesi@0: } danielebarchiesi@0: } danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * Define language types. danielebarchiesi@0: * danielebarchiesi@0: * @return danielebarchiesi@0: * An associative array of language type definitions. The keys are the danielebarchiesi@0: * identifiers, which are also used as names for global variables representing danielebarchiesi@0: * the types in the bootstrap phase. The values are associative arrays that danielebarchiesi@0: * may contain the following elements: danielebarchiesi@0: * - name: The human-readable language type identifier. danielebarchiesi@0: * - description: A description of the language type. danielebarchiesi@0: * - fixed: A fixed array of language negotiation provider identifiers to use danielebarchiesi@0: * to initialize this language. Defining this key makes the language type danielebarchiesi@0: * non-configurable, so it will always use the specified providers in the danielebarchiesi@0: * given priority order. Omit to make the language type configurable. danielebarchiesi@0: * danielebarchiesi@0: * @see hook_language_types_info_alter() danielebarchiesi@0: * @ingroup language_negotiation danielebarchiesi@0: */ danielebarchiesi@0: function hook_language_types_info() { danielebarchiesi@0: return array( danielebarchiesi@0: 'custom_language_type' => array( danielebarchiesi@0: 'name' => t('Custom language'), danielebarchiesi@0: 'description' => t('A custom language type.'), danielebarchiesi@0: ), danielebarchiesi@0: 'fixed_custom_language_type' => array( danielebarchiesi@0: 'fixed' => array('custom_language_provider'), danielebarchiesi@0: ), danielebarchiesi@0: ); danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * Perform alterations on language types. danielebarchiesi@0: * danielebarchiesi@0: * @param $language_types danielebarchiesi@0: * Array of language type definitions. danielebarchiesi@0: * danielebarchiesi@0: * @see hook_language_types_info() danielebarchiesi@0: * @ingroup language_negotiation danielebarchiesi@0: */ danielebarchiesi@0: function hook_language_types_info_alter(array &$language_types) { danielebarchiesi@0: if (isset($language_types['custom_language_type'])) { danielebarchiesi@0: $language_types['custom_language_type_custom']['description'] = t('A far better description.'); danielebarchiesi@0: } danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * Define language negotiation providers. danielebarchiesi@0: * danielebarchiesi@0: * @return danielebarchiesi@0: * An associative array of language negotiation provider definitions. The keys danielebarchiesi@0: * are provider identifiers, and the values are associative arrays definining danielebarchiesi@0: * each provider, with the following elements: danielebarchiesi@0: * - types: An array of allowed language types. If a language negotiation danielebarchiesi@0: * provider does not specify which language types it should be used with, it danielebarchiesi@0: * will be available for all the configurable language types. danielebarchiesi@0: * - callbacks: An associative array of functions that will be called to danielebarchiesi@0: * perform various tasks. Possible elements are: danielebarchiesi@0: * - negotiation: (required) Name of the callback function that determines danielebarchiesi@0: * the language value. danielebarchiesi@0: * - language_switch: (optional) Name of the callback function that danielebarchiesi@0: * determines links for a language switcher block associated with this danielebarchiesi@0: * provider. See language_switcher_url() for an example. danielebarchiesi@0: * - url_rewrite: (optional) Name of the callback function that provides URL danielebarchiesi@0: * rewriting, if needed by this provider. danielebarchiesi@0: * - file: The file where callback functions are defined (this file will be danielebarchiesi@0: * included before the callbacks are invoked). danielebarchiesi@0: * - weight: The default weight of the provider. danielebarchiesi@0: * - name: The translated human-readable name for the provider. danielebarchiesi@0: * - description: A translated longer description of the provider. danielebarchiesi@0: * - config: An internal path pointing to the provider's configuration page. danielebarchiesi@0: * - cache: The value Drupal's page cache should be set to for the current danielebarchiesi@0: * provider to be invoked. danielebarchiesi@0: * danielebarchiesi@0: * @see hook_language_negotiation_info_alter() danielebarchiesi@0: * @ingroup language_negotiation danielebarchiesi@0: */ danielebarchiesi@0: function hook_language_negotiation_info() { danielebarchiesi@0: return array( danielebarchiesi@0: 'custom_language_provider' => array( danielebarchiesi@0: 'callbacks' => array( danielebarchiesi@0: 'language' => 'custom_language_provider_callback', danielebarchiesi@0: 'switcher' => 'custom_language_switcher_callback', danielebarchiesi@0: 'url_rewrite' => 'custom_language_url_rewrite_callback', danielebarchiesi@0: ), danielebarchiesi@0: 'file' => drupal_get_path('module', 'custom') . '/custom.module', danielebarchiesi@0: 'weight' => -4, danielebarchiesi@0: 'types' => array('custom_language_type'), danielebarchiesi@0: 'name' => t('Custom language negotiation provider'), danielebarchiesi@0: 'description' => t('This is a custom language negotiation provider.'), danielebarchiesi@0: 'cache' => 0, danielebarchiesi@0: ), danielebarchiesi@0: ); danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * Perform alterations on language negoiation providers. danielebarchiesi@0: * danielebarchiesi@0: * @param $language_providers danielebarchiesi@0: * Array of language negotiation provider definitions. danielebarchiesi@0: * danielebarchiesi@0: * @see hook_language_negotiation_info() danielebarchiesi@0: * @ingroup language_negotiation danielebarchiesi@0: */ danielebarchiesi@0: function hook_language_negotiation_info_alter(array &$language_providers) { danielebarchiesi@0: if (isset($language_providers['custom_language_provider'])) { danielebarchiesi@0: $language_providers['custom_language_provider']['config'] = 'admin/config/regional/language/configure/custom-language-provider'; danielebarchiesi@0: } danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * Perform alterations on the language fallback candidates. danielebarchiesi@0: * danielebarchiesi@0: * @param $fallback_candidates danielebarchiesi@0: * An array of language codes whose order will determine the language fallback danielebarchiesi@0: * order. danielebarchiesi@0: */ danielebarchiesi@0: function hook_language_fallback_candidates_alter(array &$fallback_candidates) { danielebarchiesi@0: $fallback_candidates = array_reverse($fallback_candidates); danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * @} End of "addtogroup hooks". danielebarchiesi@0: */