@jjlmoya/utils-social 1.11.0 → 1.14.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 +1 -1
- package/src/pages/[locale]/[slug].astro +28 -12
- package/src/tests/locale_completeness.test.ts +4 -14
- 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 +3 -13
- 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 +3 -13
- package/src/tool/redditFormatter/i18n/pt.ts +3 -13
- package/src/tool/redditFormatter/i18n/ru.ts +3 -13
- 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 +3 -13
- package/src/tool/redditFormatter/reddit-text-formatter.css +1 -1
- 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/i18n/de.ts +3 -21
- package/src/tool/safeZones/i18n/en.ts +3 -21
- package/src/tool/safeZones/i18n/es.ts +3 -21
- package/src/tool/safeZones/i18n/fr.ts +3 -21
- package/src/tool/safeZones/i18n/id.ts +3 -21
- package/src/tool/safeZones/i18n/it.ts +3 -21
- 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 +3 -21
- package/src/tool/safeZones/i18n/pl.ts +3 -21
- package/src/tool/safeZones/i18n/pt.ts +3 -21
- package/src/tool/safeZones/i18n/ru.ts +3 -21
- package/src/tool/safeZones/i18n/sv.ts +3 -21
- package/src/tool/safeZones/i18n/tr.ts +3 -21
- package/src/tool/safeZones/i18n/zh.ts +3 -21
- 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/i18n/de.ts +3 -13
- package/src/tool/socialImageResizer/i18n/en.ts +3 -13
- package/src/tool/socialImageResizer/i18n/es.ts +3 -13
- package/src/tool/socialImageResizer/i18n/fr.ts +3 -13
- package/src/tool/socialImageResizer/i18n/id.ts +3 -13
- package/src/tool/socialImageResizer/i18n/it.ts +3 -13
- package/src/tool/socialImageResizer/i18n/ja.ts +3 -13
- package/src/tool/socialImageResizer/i18n/ko.ts +3 -13
- package/src/tool/socialImageResizer/i18n/nl.ts +3 -13
- package/src/tool/socialImageResizer/i18n/pl.ts +3 -13
- package/src/tool/socialImageResizer/i18n/pt.ts +3 -13
- package/src/tool/socialImageResizer/i18n/ru.ts +3 -13
- package/src/tool/socialImageResizer/i18n/sv.ts +3 -13
- package/src/tool/socialImageResizer/i18n/tr.ts +3 -13
- package/src/tool/socialImageResizer/i18n/zh.ts +3 -13
- package/src/tool/socialImageResizer/seo.astro +2 -1
- package/src/tool/socialImageResizer/social-media-image-resizer.css +1 -1
- package/src/tool/socialValueCalculator/bibliography.astro +2 -10
- package/src/tool/socialValueCalculator/bibliography.ts +16 -0
- package/src/tool/socialValueCalculator/i18n/de.ts +3 -17
- package/src/tool/socialValueCalculator/i18n/en.ts +3 -17
- package/src/tool/socialValueCalculator/i18n/es.ts +3 -17
- package/src/tool/socialValueCalculator/i18n/fr.ts +3 -17
- package/src/tool/socialValueCalculator/i18n/id.ts +3 -17
- package/src/tool/socialValueCalculator/i18n/it.ts +3 -17
- package/src/tool/socialValueCalculator/i18n/ja.ts +3 -17
- package/src/tool/socialValueCalculator/i18n/ko.ts +3 -17
- package/src/tool/socialValueCalculator/i18n/nl.ts +3 -17
- package/src/tool/socialValueCalculator/i18n/pl.ts +3 -17
- package/src/tool/socialValueCalculator/i18n/pt.ts +3 -17
- package/src/tool/socialValueCalculator/i18n/ru.ts +3 -17
- package/src/tool/socialValueCalculator/i18n/sv.ts +3 -17
- package/src/tool/socialValueCalculator/i18n/tr.ts +3 -17
- package/src/tool/socialValueCalculator/i18n/zh.ts +3 -17
- package/src/tool/socialValueCalculator/seo.astro +2 -1
- package/src/tool/socialValueCalculator/social-account-value-calculator.css +1 -1
- package/src/tool/tinderPhotoOptimizer/bibliography.astro +2 -10
- package/src/tool/tinderPhotoOptimizer/bibliography.ts +12 -0
- package/src/tool/tinderPhotoOptimizer/i18n/de.ts +3 -13
- package/src/tool/tinderPhotoOptimizer/i18n/en.ts +3 -13
- package/src/tool/tinderPhotoOptimizer/i18n/es.ts +3 -13
- package/src/tool/tinderPhotoOptimizer/i18n/fr.ts +3 -13
- 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 +3 -13
- 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 +3 -13
- package/src/tool/tinderPhotoOptimizer/seo.astro +2 -1
- package/src/tool/tinderPhotoOptimizer/tinder-photo-optimizer.css +7 -7
- package/src/tool/youtubeThumbnail/bibliography.astro +2 -10
- package/src/tool/youtubeThumbnail/bibliography.ts +16 -0
- package/src/tool/youtubeThumbnail/i18n/de.ts +3 -17
- package/src/tool/youtubeThumbnail/i18n/en.ts +3 -17
- package/src/tool/youtubeThumbnail/i18n/es.ts +3 -17
- package/src/tool/youtubeThumbnail/i18n/fr.ts +3 -17
- 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 +3 -17
- 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 +3 -17
- package/src/tool/youtubeThumbnail/seo.astro +2 -1
- package/src/tool/youtubeThumbnail/youtube-thumbnail-extractor.css +1 -1
- package/src/tool/youtubeThumbnailPreviewer/bibliography.astro +2 -10
- package/src/tool/youtubeThumbnailPreviewer/bibliography.ts +16 -0
- package/src/tool/youtubeThumbnailPreviewer/i18n/de.ts +3 -17
- package/src/tool/youtubeThumbnailPreviewer/i18n/en.ts +3 -17
- package/src/tool/youtubeThumbnailPreviewer/i18n/es.ts +3 -17
- package/src/tool/youtubeThumbnailPreviewer/i18n/fr.ts +3 -17
- package/src/tool/youtubeThumbnailPreviewer/i18n/id.ts +3 -17
- package/src/tool/youtubeThumbnailPreviewer/i18n/it.ts +3 -17
- 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 +3 -17
- package/src/tool/youtubeThumbnailPreviewer/i18n/pl.ts +3 -17
- package/src/tool/youtubeThumbnailPreviewer/i18n/pt.ts +3 -17
- package/src/tool/youtubeThumbnailPreviewer/i18n/ru.ts +3 -17
- package/src/tool/youtubeThumbnailPreviewer/i18n/sv.ts +3 -17
- package/src/tool/youtubeThumbnailPreviewer/i18n/tr.ts +3 -17
- package/src/tool/youtubeThumbnailPreviewer/i18n/zh.ts +3 -17
- package/src/tool/youtubeThumbnailPreviewer/seo.astro +2 -1
- package/src/tool/youtubeThumbnailPreviewer/youtube-thumbnail-previewer.css +523 -273
- package/src/types.ts +0 -2
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
3
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
4
|
import type { TinderPhotoOptimizerUI } from '../ui';
|
|
@@ -87,19 +88,8 @@ export const content: ToolLocaleContent<TinderPhotoOptimizerUI> = {
|
|
|
87
88
|
slug,
|
|
88
89
|
title,
|
|
89
90
|
description,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
bibliographyTitle: '参考文献',
|
|
93
|
-
bibliography: [
|
|
94
|
-
{
|
|
95
|
-
name: 'face-api.js: JavaScript Face Recognition in the Browser',
|
|
96
|
-
url: 'https://github.com/justadudewhohacks/face-api.js',
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
name: 'MDN Web Docs: Canvas API',
|
|
100
|
-
url: 'https://developer.mozilla.org/zh-CN/docs/Web/API/Canvas_API',
|
|
101
|
-
},
|
|
102
|
-
],
|
|
91
|
+
faq: faqData,
|
|
92
|
+
bibliography,
|
|
103
93
|
howTo: howToData,
|
|
104
94
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
105
95
|
seo: [
|
|
@@ -11,4 +11,5 @@ const { locale = 'es' } = Astro.props;
|
|
|
11
11
|
const content = await tinderPhotoOptimizer.i18n[locale]?.();
|
|
12
12
|
if (!content) return null;
|
|
13
13
|
---
|
|
14
|
-
|
|
14
|
+
|
|
15
|
+
{content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
--tfo-switch-off: #e2e8f0;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
.theme-dark .tfo-root {
|
|
23
23
|
--tfo-text: #f1f5f9;
|
|
24
24
|
--tfo-muted: #94a3b8;
|
|
25
25
|
--tfo-bg: #0f172a;
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
overflow: hidden;
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
|
|
56
|
+
.theme-dark .tfo-container {
|
|
57
57
|
border-color: rgba(255, 255, 255, 0.06);
|
|
58
58
|
}
|
|
59
59
|
|
|
@@ -333,7 +333,7 @@
|
|
|
333
333
|
color: var(--tfo-pink);
|
|
334
334
|
}
|
|
335
335
|
|
|
336
|
-
|
|
336
|
+
.theme-dark .tfo-action-btn:hover .tfo-btn-icon {
|
|
337
337
|
background: rgba(253, 41, 123, 0.15);
|
|
338
338
|
color: var(--tfo-pink);
|
|
339
339
|
}
|
|
@@ -344,7 +344,7 @@
|
|
|
344
344
|
color: var(--tfo-pink);
|
|
345
345
|
}
|
|
346
346
|
|
|
347
|
-
|
|
347
|
+
.theme-dark .tfo-action-btn.is-active {
|
|
348
348
|
background: rgba(253, 41, 123, 0.1);
|
|
349
349
|
}
|
|
350
350
|
|
|
@@ -398,7 +398,7 @@
|
|
|
398
398
|
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.02);
|
|
399
399
|
}
|
|
400
400
|
|
|
401
|
-
|
|
401
|
+
.theme-dark .tfo-analysis-col {
|
|
402
402
|
border-color: rgba(255, 255, 255, 0.06);
|
|
403
403
|
}
|
|
404
404
|
|
|
@@ -445,7 +445,7 @@
|
|
|
445
445
|
overflow-wrap: break-word;
|
|
446
446
|
}
|
|
447
447
|
|
|
448
|
-
|
|
448
|
+
.theme-dark .tfo-alert {
|
|
449
449
|
border-bottom-color: rgba(255, 255, 255, 0.04);
|
|
450
450
|
}
|
|
451
451
|
|
|
@@ -487,7 +487,7 @@
|
|
|
487
487
|
border-radius: 40px;
|
|
488
488
|
}
|
|
489
489
|
|
|
490
|
-
|
|
490
|
+
.theme-dark .tfo-ai-loader {
|
|
491
491
|
background: rgba(15, 23, 42, 0.85);
|
|
492
492
|
}
|
|
493
493
|
|
|
@@ -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 youtubeThumbnail.i18n[locale]?.();
|
|
3
|
+
import { bibliography } from './bibliography';
|
|
12
4
|
---
|
|
13
5
|
|
|
14
|
-
|
|
6
|
+
<SharedBibliography links={bibliography} />
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { BibliographyEntry } from '../../types';
|
|
2
|
+
|
|
3
|
+
export const bibliography: BibliographyEntry[] = [
|
|
4
|
+
{
|
|
5
|
+
name: 'YouTube Help: Add a custom video thumbnail',
|
|
6
|
+
url: 'https://support.google.com/youtube/answer/72431',
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
name: 'YouTube Creator Academy: Make great thumbnails',
|
|
10
|
+
url: 'https://creatoracademy.youtube.com/',
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
name: 'Google Developers: YouTube Data API — Thumbnails',
|
|
14
|
+
url: 'https://developers.google.com/youtube/v3/docs/thumbnails',
|
|
15
|
+
},
|
|
16
|
+
];
|
|
@@ -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 { YoutubeThumbnailUI } from '../ui';
|
|
@@ -87,23 +88,8 @@ export const content: ToolLocaleContent<YoutubeThumbnailUI> = {
|
|
|
87
88
|
slug,
|
|
88
89
|
title,
|
|
89
90
|
description,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
bibliographyTitle: 'Dokumentation & Referenzen',
|
|
93
|
-
bibliography: [
|
|
94
|
-
{
|
|
95
|
-
name: 'YouTube-Hilfe: Ein benutzerdefiniertes Video-Thumbnail hinzufügen',
|
|
96
|
-
url: 'https://support.google.com/youtube/answer/72431',
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
name: 'YouTube Creator Academy: Großartige Thumbnails erstellen',
|
|
100
|
-
url: 'https://creatoracademy.youtube.com/',
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
name: 'Google Developers: YouTube Data API — Thumbnails',
|
|
104
|
-
url: 'https://developers.google.com/youtube/v3/docs/thumbnails',
|
|
105
|
-
},
|
|
106
|
-
],
|
|
91
|
+
faq: faqData,
|
|
92
|
+
bibliography,
|
|
107
93
|
howTo: howToData,
|
|
108
94
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
109
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 { YoutubeThumbnailUI } from '../ui';
|
|
@@ -87,23 +88,8 @@ export const content: ToolLocaleContent<YoutubeThumbnailUI> = {
|
|
|
87
88
|
slug,
|
|
88
89
|
title,
|
|
89
90
|
description,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
bibliographyTitle: 'Documentation & References',
|
|
93
|
-
bibliography: [
|
|
94
|
-
{
|
|
95
|
-
name: 'YouTube Help: Add a custom video thumbnail',
|
|
96
|
-
url: 'https://support.google.com/youtube/answer/72431',
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
name: 'YouTube Creator Academy: Make great thumbnails',
|
|
100
|
-
url: 'https://creatoracademy.youtube.com/',
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
name: 'Google Developers: YouTube Data API — Thumbnails',
|
|
104
|
-
url: 'https://developers.google.com/youtube/v3/docs/thumbnails',
|
|
105
|
-
},
|
|
106
|
-
],
|
|
91
|
+
faq: faqData,
|
|
92
|
+
bibliography,
|
|
107
93
|
howTo: howToData,
|
|
108
94
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
109
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 { YoutubeThumbnailUI } from '../ui';
|
|
@@ -87,23 +88,8 @@ export const content: ToolLocaleContent<YoutubeThumbnailUI> = {
|
|
|
87
88
|
slug,
|
|
88
89
|
title,
|
|
89
90
|
description,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
bibliographyTitle: 'Documentación y Referencias',
|
|
93
|
-
bibliography: [
|
|
94
|
-
{
|
|
95
|
-
name: 'YouTube Help: Añadir una imagen en miniatura personalizada',
|
|
96
|
-
url: 'https://support.google.com/youtube/answer/72431',
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
name: 'YouTube Creator Academy: Cómo crear miniaturas efectivas',
|
|
100
|
-
url: 'https://creatoracademy.youtube.com/',
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
name: 'Google Developers: YouTube Data API — Thumbnails',
|
|
104
|
-
url: 'https://developers.google.com/youtube/v3/docs/thumbnails',
|
|
105
|
-
},
|
|
106
|
-
],
|
|
91
|
+
faq: faqData,
|
|
92
|
+
bibliography,
|
|
107
93
|
howTo: howToData,
|
|
108
94
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
109
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 { YoutubeThumbnailUI } from '../ui';
|
|
@@ -87,23 +88,8 @@ export const content: ToolLocaleContent<YoutubeThumbnailUI> = {
|
|
|
87
88
|
slug,
|
|
88
89
|
title,
|
|
89
90
|
description,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
bibliographyTitle: 'Documentation et Références',
|
|
93
|
-
bibliography: [
|
|
94
|
-
{
|
|
95
|
-
name: 'YouTube Aide : Ajouter une miniature personnalisée',
|
|
96
|
-
url: 'https://support.google.com/youtube/answer/72431',
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
name: 'YouTube Creator Academy : Créer de bonnes miniatures',
|
|
100
|
-
url: 'https://creatoracademy.youtube.com/',
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
name: 'Google Developers : YouTube Data API — Thumbnails',
|
|
104
|
-
url: 'https://developers.google.com/youtube/v3/docs/thumbnails',
|
|
105
|
-
},
|
|
106
|
-
],
|
|
91
|
+
faq: faqData,
|
|
92
|
+
bibliography,
|
|
107
93
|
howTo: howToData,
|
|
108
94
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
109
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 { YoutubeThumbnailUI } from '../ui';
|
|
@@ -87,23 +88,8 @@ export const content: ToolLocaleContent<YoutubeThumbnailUI> = {
|
|
|
87
88
|
slug,
|
|
88
89
|
title,
|
|
89
90
|
description,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
bibliographyTitle: 'Dokumentation dan Referensi',
|
|
93
|
-
bibliography: [
|
|
94
|
-
{
|
|
95
|
-
name: 'Bantuan YouTube: Menambahkan gambar thumbnail kustom',
|
|
96
|
-
url: 'https://support.google.com/youtube/answer/72431',
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
name: 'YouTube Creator Academy: Cara membuat thumbnail yang efektif',
|
|
100
|
-
url: 'https://creatoracademy.youtube.com/',
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
name: 'Google Developers: YouTube Data API — Thumbnails',
|
|
104
|
-
url: 'https://developers.google.com/youtube/v3/docs/thumbnails',
|
|
105
|
-
},
|
|
106
|
-
],
|
|
91
|
+
faq: faqData,
|
|
92
|
+
bibliography,
|
|
107
93
|
howTo: howToData,
|
|
108
94
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
109
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 { YoutubeThumbnailUI } from '../ui';
|
|
@@ -87,23 +88,8 @@ export const content: ToolLocaleContent<YoutubeThumbnailUI> = {
|
|
|
87
88
|
slug,
|
|
88
89
|
title,
|
|
89
90
|
description,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
bibliographyTitle: 'Documentazione e Riferimenti',
|
|
93
|
-
bibliography: [
|
|
94
|
-
{
|
|
95
|
-
name: 'Guida di YouTube: Aggiungere un\'immagine in miniatura personalizzata',
|
|
96
|
-
url: 'https://support.google.com/youtube/answer/72431',
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
name: 'YouTube Creator Academy: Come creare miniature efficaci',
|
|
100
|
-
url: 'https://creatoracademy.youtube.com/',
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
name: 'Google Developers: YouTube Data API — Thumbnails',
|
|
104
|
-
url: 'https://developers.google.com/youtube/v3/docs/thumbnails',
|
|
105
|
-
},
|
|
106
|
-
],
|
|
91
|
+
faq: faqData,
|
|
92
|
+
bibliography,
|
|
107
93
|
howTo: howToData,
|
|
108
94
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
109
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 { YoutubeThumbnailUI } from '../ui';
|
|
@@ -87,23 +88,8 @@ export const content: ToolLocaleContent<YoutubeThumbnailUI> = {
|
|
|
87
88
|
slug,
|
|
88
89
|
title,
|
|
89
90
|
description,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
bibliographyTitle: 'ドキュメントと参照先',
|
|
93
|
-
bibliography: [
|
|
94
|
-
{
|
|
95
|
-
name: 'YouTube ヘルプ: 動画のカスタム サムネイルを追加する',
|
|
96
|
-
url: 'https://support.google.com/youtube/answer/72431',
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
name: 'YouTube クリエイター アカデミー: 効果的なサムネイルの作成',
|
|
100
|
-
url: 'https://creatoracademy.youtube.com/',
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
name: 'Google Developers: YouTube Data API — Thumbnails',
|
|
104
|
-
url: 'https://developers.google.com/youtube/v3/docs/thumbnails',
|
|
105
|
-
},
|
|
106
|
-
],
|
|
91
|
+
faq: faqData,
|
|
92
|
+
bibliography,
|
|
107
93
|
howTo: howToData,
|
|
108
94
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
109
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 { YoutubeThumbnailUI } from '../ui';
|
|
@@ -87,23 +88,8 @@ export const content: ToolLocaleContent<YoutubeThumbnailUI> = {
|
|
|
87
88
|
slug,
|
|
88
89
|
title,
|
|
89
90
|
description,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
bibliographyTitle: '참고 자료 및 문서',
|
|
93
|
-
bibliography: [
|
|
94
|
-
{
|
|
95
|
-
name: 'YouTube 고객센터: 맞춤 동영상 썸네일 만들기',
|
|
96
|
-
url: 'https://support.google.com/youtube/answer/72431',
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
name: 'YouTube 크리에이터 아카데미: 효과적인 썸네일 제작법',
|
|
100
|
-
url: 'https://creatoracademy.youtube.com/',
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
name: 'Google Developers: YouTube Data API — Thumbnails',
|
|
104
|
-
url: 'https://developers.google.com/youtube/v3/docs/thumbnails',
|
|
105
|
-
},
|
|
106
|
-
],
|
|
91
|
+
faq: faqData,
|
|
92
|
+
bibliography,
|
|
107
93
|
howTo: howToData,
|
|
108
94
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
109
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 { YoutubeThumbnailUI } from '../ui';
|
|
@@ -87,23 +88,8 @@ export const content: ToolLocaleContent<YoutubeThumbnailUI> = {
|
|
|
87
88
|
slug,
|
|
88
89
|
title,
|
|
89
90
|
description,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
bibliographyTitle: 'Documentatie en Referenties',
|
|
93
|
-
bibliography: [
|
|
94
|
-
{
|
|
95
|
-
name: 'YouTube Help: Een aangepaste miniatuurafbeelding toevoegen',
|
|
96
|
-
url: 'https://support.google.com/youtube/answer/72431',
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
name: 'YouTube Creator Academy: Hoe maak je effectieve thumbnails',
|
|
100
|
-
url: 'https://creatoracademy.youtube.com/',
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
name: 'Google Developers: YouTube Data API — Thumbnails',
|
|
104
|
-
url: 'https://developers.google.com/youtube/v3/docs/thumbnails',
|
|
105
|
-
},
|
|
106
|
-
],
|
|
91
|
+
faq: faqData,
|
|
92
|
+
bibliography,
|
|
107
93
|
howTo: howToData,
|
|
108
94
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
109
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 { YoutubeThumbnailUI } from '../ui';
|
|
@@ -87,23 +88,8 @@ export const content: ToolLocaleContent<YoutubeThumbnailUI> = {
|
|
|
87
88
|
slug,
|
|
88
89
|
title,
|
|
89
90
|
description,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
bibliographyTitle: 'Dokumentacja i źródła',
|
|
93
|
-
bibliography: [
|
|
94
|
-
{
|
|
95
|
-
name: 'Pomoc YouTube: Dodawanie niestandardowej miniatury filmu',
|
|
96
|
-
url: 'https://support.google.com/youtube/answer/72431',
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
name: 'YouTube Creator Academy: Jak tworzyć skuteczne miniaturki',
|
|
100
|
-
url: 'https://creatoracademy.youtube.com/',
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
name: 'Google Developers: YouTube Data API — Thumbnails',
|
|
104
|
-
url: 'https://developers.google.com/youtube/v3/docs/thumbnails',
|
|
105
|
-
},
|
|
106
|
-
],
|
|
91
|
+
faq: faqData,
|
|
92
|
+
bibliography,
|
|
107
93
|
howTo: howToData,
|
|
108
94
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
109
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 { YoutubeThumbnailUI } from '../ui';
|
|
@@ -87,23 +88,8 @@ export const content: ToolLocaleContent<YoutubeThumbnailUI> = {
|
|
|
87
88
|
slug,
|
|
88
89
|
title,
|
|
89
90
|
description,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
bibliographyTitle: 'Documentação e Referências',
|
|
93
|
-
bibliography: [
|
|
94
|
-
{
|
|
95
|
-
name: 'Ajuda do YouTube: Adicionar uma imagem em miniatura personalizada',
|
|
96
|
-
url: 'https://support.google.com/youtube/answer/72431',
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
name: 'YouTube Creator Academy: Como criar miniaturas eficazes',
|
|
100
|
-
url: 'https://creatoracademy.youtube.com/',
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
name: 'Google Developers: YouTube Data API — Thumbnails',
|
|
104
|
-
url: 'https://developers.google.com/youtube/v3/docs/thumbnails',
|
|
105
|
-
},
|
|
106
|
-
],
|
|
91
|
+
faq: faqData,
|
|
92
|
+
bibliography,
|
|
107
93
|
howTo: howToData,
|
|
108
94
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
109
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 { YoutubeThumbnailUI } from '../ui';
|
|
@@ -87,23 +88,8 @@ export const content: ToolLocaleContent<YoutubeThumbnailUI> = {
|
|
|
87
88
|
slug,
|
|
88
89
|
title,
|
|
89
90
|
description,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
bibliographyTitle: 'Документация и источники',
|
|
93
|
-
bibliography: [
|
|
94
|
-
{
|
|
95
|
-
name: 'Справка YouTube: Как добавить персонализированный значок видео',
|
|
96
|
-
url: 'https://support.google.com/youtube/answer/72431',
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
name: 'YouTube Creator Academy: Как создавать эффектные значки',
|
|
100
|
-
url: 'https://creatoracademy.youtube.com/',
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
name: 'Google Developers: YouTube Data API — Thumbnails',
|
|
104
|
-
url: 'https://developers.google.com/youtube/v3/docs/thumbnails',
|
|
105
|
-
},
|
|
106
|
-
],
|
|
91
|
+
faq: faqData,
|
|
92
|
+
bibliography,
|
|
107
93
|
howTo: howToData,
|
|
108
94
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
109
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 { YoutubeThumbnailUI } from '../ui';
|
|
@@ -87,23 +88,8 @@ export const content: ToolLocaleContent<YoutubeThumbnailUI> = {
|
|
|
87
88
|
slug,
|
|
88
89
|
title,
|
|
89
90
|
description,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
bibliographyTitle: 'Dokumentation och referenser',
|
|
93
|
-
bibliography: [
|
|
94
|
-
{
|
|
95
|
-
name: 'YouTube-hjälp: Lägg till en anpassad videominiatyr',
|
|
96
|
-
url: 'https://support.google.com/youtube/answer/72431',
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
name: 'YouTube Creator Academy: Så skapar du effektiva miniatyrer',
|
|
100
|
-
url: 'https://creatoracademy.youtube.com/',
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
name: 'Google Developers: YouTube Data API — Thumbnails',
|
|
104
|
-
url: 'https://developers.google.com/youtube/v3/docs/thumbnails',
|
|
105
|
-
},
|
|
106
|
-
],
|
|
91
|
+
faq: faqData,
|
|
92
|
+
bibliography,
|
|
107
93
|
howTo: howToData,
|
|
108
94
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
109
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 { YoutubeThumbnailUI } from '../ui';
|
|
@@ -87,23 +88,8 @@ export const content: ToolLocaleContent<YoutubeThumbnailUI> = {
|
|
|
87
88
|
slug,
|
|
88
89
|
title,
|
|
89
90
|
description,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
bibliographyTitle: 'Dökümantasyon ve Referanslar',
|
|
93
|
-
bibliography: [
|
|
94
|
-
{
|
|
95
|
-
name: 'YouTube Yardımı: Özel video küçük resmi ekleme',
|
|
96
|
-
url: 'https://support.google.com/youtube/answer/72431',
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
name: 'YouTube Creator Academy: Etkili küçük resimler nasıl oluşturulur',
|
|
100
|
-
url: 'https://creatoracademy.youtube.com/',
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
name: 'Google Developers: YouTube Data API — Thumbnails',
|
|
104
|
-
url: 'https://developers.google.com/youtube/v3/docs/thumbnails',
|
|
105
|
-
},
|
|
106
|
-
],
|
|
91
|
+
faq: faqData,
|
|
92
|
+
bibliography,
|
|
107
93
|
howTo: howToData,
|
|
108
94
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
109
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 { YoutubeThumbnailUI } from '../ui';
|
|
@@ -87,23 +88,8 @@ export const content: ToolLocaleContent<YoutubeThumbnailUI> = {
|
|
|
87
88
|
slug,
|
|
88
89
|
title,
|
|
89
90
|
description,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
bibliographyTitle: '文档与参考资料',
|
|
93
|
-
bibliography: [
|
|
94
|
-
{
|
|
95
|
-
name: 'YouTube 帮助:添加自定义视频缩略图',
|
|
96
|
-
url: 'https://support.google.com/youtube/answer/72431',
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
name: 'YouTube 创作者学院:如何制作高效的缩略图',
|
|
100
|
-
url: 'https://creatoracademy.youtube.com/',
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
name: 'Google Developers: YouTube Data API — Thumbnails',
|
|
104
|
-
url: 'https://developers.google.com/youtube/v3/docs/thumbnails',
|
|
105
|
-
},
|
|
106
|
-
],
|
|
91
|
+
faq: faqData,
|
|
92
|
+
bibliography,
|
|
107
93
|
howTo: howToData,
|
|
108
94
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
109
95
|
seo: [
|
|
@@ -11,4 +11,5 @@ const { locale = 'es' } = Astro.props;
|
|
|
11
11
|
const content = await youtubeThumbnail.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 youtubeThumbnailPreviewer.i18n[locale]?.();
|
|
3
|
+
import { bibliography } from './bibliography';
|
|
12
4
|
---
|
|
13
5
|
|
|
14
|
-
|
|
6
|
+
<SharedBibliography links={bibliography} />
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { BibliographyEntry } from '../../types';
|
|
2
|
+
|
|
3
|
+
export const bibliography: BibliographyEntry[] = [
|
|
4
|
+
{
|
|
5
|
+
name: 'YouTube Help: Create custom video thumbnails',
|
|
6
|
+
url: 'https://support.google.com/youtube/answer/141805',
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
name: 'Nielsen Norman Group: Visual Processing and UX Design',
|
|
10
|
+
url: 'https://www.nngroup.com/articles/visual-processing/',
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
name: 'Derral Eves: The YouTube Formula (Thumbnail Strategy)',
|
|
14
|
+
url: 'https://derraleves.com/the-youtube-formula/',
|
|
15
|
+
},
|
|
16
|
+
];
|