Nodes (Content Entities) are the base of determining translation children: Views, Panels, Custom Routes have no ability to 'find a translation of'.
flagsarenotlanguages Design vs Communication.
° See this project Plan Issues as related possible plugins. Now that Drupal has it's own Layout tool built ontop of Nodes - Nodes remain the way to produce such landing pages and attach field/blocks via Layouts while keeping ready for translation. (*Also possibly the next version of Drupal/Symfony routing may have better translation routing support and such tools could then adopt said tools.). °This is why they do not have 'translation links'. These such contrib tools do not conform to building pages that connect as Translated Nodes (or other such Content Entities) do.
Panels, Views & Other Route Controlling Things.
This is why dead links to other non-published, or relinking/redirecting to the frontpage: is bad!
About 'hreflang' and Language Blocks: hreflang attribute is used with all links within the language block, unlike other 'menu' blocks.
Bootstrap themes will switch Drupal's native Dropbutton element with Bootstrap Dropdown Sub-option: keep block render in place if no other translation path is available.
SEO Feature: Option to hide links to untranslated Entities.
Options to display language link titles by:.
For a great base of icons try: flag-icon-css.
Each list item has a class for it's language allowing for background image (flag) attached via theme level.
Current Language appears at top of list.
Block will 'appear' when more than one language is active.
Rather than the Language Switcher (Language modules basic block) that is an unordered list of links. Provides a block using the Dropbutton element to switch site language.