@jjlmoya/utils-converters 1.22.0 → 1.24.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 (88) hide show
  1. package/package.json +1 -1
  2. package/src/category/index.ts +4 -0
  3. package/src/entries.ts +4 -1
  4. package/src/index.ts +3 -0
  5. package/src/shared/ImageToPdfConverter.astro +80 -0
  6. package/src/shared/image-to-pdf/controller.ts +173 -0
  7. package/src/shared/image-to-pdf/dom-views.ts +55 -0
  8. package/src/shared/image-to-pdf/evaluator.ts +18 -0
  9. package/src/shared/image-to-pdf/logic.test.ts +29 -0
  10. package/src/shared/image-to-pdf/logic.ts +214 -0
  11. package/src/shared/image-to-pdf/storage.ts +36 -0
  12. package/src/shared/image-to-pdf/ui.ts +39 -0
  13. package/src/shared/image-to-pdf.css +394 -0
  14. package/src/tests/i18n_coverage.test.ts +2 -3
  15. package/src/tests/locale_completeness.test.ts +2 -3
  16. package/src/tests/seo_translation_completeness.test.ts +69 -0
  17. package/src/tests/spanish_leakage.test.ts +5 -1
  18. package/src/tests/tool_validation.test.ts +2 -2
  19. package/src/tool/jpgToPdf/bibliography.astro +11 -0
  20. package/src/tool/jpgToPdf/bibliography.ts +12 -0
  21. package/src/tool/jpgToPdf/component.astro +10 -0
  22. package/src/tool/jpgToPdf/entry.ts +26 -0
  23. package/src/tool/jpgToPdf/i18n/de.ts +111 -0
  24. package/src/tool/jpgToPdf/i18n/en.ts +37 -0
  25. package/src/tool/jpgToPdf/i18n/es.ts +111 -0
  26. package/src/tool/jpgToPdf/i18n/fr.ts +111 -0
  27. package/src/tool/jpgToPdf/i18n/id.ts +111 -0
  28. package/src/tool/jpgToPdf/i18n/it.ts +111 -0
  29. package/src/tool/jpgToPdf/i18n/ja.ts +111 -0
  30. package/src/tool/jpgToPdf/i18n/ko.ts +111 -0
  31. package/src/tool/jpgToPdf/i18n/nl.ts +111 -0
  32. package/src/tool/jpgToPdf/i18n/pl.ts +111 -0
  33. package/src/tool/jpgToPdf/i18n/pt.ts +111 -0
  34. package/src/tool/jpgToPdf/i18n/ru.ts +111 -0
  35. package/src/tool/jpgToPdf/i18n/sv.ts +111 -0
  36. package/src/tool/jpgToPdf/i18n/tr.ts +111 -0
  37. package/src/tool/jpgToPdf/i18n/zh.ts +111 -0
  38. package/src/tool/jpgToPdf/index.ts +11 -0
  39. package/src/tool/jpgToPdf/jpg-to-pdf-converter.css +3 -0
  40. package/src/tool/jpgToPdf/seo.astro +12 -0
  41. package/src/tool/pngAJpg/i18n/ko.ts +1 -1
  42. package/src/tool/pngAJpg/i18n/ru.ts +1 -1
  43. package/src/tool/pngAJpg/i18n/zh.ts +1 -1
  44. package/src/tool/pngToPdf/bibliography.astro +11 -0
  45. package/src/tool/pngToPdf/bibliography.ts +12 -0
  46. package/src/tool/pngToPdf/component.astro +10 -0
  47. package/src/tool/pngToPdf/entry.ts +26 -0
  48. package/src/tool/pngToPdf/i18n/de.ts +111 -0
  49. package/src/tool/pngToPdf/i18n/en.ts +37 -0
  50. package/src/tool/pngToPdf/i18n/es.ts +111 -0
  51. package/src/tool/pngToPdf/i18n/fr.ts +111 -0
  52. package/src/tool/pngToPdf/i18n/id.ts +111 -0
  53. package/src/tool/pngToPdf/i18n/it.ts +111 -0
  54. package/src/tool/pngToPdf/i18n/ja.ts +111 -0
  55. package/src/tool/pngToPdf/i18n/ko.ts +111 -0
  56. package/src/tool/pngToPdf/i18n/nl.ts +111 -0
  57. package/src/tool/pngToPdf/i18n/pl.ts +111 -0
  58. package/src/tool/pngToPdf/i18n/pt.ts +111 -0
  59. package/src/tool/pngToPdf/i18n/ru.ts +111 -0
  60. package/src/tool/pngToPdf/i18n/sv.ts +111 -0
  61. package/src/tool/pngToPdf/i18n/tr.ts +111 -0
  62. package/src/tool/pngToPdf/i18n/zh.ts +111 -0
  63. package/src/tool/pngToPdf/index.ts +11 -0
  64. package/src/tool/pngToPdf/png-to-pdf-converter.css +3 -0
  65. package/src/tool/pngToPdf/seo.astro +12 -0
  66. package/src/tool/webpToPdf/bibliography.astro +11 -0
  67. package/src/tool/webpToPdf/bibliography.ts +12 -0
  68. package/src/tool/webpToPdf/component.astro +10 -0
  69. package/src/tool/webpToPdf/entry.ts +26 -0
  70. package/src/tool/webpToPdf/i18n/de.ts +111 -0
  71. package/src/tool/webpToPdf/i18n/en.ts +37 -0
  72. package/src/tool/webpToPdf/i18n/es.ts +111 -0
  73. package/src/tool/webpToPdf/i18n/fr.ts +111 -0
  74. package/src/tool/webpToPdf/i18n/id.ts +111 -0
  75. package/src/tool/webpToPdf/i18n/it.ts +111 -0
  76. package/src/tool/webpToPdf/i18n/ja.ts +111 -0
  77. package/src/tool/webpToPdf/i18n/ko.ts +111 -0
  78. package/src/tool/webpToPdf/i18n/nl.ts +111 -0
  79. package/src/tool/webpToPdf/i18n/pl.ts +111 -0
  80. package/src/tool/webpToPdf/i18n/pt.ts +111 -0
  81. package/src/tool/webpToPdf/i18n/ru.ts +111 -0
  82. package/src/tool/webpToPdf/i18n/sv.ts +111 -0
  83. package/src/tool/webpToPdf/i18n/tr.ts +111 -0
  84. package/src/tool/webpToPdf/i18n/zh.ts +111 -0
  85. package/src/tool/webpToPdf/index.ts +11 -0
  86. package/src/tool/webpToPdf/seo.astro +12 -0
  87. package/src/tool/webpToPdf/webp-to-pdf-converter.css +3 -0
  88. package/src/tools.ts +9 -1
@@ -0,0 +1,111 @@
1
+ import { generateSchemas } from '../../../shared/logic/schemas';
2
+ import { bibliography } from '../bibliography';
3
+ import type { JpgToPdfLocaleContent } from '../entry';
4
+ import type { ImageToPdfUI } from '../../../shared/image-to-pdf/ui';
5
+
6
+ const slug = 'jpg-in-pdf-umwandeln';
7
+ const title = "JPG in PDF Umwandler";
8
+ const description = "Wandeln Sie JPG-Bilder direkt im Browser in ein geordnetes PDF um. Wählen Sie Papierformat, Ausrichtung und Ränder ohne Upload.";
9
+
10
+ const ui: ImageToPdfUI = {
11
+ formatLabel: 'JPG',
12
+ dropTitle: "PDF aus JPG-Bildern erstellen",
13
+ dropText: "Ziehen Sie JPG-Dateien hierher. Die Reihenfolge bestimmt die Seitennummerierung.",
14
+ selectFiles: "JPG-Dateien auswählen",
15
+ privacyNote: "Alles bleibt im Browser. Ihre Bilder werden nicht hochgeladen.",
16
+ optionsTitle: "Druckblatt",
17
+ settingsTitle: "Papiereinstellungen",
18
+ pageSizeLabel: "Papierformat",
19
+ a4: 'A4',
20
+ letter: 'Letter',
21
+ orientationLabel: "Ausrichtung",
22
+ portrait: "Hochformat",
23
+ landscape: "Querformat",
24
+ marginLabel: "Ränder",
25
+ pagesTitle: "Seiten",
26
+ reorderHint: "Seiten vor dem Export nach oben oder unten verschieben.",
27
+ page: "Seite",
28
+ pageSingular: "Seite",
29
+ pagePlural: "Seiten",
30
+ moveUp: "Nach oben",
31
+ moveDown: "Nach unten",
32
+ remove: "Entfernen",
33
+ emptyPages: "Ihre ausgewählten Bilder erscheinen hier.",
34
+ createPdf: "PDF erstellen",
35
+ reset: "Neu starten",
36
+ ready: "Bereit für Ihre Bilder",
37
+ processing: "Bild wird vorbereitet",
38
+ error: "Bild konnte nicht gelesen werden",
39
+ downloadPdf: "PDF herunterladen",
40
+ building: "PDF wird erstellt",
41
+ pdfReady: "Ihr PDF ist bereit",
42
+ invalidFile: "Dieses Tool akzeptiert nur JPG- und JPEG-Dateien.",
43
+ bibliographyTitle: "Referenzen",
44
+ faqTitle: "Häufig gestellte Fragen",
45
+ };
46
+
47
+ const faq: JpgToPdfLocaleContent['faq'] = [
48
+ {
49
+ "question": "Kann ich mehrere JPG-Bilder in ein PDF zusammenfügen?",
50
+ "answer": "Ja. Wählen Sie beliebig viele JPG-Dateien aus, ordnen Sie die Seiten an und exportieren Sie ein einzelnes PDF."
51
+ },
52
+ {
53
+ "question": "Werden meine Bilder auf einen Server hochgeladen?",
54
+ "answer": "Nein. Alle Bilder werden lokal im Browser verarbeitet und verlassen Ihr Gerät nicht."
55
+ },
56
+ {
57
+ "question": "Kann ich das Papierformat wählen?",
58
+ "answer": "Ja. Sie können A4 oder Letter sowie Hoch- oder Querformat und Ränder festlegen."
59
+ }
60
+ ];
61
+
62
+ const howTo: JpgToPdfLocaleContent['howTo'] = [
63
+ {
64
+ "name": "JPG-Bilder auswählen",
65
+ "text": "Ziehen Sie Ihre JPG-Dateien in den Arbeitsbereich oder wählen Sie diese über den Dateidialog aus."
66
+ },
67
+ {
68
+ "name": "Seiten anordnen",
69
+ "text": "Verschieben Sie die Seiten in die gewünschte Reihenfolge und legen Sie Papierformat und Ränder fest."
70
+ },
71
+ {
72
+ "name": "PDF erstellen",
73
+ "text": "Klicken Sie auf PDF erstellen und laden Sie das Dokument herunter."
74
+ }
75
+ ];
76
+
77
+ const seo: JpgToPdfLocaleContent['seo'] = [
78
+ {
79
+ "type": "title",
80
+ "text": "JPG-Bilder in ein druckfähiges PDF verwandeln",
81
+ "level": 2
82
+ },
83
+ {
84
+ "type": "paragraph",
85
+ "html": "Dieser JPG-in-PDF-Umwandler ermöglicht es Ihnen, mehrere Fotos oder Scans in ein einziges, übersichtliches PDF-Dokument zusammenzufügen. Passen Sie die Reihenfolge und die Papiereinstellungen individuell an."
86
+ },
87
+ {
88
+ "type": "title",
89
+ "text": "Saubere Dokumente ohne Qualitätsverlust",
90
+ "level": 3
91
+ },
92
+ {
93
+ "type": "list",
94
+ "icon": "mdi:check-circle",
95
+ "items": [
96
+ "Sortieren Sie Ihre Bilder für eine perfekte Seitenabfolge.",
97
+ "Wählen Sie das Hochformat für Standarddokumente oder Querformat für Breitmotive.",
98
+ "Erhöhen Sie die Ränder für einen optimalen Ausdruck auf Heimdruckern."
99
+ ]
100
+ },
101
+ {
102
+ "type": "tip",
103
+ "title": "Maximale Privatsphäre garantiert",
104
+ "html": "Da die Konvertierung komplett im Browser stattfindet, bleiben vertrauliche Dokumente und persönliche Fotos geschützt."
105
+ }
106
+ ];
107
+
108
+ export const content: JpgToPdfLocaleContent = {
109
+ slug, title, description, ui, seo, faq, bibliography, howTo,
110
+ schemas: generateSchemas({ title, description, inLanguage: 'de', faq, howTo }),
111
+ };
@@ -0,0 +1,37 @@
1
+ import { generateSchemas } from '../../../shared/logic/schemas';
2
+ import { bibliography } from '../bibliography';
3
+ import type { JpgToPdfLocaleContent } from '../entry';
4
+ import type { ImageToPdfUI } from '../../../shared/image-to-pdf/ui';
5
+
6
+ const slug = 'jpg-to-pdf-converter';
7
+ const title = 'JPG to PDF Converter';
8
+ const description = 'Turn JPG images into an ordered PDF in your browser. Choose paper size, orientation and margins without uploading files.';
9
+
10
+ const ui: ImageToPdfUI = {
11
+ formatLabel: 'JPG', dropTitle: 'Build a PDF from your JPG images', dropText: 'Drop one or more JPG files here. The order you choose becomes the page order.', selectFiles: 'Select JPG files', privacyNote: 'Everything stays in this browser. Your images are never uploaded.', optionsTitle: 'Print sheet', settingsTitle: 'Paper settings', pageSizeLabel: 'Paper size', a4: 'A4', letter: 'Letter', orientationLabel: 'Orientation', portrait: 'Portrait', landscape: 'Landscape', marginLabel: 'Margins', pagesTitle: 'Pages', reorderHint: 'Move pages up or down before exporting.', page: 'Page', pageSingular: 'page', pagePlural: 'pages', moveUp: 'Move up', moveDown: 'Move down', remove: 'Remove', emptyPages: 'Your selected images will appear here.', createPdf: 'Create PDF', reset: 'Start over', ready: 'Ready for your images', processing: 'Preparing image', error: 'Could not read this JPG', downloadPdf: 'Download PDF', building: 'Building PDF', pdfReady: 'Your PDF is ready', invalidFile: 'This tool accepts JPG and JPEG files only.', bibliographyTitle: 'References', faqTitle: 'Frequently asked questions',
12
+ };
13
+
14
+ const faq: JpgToPdfLocaleContent['faq'] = [
15
+ { question: 'Can I put several JPG images into one PDF?', answer: 'Yes. Select as many JPG files as you need, arrange the page order with the move buttons, and export one PDF.' },
16
+ { question: 'Are my JPG images uploaded anywhere?', answer: 'No. The images are read and composed locally by your browser. They are not sent to a server.' },
17
+ { question: 'Can I print the PDF as A4 or Letter?', answer: 'Yes. Choose A4 or Letter, then set portrait or landscape orientation and adjust the margins before creating the PDF.' },
18
+ ];
19
+
20
+ const howTo: JpgToPdfLocaleContent['howTo'] = [
21
+ { name: 'Select JPG images', text: 'Drop JPG files into the workspace or use the file picker to choose them from your device.' },
22
+ { name: 'Arrange and set the paper', text: 'Move pages into the desired order, then choose A4 or Letter, orientation and margins.' },
23
+ { name: 'Create and download', text: 'Select Create PDF and download the finished document when the ready message appears.' },
24
+ ];
25
+
26
+ const seo: JpgToPdfLocaleContent['seo'] = [
27
+ { type: 'title', text: 'Make a printable PDF from JPG images', level: 2 },
28
+ { type: 'paragraph', html: 'This JPG to PDF converter is designed for image collections that need to become one printable document. Add the files in any order, correct the sequence, and choose the paper settings before you export.' },
29
+ { type: 'title', text: 'Prepare a clean image document', level: 3 },
30
+ { type: 'list', icon: 'mdi:check-circle', items: ['Use the page controls to put a cover or first photograph at the front.', 'Choose portrait for most photographs and landscape for wide images.', 'Increase the margin when the PDF will be printed on a home printer.', 'Use the preview list to spot a missing or duplicated image before export.'] },
31
+ { type: 'tip', title: 'Keep sensitive photographs private', html: 'The conversion runs in the browser, so private scans, receipts and client images stay on your device.' },
32
+ ];
33
+
34
+ export const content: JpgToPdfLocaleContent = {
35
+ slug, title, description, ui, seo, faq, bibliography, howTo,
36
+ schemas: generateSchemas({ title, description, inLanguage: 'en', faq, howTo }),
37
+ };
@@ -0,0 +1,111 @@
1
+ import { generateSchemas } from '../../../shared/logic/schemas';
2
+ import { bibliography } from '../bibliography';
3
+ import type { JpgToPdfLocaleContent } from '../entry';
4
+ import type { ImageToPdfUI } from '../../../shared/image-to-pdf/ui';
5
+
6
+ const slug = 'convertidor-jpg-a-pdf';
7
+ const title = "Convertidor de JPG a PDF";
8
+ const description = "Convierte imágenes JPG en un PDF ordenado desde tu navegador. Elige tamaño de papel, orientación y márgenes sin subir archivos.";
9
+
10
+ const ui: ImageToPdfUI = {
11
+ formatLabel: 'JPG',
12
+ dropTitle: "Crea un PDF a partir de tus imágenes JPG",
13
+ dropText: "Arrastra archivos JPG aquí. El orden que elijas será el orden de las páginas.",
14
+ selectFiles: "Seleccionar archivos JPG",
15
+ privacyNote: "Todo se procesa en tu navegador. Tus imágenes nunca se suben.",
16
+ optionsTitle: "Hoja de impresión",
17
+ settingsTitle: "Ajustes de papel",
18
+ pageSizeLabel: "Tamaño de papel",
19
+ a4: 'A4',
20
+ letter: 'Letter',
21
+ orientationLabel: "Orientación",
22
+ portrait: "Vertical",
23
+ landscape: "Horizontal",
24
+ marginLabel: "Márgenes",
25
+ pagesTitle: "Páginas",
26
+ reorderHint: "Mueve las páginas arriba o abajo antes de exportar.",
27
+ page: "Página",
28
+ pageSingular: "página",
29
+ pagePlural: "páginas",
30
+ moveUp: "Subir",
31
+ moveDown: "Bajar",
32
+ remove: "Eliminar",
33
+ emptyPages: "Tus imágenes seleccionadas aparecerán aquí.",
34
+ createPdf: "Crear PDF",
35
+ reset: "Empezar de nuevo",
36
+ ready: "Listo para tus imágenes",
37
+ processing: "Preparando imagen",
38
+ error: "No se pudo leer la imagen",
39
+ downloadPdf: "Descargar PDF",
40
+ building: "Generando PDF",
41
+ pdfReady: "Tu PDF está listo",
42
+ invalidFile: "Esta herramienta solo acepta archivos JPG y JPEG.",
43
+ bibliographyTitle: "Referencias",
44
+ faqTitle: "Preguntas frecuentes",
45
+ };
46
+
47
+ const faq: JpgToPdfLocaleContent['faq'] = [
48
+ {
49
+ "question": "¿Puedo juntar varias imágenes JPG en un solo PDF?",
50
+ "answer": "Sí. Selecciona los archivos JPG que necesites, ordena las páginas y exporta un único PDF."
51
+ },
52
+ {
53
+ "question": "¿Se suben mis imágenes a algún servidor?",
54
+ "answer": "No. Todo el proceso se realiza localmente en tu navegador."
55
+ },
56
+ {
57
+ "question": "¿Puedo elegir el tamaño de papel A4 o Carta?",
58
+ "answer": "Sí. Puedes seleccionar A4 o Letter, así como la orientación y los márgenes."
59
+ }
60
+ ];
61
+
62
+ const howTo: JpgToPdfLocaleContent['howTo'] = [
63
+ {
64
+ "name": "Selecciona las imágenes JPG",
65
+ "text": "Arrastra tus archivos JPG o elígelos desde tu dispositivo."
66
+ },
67
+ {
68
+ "name": "Organiza las páginas y el papel",
69
+ "text": "Ordena las imágenes y configura el formato A4/Letter, orientación y márgenes."
70
+ },
71
+ {
72
+ "name": "Genera y descarga el PDF",
73
+ "text": "Haz clic en Crear PDF y descarga el archivo resultante."
74
+ }
75
+ ];
76
+
77
+ const seo: JpgToPdfLocaleContent['seo'] = [
78
+ {
79
+ "type": "title",
80
+ "text": "Crea un documento PDF listo para imprimir desde tus imágenes JPG",
81
+ "level": 2
82
+ },
83
+ {
84
+ "type": "paragraph",
85
+ "html": "Este convertidor de JPG a PDF está pensado para unificar listas de fotos, escaneos o documentos en un solo archivo organizado. Reordena las páginas y ajusta el tipo de papel antes de exportar."
86
+ },
87
+ {
88
+ "type": "title",
89
+ "text": "Prepara documentos digitales impecables",
90
+ "level": 3
91
+ },
92
+ {
93
+ "type": "list",
94
+ "icon": "mdi:check-circle",
95
+ "items": [
96
+ "Organiza las páginas para colocar portadas o fotos principales al inicio.",
97
+ "Elige formato vertical u horizontal según la composición de tus imágenes.",
98
+ "Ajusta los márgenes para asegurar una impresión limpia en cualquier impresora."
99
+ ]
100
+ },
101
+ {
102
+ "type": "tip",
103
+ "title": "Tus fotos privadas siempre seguras",
104
+ "html": "Al ejecutarse completamente en tu navegador, tus recibos, documentos o fotos personales no se envían a servidores externos."
105
+ }
106
+ ];
107
+
108
+ export const content: JpgToPdfLocaleContent = {
109
+ slug, title, description, ui, seo, faq, bibliography, howTo,
110
+ schemas: generateSchemas({ title, description, inLanguage: 'es', faq, howTo }),
111
+ };
@@ -0,0 +1,111 @@
1
+ import { generateSchemas } from '../../../shared/logic/schemas';
2
+ import { bibliography } from '../bibliography';
3
+ import type { JpgToPdfLocaleContent } from '../entry';
4
+ import type { ImageToPdfUI } from '../../../shared/image-to-pdf/ui';
5
+
6
+ const slug = 'convertisseur-jpg-en-pdf';
7
+ const title = "Convertisseur JPG en PDF";
8
+ const description = "Transformez des images JPG en un PDF ordonné dans votre navigateur. Choisissez le format de papier, l orientation et les marges sans téléverser de fichier.";
9
+
10
+ const ui: ImageToPdfUI = {
11
+ formatLabel: 'JPG',
12
+ dropTitle: "Créez un PDF à partir de vos images JPG",
13
+ dropText: "Déposez des fichiers JPG ici. L ordre choisi sera l ordre des pages.",
14
+ selectFiles: "Sélectionner les fichiers JPG",
15
+ privacyNote: "Tout reste dans le navigateur. Vos images ne sont jamais téléchargées.",
16
+ optionsTitle: "Feuille d impression",
17
+ settingsTitle: "Paramètres du papier",
18
+ pageSizeLabel: "Taille du papier",
19
+ a4: 'A4',
20
+ letter: 'Letter',
21
+ orientationLabel: "Orientation",
22
+ portrait: "Portrait",
23
+ landscape: "Paysage",
24
+ marginLabel: "Marges",
25
+ pagesTitle: "Pages",
26
+ reorderHint: "Déplacez les pages avant l exportation.",
27
+ page: "Page",
28
+ pageSingular: "page",
29
+ pagePlural: "pages",
30
+ moveUp: "Monter",
31
+ moveDown: "Descendre",
32
+ remove: "Supprimer",
33
+ emptyPages: "Vos images sélectionnées apparaîtront ici.",
34
+ createPdf: "Créer le PDF",
35
+ reset: "Recommencer",
36
+ ready: "Prêt pour vos images",
37
+ processing: "Préparation de l image",
38
+ error: "Impossible de lire l image",
39
+ downloadPdf: "Télécharger le PDF",
40
+ building: "Création du PDF",
41
+ pdfReady: "Votre PDF est prêt",
42
+ invalidFile: "Cet outil accepte uniquement les fichiers JPG et JPEG.",
43
+ bibliographyTitle: "Références",
44
+ faqTitle: "Foire aux questions",
45
+ };
46
+
47
+ const faq: JpgToPdfLocaleContent['faq'] = [
48
+ {
49
+ "question": "Puis-je regrouper plusieurs images JPG dans un seul PDF ?",
50
+ "answer": "Oui. Sélectionnez autant de fichiers JPG que nécessaire, réorganisez les pages et exportez un PDF unique."
51
+ },
52
+ {
53
+ "question": "Mes images sont-elles téléversées sur un serveur ?",
54
+ "answer": "Non. La conversion s effectue localement dans votre navigateur."
55
+ },
56
+ {
57
+ "question": "Puis-je choisir le format de papier ?",
58
+ "answer": "Oui. Vous pouvez définir le format A4 ou Lettre, l orientation et les marges."
59
+ }
60
+ ];
61
+
62
+ const howTo: JpgToPdfLocaleContent['howTo'] = [
63
+ {
64
+ "name": "Sélectionnez les images JPG",
65
+ "text": "Glissez vos fichiers JPG ou choisissez-les depuis votre appareil."
66
+ },
67
+ {
68
+ "name": "Organisez les pages",
69
+ "text": "Ajustez l ordre des pages, choisissez le format A4/Lettre et les marges."
70
+ },
71
+ {
72
+ "name": "Créez et téléchargez",
73
+ "text": "Cliquez sur Créer le PDF puis téléchargez votre document."
74
+ }
75
+ ];
76
+
77
+ const seo: JpgToPdfLocaleContent['seo'] = [
78
+ {
79
+ "type": "title",
80
+ "text": "Convertissez vos images JPG en un PDF prêt à imprimer",
81
+ "level": 2
82
+ },
83
+ {
84
+ "type": "paragraph",
85
+ "html": "Ce convertisseur JPG en PDF permet d assembler plusieurs photos ou numérisations dans un seul document fluide. Ajustez la disposition des pages et les marges selon vos besoins."
86
+ },
87
+ {
88
+ "type": "title",
89
+ "text": "Un rendu propre et professionnel",
90
+ "level": 3
91
+ },
92
+ {
93
+ "type": "list",
94
+ "icon": "mdi:check-circle",
95
+ "items": [
96
+ "Reclassez facilement vos images avant l exportation.",
97
+ "Choisissez l orientation portrait ou paysage adaptée à vos visuels.",
98
+ "Définissez des marges adaptées à votre imprimante."
99
+ ]
100
+ },
101
+ {
102
+ "type": "tip",
103
+ "title": "Confidentialité totale",
104
+ "html": "Le traitement est effectué en local sur votre appareil, garantissant la sécurité de vos fichiers."
105
+ }
106
+ ];
107
+
108
+ export const content: JpgToPdfLocaleContent = {
109
+ slug, title, description, ui, seo, faq, bibliography, howTo,
110
+ schemas: generateSchemas({ title, description, inLanguage: 'fr', faq, howTo }),
111
+ };
@@ -0,0 +1,111 @@
1
+ import { generateSchemas } from '../../../shared/logic/schemas';
2
+ import { bibliography } from '../bibliography';
3
+ import type { JpgToPdfLocaleContent } from '../entry';
4
+ import type { ImageToPdfUI } from '../../../shared/image-to-pdf/ui';
5
+
6
+ const slug = 'konverter-jpg-ke-pdf';
7
+ const title = "Konverter JPG ke PDF";
8
+ const description = "Ubah gambar JPG menjadi dokumen PDF rapi di peramban. Pilih ukuran kertas, orientasi, dan margin tanpa mengunggah berkas.";
9
+
10
+ const ui: ImageToPdfUI = {
11
+ formatLabel: 'JPG',
12
+ dropTitle: "Buat PDF dari gambar JPG Anda",
13
+ dropText: "Tarik berkas JPG ke sini. Urutan yang Anda pilih menjadi urutan halaman.",
14
+ selectFiles: "Pilih berkas JPG",
15
+ privacyNote: "Semua diproses di peramban. Gambar Anda tidak pernah diunggah.",
16
+ optionsTitle: "Lembar cetak",
17
+ settingsTitle: "Pengaturan kertas",
18
+ pageSizeLabel: "Ukuran kertas",
19
+ a4: 'A4',
20
+ letter: 'Letter',
21
+ orientationLabel: "Orientasi",
22
+ portrait: "Potret",
23
+ landscape: "Lansekap",
24
+ marginLabel: "Margin",
25
+ pagesTitle: "Halaman",
26
+ reorderHint: "Ubah urutan halaman sebelum mengekspor.",
27
+ page: "Halaman",
28
+ pageSingular: "halaman",
29
+ pagePlural: "halaman",
30
+ moveUp: "Naik",
31
+ moveDown: "Turun",
32
+ remove: "Hapus",
33
+ emptyPages: "Gambar terpilih akan muncul di sini.",
34
+ createPdf: "Buat PDF",
35
+ reset: "Mulai ulang",
36
+ ready: "Siap untuk gambar Anda",
37
+ processing: "Menyiapkan gambar",
38
+ error: "Gagal membaca gambar",
39
+ downloadPdf: "Unduh PDF",
40
+ building: "Membuat PDF",
41
+ pdfReady: "PDF Anda siap",
42
+ invalidFile: "Alat ini hanya menerima berkas JPG dan JPEG.",
43
+ bibliographyTitle: "Referensi",
44
+ faqTitle: "Pertanyaan umum",
45
+ };
46
+
47
+ const faq: JpgToPdfLocaleContent['faq'] = [
48
+ {
49
+ "question": "Bisakah saya menggabungkan beberapa gambar JPG ke satu PDF?",
50
+ "answer": "Bisa. Pilih berkas JPG yang diinginkan, atur urutan halaman, dan ekspor menjadi satu dokumen PDF."
51
+ },
52
+ {
53
+ "question": "Apakah gambar saya diunggah ke internet?",
54
+ "answer": "Tidak. Semua proses konversi berjalan lokal di peramban Anda."
55
+ },
56
+ {
57
+ "question": "Bisakah saya memilih ukuran kertas A4 atau Letter?",
58
+ "answer": "Bisa. Anda dapat memilih A4 atau Letter serta mengatur orientasi dan margin."
59
+ }
60
+ ];
61
+
62
+ const howTo: JpgToPdfLocaleContent['howTo'] = [
63
+ {
64
+ "name": "Pilih gambar JPG",
65
+ "text": "Tarik berkas JPG atau pilih dari perangkat Anda."
66
+ },
67
+ {
68
+ "name": "Atur halaman dan kertas",
69
+ "text": "Urutkan gambar lalu tentukan ukuran kertas A4/Letter, orientasi, dan margin."
70
+ },
71
+ {
72
+ "name": "Buat dan unduh PDF",
73
+ "text": "Klik Buat PDF lalu unduh dokumen yang telah selesai."
74
+ }
75
+ ];
76
+
77
+ const seo: JpgToPdfLocaleContent['seo'] = [
78
+ {
79
+ "type": "title",
80
+ "text": "Ubah kumpulan gambar JPG menjadi dokumen PDF siap cetak",
81
+ "level": 2
82
+ },
83
+ {
84
+ "type": "paragraph",
85
+ "html": "Konverter JPG ke PDF ini dirancang untuk menyatukan foto atau dokumen hasil pemindaian menjadi satu berkas PDF yang rapi. Atur urutan halaman dan sesuaikan pengaturan kertas sebelum mengunduh."
86
+ },
87
+ {
88
+ "type": "title",
89
+ "text": "Dokumen rapi tanpa rumit",
90
+ "level": 3
91
+ },
92
+ {
93
+ "type": "list",
94
+ "icon": "mdi:check-circle",
95
+ "items": [
96
+ "Urutkan foto agar halaman sampul atau gambar utama berada di depan.",
97
+ "Pilih orientasi potret atau lansekap sesuai jenis gambar Anda.",
98
+ "Sesuaikan margin agar hasil cetak di printer fisik terlihat sempurna."
99
+ ]
100
+ },
101
+ {
102
+ "type": "tip",
103
+ "title": "Keamanan data terjamin",
104
+ "html": "Proses konversi berlangsung sepenuhnya di peramban Anda tanpa melalui server luar."
105
+ }
106
+ ];
107
+
108
+ export const content: JpgToPdfLocaleContent = {
109
+ slug, title, description, ui, seo, faq, bibliography, howTo,
110
+ schemas: generateSchemas({ title, description, inLanguage: 'id', faq, howTo }),
111
+ };
@@ -0,0 +1,111 @@
1
+ import { generateSchemas } from '../../../shared/logic/schemas';
2
+ import { bibliography } from '../bibliography';
3
+ import type { JpgToPdfLocaleContent } from '../entry';
4
+ import type { ImageToPdfUI } from '../../../shared/image-to-pdf/ui';
5
+
6
+ const slug = 'convertitore-da-jpg-a-pdf';
7
+ const title = "Convertitore da JPG a PDF";
8
+ const description = "Converti immagini JPG in un PDF ordinato nel tuo browser. Scegli formato carta, orientamento e margini senza caricare file.";
9
+
10
+ const ui: ImageToPdfUI = {
11
+ formatLabel: 'JPG',
12
+ dropTitle: "Crea un PDF dalle tue immagini JPG",
13
+ dropText: "Trascina qui i file JPG. L ordine scelto sarà l ordine delle pagine.",
14
+ selectFiles: "Seleziona file JPG",
15
+ privacyNote: "Tutto viene elaborato nel browser. Le tue immagini non vengono caricate.",
16
+ optionsTitle: "Foglio di stampa",
17
+ settingsTitle: "Impostazioni carta",
18
+ pageSizeLabel: "Formato carta",
19
+ a4: 'A4',
20
+ letter: 'Letter',
21
+ orientationLabel: "Orientamento",
22
+ portrait: "Verticale",
23
+ landscape: "Orizzontale",
24
+ marginLabel: "Margini",
25
+ pagesTitle: "Pagine",
26
+ reorderHint: "Sposta le pagine prima di esportare.",
27
+ page: "Pagina",
28
+ pageSingular: "pagina",
29
+ pagePlural: "pagine",
30
+ moveUp: "Sposta su",
31
+ moveDown: "Sposta giù",
32
+ remove: "Rimuovi",
33
+ emptyPages: "Le immagini selezionate appariranno qui.",
34
+ createPdf: "Crea PDF",
35
+ reset: "Ricomincia",
36
+ ready: "Pronto per le tue immagini",
37
+ processing: "Preparazione immagine",
38
+ error: "Impossibile leggere l immagine",
39
+ downloadPdf: "Scarica PDF",
40
+ building: "Creazione PDF",
41
+ pdfReady: "Il tuo PDF è pronto",
42
+ invalidFile: "Questo strumento accetta solo file JPG e JPEG.",
43
+ bibliographyTitle: "Riferimenti",
44
+ faqTitle: "Domande frequenti",
45
+ };
46
+
47
+ const faq: JpgToPdfLocaleContent['faq'] = [
48
+ {
49
+ "question": "Posso unire più immagini JPG in un unico PDF?",
50
+ "answer": "Sì. Seleziona i file JPG desiderati, ordina le pagine ed esporta un unico documento PDF."
51
+ },
52
+ {
53
+ "question": "Le mie immagini vengono caricate su un server?",
54
+ "answer": "No. Tutto il processo avviene localmente nel tuo browser."
55
+ },
56
+ {
57
+ "question": "Posso scegliere il formato A4 o Lettera?",
58
+ "answer": "Sì. Puoi selezionare A4 o Letter, l orientamento e i margini."
59
+ }
60
+ ];
61
+
62
+ const howTo: JpgToPdfLocaleContent['howTo'] = [
63
+ {
64
+ "name": "Seleziona le immagini JPG",
65
+ "text": "Trascina i file JPG o sceglili dal tuo dispositivo."
66
+ },
67
+ {
68
+ "name": "Organizza le pagine",
69
+ "text": "Ordina le immagini e imposta formato A4/Letter, orientamento e margini."
70
+ },
71
+ {
72
+ "name": "Crea e scarica",
73
+ "text": "Clicca su Crea PDF e scarica il documento finale."
74
+ }
75
+ ];
76
+
77
+ const seo: JpgToPdfLocaleContent['seo'] = [
78
+ {
79
+ "type": "title",
80
+ "text": "Trasforma le tue immagini JPG in un PDF pronto per la stampa",
81
+ "level": 2
82
+ },
83
+ {
84
+ "type": "paragraph",
85
+ "html": "Questo convertitore da JPG a PDF ti permette di unire scansioni e foto in un unico documento organizzato. Personalizza l ordine delle pagine e la disposizione del foglio."
86
+ },
87
+ {
88
+ "type": "title",
89
+ "text": "Documenti ordinati in pochi clic",
90
+ "level": 3
91
+ },
92
+ {
93
+ "type": "list",
94
+ "icon": "mdi:check-circle",
95
+ "items": [
96
+ "Riordina le immagini prima di generare il file definitivo.",
97
+ "Scegli l orientamento verticale o orizzontale ideale.",
98
+ "Imposta i margini per una stampa senza tagli indesiderati."
99
+ ]
100
+ },
101
+ {
102
+ "type": "tip",
103
+ "title": "Massima privacy per i tuoi file",
104
+ "html": "I file vengono elaborati direttamente sul tuo dispositivo senza essere trasmessi online."
105
+ }
106
+ ];
107
+
108
+ export const content: JpgToPdfLocaleContent = {
109
+ slug, title, description, ui, seo, faq, bibliography, howTo,
110
+ schemas: generateSchemas({ title, description, inLanguage: 'it', faq, howTo }),
111
+ };