@jjlmoya/utils-social 1.13.0 → 1.15.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 +4 -2
- package/src/category/i18n/fr.ts +2 -2
- package/src/category/i18n/ru.ts +1 -1
- package/src/env.d.ts +5 -0
- package/src/layouts/PreviewLayout.astro +7 -2
- package/src/pages/[locale]/[slug].astro +28 -12
- package/src/tests/diacritics_density.test.ts +118 -0
- package/src/tests/inverted_punctuation.test.ts +84 -0
- package/src/tests/locale_completeness.test.ts +4 -14
- package/src/tests/no_en_dash.test.ts +70 -0
- package/src/tests/pagespeed_best_practices.test.ts +198 -0
- package/src/tests/script_density.test.ts +94 -0
- package/src/tests/shared-test-helpers.ts +56 -0
- package/src/tests/tool_exports.test.ts +34 -0
- package/src/tool/redditFormatter/bibliography.astro +2 -10
- package/src/tool/redditFormatter/bibliography.ts +12 -0
- package/src/tool/redditFormatter/i18n/de.ts +3 -13
- package/src/tool/redditFormatter/i18n/en.ts +3 -13
- package/src/tool/redditFormatter/i18n/es.ts +3 -13
- package/src/tool/redditFormatter/i18n/fr.ts +5 -15
- package/src/tool/redditFormatter/i18n/id.ts +3 -13
- package/src/tool/redditFormatter/i18n/it.ts +3 -13
- package/src/tool/redditFormatter/i18n/ja.ts +3 -13
- package/src/tool/redditFormatter/i18n/ko.ts +3 -13
- package/src/tool/redditFormatter/i18n/nl.ts +3 -13
- package/src/tool/redditFormatter/i18n/pl.ts +7 -17
- package/src/tool/redditFormatter/i18n/pt.ts +3 -13
- package/src/tool/redditFormatter/i18n/ru.ts +5 -15
- package/src/tool/redditFormatter/i18n/sv.ts +3 -13
- package/src/tool/redditFormatter/i18n/tr.ts +3 -13
- package/src/tool/redditFormatter/i18n/zh.ts +4 -14
- package/src/tool/redditFormatter/seo.astro +2 -1
- package/src/tool/safeZones/bibliography.astro +2 -10
- package/src/tool/safeZones/bibliography.ts +20 -0
- package/src/tool/safeZones/component.astro +1 -1
- package/src/tool/safeZones/i18n/de.ts +5 -23
- package/src/tool/safeZones/i18n/en.ts +5 -23
- package/src/tool/safeZones/i18n/es.ts +3 -21
- package/src/tool/safeZones/i18n/fr.ts +14 -32
- package/src/tool/safeZones/i18n/id.ts +5 -23
- package/src/tool/safeZones/i18n/it.ts +9 -27
- package/src/tool/safeZones/i18n/ja.ts +3 -21
- package/src/tool/safeZones/i18n/ko.ts +3 -21
- package/src/tool/safeZones/i18n/nl.ts +5 -23
- package/src/tool/safeZones/i18n/pl.ts +10 -28
- package/src/tool/safeZones/i18n/pt.ts +5 -23
- package/src/tool/safeZones/i18n/ru.ts +12 -30
- package/src/tool/safeZones/i18n/sv.ts +5 -23
- package/src/tool/safeZones/i18n/tr.ts +3 -21
- package/src/tool/safeZones/i18n/zh.ts +7 -25
- package/src/tool/safeZones/seo.astro +2 -1
- package/src/tool/socialImageResizer/bibliography.astro +2 -10
- package/src/tool/socialImageResizer/bibliography.ts +12 -0
- package/src/tool/socialImageResizer/component.astro +2 -2
- package/src/tool/socialImageResizer/i18n/de.ts +8 -18
- package/src/tool/socialImageResizer/i18n/en.ts +11 -21
- package/src/tool/socialImageResizer/i18n/es.ts +10 -20
- package/src/tool/socialImageResizer/i18n/fr.ts +14 -24
- package/src/tool/socialImageResizer/i18n/id.ts +11 -21
- package/src/tool/socialImageResizer/i18n/it.ts +19 -29
- package/src/tool/socialImageResizer/i18n/ja.ts +10 -20
- package/src/tool/socialImageResizer/i18n/ko.ts +10 -20
- package/src/tool/socialImageResizer/i18n/nl.ts +11 -21
- package/src/tool/socialImageResizer/i18n/pl.ts +12 -22
- package/src/tool/socialImageResizer/i18n/pt.ts +11 -21
- package/src/tool/socialImageResizer/i18n/ru.ts +17 -27
- package/src/tool/socialImageResizer/i18n/sv.ts +11 -21
- package/src/tool/socialImageResizer/i18n/tr.ts +10 -20
- package/src/tool/socialImageResizer/i18n/zh.ts +10 -20
- package/src/tool/socialImageResizer/seo.astro +2 -1
- package/src/tool/socialValueCalculator/bibliography.astro +2 -10
- package/src/tool/socialValueCalculator/bibliography.ts +16 -0
- package/src/tool/socialValueCalculator/component.astro +1 -2
- package/src/tool/socialValueCalculator/i18n/de.ts +5 -19
- package/src/tool/socialValueCalculator/i18n/en.ts +4 -18
- package/src/tool/socialValueCalculator/i18n/es.ts +5 -19
- package/src/tool/socialValueCalculator/i18n/fr.ts +9 -23
- package/src/tool/socialValueCalculator/i18n/id.ts +4 -18
- package/src/tool/socialValueCalculator/i18n/it.ts +17 -31
- package/src/tool/socialValueCalculator/i18n/ja.ts +4 -18
- package/src/tool/socialValueCalculator/i18n/ko.ts +4 -18
- package/src/tool/socialValueCalculator/i18n/nl.ts +4 -18
- package/src/tool/socialValueCalculator/i18n/pl.ts +4 -18
- package/src/tool/socialValueCalculator/i18n/pt.ts +4 -18
- package/src/tool/socialValueCalculator/i18n/ru.ts +10 -24
- package/src/tool/socialValueCalculator/i18n/sv.ts +4 -18
- package/src/tool/socialValueCalculator/i18n/tr.ts +4 -18
- package/src/tool/socialValueCalculator/i18n/zh.ts +7 -21
- package/src/tool/socialValueCalculator/seo.astro +2 -1
- package/src/tool/tinderPhotoOptimizer/bibliography.astro +2 -10
- package/src/tool/tinderPhotoOptimizer/bibliography.ts +12 -0
- package/src/tool/tinderPhotoOptimizer/component.astro +23 -6
- package/src/tool/tinderPhotoOptimizer/i18n/de.ts +6 -16
- package/src/tool/tinderPhotoOptimizer/i18n/en.ts +4 -14
- package/src/tool/tinderPhotoOptimizer/i18n/es.ts +3 -13
- package/src/tool/tinderPhotoOptimizer/i18n/fr.ts +28 -38
- package/src/tool/tinderPhotoOptimizer/i18n/id.ts +3 -13
- package/src/tool/tinderPhotoOptimizer/i18n/it.ts +3 -13
- package/src/tool/tinderPhotoOptimizer/i18n/ja.ts +3 -13
- package/src/tool/tinderPhotoOptimizer/i18n/ko.ts +3 -13
- package/src/tool/tinderPhotoOptimizer/i18n/nl.ts +3 -13
- package/src/tool/tinderPhotoOptimizer/i18n/pl.ts +3 -13
- package/src/tool/tinderPhotoOptimizer/i18n/pt.ts +3 -13
- package/src/tool/tinderPhotoOptimizer/i18n/ru.ts +12 -22
- package/src/tool/tinderPhotoOptimizer/i18n/sv.ts +3 -13
- package/src/tool/tinderPhotoOptimizer/i18n/tr.ts +3 -13
- package/src/tool/tinderPhotoOptimizer/i18n/zh.ts +5 -15
- package/src/tool/tinderPhotoOptimizer/seo.astro +2 -1
- package/src/tool/youtubeThumbnail/bibliography.astro +2 -10
- package/src/tool/youtubeThumbnail/bibliography.ts +16 -0
- package/src/tool/youtubeThumbnail/component.astro +1 -0
- package/src/tool/youtubeThumbnail/i18n/de.ts +6 -20
- package/src/tool/youtubeThumbnail/i18n/en.ts +4 -18
- package/src/tool/youtubeThumbnail/i18n/es.ts +3 -17
- package/src/tool/youtubeThumbnail/i18n/fr.ts +6 -20
- package/src/tool/youtubeThumbnail/i18n/id.ts +3 -17
- package/src/tool/youtubeThumbnail/i18n/it.ts +3 -17
- package/src/tool/youtubeThumbnail/i18n/ja.ts +3 -17
- package/src/tool/youtubeThumbnail/i18n/ko.ts +3 -17
- package/src/tool/youtubeThumbnail/i18n/nl.ts +3 -17
- package/src/tool/youtubeThumbnail/i18n/pl.ts +3 -17
- package/src/tool/youtubeThumbnail/i18n/pt.ts +3 -17
- package/src/tool/youtubeThumbnail/i18n/ru.ts +6 -20
- package/src/tool/youtubeThumbnail/i18n/sv.ts +3 -17
- package/src/tool/youtubeThumbnail/i18n/tr.ts +3 -17
- package/src/tool/youtubeThumbnail/i18n/zh.ts +5 -19
- package/src/tool/youtubeThumbnail/seo.astro +2 -1
- package/src/tool/youtubeThumbnailPreviewer/bibliography.astro +2 -10
- package/src/tool/youtubeThumbnailPreviewer/bibliography.ts +16 -0
- package/src/tool/youtubeThumbnailPreviewer/i18n/de.ts +11 -25
- package/src/tool/youtubeThumbnailPreviewer/i18n/en.ts +5 -19
- package/src/tool/youtubeThumbnailPreviewer/i18n/es.ts +3 -17
- package/src/tool/youtubeThumbnailPreviewer/i18n/fr.ts +12 -26
- package/src/tool/youtubeThumbnailPreviewer/i18n/id.ts +5 -19
- package/src/tool/youtubeThumbnailPreviewer/i18n/it.ts +24 -38
- package/src/tool/youtubeThumbnailPreviewer/i18n/ja.ts +3 -17
- package/src/tool/youtubeThumbnailPreviewer/i18n/ko.ts +3 -17
- package/src/tool/youtubeThumbnailPreviewer/i18n/nl.ts +7 -21
- package/src/tool/youtubeThumbnailPreviewer/i18n/pl.ts +10 -24
- package/src/tool/youtubeThumbnailPreviewer/i18n/pt.ts +3 -17
- package/src/tool/youtubeThumbnailPreviewer/i18n/ru.ts +14 -28
- package/src/tool/youtubeThumbnailPreviewer/i18n/sv.ts +5 -19
- package/src/tool/youtubeThumbnailPreviewer/i18n/tr.ts +3 -17
- package/src/tool/youtubeThumbnailPreviewer/i18n/zh.ts +13 -27
- package/src/tool/youtubeThumbnailPreviewer/seo.astro +2 -1
- package/src/types.ts +0 -2
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
3
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
4
|
import type { SafeZonesUI } from '../ui';
|
|
@@ -9,7 +10,7 @@ const description =
|
|
|
9
10
|
|
|
10
11
|
const faqData = [
|
|
11
12
|
{
|
|
12
|
-
question: "Czym są
|
|
13
|
+
question: "Czym są \"strefy bezpieczne\" (Safe Zones) w mediach społecznościowych?",
|
|
13
14
|
answer:
|
|
14
15
|
"Są to obszary ekranu, w których treść jest widoczna bez ryzyka zasłonięcia przez elementy interfejsu, takie jak nazwa użytkownika, opis, przyciski interakcji (polubienie, udostępnienie) lub automatyczne przycięcia stosowane przez niektóre urządzenia.",
|
|
15
16
|
},
|
|
@@ -33,7 +34,7 @@ const faqData = [
|
|
|
33
34
|
const howToData = [
|
|
34
35
|
{
|
|
35
36
|
name: 'Wczytaj zdjęcie lub film',
|
|
36
|
-
text: "Prześlij plik, który chcesz podejrzeć. Przetwarzanie odbywa się lokalnie i prywatnie
|
|
37
|
+
text: "Prześlij plik, który chcesz podejrzeć. Przetwarzanie odbywa się lokalnie i prywatnie - nic nie jest wysyłane do Internetu.",
|
|
37
38
|
},
|
|
38
39
|
{
|
|
39
40
|
name: 'Wybierz platformę',
|
|
@@ -87,27 +88,8 @@ export const content: ToolLocaleContent<SafeZonesUI> = {
|
|
|
87
88
|
slug,
|
|
88
89
|
title,
|
|
89
90
|
description,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
bibliographyTitle: 'Oficjalna dokumentacja platformy',
|
|
93
|
-
bibliography: [
|
|
94
|
-
{
|
|
95
|
-
name: 'TikTok Creator Portal: Video optimization and safe zones',
|
|
96
|
-
url: 'https://www.tiktok.com/creators/creator-portal/en-us/foundation/video-optimization/',
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
name: 'Instagram Business: Najlepsze praktyki dla Reels',
|
|
100
|
-
url: 'https://business.instagram.com/creators/reels-best-practices',
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
name: 'Pomoc YouTube: Tworzenie YouTube Shorts',
|
|
104
|
-
url: 'https://support.google.com/youtube/answer/10343433',
|
|
105
|
-
},
|
|
106
|
-
{
|
|
107
|
-
name: 'Meta for Creators: Strefy bezpieczne i proporcje wideo',
|
|
108
|
-
url: 'https://www.facebook.com/business/help/103816146375741',
|
|
109
|
-
},
|
|
110
|
-
],
|
|
91
|
+
faq: faqData,
|
|
92
|
+
bibliography,
|
|
111
93
|
howTo: howToData,
|
|
112
94
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
113
95
|
seo: [
|
|
@@ -122,7 +104,7 @@ export const content: ToolLocaleContent<SafeZonesUI> = {
|
|
|
122
104
|
},
|
|
123
105
|
{
|
|
124
106
|
type: 'paragraph',
|
|
125
|
-
html: "To narzędzie pozwala wczytać pliki multimedialne i podejrzeć dokładnie, które części kadru zostaną pochłonięte przez interfejs. Nie chodzi tylko o <strong>napisy</strong>; chodzi o upewnienie się, że twarze, produkty lub główne akcje w Twoim filmie nie zostaną pogrzebane pod przyciskiem
|
|
107
|
+
html: "To narzędzie pozwala wczytać pliki multimedialne i podejrzeć dokładnie, które części kadru zostaną pochłonięte przez interfejs. Nie chodzi tylko o <strong>napisy</strong>; chodzi o upewnienie się, że twarze, produkty lub główne akcje w Twoim filmie nie zostaną pogrzebane pod przyciskiem \"Lubię to\" lub długim opisem.",
|
|
126
108
|
},
|
|
127
109
|
{
|
|
128
110
|
type: 'grid',
|
|
@@ -130,7 +112,7 @@ export const content: ToolLocaleContent<SafeZonesUI> = {
|
|
|
130
112
|
{
|
|
131
113
|
type: 'card',
|
|
132
114
|
title: 'TikTok: Najbardziej inwazyjny interfejs',
|
|
133
|
-
html: "<p>TikTok posiada najbardziej zagęszczony interfejs. Po prawej stronie znajduje się kolumna ikon zajmująca około 15% szerokości. Na dole opis może rozciągać się na 4 lub 5 linii, zakrywając od dołu prawie jedną trzecią ekranu.</p><ul><li><strong>Dolny margines:</strong> Pozostaw ostatnie 250px wolne, aby uniknąć tekstu opisu i nazwy użytkownika.</li><li><strong>Prawy margines:</strong> Unikaj umieszczania tekstu w odległości mniejszej niż 100px od prawej krawędzi.</li><li><strong>Góra:</strong> Przyciski
|
|
115
|
+
html: "<p>TikTok posiada najbardziej zagęszczony interfejs. Po prawej stronie znajduje się kolumna ikon zajmująca około 15% szerokości. Na dole opis może rozciągać się na 4 lub 5 linii, zakrywając od dołu prawie jedną trzecią ekranu.</p><ul><li><strong>Dolny margines:</strong> Pozostaw ostatnie 250px wolne, aby uniknąć tekstu opisu i nazwy użytkownika.</li><li><strong>Prawy margines:</strong> Unikaj umieszczania tekstu w odległości mniejszej niż 100px od prawej krawędzi.</li><li><strong>Góra:</strong> Przyciski \"Obserwujesz\" i \"Dla Ciebie\" zajmują górny środkowy pas.</li></ul>",
|
|
134
116
|
},
|
|
135
117
|
{
|
|
136
118
|
type: 'card',
|
|
@@ -153,7 +135,7 @@ export const content: ToolLocaleContent<SafeZonesUI> = {
|
|
|
153
135
|
items: [
|
|
154
136
|
'<strong>Prawy margines:</strong> Unikaj umieszczania tekstu lub ważnych elementów w prawym dolnym obszarze 20%.',
|
|
155
137
|
'<strong>Dolny margines:</strong> Pozostaw ostatnie 150px wolne, aby uniknąć tekstu opisu i nazwy użytkownika.',
|
|
156
|
-
'<strong>Góra:</strong> Przyciski
|
|
138
|
+
'<strong>Góra:</strong> Przyciski \"Subskrybuj\" i inne zajmują górny środkowy pas.',
|
|
157
139
|
],
|
|
158
140
|
},
|
|
159
141
|
{
|
|
@@ -168,7 +150,7 @@ export const content: ToolLocaleContent<SafeZonesUI> = {
|
|
|
168
150
|
},
|
|
169
151
|
{
|
|
170
152
|
type: 'paragraph',
|
|
171
|
-
html: '
|
|
153
|
+
html: '\"Złota Strefa\" dla głównej akcji to środkowa jedna trzecia filmu. Jeśli filmujesz osobę, upewnij się, że jej oczy i usta znajdują się w tej strefie. Ważne elementy graficzne powinny być nieco przesunięte w górę od geometrycznego środka, aby uniknąć dolnego opisu.',
|
|
172
154
|
},
|
|
173
155
|
{
|
|
174
156
|
type: 'title',
|
|
@@ -195,7 +177,7 @@ export const content: ToolLocaleContent<SafeZonesUI> = {
|
|
|
195
177
|
},
|
|
196
178
|
{
|
|
197
179
|
type: 'paragraph',
|
|
198
|
-
html: "Projektowanie dla mediów społecznościowych to nie tylko estetyka
|
|
180
|
+
html: "Projektowanie dla mediów społecznościowych to nie tylko estetyka - to <strong>użyteczność</strong>. Jeśli użytkownik musi walczyć o przeczytanie tekstu, ponieważ ikony platformy go zasłaniają, po prostu przejdzie do następnego filmu. Retencja (Watch Time) gwałtownie spada, gdy pojawia się wizualne tarcie.",
|
|
199
181
|
},
|
|
200
182
|
{
|
|
201
183
|
type: 'paragraph',
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
3
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
4
|
import type { SafeZonesUI } from '../ui';
|
|
@@ -33,7 +34,7 @@ const faqData = [
|
|
|
33
34
|
const howToData = [
|
|
34
35
|
{
|
|
35
36
|
name: 'Carrega a tua imagem ou vídeo',
|
|
36
|
-
text: 'Faz o upload do ficheiro que desejas pré-visualizar. O processamento é local e privado
|
|
37
|
+
text: 'Faz o upload do ficheiro que desejas pré-visualizar. O processamento é local e privado - nada é carregado para a internet.',
|
|
37
38
|
},
|
|
38
39
|
{
|
|
39
40
|
name: 'Seleciona a plataforma',
|
|
@@ -87,27 +88,8 @@ export const content: ToolLocaleContent<SafeZonesUI> = {
|
|
|
87
88
|
slug,
|
|
88
89
|
title,
|
|
89
90
|
description,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
bibliographyTitle: 'Documentação Oficial das Plataformas',
|
|
93
|
-
bibliography: [
|
|
94
|
-
{
|
|
95
|
-
name: 'TikTok Creator Portal: Otimização de vídeo e zonas seguras',
|
|
96
|
-
url: 'https://www.tiktok.com/creators/creator-portal/en-us/foundation/video-optimization/',
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
name: 'Instagram Business: Melhores práticas para Reels',
|
|
100
|
-
url: 'https://business.instagram.com/creators/reels-best-practices',
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
name: 'Ajuda do YouTube: Criar YouTube Shorts',
|
|
104
|
-
url: 'https://support.google.com/youtube/answer/10343433',
|
|
105
|
-
},
|
|
106
|
-
{
|
|
107
|
-
name: 'Meta for Creators: Zonas seguras e proporções para vídeo',
|
|
108
|
-
url: 'https://www.facebook.com/business/help/103816146375741',
|
|
109
|
-
},
|
|
110
|
-
],
|
|
91
|
+
faq: faqData,
|
|
92
|
+
bibliography,
|
|
111
93
|
howTo: howToData,
|
|
112
94
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
113
95
|
seo: [
|
|
@@ -195,7 +177,7 @@ export const content: ToolLocaleContent<SafeZonesUI> = {
|
|
|
195
177
|
},
|
|
196
178
|
{
|
|
197
179
|
type: 'paragraph',
|
|
198
|
-
html: 'Desenhar para redes sociais não é apenas estética
|
|
180
|
+
html: 'Desenhar para redes sociais não é apenas estética - é <strong>usabilidade</strong>. Se um utilizador tiver de lutar para ler texto porque os ícones da plataforma o cobrem, ele simplesmente passará para o vídeo seguinte. A retenção (Watch Time) cai drasticamente quando há fricção visual.',
|
|
199
181
|
},
|
|
200
182
|
{
|
|
201
183
|
type: 'paragraph',
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
3
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
4
|
import type { SafeZonesUI } from '../ui';
|
|
@@ -9,7 +10,7 @@ const description =
|
|
|
9
10
|
|
|
10
11
|
const faqData = [
|
|
11
12
|
{
|
|
12
|
-
question: 'Что такое
|
|
13
|
+
question: 'Что такое \"безопасные зоны\" в социальных сетях?',
|
|
13
14
|
answer:
|
|
14
15
|
'Это области экрана, где контент виден без риска быть перекрытым элементами интерфейса, такими как имя пользователя, описание, кнопки взаимодействия (лайк, репост) или автоматическая обрезка, применяемая некоторыми устройствами.',
|
|
15
16
|
},
|
|
@@ -33,7 +34,7 @@ const faqData = [
|
|
|
33
34
|
const howToData = [
|
|
34
35
|
{
|
|
35
36
|
name: 'Загрузите изображение или видео',
|
|
36
|
-
text: 'Загрузите файл, который хотите просмотреть. Обработка происходит локально и конфиденциально
|
|
37
|
+
text: 'Загрузите файл, который хотите просмотреть. Обработка происходит локально и конфиденциально - ничего не загружается в интернет.',
|
|
37
38
|
},
|
|
38
39
|
{
|
|
39
40
|
name: 'Выберите платформу',
|
|
@@ -87,27 +88,8 @@ export const content: ToolLocaleContent<SafeZonesUI> = {
|
|
|
87
88
|
slug,
|
|
88
89
|
title,
|
|
89
90
|
description,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
bibliographyTitle: 'Официальная документация платформы',
|
|
93
|
-
bibliography: [
|
|
94
|
-
{
|
|
95
|
-
name: 'TikTok Creator Portal: оптимизация видео и безопасные зоны',
|
|
96
|
-
url: 'https://www.tiktok.com/creators/creator-portal/en-us/foundation/video-optimization/',
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
name: 'Instagram Business: рекомендации для Reels',
|
|
100
|
-
url: 'https://business.instagram.com/creators/reels-best-practices',
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
name: 'Справка YouTube: создание YouTube Shorts',
|
|
104
|
-
url: 'https://support.google.com/youtube/answer/10343433',
|
|
105
|
-
},
|
|
106
|
-
{
|
|
107
|
-
name: 'Meta for Creators: безопасные зоны и соотношение сторон для видео',
|
|
108
|
-
url: 'https://www.facebook.com/business/help/103816146375741',
|
|
109
|
-
},
|
|
110
|
-
],
|
|
91
|
+
faq: faqData,
|
|
92
|
+
bibliography,
|
|
111
93
|
howTo: howToData,
|
|
112
94
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
113
95
|
seo: [
|
|
@@ -118,11 +100,11 @@ export const content: ToolLocaleContent<SafeZonesUI> = {
|
|
|
118
100
|
},
|
|
119
101
|
{
|
|
120
102
|
type: 'paragraph',
|
|
121
|
-
html: 'В перенасыщенном мире вертикального контента первое впечатление
|
|
103
|
+
html: 'В перенасыщенном мире вертикального контента первое впечатление - техническое. Самая большая ошибка авторов - игнорирование того, как их <strong>видео или изображение</strong> взаимодействует с нативным интерфейсом платформы. Каждая социальная сеть (TikTok, Instagram Reels и YouTube Shorts) накладывает слои кнопок, текста и профилей, которые могут свести на нет визуальный эффект вашей композиции.',
|
|
122
104
|
},
|
|
123
105
|
{
|
|
124
106
|
type: 'paragraph',
|
|
125
|
-
html: 'Этот инструмент позволяет загружать медиафайлы и просматривать, какие именно части вашего кадра будут перекрыты интерфейсом. Речь идет не только о <strong>субтитрах</strong>; речь идет о том, чтобы лица, продукты или основные действия в вашем видео не оказались погребены под кнопкой
|
|
107
|
+
html: 'Этот инструмент позволяет загружать медиафайлы и просматривать, какие именно части вашего кадра будут перекрыты интерфейсом. Речь идет не только о <strong>субтитрах</strong>; речь идет о том, чтобы лица, продукты или основные действия в вашем видео не оказались погребены под кнопкой \"Нравится\" или длинным описанием.',
|
|
126
108
|
},
|
|
127
109
|
{
|
|
128
110
|
type: 'grid',
|
|
@@ -130,7 +112,7 @@ export const content: ToolLocaleContent<SafeZonesUI> = {
|
|
|
130
112
|
{
|
|
131
113
|
type: 'card',
|
|
132
114
|
title: 'TikTok: самый навязчивый интерфейс',
|
|
133
|
-
html: '<p>TikTok имеет самый плотный интерфейс. С правой стороны находится колонка иконок, занимающая примерно 15% ширины. Внизу описание может растягиваться на 4 или 5 строк, закрывая почти треть экрана снизу.</p><ul><li><strong>Нижний отступ:</strong> оставляйте последние 250 пикселей свободными, чтобы избежать перекрытия текстом описания и именем пользователя.</li><li><strong>Правый отступ:</strong> избегайте размещения текста в пределах 100 пикселей от правого края.</li><li><strong>Верх:</strong> кнопки
|
|
115
|
+
html: '<p>TikTok имеет самый плотный интерфейс. С правой стороны находится колонка иконок, занимающая примерно 15% ширины. Внизу описание может растягиваться на 4 или 5 строк, закрывая почти треть экрана снизу.</p><ul><li><strong>Нижний отступ:</strong> оставляйте последние 250 пикселей свободными, чтобы избежать перекрытия текстом описания и именем пользователя.</li><li><strong>Правый отступ:</strong> избегайте размещения текста в пределах 100 пикселей от правого края.</li><li><strong>Верх:</strong> кнопки \"Подписки\" и \"Рекомендации\" занимают верхнюю центральную полосу.</li></ul>',
|
|
134
116
|
},
|
|
135
117
|
{
|
|
136
118
|
type: 'card',
|
|
@@ -168,7 +150,7 @@ export const content: ToolLocaleContent<SafeZonesUI> = {
|
|
|
168
150
|
},
|
|
169
151
|
{
|
|
170
152
|
type: 'paragraph',
|
|
171
|
-
html: '
|
|
153
|
+
html: '\"Золотая зона\" для основного действия - центральная треть видео. Если вы снимаете человека, убедитесь, что его глаза и рот находятся в этой зоне. Важные графические элементы должны быть слегка смещены вверх от геометрического центра, чтобы избежать перекрытия нижним описанием.',
|
|
172
154
|
},
|
|
173
155
|
{
|
|
174
156
|
type: 'title',
|
|
@@ -195,7 +177,7 @@ export const content: ToolLocaleContent<SafeZonesUI> = {
|
|
|
195
177
|
},
|
|
196
178
|
{
|
|
197
179
|
type: 'paragraph',
|
|
198
|
-
html: 'Дизайн для социальных сетей
|
|
180
|
+
html: 'Дизайн для социальных сетей - это не только эстетика, но и <strong>удобство использования</strong>. Если пользователю приходится изо всех сил пытаться прочитать текст, потому что иконки платформы закрывают его, он просто перелистнет к следующему видео. Удержание (Watch Time) резко падает при наличии визуального дискомфорта.',
|
|
199
181
|
},
|
|
200
182
|
{
|
|
201
183
|
type: 'paragraph',
|
|
@@ -227,14 +209,14 @@ export const content: ToolLocaleContent<SafeZonesUI> = {
|
|
|
227
209
|
ttFollowing: 'Подписки',
|
|
228
210
|
ttForYou: 'Рекомендации',
|
|
229
211
|
ttDescription: 'Реальный дизайн интерфейса для создателей контента. #uxdesign #socialmedia',
|
|
230
|
-
ttAudio: 'jjlmoya
|
|
212
|
+
ttAudio: 'jjlmoya - оригинальный звук',
|
|
231
213
|
ttNavHome: 'Главная',
|
|
232
214
|
ttNavFriends: 'Друзья',
|
|
233
215
|
ttNavInbox: 'Входящие',
|
|
234
216
|
ttNavProfile: 'Профиль',
|
|
235
217
|
reelsFollow: 'Подписаться',
|
|
236
218
|
reelsDescription: 'Этот интерфейс идентичен реальному. #reels #ux #simulator',
|
|
237
|
-
reelsAudio: 'Trending Music
|
|
219
|
+
reelsAudio: 'Trending Music - оригинальное аудио',
|
|
238
220
|
shortsSubscribe: 'ПОДПИСАТЬСЯ',
|
|
239
221
|
shortsDislike: 'Не нравится',
|
|
240
222
|
shortsShare: 'Поделиться',
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
3
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
4
|
import type { SafeZonesUI } from '../ui';
|
|
@@ -33,7 +34,7 @@ const faqData = [
|
|
|
33
34
|
const howToData = [
|
|
34
35
|
{
|
|
35
36
|
name: 'Ladda upp din bild eller video',
|
|
36
|
-
text: 'Ladda upp filen du vill förhandsgranska. Bearbetningen sker lokalt och privat
|
|
37
|
+
text: 'Ladda upp filen du vill förhandsgranska. Bearbetningen sker lokalt och privat - inget laddas upp till internet.',
|
|
37
38
|
},
|
|
38
39
|
{
|
|
39
40
|
name: 'Välj plattform',
|
|
@@ -87,27 +88,8 @@ export const content: ToolLocaleContent<SafeZonesUI> = {
|
|
|
87
88
|
slug,
|
|
88
89
|
title,
|
|
89
90
|
description,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
bibliographyTitle: 'Officiell plattformsdokumentation',
|
|
93
|
-
bibliography: [
|
|
94
|
-
{
|
|
95
|
-
name: 'TikTok Creator Portal: Videooptimering och säkra zoner',
|
|
96
|
-
url: 'https://www.tiktok.com/creators/creator-portal/en-us/foundation/video-optimization/',
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
name: 'Instagram Business: Best practices för Reels',
|
|
100
|
-
url: 'https://business.instagram.com/creators/reels-best-practices',
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
name: 'YouTube Help: Skapa YouTube Shorts',
|
|
104
|
-
url: 'https://support.google.com/youtube/answer/10343433',
|
|
105
|
-
},
|
|
106
|
-
{
|
|
107
|
-
name: 'Meta for Creators: Säkra zoner och bildförhållanden för video',
|
|
108
|
-
url: 'https://www.facebook.com/business/help/103816146375741',
|
|
109
|
-
},
|
|
110
|
-
],
|
|
91
|
+
faq: faqData,
|
|
92
|
+
bibliography,
|
|
111
93
|
howTo: howToData,
|
|
112
94
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
113
95
|
seo: [
|
|
@@ -195,7 +177,7 @@ export const content: ToolLocaleContent<SafeZonesUI> = {
|
|
|
195
177
|
},
|
|
196
178
|
{
|
|
197
179
|
type: 'paragraph',
|
|
198
|
-
html: 'Att designa för sociala medier handlar inte bara om estetik
|
|
180
|
+
html: 'Att designa för sociala medier handlar inte bara om estetik - det handlar om <strong>användbarhet</strong>. Om en användare måste kämpa för att läsa text för att plattformens ikoner täcker den, kommer de helt enkelt att svepa vidare till nästa video. Behållningen (Watch Time) sjunker kraftigt när det finns visuell friktion.',
|
|
199
181
|
},
|
|
200
182
|
{
|
|
201
183
|
type: 'paragraph',
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
3
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
4
|
import type { SafeZonesUI } from '../ui';
|
|
@@ -87,27 +88,8 @@ export const content: ToolLocaleContent<SafeZonesUI> = {
|
|
|
87
88
|
slug,
|
|
88
89
|
title,
|
|
89
90
|
description,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
bibliographyTitle: 'Resmi Platform Dokümantasyonu',
|
|
93
|
-
bibliography: [
|
|
94
|
-
{
|
|
95
|
-
name: 'TikTok İçerik Üretici Portalı: Video optimizasyonu ve güvenli bölgeler',
|
|
96
|
-
url: 'https://www.tiktok.com/creators/creator-portal/en-us/foundation/video-optimization/',
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
name: 'Instagram Business: Reels için en iyi uygulamalar',
|
|
100
|
-
url: 'https://business.instagram.com/creators/reels-best-practices',
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
name: 'YouTube Yardımı: YouTube Shorts oluşturma',
|
|
104
|
-
url: 'https://support.google.com/youtube/answer/10343433',
|
|
105
|
-
},
|
|
106
|
-
{
|
|
107
|
-
name: 'Meta for Creators: Videolar için güvenli bölgeler ve en boy oranları',
|
|
108
|
-
url: 'https://www.facebook.com/business/help/103816146375741',
|
|
109
|
-
},
|
|
110
|
-
],
|
|
91
|
+
faq: faqData,
|
|
92
|
+
bibliography,
|
|
111
93
|
howTo: howToData,
|
|
112
94
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
113
95
|
seo: [
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
3
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
4
|
import type { SafeZonesUI } from '../ui';
|
|
@@ -9,7 +10,7 @@ const description =
|
|
|
9
10
|
|
|
10
11
|
const faqData = [
|
|
11
12
|
{
|
|
12
|
-
question: '
|
|
13
|
+
question: '什么是社交媒体上的\"安全区域\"?',
|
|
13
14
|
answer:
|
|
14
15
|
'安全区域是指屏幕上内容可见且不会被界面元素(如用户名、描述、交互按钮(点赞、分享))或某些设备应用的自动裁剪所遮挡的区域。',
|
|
15
16
|
},
|
|
@@ -87,27 +88,8 @@ export const content: ToolLocaleContent<SafeZonesUI> = {
|
|
|
87
88
|
slug,
|
|
88
89
|
title,
|
|
89
90
|
description,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
bibliographyTitle: '官方平台文档',
|
|
93
|
-
bibliography: [
|
|
94
|
-
{
|
|
95
|
-
name: 'TikTok 创作者门户:视频优化和安全区域',
|
|
96
|
-
url: 'https://www.tiktok.com/creators/creator-portal/en-us/foundation/video-optimization/',
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
name: 'Instagram 业务:Reels 最佳实践',
|
|
100
|
-
url: 'https://business.instagram.com/creators/reels-best-practices',
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
name: 'YouTube 帮助:创建 YouTube Shorts',
|
|
104
|
-
url: 'https://support.google.com/youtube/answer/10343433',
|
|
105
|
-
},
|
|
106
|
-
{
|
|
107
|
-
name: 'Meta for Creators:视频安全区域和纵横比',
|
|
108
|
-
url: 'https://www.facebook.com/business/help/103816146375741',
|
|
109
|
-
},
|
|
110
|
-
],
|
|
91
|
+
faq: faqData,
|
|
92
|
+
bibliography,
|
|
111
93
|
howTo: howToData,
|
|
112
94
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
113
95
|
seo: [
|
|
@@ -122,7 +104,7 @@ export const content: ToolLocaleContent<SafeZonesUI> = {
|
|
|
122
104
|
},
|
|
123
105
|
{
|
|
124
106
|
type: 'paragraph',
|
|
125
|
-
html: '此工具允许您加载媒体文件,并准确预览画面的哪些部分会被界面遮挡。这不仅仅关乎<strong>字幕</strong
|
|
107
|
+
html: '此工具允许您加载媒体文件,并准确预览画面的哪些部分会被界面遮挡。这不仅仅关乎<strong>字幕</strong>;它还关乎确保视频中的脸部、产品或主要动作不会被嵌入\"点赞\"按钮或冗长的描述之下。',
|
|
126
108
|
},
|
|
127
109
|
{
|
|
128
110
|
type: 'grid',
|
|
@@ -130,7 +112,7 @@ export const content: ToolLocaleContent<SafeZonesUI> = {
|
|
|
130
112
|
{
|
|
131
113
|
type: 'card',
|
|
132
114
|
title: 'TikTok:最具侵入性的界面',
|
|
133
|
-
html: '<p>TikTok 的界面最为密集。在右侧,有一列图标占据了约 15% 的宽度。在底部,描述可以扩展到 4 或 5 行,从下方遮挡了近三分之一的屏幕。</p><ul><li><strong>底部边距:</strong>保留最后 250px 的自由空间,以避开描述文字和用户名。</li><li><strong>右侧边距:</strong>避免在距离右边缘 100px 范围内放置文字。</li><li><strong>顶部:</strong
|
|
115
|
+
html: '<p>TikTok 的界面最为密集。在右侧,有一列图标占据了约 15% 的宽度。在底部,描述可以扩展到 4 或 5 行,从下方遮挡了近三分之一的屏幕。</p><ul><li><strong>底部边距:</strong>保留最后 250px 的自由空间,以避开描述文字和用户名。</li><li><strong>右侧边距:</strong>避免在距离右边缘 100px 范围内放置文字。</li><li><strong>顶部:</strong>\"关注\"和\"推荐\"按钮占据了顶部中央条案。</li></ul>',
|
|
134
116
|
},
|
|
135
117
|
{
|
|
136
118
|
type: 'card',
|
|
@@ -168,7 +150,7 @@ export const content: ToolLocaleContent<SafeZonesUI> = {
|
|
|
168
150
|
},
|
|
169
151
|
{
|
|
170
152
|
type: 'paragraph',
|
|
171
|
-
html: '
|
|
153
|
+
html: '主要动作的\"黄金区域\"是视频的中央三分之一。如果您正在拍摄人物,请确保他们的眼睛和嘴巴在这个区域内。重要的图形元素应从几何中心略微向上移动,以避开底部的描述。',
|
|
172
154
|
},
|
|
173
155
|
{
|
|
174
156
|
type: 'title',
|
|
@@ -11,4 +11,5 @@ const { locale = 'es' } = Astro.props;
|
|
|
11
11
|
const content = await safeZones.i18n[locale]?.();
|
|
12
12
|
if (!content) return null;
|
|
13
13
|
---
|
|
14
|
-
|
|
14
|
+
|
|
15
|
+
{content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
|
|
@@ -1,14 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
import { Bibliography as SharedBibliography } from '@jjlmoya/utils-shared';
|
|
3
|
-
import {
|
|
4
|
-
import type { KnownLocale } from '../../types';
|
|
5
|
-
|
|
6
|
-
interface Props {
|
|
7
|
-
locale?: KnownLocale;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
const { locale = 'es' } = Astro.props;
|
|
11
|
-
const content = await socialImageResizer.i18n[locale]?.();
|
|
3
|
+
import { bibliography } from './bibliography';
|
|
12
4
|
---
|
|
13
5
|
|
|
14
|
-
|
|
6
|
+
<SharedBibliography links={bibliography} />
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { BibliographyEntry } from '../../types';
|
|
2
|
+
|
|
3
|
+
export const bibliography: BibliographyEntry[] = [
|
|
4
|
+
{
|
|
5
|
+
name: 'MDN Web Docs: Canvas API',
|
|
6
|
+
url: 'https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API',
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
name: 'Sprout Social: Social Media Image Sizes Guide 2026',
|
|
10
|
+
url: 'https://sproutsocial.com/insights/social-media-image-sizes-guide/',
|
|
11
|
+
},
|
|
12
|
+
];
|
|
@@ -73,7 +73,7 @@ const icons: Record<string, string> = {
|
|
|
73
73
|
<h2>{t.uploadTitle}</h2>
|
|
74
74
|
<p>{t.uploadSubtitle}</p>
|
|
75
75
|
</div>
|
|
76
|
-
<input type="file" id="sri-file-input" accept="image/*" hidden />
|
|
76
|
+
<input type="file" id="sri-file-input" class="file-input" accept="image/*" hidden />
|
|
77
77
|
</div>
|
|
78
78
|
|
|
79
79
|
<div class="sri-editor-view" id="sri-editor-view">
|
|
@@ -84,7 +84,7 @@ const icons: Record<string, string> = {
|
|
|
84
84
|
<div class="sri-editor-actions">
|
|
85
85
|
<div class="sri-zoom-control">
|
|
86
86
|
<span set:html={icons.zoomOut} />
|
|
87
|
-
<input type="range" id="sri-zoom-range" min="10" max="300" value="100" />
|
|
87
|
+
<input type="range" id="sri-zoom-range" min="10" max="300" value="100" aria-label="Zoom" />
|
|
88
88
|
<span set:html={icons.zoomIn} />
|
|
89
89
|
</div>
|
|
90
90
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
3
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
4
|
import type { SocialImageResizerUI } from '../ui';
|
|
@@ -78,19 +79,8 @@ export const content: ToolLocaleContent<SocialImageResizerUI> = {
|
|
|
78
79
|
slug,
|
|
79
80
|
title,
|
|
80
81
|
description,
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
bibliographyTitle: 'Referenzen',
|
|
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
|
-
],
|
|
82
|
+
faq: faqData,
|
|
83
|
+
bibliography,
|
|
94
84
|
howTo: howToData,
|
|
95
85
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
96
86
|
seo: [
|
|
@@ -101,7 +91,7 @@ export const content: ToolLocaleContent<SocialImageResizerUI> = {
|
|
|
101
91
|
},
|
|
102
92
|
{
|
|
103
93
|
type: 'paragraph',
|
|
104
|
-
html: 'Im heutigen digitalen Ökosystem ist der erste Eindruck visuell. Jedes soziale Netzwerk arbeitet mit spezifischen Algorithmen, die Inhalte bevorzugen, die nativ an ihre Proportionen angepasst sind. Unser Social Media Image Resizer ist nicht nur ein technisches Werkzeug
|
|
94
|
+
html: 'Im heutigen digitalen Ökosystem ist der erste Eindruck visuell. Jedes soziale Netzwerk arbeitet mit spezifischen Algorithmen, die Inhalte bevorzugen, die nativ an ihre Proportionen angepasst sind. Unser Social Media Image Resizer ist nicht nur ein technisches Werkzeug - er ist Ihr Partner, um sicherzustellen, dass Ihre Botschaft ohne unerwünschte Zuschnitte oder Qualitätsverluste ankommt.',
|
|
105
95
|
},
|
|
106
96
|
{
|
|
107
97
|
type: 'paragraph',
|
|
@@ -115,10 +105,10 @@ export const content: ToolLocaleContent<SocialImageResizerUI> = {
|
|
|
115
105
|
{
|
|
116
106
|
type: 'grid',
|
|
117
107
|
columns: [
|
|
118
|
-
{ title: 'Instagram
|
|
119
|
-
{ title: 'Instagram
|
|
120
|
-
{ title: 'TikTok / Reels
|
|
121
|
-
{ title: 'YouTube
|
|
108
|
+
{ title: 'Instagram: Quadratischer Post', body: '1080 × 1080 px · Verhältnis 1:1' },
|
|
109
|
+
{ title: 'Instagram: Vertikaler Post', body: '1080 × 1350 px · Verhältnis 4:5' },
|
|
110
|
+
{ title: 'TikTok / Reels: Vertikal', body: '1080 × 1920 px · Verhältnis 9:16' },
|
|
111
|
+
{ title: 'YouTube: Thumbnail', body: '1280 × 720 px · Verhältnis 16:9' },
|
|
122
112
|
{ title: 'YouTube Kanal Banner', body: '2560 × 1440 px · Verhältnis 16:9' },
|
|
123
113
|
{ title: 'X (Twitter) Standard Post', body: '1200 × 675 px · Verhältnis 16:9' },
|
|
124
114
|
{ title: 'LinkedIn Profil Header', body: '1584 × 396 px · Verhältnis 4:1' },
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
3
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
4
|
import type { SocialImageResizerUI } from '../ui';
|
|
@@ -78,19 +79,8 @@ export const content: ToolLocaleContent<SocialImageResizerUI> = {
|
|
|
78
79
|
slug,
|
|
79
80
|
title,
|
|
80
81
|
description,
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
bibliographyTitle: 'References',
|
|
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
|
-
],
|
|
82
|
+
faq: faqData,
|
|
83
|
+
bibliography,
|
|
94
84
|
howTo: howToData,
|
|
95
85
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
96
86
|
seo: [
|
|
@@ -101,7 +91,7 @@ export const content: ToolLocaleContent<SocialImageResizerUI> = {
|
|
|
101
91
|
},
|
|
102
92
|
{
|
|
103
93
|
type: 'paragraph',
|
|
104
|
-
html: "In today's digital ecosystem, first impressions are visual. Each social network operates under specific algorithms that prioritize content natively adapted to its proportions. Our social media image resizer is not just a technical tool
|
|
94
|
+
html: "In today's digital ecosystem, first impressions are visual. Each social network operates under specific algorithms that prioritize content natively adapted to its proportions. Our social media image resizer is not just a technical tool - it is your ally to ensure your message arrives without unwanted crops or quality loss.",
|
|
105
95
|
},
|
|
106
96
|
{
|
|
107
97
|
type: 'paragraph',
|
|
@@ -115,13 +105,13 @@ export const content: ToolLocaleContent<SocialImageResizerUI> = {
|
|
|
115
105
|
{
|
|
116
106
|
type: 'grid',
|
|
117
107
|
columns: [
|
|
118
|
-
{ title: 'Instagram
|
|
119
|
-
{ title: 'Instagram
|
|
120
|
-
{ title: 'TikTok / Reels
|
|
121
|
-
{ title: 'YouTube
|
|
122
|
-
{ title: 'YouTube
|
|
123
|
-
{ title: 'X (Twitter)
|
|
124
|
-
{ title: 'LinkedIn
|
|
108
|
+
{ title: 'Instagram: Square Post', body: '1080 × 1080 px · Ratio 1:1' },
|
|
109
|
+
{ title: 'Instagram: Vertical Post', body: '1080 × 1350 px · Ratio 4:5' },
|
|
110
|
+
{ title: 'TikTok / Reels: Vertical', body: '1080 × 1920 px · Ratio 9:16' },
|
|
111
|
+
{ title: 'YouTube: Thumbnail', body: '1280 × 720 px · Ratio 16:9' },
|
|
112
|
+
{ title: 'YouTube: Channel Banner', body: '2560 × 1440 px · Ratio 16:9' },
|
|
113
|
+
{ title: 'X (Twitter): Standard Post', body: '1200 × 675 px · Ratio 16:9' },
|
|
114
|
+
{ title: 'LinkedIn: Profile Cover', body: '1584 × 396 px · Ratio 4:1' },
|
|
125
115
|
],
|
|
126
116
|
},
|
|
127
117
|
{
|