@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.
Files changed (138) hide show
  1. package/package.json +1 -1
  2. package/src/pages/[locale]/[slug].astro +28 -12
  3. package/src/tests/locale_completeness.test.ts +4 -14
  4. package/src/tests/shared-test-helpers.ts +56 -0
  5. package/src/tests/tool_exports.test.ts +34 -0
  6. package/src/tool/redditFormatter/bibliography.astro +2 -10
  7. package/src/tool/redditFormatter/bibliography.ts +12 -0
  8. package/src/tool/redditFormatter/i18n/de.ts +3 -13
  9. package/src/tool/redditFormatter/i18n/en.ts +3 -13
  10. package/src/tool/redditFormatter/i18n/es.ts +3 -13
  11. package/src/tool/redditFormatter/i18n/fr.ts +3 -13
  12. package/src/tool/redditFormatter/i18n/id.ts +3 -13
  13. package/src/tool/redditFormatter/i18n/it.ts +3 -13
  14. package/src/tool/redditFormatter/i18n/ja.ts +3 -13
  15. package/src/tool/redditFormatter/i18n/ko.ts +3 -13
  16. package/src/tool/redditFormatter/i18n/nl.ts +3 -13
  17. package/src/tool/redditFormatter/i18n/pl.ts +3 -13
  18. package/src/tool/redditFormatter/i18n/pt.ts +3 -13
  19. package/src/tool/redditFormatter/i18n/ru.ts +3 -13
  20. package/src/tool/redditFormatter/i18n/sv.ts +3 -13
  21. package/src/tool/redditFormatter/i18n/tr.ts +3 -13
  22. package/src/tool/redditFormatter/i18n/zh.ts +3 -13
  23. package/src/tool/redditFormatter/reddit-text-formatter.css +1 -1
  24. package/src/tool/redditFormatter/seo.astro +2 -1
  25. package/src/tool/safeZones/bibliography.astro +2 -10
  26. package/src/tool/safeZones/bibliography.ts +20 -0
  27. package/src/tool/safeZones/i18n/de.ts +3 -21
  28. package/src/tool/safeZones/i18n/en.ts +3 -21
  29. package/src/tool/safeZones/i18n/es.ts +3 -21
  30. package/src/tool/safeZones/i18n/fr.ts +3 -21
  31. package/src/tool/safeZones/i18n/id.ts +3 -21
  32. package/src/tool/safeZones/i18n/it.ts +3 -21
  33. package/src/tool/safeZones/i18n/ja.ts +3 -21
  34. package/src/tool/safeZones/i18n/ko.ts +3 -21
  35. package/src/tool/safeZones/i18n/nl.ts +3 -21
  36. package/src/tool/safeZones/i18n/pl.ts +3 -21
  37. package/src/tool/safeZones/i18n/pt.ts +3 -21
  38. package/src/tool/safeZones/i18n/ru.ts +3 -21
  39. package/src/tool/safeZones/i18n/sv.ts +3 -21
  40. package/src/tool/safeZones/i18n/tr.ts +3 -21
  41. package/src/tool/safeZones/i18n/zh.ts +3 -21
  42. package/src/tool/safeZones/seo.astro +2 -1
  43. package/src/tool/socialImageResizer/bibliography.astro +2 -10
  44. package/src/tool/socialImageResizer/bibliography.ts +12 -0
  45. package/src/tool/socialImageResizer/i18n/de.ts +3 -13
  46. package/src/tool/socialImageResizer/i18n/en.ts +3 -13
  47. package/src/tool/socialImageResizer/i18n/es.ts +3 -13
  48. package/src/tool/socialImageResizer/i18n/fr.ts +3 -13
  49. package/src/tool/socialImageResizer/i18n/id.ts +3 -13
  50. package/src/tool/socialImageResizer/i18n/it.ts +3 -13
  51. package/src/tool/socialImageResizer/i18n/ja.ts +3 -13
  52. package/src/tool/socialImageResizer/i18n/ko.ts +3 -13
  53. package/src/tool/socialImageResizer/i18n/nl.ts +3 -13
  54. package/src/tool/socialImageResizer/i18n/pl.ts +3 -13
  55. package/src/tool/socialImageResizer/i18n/pt.ts +3 -13
  56. package/src/tool/socialImageResizer/i18n/ru.ts +3 -13
  57. package/src/tool/socialImageResizer/i18n/sv.ts +3 -13
  58. package/src/tool/socialImageResizer/i18n/tr.ts +3 -13
  59. package/src/tool/socialImageResizer/i18n/zh.ts +3 -13
  60. package/src/tool/socialImageResizer/seo.astro +2 -1
  61. package/src/tool/socialImageResizer/social-media-image-resizer.css +1 -1
  62. package/src/tool/socialValueCalculator/bibliography.astro +2 -10
  63. package/src/tool/socialValueCalculator/bibliography.ts +16 -0
  64. package/src/tool/socialValueCalculator/i18n/de.ts +3 -17
  65. package/src/tool/socialValueCalculator/i18n/en.ts +3 -17
  66. package/src/tool/socialValueCalculator/i18n/es.ts +3 -17
  67. package/src/tool/socialValueCalculator/i18n/fr.ts +3 -17
  68. package/src/tool/socialValueCalculator/i18n/id.ts +3 -17
  69. package/src/tool/socialValueCalculator/i18n/it.ts +3 -17
  70. package/src/tool/socialValueCalculator/i18n/ja.ts +3 -17
  71. package/src/tool/socialValueCalculator/i18n/ko.ts +3 -17
  72. package/src/tool/socialValueCalculator/i18n/nl.ts +3 -17
  73. package/src/tool/socialValueCalculator/i18n/pl.ts +3 -17
  74. package/src/tool/socialValueCalculator/i18n/pt.ts +3 -17
  75. package/src/tool/socialValueCalculator/i18n/ru.ts +3 -17
  76. package/src/tool/socialValueCalculator/i18n/sv.ts +3 -17
  77. package/src/tool/socialValueCalculator/i18n/tr.ts +3 -17
  78. package/src/tool/socialValueCalculator/i18n/zh.ts +3 -17
  79. package/src/tool/socialValueCalculator/seo.astro +2 -1
  80. package/src/tool/socialValueCalculator/social-account-value-calculator.css +1 -1
  81. package/src/tool/tinderPhotoOptimizer/bibliography.astro +2 -10
  82. package/src/tool/tinderPhotoOptimizer/bibliography.ts +12 -0
  83. package/src/tool/tinderPhotoOptimizer/i18n/de.ts +3 -13
  84. package/src/tool/tinderPhotoOptimizer/i18n/en.ts +3 -13
  85. package/src/tool/tinderPhotoOptimizer/i18n/es.ts +3 -13
  86. package/src/tool/tinderPhotoOptimizer/i18n/fr.ts +3 -13
  87. package/src/tool/tinderPhotoOptimizer/i18n/id.ts +3 -13
  88. package/src/tool/tinderPhotoOptimizer/i18n/it.ts +3 -13
  89. package/src/tool/tinderPhotoOptimizer/i18n/ja.ts +3 -13
  90. package/src/tool/tinderPhotoOptimizer/i18n/ko.ts +3 -13
  91. package/src/tool/tinderPhotoOptimizer/i18n/nl.ts +3 -13
  92. package/src/tool/tinderPhotoOptimizer/i18n/pl.ts +3 -13
  93. package/src/tool/tinderPhotoOptimizer/i18n/pt.ts +3 -13
  94. package/src/tool/tinderPhotoOptimizer/i18n/ru.ts +3 -13
  95. package/src/tool/tinderPhotoOptimizer/i18n/sv.ts +3 -13
  96. package/src/tool/tinderPhotoOptimizer/i18n/tr.ts +3 -13
  97. package/src/tool/tinderPhotoOptimizer/i18n/zh.ts +3 -13
  98. package/src/tool/tinderPhotoOptimizer/seo.astro +2 -1
  99. package/src/tool/tinderPhotoOptimizer/tinder-photo-optimizer.css +7 -7
  100. package/src/tool/youtubeThumbnail/bibliography.astro +2 -10
  101. package/src/tool/youtubeThumbnail/bibliography.ts +16 -0
  102. package/src/tool/youtubeThumbnail/i18n/de.ts +3 -17
  103. package/src/tool/youtubeThumbnail/i18n/en.ts +3 -17
  104. package/src/tool/youtubeThumbnail/i18n/es.ts +3 -17
  105. package/src/tool/youtubeThumbnail/i18n/fr.ts +3 -17
  106. package/src/tool/youtubeThumbnail/i18n/id.ts +3 -17
  107. package/src/tool/youtubeThumbnail/i18n/it.ts +3 -17
  108. package/src/tool/youtubeThumbnail/i18n/ja.ts +3 -17
  109. package/src/tool/youtubeThumbnail/i18n/ko.ts +3 -17
  110. package/src/tool/youtubeThumbnail/i18n/nl.ts +3 -17
  111. package/src/tool/youtubeThumbnail/i18n/pl.ts +3 -17
  112. package/src/tool/youtubeThumbnail/i18n/pt.ts +3 -17
  113. package/src/tool/youtubeThumbnail/i18n/ru.ts +3 -17
  114. package/src/tool/youtubeThumbnail/i18n/sv.ts +3 -17
  115. package/src/tool/youtubeThumbnail/i18n/tr.ts +3 -17
  116. package/src/tool/youtubeThumbnail/i18n/zh.ts +3 -17
  117. package/src/tool/youtubeThumbnail/seo.astro +2 -1
  118. package/src/tool/youtubeThumbnail/youtube-thumbnail-extractor.css +1 -1
  119. package/src/tool/youtubeThumbnailPreviewer/bibliography.astro +2 -10
  120. package/src/tool/youtubeThumbnailPreviewer/bibliography.ts +16 -0
  121. package/src/tool/youtubeThumbnailPreviewer/i18n/de.ts +3 -17
  122. package/src/tool/youtubeThumbnailPreviewer/i18n/en.ts +3 -17
  123. package/src/tool/youtubeThumbnailPreviewer/i18n/es.ts +3 -17
  124. package/src/tool/youtubeThumbnailPreviewer/i18n/fr.ts +3 -17
  125. package/src/tool/youtubeThumbnailPreviewer/i18n/id.ts +3 -17
  126. package/src/tool/youtubeThumbnailPreviewer/i18n/it.ts +3 -17
  127. package/src/tool/youtubeThumbnailPreviewer/i18n/ja.ts +3 -17
  128. package/src/tool/youtubeThumbnailPreviewer/i18n/ko.ts +3 -17
  129. package/src/tool/youtubeThumbnailPreviewer/i18n/nl.ts +3 -17
  130. package/src/tool/youtubeThumbnailPreviewer/i18n/pl.ts +3 -17
  131. package/src/tool/youtubeThumbnailPreviewer/i18n/pt.ts +3 -17
  132. package/src/tool/youtubeThumbnailPreviewer/i18n/ru.ts +3 -17
  133. package/src/tool/youtubeThumbnailPreviewer/i18n/sv.ts +3 -17
  134. package/src/tool/youtubeThumbnailPreviewer/i18n/tr.ts +3 -17
  135. package/src/tool/youtubeThumbnailPreviewer/i18n/zh.ts +3 -17
  136. package/src/tool/youtubeThumbnailPreviewer/seo.astro +2 -1
  137. package/src/tool/youtubeThumbnailPreviewer/youtube-thumbnail-previewer.css +523 -273
  138. 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 { SocialValueCalculatorUI } from '../ui';
@@ -87,23 +88,8 @@ export const content: ToolLocaleContent<SocialValueCalculatorUI> = {
87
88
  slug,
88
89
  title,
89
90
  description,
90
- faqTitle: 'Veelgestelde Vragen',
91
- faq: faqData,
92
- bibliographyTitle: 'Bronnen & Marktstudies',
93
- bibliography: [
94
- {
95
- name: 'Influencer Marketing Hub: Influencer Rates 2026',
96
- url: 'https://influencermarketinghub.com/influencer-rates/',
97
- },
98
- {
99
- name: 'HypeAuditor: TikTok & Instagram Engagement Rapport',
100
- url: 'https://hypeauditor.com/free-tools/tiktok-engagement-calculator/',
101
- },
102
- {
103
- name: 'Social Blade: Social Media Statistieken',
104
- url: 'https://socialblade.com/',
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 { SocialValueCalculatorUI } from '../ui';
@@ -87,23 +88,8 @@ export const content: ToolLocaleContent<SocialValueCalculatorUI> = {
87
88
  slug,
88
89
  title,
89
90
  description,
90
- faqTitle: 'Często zadawane pytania',
91
- faq: faqData,
92
- bibliographyTitle: 'Źródła i badania rynku',
93
- bibliography: [
94
- {
95
- name: 'Influencer Marketing Hub: Stawki influencerów 2026',
96
- url: 'https://influencermarketinghub.com/influencer-rates/',
97
- },
98
- {
99
- name: 'HypeAuditor: Raport zaangażowania TikTok i Instagram',
100
- url: 'https://hypeauditor.com/free-tools/tiktok-engagement-calculator/',
101
- },
102
- {
103
- name: 'Social Blade: Statystyki mediów społecznościowych',
104
- url: 'https://socialblade.com/',
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 { SocialValueCalculatorUI } from '../ui';
@@ -87,23 +88,8 @@ export const content: ToolLocaleContent<SocialValueCalculatorUI> = {
87
88
  slug,
88
89
  title,
89
90
  description,
90
- faqTitle: 'Perguntas Frequentes',
91
- faq: faqData,
92
- bibliographyTitle: 'Fontes e Estudos de Mercado',
93
- bibliography: [
94
- {
95
- name: 'Influencer Marketing Hub: Influencer Rates 2026',
96
- url: 'https://influencermarketinghub.com/influencer-rates/',
97
- },
98
- {
99
- name: 'HypeAuditor: Relatório de Engagement TikTok e Instagram',
100
- url: 'https://hypeauditor.com/free-tools/tiktok-engagement-calculator/',
101
- },
102
- {
103
- name: 'Social Blade: Estatísticas de Redes Sociais',
104
- url: 'https://socialblade.com/',
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 { SocialValueCalculatorUI } from '../ui';
@@ -87,23 +88,8 @@ export const content: ToolLocaleContent<SocialValueCalculatorUI> = {
87
88
  slug,
88
89
  title,
89
90
  description,
90
- faqTitle: 'Часто задаваемые вопросы',
91
- faq: faqData,
92
- bibliographyTitle: 'Источники и исследования рынка',
93
- bibliography: [
94
- {
95
- name: 'Influencer Marketing Hub: ставки инфлюенсеров 2026',
96
- url: 'https://influencermarketinghub.com/influencer-rates/',
97
- },
98
- {
99
- name: 'HypeAuditor: отчет по вовлеченности в TikTok и Instagram',
100
- url: 'https://hypeauditor.com/free-tools/tiktok-engagement-calculator/',
101
- },
102
- {
103
- name: 'Social Blade: статистика социальных сетей',
104
- url: 'https://socialblade.com/',
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 { SocialValueCalculatorUI } from '../ui';
@@ -87,23 +88,8 @@ export const content: ToolLocaleContent<SocialValueCalculatorUI> = {
87
88
  slug,
88
89
  title,
89
90
  description,
90
- faqTitle: 'Vanliga frågor',
91
- faq: faqData,
92
- bibliographyTitle: 'Källor & marknadsstudier',
93
- bibliography: [
94
- {
95
- name: 'Influencer Marketing Hub: Influencer Rates 2026',
96
- url: 'https://influencermarketinghub.com/influencer-rates/',
97
- },
98
- {
99
- name: 'HypeAuditor: TikTok & Instagram Engagement Report',
100
- url: 'https://hypeauditor.com/free-tools/tiktok-engagement-calculator/',
101
- },
102
- {
103
- name: 'Social Blade: Social Media Statistik',
104
- url: 'https://socialblade.com/',
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, HowTo, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { SocialValueCalculatorUI } from '../ui';
@@ -87,23 +88,8 @@ export const content: ToolLocaleContent<SocialValueCalculatorUI> = {
87
88
  slug,
88
89
  title,
89
90
  description,
90
- faqTitle: 'Sıkça Sorulan Sorular',
91
- faq: faqData,
92
- bibliographyTitle: 'Kaynaklar ve Piyasa Araştırmaları',
93
- bibliography: [
94
- {
95
- name: 'Influencer Marketing Hub: Influencer Ücretleri 2026',
96
- url: 'https://influencermarketinghub.com/influencer-rates/',
97
- },
98
- {
99
- name: 'HypeAuditor: TikTok ve Instagram Etkileşim Raporu',
100
- url: 'https://hypeauditor.com/free-tools/tiktok-engagement-calculator/',
101
- },
102
- {
103
- name: 'Social Blade: Sosyal Medya İstatistikleri',
104
- url: 'https://socialblade.com/',
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 { SocialValueCalculatorUI } from '../ui';
@@ -87,23 +88,8 @@ export const content: ToolLocaleContent<SocialValueCalculatorUI> = {
87
88
  slug,
88
89
  title,
89
90
  description,
90
- faqTitle: '常见问题',
91
- faq: faqData,
92
- bibliographyTitle: '来源与市场研究',
93
- bibliography: [
94
- {
95
- name: 'Influencer Marketing Hub:2026 红人定价',
96
- url: 'https://influencermarketinghub.com/influencer-rates/',
97
- },
98
- {
99
- name: 'HypeAuditor:TikTok 和 Instagram 互动报告',
100
- url: 'https://hypeauditor.com/free-tools/tiktok-engagement-calculator/',
101
- },
102
- {
103
- name: 'Social Blade:社交媒体统计数据',
104
- url: 'https://socialblade.com/',
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 socialValueCalculator.i18n[locale]?.();
12
12
  if (!content) return null;
13
13
  ---
14
- <SEORenderer content={{ locale: locale as string, sections: content.seo }} />
14
+
15
+ {content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
@@ -28,7 +28,7 @@
28
28
  margin: 2rem auto 5rem;
29
29
  }
30
30
 
31
- :global(.theme-dark) .svc-root {
31
+ .theme-dark .svc-root {
32
32
  --glass-bg: rgba(15, 23, 42, 0.85);
33
33
  --glass-border: rgba(255, 255, 255, 0.08);
34
34
  --glass-shadow: rgba(0, 0, 0, 0.6);
@@ -1,14 +1,6 @@
1
1
  ---
2
2
  import { Bibliography as SharedBibliography } from '@jjlmoya/utils-shared';
3
- import { tinderPhotoOptimizer } from './index';
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 tinderPhotoOptimizer.i18n[locale]?.();
3
+ import { bibliography } from './bibliography';
12
4
  ---
13
5
 
14
- {content && <SharedBibliography links={content.bibliography} />}
6
+ <SharedBibliography links={bibliography} />
@@ -0,0 +1,12 @@
1
+ import type { BibliographyEntry } from '../../types';
2
+
3
+ export const bibliography: BibliographyEntry[] = [
4
+ {
5
+ name: 'face-api.js: JavaScript Face Recognition in the Browser',
6
+ url: 'https://github.com/justadudewhohacks/face-api.js',
7
+ },
8
+ {
9
+ name: 'MDN Web Docs: Canvas API',
10
+ url: 'https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API',
11
+ },
12
+ ];
@@ -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
- faqTitle: 'Häufig gestellte Fragen',
91
- faq: faqData,
92
- bibliographyTitle: 'Referenzen',
93
- bibliography: [
94
- {
95
- name: 'face-api.js: JavaScript Face Recognition in the Browser',
96
- url: 'https://github.com/justadudewhohacks/face-api.js',
97
- },
98
- {
99
- name: 'MDN Web Docs: Canvas API',
100
- url: 'https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API',
101
- },
102
- ],
91
+ faq: faqData,
92
+ bibliography,
103
93
  howTo: howToData,
104
94
  schemas: [faqSchema, howToSchema, appSchema],
105
95
  seo: [
@@ -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
- faqTitle: 'Frequently Asked Questions',
91
- faq: faqData,
92
- bibliographyTitle: 'References',
93
- bibliography: [
94
- {
95
- name: 'face-api.js: JavaScript Face Recognition in the Browser',
96
- url: 'https://github.com/justadudewhohacks/face-api.js',
97
- },
98
- {
99
- name: 'MDN Web Docs: Canvas API',
100
- url: 'https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API',
101
- },
102
- ],
91
+ faq: faqData,
92
+ bibliography,
103
93
  howTo: howToData,
104
94
  schemas: [faqSchema, howToSchema, appSchema],
105
95
  seo: [
@@ -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
- faqTitle: 'Preguntas Frecuentes',
91
- faq: faqData,
92
- bibliographyTitle: 'Referencias',
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/es/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: [
@@ -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
- faqTitle: 'Questions Fréquentes',
91
- faq: faqData,
92
- bibliographyTitle: 'Références',
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/fr/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: [
@@ -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
- faqTitle: 'Pertanyaan yang Sering Diajukan',
91
- faq: faqData,
92
- bibliographyTitle: 'Referensi',
93
- bibliography: [
94
- {
95
- name: 'face-api.js: JavaScript Face Recognition in the Browser',
96
- url: 'https://github.com/justadudewhohacks/face-api.js',
97
- },
98
- {
99
- name: 'MDN Web Docs: Canvas API',
100
- url: 'https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API',
101
- },
102
- ],
91
+ faq: faqData,
92
+ bibliography,
103
93
  howTo: howToData,
104
94
  schemas: [faqSchema, howToSchema, appSchema],
105
95
  seo: [
@@ -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
- faqTitle: 'Domande Frequenti',
91
- faq: faqData,
92
- bibliographyTitle: 'Riferimenti',
93
- bibliography: [
94
- {
95
- name: 'face-api.js: JavaScript Face Recognition in the Browser',
96
- url: 'https://github.com/justadudewhohacks/face-api.js',
97
- },
98
- {
99
- name: 'MDN Web Docs: Canvas API',
100
- url: 'https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API',
101
- },
102
- ],
91
+ faq: faqData,
92
+ bibliography,
103
93
  howTo: howToData,
104
94
  schemas: [faqSchema, howToSchema, appSchema],
105
95
  seo: [
@@ -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
- faqTitle: 'よくある質問',
91
- faq: faqData,
92
- bibliographyTitle: '参考文献',
93
- bibliography: [
94
- {
95
- name: 'face-api.js: JavaScript Face Recognition in the Browser',
96
- url: 'https://github.com/justadudewhohacks/face-api.js',
97
- },
98
- {
99
- name: 'MDN Web Docs: Canvas API',
100
- url: 'https://developer.mozilla.org/ja/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: [
@@ -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
- faqTitle: '자주 묻는 질문',
91
- faq: faqData,
92
- bibliographyTitle: '참고 문헌',
93
- bibliography: [
94
- {
95
- name: 'face-api.js: JavaScript Face Recognition in the Browser',
96
- url: 'https://github.com/justadudewhohacks/face-api.js',
97
- },
98
- {
99
- name: 'MDN Web Docs: Canvas API',
100
- url: 'https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API',
101
- },
102
- ],
91
+ faq: faqData,
92
+ bibliography,
103
93
  howTo: howToData,
104
94
  schemas: [faqSchema, howToSchema, appSchema],
105
95
  seo: [
@@ -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
- faqTitle: 'Veelgestelde Vragen',
91
- faq: faqData,
92
- bibliographyTitle: 'Referenties',
93
- bibliography: [
94
- {
95
- name: 'face-api.js: JavaScript Face Recognition in the Browser',
96
- url: 'https://github.com/justadudewhohacks/face-api.js',
97
- },
98
- {
99
- name: 'MDN Web Docs: Canvas API',
100
- url: 'https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API',
101
- },
102
- ],
91
+ faq: faqData,
92
+ bibliography,
103
93
  howTo: howToData,
104
94
  schemas: [faqSchema, howToSchema, appSchema],
105
95
  seo: [
@@ -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
- faqTitle: 'Często Zadawane Pytania',
91
- faq: faqData,
92
- bibliographyTitle: 'Źródła',
93
- bibliography: [
94
- {
95
- name: 'face-api.js: JavaScript Face Recognition in the Browser',
96
- url: 'https://github.com/justadudewhohacks/face-api.js',
97
- },
98
- {
99
- name: 'MDN Web Docs: Canvas API',
100
- url: 'https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API',
101
- },
102
- ],
91
+ faq: faqData,
92
+ bibliography,
103
93
  howTo: howToData,
104
94
  schemas: [faqSchema, howToSchema, appSchema],
105
95
  seo: [
@@ -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
- faqTitle: 'Perguntas Frequentes',
91
- faq: faqData,
92
- bibliographyTitle: 'Referências',
93
- bibliography: [
94
- {
95
- name: 'face-api.js: JavaScript Face Recognition in the Browser',
96
- url: 'https://github.com/justadudewhohacks/face-api.js',
97
- },
98
- {
99
- name: 'MDN Web Docs: Canvas API',
100
- url: 'https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API',
101
- },
102
- ],
91
+ faq: faqData,
92
+ bibliography,
103
93
  howTo: howToData,
104
94
  schemas: [faqSchema, howToSchema, appSchema],
105
95
  seo: [
@@ -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
- faqTitle: 'Часто задаваемые вопросы',
91
- faq: faqData,
92
- bibliographyTitle: 'Ссылки',
93
- bibliography: [
94
- {
95
- name: 'face-api.js: JavaScript Face Recognition in the Browser',
96
- url: 'https://github.com/justadudewhohacks/face-api.js',
97
- },
98
- {
99
- name: 'MDN Web Docs: Canvas API',
100
- url: 'https://developer.mozilla.org/ru/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: [
@@ -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
- faqTitle: 'Vanliga Frågor',
91
- faq: faqData,
92
- bibliographyTitle: 'Referenser',
93
- bibliography: [
94
- {
95
- name: 'face-api.js: JavaScript Face Recognition in the Browser',
96
- url: 'https://github.com/justadudewhohacks/face-api.js',
97
- },
98
- {
99
- name: 'MDN Web Docs: Canvas API',
100
- url: 'https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API',
101
- },
102
- ],
91
+ faq: faqData,
92
+ bibliography,
103
93
  howTo: howToData,
104
94
  schemas: [faqSchema, howToSchema, appSchema],
105
95
  seo: [
@@ -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
- faqTitle: 'Sıkça Sorulan Sorular',
91
- faq: faqData,
92
- bibliographyTitle: 'Referanslar',
93
- bibliography: [
94
- {
95
- name: 'face-api.js: JavaScript Face Recognition in the Browser',
96
- url: 'https://github.com/justadudewhohacks/face-api.js',
97
- },
98
- {
99
- name: 'MDN Web Docs: Canvas API',
100
- url: 'https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API',
101
- },
102
- ],
91
+ faq: faqData,
92
+ bibliography,
103
93
  howTo: howToData,
104
94
  schemas: [faqSchema, howToSchema, appSchema],
105
95
  seo: [