@jjlmoya/utils-audiovisual 1.7.0 → 1.9.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/tests/slug_uniqueness.test.ts +81 -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 = 'free-online-photo-collage-maker-professional-compositions';
|
|
5
|
+
const title = '온라인 콜라주 메이커: 전문적인 구도 디자인';
|
|
6
|
+
const description = '몇 초 만에 무료로 사진 콜라주를 만드세요. 다양한 레이아웃 중에서 선택하고, 테두리를 조정하며, 워터마크 없이 고화질로 다운로드하세요.';
|
|
7
|
+
|
|
8
|
+
const ui: CollageMakerUI = {
|
|
9
|
+
dropTitle: "여기에 이미지를 드래그하세요",
|
|
10
|
+
dropSub: "또는 {link} - 최소 2개, 최대 9개",
|
|
11
|
+
dropLink: "파일 선택",
|
|
12
|
+
imgsLoaded: "로드된 이미지",
|
|
13
|
+
layoutLabel: "레이아웃",
|
|
14
|
+
settingsLabel: "설정",
|
|
15
|
+
borderLabel: "테두리",
|
|
16
|
+
borderColorLabel: "테두리 색상",
|
|
17
|
+
bgColorLabel: "배경",
|
|
18
|
+
downloadBtn: "다운로드",
|
|
19
|
+
previewTitle: "미리보기",
|
|
20
|
+
needsImgs: "이미지 {n}개가 더 필요합니다",
|
|
21
|
+
errorMin: "최소 2개의 이미지가 필요합니다",
|
|
22
|
+
errorMax: "최대 9개까지만 허용됩니다",
|
|
23
|
+
errorLoad: "이미지를 로드하는 중 오류가 발생했습니다",
|
|
24
|
+
faqTitle: "자주 묻는 질문",
|
|
25
|
+
bibliographyTitle: "참고 문헌"
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const faq: CollageMakerLocaleContent['faq'] = [
|
|
29
|
+
{
|
|
30
|
+
question: "사진 순서를 어떻게 바꿀 수 있나요?",
|
|
31
|
+
answer: "사진은 로드된 이미지 목록에 표시된 순서대로 콜라주에 배치됩니다. 하나를 삭제하고 다시 업로드하여 위치를 조정할 수 있습니다.",
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
question: "콜라주의 출력 형식은 무엇인가요?",
|
|
35
|
+
answer: "콜라주는 고해상도 WebP 형식으로 다운로드됩니다. 이는 선명도를 유지하면서 소셜 네트워크에 공유하기에 이상적입니다.",
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: CollageMakerLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: "사진 업로드",
|
|
42
|
+
text: "파일 탐색기에서 2개 이상 9개 이하의 이미지를 선택하세요.",
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: "레이아웃 선택",
|
|
46
|
+
text: "업로드한 사진 수에 가장 적합한 그리드를 선택하세요.",
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: "스타일 맞춤 설정",
|
|
50
|
+
text: "전문적인 마무리를 위해 테두리 두께와 색상을 조정하세요.",
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
name: "다운로드 및 공유",
|
|
54
|
+
text: "만들기 버튼을 누르고 완성된 결과물을 즉시 다운로드하세요.",
|
|
55
|
+
},
|
|
56
|
+
];
|
|
57
|
+
|
|
58
|
+
const bibliography: CollageMakerLocaleContent['bibliography'] = [
|
|
59
|
+
{
|
|
60
|
+
name: "사진 구도: 콜라주의 예술",
|
|
61
|
+
url: "https://ko.wikipedia.org/wiki/%EC%BD%9C%EB%9D%BC%EC%A3%BC",
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: CollageMakerLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'summary',
|
|
68
|
+
title: '전문 온라인 콜라주 메이커',
|
|
69
|
+
items: [
|
|
70
|
+
'다양한 레이아웃과 미리 정의된 그리드',
|
|
71
|
+
'테두리 및 배경색 맞춤 설정',
|
|
72
|
+
'소셜 네트워크에 적합한 1200px 고해상도',
|
|
73
|
+
'사용 제한 없는 즉각적인 처리'
|
|
74
|
+
]
|
|
75
|
+
},
|
|
76
|
+
{ type: 'title', text: '콜라주 디자인: 이야기를 담은 구도', level: 2 },
|
|
77
|
+
{ type: 'paragraph', html: '콜라주는 단순한 사진의 조합 이상입니다. 감정과 맥락을 전달하는 시각적 서사입니다. 당사의 도구를 사용하면 Photoshop이나 비싼 소프트웨어 없이도 Instagram, Facebook, Pinterest 또는 개인 프로젝트를 위한 전문적인 기하학적 구도를 만들 수 있습니다.' },
|
|
78
|
+
|
|
79
|
+
{ type: 'stats', items: [
|
|
80
|
+
{ value: '2-9', label: '장당 이미지 수', icon: 'mdi:image-multiple' },
|
|
81
|
+
{ value: '1200px', label: 'HD 해상도', icon: 'mdi:video-high-definition' },
|
|
82
|
+
{ value: '즉시', label: '생성', icon: 'mdi:lightning-bolt' }
|
|
83
|
+
], columns: 3 },
|
|
84
|
+
|
|
85
|
+
{ type: 'title', text: '시각적 구도: 디자인 원칙', level: 3 },
|
|
86
|
+
{ type: 'paragraph', html: '구도는 보는 이의 시선을 유도하고 의도를 전달하는 방식으로 시각적 요소를 구성하는 예술입니다. 좋은 콜라주는 다음의 균형을 유지합니다.' },
|
|
87
|
+
{ type: 'list', items: [
|
|
88
|
+
'<strong>균형:</strong> 시각적 무게감의 분배 (밝은 이미지 vs 어두운 이미지, 큰 것 vs 작은 것).',
|
|
89
|
+
'<strong>시각적 흐름:</strong> 시선이 끊김 없이 구도 안에서 자연스럽게 이동해야 합니다.',
|
|
90
|
+
'<strong>대비:</strong> 주의를 끄는 색상, 크기, 모양의 변화.',
|
|
91
|
+
'<strong>통일성:</strong> 주제적 일관성 - 이미지들이 같은 이야기에 대해 함께 \"말해야\" 합니다.'
|
|
92
|
+
], icon: 'mdi:check' },
|
|
93
|
+
|
|
94
|
+
{ type: 'card', title: '스마트하고 유연한 디자인', html: '당사의 시스템은 사진 수에 따라 최적의 공간 배분을 자동으로 계산합니다. 사진 2장은 대칭 그리드, 5장은 균형 잡힌 비대칭 배분으로 구성됩니다. 각 그리드는 시각적 임팩트를 극대화하도록 설계되었습니다.' },
|
|
95
|
+
|
|
96
|
+
{ type: 'comparative', items: [
|
|
97
|
+
{
|
|
98
|
+
title: '소셜 네트워크용',
|
|
99
|
+
description: 'Instagram, TikTok, Facebook - 정사각형 형식',
|
|
100
|
+
icon: 'mdi:share-all',
|
|
101
|
+
points: [
|
|
102
|
+
'1200px는 Instagram 피드에 완벽합니다',
|
|
103
|
+
'정사각형 형식은 게시 시 잘리는 현상을 방지합니다',
|
|
104
|
+
'브랜딩을 위한 맞춤형 테두리'
|
|
105
|
+
],
|
|
106
|
+
highlight: true
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: '포트폴리오용',
|
|
110
|
+
description: '사진가 및 디자이너를 위한 시각적 쇼케이스',
|
|
111
|
+
icon: 'mdi:briefcase-outline',
|
|
112
|
+
points: [
|
|
113
|
+
'프로젝트의 다양한 각도 표시',
|
|
114
|
+
'응집력 있는 시각적 서사',
|
|
115
|
+
'전문적인 디지털 북 인쇄'
|
|
116
|
+
]
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
title: '개인용 선물',
|
|
120
|
+
description: '인쇄물, 액자 및 디지털 앨범',
|
|
121
|
+
icon: 'mdi:gift-outline',
|
|
122
|
+
points: [
|
|
123
|
+
'이벤트 추억 (결혼식, 여행)',
|
|
124
|
+
'인쇄 가능한 고해상도',
|
|
125
|
+
'수작업 없는 즉각적인 디자인'
|
|
126
|
+
]
|
|
127
|
+
}
|
|
128
|
+
], columns: 3 },
|
|
129
|
+
|
|
130
|
+
{ type: 'title', text: '맞춤 설정: 테두리 및 색상', level: 3 },
|
|
131
|
+
{ type: 'table', headers: ['요소', '시각적 효과', '권장 사항'], rows: [
|
|
132
|
+
['흰색 테두리', '깔끔함, 미니멀함, 모던함', '소셜 네트워크, 디지털 포트폴리오'],
|
|
133
|
+
['검은색 테두리', '극적임, 전문적임, 예술적임', '예술 사진, 패션, 럭셔리'],
|
|
134
|
+
['중성색 테두리 (회색)', '다재다능함, 학술적임, 기업용', '비즈니스, 교육, 중립성'],
|
|
135
|
+
['테두리 없음', '융합, 연속성, 몰입감', '균일한 배경, 흐르는 듯한 사진']
|
|
136
|
+
] },
|
|
137
|
+
|
|
138
|
+
{ type: 'proscons', items: [
|
|
139
|
+
{
|
|
140
|
+
pro: '전문적이고 미리 정의된 디자인 - 구도 지식이 필요 없음',
|
|
141
|
+
con: '옵션이 미리 설정된 그리드에 한정됨'
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
pro: '리사이징 없이 소셜 네트워크에 바로 쓰는 1200px 해상도',
|
|
145
|
+
con: 'Photoshop만큼 자유로운 맞춤 설정은 불가함'
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
pro: '100% 로컬 처리 - 개인정보 보호, 속도, 무제한',
|
|
149
|
+
con: '최신 브라우저가 필요함'
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
pro: '완전 무료, 워터마크 없음, 광고 없음',
|
|
153
|
+
con: '개별 편집 옵션(자르기, 회전) 없음'
|
|
154
|
+
}
|
|
155
|
+
], proTitle: '장점', conTitle: '제한 사항' },
|
|
156
|
+
|
|
157
|
+
{ type: 'diagnostic', variant: 'success', title: '소셜 네트워크 준비 완료', icon: 'mdi:check-circle-outline', badge: '최적화됨', html: '1200x1200px는 Instagram에 가장 이상적인 해상도입니다. 모든 화면 비율을 지원하지만, 정사각형 출력은 피드 임팩트를 극대화하고 자동 자르기를 방지하며 데스크톱, 태블릿, 모바일 어디에서나 멋지게 보입니다.' },
|
|
158
|
+
|
|
159
|
+
{ type: 'glossary', items: [
|
|
160
|
+
{
|
|
161
|
+
term: '시각적 구도',
|
|
162
|
+
definition: '보는 이의 시선을 유도하고 감정적 의도를 전달하기 위해 요소(색상, 모양, 공간)를 구성하는 예술입니다.'
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
term: '3분할 법칙',
|
|
166
|
+
definition: '구도 원칙: 이미지를 9개의 동일한 영역(3x3)으로 나눕니다. 피사체를 교차선에 배치하여 임팩트를 극대화합니다.'
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
term: '대칭 그리드',
|
|
170
|
+
definition: '동일한 공간 분할입니다. 안정적이고 질서 정연합니다. 사진 두 장 또는 짝수 장에 이상적입니다.'
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
term: '비대칭 그리드',
|
|
174
|
+
definition: '불균등한 분할입니다. 역동적이고 흥미로우며 시각적인 재미를 줍니다. 다양한 크기의 사진 5장 이상에 이상적입니다.'
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
term: '시각적 균형',
|
|
178
|
+
definition: '시각적 무게감의 지각적 평형입니다. 밝은 이미지 + 어두운 이미지 = 균형, 큰 것 + 작은 것 = 균형.'
|
|
179
|
+
}
|
|
180
|
+
] },
|
|
181
|
+
|
|
182
|
+
{ type: 'message', title: '즉각적인 시각적 서사', ariaLabel: '구도 및 콜라주에 관한 정보', html: '모든 콜라주는 이야기를 담고 있습니다. 당사의 자동 디자이너는 여러분의 시각적 서사가 균형 잡히고 전문적이며 세상에 나갈 준비가 되도록 보장합니다. 그래픽 디자이너를 기다릴 필요가 없습니다.' },
|
|
183
|
+
|
|
184
|
+
{ type: 'title', text: '만들고, 공유하고, 영감을 주세요', level: 3 },
|
|
185
|
+
{ type: 'paragraph', html: '잘 만들어진 콜라주는 잊혀질 게시물과 팔로워가 기억하고 공유할 게시물의 차이를 만듭니다. 여러분의 시각적 서사가 임팩트를 줄 수 있도록 스마트한 구도를 사용하세요.' }
|
|
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: 'ko',
|
|
219
|
+
};
|
|
220
|
+
|
|
221
|
+
export const content: CollageMakerLocaleContent = {
|
|
222
|
+
slug,
|
|
223
|
+
title,
|
|
224
|
+
description,
|
|
225
|
+
ui,
|
|
226
|
+
seo,
|
|
227
|
+
faqTitle: "자주 묻는 질문",
|
|
228
|
+
faq,
|
|
229
|
+
bibliographyTitle: "참고 문헌",
|
|
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 = 'gratis-online-fotocollage-maker-professionele-composities';
|
|
5
|
+
const title = 'Online Collage Maker: Ontwerp professionele composities';
|
|
6
|
+
const description = 'Maak gratis fotocollages in enkele seconden. Kies uit verschillende lay-outs, pas randen aan en download in hoge kwaliteit zonder watermerken.';
|
|
7
|
+
|
|
8
|
+
const ui: CollageMakerUI = {
|
|
9
|
+
dropTitle: "Sleep afbeeldingen hierheen",
|
|
10
|
+
dropSub: "of {link} - min. 2, max. 9",
|
|
11
|
+
dropLink: "selecteer bestanden",
|
|
12
|
+
imgsLoaded: "Geladen afbeeldingen",
|
|
13
|
+
layoutLabel: "Lay-out",
|
|
14
|
+
settingsLabel: "Instellingen",
|
|
15
|
+
borderLabel: "Rand",
|
|
16
|
+
borderColorLabel: "Randkleur",
|
|
17
|
+
bgColorLabel: "Achtergrond",
|
|
18
|
+
downloadBtn: "Downloaden",
|
|
19
|
+
previewTitle: "Voorvertoning",
|
|
20
|
+
needsImgs: "Je hebt {n} afbeeldingen nodig",
|
|
21
|
+
errorMin: "Je hebt minimaal 2 afbeeldingen nodig",
|
|
22
|
+
errorMax: "Maximaal 9 afbeeldingen toegestaan",
|
|
23
|
+
errorLoad: "Fout bij het laden van afbeeldingen",
|
|
24
|
+
faqTitle: "Veelgestelde Vragen",
|
|
25
|
+
bibliographyTitle: "Referenties"
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const faq: CollageMakerLocaleContent['faq'] = [
|
|
29
|
+
{
|
|
30
|
+
question: "Hoe kan ik de volgorde van de foto's veranderen?",
|
|
31
|
+
answer: "De foto's worden in de collage geplaatst in de volgorde waarin ze verschijnen in de lijst met geladen afbeeldingen. Je kunt er een verwijderen en opnieuw uploaden om de positie aan te passen.",
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
question: "Welk uitvoerformaat heeft de collage?",
|
|
35
|
+
answer: "De collage wordt gedownload in WebP-formaat met hoge resolutie, ideaal voor het delen op sociale netwerken zonder scherpteverlies.",
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: CollageMakerLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: "Upload je foto's",
|
|
42
|
+
text: "Selecteer tussen de 2 en 9 afbeeldingen uit je bestandsverkenner.",
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: "Kies een lay-out",
|
|
46
|
+
text: "Selecteer het raster dat het beste past bij het aantal foto's dat je hebt geüpload.",
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: "Personaliseer de stijl",
|
|
50
|
+
text: "Pas de randdikte en kleur aan voor een professionele afwerking.",
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
name: "Download en deel",
|
|
54
|
+
text: "Druk op de knop 'maken' en download direct je uiteindelijke compositie.",
|
|
55
|
+
},
|
|
56
|
+
];
|
|
57
|
+
|
|
58
|
+
const bibliography: CollageMakerLocaleContent['bibliography'] = [
|
|
59
|
+
{
|
|
60
|
+
name: "Fotografische Compositie: De Kunst van Collage",
|
|
61
|
+
url: "https://nl.wikipedia.org/wiki/Collage",
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: CollageMakerLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'summary',
|
|
68
|
+
title: 'Professionele Online Collage Maker',
|
|
69
|
+
items: [
|
|
70
|
+
'Meerdere lay-outs en vooraf gedefinieerde rasters',
|
|
71
|
+
'Aanpassing van randen en achtergrondkleuren',
|
|
72
|
+
'1200px hoge resolutie, klaar voor sociale netwerken',
|
|
73
|
+
'Directe verwerking zonder gebruiksbeperkingen'
|
|
74
|
+
]
|
|
75
|
+
},
|
|
76
|
+
{ type: 'title', text: 'Collage Ontwerp: Composities Die Verhalen Vertellen', level: 2 },
|
|
77
|
+
{ type: 'paragraph', html: 'Een collage is meer dan een mix van foto\'s; het is een visueel narratief dat emotie en context communiceert. Onze tool stelt je in staat om professionele geometrische composities te maken voor Instagram, Facebook, Pinterest of persoonlijke projecten zonder dat Photoshop of dure software nodig is.' },
|
|
78
|
+
|
|
79
|
+
{ type: 'stats', items: [
|
|
80
|
+
{ value: '2-9', label: 'Beelden per Collage', icon: 'mdi:image-multiple' },
|
|
81
|
+
{ value: '1200px', label: 'HD Resolutie', icon: 'mdi:video-high-definition' },
|
|
82
|
+
{ value: 'Direct', label: 'Generatie', icon: 'mdi:lightning-bolt' }
|
|
83
|
+
], columns: 3 },
|
|
84
|
+
|
|
85
|
+
{ type: 'title', text: 'Visuele Compositie: Ontwerpprincipes', level: 3 },
|
|
86
|
+
{ type: 'paragraph', html: 'Compositie is de kunst van het organiseren van visuele elementen op een manier die het oog van de kijker leidt en een intentie communiceert. Een goede collage balanceert:' },
|
|
87
|
+
{ type: 'list', items: [
|
|
88
|
+
'<strong>Balans:</strong> Visuele verdeling van gewicht (lichte vs donkere afbeeldingen, grote vs kleine).',
|
|
89
|
+
'<strong>Visuele Flow:</strong> Het oog moet de compositie op een natuurlijke manier doorkruisen, zonder dode punten.',
|
|
90
|
+
'<strong>Contrast:</strong> Variaties in kleur, grootte en vorm die de aandacht trekken.',
|
|
91
|
+
'<strong>Eenheid:</strong> Thematsche samenhang - beelden moeten \"samen spreken\" over hetzelfde verhaal.'
|
|
92
|
+
], icon: 'mdi:check' },
|
|
93
|
+
|
|
94
|
+
{ type: 'card', title: 'Slimme en Adaptieve Ontwerpen', html: 'Ons systeem berekent automatisch de optimale ruimtelijke verdeling op basis van het aantal foto\'s. 2 afbeeldingen = symmetrisch raster; 5 afbeeldingen = gebalanceerde asymmetrische verdeling. Elk raster is ontworpen om de visuele impact te maximaliseren.' },
|
|
95
|
+
|
|
96
|
+
{ type: 'comparative', items: [
|
|
97
|
+
{
|
|
98
|
+
title: 'Voor Sociale Netwerken',
|
|
99
|
+
description: 'Instagram, TikTok, Facebook - vierkante formaten',
|
|
100
|
+
icon: 'mdi:share-all',
|
|
101
|
+
points: [
|
|
102
|
+
'1200px is perfect voor de Instagram-feed',
|
|
103
|
+
'Vierkant formaat voorkomt bijsnijden bij het posten',
|
|
104
|
+
'Aanpasbare randen voor branding'
|
|
105
|
+
],
|
|
106
|
+
highlight: true
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: 'Voor Portfolio\'s',
|
|
110
|
+
description: 'Visuele etalages voor fotografen en ontwerpers',
|
|
111
|
+
icon: 'mdi:briefcase-outline',
|
|
112
|
+
points: [
|
|
113
|
+
'Laat meerdere invalshoeken van een project zien',
|
|
114
|
+
'Coherent visueel narratief',
|
|
115
|
+
'Professionele digitale boekdruk'
|
|
116
|
+
]
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
title: 'Voor Persoonlijke Cadeaus',
|
|
120
|
+
description: 'Afdrukken, lijsten en digitale albums',
|
|
121
|
+
icon: 'mdi:gift-outline',
|
|
122
|
+
points: [
|
|
123
|
+
'Herinneringen aan evenementen (bruiloften, reizen)',
|
|
124
|
+
'Hoge resolutie klaar voor afdrukken',
|
|
125
|
+
'Instant ontwerp zonder handmatige inspanning'
|
|
126
|
+
]
|
|
127
|
+
}
|
|
128
|
+
], columns: 3 },
|
|
129
|
+
|
|
130
|
+
{ type: 'title', text: 'Aanpassing: Randen en Kleuren', level: 3 },
|
|
131
|
+
{ type: 'table', headers: ['Element', 'Visueel Effect', 'Aanbeveling'], rows: [
|
|
132
|
+
['Witte Rand', 'Schoon, minimalistisch, modern', 'Sociale netwerken, digitale portfolio\'s'],
|
|
133
|
+
['Zwarte Rand', 'Dramatisch, professioneel, artistiek', 'Kunstfotografie, mode, luxe'],
|
|
134
|
+
['Neutrale Rand (grijs)', 'Veelzijdig, academisch, zakelijk', 'Business, onderwijs, neutraliteit'],
|
|
135
|
+
['Geen Rand', 'Fusie, continuïteit, meeslepend', 'Uniforme achtergrond, vloeiende foto\'s']
|
|
136
|
+
] },
|
|
137
|
+
|
|
138
|
+
{ type: 'proscons', items: [
|
|
139
|
+
{
|
|
140
|
+
pro: 'Professionele vooraf gedefinieerde ontwerpen - geen kennis van compositie nodig',
|
|
141
|
+
con: 'Opties beperkt tot vooraf vastgestelde rasters'
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
pro: '1200px resolutie klaar voor sociale netwerken zonder herschaling',
|
|
145
|
+
con: 'Niet zo aanpasbaar als Photoshop'
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
pro: '100% lokale verwerking - privacy, snelheid, geen limieten',
|
|
149
|
+
con: 'Vereist een moderne browser'
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
pro: 'Helemaal gratis, geen watermerken, geen reclame',
|
|
153
|
+
con: 'Geen individuele bewerkingsopties (bijsnijden, draaien)'
|
|
154
|
+
}
|
|
155
|
+
], proTitle: 'Voordelen', conTitle: 'Beperkingen' },
|
|
156
|
+
|
|
157
|
+
{ type: 'diagnostic', variant: 'success', title: 'Klaar voor Sociale Netwerken', icon: 'mdi:check-circle-outline', badge: 'Geoptimaliseerd', html: '1200x1200px is de ideale resolutie voor Instagram. Het ondersteunt elke beeldverhouding, maar de vierkante uitvoer maximaliseert de impact van de feed, elimineert automatisch bijsnijden en ziet er net zo goed uit op desktop, tablet als mobiel.' },
|
|
158
|
+
|
|
159
|
+
{ type: 'glossary', items: [
|
|
160
|
+
{
|
|
161
|
+
term: 'Visuele Compositie',
|
|
162
|
+
definition: 'Kunst van het organiseren van elementen (kleur, vorm, ruimte) om het oog van de kijker te leiden en een emotionele intentie te communiceren.'
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
term: 'Regel van Derden',
|
|
166
|
+
definition: 'Compositieprincipe: verdeelt het beeld in 9 gelijke gebieden (3x3). Plaats onderwerpen op snijlijnen voor maximale impact.'
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
term: 'Symmetrisch Raster',
|
|
170
|
+
definition: 'Gelijke ruimtelijke verdelingen. Rustgevend, ordelijk. Ideaal voor paren van foto\'s of even getallen.'
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
term: 'Asymmetrisch Raster',
|
|
174
|
+
definition: 'Ongelijke verdelingen. Dynamisch, interessant, visueel. Ideaal voor 5+ foto\'s met een variëteit aan formaten.'
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
term: 'Visuele Balans',
|
|
178
|
+
definition: 'Perceptueel evenwicht van visueel gewicht. Lichte + donkere afbeelding = balans; grote + kleine = balans.'
|
|
179
|
+
}
|
|
180
|
+
] },
|
|
181
|
+
|
|
182
|
+
{ type: 'message', title: 'Direct Visueel Narratief', ariaLabel: 'Informatie over compositie en collages', html: 'Elke collage vertelt een verhaal. Onze automatische ontwerper zorgt ervoor dat je visuele verhalen gebalanceerd, professioneel en klaar voor de wereld zijn. Zonder dat je hoeft te wachten op het werk van een grafisch ontwerper.' },
|
|
183
|
+
|
|
184
|
+
{ type: 'title', text: 'Creëer, Deel, Inspireer', level: 3 },
|
|
185
|
+
{ type: 'paragraph', html: 'Een goed gemaakte collage is het verschil tussen een vergeetbare post en een post die je volgers onthouden en delen. Gebruik slimme compositie voor je visuele verhalen om impact te maken.' }
|
|
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: 'nl',
|
|
219
|
+
};
|
|
220
|
+
|
|
221
|
+
export const content: CollageMakerLocaleContent = {
|
|
222
|
+
slug,
|
|
223
|
+
title,
|
|
224
|
+
description,
|
|
225
|
+
ui,
|
|
226
|
+
seo,
|
|
227
|
+
faqTitle: "Veelgestelde Vragen",
|
|
228
|
+
faq,
|
|
229
|
+
bibliographyTitle: "Referenties",
|
|
230
|
+
bibliography,
|
|
231
|
+
howTo,
|
|
232
|
+
schemas: [faqSchema as any, howToSchema as any, appSchema],
|
|
233
|
+
};
|