@jjlmoya/utils-audiovisual 1.7.0 → 1.8.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.
- package/package.json +2 -1
- package/src/category/i18n/de.ts +198 -0
- package/src/category/i18n/id.ts +198 -0
- package/src/category/i18n/it.ts +198 -0
- package/src/category/i18n/ja.ts +198 -0
- package/src/category/i18n/ko.ts +198 -0
- package/src/category/i18n/nl.ts +198 -0
- package/src/category/i18n/pl.ts +198 -0
- package/src/category/i18n/pt.ts +198 -0
- package/src/category/i18n/ru.ts +198 -0
- package/src/category/i18n/sv.ts +198 -0
- package/src/category/i18n/tr.ts +198 -0
- package/src/category/i18n/zh.ts +198 -0
- package/src/category/index.ts +31 -3
- package/src/tests/i18n_coverage.test.ts +36 -0
- package/src/tool/chromaticLens/i18n/de.ts +246 -0
- package/src/tool/chromaticLens/i18n/id.ts +246 -0
- package/src/tool/chromaticLens/i18n/it.ts +246 -0
- package/src/tool/chromaticLens/i18n/ja.ts +246 -0
- package/src/tool/chromaticLens/i18n/ko.ts +246 -0
- package/src/tool/chromaticLens/i18n/nl.ts +246 -0
- package/src/tool/chromaticLens/i18n/pl.ts +246 -0
- package/src/tool/chromaticLens/i18n/pt.ts +246 -0
- package/src/tool/chromaticLens/i18n/ru.ts +246 -0
- package/src/tool/chromaticLens/i18n/sv.ts +246 -0
- package/src/tool/chromaticLens/i18n/tr.ts +246 -0
- package/src/tool/chromaticLens/i18n/zh.ts +246 -0
- package/src/tool/chromaticLens/index.ts +15 -7
- package/src/tool/collageMaker/i18n/de.ts +233 -0
- package/src/tool/collageMaker/i18n/id.ts +233 -0
- package/src/tool/collageMaker/i18n/it.ts +233 -0
- package/src/tool/collageMaker/i18n/ja.ts +233 -0
- package/src/tool/collageMaker/i18n/ko.ts +233 -0
- package/src/tool/collageMaker/i18n/nl.ts +233 -0
- package/src/tool/collageMaker/i18n/pl.ts +233 -0
- package/src/tool/collageMaker/i18n/pt.ts +233 -0
- package/src/tool/collageMaker/i18n/ru.ts +233 -0
- package/src/tool/collageMaker/i18n/sv.ts +233 -0
- package/src/tool/collageMaker/i18n/tr.ts +233 -0
- package/src/tool/collageMaker/i18n/zh.ts +233 -0
- package/src/tool/collageMaker/index.ts +15 -6
- package/src/tool/exifCleaner/i18n/de.ts +277 -0
- package/src/tool/exifCleaner/i18n/fr.ts +1 -1
- package/src/tool/exifCleaner/i18n/id.ts +277 -0
- package/src/tool/exifCleaner/i18n/it.ts +277 -0
- package/src/tool/exifCleaner/i18n/ja.ts +277 -0
- package/src/tool/exifCleaner/i18n/ko.ts +277 -0
- package/src/tool/exifCleaner/i18n/nl.ts +277 -0
- package/src/tool/exifCleaner/i18n/pl.ts +277 -0
- package/src/tool/exifCleaner/i18n/pt.ts +277 -0
- package/src/tool/exifCleaner/i18n/ru.ts +277 -0
- package/src/tool/exifCleaner/i18n/sv.ts +277 -0
- package/src/tool/exifCleaner/i18n/tr.ts +277 -0
- package/src/tool/exifCleaner/i18n/zh.ts +277 -0
- package/src/tool/exifCleaner/index.ts +16 -8
- package/src/tool/imageCompressor/i18n/de.ts +242 -0
- package/src/tool/imageCompressor/i18n/en.ts +1 -1
- package/src/tool/imageCompressor/i18n/es.ts +1 -1
- package/src/tool/imageCompressor/i18n/id.ts +242 -0
- package/src/tool/imageCompressor/i18n/it.ts +242 -0
- package/src/tool/imageCompressor/i18n/ja.ts +242 -0
- package/src/tool/imageCompressor/i18n/ko.ts +242 -0
- package/src/tool/imageCompressor/i18n/nl.ts +242 -0
- package/src/tool/imageCompressor/i18n/pl.ts +242 -0
- package/src/tool/imageCompressor/i18n/pt.ts +242 -0
- package/src/tool/imageCompressor/i18n/ru.ts +242 -0
- package/src/tool/imageCompressor/i18n/sv.ts +242 -0
- package/src/tool/imageCompressor/i18n/tr.ts +242 -0
- package/src/tool/imageCompressor/i18n/zh.ts +244 -0
- package/src/tool/imageCompressor/index.ts +15 -7
- package/src/tool/printQualityCalculator/i18n/de.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/fr.ts +1 -1
- package/src/tool/printQualityCalculator/i18n/id.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/it.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/ja.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/ko.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/nl.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/pl.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/pt.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/ru.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/sv.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/tr.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/zh.ts +261 -0
- package/src/tool/printQualityCalculator/index.ts +15 -7
- package/src/tool/privacyBlur/i18n/de.ts +238 -0
- package/src/tool/privacyBlur/i18n/id.ts +238 -0
- package/src/tool/privacyBlur/i18n/it.ts +238 -0
- package/src/tool/privacyBlur/i18n/ja.ts +238 -0
- package/src/tool/privacyBlur/i18n/ko.ts +238 -0
- package/src/tool/privacyBlur/i18n/nl.ts +238 -0
- package/src/tool/privacyBlur/i18n/pl.ts +238 -0
- package/src/tool/privacyBlur/i18n/pt.ts +238 -0
- package/src/tool/privacyBlur/i18n/ru.ts +238 -0
- package/src/tool/privacyBlur/i18n/sv.ts +238 -0
- package/src/tool/privacyBlur/i18n/tr.ts +238 -0
- package/src/tool/privacyBlur/i18n/zh.ts +238 -0
- package/src/tool/privacyBlur/index.ts +15 -7
- package/src/tool/subtitleSync/i18n/de.ts +241 -0
- package/src/tool/subtitleSync/i18n/fr.ts +5 -5
- package/src/tool/subtitleSync/i18n/id.ts +241 -0
- package/src/tool/subtitleSync/i18n/it.ts +241 -0
- package/src/tool/subtitleSync/i18n/ja.ts +241 -0
- package/src/tool/subtitleSync/i18n/ko.ts +241 -0
- package/src/tool/subtitleSync/i18n/nl.ts +241 -0
- package/src/tool/subtitleSync/i18n/pl.ts +241 -0
- package/src/tool/subtitleSync/i18n/pt.ts +241 -0
- package/src/tool/subtitleSync/i18n/ru.ts +241 -0
- package/src/tool/subtitleSync/i18n/sv.ts +241 -0
- package/src/tool/subtitleSync/i18n/tr.ts +241 -0
- package/src/tool/subtitleSync/i18n/zh.ts +241 -0
- package/src/tool/subtitleSync/index.ts +15 -7
- package/src/tool/timelapseCalculator/i18n/de.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/fr.ts +2 -2
- package/src/tool/timelapseCalculator/i18n/id.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/it.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/ja.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/ko.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/nl.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/pl.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/pt.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/ru.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/sv.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/tr.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/zh.ts +169 -0
- package/src/tool/timelapseCalculator/index.ts +16 -8
- package/src/tool/tvDistance/i18n/de.ts +223 -0
- package/src/tool/tvDistance/i18n/id.ts +223 -0
- package/src/tool/tvDistance/i18n/it.ts +223 -0
- package/src/tool/tvDistance/i18n/ja.ts +223 -0
- package/src/tool/tvDistance/i18n/ko.ts +223 -0
- package/src/tool/tvDistance/i18n/nl.ts +223 -0
- package/src/tool/tvDistance/i18n/pl.ts +223 -0
- package/src/tool/tvDistance/i18n/pt.ts +223 -0
- package/src/tool/tvDistance/i18n/ru.ts +223 -0
- package/src/tool/tvDistance/i18n/sv.ts +223 -0
- package/src/tool/tvDistance/i18n/tr.ts +223 -0
- package/src/tool/tvDistance/i18n/zh.ts +223 -0
- package/src/tool/tvDistance/index.ts +15 -7
- package/src/tool/videoFrameExtractor/i18n/de.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/id.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/it.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/ja.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/ko.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/nl.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/pl.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/pt.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/ru.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/sv.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/tr.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/zh.ts +235 -0
- package/src/tool/videoFrameExtractor/index.ts +16 -8
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { CollageMakerUI, CollageMakerLocaleContent } from '../index';
|
|
3
|
+
|
|
4
|
+
const slug = 'kostenloser-online-foto-collage-maker-professionelle-kompositionen';
|
|
5
|
+
const title = 'Online Collage Maker: Professionelle Kompositionen entwerfen';
|
|
6
|
+
const description = 'Erstellen Sie in Sekundenschnelle kostenlos Fotocollagen. Wählen Sie aus mehreren Layouts, passen Sie Rahmen an und laden Sie sie in hoher Qualität ohne Wasserzeichen herunter.';
|
|
7
|
+
|
|
8
|
+
const ui: CollageMakerUI = {
|
|
9
|
+
dropTitle: "Bilder hierher ziehen",
|
|
10
|
+
dropSub: "oder {link} – min. 2, max. 9",
|
|
11
|
+
dropLink: "Dateien auswählen",
|
|
12
|
+
imgsLoaded: "Geladene Bilder",
|
|
13
|
+
layoutLabel: "Layout",
|
|
14
|
+
settingsLabel: "Einstellungen",
|
|
15
|
+
borderLabel: "Rahmen",
|
|
16
|
+
borderColorLabel: "Rahmenfarbe",
|
|
17
|
+
bgColorLabel: "Hintergrund",
|
|
18
|
+
downloadBtn: "Herunterladen",
|
|
19
|
+
previewTitle: "Vorschau",
|
|
20
|
+
needsImgs: "Sie benötigen {n} Bilder",
|
|
21
|
+
errorMin: "Sie benötigen mindestens 2 Bilder",
|
|
22
|
+
errorMax: "Maximal 9 Bilder erlaubt",
|
|
23
|
+
errorLoad: "Fehler beim Laden der Bilder",
|
|
24
|
+
faqTitle: "Häufig gestellte Fragen",
|
|
25
|
+
bibliographyTitle: "Referenzen"
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const faq: CollageMakerLocaleContent['faq'] = [
|
|
29
|
+
{
|
|
30
|
+
question: "Wie kann ich die Reihenfolge der Fotos ändern?",
|
|
31
|
+
answer: "Die Fotos werden in der Collage in der Reihenfolge platziert, in der sie in der Liste der geladenen Bilder erscheinen. Sie können eines entfernen und erneut hochladen, um seine Position anzupassen.",
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
question: "Welches Ausgabeformat hat die Collage?",
|
|
35
|
+
answer: "Die Collage wird im hochauflösenden WebP-Format heruntergeladen, ideal zum Teilen in sozialen Netzwerken ohne Schärfeverlust.",
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: CollageMakerLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: "Fotos hochladen",
|
|
42
|
+
text: "Wählen Sie zwischen 2 und 9 Bildern aus Ihrem Dateiexplorer aus.",
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: "Layout wählen",
|
|
46
|
+
text: "Wählen Sie das Raster aus, das am besten zur Anzahl der hochgeladenen Fotos passt.",
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: "Stil anpassen",
|
|
50
|
+
text: "Passen Sie die Rahmenstärke und farbe an, um der Collage ein professionelles Finish zu verleihen.",
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
name: "Herunterladen und teilen",
|
|
54
|
+
text: "Drücken Sie die Erstellen Taste und laden Sie Ihre finale Komposition sofort herunter.",
|
|
55
|
+
},
|
|
56
|
+
];
|
|
57
|
+
|
|
58
|
+
const bibliography: CollageMakerLocaleContent['bibliography'] = [
|
|
59
|
+
{
|
|
60
|
+
name: "Fotografische Komposition: Die Kunst der Collage",
|
|
61
|
+
url: "https://en.wikipedia.org/wiki/Collage",
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: CollageMakerLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'summary',
|
|
68
|
+
title: 'Professioneller Online Collage Maker',
|
|
69
|
+
items: [
|
|
70
|
+
'Mehrere Layouts und vordefinierte Raster',
|
|
71
|
+
'Anpassung von Rahmen und Hintergrundfarben',
|
|
72
|
+
'1200px hohe Auflösung, bereit für soziale Netzwerke',
|
|
73
|
+
'Sofortige Verarbeitung ohne Nutzungseinschränkungen'
|
|
74
|
+
]
|
|
75
|
+
},
|
|
76
|
+
{ type: 'title', text: 'Collage Design: Kompositionen, die Geschichten erzählen', level: 2 },
|
|
77
|
+
{ type: 'paragraph', html: 'Eine Collage ist mehr als nur eine Mischung aus Fotos; sie ist eine visuelle Erzählung, die Emotionen und Kontext vermittelt. Mit unserem Tool können Sie professionelle geometrische Kompositionen für Instagram, Facebook, Pinterest oder persönliche Projekte erstellen, ohne Photoshop oder teure Software zu benötigen.' },
|
|
78
|
+
|
|
79
|
+
{ type: 'stats', items: [
|
|
80
|
+
{ value: '2-9', label: 'Bilder pro Collage', icon: 'mdi:image-multiple' },
|
|
81
|
+
{ value: '1200px', label: 'HD-Auflösung', icon: 'mdi:video-high-definition' },
|
|
82
|
+
{ value: 'Sofort', label: 'Erstellung', icon: 'mdi:lightning-bolt' }
|
|
83
|
+
], columns: 3 },
|
|
84
|
+
|
|
85
|
+
{ type: 'title', text: 'Visuelle Komposition: Designprinzipien', level: 3 },
|
|
86
|
+
{ type: 'paragraph', html: 'Komposition ist die Kunst, visuelle Elemente so zu organisieren, dass sie das Auge des Betrachters führen und eine Absicht kommunizieren. Eine gute Collage balanciert Folgendes:' },
|
|
87
|
+
{ type: 'list', items: [
|
|
88
|
+
'<strong>Gleichgewicht:</strong> Visuelle Verteilung des Gewichts (helle vs. dunkle Bilder, große vs. kleine).',
|
|
89
|
+
'<strong>Visueller Fluss:</strong> Das Auge sollte die Komposition natürlich durchqueren, ohne tote Winkel.',
|
|
90
|
+
'<strong>Kontrast:</strong> Variationen in Farbe, Größe und Form, die Aufmerksamkeit erregen.',
|
|
91
|
+
'<strong>Einheit:</strong> Thematische Kohärenz – Bilder müssen gemeinsam dieselbe Geschichte erzählen.'
|
|
92
|
+
], icon: 'mdi:check' },
|
|
93
|
+
|
|
94
|
+
{ type: 'card', title: 'Intelligente und adaptive Designs', html: 'Unser System berechnet automatisch die optimale Platzverteilung basierend auf der Anzahl der Fotos. 2 Bilder = symmetrisches Raster; 5 Bilder = ausgewogene asymmetrische Verteilung. Jedes Raster ist darauf ausgelegt, die visuelle Wirkung zu maximieren.' },
|
|
95
|
+
|
|
96
|
+
{ type: 'comparative', items: [
|
|
97
|
+
{
|
|
98
|
+
title: 'Für soziale Netzwerke',
|
|
99
|
+
description: 'Instagram, TikTok, Facebook – quadratische Formate',
|
|
100
|
+
icon: 'mdi:share-all',
|
|
101
|
+
points: [
|
|
102
|
+
'1200px ist perfekt für den Instagram-Feed',
|
|
103
|
+
'Quadratisches Format vermeidet das Zuschneiden beim Posten',
|
|
104
|
+
'Anpassbare Rahmen für Branding'
|
|
105
|
+
],
|
|
106
|
+
highlight: true
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: 'Für Portfolios',
|
|
110
|
+
description: 'Visuelle Schaufenster für Fotografen und Designer',
|
|
111
|
+
icon: 'mdi:briefcase-outline',
|
|
112
|
+
points: [
|
|
113
|
+
'Mehrere Blickwinkel eines Projekts zeigen',
|
|
114
|
+
'Zusammenhängende visuelle Erzählung',
|
|
115
|
+
'Professioneller Druck für digitale Portfolios'
|
|
116
|
+
]
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
title: 'Für persönliche Geschenke',
|
|
120
|
+
description: 'Drucke, Rahmen und digitale Alben',
|
|
121
|
+
icon: 'mdi:gift-outline',
|
|
122
|
+
points: [
|
|
123
|
+
'Erinnerungen an Ereignisse (Hochzeiten, Reisen)',
|
|
124
|
+
'Hohe Auflösung, bereit zum Drucken',
|
|
125
|
+
'Sofortiges Design ohne manuellen Aufwand'
|
|
126
|
+
]
|
|
127
|
+
}
|
|
128
|
+
], columns: 3 },
|
|
129
|
+
|
|
130
|
+
{ type: 'title', text: 'Anpassung: Rahmen und Farben', level: 3 },
|
|
131
|
+
{ type: 'table', headers: ['Element', 'Visueller Effekt', 'Empfehlung'], rows: [
|
|
132
|
+
['Weißer Rahmen', 'Sauber, minimalistisch, modern', 'Soziale Netzwerke, digitale Portfolios'],
|
|
133
|
+
['Schwarzer Rahmen', 'Dramatisch, professionell, künstlerisch', 'Kunstfotografie, Mode, Luxus'],
|
|
134
|
+
['Neutraler Rahmen (Grau)', 'Vielseitig, akademisch, korporativ', 'Business, Bildung, Neutralität'],
|
|
135
|
+
['Kein Rahmen', 'Fusion, Kontinuität, immersiv', 'Einheitlicher Hintergrund, fließende Fotos']
|
|
136
|
+
] },
|
|
137
|
+
|
|
138
|
+
{ type: 'proscons', items: [
|
|
139
|
+
{
|
|
140
|
+
pro: 'Professionelle vordefinierte Designs – keine Kenntnisse in Komposition erforderlich',
|
|
141
|
+
con: 'Optionen auf vordefinierte Raster beschränkt'
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
pro: '1200px Auflösung, bereit für soziale Netzwerke ohne Skalierung',
|
|
145
|
+
con: 'Nicht so anpassbar wie Photoshop'
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
pro: '100% lokale Verarbeitung – Privatsphäre, Schnelligkeit, keine Limits',
|
|
149
|
+
con: 'Erfordert einen modernen Browser'
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
pro: 'Völlig kostenlos, keine Wasserzeichen, keine Werbung',
|
|
153
|
+
con: 'Keine individuellen Bearbeitungsoptionen (Zuschneiden, Drehen)'
|
|
154
|
+
}
|
|
155
|
+
], proTitle: 'Vorteile', conTitle: 'Einschränkungen' },
|
|
156
|
+
|
|
157
|
+
{ type: 'diagnostic', variant: 'success', title: 'Bereit für soziale Netzwerke', icon: 'mdi:check-circle-outline', badge: 'Optimiert', html: '1200x1200px ist die ideale Auflösung für Instagram. Es unterstützt jedes Seitenverhältnis, aber die quadratische Ausgabe maximiert die Wirkung im Feed, eliminiert automatisches Zuschneiden und sieht auf Desktop, Tablet und Handy gleichermaßen gut aus.' },
|
|
158
|
+
|
|
159
|
+
{ type: 'glossary', items: [
|
|
160
|
+
{
|
|
161
|
+
term: 'Visuelle Komposition',
|
|
162
|
+
definition: 'Die Kunst des Organisierens von Elementen (Farbe, Form, Raum), um das Auge des Betrachters zu führen und eine emotionale Absicht zu kommunizieren.'
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
term: 'Drittel-Regel',
|
|
166
|
+
definition: 'Kompositionsprinzip: teilt das Bild in 9 gleiche Bereiche (3x3). Positionieren Sie Motive an Schnittlinien für maximale Wirkung.'
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
term: 'Symmetrisches Raster',
|
|
170
|
+
definition: 'Gleiche Raumaufteilungen. Beruhigend, ordentlich. Ideal für Fotopaare oder gerade Zahlen.'
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
term: 'Asymmetrisches Raster',
|
|
174
|
+
definition: 'Ungleiche Aufteilungen. Dynamisch, interessant, visuell. Ideal für 5+ Fotos mit unterschiedlichen Größen.'
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
term: 'Visuelles Gleichgewicht',
|
|
178
|
+
definition: 'Wahrgenommenes Gleichgewicht des visuellen Gewichts. Helles + dunkles Bild = Balance; großes + kleines = Balance.'
|
|
179
|
+
}
|
|
180
|
+
] },
|
|
181
|
+
|
|
182
|
+
{ type: 'message', title: 'Sofortige visuelle Erzählung', ariaLabel: 'Informationen über Komposition und Collagen', html: 'Jede Collage erzählt eine Geschichte. Unser automatischer Designer sorgt dafür, dass Ihre visuellen Geschichten ausgewogen und professionell wirken und bereit für die Welt sind – ohne auf einen Grafiker warten zu müssen.' },
|
|
183
|
+
|
|
184
|
+
{ type: 'title', text: 'Erstellen, teilen, inspirieren', level: 3 },
|
|
185
|
+
{ type: 'paragraph', html: 'Eine gut gemachte Collage macht den Unterschied zwischen einem vergesslichen Post und einem, an den sich Ihre Follower erinnern und den sie teilen. Nutzen Sie intelligente Komposition für Ihre visuellen Geschichten, um Wirkung zu erzielen.' }
|
|
186
|
+
];
|
|
187
|
+
|
|
188
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
189
|
+
'@context': 'https://schema.org',
|
|
190
|
+
'@type': 'FAQPage',
|
|
191
|
+
mainEntity: faq.map((item) => ({
|
|
192
|
+
'@type': 'Question',
|
|
193
|
+
name: item.question,
|
|
194
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
195
|
+
})),
|
|
196
|
+
};
|
|
197
|
+
|
|
198
|
+
const howToSchema: WithContext<HowTo> = {
|
|
199
|
+
'@context': 'https://schema.org',
|
|
200
|
+
'@type': 'HowTo',
|
|
201
|
+
name: title,
|
|
202
|
+
description,
|
|
203
|
+
step: howTo.map((step) => ({
|
|
204
|
+
'@type': 'HowToStep',
|
|
205
|
+
name: step.name,
|
|
206
|
+
text: step.text,
|
|
207
|
+
})),
|
|
208
|
+
};
|
|
209
|
+
|
|
210
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
211
|
+
'@context': 'https://schema.org',
|
|
212
|
+
'@type': 'SoftwareApplication',
|
|
213
|
+
name: title,
|
|
214
|
+
description,
|
|
215
|
+
applicationCategory: 'UtilitiesApplication',
|
|
216
|
+
operatingSystem: 'Web',
|
|
217
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
218
|
+
inLanguage: 'de',
|
|
219
|
+
};
|
|
220
|
+
|
|
221
|
+
export const content: CollageMakerLocaleContent = {
|
|
222
|
+
slug,
|
|
223
|
+
title,
|
|
224
|
+
description,
|
|
225
|
+
ui,
|
|
226
|
+
seo,
|
|
227
|
+
faqTitle: "Häufig gestellte Fragen",
|
|
228
|
+
faq,
|
|
229
|
+
bibliographyTitle: "Referenzen",
|
|
230
|
+
bibliography,
|
|
231
|
+
howTo,
|
|
232
|
+
schemas: [faqSchema as any, howToSchema as any, appSchema],
|
|
233
|
+
};
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { CollageMakerUI, CollageMakerLocaleContent } from '../index';
|
|
3
|
+
|
|
4
|
+
const slug = 'pembuat-kolase-foto-online-gratis-komposisi-profesional';
|
|
5
|
+
const title = 'Pembuat Kolase Online: Desain komposisi profesional';
|
|
6
|
+
const description = 'Buat kolase foto gratis dalam hitungan detik. Pilih dari berbagai tata letak, sesuaikan tepi, dan unduh dalam kualitas tinggi tanpa watermark.';
|
|
7
|
+
|
|
8
|
+
const ui: CollageMakerUI = {
|
|
9
|
+
dropTitle: "Seret gambar ke sini",
|
|
10
|
+
dropSub: "atau {link} - min. 2, maks. 9",
|
|
11
|
+
dropLink: "pilih file",
|
|
12
|
+
imgsLoaded: "Gambar dimuat",
|
|
13
|
+
layoutLabel: "Tata Letak",
|
|
14
|
+
settingsLabel: "Pengaturan",
|
|
15
|
+
borderLabel: "Tepi",
|
|
16
|
+
borderColorLabel: "Warna tepi",
|
|
17
|
+
bgColorLabel: "Latar Belakang",
|
|
18
|
+
downloadBtn: "Unduh",
|
|
19
|
+
previewTitle: "Pratinjau",
|
|
20
|
+
needsImgs: "Anda butuh {n} gambar",
|
|
21
|
+
errorMin: "Anda butuh setidaknya 2 gambar",
|
|
22
|
+
errorMax: "Maksimal 9 gambar diizinkan",
|
|
23
|
+
errorLoad: "Kesalahan memuat gambar",
|
|
24
|
+
faqTitle: "Pertanyaan yang Sering Diajukan",
|
|
25
|
+
bibliographyTitle: "Referensi"
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const faq: CollageMakerLocaleContent['faq'] = [
|
|
29
|
+
{
|
|
30
|
+
question: "Bagaimana cara mengubah urutan foto?",
|
|
31
|
+
answer: "Foto diletakkan di kolase mengikuti urutan saat foto tersebut muncul di daftar gambar yang dimuat. Anda dapat menghapus satu foto dan mengunggahnya kembali untuk menyesuaikan posisinya.",
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
question: "Format output apa yang dimiliki kolase?",
|
|
35
|
+
answer: "Kolase diunduh dalam format WebP resolusi tinggi, ideal untuk dibagikan di jejaring sosial tanpa kehilangan ketajaman.",
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: CollageMakerLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: "Unggah foto Anda",
|
|
42
|
+
text: "Pilih antara 2 dan 9 gambar dari file explorer Anda.",
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: "Pilih tata letak",
|
|
46
|
+
text: "Pilih kisi yang paling sesuai dengan jumlah foto yang telah Anda unggah.",
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: "Sesuaikan gaya",
|
|
50
|
+
text: "Sesuaikan ketebalan dan warna tepi untuk memberikan hasil akhir yang profesional.",
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
name: "Unduh dan bagikan",
|
|
54
|
+
text: "Tekan tombol buat dan unduh komposisi akhir Anda secara instan.",
|
|
55
|
+
},
|
|
56
|
+
];
|
|
57
|
+
|
|
58
|
+
const bibliography: CollageMakerLocaleContent['bibliography'] = [
|
|
59
|
+
{
|
|
60
|
+
name: "Komposisi Fotografi: Seni Kolase",
|
|
61
|
+
url: "https://id.wikipedia.org/wiki/Kolase",
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: CollageMakerLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'summary',
|
|
68
|
+
title: 'Pembuat Kolase Online Profesional',
|
|
69
|
+
items: [
|
|
70
|
+
'Berbagai tata letak dan kisi yang telah ditentukan',
|
|
71
|
+
'Kustomisasi tepi dan warna latar belakang',
|
|
72
|
+
'Resolusi tinggi 1200px siap untuk jejaring sosial',
|
|
73
|
+
'Pemrosesan instan tanpa batas penggunaan'
|
|
74
|
+
]
|
|
75
|
+
},
|
|
76
|
+
{ type: 'title', text: 'Desain Kolase: Komposisi yang Bercerita', level: 2 },
|
|
77
|
+
{ type: 'paragraph', html: 'Kolase lebih dari sekadar campuran foto; ini adalah narasi visual yang mengomunikasikan emosi dan konteks. Alat kami memungkinkan Anda membuat komposisi geometris profesional untuk Instagram, Facebook, Pinterest, atau proyek pribadi tanpa perlu Photoshop atau perangkat lunak mahal.' },
|
|
78
|
+
|
|
79
|
+
{ type: 'stats', items: [
|
|
80
|
+
{ value: '2-9', label: 'Gambar per Kolase', icon: 'mdi:image-multiple' },
|
|
81
|
+
{ value: '1200px', label: 'Resolusi HD', icon: 'mdi:video-high-definition' },
|
|
82
|
+
{ value: 'Instan', label: 'Pembuatan', icon: 'mdi:lightning-bolt' }
|
|
83
|
+
], columns: 3 },
|
|
84
|
+
|
|
85
|
+
{ type: 'title', text: 'Komposisi Visual: Prinsip Desain', level: 3 },
|
|
86
|
+
{ type: 'paragraph', html: 'Komposisi adalah seni mengatur elemen visual sedemikian rupa sehingga memandu mata pemirsa dan mengomunikasikan maksud. Kolase yang baik menyeimbangkan:' },
|
|
87
|
+
{ type: 'list', items: [
|
|
88
|
+
'<strong>Keseimbangan:</strong> Distribusi berat visual (gambar terang vs gelap, besar vs kecil).',
|
|
89
|
+
'<strong>Alur Visual:</strong> Mata harus menelusuri komposisi secara alami, tanpa titik mati.',
|
|
90
|
+
'<strong>Kontras:</strong> Variasi warna, ukuran, dan bentuk yang menarik perhatian.',
|
|
91
|
+
'<strong>Kesatuan:</strong> Koherensi tematik - gambar harus \"berbicara bersama\" tentang cerita yang sama.'
|
|
92
|
+
], icon: 'mdi:check' },
|
|
93
|
+
|
|
94
|
+
{ type: 'card', title: 'Desain Cerdas dan Adaptif', html: 'Sistem kami secara otomatis menghitung distribusi ruang yang optimal berdasarkan jumlah foto. 2 gambar = kisi simetris; 5 gambar = distribusi asimetris yang seimbang. Setiap kisi dirancang untuk memaksimalkan dampak visual.' },
|
|
95
|
+
|
|
96
|
+
{ type: 'comparative', items: [
|
|
97
|
+
{
|
|
98
|
+
title: 'Untuk Jejaring Sosial',
|
|
99
|
+
description: 'Instagram, TikTok, Facebook - format persegi',
|
|
100
|
+
icon: 'mdi:share-all',
|
|
101
|
+
points: [
|
|
102
|
+
'1200px sangat cocok untuk feed Instagram',
|
|
103
|
+
'Format persegi menghindari pemotongan saat memposting',
|
|
104
|
+
'Tepi yang dapat disesuaikan untuk branding'
|
|
105
|
+
],
|
|
106
|
+
highlight: true
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: 'Untuk Portofolio',
|
|
110
|
+
description: 'Etalase visual untuk fotografer dan desainer',
|
|
111
|
+
icon: 'mdi:briefcase-outline',
|
|
112
|
+
points: [
|
|
113
|
+
'Tunjukkan berbagai sudut proyek',
|
|
114
|
+
'Narasi visual yang kohesif',
|
|
115
|
+
'Pencetakan buku digital profesional'
|
|
116
|
+
]
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
title: 'Untuk Hadiah Pribadi',
|
|
120
|
+
description: 'Cetakan, bingkai, dan album digital',
|
|
121
|
+
icon: 'mdi:gift-outline',
|
|
122
|
+
points: [
|
|
123
|
+
'Kenangan acara (pernikahan, perjalanan)',
|
|
124
|
+
'Resolusi tinggi siap cetak',
|
|
125
|
+
'Desain instan tanpa usaha manual'
|
|
126
|
+
]
|
|
127
|
+
}
|
|
128
|
+
], columns: 3 },
|
|
129
|
+
|
|
130
|
+
{ type: 'title', text: 'Kustomisasi: Tepi dan Warna', level: 3 },
|
|
131
|
+
{ type: 'table', headers: ['Elemen', 'Efek Visual', 'Rekomendasi'], rows: [
|
|
132
|
+
['Tepi Putih', 'Bersih, minimalis, modern', 'Jejaring sosial, portofolio digital'],
|
|
133
|
+
['Tepi Hitam', 'Dramatis, profesional, artistik', 'Fotografi seni, mode, kemewahan'],
|
|
134
|
+
['Tepi Netral (abu-abu)', 'Serbaguna, akademis, korporat', 'Bisnis, pendidikan, netralitas'],
|
|
135
|
+
['Tanpa Tepi', 'Fusi, kontinuitas, imersif', 'Latar belakang seragam, foto yang mengalir']
|
|
136
|
+
] },
|
|
137
|
+
|
|
138
|
+
{ type: 'proscons', items: [
|
|
139
|
+
{
|
|
140
|
+
pro: 'Desain profesional yang telah ditentukan - tidak butuh pengetahuan komposisi',
|
|
141
|
+
con: 'Opsi terbatas pada kisi yang telah ditetapkan'
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
pro: 'Resolusi 1200px siap untuk jejaring sosial tanpa penskalaan ulang',
|
|
145
|
+
con: 'Tidak sekustomisasi Photoshop'
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
pro: 'Pemrosesan lokal 100% - privasi, kecepatan, tanpa batas',
|
|
149
|
+
con: 'Memerlukan browser modern'
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
pro: 'Sepenuhnya gratis, tanpa watermark, tanpa iklan',
|
|
153
|
+
con: 'Tidak ada opsi pengeditan individual (pemotongan, rotasi)'
|
|
154
|
+
}
|
|
155
|
+
], proTitle: 'Keunggulan', conTitle: 'Batasan' },
|
|
156
|
+
|
|
157
|
+
{ type: 'diagnostic', variant: 'success', title: 'Siap untuk Jejaring Sosial', icon: 'mdi:check-circle-outline', badge: 'Teroptimasi', html: '1200x1200px adalah resolusi ideal untuk Instagram. Ini mendukung rasio aspek apa pun, tetapi output persegi memaksimalkan dampak feed, menghilangkan pemotongan otomatis, dan terlihat sama bagusnya di desktop, tablet, dan seluler.' },
|
|
158
|
+
|
|
159
|
+
{ type: 'glossary', items: [
|
|
160
|
+
{
|
|
161
|
+
term: 'Komposisi Visual',
|
|
162
|
+
definition: 'Seni mengatur elemen (warna, bentuk, ruang) untuk memandu mata pemirsa dan mengomunikasikan maksud emosional.'
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
term: 'Aturan Sepertiga',
|
|
166
|
+
definition: 'Prinsip komposisi: membagi gambar menjadi 9 area yang sama (3x3). Posisikan subjek pada garis persimpangan untuk dampak maksimal.'
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
term: 'Kisi Simetris',
|
|
170
|
+
definition: 'Pembagian ruang yang sama. Menenangkan, tertib. Ideal untuk pasangan foto atau jumlah genap.'
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
term: 'Kisi Asimetris',
|
|
174
|
+
definition: 'Pembagian tidak sama. Dinamis, menarik, visual. Ideal untuk 5+ foto dengan variasi ukuran.'
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
term: 'Keseimbangan Visual',
|
|
178
|
+
definition: 'Ekuilibrium perseptual dari berat visual. Gambar terang + gelap = seimbang; besar + kecil = seimbang.'
|
|
179
|
+
}
|
|
180
|
+
] },
|
|
181
|
+
|
|
182
|
+
{ type: 'message', title: 'Narasi Visual Instan', ariaLabel: 'Informasi tentang komposisi dan kolase', html: 'Setiap kolase bercerita. Desainer otomatis kami memastikan cerita visual Anda seimbang, profesional, dan siap untuk dunia. Tanpa perlu menunggu desainer grafis melakukan pekerjaannya.' },
|
|
183
|
+
|
|
184
|
+
{ type: 'title', text: 'Buat, Bagikan, Inspirasi', level: 3 },
|
|
185
|
+
{ type: 'paragraph', html: 'Kolase yang dibuat dengan baik adalah perbedaan antara postingan yang mudah dilupakan dan postingan yang diingat serta dibagikan oleh pengikut Anda. Gunakan komposisi cerdas agar cerita visual Anda berdampak.' }
|
|
186
|
+
];
|
|
187
|
+
|
|
188
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
189
|
+
'@context': 'https://schema.org',
|
|
190
|
+
'@type': 'FAQPage',
|
|
191
|
+
mainEntity: faq.map((item) => ({
|
|
192
|
+
'@type': 'Question',
|
|
193
|
+
name: item.question,
|
|
194
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
195
|
+
})),
|
|
196
|
+
};
|
|
197
|
+
|
|
198
|
+
const howToSchema: WithContext<HowTo> = {
|
|
199
|
+
'@context': 'https://schema.org',
|
|
200
|
+
'@type': 'HowTo',
|
|
201
|
+
name: title,
|
|
202
|
+
description,
|
|
203
|
+
step: howTo.map((step) => ({
|
|
204
|
+
'@type': 'HowToStep',
|
|
205
|
+
name: step.name,
|
|
206
|
+
text: step.text,
|
|
207
|
+
})),
|
|
208
|
+
};
|
|
209
|
+
|
|
210
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
211
|
+
'@context': 'https://schema.org',
|
|
212
|
+
'@type': 'SoftwareApplication',
|
|
213
|
+
name: title,
|
|
214
|
+
description,
|
|
215
|
+
applicationCategory: 'UtilitiesApplication',
|
|
216
|
+
operatingSystem: 'Web',
|
|
217
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
218
|
+
inLanguage: 'id',
|
|
219
|
+
};
|
|
220
|
+
|
|
221
|
+
export const content: CollageMakerLocaleContent = {
|
|
222
|
+
slug,
|
|
223
|
+
title,
|
|
224
|
+
description,
|
|
225
|
+
ui,
|
|
226
|
+
seo,
|
|
227
|
+
faqTitle: "Pertanyaan yang Sering Diajukan",
|
|
228
|
+
faq,
|
|
229
|
+
bibliographyTitle: "Referensi",
|
|
230
|
+
bibliography,
|
|
231
|
+
howTo,
|
|
232
|
+
schemas: [faqSchema as any, howToSchema as any, appSchema],
|
|
233
|
+
};
|