@jjlmoya/utils-social 1.2.0 → 1.4.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 (120) hide show
  1. package/package.json +59 -58
  2. package/src/category/i18n/de.ts +23 -0
  3. package/src/category/i18n/id.ts +23 -0
  4. package/src/category/i18n/it.ts +23 -0
  5. package/src/category/i18n/ja.ts +23 -0
  6. package/src/category/i18n/ko.ts +23 -0
  7. package/src/category/i18n/nl.ts +23 -0
  8. package/src/category/i18n/pl.ts +23 -0
  9. package/src/category/i18n/pt.ts +23 -0
  10. package/src/category/i18n/ru.ts +23 -0
  11. package/src/category/i18n/sv.ts +23 -0
  12. package/src/category/i18n/tr.ts +23 -0
  13. package/src/category/i18n/zh.ts +23 -0
  14. package/src/category/index.ts +12 -0
  15. package/src/index.ts +8 -0
  16. package/src/tests/i18n_coverage.test.ts +36 -0
  17. package/src/tests/locale_completeness.test.ts +1 -1
  18. package/src/tests/schemas_fulfillment.test.ts +23 -0
  19. package/src/tests/slug_uniqueness.test.ts +81 -0
  20. package/src/tests/title_quality.test.ts +55 -0
  21. package/src/tool/redditFormatter/i18n/de.ts +193 -0
  22. package/src/tool/redditFormatter/i18n/en.ts +1 -1
  23. package/src/tool/redditFormatter/i18n/es.ts +1 -1
  24. package/src/tool/redditFormatter/i18n/fr.ts +1 -1
  25. package/src/tool/redditFormatter/i18n/id.ts +193 -0
  26. package/src/tool/redditFormatter/i18n/it.ts +193 -0
  27. package/src/tool/redditFormatter/i18n/ja.ts +193 -0
  28. package/src/tool/redditFormatter/i18n/ko.ts +193 -0
  29. package/src/tool/redditFormatter/i18n/nl.ts +193 -0
  30. package/src/tool/redditFormatter/i18n/pl.ts +193 -0
  31. package/src/tool/redditFormatter/i18n/pt.ts +193 -0
  32. package/src/tool/redditFormatter/i18n/ru.ts +193 -0
  33. package/src/tool/redditFormatter/i18n/sv.ts +193 -0
  34. package/src/tool/redditFormatter/i18n/tr.ts +193 -0
  35. package/src/tool/redditFormatter/i18n/zh.ts +193 -0
  36. package/src/tool/redditFormatter/index.ts +15 -7
  37. package/src/tool/safeZones/i18n/de.ts +244 -0
  38. package/src/tool/safeZones/i18n/id.ts +244 -0
  39. package/src/tool/safeZones/i18n/it.ts +244 -0
  40. package/src/tool/safeZones/i18n/ja.ts +244 -0
  41. package/src/tool/safeZones/i18n/ko.ts +244 -0
  42. package/src/tool/safeZones/i18n/nl.ts +244 -0
  43. package/src/tool/safeZones/i18n/pl.ts +244 -0
  44. package/src/tool/safeZones/i18n/pt.ts +244 -0
  45. package/src/tool/safeZones/i18n/ru.ts +244 -0
  46. package/src/tool/safeZones/i18n/sv.ts +244 -0
  47. package/src/tool/safeZones/i18n/tr.ts +244 -0
  48. package/src/tool/safeZones/i18n/zh.ts +244 -0
  49. package/src/tool/safeZones/index.ts +17 -9
  50. package/src/tool/socialImageResizer/i18n/de.ts +211 -0
  51. package/src/tool/socialImageResizer/i18n/en.ts +1 -1
  52. package/src/tool/socialImageResizer/i18n/id.ts +211 -0
  53. package/src/tool/socialImageResizer/i18n/it.ts +211 -0
  54. package/src/tool/socialImageResizer/i18n/ja.ts +211 -0
  55. package/src/tool/socialImageResizer/i18n/ko.ts +211 -0
  56. package/src/tool/socialImageResizer/i18n/nl.ts +211 -0
  57. package/src/tool/socialImageResizer/i18n/pl.ts +211 -0
  58. package/src/tool/socialImageResizer/i18n/pt.ts +211 -0
  59. package/src/tool/socialImageResizer/i18n/ru.ts +211 -0
  60. package/src/tool/socialImageResizer/i18n/sv.ts +211 -0
  61. package/src/tool/socialImageResizer/i18n/tr.ts +211 -0
  62. package/src/tool/socialImageResizer/i18n/zh.ts +211 -0
  63. package/src/tool/socialImageResizer/index.ts +16 -8
  64. package/src/tool/socialValueCalculator/i18n/de.ts +306 -0
  65. package/src/tool/socialValueCalculator/i18n/es.ts +1 -1
  66. package/src/tool/socialValueCalculator/i18n/fr.ts +1 -1
  67. package/src/tool/socialValueCalculator/i18n/id.ts +306 -0
  68. package/src/tool/socialValueCalculator/i18n/it.ts +306 -0
  69. package/src/tool/socialValueCalculator/i18n/ja.ts +306 -0
  70. package/src/tool/socialValueCalculator/i18n/ko.ts +306 -0
  71. package/src/tool/socialValueCalculator/i18n/nl.ts +306 -0
  72. package/src/tool/socialValueCalculator/i18n/pl.ts +306 -0
  73. package/src/tool/socialValueCalculator/i18n/pt.ts +306 -0
  74. package/src/tool/socialValueCalculator/i18n/ru.ts +306 -0
  75. package/src/tool/socialValueCalculator/i18n/sv.ts +306 -0
  76. package/src/tool/socialValueCalculator/i18n/tr.ts +306 -0
  77. package/src/tool/socialValueCalculator/i18n/zh.ts +306 -0
  78. package/src/tool/socialValueCalculator/index.ts +17 -9
  79. package/src/tool/tinderPhotoOptimizer/i18n/de.ts +272 -0
  80. package/src/tool/tinderPhotoOptimizer/i18n/id.ts +272 -0
  81. package/src/tool/tinderPhotoOptimizer/i18n/it.ts +272 -0
  82. package/src/tool/tinderPhotoOptimizer/i18n/ja.ts +272 -0
  83. package/src/tool/tinderPhotoOptimizer/i18n/ko.ts +272 -0
  84. package/src/tool/tinderPhotoOptimizer/i18n/nl.ts +272 -0
  85. package/src/tool/tinderPhotoOptimizer/i18n/pl.ts +272 -0
  86. package/src/tool/tinderPhotoOptimizer/i18n/pt.ts +272 -0
  87. package/src/tool/tinderPhotoOptimizer/i18n/ru.ts +272 -0
  88. package/src/tool/tinderPhotoOptimizer/i18n/sv.ts +272 -0
  89. package/src/tool/tinderPhotoOptimizer/i18n/tr.ts +272 -0
  90. package/src/tool/tinderPhotoOptimizer/i18n/zh.ts +272 -0
  91. package/src/tool/tinderPhotoOptimizer/index.ts +17 -9
  92. package/src/tool/youtubeThumbnail/i18n/de.ts +207 -0
  93. package/src/tool/youtubeThumbnail/i18n/id.ts +207 -0
  94. package/src/tool/youtubeThumbnail/i18n/it.ts +207 -0
  95. package/src/tool/youtubeThumbnail/i18n/ja.ts +207 -0
  96. package/src/tool/youtubeThumbnail/i18n/ko.ts +207 -0
  97. package/src/tool/youtubeThumbnail/i18n/nl.ts +207 -0
  98. package/src/tool/youtubeThumbnail/i18n/pl.ts +207 -0
  99. package/src/tool/youtubeThumbnail/i18n/pt.ts +207 -0
  100. package/src/tool/youtubeThumbnail/i18n/ru.ts +207 -0
  101. package/src/tool/youtubeThumbnail/i18n/sv.ts +207 -0
  102. package/src/tool/youtubeThumbnail/i18n/tr.ts +207 -0
  103. package/src/tool/youtubeThumbnail/i18n/zh.ts +207 -0
  104. package/src/tool/youtubeThumbnail/index.ts +17 -9
  105. package/src/tool/youtubeThumbnailPreviewer/i18n/de.ts +321 -0
  106. package/src/tool/youtubeThumbnailPreviewer/i18n/en.ts +1 -1
  107. package/src/tool/youtubeThumbnailPreviewer/i18n/es.ts +1 -1
  108. package/src/tool/youtubeThumbnailPreviewer/i18n/fr.ts +2 -2
  109. package/src/tool/youtubeThumbnailPreviewer/i18n/id.ts +321 -0
  110. package/src/tool/youtubeThumbnailPreviewer/i18n/it.ts +321 -0
  111. package/src/tool/youtubeThumbnailPreviewer/i18n/ja.ts +321 -0
  112. package/src/tool/youtubeThumbnailPreviewer/i18n/ko.ts +321 -0
  113. package/src/tool/youtubeThumbnailPreviewer/i18n/nl.ts +321 -0
  114. package/src/tool/youtubeThumbnailPreviewer/i18n/pl.ts +321 -0
  115. package/src/tool/youtubeThumbnailPreviewer/i18n/pt.ts +321 -0
  116. package/src/tool/youtubeThumbnailPreviewer/i18n/ru.ts +321 -0
  117. package/src/tool/youtubeThumbnailPreviewer/i18n/sv.ts +321 -0
  118. package/src/tool/youtubeThumbnailPreviewer/i18n/tr.ts +321 -0
  119. package/src/tool/youtubeThumbnailPreviewer/i18n/zh.ts +321 -0
  120. package/src/tool/youtubeThumbnailPreviewer/index.ts +24 -0
@@ -0,0 +1,272 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { TinderPhotoOptimizerUI } from '../ui';
4
+
5
+ const slug = 'tinder-photo-optimizer';
6
+ const title = 'Tinder 사진 최적화 도구: 얼굴 분석 및 구도 진단';
7
+ const description =
8
+ '알고리즘 기반 얼굴 분석으로 Tinder 사진을 최적화하세요. 2026년 인터페이스 시뮬레이션, 과학적 프레이밍 및 시선 분석을 통해 매칭률을 극대화하는 완벽한 9:16 인물 사진을 제작합니다.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: '이 도구가 어떻게 Tinder 매칭률을 높여주나요?',
13
+ answer:
14
+ '이 도구는 얼굴 크기 비율(이상적 범위 30-50%), 상단 1/3 지점 대비 눈 위치, 프레이밍 커버리지, 그리고 Tinder UI의 데드존과 같은 핵심 기술 요소를 분석합니다. 이러한 매개변수를 조정함으로써 사진에 더 큰 신뢰감을 심어주고 알고리즘의 시각적 필터를 효과적으로 통과할 수 있게 합니다.',
15
+ },
16
+ {
17
+ question: '내 사진을 여기에 업로드해도 안전한가요?',
18
+ answer:
19
+ '완전하게 안전합니다. 모든 처리는 브라우저의 Canvas API를 사용하여 로컬에서 이루어집니다. 사진은 어떠한 서버로도 전송되지 않으며 어디에도 저장되지 않습니다.',
20
+ },
21
+ {
22
+ question: 'AI 얼굴 감지는 정확히 무엇을 분석하나요?',
23
+ answer:
24
+ 'face-api.js를 사용하여 68개의 얼굴 참조 포인트를 감지하고 표정(웃음, 진지함), 눈 위치 평가, 머리 기울기 측정 등을 수행합니다. 모든 분석은 기기 내에서 로컬로 실행됩니다.',
25
+ },
26
+ {
27
+ question: '왜 1.2배 줌을 권장하나요?',
28
+ answer:
29
+ '스마트폰 전면 카메라는 광각 렌즈(24mm)를 사용하여 배럴 왜곡 현상으로 얼굴이 실제보다 왜곡되어 보일 수 있습니다. 1.2배 줌은 50-85mm 초점 거리를 시뮬레이션하여 왜곡을 제거하고 더 자연스럽고 매력적인 얼굴 비율을 제공합니다.',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: '사진 업로드',
36
+ text: 'Tinder 시뮬레이터로 이미지를 드래그하거나 클릭하여 불러옵니다.',
37
+ },
38
+ {
39
+ name: '구도 분석',
40
+ text: 'AI가 자동으로 얼굴을 감지하고 얼굴 크기, 시선, 커버리지 및 표정 지표를 보여줍니다.',
41
+ },
42
+ {
43
+ name: '정밀 조정',
44
+ text: '줌 및 밝기 조절 기능을 사용하거나 오토 프레이밍을 활성화하고 시뮬레이터 내에서 수동으로 드래그하여 조정합니다.',
45
+ },
46
+ {
47
+ name: '최적화된 다운로드',
48
+ text: '클린 메타데이터와 함께 Tinder에 최적화된 1080x1920 기본 형식으로 사진을 저장합니다.',
49
+ },
50
+ ];
51
+
52
+ const faqSchema: WithContext<FAQPage> = {
53
+ '@context': 'https://schema.org',
54
+ '@type': 'FAQPage',
55
+ mainEntity: faqData.map((item) => ({
56
+ '@type': 'Question',
57
+ name: item.question,
58
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
59
+ })),
60
+ };
61
+
62
+ const howToSchema: WithContext<HowTo> = {
63
+ '@context': 'https://schema.org',
64
+ '@type': 'HowTo',
65
+ name: title,
66
+ description,
67
+ step: howToData.map((step, i) => ({
68
+ '@type': 'HowToStep',
69
+ position: i + 1,
70
+ name: step.name,
71
+ text: step.text,
72
+ })),
73
+ };
74
+
75
+ const appSchema: WithContext<SoftwareApplication> = {
76
+ '@context': 'https://schema.org',
77
+ '@type': 'SoftwareApplication',
78
+ name: title,
79
+ description,
80
+ applicationCategory: 'UtilityApplication',
81
+ operatingSystem: 'All',
82
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'KRW' },
83
+ inLanguage: 'ko',
84
+ };
85
+
86
+ export const content: ToolLocaleContent<TinderPhotoOptimizerUI> = {
87
+ slug,
88
+ title,
89
+ description,
90
+ faqTitle: '자주 묻는 질문',
91
+ faq: faqData,
92
+ bibliographyTitle: '참고 문헌',
93
+ bibliography: [
94
+ {
95
+ name: 'face-api.js: JavaScript Face Recognition in the Browser',
96
+ url: 'https://github.com/justadudewhohacks/face-api.js',
97
+ },
98
+ {
99
+ name: 'MDN Web Docs: Canvas API',
100
+ url: 'https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API',
101
+ },
102
+ ],
103
+ howTo: howToData,
104
+ schemas: [faqSchema, howToSchema, appSchema],
105
+ seo: [
106
+ {
107
+ type: 'title',
108
+ text: 'Tinder 사진 최적화: 과학적/기술적 가이드 완벽판 (2026)',
109
+ level: 2,
110
+ },
111
+ {
112
+ type: 'paragraph',
113
+ html: '디지털 데이팅 생태계에서 귀하의 Tinder 프로필은 두 가지 알고리즘에 의해 동시에 처리됩니다. 하나는 플랫폼 자체의 고도화된 비전 알고리즘이며, 다른 하나는 스와이프하는 사용자의 뇌입니다. 본 도구는 <strong>진화 심리학</strong>, <strong>안면 생체 인식</strong>, <strong>디지털 신호 처리</strong> 원리를 통합하여 귀하의 이미지가 최대의 사회적 가치와 기술적 매력을 발산하도록 보장합니다.',
114
+ },
115
+ {
116
+ type: 'title',
117
+ text: '첫인상의 심리학: 1.2초의 효과',
118
+ level: 3,
119
+ },
120
+ {
121
+ type: 'paragraph',
122
+ html: '신경과학 연구에 따르면 인간의 뇌가 상대방의 신뢰성에 기반한 첫인상을 형성하는 데 걸리는 시간은 약 10분의 1초에 불과합니다. Tinder에서는 다음 스와이프 전까지 주어지는 시간은 고작 1초 남짓입니다. 본 도구는 긍정적인 의사결정을 가속화하는 요소를 분석합니다:',
123
+ },
124
+ {
125
+ type: 'list',
126
+ items: [
127
+ '<strong>아이컨택과 시선 처리:</strong> 직접적인 시선은 사회적 보상과 관련된 뇌 영역을 활성화합니다. 눈을 상단 1/3 지점에 배치하면 사용자가 이름을 읽기 전에 귀하의 눈빛에서 손가락을 멈출 확률이 극대화됩니다.',
128
+ '<strong>비대칭성과 포즈:</strong> 약간의 기울임은 공격적인 인상을 완화할 수 있지만, 과도한 기울임은 불안정함을 전달합니다. 알고리즘이 정확한 각도를 측정하여 신뢰받는 범위 내에 머물게 합니다.',
129
+ '<strong>인물-배경 대비:</strong> 피사체가 배경과 명확하게 분리된 사진이 좋은 점수를 받습니다. 잘 정의된 기술적 프로필은 렌더링 엔진이 수많은 경쟁자 중에서 귀하의 얼굴을 돋보이게 하는 데 도움을 줍니다.',
130
+ ],
131
+ },
132
+ {
133
+ type: 'title',
134
+ text: '렌즈의 기술적 분석: 광각 렌즈의 문제점',
135
+ level: 3,
136
+ },
137
+ {
138
+ type: 'paragraph',
139
+ html: '대부분의 프로필 사진은 스마트폰으로 촬영되는데, 스마트폰 전면 카메라는 광각 렌즈입니다. 가장 흔한 실수는 기기에 너무 가까이 다가가는 것입니다.',
140
+ },
141
+ {
142
+ type: 'paragraph',
143
+ html: '<strong>배럴 왜곡(Barrel Distortion):</strong> 1미터 이내의 거리에서는 24mm 렌즈(스마트폰 표준)가 이미지 중앙을 팽창시킵니다. 이로 인해 코가 실제보다 크게 보이고 얼굴이 둥글게 보일 수 있습니다. 본 도구의 <strong>1.2배 줌</strong> 권장은 보정 차원입니다. 약간의 디지털 크롭을 통해 50mm에서 85mm의 초점 거리를 시뮬레이션합니다. 이는 패션 사진작가들이 얼굴을 갸름하게 보이고 실제 비율을 유지하기 위해 사용하는 "황금 초점 거리"입니다.',
144
+ },
145
+ {
146
+ type: 'title',
147
+ text: 'Tinder 인터페이스: 데드존의 과학',
148
+ level: 3,
149
+ },
150
+ {
151
+ type: 'paragraph',
152
+ html: '수많은 훌륭한 사진들이 Tinder가 그 위에 씌우는 소프트웨어 레이어(UI)를 무시하여 실패합니다. 평균적인 사용자는 귀하의 사진만을 보는 것이 아니라, 버튼, 그라데이션, 텍스트가 섞인 화면 전체를 봅니다.',
153
+ },
154
+ {
155
+ type: 'list',
156
+ items: [
157
+ '<strong>타이틀 존 (상단 15%):</strong> 진행 상태 표시줄과 상태 표시줄이 위치하는 곳입니다. 이마나 눈이 여기에 위치하면 인터페이스가 시각적으로 머리 윗부분을 잘라버리는 결과를 낳습니다.',
158
+ '<strong>액션 존 (버튼부):</strong> Like, Nope, Boost 아이콘이 하단 양옆을 차지합니다. 손이나 스타일 요소가 여기에 위치하면 완전히 가려지게 됩니다.',
159
+ '<strong>가독성 그라데이션 (하단 28%):</strong> Tinder는 이름과 나이를 잘 읽히게 하기 위해 검은색 페이드를 적용합니다. 얼굴이 이 영역에 들어가면 텍스트가 얼굴の特徴과 겹쳐 프로필 미관을 해치게 됩니다.',
160
+ ],
161
+ },
162
+ {
163
+ type: 'title',
164
+ text: '실시간 비전 분석: 알고리즘의 해독',
165
+ level: 3,
166
+ },
167
+ {
168
+ type: 'paragraph',
169
+ html: '본 도구는 <strong>최신 세대 컴퓨터 비전 모델</strong>을 사용하여 Tinder의 자동 모더레이터가 수행하는 것처럼 이미지를 정밀 진단합니다:',
170
+ },
171
+ {
172
+ type: 'list',
173
+ items: [
174
+ '<strong>랜드마크 감지:</strong> 68개의 얼굴 포인트를 매핑하여 대칭성과 눈의 개방 정도를 분석합니다. 크고 선명하게 노출된 눈은 인식되는 외향성 수준과 양의 상관관계를 가집니다.',
175
+ '<strong>감정 평가:</strong> 옅은 미소는 보는 사람의 미러 뉴런을 활성화합니다. 안면 표정의 강도를 감지하여 너무 딱딱하거나 다가가기 힘든 인상이 아닌지 확인합니다.',
176
+ '<strong>조명 품질:</strong> 감지 신뢰도를 평가합니다. 점수가 낮을 경우 사진에 노이즈가 많거나 강한 그림자가 있어 Tinder 알고리즘이 저품질 콘텐츠로 분류할 가능성이 있습니다.',
177
+ ],
178
+ },
179
+ {
180
+ type: 'title',
181
+ text: 'Tinder에 최적화된 메타데이터 및 내보내기',
182
+ level: 3,
183
+ },
184
+ {
185
+ type: 'paragraph',
186
+ html: '이미지 용량이 알고리즘에 영향을 준다는 사실을 알고 계셨나요? 데이팅 앱은 사용자 흐름을 방해하지 않기 위해 로딩이 빠른 콘텐츠를 우선적으로 노출합니다.',
187
+ },
188
+ {
189
+ type: 'list',
190
+ items: [
191
+ '<strong>메타데이터 제거 (개인정보 및 SEO):</strong> EXIF 기록을 제거합니다. 깔끔한 사진은 플랫폼 알고리즘에게 "새로운 도화지"와 같은 역할을 합니다.',
192
+ '<strong>지능형 무손실 압축:</strong> iOS 및 Android 고유의 sRGB 색 공간을 유지하면서 JPG 파일 용량을 줄입니다. 통신 환경이 좋지 않은 곳에서도 귀하의 사진은 생생하게 표시될 것입니다.',
193
+ '<strong>몰입형 9:16 형식:</strong> 정확히 1080x1920 픽셀로 제공하여 이미지 아티팩트를 유발하는 Tinder 고유의 공격적인 압축 알고리즘이 적용되는 것을 방지합니다.',
194
+ ],
195
+ },
196
+ {
197
+ type: 'tip',
198
+ title: '전문가 팁',
199
+ html: '<p>첫 번째 사진은 항상 어깨 위로 얼굴이 선명하게 나온 인물 사진이어야 합니다. 전신 사진이나 활동적인 사진은 3번이나 4번 슬롯에 배치하세요. 첫인상에서 시선이 가려지지 않고 얼굴 크기가 최적인지(30-50%) 확인하십시오.</p>',
200
+ },
201
+ {
202
+ type: 'title',
203
+ text: '처리 보안 및 윤리',
204
+ level: 3,
205
+ },
206
+ {
207
+ type: 'paragraph',
208
+ html: '귀하의 사진은 소중한 사생활임을 잘 알고 있습니다. 이 최적화 도구는 <strong>클라이언트 사이드 기술</strong>을 사용합니다. 이미지는 로컬 브라우저의 canvas 엔진에 의해 처리됩니다. 어떠한 데이터도 기기 외부로 유출되지 않습니다. 사생활 침해 걱정 없이 프로필을 최적화하는 가장 안전하고 빠른 방법입니다.',
209
+ },
210
+ ],
211
+ ui: {
212
+ uploadTitle: '사진 최적화',
213
+ uploadSubtitle: '드래그하거나 클릭하여 시작',
214
+ btnDownload: '최적화된 사진 다운로드',
215
+ btnRescan: '얼굴 재스캔',
216
+ btnAutoFocus: '오토 프레이밍',
217
+ btnMarkFace: '얼굴 표시',
218
+ panelManual: '수동 조정',
219
+ panelVisualization: '고급 시각화',
220
+ panelMetrics: '구도 분석',
221
+ panelExport: 'Tinder 2026용 저장',
222
+ panelExportDesc: '1080x1920 자동 크롭 및 메타데이터 최적화.',
223
+ labelZoom: '줌',
224
+ labelBrightness: '밝기',
225
+ toggleGrid: '3분할 그리드',
226
+ toggleGridDesc: '전통적인 구도 조정',
227
+ toggleDeadzones: '위험 구역',
228
+ toggleDeadzonesDesc: 'UI가 얼굴을 가리지 않도록 방지',
229
+ toggleFaceBox: '감지된 얼굴 보기',
230
+ toggleFaceBoxDesc: '랜드마크 및 감지 영역',
231
+ metricFaceSize: '얼굴 비율',
232
+ metricEyeLine: '시선 처리',
233
+ metricCoverage: '커버리지',
234
+ metricMood: '표정',
235
+ metricQuality: '신뢰도',
236
+ analysisSuccess: '성공 요인',
237
+ analysisWarning: '최적화 필요',
238
+ analysisError: '심각한 오류',
239
+ deadzoneTop: '상단 UI 영역',
240
+ deadzoneBottom: '정보 영역',
241
+ loaderAnalyzing: '구도 분석 중...',
242
+ loaderModels: '비전 모델 로드 중...',
243
+ simulatorName: '이름, 25',
244
+ simulatorJob: '직업',
245
+ simulatorCity: '한국 거주',
246
+ simulatorDistance: '5 km 이내',
247
+ statusOptimal: '최적',
248
+ statusIncorrect: '부적절',
249
+ statusHigh: '높음',
250
+ statusMedium: '보통',
251
+ statusLow: '낮음',
252
+ statusPositive: '긍정적',
253
+ statusNeutral: '중립적',
254
+ alertExcellent: '기술적인 구도가 훌륭합니다.',
255
+ alertEmptySpaces: '여백 발생: 이미지가 화면을 다 채우지 못했습니다. 줌이나 위치를 조정하세요.',
256
+ alertAlmostInvisible: '거의 안 보임: 너무 멀리 있습니다. 얼굴이 화면의 최소 1/3을 차지할 때까지 확대하세요.',
257
+ alertTooClose: '너무 가까움: 극단적인 클로즈업은 공격적인 인상을 줄 수 있습니다.',
258
+ alertPerfectSize: '완벽한 크기: 신뢰감을 주는 가장 이상적인 얼굴 비율입니다.',
259
+ alertImpactfulLook: '강렬한 눈빛: 눈이 최대 주목 라인에 위치해 매력적입니다.',
260
+ alertEyeLineMoveUp: '시선 위치: 전문적인 구도를 위해 얼굴을 위쪽 라인까지 조금 더 올려주세요.',
261
+ alertEyeLineMoveDown: '시선 위치: 전문적인 구도를 위해 얼굴을 위쪽 라인까지 조금 더 내려주세요.',
262
+ alertTiltedHead: '비뚤어진 머리: 너무 기울어진 자세는 불안정해 보일 수 있습니다.',
263
+ alertSmileDetected: '미소 감지: 웃는 표정은 매칭률을 상당히 높여줍니다.',
264
+ alertSevereExpression: '딱딱한 표정: 조금 더 부드러운 인상의 사진을 사용해 보세요.',
265
+ alertObstructedTop: '가려짐: 상태 표시줄이 얼굴을 가리고 있습니다.',
266
+ alertObstructedBottom: '가려짐: 정보 블록이 얼굴을 가리고 있습니다.',
267
+ alertLowLight: '조명 부족: AI가 얼굴을 인식하기 어렵습니다. 더 밝은 사진을 찾아보세요.',
268
+ alertCutOff: '잘림: 얼굴이 세로 프레임 밖으로 벗어났습니다.',
269
+ alertProTip: '전문가 팁: 셀카인 경우, 렌즈 왜곡을 막기 위해 줌(1.2배) 기능을 꼭 활용하세요.',
270
+ canvasFaceDetected: '얼굴 감지됨',
271
+ },
272
+ };
@@ -0,0 +1,272 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { TinderPhotoOptimizerUI } from '../ui';
4
+
5
+ const slug = 'tinder-foto-optimallisator';
6
+ const title = 'Tinder Foto Optimallisator: Gezichtsanalyse en Compositie';
7
+ const description =
8
+ 'Optimaliseer je Tinder-foto\'s met algoritmische gezichtsanalyse. Simuleer de Tinder-interface van 2026, analyseer wetenschappelijke framing en de ooglijn, en exporteer perfecte 9:16-portretten voor maximale matches.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Hoe verbetert deze tool mijn matches op Tinder?',
13
+ answer:
14
+ 'De tool analyseert belangrijke technische factoren: de gezichtsgrootteverhouding (ideaal 30-50%), de positie van de ooglijn ten opzichte van het bovenste derde deel, de framing-dekking en de dode zones van de Tinder-interface. Door deze parameters aan te passen, straalt je foto meer vertrouwen uit en doorbreekt hij de visuele filters van het algoritme.',
15
+ },
16
+ {
17
+ question: 'Is het veilig om mijn foto\'s hier te uploaden?',
18
+ answer:
19
+ 'Volledig veilig. Alle verwerking vindt plaats in je browser via de Canvas API. Je foto\'s worden nooit naar een server verzonden of ergens opgeslagen.',
20
+ },
21
+ {
22
+ question: 'Wat doet de gezichtsdetectie met AI precies?',
23
+ answer:
24
+ 'Het gebruikt face-api.js om 68 gezichtspunten te detecteren, de expressie te analyseren (glimlach, serieuze blik), de oogpositie te evalueren en de hoofdkanteling te meten. De gehele analyse vindt lokaal plaats op jouw apparaat.',
25
+ },
26
+ {
27
+ question: 'Waarom raden jullie een zoom van 1.2x aan?',
28
+ answer:
29
+ 'Frontcamera\'s van smartphones gebruiken groothoeklenzen (24mm) die het gezicht vervormen met tonvervorming. Een zoom van 1.2x simuleert een brandpuntsafstand van 50-85mm, waardoor de vervorming wordt geëlimineerd en natuurlijkere en aantrekkelijkere gezichtsproporties ontstaan.',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: 'Upload je foto',
36
+ text: 'Sleep je afbeelding naar de Tinder-simulator of klik erop om deze te laden.',
37
+ },
38
+ {
39
+ name: 'Analyseer de compositie',
40
+ text: 'De AI detecteert je gezicht automatisch en toont statistieken over gezichtsgrootte, ooglijn, dekking en expressie.',
41
+ },
42
+ {
43
+ name: 'Stem nauwkeurig af',
44
+ text: 'Gebruik de zoom- en helderheidsregelaars, activeer auto-framing of sleep de afbeelding handmatig binnen de simulator.',
45
+ },
46
+ {
47
+ name: 'Geoptimaliseerde download',
48
+ text: 'Exporteer je foto in het native formaat 1080x1920, geoptimaliseerd voor Tinder, met schone metadata.',
49
+ },
50
+ ];
51
+
52
+ const faqSchema: WithContext<FAQPage> = {
53
+ '@context': 'https://schema.org',
54
+ '@type': 'FAQPage',
55
+ mainEntity: faqData.map((item) => ({
56
+ '@type': 'Question',
57
+ name: item.question,
58
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
59
+ })),
60
+ };
61
+
62
+ const howToSchema: WithContext<HowTo> = {
63
+ '@context': 'https://schema.org',
64
+ '@type': 'HowTo',
65
+ name: title,
66
+ description,
67
+ step: howToData.map((step, i) => ({
68
+ '@type': 'HowToStep',
69
+ position: i + 1,
70
+ name: step.name,
71
+ text: step.text,
72
+ })),
73
+ };
74
+
75
+ const appSchema: WithContext<SoftwareApplication> = {
76
+ '@context': 'https://schema.org',
77
+ '@type': 'SoftwareApplication',
78
+ name: title,
79
+ description,
80
+ applicationCategory: 'UtilityApplication',
81
+ operatingSystem: 'All',
82
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
83
+ inLanguage: 'nl',
84
+ };
85
+
86
+ export const content: ToolLocaleContent<TinderPhotoOptimizerUI> = {
87
+ slug,
88
+ title,
89
+ description,
90
+ faqTitle: 'Veelgestelde Vragen',
91
+ faq: faqData,
92
+ bibliographyTitle: 'Referenties',
93
+ bibliography: [
94
+ {
95
+ name: 'face-api.js: JavaScript Face Recognition in the Browser',
96
+ url: 'https://github.com/justadudewhohacks/face-api.js',
97
+ },
98
+ {
99
+ name: 'MDN Web Docs: Canvas API',
100
+ url: 'https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API',
101
+ },
102
+ ],
103
+ howTo: howToData,
104
+ schemas: [faqSchema, howToSchema, appSchema],
105
+ seo: [
106
+ {
107
+ type: 'title',
108
+ text: 'Tinder Foto Optimallisator: De Definitieve Wetenschappelijke en Technische Gids (2026)',
109
+ level: 2,
110
+ },
111
+ {
112
+ type: 'paragraph',
113
+ html: 'In het ecosysteem van digitaal daten wordt je Tinder-profiel tegelijkertijd door twee algoritmen verwerkt: het geavanceerde visie-algoritme van het platform zelf en het menselijke brein van de gebruiker die swipet. Onze tool integreert principes van <strong>evolutionaire psychologie</strong>, <strong>biometrie van het gezicht</strong> en <strong>digitale signaalverwerking</strong> om ervoor te zorgen dat jouw afbeelding de maximale sociale waarde en technische aantrekkingskracht uitstraalt.',
114
+ },
115
+ {
116
+ type: 'title',
117
+ text: 'De Psychologie van de Eerste Indruk: Het 1.2 Seconden Effect',
118
+ level: 3,
119
+ },
120
+ {
121
+ type: 'paragraph',
122
+ html: 'Neurowetenschappelijke studies tonen aan dat het menselijke brein ongeveer 1/10 van een seconde nodig heeft om een eerste indruk te vormen over het vertrouwen dat iemand uitstraalt. Op Tinder heb je iets meer dan een seconde voordat de volgende swipe plaatsvindt. Onze tool analyseert de factoren die een positieve besluitvorming versnellen:',
123
+ },
124
+ {
125
+ type: 'list',
126
+ items: [
127
+ '<strong>Oogcontact en Kijklijn:</strong> Een directe blik activeert hersengebieden die gerelateerd zijn aan sociale beloning. Door de ogen in het bovenste derde deel te positioneren, maximaliseer je de kans dat de gebruiker stopt bij jouw blik voordat hij je naam leest.',
128
+ '<strong>Asymmetrie en Houding:</strong> Een lichte kanteling kan agressieve trekken verzachten, maar een overmatige rol straalt instabiliteit uit. Ons algoritme meet de exacte hoek om je binnen het vertrouwde bereik te houden.',
129
+ '<strong>Figuur-Achtergrond Contrast:</strong> Het systeem beloont foto\'s waarbij het onderwerp duidelijk gescheiden is van de achtergrond. Een goed gedefinieerd technisch profiel helpt de rendering-engine om jouw gezicht te laten opvallen tussen de concurrentie.',
130
+ ],
131
+ },
132
+ {
133
+ type: 'title',
134
+ text: 'Technische Lensanalyse: Het Probleem van de Groothoek',
135
+ level: 3,
136
+ },
137
+ {
138
+ type: 'paragraph',
139
+ html: 'Bijna alle profielfoto\'s worden genomen met smartphones, waarvan de frontcamera\'s groothoeklenzen zijn. De meest voorkomende fout is om te dicht bij het apparaat te komen.',
140
+ },
141
+ {
142
+ type: 'paragraph',
143
+ html: '<strong>De Tonvervorming:</strong> Op een afstand van minder dan een meter zet een 24mm lens (standaard op mobieltjes) het midden van het beeld uit. Hierdoor lijken neuzen groter en lijkt het gezicht ronder dan het in werkelijkheid is. Onze aanbeveling van <strong>1.2x Zoom</strong> is corrigerend: door een lichte digitale uitsnede toe te passen, simuleer je een brandpuntsafstand van 50mm tot 85mm, de gouden brandpuntsafstand die modefotografen gebruiken om het gezicht slanker te maken en de werkelijke proporties te behouden.',
144
+ },
145
+ {
146
+ type: 'title',
147
+ text: 'Tinder-interface: De Wetenschap van de Dode Zones',
148
+ level: 3,
149
+ },
150
+ {
151
+ type: 'paragraph',
152
+ html: 'Veel uitstekende foto\'s mislukken omdat ze de softwarelaag (UI) negeren die Tinder erbovenop plaatst. Een gemiddelde gebruiker ziet niet je schone foto; hij ziet een mengeling van knoppen, gradiënten en tekst.',
153
+ },
154
+ {
155
+ type: 'list',
156
+ items: [
157
+ '<strong>Titelzone (Bovenste 15%):</strong> Hier bevinden zich de voortgangsindicatoren en de statusbalk. Als je voorhoofd of je ogen zich hier bevinden, snijdt de interface je hoofd visueel af.',
158
+ '<strong>Actiezone (Knoppen):</strong> De iconen voor Like, Nope en Boost nemen de onderste zijkanten in beslag. Als je handen of stijlelementen zich daar bevinden, gaan ze volledig verloren.',
159
+ '<strong>Het Leesbaarheidsgradiënt (Onderste 28%):</strong> Tinder past een zwarte fade toe zodat je naam en leeftijd leesbaar zijn. Als je gezicht in deze zone valt, overlapt de tekst je gelaatstrekken, wat de esthetiek van het profiel ruïneert.',
160
+ ],
161
+ },
162
+ {
163
+ type: 'title',
164
+ text: 'Real-time Visie-analyse: Het Algoritme Begrijpen',
165
+ level: 3,
166
+ },
167
+ {
168
+ type: 'paragraph',
169
+ html: 'Onze tool maakt gebruik van de <strong>nieuwste generatie Computer Vision-modellen</strong> om je afbeelding te controleren zoals de automatische moderators van Tinder dat zouden doen:',
170
+ },
171
+ {
172
+ type: 'list',
173
+ items: [
174
+ '<strong>Landmark detectie:</strong> We brengen 68 gezichtspunten in kaart om de symmetrie en de opening van de ogen te analyseren. Goed geopende en zichtbare ogen correleren met hogere niveaus van waargenomen extraversie.',
175
+ '<strong>Gemoedstoestand evaluatie:</strong> Een lichte glimlach activeert spiegelneuronen bij degene die naar je kijkt. We detecteren de intensiteit van de gezichtsuitdrukking om er zeker van te zijn dat je niet te serieus of ongenaakbaar overkomt.',
176
+ '<strong>Verlichtingskwaliteit:</strong> Het systeem evalueert het betrouwbaarheidsniveau van de detectie. Als de score laag is, heeft de foto visuele ruis of harde schaduwen die het algoritme van Tinder zou kunnen markeren als inhoud van lage kwaliteit.',
177
+ ],
178
+ },
179
+ {
180
+ type: 'title',
181
+ text: 'Metadata en Geoptimaliseerde Export voor Tinder',
182
+ level: 3,
183
+ },
184
+ {
185
+ type: 'paragraph',
186
+ html: 'Wist je dat de bestandsgrootte van je afbeelding het algoritme beïnvloedt? Dating-apps geven voorrang aan inhoud die snel laadt om de gebruikersstroom niet te onderbreken.',
187
+ },
188
+ {
189
+ type: 'list',
190
+ items: [
191
+ '<strong>Metadata verwijderen (Privacy en SEO):</strong> We verwijderen EXIF-gegevens. Een schone foto geeft je een nieuw canvas voor het algoritme van het platform.',
192
+ '<strong>Intelligente compressie zonder verlies:</strong> We verminderen de grootte van het JPG-bestand terwijl we de native sRGB-kleurruimte van iOS en Android behouden. Je foto ziet er levendig uit, zelfs bij een slechte verbinding.',
193
+ '<strong>Immersief 9:16 formaat:</strong> Door exact 1080x1920 pixels te leveren, voorkomen we dat Tinder zijn eigen agressieve compressie-algoritme toepast dat beeldartefacten genereert.',
194
+ ],
195
+ },
196
+ {
197
+ type: 'tip',
198
+ title: 'Expertadvies',
199
+ html: '<p>De eerste foto moet ALTIJD een duidelijk portret van de schouders omhoog zijn. Bewaar foto\'s van je volledige lichaam of van activiteiten voor de 3e of 4e positie. Zorg ervoor dat bij die eerste indruk je blik vrij is van obstakels en je gezicht de optimale grootte heeft (30-50%).</p>',
200
+ },
201
+ {
202
+ type: 'title',
203
+ text: 'Veiligheid en Ethiek bij Verwerking',
204
+ level: 3,
205
+ },
206
+ {
207
+ type: 'paragraph',
208
+ html: 'We begrijpen dat je foto\'s privé zijn. Deze optimallisator maakt gebruik van <strong>Client-Side technologie</strong>: de afbeeldingen worden verwerkt door een canvas-engine in je lokale browser. Er gaan geen gegevens je apparaat uit. Het is de veiligste en snelste manier om je profiel te optimaliseren zonder je privacy in gevaar te brengen.',
209
+ },
210
+ ],
211
+ ui: {
212
+ uploadTitle: 'Foto Optimaliseren',
213
+ uploadSubtitle: 'Sleep of klik om te beginnen',
214
+ btnDownload: 'Geoptimaliseerde Foto Downloaden',
215
+ btnRescan: 'Gezicht Opnieuw Scannen',
216
+ btnAutoFocus: 'Auto-Framing',
217
+ btnMarkFace: 'Gezicht Markeren',
218
+ panelManual: 'Handmatige Aanpassingen',
219
+ panelVisualization: 'Geavanceerde Visualisatie',
220
+ panelMetrics: 'Compositie-analyse',
221
+ panelExport: 'Exporteren voor Tinder 2026',
222
+ panelExportDesc: 'Automatisch bijsnijden naar 1080x1920 met geoptimaliseerde metadata.',
223
+ labelZoom: 'Zoom',
224
+ labelBrightness: 'Helderheid',
225
+ toggleGrid: 'Raster van Derden',
226
+ toggleGridDesc: 'Aanpassing van klassieke compositie',
227
+ toggleDeadzones: 'Gevarenzones',
228
+ toggleDeadzonesDesc: 'Voorkomt dat de UI je gezicht verbergt',
229
+ toggleFaceBox: 'Bekijk Gedetecteerd Gezicht',
230
+ toggleFaceBoxDesc: 'Punten en detectiegebied',
231
+ metricFaceSize: 'Gezichtsverhouding',
232
+ metricEyeLine: 'Kijklijn',
233
+ metricCoverage: 'Dekking',
234
+ metricMood: 'Expressie',
235
+ metricQuality: 'Vertrouwen',
236
+ analysisSuccess: 'Succesfactoren',
237
+ analysisWarning: 'Optimalisatie',
238
+ analysisError: 'Kritieke Fouten',
239
+ deadzoneTop: 'Bovenste UI-zone',
240
+ deadzoneBottom: 'Informatiezone',
241
+ loaderAnalyzing: 'Compositie analyseren...',
242
+ loaderModels: 'Visiemodellen laden...',
243
+ simulatorName: 'Je Naam, 25',
244
+ simulatorJob: 'Je Beroep',
245
+ simulatorCity: 'Woont in Nederland',
246
+ simulatorDistance: '5 km bij jou vandaan',
247
+ statusOptimal: 'OPTIMAAL',
248
+ statusIncorrect: 'INCORRECT',
249
+ statusHigh: 'HOOG',
250
+ statusMedium: 'GEMIDDELD',
251
+ statusLow: 'LAAG',
252
+ statusPositive: 'POSITIEF',
253
+ statusNeutral: 'NEUTRAAL',
254
+ alertExcellent: 'Uitstekende technische compositie.',
255
+ alertEmptySpaces: 'LEGE RUIMTES: De afbeelding vult niet het hele kader. Pas de zoom of positie aan.',
256
+ alertAlmostInvisible: 'BIJNA ONZICHTBAAR: Je bent erg ver weg. Zoom in tot je gezicht minstens een derde van het scherm beslaat.',
257
+ alertTooClose: 'TE DICHTBIJ: Extreme close-ups kunnen agressief overkomen.',
258
+ alertPerfectSize: 'PERFECTE GROOTTE: Je gezicht heeft de ideale verhouding om vertrouwen uit te stralen.',
259
+ alertImpactfulLook: 'IMPACTVOLLE BLIK: Je ogen bevinden zich op de lijn van maximale aandacht.',
260
+ alertEyeLineMoveUp: 'OOGLIJN: Voor een professionele framing schuif je het gezicht iets omhoog naar de bovenste lijn.',
261
+ alertEyeLineMoveDown: 'OOGLIJN: Voor een professionele framing schuif je het gezicht iets omlaag naar de bovenste lijn.',
262
+ alertTiltedHead: 'GEKANTELD HOOFD: Een te schuine houding kan instabiliteit uitstralen.',
263
+ alertSmileDetected: 'GLIMLACH GEDETECTEERD: Een glimlach verhoogt de match-rate aanzienlijk.',
264
+ alertSevereExpression: 'SERIEUZE EXPRESSIE: Probeer een foto met een vriendelijkere uitstraling.',
265
+ alertObstructedTop: 'GEBLOKKEERD: De voortgangsbalk bedekt je gezicht.',
266
+ alertObstructedBottom: 'GEBLOKKEERD: Het informatieblok bedekt je gezicht.',
267
+ alertLowLight: 'SLECHTE VERLICHTING: De AI heeft moeite om je te zien. Zoek een foto met beter licht.',
268
+ alertCutOff: 'AFGESNEDEN: Het gezicht valt buiten het verticale kader.',
269
+ alertProTip: 'PRO TIP: Als het een selfie is, gebruik dan Zoom (1.2x) om lensvervorming te voorkomen.',
270
+ canvasFaceDetected: 'Gezicht gedetecteerd',
271
+ },
272
+ };