feat: sitemap settings singleton with content types and additional addresses

- one settings tile opening the golem15.sitemap.settings singleton
- Files tab (site address, file size, S1 files partial), Additional
  addresses repeater, Content types tab built from signpost at boot
- golem15_sitemap_types; a type switched off leaves the files (reason type)
- a save validates (errors.*) and dispatches a rebuild after commit
This commit is contained in:
Jakub Zych
2026-11-04 11:06:29 +01:00
parent 3359f1a196
commit 3ba70bb69f
20 changed files with 1304 additions and 337 deletions

View File

@@ -1,6 +1,6 @@
plugin:
name: Sitemap
description: Generate a sitemap.xml file for your website.
description: XML sitemaps per content type, with stable files, real lastmod and hreflang.
permissions:
access_settings: Access sitemap configuration settings
access_definitions: Access sitemap definitions page
@@ -41,29 +41,80 @@ errors:
url_scheme: Use a path such as /about, or a link that starts with http:// or https://.
url_pattern: Use a path that starts with a single /, for example /blog/:slug.
frontend_url: 'Use a full address that starts with http:// or https://, without spaces, quotes or the characters < > &. Leave it empty to keep the backend URL.'
file_size: Enter a whole number from 1 to 50 000.
slug: Use lowercase letters, digits and hyphens, e.g. posts.
slug_taken: Another content type already uses this file name.
html_path: Start the address with / and use a path only, e.g. /mapa-strony.
page_size: Enter a whole number from 50 to 500.
lastmod: 'Enter a date as YYYY-MM-DD, e.g. 2026-10-28, or leave it empty.'
definition:
not_found: No sitemap definition was found. Try creating one first.
title: Sitemap definition
view: View sitemap.xml
settings:
label: Sitemap settings
description: Frontend URL, locale and priority options.
label: Sitemaps
description: XML sitemaps per content type, images, News, IndexNow and the HTML sitemap.
category: CMS
frontend_url: Frontend URL
frontend_url_comment: The public URL of the frontend app (e.g. https://www.example.com). When set, sitemap URLs use this domain instead of the backend URL.
frontend_default_locale: Frontend Default Locale
frontend_default_locale_comment: The unprefixed locale on the frontend (e.g. pl for a prefix_except_default strategy). Other locales get a /{code}/ prefix in sitemap URLs.
updates_manifest_path: Updates Manifest Path
updates_manifest_path_comment: Absolute path to a JSON file mapping URL path => ISO 8601 last-modified date, produced by the frontend build. Used as the <lastmod> for URL items that have no date of their own (e.g. static pages). When empty or unreadable, those items omit <lastmod>. Dynamic sets keep their own dates.
enable_priority_tiers: Enable Priority Tiers
enable_priority_tiers_comment: When enabled, priorities are auto-assigned based on the URL path rules in the config, overriding per-item priorities. When disabled, per-item priorities are used.
priority_homepage: Homepage Priority
priority_homepage_comment: Used for URLs that match the homepage tier rules in the config. Default 1.0. Applies only when priority tiers are enabled.
priority_services: Services & Work Priority
priority_services_comment: Used for URLs that match the services tier rules in the config. Default 0.8. Applies only when priority tiers are enabled.
priority_blog: Blog Posts Priority
priority_blog_comment: Used for URLs that match the blog tier rules in the config. Default 0.6. Applies only when priority tiers are enabled.
priority_categories: Categories & Hub Pages Priority
priority_categories_comment: Used for URLs that match the categories tier rules in the config. Default 0.4. Applies only when priority tiers are enabled.
priority_legal: Legal Pages Priority
priority_legal_comment: Used for URLs that match the legal tier rules in the config. Default 0.2. Applies only when priority tiers are enabled.
tab_files: Files
tab_types: Content types
tab_extra: Additional addresses
tab_media: Images and News
tab_indexnow: IndexNow
tab_html: HTML sitemap
site_url: Site address
site_url_comment: The public address of the site, e.g. https://www.example.com. Every address in the sitemaps starts with it.
file_size: Addresses per file
file_size_comment: 1000 by default, at most 50 000. Smaller files are easier to monitor one by one in Google Search Console. A change renumbers every file.
type_include: Include this content type in the sitemaps.
type_slug: File name
type_slug_comment: Files are named sitemap-<name>-1.xml, sitemap-<name>-2.xml and so on.
type_title: Heading in the HTML sitemap
extra_urls: Additional addresses
extra_urls_add: Add address
extra_urls_comment: Addresses that no content type lists, e.g. the site's static pages. They go into the sitemap-pages files.
extra_url: Address
extra_url_lastmod: Last modified
extra_url_lastmod_comment: 'Optional, as YYYY-MM-DD, e.g. 2026-10-28.'
images_enabled: Image sitemap
images_enabled_comment: Lists the featured image and the images in the content of every listed page, in the sitemap-images files.
news_enabled: Google News sitemap
news_enabled_comment: Only for sites accepted in Google News. Lists articles published in the last two days.
news_publication: Publication name
news_publication_comment: 'As registered in Google News. Empty: the site name.'
news_sources: Types and categories
news_sources_comment: 'Articles of these types or categories go into the News sitemap. Empty: every article type.'
indexnow_enabled: IndexNow
indexnow_enabled_comment: Tells Bing, Yandex and other IndexNow engines about new, changed and deleted addresses right away. Google does not use IndexNow.
indexnow_new_key: Generate a new key on save
indexnow_new_key_comment: The old key file stops working at once. Use it only when the key leaked.
html_enabled: HTML sitemap
html_enabled_comment: A page for visitors that lists every indexable address, linked from the site footer.
html_path: Address
html_path_comment: The site's sitemap page uses this address. Change it in the site as well.
html_page_size: Links per page
html_page_size_comment: Larger groups are split into numbered pages. Default 150.
files:
label: Files
file: File
file_urls: Addresses
file_lastmod: Last modified
left_out: Left out of the sitemaps
left_out_reason: Reason
left_out_count: Addresses
reason_noindex: noindex
reason_canonical: Canonical URL points elsewhere
reason_redirect: Address redirects
reason_type: Content type turned off
index_note: Search engines read the index at :url, and robots.txt points to it. The files are rebuilt after content changes and every night; saving this form rebuilds them now.
empty: No files yet. They are built within a few minutes after the first save.
building: Rebuilding now. Reload the page in a minute.
indexnow:
key: 'Key: :key, served at :url'
no_key: A key is generated when you turn IndexNow on and save.
last: 'Last notification: :time, :count addresses, answer :status.'
never: No notification sent yet.
err_key: The engines could not read the key file at :url. Check that the site serves it.
err_host: The engines refused the addresses because they do not match the site address.
err_rate: 'Too many notifications; the next attempt is at :time.'
jobs:
rebuild: Rebuild the sitemaps

View File

@@ -1,6 +1,6 @@
plugin:
name: Mapa strony
description: Generuje plik sitemap.xml dla Twojej strony.
name: Mapy witryny
description: Mapy XML według typów treści, ze stałymi plikami, prawdziwym lastmod i hreflang.
permissions:
access_settings: Zarządzaj ustawieniami wtyczki
access_definitions: Zarządzaj definicją mapy strony
@@ -41,29 +41,80 @@ errors:
url_scheme: Podaj ścieżkę, np. /o-nas, albo link zaczynający się od http:// lub https://.
url_pattern: Podaj ścieżkę zaczynającą się od jednego /, np. /blog/:slug.
frontend_url: 'Podaj pełny adres zaczynający się od http:// lub https://, bez spacji, cudzysłowów i znaków < > &. Zostaw puste, aby zachować adres backendu.'
file_size: Wpisz liczbę całkowitą od 1 do 50 000.
slug: Użyj małych liter, cyfr i łączników, np. posts.
slug_taken: Inny typ treści już używa tej nazwy pliku.
html_path: Zacznij adres od / i użyj samej ścieżki, np. /mapa-strony.
page_size: Wpisz liczbę całkowitą od 50 do 500.
lastmod: 'Wpisz datę w formacie RRRR-MM-DD, np. 2026-10-28, albo zostaw puste.'
definition:
not_found: Nie znaleziono definicji mapy strony. Musisz ją utworzyć.
title: Definicja mapy strony
view: Zobacz sitemap.xml
settings:
label: Ustawienia mapy strony
description: Adres frontendu, język i priorytety.
label: Mapy witryny
description: Mapy XML według typów treści, obrazy, News, IndexNow i mapa HTML.
category: CMS
frontend_url: Adres URL frontendu
frontend_url_comment: Publiczny adres aplikacji frontendowej (np. https://www.example.com). Gdy jest ustawiony, adresy w mapie strony używają tej domeny zamiast adresu backendu.
frontend_default_locale: Domyślny język frontendu
frontend_default_locale_comment: Język bez prefiksu na frontendzie (np. pl przy strategii prefix_except_default). Pozostałe języki dostają w mapie strony prefiks /{kod}/.
updates_manifest_path: Ścieżka manifestu aktualizacji
updates_manifest_path_comment: Bezwzględna ścieżka do pliku JSON, który mapuje ścieżkę URL na datę ostatniej zmiany ISO 8601, tworzonego przez build frontendu. Służy jako <lastmod> dla pozycji URL bez własnej daty (np. stron statycznych). Gdy jest pusta lub plik jest nieczytelny, te pozycje nie mają <lastmod>. Zestawy dynamiczne zachowują własne daty.
enable_priority_tiers: Włącz poziomy priorytetów
enable_priority_tiers_comment: Po włączeniu priorytety są nadawane według reguł ścieżek URL z konfiguracji i zastępują priorytety pozycji. Po wyłączeniu używane są priorytety pozycji.
priority_homepage: Priorytet strony głównej
priority_homepage_comment: Dla adresów pasujących do reguł poziomu strony głównej z konfiguracji. Domyślnie 1.0. Działa tylko przy włączonych poziomach priorytetów.
priority_services: Priorytet usług i realizacji
priority_services_comment: Dla adresów pasujących do reguł poziomu usług z konfiguracji. Domyślnie 0.8. Działa tylko przy włączonych poziomach priorytetów.
priority_blog: Priorytet wpisów bloga
priority_blog_comment: Dla adresów pasujących do reguł poziomu bloga z konfiguracji. Domyślnie 0.6. Działa tylko przy włączonych poziomach priorytetów.
priority_categories: Priorytet kategorii i stron zbiorczych
priority_categories_comment: Dla adresów pasujących do reguł poziomu kategorii z konfiguracji. Domyślnie 0.4. Działa tylko przy włączonych poziomach priorytetów.
priority_legal: Priorytet stron prawnych
priority_legal_comment: Dla adresów pasujących do reguł poziomu stron prawnych z konfiguracji. Domyślnie 0.2. Działa tylko przy włączonych poziomach priorytetów.
tab_files: Pliki
tab_types: Typy treści
tab_extra: Dodatkowe adresy
tab_media: Obrazy i News
tab_indexnow: IndexNow
tab_html: Mapa HTML
site_url: Adres witryny
site_url_comment: Publiczny adres witryny, np. https://www.example.com. Od niego zaczyna się każdy adres w mapach.
file_size: Adresów w pliku
file_size_comment: Domyślnie 1000, najwyżej 50 000. Mniejsze pliki łatwiej monitorować pojedynczo w Google Search Console. Zmiana przenumerowuje wszystkie pliki.
type_include: Uwzględniaj ten typ treści w mapach witryny.
type_slug: Nazwa pliku
type_slug_comment: Pliki nazywają się sitemap-<nazwa>-1.xml, sitemap-<nazwa>-2.xml i tak dalej.
type_title: Nagłówek grupy w mapie HTML
extra_urls: Dodatkowe adresy
extra_urls_add: Dodaj adres
extra_urls_comment: Adresy, których nie podaje żaden typ treści, np. statyczne strony witryny. Trafiają do plików sitemap-pages.
extra_url: Adres
extra_url_lastmod: Ostatnia zmiana
extra_url_lastmod_comment: 'Opcjonalnie, w formacie RRRR-MM-DD, np. 2026-10-28.'
images_enabled: Mapa obrazów
images_enabled_comment: Wypisuje obraz wyróżniający i obrazy w treści każdej podanej strony, w plikach sitemap-images.
news_enabled: Mapa Google News
news_enabled_comment: Tylko dla witryn przyjętych do Google News. Wypisuje artykuły opublikowane w ciągu ostatnich dwóch dni.
news_publication: Nazwa publikacji
news_publication_comment: 'Tak jak w Google News. Puste: nazwa witryny.'
news_sources: Typy i kategorie
news_sources_comment: 'Artykuły tych typów lub kategorii trafiają do mapy News. Puste: każdy typ artykułów.'
indexnow_enabled: IndexNow
indexnow_enabled_comment: Od razu informuje Bing, Yandex i inne wyszukiwarki IndexNow o nowych, zmienionych i usuniętych adresach. Google nie korzysta z IndexNow.
indexnow_new_key: Wygeneruj nowy klucz przy zapisie
indexnow_new_key_comment: Stary plik klucza od razu przestaje działać. Używaj tylko, gdy klucz wyciekł.
html_enabled: Mapa witryny HTML
html_enabled_comment: Strona dla odwiedzających z listą wszystkich indeksowalnych adresów, linkowana ze stopki witryny.
html_path: Adres
html_path_comment: Strona mapy witryny używa tego adresu. Zmień go także w witrynie.
html_page_size: Linków na stronie
html_page_size_comment: Większe grupy są dzielone na numerowane strony. Domyślnie 150.
files:
label: Pliki
file: Plik
file_urls: Adresy
file_lastmod: Ostatnia zmiana
left_out: Pominięte w mapach witryny
left_out_reason: Powód
left_out_count: Adresy
reason_noindex: noindex
reason_canonical: Adres kanoniczny wskazuje inny adres
reason_redirect: Adres przekierowuje
reason_type: Wyłączony typ treści
index_note: Wyszukiwarki czytają indeks pod :url, a robots.txt go wskazuje. Pliki są odbudowywane po zmianach treści i co noc; zapisanie tego formularza odbudowuje je od razu.
empty: Nie ma jeszcze plików. Powstaną w ciągu kilku minut po pierwszym zapisie.
building: Trwa odbudowa. Odśwież stronę za minutę.
indexnow:
key: 'Klucz: :key, udostępniany pod :url'
no_key: Klucz zostanie wygenerowany po włączeniu IndexNow i zapisie.
last: 'Ostatnie powiadomienie: :time, adresy: :count, odpowiedź :status.'
never: Nie wysłano jeszcze powiadomienia.
err_key: Wyszukiwarki nie mogły odczytać pliku klucza pod :url. Sprawdź, czy witryna go udostępnia.
err_host: Wyszukiwarki odrzuciły adresy, bo nie pasują do adresu witryny.
err_rate: 'Zbyt wiele powiadomień; następna próba: :time.'
jobs:
rebuild: Odbudowa map witryny