{# Library navigation — one source for every media kind's label and icon. The registry in web/media_kinds.py deliberately does NOT carry translated labels: babel.cfg extracts from Jinja2 templates only (pybabel's Python tokenizer chokes on this project's f-strings), so a _("...") in Python would never reach messages.po and would silently show English in the German UI. The literals therefore live here, and the sidebar, the hub and the shelf headers all call these macros instead of spelling a label out again. Adding a kind means adding one branch to each macro plus its registry entry. #} {% macro kind_label(slug) -%} {%- if slug == 'video' -%}{{ _('Movies & Series') }} {%- elif slug == 'book' -%}{{ _('eBooks') }} {%- elif slug == 'manga' -%}{{ _('Manga') }} {%- elif slug == 'comic' -%}{{ _('Comics') }} {%- elif slug == 'music' -%}{{ _('Music') }} {%- else -%}{{ slug }}{%- endif -%} {%- endmacro %} {% macro kind_blurb(slug) -%} {%- if slug == 'video' -%}{{ _('Series, seasons and movies from every path assigned to this library.') }} {%- elif slug == 'book' -%}{{ _('EPUB, MOBI, AZW3 and PDF, grouped by title and read in the browser.') }} {%- elif slug == 'manga' -%}{{ _('Volumes, chapters and a reader built for page spreads.') }} {%- elif slug == 'comic' -%}{{ _('CBZ and CBR issues, sorted into series and runs.') }} {%- elif slug == 'music' -%}{{ _('Albums, artists and playlists — player included.') }} {%- endif -%} {%- endmacro %} {#- Icon bodies only (no wrapper), so each caller picks its own size and stroke width. All drawn on a 24x24 viewBox. -#} {% macro kind_icon(slug) -%} {%- if slug == 'video' -%} {%- elif slug == 'book' -%} {%- elif slug == 'manga' -%} {%- elif slug == 'comic' -%} {%- elif slug == 'music' -%} {%- endif -%} {%- endmacro %}