@jjlmoya/utils-social 1.14.0 → 1.16.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 (83) hide show
  1. package/package.json +4 -2
  2. package/src/category/i18n/fr.ts +2 -2
  3. package/src/category/i18n/ru.ts +1 -1
  4. package/src/category/index.ts +1 -1
  5. package/src/env.d.ts +5 -0
  6. package/src/layouts/PreviewLayout.astro +7 -2
  7. package/src/tests/diacritics_density.test.ts +118 -0
  8. package/src/tests/inverted_punctuation.test.ts +84 -0
  9. package/src/tests/no_en_dash.test.ts +70 -0
  10. package/src/tests/pagespeed_best_practices.test.ts +198 -0
  11. package/src/tests/script_density.test.ts +94 -0
  12. package/src/tool/redditFormatter/i18n/fr.ts +2 -2
  13. package/src/tool/redditFormatter/i18n/pl.ts +4 -4
  14. package/src/tool/redditFormatter/i18n/ru.ts +2 -2
  15. package/src/tool/redditFormatter/i18n/zh.ts +1 -1
  16. package/src/tool/safeZones/component.astro +1 -1
  17. package/src/tool/safeZones/i18n/de.ts +2 -2
  18. package/src/tool/safeZones/i18n/en.ts +2 -2
  19. package/src/tool/safeZones/i18n/fr.ts +11 -11
  20. package/src/tool/safeZones/i18n/id.ts +2 -2
  21. package/src/tool/safeZones/i18n/it.ts +6 -6
  22. package/src/tool/safeZones/i18n/nl.ts +2 -2
  23. package/src/tool/safeZones/i18n/pl.ts +7 -7
  24. package/src/tool/safeZones/i18n/pt.ts +2 -2
  25. package/src/tool/safeZones/i18n/ru.ts +9 -9
  26. package/src/tool/safeZones/i18n/sv.ts +2 -2
  27. package/src/tool/safeZones/i18n/zh.ts +4 -4
  28. package/src/tool/socialImageResizer/component.astro +2 -2
  29. package/src/tool/socialImageResizer/i18n/de.ts +5 -5
  30. package/src/tool/socialImageResizer/i18n/en.ts +8 -8
  31. package/src/tool/socialImageResizer/i18n/es.ts +7 -7
  32. package/src/tool/socialImageResizer/i18n/fr.ts +11 -11
  33. package/src/tool/socialImageResizer/i18n/id.ts +8 -8
  34. package/src/tool/socialImageResizer/i18n/it.ts +16 -16
  35. package/src/tool/socialImageResizer/i18n/ja.ts +7 -7
  36. package/src/tool/socialImageResizer/i18n/ko.ts +7 -7
  37. package/src/tool/socialImageResizer/i18n/nl.ts +8 -8
  38. package/src/tool/socialImageResizer/i18n/pl.ts +9 -9
  39. package/src/tool/socialImageResizer/i18n/pt.ts +8 -8
  40. package/src/tool/socialImageResizer/i18n/ru.ts +14 -14
  41. package/src/tool/socialImageResizer/i18n/sv.ts +8 -8
  42. package/src/tool/socialImageResizer/i18n/tr.ts +7 -7
  43. package/src/tool/socialImageResizer/i18n/zh.ts +7 -7
  44. package/src/tool/socialValueCalculator/component.astro +1 -2
  45. package/src/tool/socialValueCalculator/i18n/de.ts +2 -2
  46. package/src/tool/socialValueCalculator/i18n/en.ts +1 -1
  47. package/src/tool/socialValueCalculator/i18n/es.ts +2 -2
  48. package/src/tool/socialValueCalculator/i18n/fr.ts +6 -6
  49. package/src/tool/socialValueCalculator/i18n/id.ts +1 -1
  50. package/src/tool/socialValueCalculator/i18n/it.ts +14 -14
  51. package/src/tool/socialValueCalculator/i18n/ja.ts +1 -1
  52. package/src/tool/socialValueCalculator/i18n/ko.ts +1 -1
  53. package/src/tool/socialValueCalculator/i18n/nl.ts +1 -1
  54. package/src/tool/socialValueCalculator/i18n/pl.ts +1 -1
  55. package/src/tool/socialValueCalculator/i18n/pt.ts +1 -1
  56. package/src/tool/socialValueCalculator/i18n/ru.ts +7 -7
  57. package/src/tool/socialValueCalculator/i18n/sv.ts +1 -1
  58. package/src/tool/socialValueCalculator/i18n/tr.ts +1 -1
  59. package/src/tool/socialValueCalculator/i18n/zh.ts +4 -4
  60. package/src/tool/tinderPhotoOptimizer/component.astro +23 -6
  61. package/src/tool/tinderPhotoOptimizer/i18n/de.ts +3 -3
  62. package/src/tool/tinderPhotoOptimizer/i18n/en.ts +1 -1
  63. package/src/tool/tinderPhotoOptimizer/i18n/es.ts +3 -3
  64. package/src/tool/tinderPhotoOptimizer/i18n/fr.ts +25 -25
  65. package/src/tool/tinderPhotoOptimizer/i18n/ru.ts +9 -9
  66. package/src/tool/tinderPhotoOptimizer/i18n/zh.ts +2 -2
  67. package/src/tool/youtubeThumbnail/bibliography.ts +1 -1
  68. package/src/tool/youtubeThumbnail/component.astro +1 -0
  69. package/src/tool/youtubeThumbnail/i18n/de.ts +3 -3
  70. package/src/tool/youtubeThumbnail/i18n/en.ts +1 -1
  71. package/src/tool/youtubeThumbnail/i18n/fr.ts +3 -3
  72. package/src/tool/youtubeThumbnail/i18n/ru.ts +3 -3
  73. package/src/tool/youtubeThumbnail/i18n/zh.ts +2 -2
  74. package/src/tool/youtubeThumbnailPreviewer/i18n/de.ts +8 -8
  75. package/src/tool/youtubeThumbnailPreviewer/i18n/en.ts +2 -2
  76. package/src/tool/youtubeThumbnailPreviewer/i18n/fr.ts +9 -9
  77. package/src/tool/youtubeThumbnailPreviewer/i18n/id.ts +2 -2
  78. package/src/tool/youtubeThumbnailPreviewer/i18n/it.ts +21 -21
  79. package/src/tool/youtubeThumbnailPreviewer/i18n/nl.ts +4 -4
  80. package/src/tool/youtubeThumbnailPreviewer/i18n/pl.ts +7 -7
  81. package/src/tool/youtubeThumbnailPreviewer/i18n/ru.ts +11 -11
  82. package/src/tool/youtubeThumbnailPreviewer/i18n/sv.ts +2 -2
  83. package/src/tool/youtubeThumbnailPreviewer/i18n/zh.ts +10 -10
@@ -105,13 +105,13 @@ export const content: ToolLocaleContent<SocialImageResizerUI> = {
105
105
  {
106
106
  type: 'grid',
107
107
  columns: [
108
- { type: 'card', title: 'Instagram — Post Cuadrado', body: '1080 × 1080 px · Ratio 1:1' },
109
- { type: 'card', title: 'Instagram — Post Vertical', body: '1080 × 1350 px · Ratio 4:5' },
110
- { type: 'card', title: 'TikTok / Reels — Vertical', body: '1080 × 1920 px · Ratio 9:16' },
111
- { type: 'card', title: 'YouTube — Miniatura', body: '1280 × 720 px · Ratio 16:9' },
112
- { type: 'card', title: 'YouTube — Banner de Canal', body: '2560 × 1440 px · Ratio 16:9' },
113
- { type: 'card', title: 'X (Twitter) — Post Estándar', body: '1200 × 675 px · Ratio 16:9' },
114
- { type: 'card', title: 'LinkedIn — Portada de Perfil', body: '1584 × 396 px · Ratio 4:1' },
108
+ { type: 'card', title: 'Instagram: Post Cuadrado', body: '1080 × 1080 px · Ratio 1:1' },
109
+ { type: 'card', title: 'Instagram: Post Vertical', body: '1080 × 1350 px · Ratio 4:5' },
110
+ { type: 'card', title: 'TikTok / Reels: Vertical', body: '1080 × 1920 px · Ratio 9:16' },
111
+ { type: 'card', title: 'YouTube: Miniatura', body: '1280 × 720 px · Ratio 16:9' },
112
+ { type: 'card', title: 'YouTube: Banner de Canal', body: '2560 × 1440 px · Ratio 16:9' },
113
+ { type: 'card', title: 'X (Twitter): Post Estándar', body: '1200 × 675 px · Ratio 16:9' },
114
+ { type: 'card', title: 'LinkedIn: Portada de Perfil', body: '1584 × 396 px · Ratio 4:1' },
115
115
  ],
116
116
  },
117
117
  {
@@ -105,13 +105,13 @@ export const content: ToolLocaleContent<SocialImageResizerUI> = {
105
105
  {
106
106
  type: 'grid',
107
107
  columns: [
108
- { title: 'Instagram — Post Carré', body: '1080 × 1080 px · Ratio 1:1' },
109
- { title: 'Instagram — Post Vertical', body: '1080 × 1350 px · Ratio 4:5' },
110
- { title: 'TikTok / Reels — Vertical', body: '1080 × 1920 px · Ratio 9:16' },
111
- { title: 'YouTube — Miniature', body: '1280 × 720 px · Ratio 16:9' },
112
- { title: 'YouTube — Bannière de Chaîne', body: '2560 × 1440 px · Ratio 16:9' },
113
- { title: 'X (Twitter) — Post Standard', body: '1200 × 675 px · Ratio 16:9' },
114
- { title: 'LinkedIn — Couverture de Profil', body: '1584 × 396 px · Ratio 4:1' },
108
+ { title: 'Instagram: Post Carré', body: '1080 × 1080 px · Ratio 1:1' },
109
+ { title: 'Instagram: Post Vertical', body: '1080 × 1350 px · Ratio 4:5' },
110
+ { title: 'TikTok / Reels: Vertical', body: '1080 × 1920 px · Ratio 9:16' },
111
+ { title: 'YouTube: Miniature', body: '1280 × 720 px · Ratio 16:9' },
112
+ { title: 'YouTube: Bannière de Chaîne', body: '2560 × 1440 px · Ratio 16:9' },
113
+ { title: 'X (Twitter): Post Standard', body: '1200 × 675 px · Ratio 16:9' },
114
+ { title: 'LinkedIn: Couverture de Profil', body: '1584 × 396 px · Ratio 4:1' },
115
115
  ],
116
116
  },
117
117
  {
@@ -166,10 +166,10 @@ export const content: ToolLocaleContent<SocialImageResizerUI> = {
166
166
  {
167
167
  type: 'list',
168
168
  items: [
169
- "Sélectionnez votre format : Choisissez la plateforme et le type de publication dans le menu latéral.",
170
- "Chargez l'image : Faites glisser votre fichier ou utilisez le sélecteur pour importer votre photo.",
171
- "Ajustez le cadre : Faites glisser la photo dans la zone visible et utilisez le zoom pour plus de précision.",
172
- "Export immédiat : Cliquez sur télécharger pour obtenir votre image prête à publier.",
169
+ "Sélectionnez votre format: Choisissez la plateforme et le type de publication dans le menu latéral.",
170
+ "Chargez l'image: Faites glisser votre fichier ou utilisez le sélecteur pour importer votre photo.",
171
+ "Ajustez le cadre: Faites glisser la photo dans la zone visible et utilisez le zoom pour plus de précision.",
172
+ "Export immédiat: Cliquez sur télécharger pour obtenir votre image prête à publier.",
173
173
  ],
174
174
  },
175
175
  {
@@ -91,7 +91,7 @@ export const content: ToolLocaleContent<SocialImageResizerUI> = {
91
91
  },
92
92
  {
93
93
  type: 'paragraph',
94
- html: 'Dalam ekosistem digital saat ini, kesan pertama adalah visual. Setiap jejaring sosial beroperasi di bawah algoritma spesifik yang memprioritaskan konten yang diadaptasi secara asli ke proporsinya. Pengubah ukuran gambar media sosial kami bukan sekadar alat teknis — ini adalah sekutu Anda untuk memastikan pesan Anda sampai tanpa pemotongan yang tidak diinginkan atau kehilangan kualitas.',
94
+ html: 'Dalam ekosistem digital saat ini, kesan pertama adalah visual. Setiap jejaring sosial beroperasi di bawah algoritma spesifik yang memprioritaskan konten yang diadaptasi secara asli ke proporsinya. Pengubah ukuran gambar media sosial kami bukan sekadar alat teknis - ini adalah sekutu Anda untuk memastikan pesan Anda sampai tanpa pemotongan yang tidak diinginkan atau kehilangan kualitas.',
95
95
  },
96
96
  {
97
97
  type: 'paragraph',
@@ -105,13 +105,13 @@ export const content: ToolLocaleContent<SocialImageResizerUI> = {
105
105
  {
106
106
  type: 'grid',
107
107
  columns: [
108
- { title: 'Instagram — Postingan Kotak', body: '1080 × 1080 px · Rasio 1:1' },
109
- { title: 'Instagram — Postingan Vertikal', body: '1080 × 1350 px · Rasio 4:5' },
110
- { title: 'TikTok / Reels — Vertikal', body: '1080 × 1920 px · Rasio 9:16' },
111
- { title: 'YouTube — Thumbnail', body: '1280 × 720 px · Rasio 16:9' },
112
- { title: 'YouTube — Banner Channel', body: '2560 × 1440 px · Rasio 16:9' },
113
- { title: 'X (Twitter) — Postingan Standar', body: '1200 × 675 px · Rasio 16:9' },
114
- { title: 'LinkedIn — Sampul Profil', body: '1584 × 396 px · Rasio 4:1' },
108
+ { title: 'Instagram: Postingan Kotak', body: '1080 × 1080 px · Rasio 1:1' },
109
+ { title: 'Instagram: Postingan Vertikal', body: '1080 × 1350 px · Rasio 4:5' },
110
+ { title: 'TikTok / Reels: Vertikal', body: '1080 × 1920 px · Rasio 9:16' },
111
+ { title: 'YouTube: Thumbnail', body: '1280 × 720 px · Rasio 16:9' },
112
+ { title: 'YouTube: Banner Channel', body: '2560 × 1440 px · Rasio 16:9' },
113
+ { title: 'X (Twitter): Postingan Standar', body: '1200 × 675 px · Rasio 16:9' },
114
+ { title: 'LinkedIn: Sampul Profil', body: '1584 × 396 px · Rasio 4:1' },
115
115
  ],
116
116
  },
117
117
  {
@@ -10,14 +10,14 @@ const description =
10
10
 
11
11
  const faqData = [
12
12
  {
13
- question: 'La qualità dell’immagine andrà persa durante il ridimensionamento?',
13
+ question: 'La qualità dell\'immagine andrà persa durante il ridimensionamento?',
14
14
  answer:
15
- 'No, utilizziamo algoritmi di smoothing ad alta qualità. Si raccomanda di caricare un’immagine originale con una risoluzione pari o superiore al formato di destinazione.',
15
+ 'No, utilizziamo algoritmi di smoothing ad alta qualità. Si raccomanda di caricare un\'immagine originale con una risoluzione pari o superiore al formato di destinazione.',
16
16
  },
17
17
  {
18
18
  question: 'È sicuro caricare le mie foto qui?',
19
19
  answer:
20
- 'Completamente. L’elaborazione avviene localmente nel tuo browser tramite le API Canvas. Le tue foto non vengono mai inviate ad alcun server.',
20
+ 'Completamente. L\'elaborazione avviene localmente nel tuo browser tramite le API Canvas. Le tue foto non vengono mai inviate ad alcun server.',
21
21
  },
22
22
  {
23
23
  question: 'Quali formati sono supportati?',
@@ -95,7 +95,7 @@ export const content: ToolLocaleContent<SocialImageResizerUI> = {
95
95
  },
96
96
  {
97
97
  type: 'paragraph',
98
- html: 'Sia che tu debba convertire una foto orizzontale in una d’impatto verticale per le Instagram Stories, o adattare un design per un complesso banner di YouTube, la nostra utility utilizza un sistema di ritaglio intelligente che ti permette di posizionare e scalare la tua immagine con precisione direttamente nel tuo browser.',
98
+ html: 'Sia che tu debba convertire una foto orizzontale in una d\'impatto verticale per le Instagram Stories, o adattare un design per un complesso banner di YouTube, la nostra utility utilizza un sistema di ritaglio intelligente che ti permette di posizionare e scalare la tua immagine con precisione direttamente nel tuo browser.',
99
99
  },
100
100
  {
101
101
  type: 'title',
@@ -105,13 +105,13 @@ export const content: ToolLocaleContent<SocialImageResizerUI> = {
105
105
  {
106
106
  type: 'grid',
107
107
  columns: [
108
- { title: 'Instagram — Post Quadrato', body: '1080 × 1080 px · Rapporto 1:1' },
109
- { title: 'Instagram — Post Verticale', body: '1080 × 1350 px · Rapporto 4:5' },
110
- { title: 'TikTok / Reels — Verticale', body: '1080 × 1920 px · Rapporto 9:16' },
111
- { title: 'YouTube — Thumbnail', body: '1280 × 720 px · Rapporto 16:9' },
112
- { title: 'YouTube — Banner Canale', body: '2560 × 1440 px · Rapporto 16:9' },
113
- { title: 'X (Twitter) — Post Standard', body: '1200 × 675 px · Rapporto 16:9' },
114
- { title: 'LinkedIn — Copertina Profilo', body: '1584 × 396 px · Rapporto 4:1' },
108
+ { title: 'Instagram: Post Quadrato', body: '1080 × 1080 px · Rapporto 1:1' },
109
+ { title: 'Instagram: Post Verticale', body: '1080 × 1350 px · Rapporto 4:5' },
110
+ { title: 'TikTok / Reels: Verticale', body: '1080 × 1920 px · Rapporto 9:16' },
111
+ { title: 'YouTube: Thumbnail', body: '1280 × 720 px · Rapporto 16:9' },
112
+ { title: 'YouTube: Banner Canale', body: '2560 × 1440 px · Rapporto 16:9' },
113
+ { title: 'X (Twitter): Post Standard', body: '1200 × 675 px · Rapporto 16:9' },
114
+ { title: 'LinkedIn: Copertina Profilo', body: '1584 × 396 px · Rapporto 4:1' },
115
115
  ],
116
116
  },
117
117
  {
@@ -123,7 +123,7 @@ export const content: ToolLocaleContent<SocialImageResizerUI> = {
123
123
  },
124
124
  {
125
125
  title: 'Contenuti Short Form',
126
- body: 'Per TikTok e Reels, lo standard è 9:16. Questo formato immersivo richiede che il punto focale sia perfettamente allineato per evitare di essere coperto dalla UI dell’app.',
126
+ body: 'Per TikTok e Reels, lo standard è 9:16. Questo formato immersivo richiede che il punto focale sia perfettamente allineato per evitare di essere coperto dalla UI dell\'app.',
127
127
  },
128
128
  {
129
129
  title: 'Engagement Visivo',
@@ -137,12 +137,12 @@ export const content: ToolLocaleContent<SocialImageResizerUI> = {
137
137
  },
138
138
  {
139
139
  type: 'title',
140
- text: 'Perché il Rapporto d’Aspetto è Importante',
140
+ text: 'Perché il Rapporto d\'Aspetto è Importante',
141
141
  level: 3,
142
142
  },
143
143
  {
144
144
  type: 'paragraph',
145
- html: 'Il rapporto d’aspetto è la relazione proporzionale tra la larghezza e l’altezza di un’immagine. Ignorarlo costringe le piattaforme a zoomare o aggiungere barre nere, il che penalizza l’estetica e la portata organica.',
145
+ html: 'Il rapporto d\'aspetto è la relazione proporzionale tra la larghezza e l\'altezza di un\'immagine. Ignorarlo costringe le piattaforme a zoomare o aggiungere barre nere, il che penalizza l\'estetica e la portata organica.',
146
146
  },
147
147
  {
148
148
  type: 'list',
@@ -167,8 +167,8 @@ export const content: ToolLocaleContent<SocialImageResizerUI> = {
167
167
  type: 'list',
168
168
  items: [
169
169
  'Seleziona il tuo formato: scegli la piattaforma e il tipo di pubblicazione dal menu laterale.',
170
- 'Carica l’immagine: trascina il file o usa il selettore per importare la tua foto.',
171
- 'Regola l’inquadratura: trascina la foto nell’area visibile e usa lo zoom per la precisione.',
170
+ 'Carica l\'immagine: trascina il file o usa il selettore per importare la tua foto.',
171
+ 'Regola l\'inquadratura: trascina la foto nell\'area visibile e usa lo zoom per la precisione.',
172
172
  'Esportazione istantanea: clicca su scarica per avere la tua immagine pronta da pubblicare.',
173
173
  ],
174
174
  },
@@ -105,13 +105,13 @@ export const content: ToolLocaleContent<SocialImageResizerUI> = {
105
105
  {
106
106
  type: 'grid',
107
107
  columns: [
108
- { title: 'Instagram — 正方形投稿', body: '1080 × 1080 px · 比率 1:1' },
109
- { title: 'Instagram — 縦長投稿', body: '1080 × 1350 px · 比率 4:5' },
110
- { title: 'TikTok / リール — 縦長', body: '1080 × 1920 px · 比率 9:16' },
111
- { title: 'YouTube — サムネイル', body: '1280 × 720 px · 比率 16:9' },
112
- { title: 'YouTube — チャンネルバナー', body: '2560 × 1440 px · 比率 16:9' },
113
- { title: 'X (Twitter) — 標準投稿', body: '1200 × 675 px · 比率 16:9' },
114
- { title: 'LinkedIn — プロフィールカバー', body: '1584 × 396 px · 比率 4:1' },
108
+ { title: 'Instagram: 正方形投稿', body: '1080 × 1080 px · 比率 1:1' },
109
+ { title: 'Instagram: 縦長投稿', body: '1080 × 1350 px · 比率 4:5' },
110
+ { title: 'TikTok / リール: 縦長', body: '1080 × 1920 px · 比率 9:16' },
111
+ { title: 'YouTube: サムネイル', body: '1280 × 720 px · 比率 16:9' },
112
+ { title: 'YouTube: チャンネルバナー', body: '2560 × 1440 px · 比率 16:9' },
113
+ { title: 'X (Twitter): 標準投稿', body: '1200 × 675 px · 比率 16:9' },
114
+ { title: 'LinkedIn: プロフィールカバー', body: '1584 × 396 px · 比率 4:1' },
115
115
  ],
116
116
  },
117
117
  {
@@ -105,13 +105,13 @@ export const content: ToolLocaleContent<SocialImageResizerUI> = {
105
105
  {
106
106
  type: 'grid',
107
107
  columns: [
108
- { title: '인스타그램 — 정사각형 게시물', body: '1080 × 1080 px · 비율 1:1' },
109
- { title: '인스타그램 — 세로형 게시물', body: '1080 × 1350 px · 비율 4:5' },
110
- { title: '틱톡 / 릴스 — 세로형', body: '1080 × 1920 px · 비율 9:16' },
111
- { title: '유튜브 — 썸네일', body: '1280 × 720 px · 비율 16:9' },
112
- { title: '유튜브 — 채널 배너', body: '2560 × 1440 px · 비율 16:9' },
113
- { title: 'X (트위터) — 표준 게시물', body: '1200 × 675 px · 비율 16:9' },
114
- { title: '링크드인 — 프로필 커버', body: '1584 × 396 px · 비율 4:1' },
108
+ { title: '인스타그램: 정사각형 게시물', body: '1080 × 1080 px · 비율 1:1' },
109
+ { title: '인스타그램: 세로형 게시물', body: '1080 × 1350 px · 비율 4:5' },
110
+ { title: '틱톡 / 릴스: 세로형', body: '1080 × 1920 px · 비율 9:16' },
111
+ { title: '유튜브: 썸네일', body: '1280 × 720 px · 비율 16:9' },
112
+ { title: '유튜브: 채널 배너', body: '2560 × 1440 px · 비율 16:9' },
113
+ { title: 'X (트위터): 표준 게시물', body: '1200 × 675 px · 비율 16:9' },
114
+ { title: '링크드인: 프로필 커버', body: '1584 × 396 px · 비율 4:1' },
115
115
  ],
116
116
  },
117
117
  {
@@ -91,7 +91,7 @@ export const content: ToolLocaleContent<SocialImageResizerUI> = {
91
91
  },
92
92
  {
93
93
  type: 'paragraph',
94
- 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.',
94
+ 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.',
95
95
  },
96
96
  {
97
97
  type: 'paragraph',
@@ -105,13 +105,13 @@ export const content: ToolLocaleContent<SocialImageResizerUI> = {
105
105
  {
106
106
  type: 'grid',
107
107
  columns: [
108
- { title: 'Instagram — Vierkante Post', body: '1080 × 1080 px · Ratio 1:1' },
109
- { title: 'Instagram — Verticale Post', body: '1080 × 1350 px · Ratio 4:5' },
110
- { title: 'TikTok / Reels — Verticaal', body: '1080 × 1920 px · Ratio 9:16' },
111
- { title: 'YouTube — Thumbnail', body: '1280 × 720 px · Ratio 16:9' },
112
- { title: 'YouTube — Kanaalbanner', body: '2560 × 1440 px · Ratio 16:9' },
113
- { title: 'X (Twitter) — Standaard Post', body: '1200 × 675 px · Ratio 16:9' },
114
- { title: 'LinkedIn — Profielomslag', body: '1584 × 396 px · Ratio 4:1' },
108
+ { title: 'Instagram: Vierkante Post', body: '1080 × 1080 px · Ratio 1:1' },
109
+ { title: 'Instagram: Verticale Post', body: '1080 × 1350 px · Ratio 4:5' },
110
+ { title: 'TikTok / Reels: Verticaal', body: '1080 × 1920 px · Ratio 9:16' },
111
+ { title: 'YouTube: Thumbnail', body: '1280 × 720 px · Ratio 16:9' },
112
+ { title: 'YouTube: Kanaalbanner', body: '2560 × 1440 px · Ratio 16:9' },
113
+ { title: 'X (Twitter): Standaard Post', body: '1200 × 675 px · Ratio 16:9' },
114
+ { title: 'LinkedIn: Profielomslag', body: '1584 × 396 px · Ratio 4:1' },
115
115
  ],
116
116
  },
117
117
  {
@@ -91,7 +91,7 @@ export const content: ToolLocaleContent<SocialImageResizerUI> = {
91
91
  },
92
92
  {
93
93
  type: 'paragraph',
94
- html: 'W dzisiejszym cyfrowym ekosystemie pierwsze wrażenie budowane jest wizualnie. Każdy serwis społecznościowy działa w oparciu o specyficzne algorytmy, które faworyzują treści natywnie dopasowane do ich proporcji. Nasz resizer to nie tylko techniczne narzędzie — to Twój sojusznik, dzięki któremu Twój przekaz dotrze do odbiorców bez niechcianych ucięć czy straty jakości.',
94
+ html: 'W dzisiejszym cyfrowym ekosystemie pierwsze wrażenie budowane jest wizualnie. Każdy serwis społecznościowy działa w oparciu o specyficzne algorytmy, które faworyzują treści natywnie dopasowane do ich proporcji. Nasz resizer to nie tylko techniczne narzędzie - to Twój sojusznik, dzięki któremu Twój przekaz dotrze do odbiorców bez niechcianych ucięć czy straty jakości.',
95
95
  },
96
96
  {
97
97
  type: 'paragraph',
@@ -105,13 +105,13 @@ export const content: ToolLocaleContent<SocialImageResizerUI> = {
105
105
  {
106
106
  type: 'grid',
107
107
  columns: [
108
- { title: 'Instagram — Post Kwadratowy', body: '1080 × 1080 px · Proporcja 1:1' },
109
- { title: 'Instagram — Post Pionowy', body: '1080 × 1350 px · Proporcja 4:5' },
110
- { title: 'TikTok / Reels — Pion', body: '1080 × 1920 px · Proporcja 9:16' },
111
- { title: 'YouTube — Miniaturka', body: '1280 × 720 px · Proporcja 16:9' },
112
- { title: 'YouTube — Baner Kanału', body: '2560 × 1440 px · Proporcja 16:9' },
113
- { title: 'X (Twitter) — Standardowy Post', body: '1200 × 675 px · Proporcja 16:9' },
114
- { title: 'LinkedIn — Tło Profilu', body: '1584 × 396 px · Proporcja 4:1' },
108
+ { title: 'Instagram: Post Kwadratowy', body: '1080 × 1080 px · Proporcja 1:1' },
109
+ { title: 'Instagram: Post Pionowy', body: '1080 × 1350 px · Proporcja 4:5' },
110
+ { title: 'TikTok / Reels: Pion', body: '1080 × 1920 px · Proporcja 9:16' },
111
+ { title: 'YouTube: Miniaturka', body: '1280 × 720 px · Proporcja 16:9' },
112
+ { title: 'YouTube: Baner Kanału', body: '2560 × 1440 px · Proporcja 16:9' },
113
+ { title: 'X (Twitter): Standardowy Post', body: '1200 × 675 px · Proporcja 16:9' },
114
+ { title: 'LinkedIn: Tło Profilu', body: '1584 × 396 px · Proporcja 4:1' },
115
115
  ],
116
116
  },
117
117
  {
@@ -127,7 +127,7 @@ export const content: ToolLocaleContent<SocialImageResizerUI> = {
127
127
  },
128
128
  {
129
129
  title: 'Wizualne Zaangażowanie',
130
- body: 'Od miniaturek po banery — każdy element graficzny ma wpływ na klikalność (CTR). Precyzyjne kadrowanie gwarantuje, że teksty i kluczowe elementy będą zawsze czytelne.',
130
+ body: 'Od miniaturek po banery - każdy element graficzny ma wpływ na klikalność (CTR). Precyzyjne kadrowanie gwarantuje, że teksty i kluczowe elementy będą zawsze czytelne.',
131
131
  },
132
132
  {
133
133
  title: 'Profesjonalny Branding',
@@ -91,7 +91,7 @@ export const content: ToolLocaleContent<SocialImageResizerUI> = {
91
91
  },
92
92
  {
93
93
  type: 'paragraph',
94
- html: 'No ecossistema digital de hoje, a primeira impressão é visual. Cada rede social funciona sob algoritmos específicos que privilegiam conteúdos nativamente adaptados às suas proporções. O nosso redimensionador não é apenas uma ferramenta técnica — é o teu aliado para garantir que a tua mensagem chega sem cortes indesejados ou perda de qualidade.',
94
+ html: 'No ecossistema digital de hoje, a primeira impressão é visual. Cada rede social funciona sob algoritmos específicos que privilegiam conteúdos nativamente adaptados às suas proporções. O nosso redimensionador não é apenas uma ferramenta técnica - é o teu aliado para garantir que a tua mensagem chega sem cortes indesejados ou perda de qualidade.',
95
95
  },
96
96
  {
97
97
  type: 'paragraph',
@@ -105,13 +105,13 @@ export const content: ToolLocaleContent<SocialImageResizerUI> = {
105
105
  {
106
106
  type: 'grid',
107
107
  columns: [
108
- { title: 'Instagram — Post Quadrado', body: '1080 × 1080 px · Proporção 1:1' },
109
- { title: 'Instagram — Post Vertical', body: '1080 × 1350 px · Proporção 4:5' },
110
- { title: 'TikTok / Reels — Vertical', body: '1080 × 1920 px · Proporção 9:16' },
111
- { title: 'YouTube — Miniatura', body: '1280 × 720 px · Proporção 16:9' },
112
- { title: 'YouTube — Banner de Canal', body: '2560 × 1440 px · Proporção 16:9' },
113
- { title: 'X (Twitter) — Post Padrão', body: '1200 × 675 px · Proporção 16:9' },
114
- { title: 'LinkedIn — Capa de Perfil', body: '1584 × 396 px · Proporção 4:1' },
108
+ { title: 'Instagram: Post Quadrado', body: '1080 × 1080 px · Proporção 1:1' },
109
+ { title: 'Instagram: Post Vertical', body: '1080 × 1350 px · Proporção 4:5' },
110
+ { title: 'TikTok / Reels: Vertical', body: '1080 × 1920 px · Proporção 9:16' },
111
+ { title: 'YouTube: Miniatura', body: '1280 × 720 px · Proporção 16:9' },
112
+ { title: 'YouTube: Banner de Canal', body: '2560 × 1440 px · Proporção 16:9' },
113
+ { title: 'X (Twitter): Post Padrão', body: '1200 × 675 px · Proporção 16:9' },
114
+ { title: 'LinkedIn: Capa de Perfil', body: '1584 × 396 px · Proporção 4:1' },
115
115
  ],
116
116
  },
117
117
  {
@@ -37,7 +37,7 @@ const howToData = [
37
37
  },
38
38
  {
39
39
  name: 'Настройте и скачайте',
40
- text: 'Отредактируйте положение фото перетаскиванием и используйте зум для идеальной обрезки. По завершении нажмите «Скачать».',
40
+ text: 'Отредактируйте положение фото перетаскиванием и используйте зум для идеальной обрезки. По завершении нажмите \"Скачать\".',
41
41
  },
42
42
  ];
43
43
 
@@ -91,11 +91,11 @@ export const content: ToolLocaleContent<SocialImageResizerUI> = {
91
91
  },
92
92
  {
93
93
  type: 'paragraph',
94
- html: 'В современной цифровой экосистеме первое впечатление строится на визуале. Каждая социальная сеть работает на основе специфических алгоритмов, которые отдают приоритет контенту, нативно адаптированному под его пропорции. Наш инструмент — это не просто техническое средство, а ваш союзник в том, чтобы сообщение дошло до аудитории без нежелательных обрезок и потери качества.',
94
+ html: 'В современной цифровой экосистеме первое впечатление строится на визуале. Каждая социальная сеть работает на основе специфических алгоритмов, которые отдают приоритет контенту, нативно адаптированному под его пропорции. Наш инструмент - это не просто техническое средство, а ваш союзник в том, чтобы сообщение дошло до аудитории без нежелательных обрезок и потери качества.',
95
95
  },
96
96
  {
97
97
  type: 'paragraph',
98
- html: 'Нужно ли вам превратить пейзажное фото в эффектный вертикальный формат для Instagram Stories или адаптировать дизайн под сложный баннер YouTube — наше приложение использует систему умной обрезки, позволяющую точно позиционировать и масштабировать изображение прямо в браузере.',
98
+ html: 'Нужно ли вам превратить пейзажное фото в эффектный вертикальный формат для Instagram Stories или адаптировать дизайн под сложный баннер YouTube - наше приложение использует систему умной обрезки, позволяющую точно позиционировать и масштабировать изображение прямо в браузере.',
99
99
  },
100
100
  {
101
101
  type: 'title',
@@ -105,13 +105,13 @@ export const content: ToolLocaleContent<SocialImageResizerUI> = {
105
105
  {
106
106
  type: 'grid',
107
107
  columns: [
108
- { title: 'Instagram — квадратный пост', body: '1080 × 1080 px · Соотношение 1:1' },
109
- { title: 'Instagram — вертикальный пост', body: '1080 × 1350 px · Соотношение 4:5' },
110
- { title: 'TikTok / Reels — вертикаль', body: '1080 × 1920 px · Соотношение 9:16' },
111
- { title: 'YouTube — миниатюра', body: '1280 × 720 px · Соотношение 16:9' },
112
- { title: 'YouTube — баннер канала', body: '2560 × 1440 px · Соотношение 16:9' },
113
- { title: 'X (Twitter) — стандартный пост', body: '1200 × 675 px · Соотношение 16:9' },
114
- { title: 'LinkedIn — обложка профиля', body: '1584 × 396 px · Соотношение 4:1' },
108
+ { title: 'Instagram: квадратный пост', body: '1080 × 1080 px · Соотношение 1:1' },
109
+ { title: 'Instagram: вертикальный пост', body: '1080 × 1350 px · Соотношение 4:5' },
110
+ { title: 'TikTok / Reels: вертикаль', body: '1080 × 1920 px · Соотношение 9:16' },
111
+ { title: 'YouTube: миниатюра', body: '1280 × 720 px · Соотношение 16:9' },
112
+ { title: 'YouTube: баннер канала', body: '2560 × 1440 px · Соотношение 16:9' },
113
+ { title: 'X (Twitter): стандартный пост', body: '1200 × 675 px · Соотношение 16:9' },
114
+ { title: 'LinkedIn: обложка профиля', body: '1584 × 396 px · Соотношение 4:1' },
115
115
  ],
116
116
  },
117
117
  {
@@ -127,11 +127,11 @@ export const content: ToolLocaleContent<SocialImageResizerUI> = {
127
127
  },
128
128
  {
129
129
  title: 'Визуальный отклик',
130
- body: 'От миниатюр до баннеров — каждый графический элемент влияет на CTR. Точная обрезка гарантирует, что тексты и ключевые детали всегда будут читаемы.',
130
+ body: 'От миниатюр до баннеров - каждый графический элемент влияет на CTR. Точная обрезка гарантирует, что тексты и ключевые детали всегда будут читаемы.',
131
131
  },
132
132
  {
133
133
  title: 'Профессиональный брендинг',
134
- body: 'В деловых сетях вроде LinkedIn четкость — это авторитет. Обложки требуют специфических пропорций, чтобы не выглядеть размытыми на экранах с высокой плотностью пикселей.',
134
+ body: 'В деловых сетях вроде LinkedIn четкость - это авторитет. Обложки требуют специфических пропорций, чтобы не выглядеть размытыми на экранах с высокой плотностью пикселей.',
135
135
  },
136
136
  ],
137
137
  },
@@ -142,7 +142,7 @@ export const content: ToolLocaleContent<SocialImageResizerUI> = {
142
142
  },
143
143
  {
144
144
  type: 'paragraph',
145
- html: 'Соотношение сторон — это пропорциональная связь между шириной и высотой изображения. Игнорирование этого заставляет платформы применять зум или добавлять черные полосы, что портит эстетику и снижает охваты.',
145
+ html: 'Соотношение сторон - это пропорциональная связь между шириной и высотой изображения. Игнорирование этого заставляет платформы применять зум или добавлять черные полосы, что портит эстетику и снижает охваты.',
146
146
  },
147
147
  {
148
148
  type: 'list',
@@ -188,7 +188,7 @@ export const content: ToolLocaleContent<SocialImageResizerUI> = {
188
188
  },
189
189
  {
190
190
  type: 'paragraph',
191
- html: 'Профессиональная адаптация визуального контента — это прямая стратегия роста. Наше решение упрощает работу креаторам и менеджерам сообществ, делая каждый пост идеальным.',
191
+ html: 'Профессиональная адаптация визуального контента - это прямая стратегия роста. Наше решение упрощает работу креаторам и менеджерам сообществ, делая каждый пост идеальным.',
192
192
  },
193
193
  ],
194
194
  ui: {
@@ -91,7 +91,7 @@ export const content: ToolLocaleContent<SocialImageResizerUI> = {
91
91
  },
92
92
  {
93
93
  type: 'paragraph',
94
- html: 'I dagens digitala ekosystem är det första intrycket visuellt. Varje socialt nätverk arbetar under specifika algoritmer som prioriterar innehåll som är inbyggt anpassat till dess proportioner. Vår bildstorleksändrare för sociala medier är inte bara ett tekniskt verktyg – det är din partner för att säkerställa att ditt budskap når fram utan oönskad beskärning eller kvalitetsförlust.',
94
+ html: 'I dagens digitala ekosystem är det första intrycket visuellt. Varje socialt nätverk arbetar under specifika algoritmer som prioriterar innehåll som är inbyggt anpassat till dess proportioner. Vår bildstorleksändrare för sociala medier är inte bara ett tekniskt verktyg - det är din partner för att säkerställa att ditt budskap når fram utan oönskad beskärning eller kvalitetsförlust.',
95
95
  },
96
96
  {
97
97
  type: 'paragraph',
@@ -105,13 +105,13 @@ export const content: ToolLocaleContent<SocialImageResizerUI> = {
105
105
  {
106
106
  type: 'grid',
107
107
  columns: [
108
- { title: 'Instagram — Kvadratiskt inlägg', body: '1080 × 1080 px · Ratio 1:1' },
109
- { title: 'Instagram — Vertikalt inlägg', body: '1080 × 1350 px · Ratio 4:5' },
110
- { title: 'TikTok / Reels — Vertikalt', body: '1080 × 1920 px · Ratio 9:16' },
111
- { title: 'YouTube — Miniatyrbild', body: '1280 × 720 px · Ratio 16:9' },
112
- { title: 'YouTube — Kanalbanner', body: '2560 × 1440 px · Ratio 16:9' },
113
- { title: 'X (Twitter) — Standardinlägg', body: '1200 × 675 px · Ratio 16:9' },
114
- { title: 'LinkedIn — Profilomslag', body: '1584 × 396 px · Ratio 4:1' },
108
+ { title: 'Instagram: Kvadratiskt inlägg', body: '1080 × 1080 px · Ratio 1:1' },
109
+ { title: 'Instagram: Vertikalt inlägg', body: '1080 × 1350 px · Ratio 4:5' },
110
+ { title: 'TikTok / Reels: Vertikalt', body: '1080 × 1920 px · Ratio 9:16' },
111
+ { title: 'YouTube: Miniatyrbild', body: '1280 × 720 px · Ratio 16:9' },
112
+ { title: 'YouTube: Kanalbanner', body: '2560 × 1440 px · Ratio 16:9' },
113
+ { title: 'X (Twitter): Standardinlägg', body: '1200 × 675 px · Ratio 16:9' },
114
+ { title: 'LinkedIn: Profilomslag', body: '1584 × 396 px · Ratio 4:1' },
115
115
  ],
116
116
  },
117
117
  {
@@ -105,13 +105,13 @@ export const content: ToolLocaleContent<SocialImageResizerUI> = {
105
105
  {
106
106
  type: 'grid',
107
107
  columns: [
108
- { title: 'Instagram — Kare Gönderi', body: '1080 × 1080 px · Oran 1:1' },
109
- { title: 'Instagram — Dikey Gönderi', body: '1080 × 1350 px · Oran 4:5' },
110
- { title: 'TikTok / Reels — Dikey', body: '1080 × 1920 px · Oran 9:16' },
111
- { title: 'YouTube — Küçük Resim', body: '1280 × 720 px · Oran 16:9' },
112
- { title: 'YouTube — Kanal Banner\'ı', body: '2560 × 1440 px · Oran 16:9' },
113
- { title: 'X (Twitter) — Standart Gönderi', body: '1200 × 675 px · Oran 16:9' },
114
- { title: 'LinkedIn — Profil Kapağı', body: '1584 × 396 px · Oran 4:1' },
108
+ { title: 'Instagram: Kare Gönderi', body: '1080 × 1080 px · Oran 1:1' },
109
+ { title: 'Instagram: Dikey Gönderi', body: '1080 × 1350 px · Oran 4:5' },
110
+ { title: 'TikTok / Reels: Dikey', body: '1080 × 1920 px · Oran 9:16' },
111
+ { title: 'YouTube: Küçük Resim', body: '1280 × 720 px · Oran 16:9' },
112
+ { title: 'YouTube: Kanal Banner\'ı', body: '2560 × 1440 px · Oran 16:9' },
113
+ { title: 'X (Twitter): Standart Gönderi', body: '1200 × 675 px · Oran 16:9' },
114
+ { title: 'LinkedIn: Profil Kapağı', body: '1584 × 396 px · Oran 4:1' },
115
115
  ],
116
116
  },
117
117
  {
@@ -105,13 +105,13 @@ export const content: ToolLocaleContent<SocialImageResizerUI> = {
105
105
  {
106
106
  type: 'grid',
107
107
  columns: [
108
- { title: 'Instagram — 正方形帖子', body: '1080 × 1080 px · 比例 1:1' },
109
- { title: 'Instagram — 垂直帖子', body: '1080 × 1350 px · 比例 4:5' },
110
- { title: 'TikTok / Reels — 垂直', body: '1080 × 1920 px · 比例 9:16' },
111
- { title: 'YouTube — 缩略图', body: '1280 × 720 px · 比例 16:9' },
112
- { title: 'YouTube — 频道横幅', body: '2560 × 1440 px · 比例 16:9' },
113
- { title: 'X (Twitter) — 标准帖子', body: '1200 × 675 px · 比例 16:9' },
114
- { title: 'LinkedIn — 个人资料封面', body: '1584 × 396 px · 比例 4:1' },
108
+ { title: 'Instagram: 正方形帖子', body: '1080 × 1080 px · 比例 1:1' },
109
+ { title: 'Instagram: 垂直帖子', body: '1080 × 1350 px · 比例 4:5' },
110
+ { title: 'TikTok / Reels: 垂直', body: '1080 × 1920 px · 比例 9:16' },
111
+ { title: 'YouTube: 缩略图', body: '1280 × 720 px · 比例 16:9' },
112
+ { title: 'YouTube: 频道横幅', body: '2560 × 1440 px · 比例 16:9' },
113
+ { title: 'X (Twitter): 标准帖子', body: '1200 × 675 px · 比例 16:9' },
114
+ { title: 'LinkedIn: 个人资料封面', body: '1584 × 396 px · 比例 4:1' },
115
115
  ],
116
116
  },
117
117
  {
@@ -248,8 +248,7 @@ const ICON_INFO = `<svg viewBox="0 0 24 24" fill="currentColor" width="16" heigh
248
248
  els.emptyState.classList.add('svc-hidden');
249
249
  els.results.classList.remove('svc-hidden');
250
250
  els.results.classList.remove('svc-fadein');
251
- void els.results.offsetWidth;
252
- els.results.classList.add('svc-fadein');
251
+ requestAnimationFrame(() => els.results.classList.add('svc-fadein'));
253
252
  }
254
253
 
255
254
  function calculate() {
@@ -22,7 +22,7 @@ const faqData = [
22
22
  {
23
23
  question: 'Was ist eine gute Engagement-Rate, um mehr verlangen zu können?',
24
24
  answer:
25
- 'Im Allgemeinen gilt ein Engagement von über 3 % als gesund. Konten mit mehr als 10 % Engagement gelten als „Premium-Profile“ und können einen deutlichen Aufschlag verlangen.',
25
+ 'Im Allgemeinen gilt ein Engagement von über 3 % als gesund. Konten mit mehr als 10 % Engagement gelten als \"Premium-Profile\" und können einen deutlichen Aufschlag verlangen.',
26
26
  },
27
27
  {
28
28
  question: 'Beeinflusst die Nische den Preis wirklich so stark?',
@@ -131,7 +131,7 @@ export const content: ToolLocaleContent<SocialValueCalculatorUI> = {
131
131
  },
132
132
  {
133
133
  type: 'card',
134
- title: '15€–50€',
134
+ title: '15€ bis 50€',
135
135
  html: '<p>Durchschnittlicher CPM in wertvollen Nischen</p>',
136
136
  },
137
137
  ],
@@ -131,7 +131,7 @@ export const content: ToolLocaleContent<SocialValueCalculatorUI> = {
131
131
  },
132
132
  {
133
133
  type: 'card',
134
- title: '$15–$50',
134
+ title: '$15 to $50',
135
135
  html: '<p>Average CPM in high-value niches (stable)</p>',
136
136
  },
137
137
  ],
@@ -4,7 +4,7 @@ import type { ToolLocaleContent } from '../../../types';
4
4
  import type { SocialValueCalculatorUI } from '../ui';
5
5
 
6
6
  const slug = 'calculadora-valor-cuenta-redes-sociales';
7
- const title = 'Calculadora de Valor de Cuenta TikTok & Instagram : Precios';
7
+ const title = 'Calculadora de Valor de Cuenta TikTok & Instagram: Precios';
8
8
  const description =
9
9
  'Descubre cuánto cobrar por tus publicaciones patrocinadas. Nuestra calculadora analiza seguidores, engagement y nicho para darte un valor de mercado justo.';
10
10
 
@@ -131,7 +131,7 @@ export const content: ToolLocaleContent<SocialValueCalculatorUI> = {
131
131
  },
132
132
  {
133
133
  type: 'card',
134
- title: '15 €–50 €',
134
+ title: '15 € a 50 €',
135
135
  html: '<p>CPM promedio en nichos de alto valor (estable)</p>',
136
136
  },
137
137
  ],
@@ -4,7 +4,7 @@ import type { ToolLocaleContent } from '../../../types';
4
4
  import type { SocialValueCalculatorUI } from '../ui';
5
5
 
6
6
  const slug = 'calculateur-valeur-compte-reseaux-sociaux';
7
- const title = 'Calculateur de Valeur de Compte TikTok & Instagram : Tarifs';
7
+ const title = 'Calculateur de Valeur de Compte TikTok & Instagram: Tarifs';
8
8
  const description =
9
9
  "Découvrez combien facturer pour vos publications sponsorisées. Notre calculateur analyse les abonnés, l'engagement et le créneau pour vous donner une valeur de marché juste.";
10
10
 
@@ -100,12 +100,12 @@ export const content: ToolLocaleContent<SocialValueCalculatorUI> = {
100
100
  },
101
101
  {
102
102
  type: 'title',
103
- text: 'Calculateur de Valeur de Compte : Combien facturer une promotion sur TikTok ou Instagram ?',
103
+ text: 'Calculateur de Valeur de Compte: Combien facturer une promotion sur TikTok ou Instagram ?',
104
104
  level: 2,
105
105
  },
106
106
  {
107
107
  type: 'paragraph',
108
- html: 'Si vous êtes créateur de contenu, influenceur ou simplement une communauté active sur les réseaux sociaux, vous vous êtes probablement demandé à un moment : <strong>combien vaut vraiment mon compte ?</strong> ou <strong>combien devrais-je demander pour une collaboration avec une marque ?</strong>.',
108
+ html: 'Si vous êtes créateur de contenu, influenceur ou simplement une communauté active sur les réseaux sociaux, vous vous êtes probablement demandé à un moment: <strong>combien vaut vraiment mon compte ?</strong> ou <strong>combien devrais-je demander pour une collaboration avec une marque ?</strong>.',
109
109
  },
110
110
  {
111
111
  type: 'title',
@@ -131,7 +131,7 @@ export const content: ToolLocaleContent<SocialValueCalculatorUI> = {
131
131
  },
132
132
  {
133
133
  type: 'card',
134
- title: '15 €–50 €',
134
+ title: '15 € à 50 €',
135
135
  html: '<p>CPM moyen dans les créneaux de haute valeur (stable)</p>',
136
136
  },
137
137
  ],
@@ -193,7 +193,7 @@ export const content: ToolLocaleContent<SocialValueCalculatorUI> = {
193
193
  },
194
194
  {
195
195
  type: 'title',
196
- text: "TikTok vs Instagram : Où est l'argent ?",
196
+ text: "TikTok vs Instagram: Où est l'argent ?",
197
197
  level: 2,
198
198
  },
199
199
  {
@@ -227,7 +227,7 @@ export const content: ToolLocaleContent<SocialValueCalculatorUI> = {
227
227
  {
228
228
  type: 'tip',
229
229
  title: 'Modèle de négociation',
230
- html: "<p>Bonjour [Nom de la Marque], merci de m'avoir contacté. En me basant sur mes métriques actuelles de portée (moyenne de [X] vues) et mon taux d'engagement de [X]%, mon tarif pour une intégration dans un [Reel/TikTok] est de [Prix €]. Cela inclut : scénarisation et production vidéo, 1 lien en bio 24h, 2 Stories d'amplification, droits d'utilisation 30 jours.</p>",
230
+ html: "<p>Bonjour [Nom de la Marque], merci de m'avoir contacté. En me basant sur mes métriques actuelles de portée (moyenne de [X] vues) et mon taux d'engagement de [X]%, mon tarif pour une intégration dans un [Reel/TikTok] est de [Prix €]. Cela inclut: scénarisation et production vidéo, 1 lien en bio 24h, 2 Stories d'amplification, droits d'utilisation 30 jours.</p>",
231
231
  },
232
232
  {
233
233
  type: 'title',
@@ -131,7 +131,7 @@ export const content: ToolLocaleContent<SocialValueCalculatorUI> = {
131
131
  },
132
132
  {
133
133
  type: 'card',
134
- title: 'Rp15rb–Rp50rb',
134
+ title: 'Rp15rb hingga Rp50rb',
135
135
  html: '<p>Rata-rata CPM di ceruk bernilai tinggi (per 1.000 tayangan)</p>',
136
136
  },
137
137
  ],