diff --git a/README.md b/README.md index 086602cba..d16513e96 100644 --- a/README.md +++ b/README.md @@ -154,6 +154,12 @@ infos: description: "A list of infos of the current page. Deprecated from ECL 2.30." ``` +In addition, the customization that allowed the content language switcher to be rendered inside the page header +has been deprecated in favor of the new [ECL composition](https://europa-component-library.netlify.app/playground/ec/?path=/story/compositions-etranslation--default). +Instead, the OpenEuropa Content Language Switcher block provided by OpenEuropa Multilingual needs to be used +in its place. Sites updating to OpenEuropa Theme V3 are advised to place this block in the page header region +if they wish still need the functionality. + #### Content item compositions We have removed the following compositions from our theme: diff --git a/oe_theme.theme b/oe_theme.theme index 090ab36b4..0466d91e8 100644 --- a/oe_theme.theme +++ b/oe_theme.theme @@ -705,23 +705,15 @@ function _oe_theme_preprocess_languages(array $link_items, string $current_langu * and prepares the links for rendering. */ function oe_theme_preprocess_links__oe_multilingual_content_language_block(array &$variables): void { - $entity = \Drupal::service('oe_multilingual.helper')->getEntityFromCurrentRoute(); - /** @var \Drupal\Core\Entity\EntityInterface $translation */ - $translation = \Drupal::service('oe_multilingual.helper')->getCurrentLanguageEntityTranslation($entity); - $variables['current'] = $translation->language()->getName(); + + // Generate the label for the unavailable language. /** @var \Drupal\Core\Language\LanguageInterface[] $languages */ $languages = \Drupal::service('language_manager')->getNativeLanguages(); - $variables['unavailable'] = $languages[$variables['current_language_id']]->getName(); + $variables['unavailable_language'] = $languages[$variables['current_language_id']]->getName(); // Normalize the links to an array of optional languages suitable for the ECL. - $variables['options'] = []; + $variables['languages'] = []; foreach ($variables['links'] as $language_code => $link) { - - $language_internal = $language_code; - if (EuropeanUnionLanguages::hasLanguage($language_code)) { - $language_internal = EuropeanUnionLanguages::getInternalLanguageCode($language_code); - } - /** @var \Drupal\Core\Url $url */ $url = $link['link']['#url']; $href = $url @@ -729,15 +721,27 @@ function oe_theme_preprocess_links__oe_multilingual_content_language_block(array ->setAbsolute(TRUE) ->toString(); - $variables['options'][] = [ + $variables['languages'][] = [ 'href' => $href, 'hreflang' => $language_code, 'label' => $link['link']['#title'], - 'lang' => $language_internal, + 'current' => FALSE, ]; } - // Generate unique element ID for the expandable component. + // Add the current language to the list. + $multilingual_helper = \Drupal::service('oe_multilingual.helper'); + $entity = $multilingual_helper->getEntityFromCurrentRoute(); + /** @var \Drupal\Core\Entity\EntityInterface $translation */ + $translation = $multilingual_helper->getCurrentLanguageEntityTranslation($entity); + $variables['languages'][] = [ + 'href' => $translation->toUrl()->setAbsolute(TRUE)->toString(), + 'hreflang' => $translation->language()->getId(), + 'label' => $languages[$translation->language()->getId()]->getName(), + 'current' => TRUE, + ]; + + // Generate required ids. $variables['expandable_id'] = Html::getUniqueId('ecl-expandable'); } diff --git a/patches/@ecl/twig-component-page-header-core+3.0.0-beta.1.patch b/patches/@ecl/twig-component-page-header-core+3.0.0-beta.1.patch deleted file mode 100644 index fff2c189f..000000000 --- a/patches/@ecl/twig-component-page-header-core+3.0.0-beta.1.patch +++ /dev/null @@ -1,16 +0,0 @@ -patch-package ---- a/node_modules/@ecl/twig-component-page-header-core/page-header-core.html.twig -+++ b/node_modules/@ecl/twig-component-page-header-core/page-header-core.html.twig -@@ -70,7 +70,11 @@ - extra_classes: 'ecl-page-header-core__breadcrumb', - }) only %} - {% endif %} -- -+ {% if composition is not empty %} -+
-+ {{- composition|raw -}} -+
-+ {% endif %} - {% if _meta is not empty %} -
- {% for _item in _meta %} diff --git a/patches/@ecl/twig-component-page-header-standardised+3.0.0-beta.1.patch b/patches/@ecl/twig-component-page-header-standardised+3.0.0-beta.1.patch deleted file mode 100644 index a0d1778d2..000000000 --- a/patches/@ecl/twig-component-page-header-standardised+3.0.0-beta.1.patch +++ /dev/null @@ -1,16 +0,0 @@ -patch-package ---- a/node_modules/@ecl/twig-component-page-header-standardised/page-header-standardised.html.twig -+++ b/node_modules/@ecl/twig-component-page-header-standardised/page-header-standardised.html.twig -@@ -64,7 +64,11 @@ - extra_classes: 'ecl-page-header-standardised__breadcrumb', - }) only %} - {% endif %} -- -+ {% if composition is not empty %} -+
-+ {{- composition|raw -}} -+
-+ {% endif %} - {% if _meta is not empty %} -
- {% for _item in _meta %} diff --git a/templates/blocks/block--oe-multilingual-content-language-switcher.html.twig b/templates/blocks/block--oe-multilingual-content-language-switcher.html.twig index b698d14db..8dfe9b0fa 100644 --- a/templates/blocks/block--oe-multilingual-content-language-switcher.html.twig +++ b/templates/blocks/block--oe-multilingual-content-language-switcher.html.twig @@ -6,8 +6,4 @@ * @see ./core/themes/stable/templates/block/block.html.twig */ #} -
-
- {% include '@oe_theme/blocks/block--bare.html.twig' %} -
-
+{% include '@oe_theme/blocks/block--bare.html.twig' %} diff --git a/templates/compositions/ec-component-content-language-switcher/content-language-switcher.html.twig b/templates/compositions/ec-component-content-language-switcher/content-language-switcher.html.twig index 1a0e5d47c..c4c4f7053 100644 --- a/templates/compositions/ec-component-content-language-switcher/content-language-switcher.html.twig +++ b/templates/compositions/ec-component-content-language-switcher/content-language-switcher.html.twig @@ -2,77 +2,101 @@ {# Parameters: + - "unavailable_language" (string) (default: ''): the name of the unavailable language. - "expandable_id" (string) (default: ''): unique ID for the expandable component. - - "unavailable" (string) (default: ''): language currently unavailable. - - "current" (string) (default: ''): language currently displayed instead of the selected, unavailable, one. - - "options" (array) (default: []): array of links to the content in different languages. Format: + - "languages" (array) (default: []): array of links to the content in different languages. Format: [ { "href" (string) URL of the content (default: ''), "hreflang" (string) language code to be used as link attribute, - "label" (string) link label, i.e. the language name in its native form (default: '') + "label" (string) link label, i.e. the language name in its native form (default: ''), + "current" (boolean) whether the language is the current page language or not (default: false) }, ... ] - - "icon_path" (string) (default: ''): path to ECL SVG icon assets. #} - -
-
- - {% include '@ecl-twig/icon' with { +
+
+ {% include '@ecl-twig/message' with { + title: 'The @language language is unavailable.'|t({'@language': unavailable_language}), + variant: 'warning', + extra_classes: ecl_component_library == 'ec' ? 'ecl-u-mb-m ecl-u-bg-transparent' : 'ecl-u-mb-m', icon: { - path: icon_path, - name: "generic-lang", - size: "l" - } - } only %} - {# Show the unavailable language with a striketrought. #} - - {{ unavailable }} - - - {# If we have more than one optional languages then use an expandable to display them. #} - {% if options %} - {% set languages %} - - {% endset %} - {% include '@ecl-twig/expandable' with { - 'id': expandable_id, - 'label_expanded': current, - 'label_collapsed': current, - 'expanded': false, - 'button': { - 'label': current, - 'type': 'button', - 'variant': 'secondary', - 'icon': { - 'path': icon_path, - 'name': "corner-arrow", - 'size': "xs", - 'transform': "rotate-180" - }, - 'icon_position': 'after' + path: ecl_icon_path, + name: 'warning', + size: 'l', + }, + close: { + label: 'Close this message'|t, + icon : { + path: ecl_icon_path, + name: 'close', + size: 's', + } }, - 'extra_classes': 'ecl-u-ml-s', - 'content': languages, - } only %} - {% else %} - {# If we have only one alternative language just display it as a button, without any otherwise empty expandable. #} - {% include '@ecl-twig/button' with { - 'label': current, - 'type': 'button', - 'variant': 'secondary', - 'extra_classes': 'ecl-u-ml-s' } only %} - {% endif %} + + {# The expandable containing languages is split in two different blocks: "button" and "languages" #} + {# This is necessary as, in some cases, additional Webtools widgets might need to be placed right #} + {# beside the expandalbe button region, whether we have languages or not. #} +
+ {# This block wraps around the expandable button and it is displayed even if the button is not. #} + {% block button %} + {% if languages %} + {% set _label = 'Choose another language'|t %} + {% include '@ecl-twig/button' with { + label: _label, + variant: 'secondary', + type: 'button', + icon_position: "after", + icon: { + path: ecl_icon_path, + name: 'corner-arrow', + size: 'fluid', + transform: 'rotate-180' + }, + extra_classes: 'ecl-expandable__toggle ecl-u-mr-s ecl-u-bg-transparent', + extra_attributes: [ + { name: 'aria-controls', value: expandable_id ~ '-content'|default('') }, + { name: 'data-ecl-expandable-toggle' }, + { name: 'data-ecl-label-expanded', value: _label }, + { name: 'data-ecl-label-collapsed', value: _label}, + { name: 'aria-expanded', value: 'false' } + ] + } only %} + {% endif %} + {% endblock %} +
+ {# This block wraps around the expandable content and it is displayed even if the content is not. #} + {% block language_list %} + {% if languages %} + + {% endif %} + {% endblock %} +
-
{% endspaceless %} diff --git a/templates/navigation/links--oe-multilingual-content-language-block.html.twig b/templates/navigation/links--oe-multilingual-content-language-block.html.twig index f20316270..5945e0609 100644 --- a/templates/navigation/links--oe-multilingual-content-language-block.html.twig +++ b/templates/navigation/links--oe-multilingual-content-language-block.html.twig @@ -6,10 +6,4 @@ * @see ./core/modules/stable/navigation/links.html.twig */ #} -{% include '@oe_theme/compositions/ec-component-content-language-switcher/content-language-switcher.html.twig' with { - 'expandable_id': expandable_id, - 'unavailable': unavailable, - 'current': current, - 'options': options, - 'icon_path': ecl_icon_path, -} only %} +{% include '@oe_theme/compositions/ec-component-content-language-switcher/content-language-switcher.html.twig' %} diff --git a/templates/patterns/page_header/page_header.ui_patterns.yml b/templates/patterns/page_header/page_header.ui_patterns.yml index 2092aefa0..794fba20c 100644 --- a/templates/patterns/page_header/page_header.ui_patterns.yml +++ b/templates/patterns/page_header/page_header.ui_patterns.yml @@ -29,8 +29,8 @@ page_header: - "Brussels" language_switcher: type: "array" - label: "Language switcher" - description: "The language selector offers the alternative language versions of the page’s main content." + label: "Language switcher (Deprecated)" + description: "The language selector offers the alternative language versions of the page’s main content. This has been deprecated in ECL V3." preview: current: "French" unavailable: "English" diff --git a/templates/patterns/page_header/pattern-page-header.html.twig b/templates/patterns/page_header/pattern-page-header.html.twig index 3c4b67211..fa5690d26 100644 --- a/templates/patterns/page_header/pattern-page-header.html.twig +++ b/templates/patterns/page_header/pattern-page-header.html.twig @@ -31,18 +31,6 @@ ] %} -{% if language_switcher %} - {% set _language_switcher %} - {% include '@oe_theme/compositions/ec-component-content-language-switcher/content-language-switcher.html.twig' with { - 'expandable_id': language_switcher.expandable_id, - 'unavailable': language_switcher.unavailable, - 'current': language_switcher.current, - 'options': language_switcher.options, - 'icon_path': ecl_icon_path, - } only %} - {% endset %} -{% endif %} - {% include '@ecl-twig/page-header-' ~ ecl_branding ~ '/page-header-' ~ ecl_branding with { 'title': title, 'thumbnail': thumbnail, @@ -50,7 +38,6 @@ 'breadcrumb': _breadcrumb, 'meta': metas|filter_empty, 'background_image_url': background_image_url, - 'composition': _language_switcher, 'extra_classes': _extra_classes|join(' '), 'overlay': ecl_component_library == 'ec' and overlay is not empty, } %} diff --git a/tests/Kernel/ContentLanguageSwitcherTest.php b/tests/Kernel/ContentLanguageSwitcherTest.php index add5840bc..566ea86ba 100644 --- a/tests/Kernel/ContentLanguageSwitcherTest.php +++ b/tests/Kernel/ContentLanguageSwitcherTest.php @@ -68,10 +68,10 @@ public function testLanguageSwitcherRendering(): void { $crawler = new Crawler($html); // Make sure that content language switcher block is present. - $actual = $crawler->filter('.ecl-lang-select-page'); + $actual = $crawler->filter('div.ecl-lang-select-page div.ecl-container'); $this->assertCount(1, $actual); - // Make sure that unavailable language is properly rendered. + // Make sure that warning message contains the unavailable language. $this->assertUnavailableLanguage($crawler, 'български'); // Make sure that selected language is properly rendered. @@ -111,8 +111,8 @@ public function testLanguageSwitcherRendering(): void { * The label of the language. */ protected function assertUnavailableLanguage(Crawler $crawler, string $expected): void { - $actual = $crawler->filter('.ecl-lang-select-page .ecl-u-type-strike')->text(); - $this->assertEquals($expected, trim($actual)); + $actual = $crawler->filter('div.ecl-lang-select-page div.ecl-container div.ecl-message--warning')->text(); + $this->assertContains($expected, trim($actual)); } /** @@ -124,7 +124,7 @@ protected function assertUnavailableLanguage(Crawler $crawler, string $expected) * The label of the language. */ protected function assertSelectedLanguage(Crawler $crawler, string $expected): void { - $actual = $crawler->filter('.ecl-lang-select-page .ecl-button.ecl-button--secondary')->text(); + $actual = $crawler->filter('div.ecl-lang-select-page div.ecl-container div.ecl-expandable__content li.ecl-unordered-list__item a.ecl-u-bg-blue-50')->text(); $this->assertEquals($expected, trim($actual)); } @@ -137,7 +137,7 @@ protected function assertSelectedLanguage(Crawler $crawler, string $expected): v * The labels of the translations that should be rendered as links. */ protected function assertTranslationLinks(Crawler $crawler, array $expected): void { - $elements = $crawler->filter('.ecl-lang-select-page .ecl-expandable__content .ecl-button'); + $elements = $crawler->filter('div.ecl-lang-select-page div.ecl-container div.ecl-expandable__content li.ecl-unordered-list__item a:not(.ecl-u-bg-blue-50)'); $this->assertSameSize($expected, $elements); $actual = array_column(iterator_to_array($elements), 'nodeValue'); diff --git a/tests/Kernel/fixtures/patterns/page_header_rendering.yml b/tests/Kernel/fixtures/patterns/page_header_rendering.yml index f7f9012b3..b93c4e7c1 100644 --- a/tests/Kernel/fixtures/patterns/page_header_rendering.yml +++ b/tests/Kernel/fixtures/patterns/page_header_rendering.yml @@ -9,19 +9,6 @@ - "News article>" - "6 July 2015&" - "Brussels<" - language_switcher: - current: "French" - unavailable: "English" - is_primary: true - options: - - href: "#" - hreflang: "es" - label: "Spanish" - lang: "es" - - href: "#" - hreflang: "it" - label: "Italian" - lang: "it" breadcrumb: - href: "http://www.example.com/" @@ -45,8 +32,6 @@ count: '.ecl-page-header-core': 1 '.ecl-breadcrumb-core__segment': 7 - '.ecl-lang-select-page button.ecl-button': 1 - '.ecl-lang-select-page .ecl-expandable__content ul li a.ecl-button': 2 '.ecl-page-header-core__background': 0 '.ecl-page-header-core__meta .ecl-page-header-core__meta-item': 3 '.ecl-page-header-core__info-list': 0 @@ -57,10 +42,6 @@ '.ecl-page-header-core__meta .ecl-page-header-core__meta-item:nth-child(1)': "News article>" '.ecl-page-header-core__meta .ecl-page-header-core__meta-item:nth-child(2)': "6 July 2015&" '.ecl-page-header-core__meta .ecl-page-header-core__meta-item:nth-child(3)': "Brussels<" - '.ecl-lang-select-page .ecl-u-type-strike': "English" - '.ecl-lang-select-page button.ecl-button .ecl-button__label': "French" - '.ecl-lang-select-page .ecl-expandable__content ul li a.ecl-button[lang="es"]': "Spanish" - '.ecl-lang-select-page .ecl-expandable__content ul li a.ecl-button[lang="it"]': "Italian" '.ecl-breadcrumb-core__segment:nth-child(1)[data-ecl-breadcrumb-core-item="static"] a[href="http://www.example.com/"]': "European Commission" '.ecl-breadcrumb-core__segment:nth-child(2).ecl-breadcrumb-core__segment--ellipsis button': "…" '.ecl-breadcrumb-core__segment:nth-child(3)[data-ecl-breadcrumb-core-item="expandable"] a[href="http://www.example.com/announcements/"]': "Announcements" @@ -79,19 +60,6 @@ - "News article>" - "6 July 2015&" - "Brussels<" - language_switcher: - current: "French" - unavailable: "English" - is_primary: true - options: - - href: "#" - hreflang: "es" - label: "Spanish" - lang: "es" - - href: "#" - hreflang: "it" - label: "Italian" - lang: "it" breadcrumb: - href: "http://www.example.com/" @@ -117,8 +85,6 @@ '.ecl-page-header-core': 1 '.ecl-breadcrumb-core__segment': 7 '.ecl-page-header-core__background[style="background-image: url(https://inno-ecl.s3.amazonaws.com/media/examples/example-image8.jpg)"]': 1 - '.ecl-lang-select-page button.ecl-button': 1 - '.ecl-lang-select-page .ecl-expandable__content ul li a.ecl-button': 2 '.ecl-page-header-core__meta .ecl-page-header-core__meta-item': 3 '.ecl-page-header-core__info-list': 0 '.ecl-page-header-core__info-item': 0 @@ -128,10 +94,6 @@ '.ecl-page-header-core__meta .ecl-page-header-core__meta-item:nth-child(1)': "News article>" '.ecl-page-header-core__meta .ecl-page-header-core__meta-item:nth-child(2)': "6 July 2015&" '.ecl-page-header-core__meta .ecl-page-header-core__meta-item:nth-child(3)': "Brussels<" - '.ecl-lang-select-page .ecl-u-type-strike': "English" - '.ecl-lang-select-page button.ecl-button .ecl-button__label': "French" - '.ecl-lang-select-page .ecl-expandable__content ul li a.ecl-button[lang="es"]': "Spanish" - '.ecl-lang-select-page .ecl-expandable__content ul li a.ecl-button[lang="it"]': "Italian" '.ecl-breadcrumb-core__segment:nth-child(1)[data-ecl-breadcrumb-core-item="static"] a[href="http://www.example.com/"]': "European Commission" '.ecl-breadcrumb-core__segment:nth-child(2).ecl-breadcrumb-core__segment--ellipsis button': "…" '.ecl-breadcrumb-core__segment:nth-child(3)[data-ecl-breadcrumb-core-item="expandable"] a[href="http://www.example.com/announcements/"]': "Announcements" @@ -150,26 +112,11 @@ - "News article>" - "6 July 2015&" - "Brussels<" - language_switcher: - current: "French" - unavailable: "English" - is_primary: true - options: - - href: "#" - hreflang: "es" - label: "Spanish" - lang: "es" - - href: "#" - hreflang: "it" - label: "Italian" - lang: "it" assertions: count: '.ecl-page-header-core': 1 '.ecl-u-mb-xl': 1 '.ecl-u-pt-m': 1 - '.ecl-lang-select-page button.ecl-button': 1 - '.ecl-lang-select-page .ecl-expandable__content ul li a.ecl-button': 2 '.ecl-page-header-core__background': 0 '.ecl-page-header-core__meta .ecl-page-header-core__meta-item': 3 '.ecl-page-header-core__info-list': 0 @@ -181,10 +128,6 @@ '.ecl-page-header-core__meta .ecl-page-header-core__meta-item:nth-child(1)': "News article>" '.ecl-page-header-core__meta .ecl-page-header-core__meta-item:nth-child(2)': "6 July 2015&" '.ecl-page-header-core__meta .ecl-page-header-core__meta-item:nth-child(3)': "Brussels<" - '.ecl-lang-select-page .ecl-u-type-strike': "English" - '.ecl-lang-select-page button.ecl-button .ecl-button__label': "French" - '.ecl-lang-select-page .ecl-expandable__content ul li a.ecl-button[lang="es"]': "Spanish" - '.ecl-lang-select-page .ecl-expandable__content ul li a.ecl-button[lang="it"]': "Italian" - branding: standardised pattern: '#type': pattern @@ -196,19 +139,6 @@ - "News article>" - "6 July 2015&" - "Brussels<" - language_switcher: - current: "French" - unavailable: "English" - is_primary: true - options: - - href: "#" - hreflang: "es" - label: "Spanish" - lang: "es" - - href: "#" - hreflang: "it" - label: "Italian" - lang: "it" breadcrumb: - href: "http://www.example.com/" @@ -232,9 +162,7 @@ count: '.ecl-page-header-standardised': 1 '.ecl-breadcrumb-standardised__segment': 7 - '.ecl-lang-select-page button.ecl-button': 1 '.ecl-page-header-core__background': 0 - '.ecl-lang-select-page .ecl-expandable__content ul li a.ecl-button': 2 '.ecl-page-header-standardised__meta .ecl-page-header-standardised__meta-item': 3 '.ecl-page-header-standardised__info-list': 0 '.ecl-page-header-standardised__info-item': 0 @@ -244,10 +172,6 @@ '.ecl-page-header-standardised__meta .ecl-page-header-standardised__meta-item:nth-child(1)': "News article>" '.ecl-page-header-standardised__meta .ecl-page-header-standardised__meta-item:nth-child(2)': "6 July 2015&" '.ecl-page-header-standardised__meta .ecl-page-header-standardised__meta-item:nth-child(3)': "Brussels<" - '.ecl-lang-select-page .ecl-u-type-strike': "English" - '.ecl-lang-select-page button.ecl-button .ecl-button__label': "French" - '.ecl-lang-select-page .ecl-expandable__content ul li a.ecl-button[lang="es"]': "Spanish" - '.ecl-lang-select-page .ecl-expandable__content ul li a.ecl-button[lang="it"]': "Italian" '.ecl-breadcrumb-standardised__segment:nth-child(1)[data-ecl-breadcrumb-standardised-item="static"] a[href="http://www.example.com/"]': "European Commission" '.ecl-breadcrumb-standardised__segment:nth-child(2).ecl-breadcrumb-standardised__segment--ellipsis button': "…" '.ecl-breadcrumb-standardised__segment:nth-child(3)[data-ecl-breadcrumb-standardised-item="expandable"] a[href="http://www.example.com/announcements/"]': "Announcements" @@ -266,19 +190,6 @@ - "News article>" - "6 July 2015&" - "Brussels<" - language_switcher: - current: "French" - unavailable: "English" - is_primary: true - options: - - href: "#" - hreflang: "es" - label: "Spanish" - lang: "es" - - href: "#" - hreflang: "it" - label: "Italian" - lang: "it" breadcrumb: - href: "http://www.example.com/" @@ -304,8 +215,6 @@ '.ecl-page-header-standardised': 1 '.ecl-breadcrumb-standardised__segment': 7 '.ecl-page-header-core__background': 0 - '.ecl-lang-select-page button.ecl-button': 1 - '.ecl-lang-select-page .ecl-expandable__content ul li a.ecl-button': 2 '.ecl-page-header-standardised__meta .ecl-page-header-standardised__meta-item': 3 '.ecl-page-header-standardised__info-list': 0 '.ecl-page-header-standardised__info-item': 0 @@ -315,10 +224,6 @@ '.ecl-page-header-standardised__meta .ecl-page-header-standardised__meta-item:nth-child(1)': "News article>" '.ecl-page-header-standardised__meta .ecl-page-header-standardised__meta-item:nth-child(2)': "6 July 2015&" '.ecl-page-header-standardised__meta .ecl-page-header-standardised__meta-item:nth-child(3)': "Brussels<" - '.ecl-lang-select-page .ecl-u-type-strike': "English" - '.ecl-lang-select-page button.ecl-button .ecl-button__label': "French" - '.ecl-lang-select-page .ecl-expandable__content ul li a.ecl-button[lang="es"]': "Spanish" - '.ecl-lang-select-page .ecl-expandable__content ul li a.ecl-button[lang="it"]': "Italian" '.ecl-breadcrumb-standardised__segment:nth-child(1)[data-ecl-breadcrumb-standardised-item="static"] a[href="http://www.example.com/"]': "European Commission" '.ecl-breadcrumb-standardised__segment:nth-child(2).ecl-breadcrumb-standardised__segment--ellipsis button': "…" '.ecl-breadcrumb-standardised__segment:nth-child(3)[data-ecl-breadcrumb-standardised-item="expandable"] a[href="http://www.example.com/announcements/"]': "Announcements" @@ -355,8 +260,6 @@ '.ecl-page-header-standardised': 1 '.ecl-u-pt-m': 1 '.ecl-page-header-core__background': 0 - '.ecl-lang-select-page button.ecl-button': 1 - '.ecl-lang-select-page .ecl-expandable__content ul li a.ecl-button': 2 '.ecl-page-header-standardised__meta .ecl-page-header-standardised__meta-item': 3 '.ecl-page-header-standardised__info-list': 0 '.ecl-page-header-standardised__info-item': 0 @@ -367,7 +270,3 @@ '.ecl-page-header-standardised__meta .ecl-page-header-standardised__meta-item:nth-child(1)': "News article>" '.ecl-page-header-standardised__meta .ecl-page-header-standardised__meta-item:nth-child(2)': "6 July 2015&" '.ecl-page-header-standardised__meta .ecl-page-header-standardised__meta-item:nth-child(3)': "Brussels<" - '.ecl-lang-select-page .ecl-u-type-strike': "English" - '.ecl-lang-select-page button.ecl-button .ecl-button__label': "French" - '.ecl-lang-select-page .ecl-expandable__content ul li a.ecl-button[lang="es"]': "Spanish" - '.ecl-lang-select-page .ecl-expandable__content ul li a.ecl-button[lang="it"]': "Italian"