diff --git a/src/app/(space)/(core)/~gitbook/pdf/PageControlButtons.tsx b/src/app/(space)/(core)/~gitbook/pdf/PageControlButtons.tsx index 9511bd369..871687736 100644 --- a/src/app/(space)/(core)/~gitbook/pdf/PageControlButtons.tsx +++ b/src/app/(space)/(core)/~gitbook/pdf/PageControlButtons.tsx @@ -9,6 +9,8 @@ import { t, useLanguage } from '@/intl/client'; import { tcls } from '@/lib/tailwind'; import { getPDFUrl } from '@/lib/urls'; +const limitExtend = 50; + /** * Dynamic controls to show active page and to let the user select between modes. */ @@ -17,12 +19,14 @@ export function PageControlButtons(props: { singlePageMode: boolean; /** Array of the [pageId, divId] */ pageIds: Array<[string, string]>; + /** Current limit */ + limit: number; /** Total number of pages targetted by the generation */ total: number; /** Trademark to display */ trademark?: React.ReactNode; }) { - const { pdfHref, singlePageMode, pageIds, total, trademark } = props; + const { pdfHref, singlePageMode, pageIds, limit, total, trademark } = props; const language = useLanguage(); @@ -102,7 +106,21 @@ export function PageControlButtons(props: { )} > {' '} - {t(language, 'pdf_limit_reached', total, pageIds.length)} +
+
{t(language, 'pdf_limit_reached', total, pageIds.length)}
+
+ + {t(language, 'pdf_limit_reached_continue', limitExtend)} + +
+
) : null}
{ @@ -138,6 +133,7 @@ export default async function PDFHTMLOutput(props: { searchParams: { [key: strin pdfHref={currentPDFUrl} singlePageMode={!!pdfParams.only} total={total} + limit={pdfParams.limit ?? DEFAULT_LIMIT} trademark={ customization.trademark.enabled ? ( @@ -146,7 +142,7 @@ export default async function PDFHTMLOutput(props: { searchParams: { [key: strin /> {pdfParams.only ? null : } - {pages.map(({ page, depth }) => + {pages.map(({ page }) => page.type === 'group' ? ( ) : ( @@ -309,7 +305,7 @@ function selectPages( const limitTo = (entries: FlatPageEntry[]) => { return { // Apply a soft-limit, the limit can be controlled by the URL to allow testing - pages: entries.slice(0, params.limit ?? 100), + pages: entries.slice(0, params.limit ?? DEFAULT_LIMIT), total: entries.length, }; }; diff --git a/src/intl/translations/en.ts b/src/intl/translations/en.ts index 927544a54..d8adb059f 100644 --- a/src/intl/translations/en.ts +++ b/src/intl/translations/en.ts @@ -48,4 +48,5 @@ export const en = { pdf_mode_only_page: 'Only this page', pdf_mode_all: 'All pages', pdf_limit_reached: "Couldn't generate the PDF for ${1} pages, generation stopped at ${2}.", + pdf_limit_reached_continue: 'Extend with ${1} more pages.', }; diff --git a/src/intl/translations/es.ts b/src/intl/translations/es.ts index b9aca307e..b54ef1189 100644 --- a/src/intl/translations/es.ts +++ b/src/intl/translations/es.ts @@ -52,4 +52,5 @@ export const es: TranslationLanguage = { pdf_mode_all: 'Todas las páginas', pdf_limit_reached: 'No se pudo generar el PDF para ${1} páginas, la generación se detuvo en ${2}.', + pdf_limit_reached_continue: 'Extender con ${1} páginas más.', }; diff --git a/src/intl/translations/fr.ts b/src/intl/translations/fr.ts index d20691309..a089c5794 100644 --- a/src/intl/translations/fr.ts +++ b/src/intl/translations/fr.ts @@ -50,4 +50,5 @@ export const fr: TranslationLanguage = { pdf_mode_only_page: 'Seulement cette page', pdf_mode_all: 'Toutes les pages', pdf_limit_reached: 'Impossible de générer le PDF pour ${1} pages, génération arrêtée à ${2}.', + pdf_limit_reached_continue: 'Étendre avec ${1} pages supplémentaires.', }; diff --git a/src/intl/translations/ja.ts b/src/intl/translations/ja.ts index bd49859b4..f2b652e42 100644 --- a/src/intl/translations/ja.ts +++ b/src/intl/translations/ja.ts @@ -51,4 +51,5 @@ export const ja: TranslationLanguage = { pdf_mode_only_page: 'このページのみ', pdf_mode_all: '全てのページ', pdf_limit_reached: '${1}ページのPDFを生成できませんでした、${2}で生成が停止しました。', + pdf_limit_reached_continue: 'さらに${1}ページで拡張', }; diff --git a/src/intl/translations/zh.ts b/src/intl/translations/zh.ts index 6631364d8..d253d8453 100644 --- a/src/intl/translations/zh.ts +++ b/src/intl/translations/zh.ts @@ -49,4 +49,5 @@ export const zh: TranslationLanguage = { pdf_mode_only_page: '仅本页', pdf_mode_all: '所有页面', pdf_limit_reached: '无法为${1}页生成 PDF,生成在${2}页时停止。', + pdf_limit_reached_continue: '使用${1}页进行扩展。', };