@jjlmoya/utils-tools 1.12.0 → 1.13.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 (222) hide show
  1. package/package.json +1 -1
  2. package/src/pages/[locale]/[slug].astro +30 -13
  3. package/src/tests/locale_completeness.test.ts +3 -20
  4. package/src/tests/shared-test-helpers.ts +56 -0
  5. package/src/tests/tool_exports.test.ts +34 -0
  6. package/src/tool/date-diff-calculator/bibliography.astro +2 -10
  7. package/src/tool/date-diff-calculator/bibliography.ts +7 -0
  8. package/src/tool/date-diff-calculator/i18n/de.ts +4 -7
  9. package/src/tool/date-diff-calculator/i18n/en.ts +4 -7
  10. package/src/tool/date-diff-calculator/i18n/es.ts +4 -7
  11. package/src/tool/date-diff-calculator/i18n/fr.ts +4 -7
  12. package/src/tool/date-diff-calculator/i18n/id.ts +4 -7
  13. package/src/tool/date-diff-calculator/i18n/it.ts +4 -7
  14. package/src/tool/date-diff-calculator/i18n/ja.ts +4 -7
  15. package/src/tool/date-diff-calculator/i18n/ko.ts +4 -7
  16. package/src/tool/date-diff-calculator/i18n/nl.ts +4 -7
  17. package/src/tool/date-diff-calculator/i18n/pl.ts +4 -7
  18. package/src/tool/date-diff-calculator/i18n/pt.ts +4 -7
  19. package/src/tool/date-diff-calculator/i18n/ru.ts +4 -7
  20. package/src/tool/date-diff-calculator/i18n/sv.ts +4 -7
  21. package/src/tool/date-diff-calculator/i18n/tr.ts +4 -7
  22. package/src/tool/date-diff-calculator/i18n/zh.ts +4 -7
  23. package/src/tool/date-diff-calculator/seo.astro +2 -1
  24. package/src/tool/drive-direct-link/bibliography.astro +2 -10
  25. package/src/tool/drive-direct-link/bibliography.ts +6 -0
  26. package/src/tool/drive-direct-link/i18n/de.ts +4 -6
  27. package/src/tool/drive-direct-link/i18n/en.ts +4 -6
  28. package/src/tool/drive-direct-link/i18n/es.ts +4 -6
  29. package/src/tool/drive-direct-link/i18n/fr.ts +4 -6
  30. package/src/tool/drive-direct-link/i18n/id.ts +4 -6
  31. package/src/tool/drive-direct-link/i18n/it.ts +4 -6
  32. package/src/tool/drive-direct-link/i18n/ja.ts +4 -6
  33. package/src/tool/drive-direct-link/i18n/ko.ts +4 -6
  34. package/src/tool/drive-direct-link/i18n/nl.ts +4 -6
  35. package/src/tool/drive-direct-link/i18n/pl.ts +4 -6
  36. package/src/tool/drive-direct-link/i18n/pt.ts +4 -6
  37. package/src/tool/drive-direct-link/i18n/ru.ts +4 -6
  38. package/src/tool/drive-direct-link/i18n/sv.ts +4 -6
  39. package/src/tool/drive-direct-link/i18n/tr.ts +4 -6
  40. package/src/tool/drive-direct-link/i18n/zh.ts +4 -6
  41. package/src/tool/drive-direct-link/seo.astro +2 -1
  42. package/src/tool/email-list-cleaner/bibliography.astro +2 -10
  43. package/src/tool/email-list-cleaner/bibliography.ts +7 -0
  44. package/src/tool/email-list-cleaner/i18n/de.ts +4 -7
  45. package/src/tool/email-list-cleaner/i18n/en.ts +4 -7
  46. package/src/tool/email-list-cleaner/i18n/es.ts +4 -7
  47. package/src/tool/email-list-cleaner/i18n/fr.ts +4 -7
  48. package/src/tool/email-list-cleaner/i18n/id.ts +4 -7
  49. package/src/tool/email-list-cleaner/i18n/it.ts +4 -7
  50. package/src/tool/email-list-cleaner/i18n/ja.ts +4 -7
  51. package/src/tool/email-list-cleaner/i18n/ko.ts +4 -7
  52. package/src/tool/email-list-cleaner/i18n/nl.ts +4 -7
  53. package/src/tool/email-list-cleaner/i18n/pl.ts +4 -7
  54. package/src/tool/email-list-cleaner/i18n/pt.ts +4 -7
  55. package/src/tool/email-list-cleaner/i18n/ru.ts +4 -7
  56. package/src/tool/email-list-cleaner/i18n/sv.ts +4 -7
  57. package/src/tool/email-list-cleaner/i18n/tr.ts +4 -7
  58. package/src/tool/email-list-cleaner/i18n/zh.ts +4 -7
  59. package/src/tool/email-list-cleaner/seo.astro +2 -1
  60. package/src/tool/env-badge-spain/bibliography.astro +2 -10
  61. package/src/tool/env-badge-spain/bibliography.ts +6 -0
  62. package/src/tool/env-badge-spain/i18n/de.ts +4 -6
  63. package/src/tool/env-badge-spain/i18n/en.ts +4 -6
  64. package/src/tool/env-badge-spain/i18n/es.ts +4 -6
  65. package/src/tool/env-badge-spain/i18n/fr.ts +4 -6
  66. package/src/tool/env-badge-spain/i18n/id.ts +4 -6
  67. package/src/tool/env-badge-spain/i18n/it.ts +4 -6
  68. package/src/tool/env-badge-spain/i18n/ja.ts +4 -6
  69. package/src/tool/env-badge-spain/i18n/ko.ts +4 -6
  70. package/src/tool/env-badge-spain/i18n/nl.ts +4 -6
  71. package/src/tool/env-badge-spain/i18n/pl.ts +4 -6
  72. package/src/tool/env-badge-spain/i18n/pt.ts +4 -6
  73. package/src/tool/env-badge-spain/i18n/ru.ts +4 -6
  74. package/src/tool/env-badge-spain/i18n/sv.ts +4 -6
  75. package/src/tool/env-badge-spain/i18n/tr.ts +4 -6
  76. package/src/tool/env-badge-spain/i18n/zh.ts +4 -6
  77. package/src/tool/env-badge-spain/seo.astro +2 -1
  78. package/src/tool/morse-beacon/bibliography.astro +2 -10
  79. package/src/tool/morse-beacon/bibliography.ts +7 -0
  80. package/src/tool/morse-beacon/i18n/de.ts +4 -7
  81. package/src/tool/morse-beacon/i18n/en.ts +4 -7
  82. package/src/tool/morse-beacon/i18n/es.ts +4 -7
  83. package/src/tool/morse-beacon/i18n/fr.ts +4 -7
  84. package/src/tool/morse-beacon/i18n/id.ts +4 -7
  85. package/src/tool/morse-beacon/i18n/it.ts +4 -7
  86. package/src/tool/morse-beacon/i18n/ja.ts +4 -7
  87. package/src/tool/morse-beacon/i18n/ko.ts +4 -7
  88. package/src/tool/morse-beacon/i18n/nl.ts +4 -7
  89. package/src/tool/morse-beacon/i18n/pl.ts +4 -7
  90. package/src/tool/morse-beacon/i18n/pt.ts +4 -7
  91. package/src/tool/morse-beacon/i18n/ru.ts +4 -7
  92. package/src/tool/morse-beacon/i18n/sv.ts +4 -7
  93. package/src/tool/morse-beacon/i18n/tr.ts +4 -7
  94. package/src/tool/morse-beacon/i18n/zh.ts +4 -7
  95. package/src/tool/morse-beacon/seo.astro +2 -1
  96. package/src/tool/password-generator/bibliography.astro +2 -10
  97. package/src/tool/password-generator/bibliography.ts +8 -0
  98. package/src/tool/password-generator/i18n/de.ts +4 -8
  99. package/src/tool/password-generator/i18n/en.ts +4 -8
  100. package/src/tool/password-generator/i18n/es.ts +4 -8
  101. package/src/tool/password-generator/i18n/fr.ts +4 -8
  102. package/src/tool/password-generator/i18n/id.ts +4 -8
  103. package/src/tool/password-generator/i18n/it.ts +4 -8
  104. package/src/tool/password-generator/i18n/ja.ts +4 -8
  105. package/src/tool/password-generator/i18n/ko.ts +4 -8
  106. package/src/tool/password-generator/i18n/nl.ts +4 -8
  107. package/src/tool/password-generator/i18n/pl.ts +4 -8
  108. package/src/tool/password-generator/i18n/pt.ts +4 -8
  109. package/src/tool/password-generator/i18n/ru.ts +4 -8
  110. package/src/tool/password-generator/i18n/sv.ts +4 -8
  111. package/src/tool/password-generator/i18n/tr.ts +4 -8
  112. package/src/tool/password-generator/i18n/zh.ts +4 -8
  113. package/src/tool/password-generator/seo.astro +2 -1
  114. package/src/tool/routes/bibliography.astro +2 -10
  115. package/src/tool/routes/bibliography.ts +9 -0
  116. package/src/tool/routes/i18n/de.ts +4 -9
  117. package/src/tool/routes/i18n/en.ts +4 -9
  118. package/src/tool/routes/i18n/es.ts +4 -9
  119. package/src/tool/routes/i18n/fr.ts +4 -9
  120. package/src/tool/routes/i18n/id.ts +4 -9
  121. package/src/tool/routes/i18n/it.ts +4 -9
  122. package/src/tool/routes/i18n/ja.ts +4 -9
  123. package/src/tool/routes/i18n/ko.ts +4 -9
  124. package/src/tool/routes/i18n/nl.ts +4 -9
  125. package/src/tool/routes/i18n/pl.ts +4 -9
  126. package/src/tool/routes/i18n/pt.ts +4 -9
  127. package/src/tool/routes/i18n/ru.ts +4 -9
  128. package/src/tool/routes/i18n/sv.ts +4 -9
  129. package/src/tool/routes/i18n/tr.ts +4 -9
  130. package/src/tool/routes/i18n/zh.ts +4 -9
  131. package/src/tool/routes/seo.astro +2 -1
  132. package/src/tool/rule-of-three/bibliography.astro +2 -10
  133. package/src/tool/rule-of-three/bibliography.ts +6 -0
  134. package/src/tool/rule-of-three/i18n/de.ts +4 -6
  135. package/src/tool/rule-of-three/i18n/en.ts +4 -6
  136. package/src/tool/rule-of-three/i18n/es.ts +4 -6
  137. package/src/tool/rule-of-three/i18n/fr.ts +4 -6
  138. package/src/tool/rule-of-three/i18n/id.ts +4 -6
  139. package/src/tool/rule-of-three/i18n/it.ts +4 -6
  140. package/src/tool/rule-of-three/i18n/ja.ts +4 -6
  141. package/src/tool/rule-of-three/i18n/ko.ts +4 -6
  142. package/src/tool/rule-of-three/i18n/nl.ts +4 -6
  143. package/src/tool/rule-of-three/i18n/pl.ts +4 -6
  144. package/src/tool/rule-of-three/i18n/pt.ts +4 -6
  145. package/src/tool/rule-of-three/i18n/ru.ts +4 -6
  146. package/src/tool/rule-of-three/i18n/sv.ts +4 -6
  147. package/src/tool/rule-of-three/i18n/tr.ts +4 -6
  148. package/src/tool/rule-of-three/i18n/zh.ts +4 -6
  149. package/src/tool/rule-of-three/seo.astro +2 -1
  150. package/src/tool/seo-content-optimizer/bibliography.astro +2 -10
  151. package/src/tool/seo-content-optimizer/bibliography.ts +6 -0
  152. package/src/tool/seo-content-optimizer/i18n/de.ts +4 -6
  153. package/src/tool/seo-content-optimizer/i18n/en.ts +4 -6
  154. package/src/tool/seo-content-optimizer/i18n/es.ts +4 -6
  155. package/src/tool/seo-content-optimizer/i18n/fr.ts +4 -6
  156. package/src/tool/seo-content-optimizer/i18n/id.ts +4 -6
  157. package/src/tool/seo-content-optimizer/i18n/it.ts +4 -6
  158. package/src/tool/seo-content-optimizer/i18n/ja.ts +4 -6
  159. package/src/tool/seo-content-optimizer/i18n/ko.ts +4 -6
  160. package/src/tool/seo-content-optimizer/i18n/nl.ts +4 -6
  161. package/src/tool/seo-content-optimizer/i18n/pl.ts +4 -6
  162. package/src/tool/seo-content-optimizer/i18n/pt.ts +4 -6
  163. package/src/tool/seo-content-optimizer/i18n/ru.ts +4 -6
  164. package/src/tool/seo-content-optimizer/i18n/sv.ts +4 -6
  165. package/src/tool/seo-content-optimizer/i18n/tr.ts +4 -6
  166. package/src/tool/seo-content-optimizer/i18n/zh.ts +4 -6
  167. package/src/tool/seo-content-optimizer/seo.astro +2 -1
  168. package/src/tool/speed-reader/bibliography.astro +2 -10
  169. package/src/tool/speed-reader/bibliography.ts +10 -0
  170. package/src/tool/speed-reader/i18n/de.ts +4 -10
  171. package/src/tool/speed-reader/i18n/en.ts +4 -10
  172. package/src/tool/speed-reader/i18n/es.ts +4 -10
  173. package/src/tool/speed-reader/i18n/fr.ts +4 -10
  174. package/src/tool/speed-reader/i18n/id.ts +4 -10
  175. package/src/tool/speed-reader/i18n/it.ts +4 -10
  176. package/src/tool/speed-reader/i18n/ja.ts +4 -10
  177. package/src/tool/speed-reader/i18n/ko.ts +4 -10
  178. package/src/tool/speed-reader/i18n/nl.ts +4 -10
  179. package/src/tool/speed-reader/i18n/pl.ts +4 -10
  180. package/src/tool/speed-reader/i18n/pt.ts +4 -10
  181. package/src/tool/speed-reader/i18n/ru.ts +4 -10
  182. package/src/tool/speed-reader/i18n/sv.ts +4 -10
  183. package/src/tool/speed-reader/i18n/tr.ts +4 -10
  184. package/src/tool/speed-reader/i18n/zh.ts +4 -10
  185. package/src/tool/speed-reader/seo.astro +2 -1
  186. package/src/tool/text-pixel-calculator/bibliography.astro +2 -10
  187. package/src/tool/text-pixel-calculator/bibliography.ts +6 -0
  188. package/src/tool/text-pixel-calculator/i18n/de.ts +4 -6
  189. package/src/tool/text-pixel-calculator/i18n/en.ts +4 -6
  190. package/src/tool/text-pixel-calculator/i18n/es.ts +4 -6
  191. package/src/tool/text-pixel-calculator/i18n/fr.ts +4 -6
  192. package/src/tool/text-pixel-calculator/i18n/id.ts +4 -6
  193. package/src/tool/text-pixel-calculator/i18n/it.ts +4 -6
  194. package/src/tool/text-pixel-calculator/i18n/ja.ts +4 -6
  195. package/src/tool/text-pixel-calculator/i18n/ko.ts +4 -6
  196. package/src/tool/text-pixel-calculator/i18n/nl.ts +4 -6
  197. package/src/tool/text-pixel-calculator/i18n/pl.ts +4 -6
  198. package/src/tool/text-pixel-calculator/i18n/pt.ts +4 -6
  199. package/src/tool/text-pixel-calculator/i18n/ru.ts +4 -6
  200. package/src/tool/text-pixel-calculator/i18n/sv.ts +4 -6
  201. package/src/tool/text-pixel-calculator/i18n/tr.ts +4 -6
  202. package/src/tool/text-pixel-calculator/i18n/zh.ts +4 -6
  203. package/src/tool/text-pixel-calculator/seo.astro +2 -1
  204. package/src/tool/whatsapp-link/bibliography.astro +2 -10
  205. package/src/tool/whatsapp-link/bibliography.ts +6 -0
  206. package/src/tool/whatsapp-link/i18n/de.ts +4 -6
  207. package/src/tool/whatsapp-link/i18n/en.ts +4 -6
  208. package/src/tool/whatsapp-link/i18n/es.ts +4 -6
  209. package/src/tool/whatsapp-link/i18n/fr.ts +4 -6
  210. package/src/tool/whatsapp-link/i18n/id.ts +4 -6
  211. package/src/tool/whatsapp-link/i18n/it.ts +4 -6
  212. package/src/tool/whatsapp-link/i18n/ja.ts +4 -6
  213. package/src/tool/whatsapp-link/i18n/ko.ts +4 -6
  214. package/src/tool/whatsapp-link/i18n/nl.ts +4 -6
  215. package/src/tool/whatsapp-link/i18n/pl.ts +4 -6
  216. package/src/tool/whatsapp-link/i18n/pt.ts +4 -6
  217. package/src/tool/whatsapp-link/i18n/ru.ts +4 -6
  218. package/src/tool/whatsapp-link/i18n/sv.ts +4 -6
  219. package/src/tool/whatsapp-link/i18n/tr.ts +4 -6
  220. package/src/tool/whatsapp-link/i18n/zh.ts +4 -6
  221. package/src/tool/whatsapp-link/seo.astro +2 -1
  222. package/src/types.ts +0 -2
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { RuleOfThreeUI } from '../ui';
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
86
87
  title: 'Simple Rule of Three Calculator',
87
88
  description: 'Solve mathematical proportions instantly. The definitive tool for calculating quantities, recipes, discounts and conversions.',
88
89
  ui,
89
- faqTitle: 'Frequently Asked Questions',
90
+
90
91
  faq: faqData,
91
92
  howTo: howToData,
92
- bibliographyTitle: 'References',
93
- bibliography: [
94
- { name: 'Proportionality (mathematics) — Wikipedia', url: 'https://en.wikipedia.org/wiki/Proportionality_(mathematics)' },
95
- { name: 'Ratios and proportions — Khan Academy', url: 'https://www.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates/pre-algebra-ratios-intro/a/ratio-review' },
96
- ],
93
+
94
+ bibliography,
97
95
  schemas: [faqSchema, howToSchema, appSchema],
98
96
  seo: [
99
97
  {
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { RuleOfThreeUI } from '../ui';
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
86
87
  title: 'Calculadora de Regla de Tres Simple',
87
88
  description: 'Resuelve proporciones matemáticas al instante. La herramienta definitiva para calcular cantidades, recetas, descuentos y conversiones.',
88
89
  ui,
89
- faqTitle: 'Preguntas Frecuentes',
90
+
90
91
  faq: faqData,
91
92
  howTo: howToData,
92
- bibliographyTitle: 'Referencias',
93
- bibliography: [
94
- { name: 'Proporción (matemáticas) — Wikipedia', url: 'https://es.wikipedia.org/wiki/Proporci%C3%B3n_(matem%C3%A1ticas)' },
95
- { name: 'Regla de tres — Khan Academy', url: 'https://es.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates/pre-algebra-ratios-intro/a/ratio-review' },
96
- ],
93
+
94
+ bibliography,
97
95
  schemas: [faqSchema, howToSchema, appSchema],
98
96
  seo: [
99
97
  {
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { RuleOfThreeUI } from '../ui';
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
86
87
  title: 'Calculatrice de règle de trois simple',
87
88
  description: "Résolvez des proportions mathématiques instantanément. L'outil définitif pour calculer des quantités, des recettes, des remises et des conversions.",
88
89
  ui,
89
- faqTitle: 'Questions fréquentes',
90
+
90
91
  faq: faqData,
91
92
  howTo: howToData,
92
- bibliographyTitle: 'Références',
93
- bibliography: [
94
- { name: 'Proportionnalité (mathématiques) — Wikipédia', url: 'https://fr.wikipedia.org/wiki/Proportionnalit%C3%A9' },
95
- { name: 'Ratios et proportions — Khan Academy', url: 'https://fr.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates' },
96
- ],
93
+
94
+ bibliography,
97
95
  schemas: [faqSchema, howToSchema, appSchema],
98
96
  seo: [
99
97
  {
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { RuleOfThreeUI } from '../ui';
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
86
87
  title: 'Kalkulator Aturan Tiga Sederhana',
87
88
  description: 'Selesaikan proporsi matematika secara instan. Alat definitif untuk menghitung jumlah, resep, diskon, dan konversi.',
88
89
  ui,
89
- faqTitle: 'Pertanyaan yang Sering Diajukan',
90
+
90
91
  faq: faqData,
91
92
  howTo: howToData,
92
- bibliographyTitle: 'Referensi',
93
- bibliography: [
94
- { name: 'Proporsionalitas (matematika) — Wikipedia', url: 'https://id.wikipedia.org/wiki/Proporsionalitas' },
95
- { name: 'Rasio dan proporsi — Khan Academy', url: 'https://id.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates' },
96
- ],
93
+
94
+ bibliography,
97
95
  schemas: [faqSchema, howToSchema, appSchema],
98
96
  seo: [
99
97
  {
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { RuleOfThreeUI } from '../ui';
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
86
87
  title: 'Calcolatore Regola del Tre Semplice',
87
88
  description: 'Risolvi proporzioni matematiche all\'istante. Lo strumento definitivo per calcolare quantità, ricette, sconti e conversioni.',
88
89
  ui,
89
- faqTitle: 'Domande Frequenti',
90
+
90
91
  faq: faqData,
91
92
  howTo: howToData,
92
- bibliographyTitle: 'Riferimenti',
93
- bibliography: [
94
- { name: 'Proporzionalità (matematica) — Wikipedia', url: 'https://it.wikipedia.org/wiki/Proporzionalit%C3%A0_(matematica)' },
95
- { name: 'Rapporti e proporzioni — Khan Academy', url: 'https://it.khanacademy.org/math/arithmetic-home/arith-review-ratios-rates' },
96
- ],
93
+
94
+ bibliography,
97
95
  schemas: [faqSchema, howToSchema, appSchema],
98
96
  seo: [
99
97
  {
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { RuleOfThreeUI } from '../ui';
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
86
87
  title: '比例計算機(三数法)',
87
88
  description: '数学的な比例計算を瞬時に解決します。数量、レシピ、割引、換算を計算するための決定版ツール。',
88
89
  ui,
89
- faqTitle: 'よくある質問',
90
+
90
91
  faq: faqData,
91
92
  howTo: howToData,
92
- bibliographyTitle: '参考文献',
93
- bibliography: [
94
- { name: '比例 — Wikipedia', url: 'https://ja.wikipedia.org/wiki/%E6%AF%94%E4%BE%8B' },
95
- { name: '比と比例 — Khan Academy', url: 'https://ja.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates' },
96
- ],
93
+
94
+ bibliography,
97
95
  schemas: [faqSchema, howToSchema, appSchema],
98
96
  seo: [
99
97
  {
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { RuleOfThreeUI } from '../ui';
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
86
87
  title: '단순 비례 계산기(삼수법)',
87
88
  description: '수학적 비례를 즉시 해결하세요. 수량, 레시피, 할인 및 변환을 계산하기 위한 결정적인 도구입니다.',
88
89
  ui,
89
- faqTitle: '자주 묻는 질문',
90
+
90
91
  faq: faqData,
91
92
  howTo: howToData,
92
- bibliographyTitle: '참고 문헌',
93
- bibliography: [
94
- { name: '비례 — 위키백과', url: 'https://ko.wikipedia.org/wiki/%EB%B9%84%EB%A1%80' },
95
- { name: '비와 비율 — Khan Academy', url: 'https://ko.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates' },
96
- ],
93
+
94
+ bibliography,
97
95
  schemas: [faqSchema, howToSchema, appSchema],
98
96
  seo: [
99
97
  {
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { RuleOfThreeUI } from '../ui';
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
86
87
  title: 'Eenvoudige regel van drie calculator',
87
88
  description: 'Los wiskundige verhoudingen direct op. De definitieve tool voor het berekenen van hoeveelheden, recepten, kortingen en conversies.',
88
89
  ui,
89
- faqTitle: 'Veelgestelde Vragen',
90
+
90
91
  faq: faqData,
91
92
  howTo: howToData,
92
- bibliographyTitle: 'Referenties',
93
- bibliography: [
94
- { name: 'Evenredigheid (wiskunde) — Wikipedia', url: 'https://nl.wikipedia.org/wiki/Evenredigheid' },
95
- { name: 'Verhoudingen en proporties — Khan Academy', url: 'https://nl.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates' },
96
- ],
93
+
94
+ bibliography,
97
95
  schemas: [faqSchema, howToSchema, appSchema],
98
96
  seo: [
99
97
  {
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { RuleOfThreeUI } from '../ui';
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
86
87
  title: 'Kalkulator Prostej Reguły Trzech',
87
88
  description: 'Błyskawicznie rozwiązuj proporcje matematyczne. Ostateczne narzędzie do obliczania ilości, przepisów, rabatów i konwersji.',
88
89
  ui,
89
- faqTitle: 'Często zadawane pytania',
90
+
90
91
  faq: faqData,
91
92
  howTo: howToData,
92
- bibliographyTitle: 'Źródła',
93
- bibliography: [
94
- { name: 'Proporcjonalność (matematyka) — Wikipedia', url: 'https://pl.wikipedia.org/wiki/Proporcjonalno%C5%9B%C4%87' },
95
- { name: 'Proporcje — Khan Academy', url: 'https://pl.khanacademy.org/math/algebra/x2f8bb11595b61c86:solve-equations-inequalities/x2f8bb11595b61c86:ratio-proportions/v/introduction-to-proportions' },
96
- ],
93
+
94
+ bibliography,
97
95
  schemas: [faqSchema, howToSchema, appSchema],
98
96
  seo: [
99
97
  {
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { RuleOfThreeUI } from '../ui';
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
86
87
  title: 'Calculadora de Regra de Três Simples',
87
88
  description: 'Resolva proporções matemáticas instantaneamente. A ferramenta definitiva para calcular quantidades, receitas, descontos e conversões.',
88
89
  ui,
89
- faqTitle: 'Perguntas Frequentes',
90
+
90
91
  faq: faqData,
91
92
  howTo: howToData,
92
- bibliographyTitle: 'Referências',
93
- bibliography: [
94
- { name: 'Proporcionalidade (matemática) — Wikipédia', url: 'https://pt.wikipedia.org/wiki/Proporcionalidade_(matem%C3%A1tica)' },
95
- { name: 'Razões e proporções — Khan Academy', url: 'https://pt.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates' },
96
- ],
93
+
94
+ bibliography,
97
95
  schemas: [faqSchema, howToSchema, appSchema],
98
96
  seo: [
99
97
  {
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { RuleOfThreeUI } from '../ui';
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
86
87
  title: 'Калькулятор простой пропорции (правила трех)',
87
88
  description: 'Мгновенно решайте математические пропорции. Окончательный инструмент для расчета количеств, рецептов, скидок и конверсий.',
88
89
  ui,
89
- faqTitle: 'Часто задаваемые вопросы',
90
+
90
91
  faq: faqData,
91
92
  howTo: howToData,
92
- bibliographyTitle: 'Источники',
93
- bibliography: [
94
- { name: 'Пропорциональность (математика) — Википедия', url: 'https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%BF%D0%BE%D1%80%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8C' },
95
- { name: 'Отношения и пропорции — Khan Academy', url: 'https://ru.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates' },
96
- ],
93
+
94
+ bibliography,
97
95
  schemas: [faqSchema, howToSchema, appSchema],
98
96
  seo: [
99
97
  {
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { RuleOfThreeUI } from '../ui';
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
86
87
  title: 'Enkel tre regeln kalkylator',
87
88
  description: 'Lös matematiska proportioner omedelbart. Det definitiva verktyget för att beräkna mängder, recept, rabatter och konverteringar.',
88
89
  ui,
89
- faqTitle: 'Vanliga frågor',
90
+
90
91
  faq: faqData,
91
92
  howTo: howToData,
92
- bibliographyTitle: 'Referenser',
93
- bibliography: [
94
- { name: 'Proportionalitet (matematik) — Wikipedia', url: 'https://sv.wikipedia.org/wiki/Proportionalitet' },
95
- { name: 'Förhållanden och proportioner — Khan Academy', url: 'https://sv.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates' },
96
- ],
93
+
94
+ bibliography,
97
95
  schemas: [faqSchema, howToSchema, appSchema],
98
96
  seo: [
99
97
  {
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { RuleOfThreeUI } from '../ui';
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
86
87
  title: 'Basit Orantı (Dreisatz) Hesaplayıcı',
87
88
  description: 'Matematiksel orantıları anında çözün. Miktarları, tarifleri, indirimleri ve dönüşümleri hesaplamak için kesin çözüm.',
88
89
  ui,
89
- faqTitle: 'Sıkça Sorulan Sorular',
90
+
90
91
  faq: faqData,
91
92
  howTo: howToData,
92
- bibliographyTitle: 'Kaynaklar',
93
- bibliography: [
94
- { name: 'Orantı (matematik) — Vikipedi', url: 'https://tr.wikipedia.org/wiki/Orant%C4%B1' },
95
- { name: 'Oran ve orantı — Khan Academy', url: 'https://tr.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates' },
96
- ],
93
+
94
+ bibliography,
97
95
  schemas: [faqSchema, howToSchema, appSchema],
98
96
  seo: [
99
97
  {
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { RuleOfThreeUI } from '../ui';
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
86
87
  title: '简单三数法比例计算器',
87
88
  description: '即时解决数学比例问题。用于计算数量、配方、折扣和转换的权威工具。',
88
89
  ui,
89
- faqTitle: '常见问题',
90
+
90
91
  faq: faqData,
91
92
  howTo: howToData,
92
- bibliographyTitle: '参考文献',
93
- bibliography: [
94
- { name: '比例(数学) — 维基百科', url: 'https://zh.wikipedia.org/wiki/%E6%AF%94%E4%BE%8B' },
95
- { name: '比和比例 — 可汗学院', url: 'https://zh.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates' },
96
- ],
93
+
94
+ bibliography,
97
95
  schemas: [faqSchema, howToSchema, appSchema],
98
96
  seo: [
99
97
  {
@@ -9,6 +9,7 @@ interface Props {
9
9
 
10
10
  const { locale = 'es' } = Astro.props;
11
11
  const content = await ruleOfThree.i18n[locale]?.();
12
+ if (!content) return null;
12
13
  ---
13
14
 
14
- {content && <SEORenderer content={{ locale, sections: content.seo }} />}
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 { seoContentOptimizer } 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 seoContentOptimizer.i18n[locale]?.();
3
+ import { bibliography } from './bibliography';
12
4
  ---
13
5
 
14
- {content && <SharedBibliography links={content.bibliography} />}
6
+ <SharedBibliography links={bibliography} />
@@ -0,0 +1,6 @@
1
+ import type { BibliographyEntry } from '../../types';
2
+
3
+ export const bibliography: BibliographyEntry[] = [
4
+ { name: "Google's SEO Starter Guide", url: 'https://developers.google.com/search/docs/fundamentals/seo-starter-guide' },
5
+ { name: 'Yoast SEO readability criteria', url: 'https://yoast.com/what-is-readability/' },
6
+ ];
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { SeoContentOptimizerUI } from '../ui';
@@ -89,14 +90,11 @@ export const content: ToolLocaleContent<SeoContentOptimizerUI> = {
89
90
  title: 'SEO Content Optimizer',
90
91
  description: 'Analysieren Sie Keyword-Dichte, Lesbarkeit und technische HTML-Struktur Ihrer Texte in Echtzeit. Kostenloses und privates SEO-Tool.',
91
92
  ui,
92
- faqTitle: 'Häufig gestellte Fragen',
93
+
93
94
  faq: faqData,
94
95
  howTo: howToData,
95
- bibliographyTitle: 'Referenzen',
96
- bibliography: [
97
- { name: "Googles Startleitfaden zur Suchmaschinenoptimierung (SEO)", url: 'https://developers.google.com/search/docs/fundamentals/seo-starter-guide?hl=de' },
98
- { name: 'Yoast SEO Lesbarkeitskriterien', url: 'https://yoast.com/what-is-readability/' },
99
- ],
96
+
97
+ bibliography,
100
98
  schemas: [faqSchema, howToSchema, appSchema],
101
99
  seo: [
102
100
  { type: 'title', level: 2, text: 'SEO Content Optimizer: Keywords, Lesbarkeit und Struktur' },
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { SeoContentOptimizerUI } from '../ui';
@@ -89,14 +90,11 @@ export const content: ToolLocaleContent<SeoContentOptimizerUI> = {
89
90
  title: 'SEO Content Optimizer',
90
91
  description: 'Analyze keyword density, readability, and technical HTML structure of your texts in real time. Free and private SEO tool.',
91
92
  ui,
92
- faqTitle: 'Frequently Asked Questions',
93
+
93
94
  faq: faqData,
94
95
  howTo: howToData,
95
- bibliographyTitle: 'References',
96
- bibliography: [
97
- { name: "Google's SEO Starter Guide", url: 'https://developers.google.com/search/docs/fundamentals/seo-starter-guide' },
98
- { name: 'Yoast SEO readability criteria', url: 'https://yoast.com/what-is-readability/' },
99
- ],
96
+
97
+ bibliography,
100
98
  schemas: [faqSchema, howToSchema, appSchema],
101
99
  seo: [
102
100
  { type: 'title', level: 2, text: 'SEO Content Optimizer: Keywords, Readability and Structure' },
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { SeoContentOptimizerUI } from '../ui';
@@ -89,14 +90,11 @@ export const content: ToolLocaleContent<SeoContentOptimizerUI> = {
89
90
  title: 'Optimizador de Contenido SEO',
90
91
  description: 'Analiza la densidad de palabras clave, legibilidad y estructura técnica HTML de tus textos en tiempo real. Herramienta SEO privada y gratuita.',
91
92
  ui,
92
- faqTitle: 'Preguntas Frecuentes',
93
+
93
94
  faq: faqData,
94
95
  howTo: howToData,
95
- bibliographyTitle: 'Referencias',
96
- bibliography: [
97
- { name: 'Guía de inicio de SEO de Google', url: 'https://developers.google.com/search/docs/fundamentals/seo-starter-guide' },
98
- { name: 'Criterios de legibilidad Yoast SEO', url: 'https://yoast.com/what-is-readability/' },
99
- ],
96
+
97
+ bibliography,
100
98
  schemas: [faqSchema, howToSchema, appSchema],
101
99
  seo: [
102
100
  { type: 'title', level: 2, text: 'Optimizador de Contenido SEO: Keywords, Legibilidad y Estructura' },
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { SeoContentOptimizerUI } from '../ui';
@@ -89,14 +90,11 @@ export const content: ToolLocaleContent<SeoContentOptimizerUI> = {
89
90
  title: 'Optimiseur de Contenu SEO',
90
91
  description: "Analysez la densité des mots-clés, la lisibilité et la structure HTML technique de vos textes en temps réel. Outil SEO gratuit et privé.",
91
92
  ui,
92
- faqTitle: 'Questions Fréquentes',
93
+
93
94
  faq: faqData,
94
95
  howTo: howToData,
95
- bibliographyTitle: 'Références',
96
- bibliography: [
97
- { name: 'Guide de démarrage SEO de Google', url: 'https://developers.google.com/search/docs/fundamentals/seo-starter-guide' },
98
- { name: 'Critères de lisibilité Yoast SEO', url: 'https://yoast.com/what-is-readability/' },
99
- ],
96
+
97
+ bibliography,
100
98
  schemas: [faqSchema, howToSchema, appSchema],
101
99
  seo: [
102
100
  { type: 'title', level: 2, text: 'Optimiseur de Contenu SEO : Mots-Clés, Lisibilité et Structure' },
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { SeoContentOptimizerUI } from '../ui';
@@ -89,14 +90,11 @@ export const content: ToolLocaleContent<SeoContentOptimizerUI> = {
89
90
  title: 'Pengoptimal Konten SEO',
90
91
  description: 'Analisis kepadatan kata kunci, keterbacaan, dan struktur HTML teknis teks Anda secara real-time. Alat SEO gratis dan pribadi.',
91
92
  ui,
92
- faqTitle: 'Pertanyaan yang Sering Diajukan',
93
+
93
94
  faq: faqData,
94
95
  howTo: howToData,
95
- bibliographyTitle: 'Referensi',
96
- bibliography: [
97
- { name: "Panduan Memulai SEO dari Google", url: 'https://developers.google.com/search/docs/fundamentals/seo-starter-guide?hl=id' },
98
- { name: 'Kriteria keterbacaan Yoast SEO', url: 'https://yoast.com/what-is-readability/' },
99
- ],
96
+
97
+ bibliography,
100
98
  schemas: [faqSchema, howToSchema, appSchema],
101
99
  seo: [
102
100
  { type: 'title', level: 2, text: 'Pengoptimal Konten SEO: Kata Kunci, Keterbacaan, dan Struktur' },
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { SeoContentOptimizerUI } from '../ui';
@@ -89,14 +90,11 @@ export const content: ToolLocaleContent<SeoContentOptimizerUI> = {
89
90
  title: 'Ottimizzatore di Contenuti SEO',
90
91
  description: 'Analizza la densità delle parole chiave, la leggibilità e la struttura HTML tecnica dei tuoi testi in tempo reale. Strumento SEO gratuito e privato.',
91
92
  ui,
92
- faqTitle: 'Domande Frequenti',
93
+
93
94
  faq: faqData,
94
95
  howTo: howToData,
95
- bibliographyTitle: 'Riferimenti',
96
- bibliography: [
97
- { name: "Guida introduttiva di Google alla SEO", url: 'https://developers.google.com/search/docs/fundamentals/seo-starter-guide?hl=it' },
98
- { name: 'Criteri di leggibilità Yoast SEO', url: 'https://yoast.com/what-is-readability/' },
99
- ],
96
+
97
+ bibliography,
100
98
  schemas: [faqSchema, howToSchema, appSchema],
101
99
  seo: [
102
100
  { type: 'title', level: 2, text: 'Ottimizzatore di Contenuti SEO: Parole Chiave, Leggibilità e Struttura' },
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { SeoContentOptimizerUI } from '../ui';
@@ -89,14 +90,11 @@ export const content: ToolLocaleContent<SeoContentOptimizerUI> = {
89
90
  title: 'SEOコンテンツ最適化ツール',
90
91
  description: 'テキストのキーワード密度、読みやすさ、テクニカルHTML構造をリアルタイムで分析します。サーバーにデータを送信しない、無料でプライバシーに配慮したSEOツールです。',
91
92
  ui,
92
- faqTitle: 'よくある質問',
93
+
93
94
  faq: faqData,
94
95
  howTo: howToData,
95
- bibliographyTitle: '参考文献',
96
- bibliography: [
97
- { name: 'Google SEOスターターガイド', url: 'https://developers.google.com/search/docs/fundamentals/seo-starter-guide?hl=ja' },
98
- { name: 'Yoast SEOの読みやすさ基準', url: 'https://yoast.com/what-is-readability/' },
99
- ],
96
+
97
+ bibliography,
100
98
  schemas: [faqSchema, howToSchema, appSchema],
101
99
  seo: [
102
100
  { type: 'title', level: 2, text: 'SEOコンテンツ最適化:キーワード、読みやすさ、階層構造' },
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { SeoContentOptimizerUI } from '../ui';
@@ -89,14 +90,11 @@ export const content: ToolLocaleContent<SeoContentOptimizerUI> = {
89
90
  title: 'SEO 콘텐츠 최적화 도구',
90
91
  description: '텍스트의 키워드 밀도, 가독성 및 기술 HTML 구조를 실시간으로 분석하세요. 무료로 제공되는 개인정보 보호 SEO 도구입니다.',
91
92
  ui,
92
- faqTitle: '자주 묻는 질문',
93
+
93
94
  faq: faqData,
94
95
  howTo: howToData,
95
- bibliographyTitle: '참고 문헌',
96
- bibliography: [
97
- { name: 'Google 검색 엔진 최적화(SEO) 기본 가이드', url: 'https://developers.google.com/search/docs/fundamentals/seo-starter-guide?hl=ko' },
98
- { name: 'Yoast SEO 가독성 기준', url: 'https://yoast.com/what-is-readability/' },
99
- ],
96
+
97
+ bibliography,
100
98
  schemas: [faqSchema, howToSchema, appSchema],
101
99
  seo: [
102
100
  { type: 'title', level: 2, text: 'SEO 콘텐츠 최적화: 키워드, 가독성 및 구조' },
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { SeoContentOptimizerUI } from '../ui';
@@ -89,14 +90,11 @@ export const content: ToolLocaleContent<SeoContentOptimizerUI> = {
89
90
  title: 'SEO Content Optimizer',
90
91
  description: 'Analyseer de zoekwoorddichtheid, leesbaarheid en technische HTML-structuur van uw teksten in realtime. Gratis en privé SEO-tool.',
91
92
  ui,
92
- faqTitle: 'Veelgestelde Vragen',
93
+
93
94
  faq: faqData,
94
95
  howTo: howToData,
95
- bibliographyTitle: 'Referenties',
96
- bibliography: [
97
- { name: "Google's SEO-starthandleiding", url: 'https://developers.google.com/search/docs/fundamentals/seo-starter-guide?hl=nl' },
98
- { name: 'Yoast SEO leesbaarheidscriteria', url: 'https://yoast.com/what-is-readability/' },
99
- ],
96
+
97
+ bibliography,
100
98
  schemas: [faqSchema, howToSchema, appSchema],
101
99
  seo: [
102
100
  { type: 'title', level: 2, text: 'SEO Content Optimizer: Zoekwoorden, Leesbaarheid en Structuur' },
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { SeoContentOptimizerUI } from '../ui';
@@ -89,14 +90,11 @@ export const content: ToolLocaleContent<SeoContentOptimizerUI> = {
89
90
  title: 'Optymalizator Treści SEO',
90
91
  description: 'Analizuj gęstość słów kluczowych, czytelność i techniczną strukturę HTML swoich tekstów w czasie rzeczywistym. Darmowe i prywatne narzędzie SEO.',
91
92
  ui,
92
- faqTitle: 'Często zadawane pytania',
93
+
93
94
  faq: faqData,
94
95
  howTo: howToData,
95
- bibliographyTitle: 'Źródła',
96
- bibliography: [
97
- { name: "Wprowadzenie Google do SEO", url: 'https://developers.google.com/search/docs/fundamentals/seo-starter-guide?hl=pl' },
98
- { name: 'Kryteria czytelności Yoast SEO', url: 'https://yoast.com/what-is-readability/' },
99
- ],
96
+
97
+ bibliography,
100
98
  schemas: [faqSchema, howToSchema, appSchema],
101
99
  seo: [
102
100
  { type: 'title', level: 2, text: 'Optymalizator treści SEO: słowa kluczowe, czytelność i struktura' },
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { ToolLocaleContent } from '../../../types';
2
3
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
4
  import type { SeoContentOptimizerUI } from '../ui';
@@ -89,14 +90,11 @@ export const content: ToolLocaleContent<SeoContentOptimizerUI> = {
89
90
  title: 'Otimizador de Conteúdo SEO',
90
91
  description: 'Analise a densidade de palavras-chave, legibilidade e estrutura HTML técnica dos seus textos em tempo real. Ferramenta de SEO gratuita e privada.',
91
92
  ui,
92
- faqTitle: 'Perguntas Frequentes',
93
+
93
94
  faq: faqData,
94
95
  howTo: howToData,
95
- bibliographyTitle: 'Referências',
96
- bibliography: [
97
- { name: "Guia de SEO para iniciantes do Google", url: 'https://developers.google.com/search/docs/fundamentals/seo-starter-guide?hl=pt-br' },
98
- { name: 'Critérios de legibilidade Yoast SEO', url: 'https://yoast.com/what-is-readability/' },
99
- ],
96
+
97
+ bibliography,
100
98
  schemas: [faqSchema, howToSchema, appSchema],
101
99
  seo: [
102
100
  { type: 'title', level: 2, text: 'Otimizador de Conteúdo SEO: Palavras-Chave, Legibilidade e Estrutura' },