Chris@0: [ Chris@0: 'name' => t('Custom language'), Chris@0: 'description' => t('A custom language type.'), Chris@0: 'locked' => FALSE, Chris@0: ], Chris@0: 'fixed_custom_language_type' => [ Chris@0: 'locked' => TRUE, Chris@0: 'fixed' => ['custom_language_negotiation_method'], Chris@0: ], Chris@0: ]; Chris@0: } Chris@0: Chris@0: /** Chris@0: * Perform alterations on language types. Chris@0: * Chris@0: * @param array $language_types Chris@0: * Array of language type definitions. Chris@0: * Chris@0: * @see hook_language_types_info() Chris@0: * @ingroup language_negotiation Chris@0: */ Chris@0: function hook_language_types_info_alter(array &$language_types) { Chris@0: if (isset($language_types['custom_language_type'])) { Chris@0: $language_types['custom_language_type_custom']['description'] = t('A far better description.'); Chris@0: } Chris@0: } Chris@0: Chris@0: /** Chris@0: * Perform alterations on language negotiation methods. Chris@0: * Chris@0: * @param array $negotiation_info Chris@0: * Array of language negotiation method definitions. Chris@0: * Chris@0: * @ingroup language_negotiation Chris@0: */ Chris@0: function hook_language_negotiation_info_alter(array &$negotiation_info) { Chris@0: if (isset($negotiation_info['custom_language_method'])) { Chris@0: $negotiation_info['custom_language_method']['config'] = 'admin/config/regional/language/detection/custom-language-method'; Chris@0: } Chris@0: } Chris@0: Chris@0: /** Chris@0: * Allow modules to alter the language fallback candidates. Chris@0: * Chris@0: * @param array $candidates Chris@0: * An array of language codes whose order will determine the language fallback Chris@0: * order. Chris@0: * @param array $context Chris@0: * A language fallback context. Chris@0: * Chris@0: * @see \Drupal\Core\Language\LanguageManagerInterface::getFallbackCandidates() Chris@0: */ Chris@0: function hook_language_fallback_candidates_alter(array &$candidates, array $context) { Chris@0: $candidates = array_reverse($candidates); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Allow modules to alter the fallback candidates for specific operations. Chris@0: * Chris@0: * @param array $candidates Chris@0: * An array of language codes whose order will determine the language fallback Chris@0: * order. Chris@0: * @param array $context Chris@0: * A language fallback context. Chris@0: * Chris@0: * @see \Drupal\Core\Language\LanguageManagerInterface::getFallbackCandidates() Chris@0: */ Chris@0: function hook_language_fallback_candidates_OPERATION_alter(array &$candidates, array $context) { Chris@0: // We know that the current OPERATION deals with entities so no need to check Chris@0: // here. Chris@0: if ($context['data']->getEntityTypeId() == 'node') { Chris@0: $candidates = array_reverse($candidates); Chris@0: } Chris@0: } Chris@0: Chris@0: /** Chris@0: * @} End of "addtogroup hooks". Chris@0: */