/** * The built-in UI copy for the blog and docs components (search placeholder, "load more", * "min read", the docs feedback widget, ...), translated into the EU's 24 official languages. * * The i18n engine is `@daanvandenbergh/i18nkit`: {@link ui} is a fixed {@link I18n} instance over * those 24 languages, {@link CATALOG} is authored through its `defineTextCatalog` (so a missing * translation is a compile error, by construction), and {@link blogLabels}/{@link docsLabels} * resolve the copy for a given language via a bound translator. The catalog covers every language * so the components can render their copy in whatever language a consumer's blog is published in; * each label also stays overridable via the components' label props. * * This file is deliberately free of any `react`, `next/*`, or `server-only` import (i18nkit's core * is framework-free) so it can be pulled into both the server components (`BlogPage`, * `BlogOverview`, `DocsPage`) and the client ones (`BlogOverviewGrid`, the docs search/sidebar). */ import { I18n } from "@daanvandenbergh/i18nkit"; /** * The fixed i18n instance backing the components' built-in copy: the EU's 24 official languages, * keyed by their primary BCP 47 subtag, with `en` as the fallback. Adding a code here turns every * {@link CATALOG} entry still missing that language into a compile error. The `label` endonyms are * carried because i18nkit requires one per locale; the components never render a picker from this * instance, so they are not otherwise used. */ export declare const ui: I18n<"fr" | "en" | "de" | "es" | "it" | "pt" | "nl" | "pl" | "ro" | "el" | "sv" | "da" | "fi" | "cs" | "sk" | "hu" | "bg" | "hr" | "sl" | "et" | "lv" | "lt" | "ga" | "mt">; /** * A language {@link CATALOG} carries copy for, i.e. one of {@link ui}'s locale codes. Add a locale * to `ui` to introduce a language; TypeScript then flags every catalog entry that lacks it. */ export type Language = keyof typeof ui.locales; /** * Narrow a blog's free-form `lang` (a `LocaleConfig.code` such as `"fr"` or `"pt-BR"`) to a * {@link Language}, matching on the primary subtag so regional variants resolve to their base * language. Falls back to `ui.default` (`"en"`) when the value is missing or unsupported. * * @param raw - the blog's language code, or undefined. * @returns a guaranteed-valid {@link Language}. */ export declare function resolveLanguage(raw: string | undefined): Language; /** * Every piece of built-in UI copy the blog and docs components render, translated into all of * {@link ui}'s languages. Authored through {@link ui}'s `defineTextCatalog`, which forces full * per-language coverage (a missing translation is a compile error) while preserving each entry's * literal type - so a bound translator can infer each parameterized entry's arguments. `back` * keeps the universally-understood word "Blog". */ export declare const CATALOG: { readonly empty: { readonly en: "No posts yet - check back soon."; readonly fr: "Aucun article pour le moment - revenez bientôt."; readonly de: "Noch keine Beiträge - schauen Sie bald wieder vorbei."; readonly es: "Aún no hay publicaciones - vuelve pronto."; readonly it: "Ancora nessun articolo - torna presto."; readonly pt: "Ainda não há artigos - volte em breve."; readonly nl: "Nog geen berichten - kom binnenkort terug."; readonly pl: "Nie ma jeszcze wpisów - zajrzyj wkrótce."; readonly ro: "Încă nu există articole - reveniți în curând."; readonly el: "Δεν υπάρχουν ακόμη αναρτήσεις - ελάτε ξανά σύντομα."; readonly sv: "Inga inlägg ännu - kom tillbaka snart."; readonly da: "Ingen indlæg endnu - kig forbi snart."; readonly fi: "Ei vielä julkaisuja - palaa pian."; readonly cs: "Zatím žádné příspěvky - podívejte se brzy znovu."; readonly sk: "Zatiaľ žiadne príspevky - pozrite sa čoskoro znova."; readonly hu: "Még nincsenek bejegyzések - nézzen vissza hamarosan."; readonly bg: "Все още няма публикации - върнете се скоро."; readonly hr: "Još nema objava - vratite se uskoro."; readonly sl: "Še ni objav - vrnite se kmalu."; readonly et: "Postitusi veel pole - vaadake varsti uuesti."; readonly lv: "Vēl nav ierakstu - apmeklējiet vēlreiz drīzumā."; readonly lt: "Kol kas įrašų nėra - užsukite netrukus."; readonly ga: "Níl aon phost fós - seiceáil ar ais go luath."; readonly mt: "Għad m'hemm l-ebda post - erġa' ċċekkja dalwaqt."; }; readonly readMore: { readonly en: "Read more →"; readonly fr: "Lire la suite →"; readonly de: "Weiterlesen →"; readonly es: "Leer más →"; readonly it: "Leggi di più →"; readonly pt: "Ler mais →"; readonly nl: "Lees meer →"; readonly pl: "Czytaj więcej →"; readonly ro: "Citește mai mult →"; readonly el: "Διαβάστε περισσότερα →"; readonly sv: "Läs mer →"; readonly da: "Læs mere →"; readonly fi: "Lue lisää →"; readonly cs: "Číst více →"; readonly sk: "Čítať viac →"; readonly hu: "Tovább →"; readonly bg: "Прочетете повече →"; readonly hr: "Pročitaj više →"; readonly sl: "Preberi več →"; readonly et: "Loe edasi →"; readonly lv: "Lasīt vairāk →"; readonly lt: "Skaityti daugiau →"; readonly ga: "Léigh tuilleadh →"; readonly mt: "Aqra aktar →"; }; readonly searchPlaceholder: { readonly en: "Search posts…"; readonly fr: "Rechercher des articles…"; readonly de: "Beiträge suchen…"; readonly es: "Buscar publicaciones…"; readonly it: "Cerca articoli…"; readonly pt: "Pesquisar artigos…"; readonly nl: "Berichten zoeken…"; readonly pl: "Szukaj wpisów…"; readonly ro: "Caută articole…"; readonly el: "Αναζήτηση αναρτήσεων…"; readonly sv: "Sök inlägg…"; readonly da: "Søg indlæg…"; readonly fi: "Hae julkaisuja…"; readonly cs: "Hledat příspěvky…"; readonly sk: "Hľadať príspevky…"; readonly hu: "Bejegyzések keresése…"; readonly bg: "Търсене на публикации…"; readonly hr: "Pretraži objave…"; readonly sl: "Iskanje objav…"; readonly et: "Otsi postitusi…"; readonly lv: "Meklēt ierakstus…"; readonly lt: "Ieškoti įrašų…"; readonly ga: "Cuardaigh postálacha…"; readonly mt: "Fittex il-posts…"; }; readonly loadMore: { readonly en: "Load more"; readonly fr: "Charger plus"; readonly de: "Mehr laden"; readonly es: "Cargar más"; readonly it: "Carica altro"; readonly pt: "Carregar mais"; readonly nl: "Meer laden"; readonly pl: "Załaduj więcej"; readonly ro: "Încarcă mai mult"; readonly el: "Φόρτωση περισσότερων"; readonly sv: "Ladda fler"; readonly da: "Indlæs flere"; readonly fi: "Lataa lisää"; readonly cs: "Načíst více"; readonly sk: "Načítať viac"; readonly hu: "Több betöltése"; readonly bg: "Зареди още"; readonly hr: "Učitaj više"; readonly sl: "Naloži več"; readonly et: "Laadi rohkem"; readonly lv: "Ielādēt vairāk"; readonly lt: "Įkelti daugiau"; readonly ga: "Lódáil tuilleadh"; readonly mt: "Għabbi aktar"; }; readonly allCategories: { readonly en: "All"; readonly fr: "Tous"; readonly de: "Alle"; readonly es: "Todos"; readonly it: "Tutti"; readonly pt: "Todos"; readonly nl: "Alle"; readonly pl: "Wszystkie"; readonly ro: "Toate"; readonly el: "Όλα"; readonly sv: "Alla"; readonly da: "Alle"; readonly fi: "Kaikki"; readonly cs: "Vše"; readonly sk: "Všetko"; readonly hu: "Összes"; readonly bg: "Всички"; readonly hr: "Sve"; readonly sl: "Vse"; readonly et: "Kõik"; readonly lv: "Visi"; readonly lt: "Visi"; readonly ga: "Gach"; readonly mt: "Kollha"; }; readonly back: import("@daanvandenbergh/i18nkit").LanguageText<"fr" | "en" | "de" | "es" | "it" | "pt" | "nl" | "pl" | "ro" | "el" | "sv" | "da" | "fi" | "cs" | "sk" | "hu" | "bg" | "hr" | "sl" | "et" | "lv" | "lt" | "ga" | "mt">; readonly onThisPage: { readonly en: "On this page"; readonly fr: "Sur cette page"; readonly de: "Auf dieser Seite"; readonly es: "En esta página"; readonly it: "In questa pagina"; readonly pt: "Nesta página"; readonly nl: "Op deze pagina"; readonly pl: "Na tej stronie"; readonly ro: "Pe această pagină"; readonly el: "Σε αυτή τη σελίδα"; readonly sv: "På den här sidan"; readonly da: "På denne side"; readonly fi: "Tällä sivulla"; readonly cs: "Na této stránce"; readonly sk: "Na tejto stránke"; readonly hu: "Ezen az oldalon"; readonly bg: "На тази страница"; readonly hr: "Na ovoj stranici"; readonly sl: "Na tej strani"; readonly et: "Sellel lehel"; readonly lv: "Šajā lapā"; readonly lt: "Šiame puslapyje"; readonly ga: "Ar an leathanach seo"; readonly mt: "F'din il-paġna"; }; readonly similarPages: { readonly en: "Similar pages"; readonly fr: "Pages similaires"; readonly de: "Ähnliche Seiten"; readonly es: "Páginas similares"; readonly it: "Pagine simili"; readonly pt: "Páginas semelhantes"; readonly nl: "Vergelijkbare pagina's"; readonly pl: "Podobne strony"; readonly ro: "Pagini similare"; readonly el: "Παρόμοιες σελίδες"; readonly sv: "Liknande sidor"; readonly da: "Lignende sider"; readonly fi: "Samankaltaisia sivuja"; readonly cs: "Podobné stránky"; readonly sk: "Podobné stránky"; readonly hu: "Hasonló oldalak"; readonly bg: "Подобни страници"; readonly hr: "Slične stranice"; readonly sl: "Podobne strani"; readonly et: "Sarnased lehed"; readonly lv: "Līdzīgas lapas"; readonly lt: "Panašūs puslapiai"; readonly ga: "Leathanaigh chosúla"; readonly mt: "Paġni simili"; }; readonly filterByCategory: { readonly en: "Filter by category"; readonly fr: "Filtrer par catégorie"; readonly de: "Nach Kategorie filtern"; readonly es: "Filtrar por categoría"; readonly it: "Filtra per categoria"; readonly pt: "Filtrar por categoria"; readonly nl: "Filteren op categorie"; readonly pl: "Filtruj według kategorii"; readonly ro: "Filtrează după categorie"; readonly el: "Φιλτράρισμα ανά κατηγορία"; readonly sv: "Filtrera efter kategori"; readonly da: "Filtrer efter kategori"; readonly fi: "Suodata luokan mukaan"; readonly cs: "Filtrovat podle kategorie"; readonly sk: "Filtrovať podľa kategórie"; readonly hu: "Szűrés kategória szerint"; readonly bg: "Филтриране по категория"; readonly hr: "Filtriraj po kategoriji"; readonly sl: "Filtriraj po kategoriji"; readonly et: "Filtreeri kategooria järgi"; readonly lv: "Filtrēt pēc kategorijas"; readonly lt: "Filtruoti pagal kategoriją"; readonly ga: "Scag de réir catagóire"; readonly mt: "Iffiltra skont il-kategorija"; }; readonly writtenBy: { readonly en: "Written by"; readonly fr: "Écrit par"; readonly de: "Geschrieben von"; readonly es: "Escrito por"; readonly it: "Scritto da"; readonly pt: "Escrito por"; readonly nl: "Geschreven door"; readonly pl: "Napisane przez"; readonly ro: "Scris de"; readonly el: "Γράφτηκε από"; readonly sv: "Skriven av"; readonly da: "Skrevet af"; readonly fi: "Kirjoittanut"; readonly cs: "Autor"; readonly sk: "Autor"; readonly hu: "Írta"; readonly bg: "Написано от"; readonly hr: "Autor"; readonly sl: "Avtor"; readonly et: "Kirjutanud"; readonly lv: "Autors"; readonly lt: "Parašė"; readonly ga: "Scríofa ag"; readonly mt: "Miktub minn"; }; readonly publishedOn: { readonly en: (d: string) => string; readonly fr: (d: string) => string; readonly de: (d: string) => string; readonly es: (d: string) => string; readonly it: (d: string) => string; readonly pt: (d: string) => string; readonly nl: (d: string) => string; readonly pl: (d: string) => string; readonly ro: (d: string) => string; readonly el: (d: string) => string; readonly sv: (d: string) => string; readonly da: (d: string) => string; readonly fi: (d: string) => string; readonly cs: (d: string) => string; readonly sk: (d: string) => string; readonly hu: (d: string) => string; readonly bg: (d: string) => string; readonly hr: (d: string) => string; readonly sl: (d: string) => string; readonly et: (d: string) => string; readonly lv: (d: string) => string; readonly lt: (d: string) => string; readonly ga: (d: string) => string; readonly mt: (d: string) => string; }; readonly readingTime: { readonly en: (m: number) => string; readonly fr: (m: number) => string; readonly de: (m: number) => string; readonly es: (m: number) => string; readonly it: (m: number) => string; readonly pt: (m: number) => string; readonly nl: (m: number) => string; readonly pl: (m: number) => string; readonly ro: (m: number) => string; readonly el: (m: number) => string; readonly sv: (m: number) => string; readonly da: (m: number) => string; readonly fi: (m: number) => string; readonly cs: (m: number) => string; readonly sk: (m: number) => string; readonly hu: (m: number) => string; readonly bg: (m: number) => string; readonly hr: (m: number) => string; readonly sl: (m: number) => string; readonly et: (m: number) => string; readonly lv: (m: number) => string; readonly lt: (m: number) => string; readonly ga: (m: number) => string; readonly mt: (m: number) => string; }; readonly docsPrevious: { readonly en: "Previous"; readonly fr: "Précédent"; readonly de: "Vorherige"; readonly es: "Anterior"; readonly it: "Precedente"; readonly pt: "Anterior"; readonly nl: "Vorige"; readonly pl: "Poprzednia"; readonly ro: "Anterior"; readonly el: "Προηγούμενο"; readonly sv: "Föregående"; readonly da: "Forrige"; readonly fi: "Edellinen"; readonly cs: "Předchozí"; readonly sk: "Predchádzajúca"; readonly hu: "Előző"; readonly bg: "Предишна"; readonly hr: "Prethodna"; readonly sl: "Prejšnja"; readonly et: "Eelmine"; readonly lv: "Iepriekšējā"; readonly lt: "Ankstesnis"; readonly ga: "Roimhe seo"; readonly mt: "Preċedenti"; }; readonly docsNext: { readonly en: "Next"; readonly fr: "Suivant"; readonly de: "Weiter"; readonly es: "Siguiente"; readonly it: "Successivo"; readonly pt: "Próximo"; readonly nl: "Volgende"; readonly pl: "Następna"; readonly ro: "Următor"; readonly el: "Επόμενο"; readonly sv: "Nästa"; readonly da: "Næste"; readonly fi: "Seuraava"; readonly cs: "Další"; readonly sk: "Ďalšia"; readonly hu: "Következő"; readonly bg: "Следваща"; readonly hr: "Sljedeća"; readonly sl: "Naslednja"; readonly et: "Järgmine"; readonly lv: "Nākamā"; readonly lt: "Kitas"; readonly ga: "Ar aghaidh"; readonly mt: "Li jmiss"; }; readonly docsFeedbackQuestion: { readonly en: "Was this page helpful?"; readonly fr: "Cette page vous a-t-elle été utile ?"; readonly de: "War diese Seite hilfreich?"; readonly es: "¿Te resultó útil esta página?"; readonly it: "Questa pagina è stata utile?"; readonly pt: "Esta página foi útil?"; readonly nl: "Was deze pagina nuttig?"; readonly pl: "Czy ta strona była pomocna?"; readonly ro: "Această pagină v-a fost utilă?"; readonly el: "Ήταν χρήσιμη αυτή η σελίδα;"; readonly sv: "Var den här sidan till hjälp?"; readonly da: "Var denne side nyttig?"; readonly fi: "Oliko tästä sivusta apua?"; readonly cs: "Byla tato stránka užitečná?"; readonly sk: "Bola táto stránka užitočná?"; readonly hu: "Hasznos volt ez az oldal?"; readonly bg: "Полезна ли беше тази страница?"; readonly hr: "Je li ova stranica bila korisna?"; readonly sl: "Je bila ta stran koristna?"; readonly et: "Kas see leht oli abiks?"; readonly lv: "Vai šī lapa bija noderīga?"; readonly lt: "Ar šis puslapis buvo naudingas?"; readonly ga: "An raibh an leathanach seo cabhrach?"; readonly mt: "Din il-paġna kienet ta' għajnuna?"; }; readonly docsFeedbackYes: { readonly en: "Yes"; readonly fr: "Oui"; readonly de: "Ja"; readonly es: "Sí"; readonly it: "Sì"; readonly pt: "Sim"; readonly nl: "Ja"; readonly pl: "Tak"; readonly ro: "Da"; readonly el: "Ναι"; readonly sv: "Ja"; readonly da: "Ja"; readonly fi: "Kyllä"; readonly cs: "Ano"; readonly sk: "Áno"; readonly hu: "Igen"; readonly bg: "Да"; readonly hr: "Da"; readonly sl: "Da"; readonly et: "Jah"; readonly lv: "Jā"; readonly lt: "Taip"; readonly ga: "Tá"; readonly mt: "Iva"; }; readonly docsFeedbackNo: { readonly en: "No"; readonly fr: "Non"; readonly de: "Nein"; readonly es: "No"; readonly it: "No"; readonly pt: "Não"; readonly nl: "Nee"; readonly pl: "Nie"; readonly ro: "Nu"; readonly el: "Όχι"; readonly sv: "Nej"; readonly da: "Nej"; readonly fi: "Ei"; readonly cs: "Ne"; readonly sk: "Nie"; readonly hu: "Nem"; readonly bg: "Не"; readonly hr: "Ne"; readonly sl: "Ne"; readonly et: "Ei"; readonly lv: "Nē"; readonly lt: "Ne"; readonly ga: "Níl"; readonly mt: "Le"; }; readonly docsFeedbackThanks: { readonly en: "Thanks for the feedback!"; readonly fr: "Merci pour votre retour !"; readonly de: "Danke für Ihr Feedback!"; readonly es: "¡Gracias por tu comentario!"; readonly it: "Grazie per il feedback!"; readonly pt: "Obrigado pelo feedback!"; readonly nl: "Bedankt voor je feedback!"; readonly pl: "Dziękujemy za opinię!"; readonly ro: "Mulțumim pentru feedback!"; readonly el: "Ευχαριστούμε για τα σχόλια!"; readonly sv: "Tack för din feedback!"; readonly da: "Tak for din feedback!"; readonly fi: "Kiitos palautteesta!"; readonly cs: "Děkujeme za zpětnou vazbu!"; readonly sk: "Ďakujeme za spätnú väzbu!"; readonly hu: "Köszönjük a visszajelzést!"; readonly bg: "Благодарим за обратната връзка!"; readonly hr: "Hvala na povratnim informacijama!"; readonly sl: "Hvala za povratne informacije!"; readonly et: "Täname tagasiside eest!"; readonly lv: "Paldies par atsauksmi!"; readonly lt: "Ačiū už atsiliepimą!"; readonly ga: "Go raibh maith agat as an aiseolas!"; readonly mt: "Grazzi tal-feedback!"; }; readonly docsSearchPlaceholder: { readonly en: "Search docs…"; readonly fr: "Rechercher dans la doc…"; readonly de: "Dokumentation durchsuchen…"; readonly es: "Buscar en la documentación…"; readonly it: "Cerca nella documentazione…"; readonly pt: "Pesquisar na documentação…"; readonly nl: "Zoek in de documentatie…"; readonly pl: "Szukaj w dokumentacji…"; readonly ro: "Caută în documentație…"; readonly el: "Αναζήτηση στην τεκμηρίωση…"; readonly sv: "Sök i dokumentationen…"; readonly da: "Søg i dokumentationen…"; readonly fi: "Hae dokumentaatiosta…"; readonly cs: "Hledat v dokumentaci…"; readonly sk: "Hľadať v dokumentácii…"; readonly hu: "Keresés a dokumentációban…"; readonly bg: "Търсене в документацията…"; readonly hr: "Pretraži dokumentaciju…"; readonly sl: "Iskanje po dokumentaciji…"; readonly et: "Otsi dokumentatsioonist…"; readonly lv: "Meklēt dokumentācijā…"; readonly lt: "Ieškoti dokumentacijoje…"; readonly ga: "Cuardaigh na doiciméid…"; readonly mt: "Fittex fid-dokumentazzjoni…"; }; readonly docsSearchEmpty: { readonly en: "No results"; readonly fr: "Aucun résultat"; readonly de: "Keine Ergebnisse"; readonly es: "Sin resultados"; readonly it: "Nessun risultato"; readonly pt: "Sem resultados"; readonly nl: "Geen resultaten"; readonly pl: "Brak wyników"; readonly ro: "Niciun rezultat"; readonly el: "Κανένα αποτέλεσμα"; readonly sv: "Inga resultat"; readonly da: "Ingen resultater"; readonly fi: "Ei tuloksia"; readonly cs: "Žádné výsledky"; readonly sk: "Žiadne výsledky"; readonly hu: "Nincs találat"; readonly bg: "Няма резултати"; readonly hr: "Nema rezultata"; readonly sl: "Ni rezultatov"; readonly et: "Tulemusi pole"; readonly lv: "Nav rezultātu"; readonly lt: "Nėra rezultatų"; readonly ga: "Gan torthaí"; readonly mt: "L-ebda riżultat"; }; readonly docsBrowseByTopic: { readonly en: "Browse by topic"; readonly fr: "Parcourir par thème"; readonly de: "Nach Thema stöbern"; readonly es: "Explorar por tema"; readonly it: "Sfoglia per argomento"; readonly pt: "Navegar por tema"; readonly nl: "Bladeren op onderwerp"; readonly pl: "Przeglądaj według tematu"; readonly ro: "Răsfoiți după subiect"; readonly el: "Περιήγηση ανά θέμα"; readonly sv: "Bläddra efter ämne"; readonly da: "Gennemse efter emne"; readonly fi: "Selaa aiheittain"; readonly cs: "Procházet podle tématu"; readonly sk: "Prehľadávať podľa témy"; readonly hu: "Böngészés téma szerint"; readonly bg: "Преглед по тема"; readonly hr: "Pregledaj po temi"; readonly sl: "Prebrskaj po temi"; readonly et: "Sirvi teemade kaupa"; readonly lv: "Pārlūkot pēc tēmas"; readonly lt: "Naršyti pagal temą"; readonly ga: "Brabhsáil de réir ábhair"; readonly mt: "Fittex skont is-suġġett"; }; readonly docsRecentlyUpdated: { readonly en: "Recently updated"; readonly fr: "Mis à jour récemment"; readonly de: "Kürzlich aktualisiert"; readonly es: "Actualizado recientemente"; readonly it: "Aggiornati di recente"; readonly pt: "Atualizado recentemente"; readonly nl: "Onlangs bijgewerkt"; readonly pl: "Ostatnio zaktualizowane"; readonly ro: "Actualizate recent"; readonly el: "Πρόσφατα ενημερωμένα"; readonly sv: "Nyligen uppdaterade"; readonly da: "Opdateret for nylig"; readonly fi: "Äskettäin päivitetyt"; readonly cs: "Nedávno aktualizováno"; readonly sk: "Nedávno aktualizované"; readonly hu: "Nemrég frissítve"; readonly bg: "Наскоро актуализирани"; readonly hr: "Nedavno ažurirano"; readonly sl: "Nedavno posodobljeno"; readonly et: "Hiljuti uuendatud"; readonly lv: "Nesen atjaunināts"; readonly lt: "Neseniai atnaujinta"; readonly ga: "Nuashonraithe le déanaí"; readonly mt: "Aġġornat reċentement"; }; readonly docsFilterPages: { readonly en: "Filter pages"; readonly fr: "Filtrer les pages"; readonly de: "Seiten filtern"; readonly es: "Filtrar páginas"; readonly it: "Filtra le pagine"; readonly pt: "Filtrar páginas"; readonly nl: "Pagina's filteren"; readonly pl: "Filtruj strony"; readonly ro: "Filtrați paginile"; readonly el: "Φιλτράρισμα σελίδων"; readonly sv: "Filtrera sidor"; readonly da: "Filtrér sider"; readonly fi: "Suodata sivuja"; readonly cs: "Filtrovat stránky"; readonly sk: "Filtrovať stránky"; readonly hu: "Oldalak szűrése"; readonly bg: "Филтриране на страници"; readonly hr: "Filtriraj stranice"; readonly sl: "Filtriraj strani"; readonly et: "Filtreeri lehti"; readonly lv: "Filtrēt lapas"; readonly lt: "Filtruoti puslapius"; readonly ga: "Scag leathanaigh"; readonly mt: "Iffiltra l-paġni"; }; readonly docsClearFilter: { readonly en: "Clear filter"; readonly fr: "Effacer le filtre"; readonly de: "Filter zurücksetzen"; readonly es: "Borrar filtro"; readonly it: "Cancella filtro"; readonly pt: "Limpar filtro"; readonly nl: "Filter wissen"; readonly pl: "Wyczyść filtr"; readonly ro: "Ștergeți filtrul"; readonly el: "Καθαρισμός φίλτρου"; readonly sv: "Rensa filter"; readonly da: "Ryd filter"; readonly fi: "Tyhjennä suodatin"; readonly cs: "Zrušit filtr"; readonly sk: "Zrušiť filter"; readonly hu: "Szűrő törlése"; readonly bg: "Изчистване на филтъра"; readonly hr: "Očisti filtar"; readonly sl: "Počisti filter"; readonly et: "Tühjenda filter"; readonly lv: "Notīrīt filtru"; readonly lt: "Išvalyti filtrą"; readonly ga: "Glan an scagaire"; readonly mt: "Neħħi l-filtru"; }; readonly docsPageCount: { readonly en: (n: number) => string; readonly fr: (n: number) => string; readonly de: (n: number) => string; readonly es: (n: number) => string; readonly it: (n: number) => string; readonly pt: (n: number) => string; readonly nl: (n: number) => string; readonly pl: (n: number) => string; readonly ro: (n: number) => string; readonly el: (n: number) => string; readonly sv: (n: number) => string; readonly da: (n: number) => string; readonly fi: (n: number) => string; readonly cs: (n: number) => string; readonly sk: (n: number) => string; readonly hu: (n: number) => string; readonly bg: (n: number) => string; readonly hr: (n: number) => string; readonly sl: (n: number) => string; readonly et: (n: number) => string; readonly lv: (n: number) => string; readonly lt: (n: number) => string; readonly ga: (n: number) => string; readonly mt: (n: number) => string; }; readonly docsArticleCount: { readonly en: (n: number) => string; readonly fr: (n: number) => string; readonly de: (n: number) => string; readonly es: (n: number) => string; readonly it: (n: number) => string; readonly pt: (n: number) => string; readonly nl: (n: number) => string; readonly pl: (n: number) => string; readonly ro: (n: number) => string; readonly el: (n: number) => string; readonly sv: (n: number) => string; readonly da: (n: number) => string; readonly fi: (n: number) => string; readonly cs: (n: number) => string; readonly sk: (n: number) => string; readonly hu: (n: number) => string; readonly bg: (n: number) => string; readonly hr: (n: number) => string; readonly sl: (n: number) => string; readonly et: (n: number) => string; readonly lv: (n: number) => string; readonly lt: (n: number) => string; readonly ga: (n: number) => string; readonly mt: (n: number) => string; }; readonly docsTopicCount: { readonly en: (n: number) => string; readonly fr: (n: number) => string; readonly de: (n: number) => string; readonly es: (n: number) => string; readonly it: (n: number) => string; readonly pt: (n: number) => string; readonly nl: (n: number) => string; readonly pl: (n: number) => string; readonly ro: (n: number) => string; readonly el: (n: number) => string; readonly sv: (n: number) => string; readonly da: (n: number) => string; readonly fi: (n: number) => string; readonly cs: (n: number) => string; readonly sk: (n: number) => string; readonly hu: (n: number) => string; readonly bg: (n: number) => string; readonly hr: (n: number) => string; readonly sl: (n: number) => string; readonly et: (n: number) => string; readonly lv: (n: number) => string; readonly lt: (n: number) => string; readonly ga: (n: number) => string; readonly mt: (n: number) => string; }; readonly docsResultCount: { readonly en: "{count} pages match “{query}”"; readonly fr: "{count} pages correspondent à « {query} »"; readonly de: "{count} Seiten passen zu „{query}“"; readonly es: "{count} páginas coinciden con «{query}»"; readonly it: "{count} pagine corrispondono a “{query}”"; readonly pt: "{count} páginas correspondem a “{query}”"; readonly nl: "{count} pagina’s komen overeen met “{query}”"; readonly pl: "Pasujące strony: {count} – „{query}”"; readonly ro: "{count} pagini corespund cu „{query}”"; readonly el: "{count} σελίδες ταιριάζουν με «{query}»"; readonly sv: "{count} sidor matchar ”{query}”"; readonly da: "{count} sider matcher “{query}”"; readonly fi: "{count} sivua vastaa hakua ”{query}”"; readonly cs: "Odpovídající stránky: {count} – „{query}“"; readonly sk: "Zodpovedajúce stránky: {count} – „{query}“"; readonly hu: "{count} oldal egyezik: „{query}”"; readonly bg: "Съвпадащи страници: {count} – „{query}“"; readonly hr: "Podudarne stranice: {count} – „{query}“"; readonly sl: "Ujemajoče se strani: {count} – „{query}“"; readonly et: "Vastavaid lehti: {count} – „{query}”"; readonly lv: "Atbilstošās lapas: {count} – „{query}“"; readonly lt: "Atitinkantys puslapiai: {count} – „{query}“"; readonly ga: "{count} leathanach ag teacht le “{query}”"; readonly mt: "{count} paġni jaqblu ma’ “{query}”"; }; readonly docsResultCountOne: { readonly en: "1 page matches “{query}”"; readonly fr: "1 page correspond à « {query} »"; readonly de: "1 Seite passt zu „{query}“"; readonly es: "1 página coincide con «{query}»"; readonly it: "1 pagina corrisponde a “{query}”"; readonly pt: "1 página corresponde a “{query}”"; readonly nl: "1 pagina komt overeen met “{query}”"; readonly pl: "Pasująca strona: 1 – „{query}”"; readonly ro: "1 pagină corespunde cu „{query}”"; readonly el: "1 σελίδα ταιριάζει με «{query}»"; readonly sv: "1 sida matchar ”{query}”"; readonly da: "1 side matcher “{query}”"; readonly fi: "1 sivu vastaa hakua ”{query}”"; readonly cs: "Odpovídající stránka: 1 – „{query}“"; readonly sk: "Zodpovedajúca stránka: 1 – „{query}“"; readonly hu: "1 oldal egyezik: „{query}”"; readonly bg: "Съвпадаща страница: 1 – „{query}“"; readonly hr: "Podudarna stranica: 1 – „{query}“"; readonly sl: "Ujemajoča se stran: 1 – „{query}“"; readonly et: "Vastavaid lehti: 1 – „{query}”"; readonly lv: "Atbilstošā lapa: 1 – „{query}“"; readonly lt: "Atitinkantis puslapis: 1 – „{query}“"; readonly ga: "1 leathanach ag teacht le “{query}”"; readonly mt: "1 paġna taqbel ma’ “{query}”"; }; readonly docsNoMatches: { readonly en: "Nothing matches “{query}”"; readonly fr: "Aucun résultat pour « {query} »"; readonly de: "Nichts passt zu „{query}“"; readonly es: "Nada coincide con «{query}»"; readonly it: "Nessun risultato per “{query}”"; readonly pt: "Nada corresponde a “{query}”"; readonly nl: "Niets komt overeen met “{query}”"; readonly pl: "Nic nie pasuje do „{query}”"; readonly ro: "Nimic nu corespunde cu „{query}”"; readonly el: "Τίποτα δεν ταιριάζει με «{query}»"; readonly sv: "Inget matchar ”{query}”"; readonly da: "Intet matcher “{query}”"; readonly fi: "Mikään ei vastaa hakua ”{query}”"; readonly cs: "Nic neodpovídá „{query}“"; readonly sk: "Nič nezodpovedá „{query}“"; readonly hu: "Semmi sem egyezik ezzel: „{query}”"; readonly bg: "Няма съвпадения с „{query}“"; readonly hr: "Ništa ne odgovara „{query}“"; readonly sl: "Nič se ne ujema z „{query}“"; readonly et: "Mitte miski ei vasta otsingule „{query}”"; readonly lv: "Nekas neatbilst „{query}“"; readonly lt: "Niekas neatitinka „{query}“"; readonly ga: "Níl aon rud ag teacht le “{query}”"; readonly mt: "Xejn ma jaqbel ma’ “{query}”"; }; readonly docsUpdatedOn: { readonly en: (d: string) => string; readonly fr: (d: string) => string; readonly de: (d: string) => string; readonly es: (d: string) => string; readonly it: (d: string) => string; readonly pt: (d: string) => string; readonly nl: (d: string) => string; readonly pl: (d: string) => string; readonly ro: (d: string) => string; readonly el: (d: string) => string; readonly sv: (d: string) => string; readonly da: (d: string) => string; readonly fi: (d: string) => string; readonly cs: (d: string) => string; readonly sk: (d: string) => string; readonly hu: (d: string) => string; readonly bg: (d: string) => string; readonly hr: (d: string) => string; readonly sl: (d: string) => string; readonly et: (d: string) => string; readonly lv: (d: string) => string; readonly lt: (d: string) => string; readonly ga: (d: string) => string; readonly mt: (d: string) => string; }; readonly docsTitle: { readonly en: "Documentation"; readonly fr: "Documentation"; readonly de: "Dokumentation"; readonly es: "Documentación"; readonly it: "Documentazione"; readonly pt: "Documentação"; readonly nl: "Documentatie"; readonly pl: "Dokumentacja"; readonly ro: "Documentație"; readonly el: "Τεκμηρίωση"; readonly sv: "Dokumentation"; readonly da: "Dokumentation"; readonly fi: "Dokumentaatio"; readonly cs: "Dokumentace"; readonly sk: "Dokumentácia"; readonly hu: "Dokumentáció"; readonly bg: "Документация"; readonly hr: "Dokumentacija"; readonly sl: "Dokumentacija"; readonly et: "Dokumentatsioon"; readonly lv: "Dokumentācija"; readonly lt: "Dokumentacija"; readonly ga: "Doiciméadú"; readonly mt: "Dokumentazzjoni"; }; readonly docsOpenNav: { readonly en: "Open navigation"; readonly fr: "Ouvrir la navigation"; readonly de: "Navigation öffnen"; readonly es: "Abrir navegación"; readonly it: "Apri navigazione"; readonly pt: "Abrir navegação"; readonly nl: "Navigatie openen"; readonly pl: "Otwórz nawigację"; readonly ro: "Deschide navigarea"; readonly el: "Άνοιγμα πλοήγησης"; readonly sv: "Öppna navigering"; readonly da: "Åbn navigation"; readonly fi: "Avaa navigointi"; readonly cs: "Otevřít navigaci"; readonly sk: "Otvoriť navigáciu"; readonly hu: "Navigáció megnyitása"; readonly bg: "Отваряне на навигацията"; readonly hr: "Otvori navigaciju"; readonly sl: "Odpri navigacijo"; readonly et: "Ava navigeerimine"; readonly lv: "Atvērt navigāciju"; readonly lt: "Atidaryti naršymą"; readonly ga: "Oscail an nascleanúint"; readonly mt: "Iftaħ in-navigazzjoni"; }; readonly docsCloseNav: { readonly en: "Close navigation"; readonly fr: "Fermer la navigation"; readonly de: "Navigation schließen"; readonly es: "Cerrar navegación"; readonly it: "Chiudi navigazione"; readonly pt: "Fechar navegação"; readonly nl: "Navigatie sluiten"; readonly pl: "Zamknij nawigację"; readonly ro: "Închide navigarea"; readonly el: "Κλείσιμο πλοήγησης"; readonly sv: "Stäng navigering"; readonly da: "Luk navigation"; readonly fi: "Sulje navigointi"; readonly cs: "Zavřít navigaci"; readonly sk: "Zavrieť navigáciu"; readonly hu: "Navigáció bezárása"; readonly bg: "Затваряне на навигацията"; readonly hr: "Zatvori navigaciju"; readonly sl: "Zapri navigacijo"; readonly et: "Sulge navigeerimine"; readonly lv: "Aizvērt navigāciju"; readonly lt: "Uždaryti naršymą"; readonly ga: "Dún an nascleanúint"; readonly mt: "Agħlaq in-navigazzjoni"; }; readonly docsLanguage: { readonly en: "Language"; readonly fr: "Langue"; readonly de: "Sprache"; readonly es: "Idioma"; readonly it: "Lingua"; readonly pt: "Idioma"; readonly nl: "Taal"; readonly pl: "Język"; readonly ro: "Limbă"; readonly el: "Γλώσσα"; readonly sv: "Språk"; readonly da: "Sprog"; readonly fi: "Kieli"; readonly cs: "Jazyk"; readonly sk: "Jazyk"; readonly hu: "Nyelv"; readonly bg: "Език"; readonly hr: "Jezik"; readonly sl: "Jezik"; readonly et: "Keel"; readonly lv: "Valoda"; readonly lt: "Kalba"; readonly ga: "Teanga"; readonly mt: "Lingwa"; }; readonly docsChangeLanguage: { readonly en: "Change language"; readonly fr: "Changer de langue"; readonly de: "Sprache ändern"; readonly es: "Cambiar idioma"; readonly it: "Cambia lingua"; readonly pt: "Mudar idioma"; readonly nl: "Taal wijzigen"; readonly pl: "Zmień język"; readonly ro: "Schimbă limba"; readonly el: "Αλλαγή γλώσσας"; readonly sv: "Byt språk"; readonly da: "Skift sprog"; readonly fi: "Vaihda kieli"; readonly cs: "Změnit jazyk"; readonly sk: "Zmeniť jazyk"; readonly hu: "Nyelv váltása"; readonly bg: "Смяна на езика"; readonly hr: "Promijeni jezik"; readonly sl: "Spremeni jezik"; readonly et: "Muuda keelt"; readonly lv: "Mainīt valodu"; readonly lt: "Keisti kalbą"; readonly ga: "Athraigh teanga"; readonly mt: "Ibdel il-lingwa"; }; }; /** * The set of resolved default labels the blog components fall back to when a label prop is * omitted. `readingLabel` stays a function because the minute count is a runtime value. */ export interface BlogLabels { /** Empty-state message when no post matches the search/filter. */ empty: string; /** Call-to-action at the bottom of each overview card. */ readMore: string; /** Placeholder for the overview search box. */ searchPlaceholder: string; /** Label for the "load more" button. */ loadMore: string; /** Label for the filter button that clears the category filter. */ allCategories: string; /** Back-link label above a post's title. */ back: string; /** Heading for the post sidebar's minimap. */ onThisPage: string; /** Heading for the post sidebar's similar-post list. */ similarPages: string; /** Accessible label for the category filter group. */ filterByCategory: string; /** Eyebrow above the author's name in the post's bottom author bio. */ writtenBy: string; /** Builds the "Published " line of the author bio from the formatted date. */ publishedLabel: (date: string) => string; /** * Builds the "Updated " meta item from the formatted date. Shares the docs catalog entry * with {@link DocsLabels.updatedLabel}: it is the same sentence in all 24 languages, and two * copies of it could only ever drift apart. */ updatedLabel: (date: string) => string; /** Builds the reading-time label from the estimated whole minutes. */ readingLabel: (minutes: number) => string; } /** * Resolve the full set of default {@link BlogLabels} for a blog's `lang`, matched to a * {@link Language} via {@link resolveLanguage} (so `"fr"`, `"pt-BR"`, or an unknown code all * resolve sensibly). Components use these as the fallback for any label prop left unset. * * @param lang - the blog's language code (a `LocaleConfig.code`). * @returns the resolved labels for that language. */ export declare function blogLabels(lang: string): BlogLabels; /** * The set of resolved default labels the docs components fall back to when a label prop is * omitted. Shares `onThisPage` and the `readingLabel` builder with {@link BlogLabels}; the rest * are docs-only copy (prev/next, the feedback widget, the search palette, "Updated "). */ export interface DocsLabels { /** The localized word "Documentation" - the default docs nav label and index hero heading. */ title: string; /** Heading for the page's right-hand table-of-contents minimap. */ onThisPage: string; /** Label for the "previous page" prev/next footer card. */ previous: string; /** Label for the "next page" prev/next footer card. */ next: string; /** The "Was this page helpful?" feedback prompt. */ feedbackQuestion: string; /** Affirmative feedback button label. */ feedbackYes: string; /** Negative feedback button label. */ feedbackNo: string; /** Confirmation shown after the reader answers the feedback prompt. */ feedbackThanks: string; /** Placeholder for the search box / command palette input. */ searchPlaceholder: string; /** Message shown in the command palette when a query matches no page. */ searchEmpty: string; /** Accessible name for the navbar's nav-drawer button while the drawer is CLOSED. */ openNav: string; /** Accessible name for the navbar's nav-drawer button while the drawer is OPEN. */ closeNav: string; /** Heading above the language list in the language picker. */ language: string; /** Accessible name for the language picker's trigger button. */ changeLanguage: string; /** Builds the "Updated " meta line from the formatted date. */ updatedLabel: (date: string) => string; /** Builds the reading-time label from the estimated whole minutes. */ readingLabel: (minutes: number) => string; /** Heading above the docs index's topic grid. */ browseByTopic: string; /** Heading above the docs index's recently-updated list. */ recentlyUpdated: string; /** Placeholder for the topic grid's page filter. */ filterPages: string; /** Label and accessible name for the control that empties the page filter. */ clearFilter: string; /** Builds a topic card's " pages" footer link. */ pageCountLabel: (count: number) => string; /** Builds the hero's " articles" statistic. */ articleCountLabel: (count: number) => string; /** Builds the hero's " topics" statistic. */ topicCountLabel: (count: number) => string; /** * The filter result heading as a TEMPLATE with `{count}` and `{query}` placeholders, not a * function - it is consumed by the client-side `DocsTopicGrid`, which a callback cannot reach. */ resultCountTemplate: string; /** The same heading for exactly one match. */ resultCountOneTemplate: string; /** The empty-filter heading as a template with a `{query}` placeholder. */ noMatchesTemplate: string; } /** * Resolve the full set of default {@link DocsLabels} for a docs site's `lang`, matched to a * {@link Language} via {@link resolveLanguage} (so `"fr"`, `"pt-BR"`, or an unknown code all * resolve sensibly). The docs components use these as the fallback for any label prop left unset. * * @param lang - the docs' language code (a `LocaleConfig.code`). * @returns the resolved labels for that language. */ export declare function docsLabels(lang: string): DocsLabels;