@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,211 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { SocialImageResizerUI } from '../ui';
4
+
5
+ const slug = 'social-media-image-resizer';
6
+ const title = 'ソーシャルメディア画像リサイザー:全プラットフォーム対応の切り抜き&リサイズ';
7
+ const description =
8
+ 'Instagram、TikTok、YouTubeなどのために写真をリサイズし、切り抜きます。2026年最新の公式サイズに対応したスマートな切り抜きが可能です。';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'リサイズ時に画質は低下しますか?',
13
+ answer:
14
+ 'いいえ、高品質なスムージングアルゴリズムを使用しています。ターゲットフォーマット以上の解像度を持つ元の画像をアップロードすることをお勧めします。',
15
+ },
16
+ {
17
+ question: 'ここに写真をアップロードしても安全ですか?',
18
+ answer:
19
+ '完全に安全です。処理はブラウザ内でCanvas APIを使用してローカルに行われます。写真はサーバーに送信されることはありません。',
20
+ },
21
+ {
22
+ question: '対応している形式を教えてください。',
23
+ answer:
24
+ 'アップロードにはJPG、PNG、WebP、AVIFに対応しています。ダウンロードは互換性を最大化するため、高品質なJPGとして最適化されます。',
25
+ },
26
+ ];
27
+
28
+ const howToData = [
29
+ {
30
+ name: '画像をアップロードする',
31
+ text: 'ファイルをドラッグするか、デバイスから選択して開始します。',
32
+ },
33
+ {
34
+ name: '形式を選択する',
35
+ text: 'サイドメニューから、必要なソーシャルネットワークと投稿タイプを選択します。',
36
+ },
37
+ {
38
+ name: '調整してダウンロードする',
39
+ text: '写真をドラッグして枠に合わせ、ズームを使用して完璧に切り抜きます。完了したらダウンロードをクリックしてください。',
40
+ },
41
+ ];
42
+
43
+ const faqSchema: WithContext<FAQPage> = {
44
+ '@context': 'https://schema.org',
45
+ '@type': 'FAQPage',
46
+ mainEntity: faqData.map((item) => ({
47
+ '@type': 'Question',
48
+ name: item.question,
49
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
50
+ })),
51
+ };
52
+
53
+ const howToSchema: WithContext<HowToThing> = {
54
+ '@context': 'https://schema.org',
55
+ '@type': 'HowTo',
56
+ name: title,
57
+ description,
58
+ step: howToData.map((step, i) => ({
59
+ '@type': 'HowToStep',
60
+ position: i + 1,
61
+ name: step.name,
62
+ text: step.text,
63
+ })),
64
+ };
65
+
66
+ const appSchema: WithContext<SoftwareApplication> = {
67
+ '@context': 'https://schema.org',
68
+ '@type': 'SoftwareApplication',
69
+ name: title,
70
+ description,
71
+ applicationCategory: 'UtilityApplication',
72
+ operatingSystem: 'All',
73
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'JPY' },
74
+ inLanguage: 'ja',
75
+ };
76
+
77
+ export const content: ToolLocaleContent<SocialImageResizerUI> = {
78
+ slug,
79
+ title,
80
+ description,
81
+ faqTitle: 'よくある質問',
82
+ faq: faqData,
83
+ bibliographyTitle: '参考文献',
84
+ bibliography: [
85
+ {
86
+ name: 'MDN Web Docs: Canvas API',
87
+ url: 'https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API',
88
+ },
89
+ {
90
+ name: 'Sprout Social: 2026年ソーシャルメディア画像サイズガイド',
91
+ url: 'https://sproutsocial.com/insights/social-media-image-sizes-guide/',
92
+ },
93
+ ],
94
+ howTo: howToData,
95
+ schemas: [faqSchema, howToSchema, appSchema],
96
+ seo: [
97
+ {
98
+ type: 'title',
99
+ text: '全プラットフォーム対応のソーシャルメディア画像リサイザー',
100
+ level: 2,
101
+ },
102
+ {
103
+ type: 'paragraph',
104
+ html: '今日のデジタルエコシステムにおいて、第一印象は視覚的なものです。各ソーシャルネットワークは、その比率にネイティブに適応したコンテンツを優先する特定のアルゴリズムの下で動作しています。当社のソーシャルメディア画像リサイザーは単なる技術的なツールではありません。意図しない切り抜きや画質の低下を招くことなく、メッセージを確実に届けるためのパートナーです。',
105
+ },
106
+ {
107
+ type: 'paragraph',
108
+ html: '風景写真をInstagramストーリーズ用の印象的な縦型に変換する場合でも、複雑なYouTubeバナー用にデザインを適応させる場合でも、当社のユーティリティはブラウザ上で直接、正確に配置とスケーリングができるスマートな切り抜きシステムを使用しています。',
109
+ },
110
+ {
111
+ type: 'title',
112
+ text: '2026年公式ソーシャルメディア画像サイズ',
113
+ level: 3,
114
+ },
115
+ {
116
+ type: 'grid',
117
+ columns: [
118
+ { title: 'Instagram — 正方形投稿', body: '1080 × 1080 px · 比率 1:1' },
119
+ { title: 'Instagram — 縦長投稿', body: '1080 × 1350 px · 比率 4:5' },
120
+ { title: 'TikTok / リール — 縦長', body: '1080 × 1920 px · 比率 9:16' },
121
+ { title: 'YouTube — サムネイル', body: '1280 × 720 px · 比率 16:9' },
122
+ { title: 'YouTube — チャンネルバナー', body: '2560 × 1440 px · 比率 16:9' },
123
+ { title: 'X (Twitter) — 標準投稿', body: '1200 × 675 px · 比率 16:9' },
124
+ { title: 'LinkedIn — プロフィールカバー', body: '1584 × 396 px · 比率 4:1' },
125
+ ],
126
+ },
127
+ {
128
+ type: 'grid',
129
+ columns: [
130
+ {
131
+ title: 'Instagram',
132
+ body: '1:1の正方形形式は依然として定番ですが、4:5の縦型はより広い画面スペースを占有し、ニュースフィードで最大30%多くのエンゲージメントを生み出します。',
133
+ },
134
+ {
135
+ title: 'ショート動画コンテンツ',
136
+ body: 'TikTokやリールの場合、標準は9:16です。この没入型フォーマットでは、アプリのUIで隠れないようにフォーカルポイントを完璧に合わせる必要があります。',
137
+ },
138
+ {
139
+ title: 'ビジュアルエンゲージメント',
140
+ body: 'サムネイルからバナーまで、すべての資産はクリック率において特定の重みを持ちます。正確な切り抜きにより、テキストや主要な要素が常に読み取れるようになります。',
141
+ },
142
+ {
143
+ title: 'プロフェッショナルなブランディング',
144
+ body: 'LinkedInのようなビジネスネットワークでは、鮮明さは信頼性につながります。高密度ディスプレイでピクセル化して見えないように、ヘッダーには特定の比率が必要です。',
145
+ },
146
+ ],
147
+ },
148
+ {
149
+ type: 'title',
150
+ text: 'アスペクト比が重要な理由',
151
+ level: 3,
152
+ },
153
+ {
154
+ type: 'paragraph',
155
+ html: 'アスペクト比とは、画像の幅と高さの比率のことです。これを無視すると、プラットフォーム側でズームされたり黒い帯が追加されたりすることになり、美観やオーガニックなリーチが損なわれます。',
156
+ },
157
+ {
158
+ type: 'list',
159
+ items: [
160
+ 'テキストやロゴがアプリのアイコンで切り取られるのを防ぎます。',
161
+ '元の写真を歪ませたり引き伸ばしたりすることなく、最適なピクセル密度を維持します。',
162
+ 'すべての公式サイズを1つのウェブツールに集約することで時間を節約します。',
163
+ '正確な寸法と容量のファイルを生成することで、読み込み速度を向上させます。',
164
+ ],
165
+ },
166
+ {
167
+ type: 'tip',
168
+ title: '構図のヒント',
169
+ html: '<p>手動ドラッグ機能を使用する際は、写真のメインの被写体をグリッドの交差点のいずれかに配置してみてください。これにより、ソーシャルネットワーク向けによりダイナミックでプロフェッショナルな構図を作成できます。</p>',
170
+ },
171
+ {
172
+ type: 'title',
173
+ text: '完璧な切り抜きのためのステップ',
174
+ level: 3,
175
+ },
176
+ {
177
+ type: 'list',
178
+ items: [
179
+ '形式を選択する:サイドメニューからプラットフォームと投稿タイプを選択します。',
180
+ '画像をアップロードする:ファイルをドラッグするか、ファイル選択を使用して写真をインポートします。',
181
+ '枠を調整する:表示領域内で写真をドラッグし、ズームを使用して精密に調整します。',
182
+ '即時書き出し:ダウンロードをクリックして、すぐに投稿できる状態の画像を取得します。',
183
+ ],
184
+ },
185
+ {
186
+ type: 'title',
187
+ text: 'プライバシーとローカル処理',
188
+ level: 3,
189
+ },
190
+ {
191
+ type: 'paragraph',
192
+ html: 'プライバシーは完全に守られます。このリサイザーはCanvas APIを使用してブラウザ内でローカルに画像を処理します。写真は外部サーバーにアップロードされることはなく、完全なセキュリティと即時の処理速度を保証します。',
193
+ },
194
+ {
195
+ type: 'title',
196
+ text: 'ソーシャルメディア向けのプロフェッショナルな最適化',
197
+ level: 3,
198
+ },
199
+ {
200
+ type: 'paragraph',
201
+ html: 'ビジュアルコンテンツをプロフェッショナルに適応させることは、直接的な成長戦略です。当ツールはクリエイターやコミュニティマネージャーのワークフローを簡素化し、すべての投稿があらゆるデバイスとプラットフォームで完璧に見えるようにします。',
202
+ },
203
+ ],
204
+ ui: {
205
+ sidebarTitle: 'ソーシャル形式',
206
+ uploadTitle: '画像をアップロード',
207
+ uploadSubtitle: 'ここに写真をドラッグするか、クリックして選択',
208
+ btnReset: 'リセット',
209
+ btnDownload: '画像をダウンロード',
210
+ },
211
+ };
@@ -0,0 +1,211 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { SocialImageResizerUI } from '../ui';
4
+
5
+ const slug = 'social-media-image-resizer';
6
+ const title = '소셜 미디어 이미지 리사이저: 모든 플랫폼을 위한 자르기 및 크기 조정';
7
+ const description =
8
+ '인스타그램, 틱톡, 유튜브 등을 위해 사진 크기를 조정하고 자르세요. 2026년 최신 공식 규격에 맞춘 스마트 자르기 기능을 제공합니다.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: '크기를 조정할 때 화질 저하가 발생하나요?',
13
+ answer:
14
+ '아니요, 고품질 스무딩 알고리즘을 사용합니다. 대상 형식과 같거나 그 이상의 해상도를 가진 원본 이미지를 업로드하는 것이 좋습니다.',
15
+ },
16
+ {
17
+ question: '여기에 제 사진을 업로드해도 안전한가요?',
18
+ answer:
19
+ '완전하게 안전합니다. 모든 처리는 브라우저 내에서 Canvas API를 사용하여 로컬에서 이루어집니다. 사진은 절대로 서버로 전송되지 않습니다.',
20
+ },
21
+ {
22
+ question: '어떤 형식이 지원되나요?',
23
+ answer:
24
+ '업로드 시 JPG, PNG, WebP, AVIF를 지원합니다. 다운로드는 최대의 호환성을 위해 고품질 JPG로 최적화됩니다.',
25
+ },
26
+ ];
27
+
28
+ const howToData = [
29
+ {
30
+ name: '이미지 업로드',
31
+ text: '파일을 드래그하거나 장치에서 검색하여 프로세스를 시작하세요.',
32
+ },
33
+ {
34
+ name: '형식 선택',
35
+ text: '사이드 메뉴에서 필요한 소셜 네트워크와 게시물 유형을 선택하세요.',
36
+ },
37
+ {
38
+ name: '조정 및 다운로드',
39
+ text: '사진을 드래그하여 구도를 잡고 줌을 사용하여 완벽하게 자르세요. 완료되면 다운로드를 클릭하세요.',
40
+ },
41
+ ];
42
+
43
+ const faqSchema: WithContext<FAQPage> = {
44
+ '@context': 'https://schema.org',
45
+ '@type': 'FAQPage',
46
+ mainEntity: faqData.map((item) => ({
47
+ '@type': 'Question',
48
+ name: item.question,
49
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
50
+ })),
51
+ };
52
+
53
+ const howToSchema: WithContext<HowToThing> = {
54
+ '@context': 'https://schema.org',
55
+ '@type': 'HowTo',
56
+ name: title,
57
+ description,
58
+ step: howToData.map((step, i) => ({
59
+ '@type': 'HowToStep',
60
+ position: i + 1,
61
+ name: step.name,
62
+ text: step.text,
63
+ })),
64
+ };
65
+
66
+ const appSchema: WithContext<SoftwareApplication> = {
67
+ '@context': 'https://schema.org',
68
+ '@type': 'SoftwareApplication',
69
+ name: title,
70
+ description,
71
+ applicationCategory: 'UtilityApplication',
72
+ operatingSystem: 'All',
73
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'KRW' },
74
+ inLanguage: 'ko',
75
+ };
76
+
77
+ export const content: ToolLocaleContent<SocialImageResizerUI> = {
78
+ slug,
79
+ title,
80
+ description,
81
+ faqTitle: '자주 묻는 질문',
82
+ faq: faqData,
83
+ bibliographyTitle: '참고 자료',
84
+ bibliography: [
85
+ {
86
+ name: 'MDN Web Docs: Canvas API',
87
+ url: 'https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API',
88
+ },
89
+ {
90
+ name: 'Sprout Social: 2026년 소셜 미디어 이미지 크기 가이드',
91
+ url: 'https://sproutsocial.com/insights/social-media-image-sizes-guide/',
92
+ },
93
+ ],
94
+ howTo: howToData,
95
+ schemas: [faqSchema, howToSchema, appSchema],
96
+ seo: [
97
+ {
98
+ type: 'title',
99
+ text: '모든 플랫폼을 위한 소셜 미디어 이미지 리사이저',
100
+ level: 2,
101
+ },
102
+ {
103
+ type: 'paragraph',
104
+ html: '오늘날의 디지털 생태계에서 첫인상은 시각적으로 결정됩니다. 각 소셜 네트워크는 고유의 비율에 맞게 최적화된 콘텐츠를 우선시하는 특정 알고리즘에 따라 작동합니다. 저희의 소셜 미디어 이미지 리사이저는 단순한 기술 도구가 아닙니다. 당신의 메시지가 원치 않는 잘림이나 화질 저하 없이 제대로 전달되도록 돕는 든든한 조력자입니다.',
105
+ },
106
+ {
107
+ type: 'paragraph',
108
+ html: '가로 사진을 인스타그램 스토리를 위한 강렬한 세로형으로 변환하거나, 복잡한 유튜브 배너 규격에 맞게 디자인을 수정해야 할 때, 저희 유틸리티는 브라우저에서 직접 정밀하게 위치를 잡고 크기를 조절할 수 있는 스마트 자르기 시스템을 제공합니다.',
109
+ },
110
+ {
111
+ type: 'title',
112
+ text: '2026년 공식 소셜 미디어 이미지 크기',
113
+ level: 3,
114
+ },
115
+ {
116
+ type: 'grid',
117
+ columns: [
118
+ { title: '인스타그램 — 정사각형 게시물', body: '1080 × 1080 px · 비율 1:1' },
119
+ { title: '인스타그램 — 세로형 게시물', body: '1080 × 1350 px · 비율 4:5' },
120
+ { title: '틱톡 / 릴스 — 세로형', body: '1080 × 1920 px · 비율 9:16' },
121
+ { title: '유튜브 — 썸네일', body: '1280 × 720 px · 비율 16:9' },
122
+ { title: '유튜브 — 채널 배너', body: '2560 × 1440 px · 비율 16:9' },
123
+ { title: 'X (트위터) — 표준 게시물', body: '1200 × 675 px · 비율 16:9' },
124
+ { title: '링크드인 — 프로필 커버', body: '1584 × 396 px · 비율 4:1' },
125
+ ],
126
+ },
127
+ {
128
+ type: 'grid',
129
+ columns: [
130
+ {
131
+ title: '인스타그램',
132
+ body: '1:1 정사각형 형식은 여전히 클래식이지만, 4:5 세로형은 화면 공간을 더 많이 차지하며 뉴스 피드에서 최대 30% 더 높은 참여도를 이끌어냅니다.',
133
+ },
134
+ {
135
+ title: '숏폼 콘텐츠',
136
+ body: '틱톡과 릴스의 표준은 9:16입니다. 이 몰입형 형식은 앱 UI에 가려지지 않도록 핵심 피사체를 완벽하게 정렬하는 것이 매우 중요합니다.',
137
+ },
138
+ {
139
+ title: '비주얼 인게이지먼트',
140
+ body: '썸네일부터 배너까지, 모든 이미지는 클릭률에 큰 영향을 미칩니다. 정밀한 자르기는 텍스트와 핵심 요소가 항상 잘 보이도록 보장합니다.',
141
+ },
142
+ {
143
+ title: '전문적인 브랜딩',
144
+ body: '링크드인과 같은 비즈니스 네트워크에서 선명도는 곧 전문성입니다. 고해상도 화면에서 이미지가 깨져 보이지 않으려면 헤더에 정확한 비율이 필요합니다.',
145
+ },
146
+ ],
147
+ },
148
+ {
149
+ type: 'title',
150
+ text: '가로세로 비율이 중요한 이유',
151
+ level: 3,
152
+ },
153
+ {
154
+ type: 'paragraph',
155
+ html: '가로세로 비율은 이미지 너비와 높이 사이의 비례 관계입니다. 이를 무시하면 플랫폼에서 강제로 줌을 하거나 검은 막대가 추가되어 미적 감각과 유기적 도달 범위가 훼손됩니다.',
156
+ },
157
+ {
158
+ type: 'list',
159
+ items: [
160
+ '텍스트나 로고가 앱의 아이콘에 의해 잘리는 것을 방지합니다.',
161
+ '원본 사진의 왜곡이나 늘어짐 없이 최적의 픽셀 밀도를 유지합니다.',
162
+ '모든 공식 규격을 하나의 웹 도구에 모아 시간을 절약해 줍니다.',
163
+ '정확한 용량과 규격의 파일을 생성하여 이미지 로딩 속도를 개선합니다.',
164
+ ],
165
+ },
166
+ {
167
+ type: 'tip',
168
+ title: '구도 팁',
169
+ html: '<p>수동 드래그 기능을 사용할 때 사진의 주요 피사체를 격자선의 교차점 중 하나에 배치해 보세요. 이를 통해 소셜 네트워크용으로 더욱 역동적이고 전문적인 구도를 만들 수 있습니다.</p>',
170
+ },
171
+ {
172
+ type: 'title',
173
+ text: '완벽한 자르기를 위한 단계',
174
+ level: 3,
175
+ },
176
+ {
177
+ type: 'list',
178
+ items: [
179
+ '형식 선택: 사이드 메뉴에서 플랫폼과 게시물 유형을 선택합니다.',
180
+ '이미지 업로드: 파일을 드래그하거나 이미지 선택기를 사용하여 사진을 가져옵니다.',
181
+ '프레임 조정: 가시 영역 내에서 사진을 드래그하고 줌을 사용하여 정밀하게 맞춥니다.',
182
+ '즉시 내보내기: 다운로드를 클릭하여 바로 게시할 수 있는 이미지를 받습니다.',
183
+ ],
184
+ },
185
+ {
186
+ type: 'title',
187
+ text: '개인정보 보호 및 로컬 처리',
188
+ level: 3,
189
+ },
190
+ {
191
+ type: 'paragraph',
192
+ html: '당신의 개인정보는 철저히 보호됩니다. 이 리사이저는 Canvas API를 사용하여 브라우저에서 로컬로 이미지를 처리합니다. 당신의 사진은 외부 서버로 업로드되지 않으므로 보안이 보장되며 처리 속도 또한 즉각적입니다.',
193
+ },
194
+ {
195
+ type: 'title',
196
+ text: '소셜 미디어를 위한 전문적인 최적화',
197
+ level: 3,
198
+ },
199
+ {
200
+ type: 'paragraph',
201
+ html: '시각적 콘텐츠를 전문적으로 최적화하는 것은 직접적인 성장 전략입니다. 저희 도구는 크리에이터와 커뮤니티 매니저의 작업 흐름을 단순화하여 모든 게시물이 어떤 기기와 플랫폼에서도 완벽하게 보이도록 보장합니다.',
202
+ },
203
+ ],
204
+ ui: {
205
+ sidebarTitle: '소셜 형식',
206
+ uploadTitle: '이미지 업로드',
207
+ uploadSubtitle: '사진을 여기로 드래그하거나 클릭하여 선택',
208
+ btnReset: '초기화',
209
+ btnDownload: '이미지 다운로드',
210
+ },
211
+ };
@@ -0,0 +1,211 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { SocialImageResizerUI } from '../ui';
4
+
5
+ const slug = 'afbeelding-formaat-social-media-aanpassen';
6
+ const title = 'Social Media Image Resizer: Bijsnijden & Formaat Aanpassen voor Elk Platform';
7
+ const description =
8
+ 'Pas het formaat van uw foto\'s aan en snijd ze bij voor Instagram, TikTok, YouTube en meer. Slim bijsnijden met bijgewerkte officiële afmetingen voor 2026.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Gaat er beeldkwaliteit verloren bij het aanpassen van het formaat?',
13
+ answer:
14
+ 'Nee, we gebruiken hoogwaardige algoritmen voor vloeiende beelden. Het wordt aanbevolen om een originele afbeelding te uploaden met een resolutie die gelijk is aan of groter is dan het doelformaat.',
15
+ },
16
+ {
17
+ question: 'Is het veilig om mijn foto\'s hier te uploaden?',
18
+ answer:
19
+ 'Volledig. De verwerking gebeurt lokaal in uw browser met behulp van de Canvas API. Uw foto\'s worden nooit naar een server verzonden.',
20
+ },
21
+ {
22
+ question: 'Welke formaten worden ondersteund?',
23
+ answer:
24
+ 'We ondersteunen JPG, PNG, WebP en AVIF voor uploaden. Downloads zijn geoptimaliseerd als hoogwaardige JPG voor maximale compatibiliteit.',
25
+ },
26
+ ];
27
+
28
+ const howToData = [
29
+ {
30
+ name: 'Upload uw afbeelding',
31
+ text: 'Sleep uw bestand of blader door uw apparaat om het proces te starten.',
32
+ },
33
+ {
34
+ name: 'Kies het formaat',
35
+ text: 'Selecteer het sociale netwerk en het type publicatie dat u nodig heeft in het zijmenu.',
36
+ },
37
+ {
38
+ name: 'Aanpassen en downloaden',
39
+ text: 'Kader uw foto in door deze te slepen en gebruik de zoom voor een perfecte uitsnede. Klik op downloaden als u klaar bent.',
40
+ },
41
+ ];
42
+
43
+ const faqSchema: WithContext<FAQPage> = {
44
+ '@context': 'https://schema.org',
45
+ '@type': 'FAQPage',
46
+ mainEntity: faqData.map((item) => ({
47
+ '@type': 'Question',
48
+ name: item.question,
49
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
50
+ })),
51
+ };
52
+
53
+ const howToSchema: WithContext<HowToThing> = {
54
+ '@context': 'https://schema.org',
55
+ '@type': 'HowTo',
56
+ name: title,
57
+ description,
58
+ step: howToData.map((step, i) => ({
59
+ '@type': 'HowToStep',
60
+ position: i + 1,
61
+ name: step.name,
62
+ text: step.text,
63
+ })),
64
+ };
65
+
66
+ const appSchema: WithContext<SoftwareApplication> = {
67
+ '@context': 'https://schema.org',
68
+ '@type': 'SoftwareApplication',
69
+ name: title,
70
+ description,
71
+ applicationCategory: 'UtilityApplication',
72
+ operatingSystem: 'All',
73
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
74
+ inLanguage: 'nl',
75
+ };
76
+
77
+ export const content: ToolLocaleContent<SocialImageResizerUI> = {
78
+ slug,
79
+ title,
80
+ description,
81
+ faqTitle: 'Veelgestelde Vragen',
82
+ faq: faqData,
83
+ bibliographyTitle: 'Referenties',
84
+ bibliography: [
85
+ {
86
+ name: 'MDN Web Docs: Canvas API',
87
+ url: 'https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API',
88
+ },
89
+ {
90
+ name: 'Sprout Social: Social Media Image Sizes Guide 2026',
91
+ url: 'https://sproutsocial.com/insights/social-media-image-sizes-guide/',
92
+ },
93
+ ],
94
+ howTo: howToData,
95
+ schemas: [faqSchema, howToSchema, appSchema],
96
+ seo: [
97
+ {
98
+ type: 'title',
99
+ text: 'Social Media Image Resizer voor Elk Platform',
100
+ level: 2,
101
+ },
102
+ {
103
+ type: 'paragraph',
104
+ html: 'In het huidige digitale ecosysteem zijn eerste indrukken visueel. Elk sociaal netwerk werkt met specifieke algoritmen die prioriteit geven aan content die specifiek is aangepast aan de bijbehorende verhoudingen. Onze social media image resizer is niet alleen een technische tool — het is uw bondgenoot om ervoor te zorgen dat uw boodschap overkomt zonder ongewenste uitsneden of kwaliteitsverlies.',
105
+ },
106
+ {
107
+ type: 'paragraph',
108
+ html: 'Of u nu een landschapsfoto wilt converteren naar een opvallende verticale afbeelding voor Instagram Stories of een ontwerp wilt aanpassen voor een complex YouTube-banner, onze tool maakt gebruik van een slim bijsnijdsysteem waarmee u uw afbeelding met precisie rechtstreeks in uw browser kunt positioneren en schalen.',
109
+ },
110
+ {
111
+ type: 'title',
112
+ text: 'Officiële Social Media Afmetingen 2026',
113
+ level: 3,
114
+ },
115
+ {
116
+ type: 'grid',
117
+ columns: [
118
+ { title: 'Instagram — Vierkante Post', body: '1080 × 1080 px · Ratio 1:1' },
119
+ { title: 'Instagram — Verticale Post', body: '1080 × 1350 px · Ratio 4:5' },
120
+ { title: 'TikTok / Reels — Verticaal', body: '1080 × 1920 px · Ratio 9:16' },
121
+ { title: 'YouTube — Thumbnail', body: '1280 × 720 px · Ratio 16:9' },
122
+ { title: 'YouTube — Kanaalbanner', body: '2560 × 1440 px · Ratio 16:9' },
123
+ { title: 'X (Twitter) — Standaard Post', body: '1200 × 675 px · Ratio 16:9' },
124
+ { title: 'LinkedIn — Profielomslag', body: '1584 × 396 px · Ratio 4:1' },
125
+ ],
126
+ },
127
+ {
128
+ type: 'grid',
129
+ columns: [
130
+ {
131
+ title: 'Instagram',
132
+ body: 'Het vierkante 1:1 formaat blijft een klassieker, maar het verticale 4:5 formaat neemt meer schermruimte in beslag en genereert tot 30% meer engagement in de nieuwsfeed.',
133
+ },
134
+ {
135
+ title: 'Short Form Content',
136
+ body: 'Voor TikTok en Reels is de standaard 9:16. Dit meeslepende formaat vereist dat het middelpunt perfect is uitgelijnd om te voorkomen dat het wordt bedekt door de app-interface.',
137
+ },
138
+ {
139
+ title: 'Visuele Engagement',
140
+ body: 'Van thumbnails tot banners, elk onderdeel weegt mee in de doorklikratio. Nauwkeurig bijsnijden zorgt ervoor dat tekst en sleutelelementen altijd leesbaar zijn.',
141
+ },
142
+ {
143
+ title: 'Professionele Branding',
144
+ body: 'Op professionele netwerken zoals LinkedIn is scherpte gelijk aan autoriteit. Headers vereisen specifieke verhoudingen om te voorkomen dat ze korrelig lijken op schermen met een hoge dichtheid.',
145
+ },
146
+ ],
147
+ },
148
+ {
149
+ type: 'title',
150
+ text: 'Waarom de Beeldverhouding Belangrijk Is',
151
+ level: 3,
152
+ },
153
+ {
154
+ type: 'paragraph',
155
+ html: 'De beeldverhouding is de proportionele relatie tussen de breedte en de hoogte van een afbeelding. Door dit te negeren, worden platforms gedwongen om in te zoomen of zwarte balken toe te voegen, wat ten koste gaat van de esthetiek en het organische bereik.',
156
+ },
157
+ {
158
+ type: 'list',
159
+ items: [
160
+ 'Voorkomt dat teksten of logo\'s worden afgesneden door interface-iconen.',
161
+ 'Behoudt de optimale pixeldichtheid zonder de originele foto te vervormen of uit te rekken.',
162
+ 'Bespaart tijd door alle officiële afmetingen te centraliseren in één webtool.',
163
+ 'Verbetert de laadsnelheid door bestanden te genereren met de exacte grootte en afmetingen.',
164
+ ],
165
+ },
166
+ {
167
+ type: 'tip',
168
+ title: 'Compositietip',
169
+ html: "<p>Wanneer u onze handmatige sleepfunctie gebruikt, probeer dan het hoofdonderwerp van uw foto op een van de snijpunten van het raster te plaatsen. Dit zorgt voor meer dynamische en professionele composities voor uw sociale netwerken.</p>",
170
+ },
171
+ {
172
+ type: 'title',
173
+ text: 'Stappen voor een Perfecte Uitsnede',
174
+ level: 3,
175
+ },
176
+ {
177
+ type: 'list',
178
+ items: [
179
+ 'Selecteer uw formaat: Kies het platform en het type publicatie in het zijmenu.',
180
+ 'Upload de afbeelding: Sleep uw bestand of gebruik de bestandskiezer om uw foto te importeren.',
181
+ 'Pas het kader aan: Sleep de foto binnen het zichtbare gebied en gebruik zoom voor precisie.',
182
+ 'Directe export: Klik op downloaden om uw afbeelding klaar voor publicatie te ontvangen.',
183
+ ],
184
+ },
185
+ {
186
+ type: 'title',
187
+ text: 'Privacy en Lokale Verwerking',
188
+ level: 3,
189
+ },
190
+ {
191
+ type: 'paragraph',
192
+ html: 'Uw privacy is gegarandeerd. Deze resizer verwerkt afbeeldingen lokaal in uw browser met behulp van de Canvas API. Uw foto\'s worden nooit naar een externe server geüpload, wat volledige veiligheid en onmiddellijke verwerkingssnelheid garandeert.',
193
+ },
194
+ {
195
+ type: 'title',
196
+ text: 'Professionele Optimalisatie voor Social Media',
197
+ level: 3,
198
+ },
199
+ {
200
+ type: 'paragraph',
201
+ html: 'Het professioneel aanpassen van uw visuele content is een directe groeistrategie. Onze tool vereenvoudigt de workflow voor makers en community managers, zodat elke post er perfect uitziet op elk apparaat en platform.',
202
+ },
203
+ ],
204
+ ui: {
205
+ sidebarTitle: 'Sociale Formaten',
206
+ uploadTitle: 'Upload Afbeelding',
207
+ uploadSubtitle: 'Sleep uw foto hierheen of klik om te bladeren',
208
+ btnReset: 'Reset',
209
+ btnDownload: 'Download Afbeelding',
210
+ },
211
+ };