feat: publisher, local business and home crumb settings

- Publisher and Local business tabs with the C20 refusals (sameAs lines,
  person as local business, address, times, country, coordinates)
- the publisher node from the settings, as an Organization, a Person or
  the chosen local business type with address, geo and opening hours
- P8 publisher preview with Google's required and recommended findings
  (classes/schema Validate)
- the home crumb name on the General tab; every new key in the settings
  API and seo_update_settings
This commit is contained in:
Jakub Zych
2026-11-04 14:14:59 +01:00
parent ea2ce24954
commit fde5024b5a
13 changed files with 938 additions and 52 deletions

View File

@@ -149,6 +149,73 @@ settings:
verify_filename_taken: Another verification file already uses this name.
template_unknown: Unknown placeholder “:placeholder”. Use one from the table below the templates.
breadcrumb_home_default: "Home"
tab_publisher: "Publisher"
tab_local: "Local business"
breadcrumb_home: "Home page name in breadcrumbs"
breadcrumb_home_comment: "The first item of every breadcrumb trail, also in the BreadcrumbList structured data."
publisher_type: "Publisher type"
publisher_org: "Organisation"
publisher_person: "Person (personal site)"
publisher_type_comment: "Who publishes the site, in the structured data of every page."
publisher_name: "Name"
publisher_name_comment: "Empty: the site name."
publisher_logo: "Logo or photo"
publisher_logo_comment: "Organisation: the logo, at least 112 × 112 px. Person: a photo."
publisher_url: "Website"
publisher_url_comment: "Empty: the site address."
publisher_same_as: "Profiles elsewhere (sameAs)"
publisher_same_as_comment: "One address per line: social profiles, Wikipedia, the company register entry."
same_as_invalid: "Line :line: use a full address starting with https://."
url_invalid: "Use a full address starting with https://."
email_invalid: "Enter an email address such as office@example.com."
publisher_email: "Contact email"
publisher_phone: "Phone"
publisher_phone_comment: "With the country code, e.g. +48 600 000 000."
publisher_preview: "Generated publisher data"
local_enabled: "Publish as a local business"
local_enabled_comment: "For a business with an address that customers visit, or with a service area. Not available for a person."
local_type: "Kind of business"
local_type_local_business: "Local business (general)"
local_type_professional_service: "Professional services"
local_type_store: "Shop"
local_type_food_establishment: "Restaurant or café"
local_type_health_and_beauty_business: "Health and beauty"
local_type_medical_business: "Medical practice"
local_type_legal_service: "Legal services"
local_type_home_and_construction_business: "Home and construction"
local_type_automotive_business: "Automotive"
local_type_financial_service: "Financial services"
local_price_range: "Price range"
local_price_range_comment: "e.g. 50–200 zł or $$."
local_street: "Street and number"
local_postal_code: "Postal code"
local_city: "City"
local_region: "Region"
local_country: "Country code"
local_country_comment: "Two letters, e.g. PL."
local_latitude: "Latitude"
local_longitude: "Longitude"
local_coordinates_comment: "Decimal degrees, e.g. 52.2297."
local_hours: "Opening hours"
local_hours_add: "Add opening hours"
local_hours_comment: "Add two rows for one day to split it, e.g. 9:00–13:00 and 14:00–18:00. A day without rows is closed."
hours_day: "Day"
hours_opens: "Opens"
hours_closes: "Closes"
day_mon: "Monday"
day_tue: "Tuesday"
day_wed: "Wednesday"
day_thu: "Thursday"
day_fri: "Friday"
day_sat: "Saturday"
day_sun: "Sunday"
hours_time_comment: "24-hour time, e.g. 09:00."
local_person: "A person cannot be a local business. Change the publisher type to Organisation, or turn this off."
local_address_required: "A local business needs a street, a postal code and a city."
time_invalid: "Use 24-hour time, e.g. 09:00."
hours_order: "Closing must come after opening."
country_invalid: "Use a two-letter country code, e.g. PL."
coordinate_invalid: "Enter decimal degrees: latitude from -90 to 90, longitude from -180 to 180."
rules:
new: New URL rule
list_title: URL rules
@@ -410,3 +477,9 @@ pages:
one: "Delete :count page from the registry? Its SEO tab is deleted with it."
other: "Delete :count pages from the registry? Their SEO tabs are deleted with them."
home_title: Home
graph:
action: "Check structured data"
required: "Missing required property “:property” (:type)"
recommended: "Missing recommended property “:property” (:type)"
no_rules: ":type has no rich-result rules at Google; it is checked as valid schema.org only."
all_good: "No problems: every node has its required and recommended properties."

View File

@@ -151,6 +151,73 @@ settings:
verify_filename_taken: Ten plik weryfikacyjny już istnieje.
template_unknown: Nieznany znacznik „:placeholder”. Użyj jednego z tabeli pod szablonami.
breadcrumb_home_default: "Strona główna"
tab_publisher: "Wydawca"
tab_local: "Firma lokalna"
breadcrumb_home: "Nazwa strony głównej w ścieżce nawigacji"
breadcrumb_home_comment: "Pierwszy element każdej ścieżki nawigacji, także w danych strukturalnych BreadcrumbList."
publisher_type: "Typ wydawcy"
publisher_org: "Organizacja"
publisher_person: "Osoba (strona prywatna)"
publisher_type_comment: "Kto wydaje witrynę, w danych strukturalnych każdej strony."
publisher_name: "Nazwa"
publisher_name_comment: "Puste: nazwa witryny."
publisher_logo: "Logo lub zdjęcie"
publisher_logo_comment: "Organizacja: logo, co najmniej 112 × 112 px. Osoba: zdjęcie."
publisher_url: "Strona internetowa"
publisher_url_comment: "Puste: adres witryny."
publisher_same_as: "Profile w innych serwisach (sameAs)"
publisher_same_as_comment: "Jeden adres w wierszu: profile społecznościowe, Wikipedia, wpis w KRS lub CEIDG."
same_as_invalid: "Wiersz :line: wpisz pełny adres zaczynający się od https://."
url_invalid: "Wpisz pełny adres zaczynający się od https://."
email_invalid: "Wpisz adres e-mail, np. biuro@example.com."
publisher_email: "E-mail kontaktowy"
publisher_phone: "Telefon"
publisher_phone_comment: "Z numerem kierunkowym kraju, np. +48 600 000 000."
publisher_preview: "Wygenerowane dane wydawcy"
local_enabled: "Publikuj jako firmę lokalną"
local_enabled_comment: "Dla firmy z adresem, który odwiedzają klienci, lub z obszarem obsługi. Niedostępne dla osoby."
local_type: "Rodzaj działalności"
local_type_local_business: "Firma lokalna (ogólnie)"
local_type_professional_service: "Usługi profesjonalne"
local_type_store: "Sklep"
local_type_food_establishment: "Restauracja lub kawiarnia"
local_type_health_and_beauty_business: "Zdrowie i uroda"
local_type_medical_business: "Praktyka medyczna"
local_type_legal_service: "Usługi prawne"
local_type_home_and_construction_business: "Dom i budownictwo"
local_type_automotive_business: "Motoryzacja"
local_type_financial_service: "Usługi finansowe"
local_price_range: "Przedział cen"
local_price_range_comment: "np. 50–200 zł lub $$."
local_street: "Ulica i numer"
local_postal_code: "Kod pocztowy"
local_city: "Miejscowość"
local_region: "Województwo lub region"
local_country: "Kod kraju"
local_country_comment: "Dwie litery, np. PL."
local_latitude: "Szerokość geograficzna"
local_longitude: "Długość geograficzna"
local_coordinates_comment: "Stopnie dziesiętne, np. 52.2297."
local_hours: "Godziny otwarcia"
local_hours_add: "Dodaj godziny otwarcia"
local_hours_comment: "Dodaj dwa wiersze dla jednego dnia, aby go podzielić, np. 9:00–13:00 i 14:00–18:00. Dzień bez wierszy jest nieczynny."
hours_day: "Dzień"
hours_opens: "Otwarcie"
hours_closes: "Zamknięcie"
day_mon: "Poniedziałek"
day_tue: "Wtorek"
day_wed: "Środa"
day_thu: "Czwartek"
day_fri: "Piątek"
day_sat: "Sobota"
day_sun: "Niedziela"
hours_time_comment: "Format 24-godzinny, np. 09:00."
local_person: "Osoba nie może być firmą lokalną. Zmień typ wydawcy na Organizacja lub wyłącz tę opcję."
local_address_required: "Firma lokalna wymaga ulicy, kodu pocztowego i miejscowości."
time_invalid: "Użyj formatu 24-godzinnego, np. 09:00."
hours_order: "Godzina zamknięcia musi być późniejsza niż otwarcia."
country_invalid: "Użyj dwuliterowego kodu kraju, np. PL."
coordinate_invalid: "Wpisz stopnie dziesiętne: szerokość od -90 do 90, długość od -180 do 180."
rules:
new: Nowa reguła adresu
list_title: Reguły adresów
@@ -424,3 +491,9 @@ pages:
many: "Usunąć :count stron z rejestru? Ich zakładki SEO zostaną usunięte."
other: "Usunąć :count strony z rejestru? Ich zakładki SEO zostaną usunięte."
home_title: Strona główna
graph:
action: "Sprawdź dane strukturalne"
required: "Brak wymaganej właściwości „:property” (:type)"
recommended: "Brak zalecanej właściwości „:property” (:type)"
no_rules: ":type nie ma reguł wyników z elementami rozszerzonymi w Google; sprawdzana jest tylko poprawność schema.org."
all_good: "Brak problemów: każdy węzeł ma wymagane i zalecane właściwości."