Sayfa.Blocks.LanguageSwitcher (Sayfa v0.5.0)

Copy Markdown View Source

Language switcher block.

Renders links to translations of the current page. Returns "" if only one language is configured. Uses hreflang_alternates from content metadata for content pages, and constructs alternate URLs from language config for list/index pages. Falls back to each language's home path (/ for the default language, /lang/ for others) when no translation links are available.

Assigns

  • :site — site config map (used for languages)
  • :content — current Sayfa.Content struct (nil on list/home pages)
  • :lang — current language atom
  • :page_url — current page URL (for list pages)
  • :variant — optional atom (:desktop, :mobile, or :default) for unique IDs (default: :default)

Examples

<%= @block.(:language_switcher, []) %>
<%= @block.(:language_switcher, variant: :desktop) %>
<%= @block.(:language_switcher, variant: :mobile) %>