content_translation_page_attachments(&$page)
Implements hook_page_attachments().
File
- core/modules/content_translation/content_translation.module, line 560
- Allows entities to be translated into different languages.
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | function content_translation_page_attachments(& $page ) { $route_match = \Drupal::routeMatch(); // If the current route has no parameters, return. if (!( $route = $route_match ->getRouteObject()) || !( $parameters = $route ->getOption( 'parameters' ))) { return ; } // Determine if the current route represents an entity. foreach ( $parameters as $name => $options ) { if (!isset( $options [ 'type' ]) || strpos ( $options [ 'type' ], 'entity:' ) !== 0) { continue ; } $entity = $route_match ->getParameter( $name ); if ( $entity instanceof ContentEntityInterface) { // Current route represents a content entity. Build hreflang links. foreach ( $entity ->getTranslationLanguages() as $language ) { $url = $entity ->urlInfo() ->setOption( 'language' , $language ) ->setAbsolute() ->toString(); $page [ '#attached' ][ 'html_head_link' ][] = array ( array ( 'rel' => 'alternate' , 'hreflang' => $language ->getId(), 'href' => $url , ), TRUE, ); } } // Since entity was found, no need to iterate further. return ; } } |
Please login to continue.