@jjlmoya/utils-books 1.16.0 → 1.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/package.json +1 -1
  2. package/src/category/index.ts +2 -1
  3. package/src/entries.ts +4 -1
  4. package/src/tests/locale_completeness.test.ts +1 -1
  5. package/src/tests/mfe_assets_contract.test.ts +51 -0
  6. package/src/tests/tool_validation.test.ts +1 -1
  7. package/src/tool/book-cover-bleed-calculator/bibliography.astro +16 -0
  8. package/src/tool/book-cover-bleed-calculator/bibliography.ts +15 -0
  9. package/src/tool/book-cover-bleed-calculator/book-cover-bleed-calculator.css +362 -0
  10. package/src/tool/book-cover-bleed-calculator/component.astro +80 -0
  11. package/src/tool/book-cover-bleed-calculator/controller.ts +91 -0
  12. package/src/tool/book-cover-bleed-calculator/dom-views.ts +41 -0
  13. package/src/tool/book-cover-bleed-calculator/entry.ts +27 -0
  14. package/src/tool/book-cover-bleed-calculator/evaluator.ts +18 -0
  15. package/src/tool/book-cover-bleed-calculator/i18n/de.ts +22 -0
  16. package/src/tool/book-cover-bleed-calculator/i18n/en.ts +75 -0
  17. package/src/tool/book-cover-bleed-calculator/i18n/es.ts +22 -0
  18. package/src/tool/book-cover-bleed-calculator/i18n/fr.ts +22 -0
  19. package/src/tool/book-cover-bleed-calculator/i18n/id.ts +22 -0
  20. package/src/tool/book-cover-bleed-calculator/i18n/it.ts +22 -0
  21. package/src/tool/book-cover-bleed-calculator/i18n/ja.ts +22 -0
  22. package/src/tool/book-cover-bleed-calculator/i18n/ko.ts +22 -0
  23. package/src/tool/book-cover-bleed-calculator/i18n/nl.ts +22 -0
  24. package/src/tool/book-cover-bleed-calculator/i18n/pl.ts +22 -0
  25. package/src/tool/book-cover-bleed-calculator/i18n/pt.ts +22 -0
  26. package/src/tool/book-cover-bleed-calculator/i18n/ru.ts +22 -0
  27. package/src/tool/book-cover-bleed-calculator/i18n/sv.ts +22 -0
  28. package/src/tool/book-cover-bleed-calculator/i18n/tr.ts +22 -0
  29. package/src/tool/book-cover-bleed-calculator/i18n/zh.ts +22 -0
  30. package/src/tool/book-cover-bleed-calculator/index.ts +11 -0
  31. package/src/tool/book-cover-bleed-calculator/logic.test.ts +28 -0
  32. package/src/tool/book-cover-bleed-calculator/logic.ts +65 -0
  33. package/src/tool/book-cover-bleed-calculator/seo.astro +15 -0
  34. package/src/tool/book-cover-bleed-calculator/storage.ts +31 -0
  35. package/src/tool/book-cover-bleed-calculator/ui.ts +32 -0
  36. package/src/tools.ts +2 -1
@@ -0,0 +1,41 @@
1
+ import { fromMillimetres, type CoverResult, type UnitSystem, unitSuffix } from './logic';
2
+ import type { BookCoverBleedUI } from './ui';
3
+
4
+ function escapeText(value: string): string {
5
+ return value.replace(/[&<>"']/g, (character) => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;', "'": '&#39;' })[character] ?? character);
6
+ }
7
+
8
+ function lengthLabel(valueMm: number, unit: UnitSystem): string {
9
+ return `${fromMillimetres(valueMm, unit).toFixed(unit === 'metric' ? 1 : 2)} ${unitSuffix(unit)}`;
10
+ }
11
+
12
+ function segmentWidth(valueMm: number, fullWidthMm: number): number {
13
+ return Math.max(10, (valueMm / fullWidthMm) * 860);
14
+ }
15
+
16
+ interface CoverProofOptions {
17
+ container: HTMLElement;
18
+ result: CoverResult;
19
+ inputs: { trimWidthMm: number; bleedMm: number };
20
+ unit: UnitSystem;
21
+ ui: BookCoverBleedUI;
22
+ }
23
+
24
+ export function renderCoverProof(options: CoverProofOptions): void {
25
+ const { container, result, inputs, unit, ui } = options;
26
+ const scaleWidth = Math.max(1, result.fullWidthMm);
27
+ const bleedWidth = segmentWidth(inputs.bleedMm, scaleWidth);
28
+ const panelWidth = segmentWidth(inputs.trimWidthMm, scaleWidth);
29
+ const spineWidth = segmentWidth(result.spineMm, scaleWidth);
30
+ const xBleed = 20;
31
+ const xBack = xBleed + bleedWidth;
32
+ const xSpine = xBack + panelWidth;
33
+ const xFront = xSpine + spineWidth;
34
+ const coverHeight = 360;
35
+ const trimY = 44;
36
+ const trimHeight = 270;
37
+ const safeInset = Math.min(22, panelWidth * 0.12);
38
+ const spineSafeInset = Math.min(16, spineWidth * 0.3);
39
+ const label = escapeText(ui.spineAreaLabel);
40
+ container.innerHTML = `<svg class="n-proof-svg" viewBox="0 0 900 480" role="img" aria-label="${escapeText(ui.spineAreaLabel)} ${lengthLabel(result.spineMm, unit)}"><rect class="n-proof-bleed" x="${xBleed}" y="${trimY}" width="${bleedWidth}" height="${trimHeight}"/><rect class="n-proof-back" x="${xBack}" y="${trimY}" width="${panelWidth}" height="${trimHeight}"/><rect class="n-proof-spine" x="${xSpine}" y="${trimY}" width="${spineWidth}" height="${trimHeight}"/><rect class="n-proof-front" x="${xFront}" y="${trimY}" width="${panelWidth}" height="${trimHeight}"/><rect class="n-proof-bleed" x="${xFront + panelWidth}" y="${trimY}" width="${bleedWidth}" height="${trimHeight}"/><rect class="n-proof-safe" x="${xBack + safeInset}" y="${trimY + safeInset}" width="${Math.max(1, panelWidth - safeInset * 2)}" height="${trimHeight - safeInset * 2}"/><rect class="n-proof-safe" x="${xSpine + spineSafeInset}" y="${trimY + safeInset}" width="${Math.max(1, spineWidth - spineSafeInset * 2)}" height="${trimHeight - safeInset * 2}"/><rect class="n-proof-safe" x="${xFront + safeInset}" y="${trimY + safeInset}" width="${Math.max(1, panelWidth - safeInset * 2)}" height="${trimHeight - safeInset * 2}"/><line class="n-proof-trim-line" x1="${xBack}" y1="${trimY - 12}" x2="${xBack}" y2="${trimY + trimHeight + 12}"/><line class="n-proof-trim-line" x1="${xFront + panelWidth}" y1="${trimY - 12}" x2="${xFront + panelWidth}" y2="${trimY + trimHeight + 12}"/><line class="n-proof-fold-line" x1="${xSpine}" y1="${trimY - 12}" x2="${xSpine}" y2="${trimY + trimHeight + 12}"/><line class="n-proof-fold-line" x1="${xFront}" y1="${trimY - 12}" x2="${xFront}" y2="${trimY + trimHeight + 12}"/><text class="n-proof-label" x="${xBack + panelWidth / 2}" y="${trimY + trimHeight / 2}" text-anchor="middle">${escapeText(ui.backLabel)}</text><text class="n-proof-label" x="${xFront + panelWidth / 2}" y="${trimY + trimHeight / 2}" text-anchor="middle">${escapeText(ui.frontLabel)}</text><text class="n-proof-spine-label" x="${xSpine + spineWidth / 2}" y="${trimY + trimHeight / 2}" text-anchor="middle" transform="rotate(-90 ${xSpine + spineWidth / 2} ${trimY + trimHeight / 2})">${label}</text><text class="n-proof-caption" x="${xBleed}" y="${coverHeight + 28}">${escapeText(ui.bleedZoneLabel)}</text><text class="n-proof-caption" x="${xBack}" y="${coverHeight + 28}">${escapeText(ui.trimLineLabel)}</text><text class="n-proof-caption" x="${xFront}" y="${coverHeight + 28}">${escapeText(ui.safetyZoneLabel)}</text><text class="n-proof-measure" x="450" y="438" text-anchor="middle">${lengthLabel(result.fullWidthMm, unit)}</text><line class="n-proof-measure-line" x1="${xBleed}" y1="420" x2="${xFront + panelWidth + bleedWidth}" y2="420"/></svg>`;
41
+ }
@@ -0,0 +1,27 @@
1
+ import type { BooksToolEntry, ToolLocaleContent } from '../../types';
2
+ import type { BookCoverBleedUI } from './ui';
3
+
4
+ export type { BookCoverBleedUI } from './ui';
5
+ export type BookCoverBleedLocaleContent = ToolLocaleContent<BookCoverBleedUI>;
6
+
7
+ export const bookCoverBleedCalculator: BooksToolEntry<BookCoverBleedUI> = {
8
+ id: 'book-cover-bleed-calculator',
9
+ icons: { bg: 'mdi:book-open-page-variant-outline', fg: 'mdi:crop' },
10
+ i18n: {
11
+ de: () => import('./i18n/de').then((module) => module.content),
12
+ en: () => import('./i18n/en').then((module) => module.content),
13
+ es: () => import('./i18n/es').then((module) => module.content),
14
+ fr: () => import('./i18n/fr').then((module) => module.content),
15
+ id: () => import('./i18n/id').then((module) => module.content),
16
+ it: () => import('./i18n/it').then((module) => module.content),
17
+ ja: () => import('./i18n/ja').then((module) => module.content),
18
+ ko: () => import('./i18n/ko').then((module) => module.content),
19
+ nl: () => import('./i18n/nl').then((module) => module.content),
20
+ pl: () => import('./i18n/pl').then((module) => module.content),
21
+ pt: () => import('./i18n/pt').then((module) => module.content),
22
+ ru: () => import('./i18n/ru').then((module) => module.content),
23
+ sv: () => import('./i18n/sv').then((module) => module.content),
24
+ tr: () => import('./i18n/tr').then((module) => module.content),
25
+ zh: () => import('./i18n/zh').then((module) => module.content),
26
+ },
27
+ };
@@ -0,0 +1,18 @@
1
+ import type { BookCoverBleedUI } from './ui';
2
+ import type { CoverInputs, CoverResult } from './logic';
3
+
4
+ export interface CoverEvaluation {
5
+ label: string;
6
+ detail: string;
7
+ tone: 'ready' | 'attention';
8
+ }
9
+
10
+ export function evaluateCover(result: CoverResult, inputs: CoverInputs, ui: BookCoverBleedUI): CoverEvaluation {
11
+ if (inputs.bleedMm <= 0) {
12
+ return { label: ui.invalidLabel, detail: ui.bleedZoneLabel, tone: 'attention' };
13
+ }
14
+ if (result.safeSpineMm <= 0) {
15
+ return { label: ui.narrowSpineLabel, detail: ui.narrowSpineDetail, tone: 'attention' };
16
+ }
17
+ return { label: ui.readyLabel, detail: ui.readyDetail, tone: 'ready' };
18
+ }
@@ -0,0 +1,22 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+ import { bibliography } from '../bibliography';
3
+ import type { BookCoverBleedUI } from '../ui';
4
+
5
+ const ui: BookCoverBleedUI = {
6
+ presetLabel: 'Mit einem Umschlagformat beginnen', tradePreset: 'Handelsübliche Klappenbroschur', a5Preset: 'A5 Taschenbuch', digestPreset: 'Digest Taschenbuch', unitLabel: 'Maßsystem', metricLabel: 'Metrisch mm', imperialLabel: 'Imperial in', trimWidthLabel: 'Beschnittbreite', trimHeightLabel: 'Beschnitthöhe', pageCountLabel: 'Innenseiten', pageThicknessLabel: 'Papierstärke pro Seite', bleedLabel: 'Beschnittzugabe an jeder Außenkante', spineSafetyLabel: 'Sicherheitsabstand für Rückentext in der Vorschau', spineLabel: 'Rückenbreite', fullWidthLabel: 'Gesamte Umschlagbreite', fullHeightLabel: 'Gesamte Umschlaghöhe', safeSpineLabel: 'Sicherer Rückenbereich', backLabel: 'Rückseite', frontLabel: 'Vorderseite', spineAreaLabel: 'Gemessener Rücken', trimLineLabel: 'Schnittlinie', bleedZoneLabel: 'Beschnittzugabe', safetyZoneLabel: 'Sicherheitsbereich', copyLabel: 'Umschlaggröße kopieren', copiedLabel: 'Umschlaggröße kopiert', readyLabel: 'Layoutbereich bereit', readyDetail: 'Ziehe das Bild bis zur Beschnittzugabe und halte Text in den Sicherheitsbereichen.', narrowSpineLabel: 'Rücken prüfen', narrowSpineDetail: 'Der Rücken ist schmaler als der voreingestellte Sicherheitsabstand für Text.', invalidLabel: 'Umschlagwerte prüfen',
7
+ };
8
+
9
+ const seo: ToolLocaleContent<BookCoverBleedUI>['seo'] = [
10
+ { type: 'title', text: 'Die vollständige Buchumschlaggröße mit Beschnitt und Rücken berechnen', level: 2 },
11
+ { type: 'paragraph', html: 'Bereite einen Taschenbuchumschlag vor, indem du Beschnittbreite, Beschnitthöhe, Seitenzahl, Papierstärke pro Seite und Beschnittzugabe eingibst. Die Berechnung zeigt Rücken, Gesamtbreite, Gesamthöhe und einen aufgeklappten Korrekturabzug.' },
12
+ { type: 'title', text: 'Was die vollständige Umschlaggröße enthält', level: 2 },
13
+ { type: 'paragraph', html: 'Ein vollständiger Umschlag besteht in einer waagerechten Datei aus Rückseite, Rücken und Vorderseite. Die Breite addiert beide Beschnittflächen, beide Schnittflächen und den berechneten Rücken. Die Höhe enthält die Schnittfläche sowie die obere und untere Beschnittzugabe.' },
14
+ { type: 'list', items: ['Wähle ein Format als realistischen Ausgangspunkt.', 'Ersetze die Beispielwerte durch die Angaben deiner Druckerei.', 'Lies im Abzug Schnittlinien, Rücken, Beschnitt und Sicherheitsbereiche ab.', 'Übertrage Breite und Höhe in deine Datei und vergleiche sie mit der Druckvorlage.'] },
15
+ { type: 'title', text: 'Beschnitt Schnitt und Sicherheitsbereiche verstehen', level: 2 },
16
+ { type: 'paragraph', html: 'Der Beschnitt verlängert Hintergrund und Bilder über die Schnittkante hinaus. So entstehen bei kleinen Schneideabweichungen keine weißen Streifen. Der grüne Sicherheitsbereich ist eine Planungshilfe und ersetzt keine Vorgaben einer bestimmten Druckerei.' },
17
+ { type: 'title', text: 'Den Rücken als Produktionsschätzung verwenden', level: 2 },
18
+ { type: 'paragraph', html: 'Die Rückenbreite entsteht aus Seitenzahl und eingegebener Papierstärke. Papier, Bindeverfahren, Klebstoff und Fertigungstoleranzen können das Endmaß verändern. Verwende die Zahl für den ersten Entwurf und prüfe danach die verbindliche Vorlage.' },
19
+ { type: 'tip', title: 'Vor dem finalen Artwork die Druckvorlage prüfen', html: 'Eine Druckvorlage kann Beschnitt, Falzpositionen, Barcodebereich oder Rückentoleranz ändern. Wenn sie von dieser Schätzung abweicht, gilt die Vorlage.' },
20
+ ];
21
+
22
+ export const content: ToolLocaleContent<BookCoverBleedUI> = { slug: 'buchumschlag-beschnitt-ruecken-berechnen', title: 'Berechnung für Buchumschlag Beschnitt und Rücken', description: 'Berechne den vollständigen Taschenbuchumschlag mit Schnittmaß, Seitenzahl, Papierstärke, Rücken und Beschnitt.', ui, seo, faq: [{ question: 'Was enthält die Gesamtbreite?', answer: 'Rückseite, Rücken, Vorderseite und die äußeren Beschnittflächen.' }, { question: 'Wie wird der Rücken berechnet?', answer: 'Seitenzahl mal Papierstärke pro Seite.' }, { question: 'Warum muss die Papierstärke eingegeben werden?', answer: 'Der Rücken hängt vom tatsächlichen Papier des Druckauftrags ab.' }, { question: 'Ist das Ergebnis druckfertig?', answer: 'Nein. Vergleiche es mit der aktuellen Vorlage deiner Druckerei.' }], bibliography, howTo: [{ name: 'Format wählen', text: 'Wähle das passende Ausgangsformat.' }, { name: 'Maße eingeben', text: 'Setze Schnittmaß, Seiten, Papierstärke und Beschnitt.' }, { name: 'Abzug prüfen', text: 'Kontrolliere Rücken, Schnittlinien und Sicherheitsbereiche.' }, { name: 'Datei einrichten', text: 'Übertrage die Gesamtmaße und prüfe die Druckvorlage.' }], schemas: [{ '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: 'Berechnung für Buchumschlag Beschnitt und Rücken', applicationCategory: 'DesignApplication', operatingSystem: 'Any', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' } }, { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: [{ '@type': 'Question', name: 'Was enthält die Gesamtbreite?', acceptedAnswer: { '@type': 'Answer', text: 'Rückseite, Rücken, Vorderseite und Beschnitt.' } }, { '@type': 'Question', name: 'Wie wird der Rücken berechnet?', acceptedAnswer: { '@type': 'Answer', text: 'Seitenzahl mal Papierstärke pro Seite.' } }] }, { '@context': 'https://schema.org', '@type': 'HowTo', name: 'Einen vollständigen Buchumschlag berechnen', step: [{ '@type': 'HowToStep', name: 'Format wählen', text: 'Wähle ein Preset.' }, { '@type': 'HowToStep', name: 'Maße eingeben', text: 'Setze Schnittmaß, Seiten, Papier und Beschnitt.' }, { '@type': 'HowToStep', name: 'Abzug prüfen', text: 'Kontrolliere Rücken und Sicherheitsbereiche.' }, { '@type': 'HowToStep', name: 'Datei vorbereiten', text: 'Nutze Gesamtmaße und Druckvorlage.' }] }] };
@@ -0,0 +1,75 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+ import { bibliography } from '../bibliography';
3
+ import type { BookCoverBleedUI } from '../ui';
4
+
5
+ const ui: BookCoverBleedUI = {
6
+ presetLabel: 'Start from a cover format',
7
+ tradePreset: 'Trade paperback',
8
+ a5Preset: 'A5 paperback',
9
+ digestPreset: 'Digest paperback',
10
+ unitLabel: 'Measurement system',
11
+ metricLabel: 'Metric mm',
12
+ imperialLabel: 'Imperial in',
13
+ trimWidthLabel: 'Trim width',
14
+ trimHeightLabel: 'Trim height',
15
+ pageCountLabel: 'Interior pages',
16
+ pageThicknessLabel: 'Paper thickness per page',
17
+ bleedLabel: 'Bleed on each outside edge',
18
+ spineSafetyLabel: 'Spine text safety used in the proof',
19
+ spineLabel: 'Spine width',
20
+ fullWidthLabel: 'Full cover width',
21
+ fullHeightLabel: 'Full cover height',
22
+ safeSpineLabel: 'Spine safe width',
23
+ backLabel: 'Back cover',
24
+ frontLabel: 'Front cover',
25
+ spineAreaLabel: 'Measured spine',
26
+ trimLineLabel: 'Trim line',
27
+ bleedZoneLabel: 'Bleed zone',
28
+ safetyZoneLabel: 'Safe area',
29
+ copyLabel: 'Copy cover size',
30
+ copiedLabel: 'Cover size copied',
31
+ readyLabel: 'Layout envelope ready',
32
+ readyDetail: 'Keep artwork in the bleed and text inside the safe areas.',
33
+ narrowSpineLabel: 'Spine needs review',
34
+ narrowSpineDetail: 'The spine is narrower than the default text safety allowance.',
35
+ invalidLabel: 'Check the cover inputs',
36
+ };
37
+
38
+ const seo: ToolLocaleContent<BookCoverBleedUI>['seo'] = [
39
+ { type: 'title', text: 'Calculate the Full Size of a Book Cover with Bleed and Spine', level: 2 },
40
+ { type: 'paragraph', html: 'Prepare a one piece paperback cover by entering the trim width, trim height, page count, paper thickness per page, and bleed. The calculator turns those measurements into the spine, full cover width, full cover height, and a visible unfolded proof.' },
41
+ { type: 'title', text: 'What the Cover Measurement Includes', level: 2 },
42
+ { type: 'paragraph', html: 'A full wrap cover contains the back cover, the spine, and the front cover in one horizontal file. Its width is the two trim panels plus the measured spine and the outside bleed on both sides. Its height is the trim height plus bleed at the top and bottom.' },
43
+ { type: 'list', items: ['Choose a format preset to get a realistic starting point for the trim size, pages, paper thickness, and bleed.', 'Replace the preset values with the measurements from your printer, especially the paper thickness per page.', 'Use the unfolded proof to see where the trim and fold lines separate the back, spine, and front.', 'Copy the full cover width and height into the document setup, then compare them with the printer template before exporting.'] },
44
+ { type: 'title', text: 'How to Read Bleed Trim and Safe Areas', level: 2 },
45
+ { type: 'paragraph', html: 'Bleed is extra artwork beyond the trim edge so a small cutting shift does not leave a white strip. The trim line is the intended finished edge. The green safety outline in the proof is a planning guide for text and important details, not a promise about a particular printer tolerance.' },
46
+ { type: 'title', text: 'Use the Spine as a Production Estimate', level: 2 },
47
+ { type: 'paragraph', html: 'The spine estimate multiplies interior pages by the paper thickness supplied for each page. Paper caliper, binding method, cover board, adhesive, and printer tolerances can change the finished result, so use the measurement to prepare a first layout rather than to replace a printer supplied template.' },
48
+ { type: 'tip', title: 'Check the printer template before final artwork', html: 'A template can change the bleed, fold positions, barcode area, or spine allowance for a specific paper and binding. If the template disagrees with this estimate, use the template and keep your input values as a planning record.' },
49
+ ];
50
+
51
+ export const content: ToolLocaleContent<BookCoverBleedUI> = {
52
+ slug: 'book-cover-bleed-calculator',
53
+ title: 'Book Cover Bleed and Spine Calculator',
54
+ description: 'Calculate the complete paperback cover size from trim dimensions, page count, paper thickness, spine, and bleed.',
55
+ ui,
56
+ seo,
57
+ faq: [
58
+ { question: 'What is included in the full cover width?', answer: 'The full width includes the back cover, spine, front cover, and bleed on both outside edges.' },
59
+ { question: 'How is the spine calculated?', answer: 'The estimate multiplies the number of interior pages by the paper thickness per page that you enter.' },
60
+ { question: 'Why does the tool ask for paper thickness per page?', answer: 'Spine width depends on the actual paper stock. A printer or paper supplier can provide a more reliable caliper than a generic preset.' },
61
+ { question: 'Is the result ready for printing?', answer: 'It is a planning envelope. Always compare it with the current printer template for the selected paper, binding, and production process.' },
62
+ ],
63
+ bibliography,
64
+ howTo: [
65
+ { name: 'Choose a starting format', text: 'Select the preset closest to the book you are laying out.' },
66
+ { name: 'Enter the physical measurements', text: 'Set the trim size, page count, paper thickness per page, and bleed using the printer or paper supplier values.' },
67
+ { name: 'Inspect the unfolded proof', text: 'Read the spine, trim lines, bleed zones, and safe areas across the full cover.' },
68
+ { name: 'Transfer the document size', text: 'Copy the full cover width and height into your design file, then verify them against the printer template.' },
69
+ ],
70
+ schemas: [
71
+ { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: 'Book Cover Bleed and Spine Calculator', applicationCategory: 'DesignApplication', operatingSystem: 'Any', offers: { '@type': 'Offer', price: '0', priceCurrency: 'USD' } },
72
+ { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: [{ '@type': 'Question', name: 'What is included in the full cover width?', acceptedAnswer: { '@type': 'Answer', text: 'The full width includes the back cover, spine, front cover, and outside bleed.' } }, { '@type': 'Question', name: 'How is the spine calculated?', acceptedAnswer: { '@type': 'Answer', text: 'It multiplies interior pages by paper thickness per page.' } }] },
73
+ { '@context': 'https://schema.org', '@type': 'HowTo', name: 'Calculate a full paperback cover size', step: [{ '@type': 'HowToStep', name: 'Choose a starting format', text: 'Select a cover preset.' }, { '@type': 'HowToStep', name: 'Enter measurements', text: 'Set trim size, pages, paper thickness, and bleed.' }, { '@type': 'HowToStep', name: 'Inspect the proof', text: 'Review the spine and safe zones.' }, { '@type': 'HowToStep', name: 'Set up the design file', text: 'Use the full cover dimensions and verify the printer template.' }] },
74
+ ],
75
+ };
@@ -0,0 +1,22 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+ import { bibliography } from '../bibliography';
3
+ import type { BookCoverBleedUI } from '../ui';
4
+
5
+ const ui: BookCoverBleedUI = {
6
+ presetLabel: 'Empieza con un formato de cubierta', tradePreset: 'Tapa blanda comercial', a5Preset: 'Tapa blanda A5', digestPreset: 'Tapa blanda digest', unitLabel: 'Sistema de medida', metricLabel: 'Métrico mm', imperialLabel: 'Imperial in', trimWidthLabel: 'Ancho de corte', trimHeightLabel: 'Alto de corte', pageCountLabel: 'Páginas interiores', pageThicknessLabel: 'Grosor del papel por página', bleedLabel: 'Sangrado en cada borde exterior', spineSafetyLabel: 'Seguridad del texto del lomo usada en la prueba', spineLabel: 'Ancho del lomo', fullWidthLabel: 'Ancho total de cubierta', fullHeightLabel: 'Alto total de cubierta', safeSpineLabel: 'Ancho seguro del lomo', backLabel: 'Contracubierta', frontLabel: 'Cubierta frontal', spineAreaLabel: 'Lomo medido', trimLineLabel: 'Línea de corte', bleedZoneLabel: 'Zona de sangrado', safetyZoneLabel: 'Zona segura', copyLabel: 'Copiar tamaño de cubierta', copiedLabel: 'Tamaño de cubierta copiado', readyLabel: 'Área de diseño preparada', readyDetail: 'Extiende la ilustración hasta el sangrado y mantén el texto dentro de las zonas seguras.', narrowSpineLabel: 'Revisa el lomo', narrowSpineDetail: 'El lomo es más estrecho que la separación de seguridad de texto predeterminada.', invalidLabel: 'Revisa los datos de cubierta',
7
+ };
8
+
9
+ const seo: ToolLocaleContent<BookCoverBleedUI>['seo'] = [
10
+ { type: 'title', text: 'Calcula el tamaño completo de una cubierta con sangrado y lomo', level: 2 },
11
+ { type: 'paragraph', html: 'Prepara una cubierta de tapa blanda introduciendo el ancho y alto de corte, las páginas, el grosor del papel por página y el sangrado. La calculadora convierte esas medidas en el lomo, el ancho total, el alto total y una prueba visual desplegada.' },
12
+ { type: 'title', text: 'Qué incluye la medida completa de la cubierta', level: 2 },
13
+ { type: 'paragraph', html: 'Una cubierta extendida contiene la contracubierta, el lomo y la cubierta frontal en un único archivo horizontal. El ancho suma los dos paneles de corte, el lomo calculado y el sangrado exterior de ambos lados. El alto suma el corte y el sangrado superior e inferior.' },
14
+ { type: 'list', items: ['Elige un formato para obtener un punto de partida realista.', 'Sustituye los valores por los datos de tu imprenta, especialmente el grosor del papel.', 'Usa la prueba para distinguir contracubierta, lomo, portada, cortes y zonas seguras.', 'Copia el ancho y el alto completos en tu documento y compáralos con la plantilla de impresión.'] },
15
+ { type: 'title', text: 'Cómo leer el sangrado el corte y las zonas seguras', level: 2 },
16
+ { type: 'paragraph', html: 'El sangrado prolonga la imagen más allá del corte para evitar bordes blancos si la guillotina se desplaza ligeramente. La línea de corte marca el borde terminado. La zona segura verde es una guía de planificación y no sustituye las tolerancias de una imprenta concreta.' },
17
+ { type: 'title', text: 'Usa el lomo como estimación de producción', level: 2 },
18
+ { type: 'paragraph', html: 'El lomo se estima multiplicando las páginas por el grosor introducido para cada página. El papel, la encuadernación, el adhesivo y las tolerancias de fabricación pueden cambiar el resultado, así que usa la medida para preparar el diseño y confirma la plantilla final.' },
19
+ { type: 'tip', title: 'Comprueba la plantilla de la imprenta antes del arte final', html: 'La plantilla puede cambiar el sangrado, los pliegues, el espacio del código de barras o la tolerancia del lomo. Si contradice esta estimación, usa la plantilla y conserva tus datos como referencia de planificación.' },
20
+ ];
21
+
22
+ export const content: ToolLocaleContent<BookCoverBleedUI> = { slug: 'calculadora-tamano-cubierta-libro-sangrado-lomo', title: 'Calculadora de sangrado y lomo de cubierta de libro', description: 'Calcula el tamaño completo de una cubierta de tapa blanda con corte, páginas, grosor del papel, lomo y sangrado.', ui, seo, faq: [{ question: '¿Qué incluye el ancho total?', answer: 'Incluye contracubierta, lomo, cubierta frontal y sangrado en los dos bordes exteriores.' }, { question: '¿Cómo se calcula el lomo?', answer: 'Multiplica las páginas interiores por el grosor del papel de cada página.' }, { question: '¿Por qué se pide el grosor por página?', answer: 'Porque el ancho real del lomo depende del papel elegido por la imprenta o el proveedor.' }, { question: '¿El resultado está listo para imprimir?', answer: 'Es una medida de planificación. Compárala siempre con la plantilla actual de tu imprenta.' }], bibliography, howTo: [{ name: 'Elige un formato inicial', text: 'Selecciona el preset más parecido al libro que estás maquetando.' }, { name: 'Introduce las medidas físicas', text: 'Configura corte, páginas, grosor del papel y sangrado con los datos de producción.' }, { name: 'Revisa la prueba desplegada', text: 'Comprueba el lomo, las líneas de corte, el sangrado y las zonas seguras.' }, { name: 'Configura el archivo', text: 'Copia el ancho y el alto completos y verifícalos con la plantilla.' }], schemas: [{ '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: 'Calculadora de sangrado y lomo de cubierta de libro', applicationCategory: 'DesignApplication', operatingSystem: 'Any', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' } }, { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: [{ '@type': 'Question', name: '¿Qué incluye el ancho total?', acceptedAnswer: { '@type': 'Answer', text: 'Incluye los dos paneles, el lomo y el sangrado exterior.' } }, { '@type': 'Question', name: '¿Cómo se calcula el lomo?', acceptedAnswer: { '@type': 'Answer', text: 'Multiplica las páginas por el grosor del papel de cada página.' } }] }, { '@context': 'https://schema.org', '@type': 'HowTo', name: 'Calcular una cubierta completa', step: [{ '@type': 'HowToStep', name: 'Elige un formato', text: 'Selecciona un preset.' }, { '@type': 'HowToStep', name: 'Introduce las medidas', text: 'Configura corte, páginas, papel y sangrado.' }, { '@type': 'HowToStep', name: 'Revisa la prueba', text: 'Comprueba lomo y zonas seguras.' }, { '@type': 'HowToStep', name: 'Prepara el archivo', text: 'Usa las medidas completas y la plantilla.' }] }] };
@@ -0,0 +1,22 @@
1
+ import type { ToolLocaleContent } from "../../../types";
2
+ import { bibliography } from "../bibliography";
3
+ import type { BookCoverBleedUI } from "../ui";
4
+
5
+ const ui: BookCoverBleedUI = {
6
+ presetLabel: "Commencer avec un format de couverture", tradePreset: "Broché commercial", a5Preset: "Broché A5", digestPreset: "Broché digest", unitLabel: "Système de mesure", metricLabel: "Métrique mm", imperialLabel: "Impérial in", trimWidthLabel: "Largeur de coupe", trimHeightLabel: "Hauteur de coupe", pageCountLabel: "Pages intérieures", pageThicknessLabel: "Épaisseur du papier par page", bleedLabel: "Fond perdu sur chaque bord extérieur", spineSafetyLabel: "Sécurité du texte du dos utilisée dans l\"épreuve", spineLabel: "Largeur du dos", fullWidthLabel: "Largeur totale de couverture", fullHeightLabel: "Hauteur totale de couverture", safeSpineLabel: "Largeur sûre du dos", backLabel: "Quatrième de couverture", frontLabel: "Première de couverture", spineAreaLabel: "Dos mesuré", trimLineLabel: "Ligne de coupe", bleedZoneLabel: "Zone de fond perdu", safetyZoneLabel: "Zone sûre", copyLabel: "Copier la taille de couverture", copiedLabel: "Taille copiée", readyLabel: "Zone de mise en page prête", readyDetail: "Prolongez l\"image jusqu\"au fond perdu et gardez le texte dans les zones sûres.", narrowSpineLabel: "Vérifiez le dos", narrowSpineDetail: "Le dos est plus étroit que la marge de sécurité du texte par défaut.", invalidLabel: "Vérifiez les mesures",
7
+ };
8
+
9
+ const seo: ToolLocaleContent<BookCoverBleedUI>["seo"] = [
10
+ { type: "title", text: "Calculer le format complet d\"une couverture avec fond perdu et dos", level: 2 },
11
+ { type: "paragraph", html: "Préparez une couverture brochée en indiquant la largeur et la hauteur de coupe, le nombre de pages, l\"épaisseur du papier par page et le fond perdu. Le calcul affiche le dos, la largeur et la hauteur complètes ainsi qu\"une épreuve dépliée." },
12
+ { type: "title", text: "Ce que comprend le format complet", level: 2 },
13
+ { type: "paragraph", html: "Une couverture complète réunit la quatrième de couverture, le dos et la première de couverture dans un seul fichier horizontal. Sa largeur additionne les deux panneaux, le dos et les deux fonds perdus extérieurs. Sa hauteur additionne la hauteur de coupe et les fonds perdus haut et bas." },
14
+ { type: "list", items: ["Choisissez un format pour obtenir une base réaliste.", "Remplacez les exemples par les données de votre imprimeur.", "Utilisez l\"épreuve pour repérer coupe, dos, fond perdu et zones sûres.", "Copiez les dimensions complètes dans le document puis comparez-les au gabarit."] },
15
+ { type: "title", text: "Lire le fond perdu la coupe et les zones sûres", level: 2 },
16
+ { type: "paragraph", html: "Le fond perdu prolonge les images au-delà de la coupe afin d\"éviter un filet blanc en cas de léger décalage. La ligne de coupe indique le bord fini. La zone sûre verte aide à planifier le texte mais ne remplace pas les tolérances de l\"imprimeur." },
17
+ { type: "title", text: "Utiliser le dos comme estimation de production", level: 2 },
18
+ { type: "paragraph", html: "La largeur du dos est estimée en multipliant les pages par l\"épaisseur saisie pour chaque page. Le papier, la reliure, la colle et les tolérances de fabrication peuvent modifier le résultat. Confirmez donc le gabarit final." },
19
+ { type: "tip", title: "Vérifiez le gabarit avant le visuel final", html: "Le gabarit peut changer le fond perdu, les plis, la zone du code-barres ou la tolérance du dos. En cas de différence, suivez le gabarit de l\"imprimeur." },
20
+ ];
21
+
22
+ export const content: ToolLocaleContent<BookCoverBleedUI> = { slug: "calcul-format-couverture-livre-fond-perdu-dos", title: "Calculateur de fond perdu et de dos de couverture de livre", description: "Calculez le format complet d\"une couverture brochée avec coupe, pages, épaisseur du papier, dos et fond perdu.", ui, seo, faq: [{ question: "Que comprend la largeur totale ?", answer: "La quatrième, le dos, la première de couverture et les deux fonds perdus extérieurs." }, { question: "Comment le dos est-il calculé ?", answer: "Le nombre de pages est multiplié par l\"épaisseur du papier par page." }, { question: "Pourquoi saisir l\"épaisseur du papier ?", answer: "La largeur réelle du dos dépend du papier choisi pour l\"impression." }, { question: "Le résultat est-il prêt pour l\"impression ?", answer: "C\"est une base de mise en page. Comparez-la toujours au gabarit de l\"imprimeur." }], bibliography, howTo: [{ name: "Choisir un format", text: "Sélectionnez le preset le plus proche de votre livre." }, { name: "Saisir les mesures", text: "Indiquez coupe, pages, papier et fond perdu." }, { name: "Examiner l\"épreuve", text: "Contrôlez le dos, les lignes de coupe et les zones sûres." }, { name: "Préparer le fichier", text: "Utilisez les dimensions complètes et vérifiez le gabarit." }], schemas: [{ "@context": "https://schema.org", "@type": "SoftwareApplication", name: "Calculateur de fond perdu et de dos de couverture de livre", applicationCategory: "DesignApplication", operatingSystem: "Any", offers: { "@type": "Offer", price: "0", priceCurrency: "EUR" } }, { "@context": "https://schema.org", "@type": "FAQPage", mainEntity: [{ "@type": "Question", name: "Que comprend la largeur totale ?", acceptedAnswer: { "@type": "Answer", text: "La couverture, le dos et les fonds perdus extérieurs." } }, { "@type": "Question", name: "Comment le dos est-il calculé ?", acceptedAnswer: { "@type": "Answer", text: "Les pages sont multipliées par l\"épaisseur du papier." } }] }, { "@context": "https://schema.org", "@type": "HowTo", name: "Calculer une couverture complète", step: [{ "@type": "HowToStep", name: "Choisir un format", text: "Sélectionnez un preset." }, { "@type": "HowToStep", name: "Saisir les mesures", text: "Indiquez coupe, pages, papier et fond perdu." }, { "@type": "HowToStep", name: "Examiner l\"épreuve", text: "Vérifiez dos et zones sûres." }, { "@type": "HowToStep", name: "Préparer le fichier", text: "Utilisez les dimensions et le gabarit." }] }] };
@@ -0,0 +1,22 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+ import { bibliography } from '../bibliography';
3
+ import type { BookCoverBleedUI } from '../ui';
4
+
5
+ const ui: BookCoverBleedUI = {
6
+ presetLabel: 'Mulai dari format sampul', tradePreset: 'Paperback dagang', a5Preset: 'Paperback A5', digestPreset: 'Paperback digest', unitLabel: 'Sistem ukuran', metricLabel: 'Metrik mm', imperialLabel: 'Imperial in', trimWidthLabel: 'Lebar potong', trimHeightLabel: 'Tinggi potong', pageCountLabel: 'Halaman isi', pageThicknessLabel: 'Ketebalan kertas per halaman', bleedLabel: 'Bleed di setiap tepi luar', spineSafetyLabel: 'Batas aman teks punggung pada pratinjau', spineLabel: 'Lebar punggung', fullWidthLabel: 'Lebar sampul penuh', fullHeightLabel: 'Tinggi sampul penuh', safeSpineLabel: 'Lebar aman punggung', backLabel: 'Sampul belakang', frontLabel: 'Sampul depan', spineAreaLabel: 'Punggung terukur', trimLineLabel: 'Garis potong', bleedZoneLabel: 'Area bleed', safetyZoneLabel: 'Area aman', copyLabel: 'Salin ukuran sampul', copiedLabel: 'Ukuran sampul disalin', readyLabel: 'Area tata letak siap', readyDetail: 'Perpanjang gambar sampai bleed dan letakkan teks di dalam area aman.', narrowSpineLabel: 'Periksa punggung', narrowSpineDetail: 'Punggung lebih sempit daripada jarak aman teks bawaan.', invalidLabel: 'Periksa nilai sampul',
7
+ };
8
+
9
+ const seo: ToolLocaleContent<BookCoverBleedUI>['seo'] = [
10
+ { type: 'title', text: 'Hitung ukuran penuh sampul buku dengan bleed dan punggung', level: 2 },
11
+ { type: 'paragraph', html: 'Siapkan sampul paperback dengan memasukkan lebar dan tinggi potong, jumlah halaman, ketebalan kertas per halaman, serta bleed. Kalkulator menampilkan punggung, lebar penuh, tinggi penuh, dan pratinjau sampul terbuka.' },
12
+ { type: 'title', text: 'Isi ukuran penuh sampul', level: 2 },
13
+ { type: 'paragraph', html: 'Sampul terbuka menggabungkan sampul belakang, punggung, dan sampul depan dalam satu berkas mendatar. Lebarnya menjumlahkan dua panel potong, punggung yang dihitung, dan bleed di kedua sisi luar. Tingginya menambahkan bleed atas dan bawah pada tinggi potong.' },
14
+ { type: 'list', items: ['Pilih format sebagai titik awal yang realistis.', 'Ganti contoh dengan data dari percetakan.', 'Gunakan pratinjau untuk melihat potong, punggung, bleed, dan area aman.', 'Salin ukuran penuh ke dokumen lalu bandingkan dengan templat cetak.'] },
15
+ { type: 'title', text: 'Membaca bleed garis potong dan area aman', level: 2 },
16
+ { type: 'paragraph', html: 'Bleed memperpanjang gambar melewati garis potong agar pergeseran kecil tidak menghasilkan garis putih. Garis potong menunjukkan tepi akhir. Area aman hijau adalah panduan perencanaan dan bukan pengganti toleransi percetakan tertentu.' },
17
+ { type: 'title', text: 'Gunakan punggung sebagai estimasi produksi', level: 2 },
18
+ { type: 'paragraph', html: 'Lebar punggung dihitung dari jumlah halaman dan ketebalan kertas yang dimasukkan. Kertas, metode penjilidan, lem, dan toleransi produksi dapat mengubah hasil, jadi periksa templat final.' },
19
+ { type: 'tip', title: 'Periksa templat percetakan sebelum karya akhir', html: 'Templat dapat mengubah bleed, posisi lipatan, area barcode, atau toleransi punggung. Jika berbeda, ikuti templat khusus percetakan.' },
20
+ ];
21
+
22
+ export const content: ToolLocaleContent<BookCoverBleedUI> = { slug: 'kalkulator-sampul-buku-bleed-punggung', title: 'Kalkulator bleed dan punggung sampul buku', description: 'Hitung ukuran penuh sampul paperback dari potong, halaman, ketebalan kertas, punggung, dan bleed.', ui, seo, faq: [{ question: 'Apa yang termasuk lebar penuh?', answer: 'Sampul belakang, punggung, sampul depan, dan bleed pada kedua tepi luar.' }, { question: 'Bagaimana punggung dihitung?', answer: 'Jumlah halaman dikalikan ketebalan kertas per halaman.' }, { question: 'Mengapa ketebalan kertas diperlukan?', answer: 'Lebar punggung nyata bergantung pada kertas yang dipakai untuk produksi.' }, { question: 'Apakah hasil siap cetak?', answer: 'Ini ukuran perencanaan. Selalu bandingkan dengan templat percetakan.' }], bibliography, howTo: [{ name: 'Pilih format', text: 'Pilih preset yang paling dekat dengan buku Anda.' }, { name: 'Masukkan ukuran', text: 'Atur potong, halaman, kertas, dan bleed.' }, { name: 'Tinjau pratinjau', text: 'Periksa punggung, garis potong, dan area aman.' }, { name: 'Siapkan berkas', text: 'Gunakan ukuran penuh dan periksa templat.' }], schemas: [{ '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: 'Kalkulator bleed dan punggung sampul buku', applicationCategory: 'DesignApplication', operatingSystem: 'Any', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' } }, { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: [{ '@type': 'Question', name: 'Apa yang termasuk lebar penuh?', acceptedAnswer: { '@type': 'Answer', text: 'Sampul belakang, punggung, sampul depan, dan bleed.' } }, { '@type': 'Question', name: 'Bagaimana punggung dihitung?', acceptedAnswer: { '@type': 'Answer', text: 'Halaman dikalikan ketebalan kertas.' } }] }, { '@context': 'https://schema.org', '@type': 'HowTo', name: 'Menghitung ukuran penuh sampul buku', step: [{ '@type': 'HowToStep', name: 'Pilih format', text: 'Pilih preset.' }, { '@type': 'HowToStep', name: 'Masukkan ukuran', text: 'Atur potong, halaman, kertas, dan bleed.' }, { '@type': 'HowToStep', name: 'Tinjau pratinjau', text: 'Periksa punggung dan area aman.' }, { '@type': 'HowToStep', name: 'Siapkan berkas', text: 'Gunakan ukuran dan templat percetakan.' }] }] };
@@ -0,0 +1,22 @@
1
+ import type { ToolLocaleContent } from "../../../types";
2
+ import { bibliography } from "../bibliography";
3
+ import type { BookCoverBleedUI } from "../ui";
4
+
5
+ const ui: BookCoverBleedUI = {
6
+ presetLabel: "Inizia da un formato di copertina", tradePreset: "Brossura commerciale", a5Preset: "Brossura A5", digestPreset: "Brossura digest", unitLabel: "Sistema di misura", metricLabel: "Metrico mm", imperialLabel: "Imperiale in", trimWidthLabel: "Larghezza di taglio", trimHeightLabel: "Altezza di taglio", pageCountLabel: "Pagine interne", pageThicknessLabel: "Spessore della carta per pagina", bleedLabel: "Abbondanza su ogni bordo esterno", spineSafetyLabel: "Sicurezza del testo sul dorso usata nella prova", spineLabel: "Larghezza del dorso", fullWidthLabel: "Larghezza totale della copertina", fullHeightLabel: "Altezza totale della copertina", safeSpineLabel: "Larghezza sicura del dorso", backLabel: "Quarta di copertina", frontLabel: "Prima di copertina", spineAreaLabel: "Dorso misurato", trimLineLabel: "Linea di taglio", bleedZoneLabel: "Zona di abbondanza", safetyZoneLabel: "Zona sicura", copyLabel: "Copia dimensioni copertina", copiedLabel: "Dimensioni copiate", readyLabel: "Area di impaginazione pronta", readyDetail: "Estendi l\"immagine fino all\"abbondanza e mantieni il testo nelle zone sicure.", narrowSpineLabel: "Controlla il dorso", narrowSpineDetail: "Il dorso è più stretto della distanza di sicurezza predefinita per il testo.", invalidLabel: "Controlla i dati della copertina",
7
+ };
8
+
9
+ const seo: ToolLocaleContent<BookCoverBleedUI>["seo"] = [
10
+ { type: "title", text: "Calcola la dimensione completa della copertina con abbondanza e dorso", level: 2 },
11
+ { type: "paragraph", html: "Prepara una copertina in brossura inserendo larghezza e altezza di taglio, pagine, spessore della carta per pagina e abbondanza. Il calcolo mostra dorso, larghezza completa, altezza completa e una prova aperta." },
12
+ { type: "title", text: "Cosa comprende la dimensione completa", level: 2 },
13
+ { type: "paragraph", html: "Una copertina estesa riunisce quarta, dorso e prima di copertina in un unico file orizzontale. La larghezza somma i due pannelli, il dorso e l\"abbondanza sui due lati esterni. L\"altezza somma il taglio e l\"abbondanza superiore e inferiore." },
14
+ { type: "list", items: ["Scegli un formato come punto di partenza realistico.", "Sostituisci i valori con i dati della tipografia.", "Usa la prova per distinguere taglio, dorso, abbondanza e zone sicure.", "Copia le dimensioni complete nel documento e confrontale con il modello di stampa."] },
15
+ { type: "title", text: "Leggere abbondanza taglio e zone sicure", level: 2 },
16
+ { type: "paragraph", html: "L\"abbondanza prolunga immagini e sfondi oltre il taglio per evitare bordi bianchi in caso di piccoli spostamenti. La linea di taglio indica il bordo finito. La zona sicura verde aiuta nella progettazione ma non sostituisce le tolleranze della tipografia." },
17
+ { type: "title", text: "Usare il dorso come stima di produzione", level: 2 },
18
+ { type: "paragraph", html: "La larghezza del dorso si ottiene moltiplicando le pagine per lo spessore inserito. Carta, rilegatura, colla e tolleranze di produzione possono cambiare il risultato: conferma sempre il modello finale." },
19
+ { type: "tip", title: "Controlla il modello della tipografia prima dell\"arte finale", html: "Il modello può cambiare abbondanza, pieghe, area del codice a barre o tolleranza del dorso. Se differisce, segui il modello specifico." },
20
+ ];
21
+
22
+ export const content: ToolLocaleContent<BookCoverBleedUI> = { slug: "calcolo-copertina-libro-abbondanza-dorso", title: "Calcolatore di abbondanza e dorso della copertina del libro", description: "Calcola la copertina completa in brossura con taglio, pagine, spessore della carta, dorso e abbondanza.", ui, seo, faq: [{ question: "Cosa comprende la larghezza totale?", answer: "Quarta, dorso, prima di copertina e abbondanza sui due bordi esterni." }, { question: "Come si calcola il dorso?", answer: "Le pagine interne vengono moltiplicate per lo spessore della carta per pagina." }, { question: "Perché serve lo spessore della carta?", answer: "Il dorso reale dipende dalla carta scelta per la produzione." }, { question: "Il risultato è pronto per la stampa?", answer: "È una misura di pianificazione. Confrontala con il modello della tipografia." }], bibliography, howTo: [{ name: "Scegli un formato", text: "Seleziona il preset più vicino al tuo libro." }, { name: "Inserisci le misure", text: "Imposta taglio, pagine, carta e abbondanza." }, { name: "Controlla la prova", text: "Verifica dorso, linee di taglio e zone sicure." }, { name: "Prepara il file", text: "Usa le dimensioni complete e controlla il modello." }], schemas: [{ "@context": "https://schema.org", "@type": "SoftwareApplication", name: "Calcolatore di abbondanza e dorso della copertina del libro", applicationCategory: "DesignApplication", operatingSystem: "Any", offers: { "@type": "Offer", price: "0", priceCurrency: "EUR" } }, { "@context": "https://schema.org", "@type": "FAQPage", mainEntity: [{ "@type": "Question", name: "Cosa comprende la larghezza totale?", acceptedAnswer: { "@type": "Answer", text: "Comprende i due pannelli, il dorso e l\"abbondanza esterna." } }, { "@type": "Question", name: "Come si calcola il dorso?", acceptedAnswer: { "@type": "Answer", text: "Moltiplica le pagine per lo spessore della carta." } }] }, { "@context": "https://schema.org", "@type": "HowTo", name: "Calcolare una copertina completa", step: [{ "@type": "HowToStep", name: "Scegli un formato", text: "Seleziona un preset." }, { "@type": "HowToStep", name: "Inserisci le misure", text: "Imposta taglio, pagine, carta e abbondanza." }, { "@type": "HowToStep", name: "Controlla la prova", text: "Verifica dorso e zone sicure." }, { "@type": "HowToStep", name: "Prepara il file", text: "Usa dimensioni e modello di stampa." }] }] };
@@ -0,0 +1,22 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+ import { bibliography } from '../bibliography';
3
+ import type { BookCoverBleedUI } from '../ui';
4
+
5
+ const ui: BookCoverBleedUI = {
6
+ presetLabel: '表紙サイズのプリセットから開始', tradePreset: '一般的なペーパーバック', a5Preset: 'A5 ペーパーバック', digestPreset: 'ダイジェスト判', unitLabel: '単位系', metricLabel: 'メートル法 mm', imperialLabel: 'ヤードポンド法 in', trimWidthLabel: '仕上がり幅', trimHeightLabel: '仕上がり高さ', pageCountLabel: '本文ページ数', pageThicknessLabel: '1ページあたりの紙厚', bleedLabel: '外側各辺の塗り足し', spineSafetyLabel: 'プレビューで使う背文字の安全幅', spineLabel: '背幅', fullWidthLabel: '表紙全体の幅', fullHeightLabel: '表紙全体の高さ', safeSpineLabel: '背の安全幅', backLabel: '裏表紙', frontLabel: '表紙', spineAreaLabel: '計算した背', trimLineLabel: '断裁線', bleedZoneLabel: '塗り足し領域', safetyZoneLabel: '安全領域', copyLabel: '表紙サイズをコピー', copiedLabel: '表紙サイズをコピーしました', readyLabel: 'レイアウト範囲を確認できます', readyDetail: '画像は塗り足しまで伸ばし、文字は安全領域に収めてください。', narrowSpineLabel: '背幅を確認してください', narrowSpineDetail: '背幅が標準の文字安全幅より狭くなっています。', invalidLabel: '表紙の値を確認してください',
7
+ };
8
+
9
+ const seo: ToolLocaleContent<BookCoverBleedUI>['seo'] = [
10
+ { type: 'title', text: '塗り足しと背幅を含む本の表紙全体のサイズを計算', level: 2 },
11
+ { type: 'paragraph', html: '仕上がり幅、仕上がり高さ、本文ページ数、1ページあたりの紙厚、塗り足しを入力してペーパーバック表紙を準備します。背幅、表紙全体の幅と高さ、展開したプルーフを確認できます。' },
12
+ { type: 'title', text: '表紙全体のサイズに含まれるもの', level: 2 },
13
+ { type: 'paragraph', html: '展開した表紙は、裏表紙、背、表紙を1つの横長ファイルにまとめたものです。幅は2つの仕上がり面、計算した背幅、左右外側の塗り足しを合計します。高さは仕上がり高さに上下の塗り足しを加えます。' },
14
+ { type: 'list', items: ['プリセットを選び、現実的な初期値から始めます。', '紙の仕様など、印刷会社から受け取った値に置き換えます。', 'プルーフで断裁線、背、塗り足し、安全領域を確認します。', '全体の寸法をデザインファイルへコピーし、印刷テンプレートと比較します。'] },
15
+ { type: 'title', text: '塗り足し断裁線と安全領域の見方', level: 2 },
16
+ { type: 'paragraph', html: '塗り足しは断裁線の外側まで画像を伸ばし、わずかな断裁ずれで白い縁が出るのを防ぎます。断裁線は仕上がりの端を示します。緑色の安全領域は計画用の目安であり、印刷会社固有の許容差に代わるものではありません。' },
17
+ { type: 'title', text: '背幅を制作時の見積もりとして使う', level: 2 },
18
+ { type: 'paragraph', html: '背幅は本文ページ数と入力した1ページあたりの紙厚から求めます。紙、綴じ方、接着剤、製造上の許容差によって仕上がりは変わるため、最終テンプレートで確認してください。' },
19
+ { type: 'tip', title: '最終デザインの前に印刷テンプレートを確認', html: 'テンプレートによって塗り足し、折り位置、バーコード領域、背幅の許容差が変わることがあります。違いがあれば印刷会社のテンプレートを優先します。' },
20
+ ];
21
+
22
+ export const content: ToolLocaleContent<BookCoverBleedUI> = { slug: 'book-cover-bleed-calculator', title: '本の表紙の塗り足しと背幅計算機', description: '仕上がり寸法、ページ数、紙厚、背幅、塗り足しからペーパーバック表紙全体のサイズを計算します。', ui, seo, faq: [{ question: '表紙全体の幅には何が含まれますか?', answer: '裏表紙、背、表紙、左右外側の塗り足しが含まれます。' }, { question: '背幅はどのように計算しますか?', answer: '本文ページ数に1ページあたりの紙厚を掛けます。' }, { question: 'なぜ紙厚が必要ですか?', answer: '実際の背幅は制作に使う紙の厚さによって変わるためです。' }, { question: 'そのまま印刷できますか?', answer: '計画用の寸法です。必ず印刷会社のテンプレートと比較してください。' }], bibliography, howTo: [{ name: '形式を選ぶ', text: '本に近いプリセットを選びます。' }, { name: '寸法を入力する', text: '仕上がり、ページ、紙厚、塗り足しを設定します。' }, { name: 'プルーフを確認する', text: '背、断裁線、安全領域を確認します。' }, { name: 'ファイルを準備する', text: '全体寸法を使い、テンプレートを確認します。' }], schemas: [{ '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: '本の表紙の塗り足しと背幅計算機', applicationCategory: 'DesignApplication', operatingSystem: 'Any', offers: { '@type': 'Offer', price: '0', priceCurrency: 'JPY' } }, { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: [{ '@type': 'Question', name: '表紙全体の幅には何が含まれますか?', acceptedAnswer: { '@type': 'Answer', text: '裏表紙、背、表紙、塗り足しです。' } }, { '@type': 'Question', name: '背幅はどのように計算しますか?', acceptedAnswer: { '@type': 'Answer', text: 'ページ数に紙厚を掛けます。' } }] }, { '@context': 'https://schema.org', '@type': 'HowTo', name: '本の表紙全体のサイズを計算する', step: [{ '@type': 'HowToStep', name: '形式を選ぶ', text: 'プリセットを選びます。' }, { '@type': 'HowToStep', name: '寸法を入力する', text: '仕上がり、ページ、紙厚、塗り足しを設定します。' }, { '@type': 'HowToStep', name: 'プルーフを確認する', text: '背と安全領域を確認します。' }, { '@type': 'HowToStep', name: 'ファイルを準備する', text: '寸法とテンプレートを使います。' }] }] };
@@ -0,0 +1,22 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+ import { bibliography } from '../bibliography';
3
+ import type { BookCoverBleedUI } from '../ui';
4
+
5
+ const ui: BookCoverBleedUI = {
6
+ presetLabel: '표지 형식으로 시작', tradePreset: '일반 문고판', a5Preset: 'A5 문고판', digestPreset: '다이제스트 문고판', unitLabel: '측정 단위', metricLabel: '미터법 mm', imperialLabel: '야드파운드법 in', trimWidthLabel: '재단 너비', trimHeightLabel: '재단 높이', pageCountLabel: '본문 페이지 수', pageThicknessLabel: '페이지당 종이 두께', bleedLabel: '각 바깥 가장자리 여분', spineSafetyLabel: '미리보기에서 사용하는 책등 글자 안전 여백', spineLabel: '책등 너비', fullWidthLabel: '전체 표지 너비', fullHeightLabel: '전체 표지 높이', safeSpineLabel: '책등 안전 너비', backLabel: '뒷표지', frontLabel: '앞표지', spineAreaLabel: '계산된 책등', trimLineLabel: '재단선', bleedZoneLabel: '여분 영역', safetyZoneLabel: '안전 영역', copyLabel: '표지 크기 복사', copiedLabel: '표지 크기를 복사했습니다', readyLabel: '레이아웃 영역 준비됨', readyDetail: '이미지는 여분 영역까지 확장하고 글자는 안전 영역 안에 배치하세요.', narrowSpineLabel: '책등을 확인하세요', narrowSpineDetail: '책등이 기본 글자 안전 여백보다 좁습니다.', invalidLabel: '표지 값을 확인하세요',
7
+ };
8
+
9
+ const seo: ToolLocaleContent<BookCoverBleedUI>['seo'] = [
10
+ { type: 'title', text: '여분과 책등을 포함한 책 표지 전체 크기 계산', level: 2 },
11
+ { type: 'paragraph', html: '재단 너비, 재단 높이, 본문 페이지 수, 페이지당 종이 두께와 여분을 입력해 문고판 표지를 준비하세요. 책등, 전체 너비, 전체 높이와 펼친 교정 화면을 확인할 수 있습니다.' },
12
+ { type: 'title', text: '전체 표지 크기에 포함되는 항목', level: 2 },
13
+ { type: 'paragraph', html: '펼친 표지는 뒷표지, 책등, 앞표지를 하나의 가로 파일로 구성합니다. 너비는 두 재단 면과 계산된 책등, 양쪽 바깥 여분을 합산합니다. 높이는 재단 높이에 위아래 여분을 더합니다.' },
14
+ { type: 'list', items: ['형식을 선택해 현실적인 시작값을 사용하세요.', '인쇄소에서 받은 종이 사양으로 예시 값을 바꾸세요.', '교정 화면에서 재단선, 책등, 여분과 안전 영역을 확인하세요.', '전체 크기를 문서에 복사한 뒤 인쇄 템플릿과 비교하세요.'] },
15
+ { type: 'title', text: '여분 재단선과 안전 영역 읽기', level: 2 },
16
+ { type: 'paragraph', html: '여분은 이미지를 재단선 밖까지 확장해 작은 재단 오차로 흰 테두리가 생기는 것을 막습니다. 재단선은 완성된 가장자리를 뜻합니다. 초록색 안전 영역은 계획을 위한 기준이며 인쇄소의 허용 오차를 대신하지 않습니다.' },
17
+ { type: 'title', text: '책등을 제작 예상치로 사용하기', level: 2 },
18
+ { type: 'paragraph', html: '책등 너비는 본문 페이지 수와 입력한 페이지당 종이 두께로 계산합니다. 종이, 제본 방식, 접착제와 제작 허용 오차에 따라 결과가 달라질 수 있으므로 최종 템플릿을 확인하세요.' },
19
+ { type: 'tip', title: '최종 디자인 전에 인쇄 템플릿 확인', html: '템플릿에 따라 여분, 접힘 위치, 바코드 영역과 책등 허용 오차가 달라질 수 있습니다. 차이가 있으면 인쇄소 템플릿을 우선하세요.' },
20
+ ];
21
+
22
+ export const content: ToolLocaleContent<BookCoverBleedUI> = { slug: 'book-cover-bleed-calculator', title: '책 표지 여분 및 책등 계산기', description: '재단, 페이지 수, 종이 두께, 책등과 여분을 바탕으로 문고판 표지 전체 크기를 계산합니다.', ui, seo, faq: [{ question: '전체 너비에는 무엇이 포함되나요?', answer: '뒷표지, 책등, 앞표지와 양쪽 바깥 여분이 포함됩니다.' }, { question: '책등은 어떻게 계산하나요?', answer: '본문 페이지 수에 페이지당 종이 두께를 곱합니다.' }, { question: '종이 두께가 왜 필요한가요?', answer: '실제 책등 너비는 제작에 사용하는 종이에 따라 달라집니다.' }, { question: '결과를 바로 인쇄할 수 있나요?', answer: '계획용 크기입니다. 항상 인쇄소 템플릿과 비교하세요.' }], bibliography, howTo: [{ name: '형식 선택', text: '책에 가장 가까운 프리셋을 선택합니다.' }, { name: '크기 입력', text: '재단, 페이지, 종이와 여분을 설정합니다.' }, { name: '교정 확인', text: '책등, 재단선과 안전 영역을 확인합니다.' }, { name: '파일 준비', text: '전체 크기를 사용하고 템플릿을 확인합니다.' }], schemas: [{ '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: '책 표지 여분 및 책등 계산기', applicationCategory: 'DesignApplication', operatingSystem: 'Any', offers: { '@type': 'Offer', price: '0', priceCurrency: 'KRW' } }, { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: [{ '@type': 'Question', name: '전체 너비에는 무엇이 포함되나요?', acceptedAnswer: { '@type': 'Answer', text: '뒷표지, 책등, 앞표지와 여분입니다.' } }, { '@type': 'Question', name: '책등은 어떻게 계산하나요?', acceptedAnswer: { '@type': 'Answer', text: '페이지 수에 종이 두께를 곱합니다.' } }] }, { '@context': 'https://schema.org', '@type': 'HowTo', name: '책 표지 전체 크기 계산하기', step: [{ '@type': 'HowToStep', name: '형식 선택', text: '프리셋을 선택합니다.' }, { '@type': 'HowToStep', name: '크기 입력', text: '재단, 페이지, 종이와 여분을 설정합니다.' }, { '@type': 'HowToStep', name: '교정 확인', text: '책등과 안전 영역을 확인합니다.' }, { '@type': 'HowToStep', name: '파일 준비', text: '크기와 인쇄 템플릿을 사용합니다.' }] }] };
@@ -0,0 +1,22 @@
1
+ import type { ToolLocaleContent } from "../../../types";
2
+ import { bibliography } from "../bibliography";
3
+ import type { BookCoverBleedUI } from "../ui";
4
+
5
+ const ui: BookCoverBleedUI = {
6
+ presetLabel: "Begin met een omslagformaat", tradePreset: "Handelseditie paperback", a5Preset: "A5 paperback", digestPreset: "Digest paperback", unitLabel: "Meetsysteem", metricLabel: "Metrisch mm", imperialLabel: "Imperial in", trimWidthLabel: "Snijbreedte", trimHeightLabel: "Snijhoogte", pageCountLabel: "Binnenpagina\"s", pageThicknessLabel: "Papierdikte per pagina", bleedLabel: "Afloop aan elke buitenrand", spineSafetyLabel: "Veiligheid voor rugtekst in de proef", spineLabel: "Rugbreedte", fullWidthLabel: "Totale omslagbreedte", fullHeightLabel: "Totale omslaghoogte", safeSpineLabel: "Veilige rugbreedte", backLabel: "Achterzijde", frontLabel: "Voorzijde", spineAreaLabel: "Gemeten rug", trimLineLabel: "Snijlijn", bleedZoneLabel: "Afloopgebied", safetyZoneLabel: "Veilig gebied", copyLabel: "Omslagmaat kopiëren", copiedLabel: "Omslagmaat gekopieerd", readyLabel: "Lay-outgebied klaar", readyDetail: "Laat de illustratie doorlopen tot de afloop en houd tekst binnen de veilige gebieden.", narrowSpineLabel: "Controleer de rug", narrowSpineDetail: "De rug is smaller dan de standaard veiligheidsmarge voor tekst.", invalidLabel: "Controleer de omslagwaarden",
7
+ };
8
+
9
+ const seo: ToolLocaleContent<BookCoverBleedUI>["seo"] = [
10
+ { type: "title", text: "Bereken het volledige omslagformaat met afloop en rug", level: 2 },
11
+ { type: "paragraph", html: "Bereid een paperbackomslag voor met snijbreedte, snijhoogte, aantal pagina\"s, papierdikte per pagina en afloop. De berekening toont de rug, volledige breedte, volledige hoogte en een uitgevouwen proef." },
12
+ { type: "title", text: "Wat het volledige omslagformaat bevat", level: 2 },
13
+ { type: "paragraph", html: "Een volledige omslag bestaat uit achterzijde, rug en voorzijde in één horizontaal bestand. De breedte telt beide snijpanelen, de berekende rug en de afloop aan beide buitenzijden op. De hoogte bevat de snijhoogte en de afloop boven en onder." },
14
+ { type: "list", items: ["Kies een formaat als realistisch startpunt.", "Vervang de voorbeelden door de gegevens van je drukker.", "Gebruik de proef om snijlijnen, rug, afloop en veilige gebieden te zien.", "Kopieer de totale maten naar je document en vergelijk ze met het druktemplate."] },
15
+ { type: "title", text: "Afloop snijlijn en veilige gebieden lezen", level: 2 },
16
+ { type: "paragraph", html: "Afloop verlengt afbeeldingen voorbij de snijlijn zodat een kleine snijafwijking geen witte rand maakt. De snijlijn geeft de afgewerkte rand aan. Het groene veilige gebied is een planningshulp en vervangt geen tolerantie van een specifieke drukker." },
17
+ { type: "title", text: "Gebruik de rug als productieschatting", level: 2 },
18
+ { type: "paragraph", html: "De rugbreedte wordt berekend met het aantal pagina\"s en de ingevoerde papierdikte. Papier, bindwijze, lijm en productietoleranties kunnen de uiteindelijke maat veranderen. Controleer daarom altijd het definitieve template." },
19
+ { type: "tip", title: "Controleer het druktemplate vóór de definitieve vormgeving", html: "Een template kan afloop, vouwen, barcodegebied of rugtolerantie wijzigen. Volg bij verschil het specifieke template van de drukker." },
20
+ ];
21
+
22
+ export const content: ToolLocaleContent<BookCoverBleedUI> = { slug: "boekomslag-afloop-rug-berekenen", title: "Calculator voor afloop en rug van een boekomslag", description: "Bereken de volledige paperbackomslag met snijmaat, pagina\"s, papierdikte, rug en afloop.", ui, seo, faq: [{ question: "Wat bevat de totale breedte?", answer: "Achterzijde, rug, voorzijde en afloop aan beide buitenranden." }, { question: "Hoe wordt de rug berekend?", answer: "Het aantal pagina\"s wordt vermenigvuldigd met de papierdikte per pagina." }, { question: "Waarom is papierdikte nodig?", answer: "De echte rugbreedte hangt af van het papier voor deze productie." }, { question: "Is het resultaat drukklaar?", answer: "Het is een planningsmaat. Vergelijk hem altijd met het druktemplate." }], bibliography, howTo: [{ name: "Kies een formaat", text: "Selecteer het preset dat het dichtst bij je boek ligt." }, { name: "Voer de maten in", text: "Stel snijmaat, pagina\"s, papier en afloop in." }, { name: "Bekijk de proef", text: "Controleer rug, snijlijnen en veilige gebieden." }, { name: "Maak het bestand klaar", text: "Gebruik de totale maten en controleer het template." }], schemas: [{ "@context": "https://schema.org", "@type": "SoftwareApplication", name: "Calculator voor afloop en rug van een boekomslag", applicationCategory: "DesignApplication", operatingSystem: "Any", offers: { "@type": "Offer", price: "0", priceCurrency: "EUR" } }, { "@context": "https://schema.org", "@type": "FAQPage", mainEntity: [{ "@type": "Question", name: "Wat bevat de totale breedte?", acceptedAnswer: { "@type": "Answer", text: "Achterzijde, rug, voorzijde en afloop." } }, { "@type": "Question", name: "Hoe wordt de rug berekend?", acceptedAnswer: { "@type": "Answer", text: "Pagina\"s maal papierdikte per pagina." } }] }, { "@context": "https://schema.org", "@type": "HowTo", name: "Een volledige boekomslag berekenen", step: [{ "@type": "HowToStep", name: "Kies een formaat", text: "Selecteer een preset." }, { "@type": "HowToStep", name: "Voer de maten in", text: "Stel snijmaat, pagina\"s, papier en afloop in." }, { "@type": "HowToStep", name: "Bekijk de proef", text: "Controleer rug en veilige gebieden." }, { "@type": "HowToStep", name: "Bereid het bestand voor", text: "Gebruik maten en druktemplate." }] }] };
@@ -0,0 +1,22 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+ import { bibliography } from '../bibliography';
3
+ import type { BookCoverBleedUI } from '../ui';
4
+
5
+ const ui: BookCoverBleedUI = {
6
+ presetLabel: 'Zacznij od formatu okładki', tradePreset: 'Broszura handlowa', a5Preset: 'Broszura A5', digestPreset: 'Broszura digest', unitLabel: 'Układ jednostek', metricLabel: 'Metryczne mm', imperialLabel: 'Imperial in', trimWidthLabel: 'Szerokość po cięciu', trimHeightLabel: 'Wysokość po cięciu', pageCountLabel: 'Strony środka', pageThicknessLabel: 'Grubość papieru na stronę', bleedLabel: 'Spad na każdej zewnętrznej krawędzi', spineSafetyLabel: 'Bezpieczny odstęp tekstu grzbietu w podglądzie', spineLabel: 'Szerokość grzbietu', fullWidthLabel: 'Pełna szerokość okładki', fullHeightLabel: 'Pełna wysokość okładki', safeSpineLabel: 'Bezpieczna szerokość grzbietu', backLabel: 'Tył okładki', frontLabel: 'Przód okładki', spineAreaLabel: 'Zmierzony grzbiet', trimLineLabel: 'Linia cięcia', bleedZoneLabel: 'Strefa spadu', safetyZoneLabel: 'Strefa bezpieczna', copyLabel: 'Kopiuj rozmiar okładki', copiedLabel: 'Rozmiar skopiowany', readyLabel: 'Obszar składu gotowy', readyDetail: 'Rozciągnij grafikę do spadu i trzymaj tekst w strefach bezpiecznych.', narrowSpineLabel: 'Sprawdź grzbiet', narrowSpineDetail: 'Grzbiet jest węższy niż domyślny bezpieczny odstęp dla tekstu.', invalidLabel: 'Sprawdź dane okładki',
7
+ };
8
+
9
+ const seo: ToolLocaleContent<BookCoverBleedUI>['seo'] = [
10
+ { type: 'title', text: 'Oblicz pełny rozmiar okładki książki ze spadem i grzbietem', level: 2 },
11
+ { type: 'paragraph', html: 'Przygotuj okładkę miękką, wpisując szerokość i wysokość po cięciu, liczbę stron, grubość papieru na stronę oraz spad. Kalkulator pokazuje grzbiet, pełną szerokość, pełną wysokość i rozłożony podgląd.' },
12
+ { type: 'title', text: 'Co obejmuje pełny rozmiar okładki', level: 2 },
13
+ { type: 'paragraph', html: 'Rozłożona okładka łączy tył, grzbiet i przód w jednym poziomym pliku. Szerokość to dwa panele po cięciu, obliczony grzbiet i spad po obu zewnętrznych stronach. Wysokość obejmuje format po cięciu oraz spad u góry i u dołu.' },
14
+ { type: 'list', items: ['Wybierz format jako realistyczny punkt wyjścia.', 'Zastąp przykładowe wartości danymi drukarni.', 'Użyj podglądu, aby zobaczyć cięcie, grzbiet, spad i strefy bezpieczne.', 'Skopiuj pełne wymiary do dokumentu i porównaj je z szablonem drukarni.'] },
15
+ { type: 'title', text: 'Jak czytać spad cięcie i strefy bezpieczne', level: 2 },
16
+ { type: 'paragraph', html: 'Spad przedłuża tło i obrazy poza linię cięcia, aby niewielkie przesunięcie nie zostawiło białej krawędzi. Linia cięcia wskazuje gotową krawędź. Zielona strefa bezpieczna pomaga planować tekst, ale nie zastępuje tolerancji konkretnej drukarni.' },
17
+ { type: 'title', text: 'Traktuj grzbiet jako szacunek produkcyjny', level: 2 },
18
+ { type: 'paragraph', html: 'Szerokość grzbietu wynika z liczby stron i wpisanej grubości papieru. Papier, oprawa, klej i tolerancje produkcyjne mogą zmienić wynik, dlatego przed eksportem potwierdź ostateczny szablon.' },
19
+ { type: 'tip', title: 'Sprawdź szablon drukarni przed finalną grafiką', html: 'Szablon może zmienić spad, położenie zgięć, miejsce na kod kreskowy lub tolerancję grzbietu. W razie różnicy użyj szablonu drukarni.' },
20
+ ];
21
+
22
+ export const content: ToolLocaleContent<BookCoverBleedUI> = { slug: 'kalkulator-okladki-ksiazki-spad-grzbiet', title: 'Kalkulator spadu i grzbietu okładki książki', description: 'Oblicz pełny rozmiar okładki miękkiej na podstawie cięcia, stron, grubości papieru, grzbietu i spadu.', ui, seo, faq: [{ question: 'Co obejmuje pełna szerokość?', answer: 'Tył, grzbiet, przód i spad na obu zewnętrznych krawędziach.' }, { question: 'Jak obliczany jest grzbiet?', answer: 'Liczba stron jest mnożona przez grubość papieru na stronę.' }, { question: 'Dlaczego potrzebna jest grubość papieru?', answer: 'Rzeczywista szerokość grzbietu zależy od papieru użytego w produkcji.' }, { question: 'Czy wynik jest gotowy do druku?', answer: 'To wymiar planistyczny. Zawsze porównaj go z szablonem drukarni.' }], bibliography, howTo: [{ name: 'Wybierz format', text: 'Wybierz preset najbliższy swojej książce.' }, { name: 'Wpisz wymiary', text: 'Ustaw cięcie, strony, papier i spad.' }, { name: 'Sprawdź podgląd', text: 'Obejrzyj grzbiet, linie cięcia i strefy bezpieczne.' }, { name: 'Przygotuj plik', text: 'Użyj pełnych wymiarów i sprawdź szablon.' }], schemas: [{ '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: 'Kalkulator spadu i grzbietu okładki książki', applicationCategory: 'DesignApplication', operatingSystem: 'Any', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' } }, { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: [{ '@type': 'Question', name: 'Co obejmuje pełna szerokość?', acceptedAnswer: { '@type': 'Answer', text: 'Tył, grzbiet, przód i spad.' } }, { '@type': 'Question', name: 'Jak obliczany jest grzbiet?', acceptedAnswer: { '@type': 'Answer', text: 'Strony mnoży się przez grubość papieru.' } }] }, { '@context': 'https://schema.org', '@type': 'HowTo', name: 'Obliczyć pełną okładkę książki', step: [{ '@type': 'HowToStep', name: 'Wybierz format', text: 'Wybierz preset.' }, { '@type': 'HowToStep', name: 'Wpisz wymiary', text: 'Ustaw cięcie, strony, papier i spad.' }, { '@type': 'HowToStep', name: 'Sprawdź podgląd', text: 'Obejrzyj grzbiet i strefy bezpieczne.' }, { '@type': 'HowToStep', name: 'Przygotuj plik', text: 'Użyj wymiarów i szablonu.' }] }] };
@@ -0,0 +1,22 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+ import { bibliography } from '../bibliography';
3
+ import type { BookCoverBleedUI } from '../ui';
4
+
5
+ const ui: BookCoverBleedUI = {
6
+ presetLabel: 'Comece com um formato de capa', tradePreset: 'Capa mole comercial', a5Preset: 'Capa mole A5', digestPreset: 'Capa mole digest', unitLabel: 'Sistema de medidas', metricLabel: 'Métrico mm', imperialLabel: 'Imperial in', trimWidthLabel: 'Largura de corte', trimHeightLabel: 'Altura de corte', pageCountLabel: 'Páginas internas', pageThicknessLabel: 'Espessura do papel por página', bleedLabel: 'Sangria em cada borda externa', spineSafetyLabel: 'Segurança do texto da lombada usada na prova', spineLabel: 'Largura da lombada', fullWidthLabel: 'Largura total da capa', fullHeightLabel: 'Altura total da capa', safeSpineLabel: 'Largura segura da lombada', backLabel: 'Quarta capa', frontLabel: 'Capa frontal', spineAreaLabel: 'Lombada medida', trimLineLabel: 'Linha de corte', bleedZoneLabel: 'Zona de sangria', safetyZoneLabel: 'Zona segura', copyLabel: 'Copiar tamanho da capa', copiedLabel: 'Tamanho copiado', readyLabel: 'Área de layout pronta', readyDetail: 'Estenda a arte até a sangria e mantenha o texto dentro das zonas seguras.', narrowSpineLabel: 'Revise a lombada', narrowSpineDetail: 'A lombada é mais estreita que a distância de segurança padrão para texto.', invalidLabel: 'Revise os dados da capa',
7
+ };
8
+
9
+ const seo: ToolLocaleContent<BookCoverBleedUI>['seo'] = [
10
+ { type: 'title', text: 'Calcule o tamanho completo da capa com sangria e lombada', level: 2 },
11
+ { type: 'paragraph', html: 'Prepare uma capa mole informando largura e altura de corte, páginas, espessura do papel por página e sangria. O cálculo mostra a lombada, a largura total, a altura total e uma prova visual aberta.' },
12
+ { type: 'title', text: 'O que entra no tamanho completo da capa', level: 2 },
13
+ { type: 'paragraph', html: 'Uma capa aberta reúne quarta capa, lombada e capa frontal em um único arquivo horizontal. A largura soma os dois painéis de corte, a lombada calculada e a sangria externa dos dois lados. A altura soma o corte e as sangrias superior e inferior.' },
14
+ { type: 'list', items: ['Escolha um formato para obter um ponto de partida realista.', 'Troque os exemplos pelos dados da sua gráfica.', 'Use a prova para identificar corte, lombada, sangria e zonas seguras.', 'Copie as dimensões completas no documento e compare com o gabarito de impressão.'] },
15
+ { type: 'title', text: 'Como ler sangria corte e zonas seguras', level: 2 },
16
+ { type: 'paragraph', html: 'A sangria prolonga imagens e fundos além do corte para evitar filetes brancos quando há uma pequena variação. A linha de corte indica a borda final. A zona segura verde ajuda no planejamento, mas não substitui as tolerâncias da gráfica.' },
17
+ { type: 'title', text: 'Use a lombada como estimativa de produção', level: 2 },
18
+ { type: 'paragraph', html: 'A largura da lombada multiplica as páginas pela espessura informada para cada página. Papel, encadernação, cola e tolerâncias de produção podem alterar o resultado. Confirme sempre o gabarito final.' },
19
+ { type: 'tip', title: 'Confira o gabarito antes da arte final', html: 'O gabarito pode alterar sangria, dobras, área do código de barras ou tolerância da lombada. Se houver diferença, siga o gabarito específico da gráfica.' },
20
+ ];
21
+
22
+ export const content: ToolLocaleContent<BookCoverBleedUI> = { slug: 'calculadora-capa-livro-sangria-lombada', title: 'Calculadora de sangria e lombada de capa de livro', description: 'Calcule o tamanho completo de uma capa mole com corte, páginas, espessura do papel, lombada e sangria.', ui, seo, faq: [{ question: 'O que inclui a largura total?', answer: 'Quarta capa, lombada, capa frontal e sangria nas duas bordas externas.' }, { question: 'Como a lombada é calculada?', answer: 'As páginas internas são multiplicadas pela espessura do papel por página.' }, { question: 'Por que informar a espessura do papel?', answer: 'A largura real da lombada depende do papel escolhido para a produção.' }, { question: 'O resultado está pronto para imprimir?', answer: 'É uma medida de planejamento. Compare sempre com o gabarito da gráfica.' }], bibliography, howTo: [{ name: 'Escolha um formato', text: 'Selecione o preset mais próximo do seu livro.' }, { name: 'Informe as medidas', text: 'Configure corte, páginas, papel e sangria.' }, { name: 'Revise a prova', text: 'Confira lombada, linhas de corte e zonas seguras.' }, { name: 'Prepare o arquivo', text: 'Use as dimensões completas e verifique o gabarito.' }], schemas: [{ '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: 'Calculadora de sangria e lombada de capa de livro', applicationCategory: 'DesignApplication', operatingSystem: 'Any', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' } }, { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: [{ '@type': 'Question', name: 'O que inclui a largura total?', acceptedAnswer: { '@type': 'Answer', text: 'Inclui os dois painéis, a lombada e a sangria externa.' } }, { '@type': 'Question', name: 'Como a lombada é calculada?', acceptedAnswer: { '@type': 'Answer', text: 'Multiplica páginas pela espessura do papel.' } }] }, { '@context': 'https://schema.org', '@type': 'HowTo', name: 'Calcular uma capa completa', step: [{ '@type': 'HowToStep', name: 'Escolha um formato', text: 'Selecione um preset.' }, { '@type': 'HowToStep', name: 'Informe as medidas', text: 'Configure corte, páginas, papel e sangria.' }, { '@type': 'HowToStep', name: 'Revise a prova', text: 'Confira lombada e zonas seguras.' }, { '@type': 'HowToStep', name: 'Prepare o arquivo', text: 'Use dimensões e gabarito.' }] }] };
@@ -0,0 +1,22 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+ import { bibliography } from '../bibliography';
3
+ import type { BookCoverBleedUI } from '../ui';
4
+
5
+ const ui: BookCoverBleedUI = {
6
+ presetLabel: 'Начните с формата обложки', tradePreset: 'Обычная мягкая обложка', a5Preset: 'Мягкая обложка A5', digestPreset: 'Мягкая обложка дайджест', unitLabel: 'Система измерения', metricLabel: 'Метрическая мм', imperialLabel: 'Имперская дюймы', trimWidthLabel: 'Ширина обрезки', trimHeightLabel: 'Высота обрезки', pageCountLabel: 'Страницы блока', pageThicknessLabel: 'Толщина бумаги на страницу', bleedLabel: 'Вылет за каждый внешний край', spineSafetyLabel: 'Безопасное поле текста корешка в макете', spineLabel: 'Ширина корешка', fullWidthLabel: 'Полная ширина обложки', fullHeightLabel: 'Полная высота обложки', safeSpineLabel: 'Безопасная ширина корешка', backLabel: 'Задняя обложка', frontLabel: 'Передняя обложка', spineAreaLabel: 'Расчётный корешок', trimLineLabel: 'Линия обрезки', bleedZoneLabel: 'Зона вылета', safetyZoneLabel: 'Безопасная зона', copyLabel: 'Скопировать размер обложки', copiedLabel: 'Размер обложки скопирован', readyLabel: 'Область макета готова', readyDetail: 'Продлите изображение до вылета и оставьте текст внутри безопасных зон.', narrowSpineLabel: 'Проверьте корешок', narrowSpineDetail: 'Корешок уже стандартного безопасного отступа для текста.', invalidLabel: 'Проверьте значения обложки',
7
+ };
8
+
9
+ const seo: ToolLocaleContent<BookCoverBleedUI>['seo'] = [
10
+ { type: 'title', text: 'Рассчитайте полный размер обложки книги с вылетом и корешком', level: 2 },
11
+ { type: 'paragraph', html: 'Подготовьте мягкую обложку, указав ширину и высоту обрезки, число страниц, толщину бумаги на страницу и вылет. Калькулятор покажет корешок, полную ширину, полную высоту и развёрнутый макет.' },
12
+ { type: 'title', text: 'Что входит в полный размер обложки', level: 2 },
13
+ { type: 'paragraph', html: 'Развёрнутая обложка объединяет заднюю часть, корешок и переднюю часть в одном горизонтальном файле. Ширина складывает две панели обрезки, рассчитанный корешок и вылет с обеих внешних сторон. Высота включает обрезку и верхний и нижний вылет.' },
14
+ { type: 'list', items: ['Выберите формат как реалистичную отправную точку.', 'Замените примеры данными типографии.', 'Используйте макет, чтобы увидеть обрезку, корешок, вылет и безопасные зоны.', 'Скопируйте полный размер в документ и сравните его с шаблоном печати.'] },
15
+ { type: 'title', text: 'Как читать вылет линию обрезки и безопасные зоны', level: 2 },
16
+ { type: 'paragraph', html: 'Вылет продолжает изображения за линию обрезки и помогает избежать белой полосы при небольшом смещении реза. Линия обрезки показывает готовый край. Зелёная безопасная зона помогает планировать текст, но не заменяет допуски конкретной типографии.' },
17
+ { type: 'title', text: 'Используйте корешок как производственную оценку', level: 2 },
18
+ { type: 'paragraph', html: 'Ширина корешка рассчитывается по числу страниц и указанной толщине бумаги. Бумага, способ скрепления, клей и производственные допуски могут изменить итоговый размер, поэтому проверьте финальный шаблон.' },
19
+ { type: 'tip', title: 'Проверьте шаблон типографии до финального оформления', html: 'Шаблон может изменить вылет, положение сгибов, область штрихкода или допуск корешка. При расхождении используйте шаблон типографии.' },
20
+ ];
21
+
22
+ export const content: ToolLocaleContent<BookCoverBleedUI> = { slug: 'raschet-oblozhki-knigi-s-vyletom-i-koreshkom', title: 'Калькулятор вылета и корешка обложки книги', description: 'Рассчитайте полный размер мягкой обложки по обрезке, страницам, толщине бумаги, корешку и вылету.', ui, seo, faq: [{ question: 'Что входит в полную ширину?', answer: 'Задняя обложка, корешок, передняя обложка и вылет по внешним краям.' }, { question: 'Как рассчитывается корешок?', answer: 'Число страниц умножается на толщину бумаги на страницу.' }, { question: 'Зачем указывать толщину бумаги?', answer: 'Настоящая ширина корешка зависит от бумаги в конкретном заказе.' }, { question: 'Результат готов для печати?', answer: 'Это размер для планирования. Сравните его с шаблоном типографии.' }], bibliography, howTo: [{ name: 'Выберите формат', text: 'Выберите пресет, близкий к вашей книге.' }, { name: 'Введите размеры', text: 'Укажите обрезку, страницы, бумагу и вылет.' }, { name: 'Проверьте макет', text: 'Проверьте корешок, линии обрезки и безопасные зоны.' }, { name: 'Подготовьте файл', text: 'Используйте полный размер и проверьте шаблон.' }], schemas: [{ '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: 'Калькулятор вылета и корешка обложки книги', applicationCategory: 'DesignApplication', operatingSystem: 'Any', offers: { '@type': 'Offer', price: '0', priceCurrency: 'RUB' } }, { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: [{ '@type': 'Question', name: 'Что входит в полную ширину?', acceptedAnswer: { '@type': 'Answer', text: 'Задняя часть, корешок, передняя часть и вылет.' } }, { '@type': 'Question', name: 'Как рассчитывается корешок?', acceptedAnswer: { '@type': 'Answer', text: 'Страницы умножаются на толщину бумаги.' } }] }, { '@context': 'https://schema.org', '@type': 'HowTo', name: 'Рассчитать полный размер книжной обложки', step: [{ '@type': 'HowToStep', name: 'Выберите формат', text: 'Выберите пресет.' }, { '@type': 'HowToStep', name: 'Введите размеры', text: 'Укажите обрезку, страницы, бумагу и вылет.' }, { '@type': 'HowToStep', name: 'Проверьте макет', text: 'Проверьте корешок и безопасные зоны.' }, { '@type': 'HowToStep', name: 'Подготовьте файл', text: 'Используйте размеры и шаблон.' }] }] };