@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 { TextPixelCalculatorUI } from '../ui';
@@ -80,14 +81,11 @@ export const content: ToolLocaleContent<TextPixelCalculatorUI> = {
80
81
  title: 'Text Pixelbreitenrechner',
81
82
  description: 'Berechnen Sie genau, wie breit ein beliebiger Text in Pixeln ist, basierend auf Schriftart, Größe und Stil. Kostenloses Tool für Designer und Entwickler.',
82
83
  ui,
83
- faqTitle: 'Häufig gestellte Fragen',
84
+
84
85
  faq: faqData,
85
86
  howTo: howToData,
86
- bibliographyTitle: 'Referenzen',
87
- bibliography: [
88
- { name: 'W3C: CSS Text Module Level 3', url: 'https://www.w3.org/TR/css-text-3/' },
89
- { name: 'Google Fonts: Understanding variable fonts', url: 'https://fonts.google.com/knowledge/glossary/variable_fonts' },
90
- ],
87
+
88
+ bibliography,
91
89
  schemas: [faqSchema, howToSchema, appSchema],
92
90
  seo: [
93
91
  { type: 'title', level: 2, text: 'Messen Sie die exakte Pixelbreite eines beliebigen Textes' },
@@ -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 { TextPixelCalculatorUI } from '../ui';
@@ -80,14 +81,11 @@ export const content: ToolLocaleContent<TextPixelCalculatorUI> = {
80
81
  title: 'Text Pixel Width Calculator',
81
82
  description: 'Accurately calculate how wide any text is in pixels based on font, size and style. Free tool for designers and developers.',
82
83
  ui,
83
- faqTitle: 'Frequently Asked Questions',
84
+
84
85
  faq: faqData,
85
86
  howTo: howToData,
86
- bibliographyTitle: 'References',
87
- bibliography: [
88
- { name: 'W3C: CSS Text Module Level 3', url: 'https://www.w3.org/TR/css-text-3/' },
89
- { name: 'Google Fonts: Understanding variable fonts', url: 'https://fonts.google.com/knowledge/glossary/variable_fonts' },
90
- ],
87
+
88
+ bibliography,
91
89
  schemas: [faqSchema, howToSchema, appSchema],
92
90
  seo: [
93
91
  { type: 'title', level: 2, text: 'Measure the exact pixel width of any text' },
@@ -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 { TextPixelCalculatorUI } from '../ui';
@@ -80,14 +81,11 @@ export const content: ToolLocaleContent<TextPixelCalculatorUI> = {
80
81
  title: 'Calculadora de Ancho de Texto en Píxeles',
81
82
  description: 'Calcula con precisión cuánto ancho ocupa cualquier texto en píxeles según su tipografía, tamaño y estilo. Herramienta gratuita para diseñadores y desarrolladores.',
82
83
  ui,
83
- faqTitle: 'Preguntas Frecuentes',
84
+
84
85
  faq: faqData,
85
86
  howTo: howToData,
86
- bibliographyTitle: 'Referencias Técnicas',
87
- bibliography: [
88
- { name: 'W3C: Gestión de la tipografía y el renderizado de texto (CSS Text Level 3)', url: 'https://www.w3.org/TR/css-text-3/' },
89
- { name: 'Google Fonts: Entendiendo las fuentes variables', url: 'https://fonts.google.com/knowledge/glossary/variable_fonts' },
90
- ],
87
+
88
+ bibliography,
91
89
  schemas: [faqSchema, howToSchema, appSchema],
92
90
  seo: [
93
91
  { type: 'title', level: 2, text: 'Mide el ancho exacto de cualquier texto en píxeles' },
@@ -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 { TextPixelCalculatorUI } from '../ui';
@@ -80,14 +81,11 @@ export const content: ToolLocaleContent<TextPixelCalculatorUI> = {
80
81
  title: 'Calculateur de Largeur de Texte en Pixels',
81
82
  description: 'Calculez avec précision l\'espace horizontal occupé par votre texte en pixels. Outil gratuit pour designers et développeurs.',
82
83
  ui,
83
- faqTitle: 'Questions Fréquentes',
84
+
84
85
  faq: faqData,
85
86
  howTo: howToData,
86
- bibliographyTitle: 'Références',
87
- bibliography: [
88
- { name: 'W3C : Module CSS Text niveau 3', url: 'https://www.w3.org/TR/css-text-3/' },
89
- { name: 'Google Fonts : Comprendre les polices variables', url: 'https://fonts.google.com/knowledge/glossary/variable_fonts' },
90
- ],
87
+
88
+ bibliography,
91
89
  schemas: [faqSchema, howToSchema, appSchema],
92
90
  seo: [
93
91
  { type: 'title', level: 2, text: 'Mesurez la largeur exacte en pixels de n\'importe quel texte' },
@@ -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 { TextPixelCalculatorUI } from '../ui';
@@ -80,14 +81,11 @@ export const content: ToolLocaleContent<TextPixelCalculatorUI> = {
80
81
  title: 'Kalkulator Lebar Piksel Teks',
81
82
  description: 'Hitung secara akurat seberapa lebar teks apa pun dalam piksel berdasarkan font, ukuran, dan gaya. Alat gratis untuk desainer dan pengembang.',
82
83
  ui,
83
- faqTitle: 'Pertanyaan yang Sering Diajukan',
84
+
84
85
  faq: faqData,
85
86
  howTo: howToData,
86
- bibliographyTitle: 'Referensi',
87
- bibliography: [
88
- { name: 'W3C: CSS Text Module Level 3', url: 'https://www.w3.org/TR/css-text-3/' },
89
- { name: 'Google Fonts: Understanding variable fonts', url: 'https://fonts.google.com/knowledge/glossary/variable_fonts' },
90
- ],
87
+
88
+ bibliography,
91
89
  schemas: [faqSchema, howToSchema, appSchema],
92
90
  seo: [
93
91
  { type: 'title', level: 2, text: 'Ukur lebar piksel yang tepat dari teks apa pun' },
@@ -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 { TextPixelCalculatorUI } from '../ui';
@@ -80,14 +81,11 @@ export const content: ToolLocaleContent<TextPixelCalculatorUI> = {
80
81
  title: 'Calcolatore di larghezza pixel del testo',
81
82
  description: 'Calcola accuratamente quanto è largo qualsiasi testo in pixel in base al carattere, alle dimensioni e allo stile. Strumento gratuito per designer e sviluppatori.',
82
83
  ui,
83
- faqTitle: 'Domande Frequenti',
84
+
84
85
  faq: faqData,
85
86
  howTo: howToData,
86
- bibliographyTitle: 'Riferimenti',
87
- bibliography: [
88
- { name: 'W3C: CSS Text Module Level 3', url: 'https://www.w3.org/TR/css-text-3/' },
89
- { name: 'Google Fonts: Understanding variable fonts', url: 'https://fonts.google.com/knowledge/glossary/variable_fonts' },
90
- ],
87
+
88
+ bibliography,
91
89
  schemas: [faqSchema, howToSchema, appSchema],
92
90
  seo: [
93
91
  { type: 'title', level: 2, text: 'Misura l\'esatta larghezza in pixel di qualsiasi testo' },
@@ -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 { TextPixelCalculatorUI } from '../ui';
@@ -80,14 +81,11 @@ export const content: ToolLocaleContent<TextPixelCalculatorUI> = {
80
81
  title: 'テキストピクセル幅計算機',
81
82
  description: 'フォント、サイズ、スタイルに基づいて、テキストがピクセル単位でどれくらいの幅になるかを正確に計算します。デザイナーや開発者のための無料ツールです。',
82
83
  ui,
83
- faqTitle: 'よくある質問',
84
+
84
85
  faq: faqData,
85
86
  howTo: howToData,
86
- bibliographyTitle: '参考文献',
87
- bibliography: [
88
- { name: 'W3C: CSS Text Module Level 3', url: 'https://www.w3.org/TR/css-text-3/' },
89
- { name: 'Google Fonts: 可変フォントについて', url: 'https://fonts.google.com/knowledge/glossary/variable_fonts' },
90
- ],
87
+
88
+ bibliography,
91
89
  schemas: [faqSchema, howToSchema, appSchema],
92
90
  seo: [
93
91
  { type: 'title', level: 2, text: 'あらゆるテキストの正確なピクセル幅を測定' },
@@ -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 { TextPixelCalculatorUI } from '../ui';
@@ -80,14 +81,11 @@ export const content: ToolLocaleContent<TextPixelCalculatorUI> = {
80
81
  title: '텍스트 픽셀 너비 계산기',
81
82
  description: '글꼴, 크기 및 스타일에 따라 텍스트가 픽셀 단위로 얼마나 넓은지 정확하게 계산합니다. 디자이너와 개발자를 위한 무료 도구입니다.',
82
83
  ui,
83
- faqTitle: '자주 묻는 질문',
84
+
84
85
  faq: faqData,
85
86
  howTo: howToData,
86
- bibliographyTitle: '참고 문헌',
87
- bibliography: [
88
- { name: 'W3C: CSS Text Module Level 3', url: 'https://www.w3.org/TR/css-text-3/' },
89
- { name: 'Google Fonts: 가변 글꼴 이해하기', url: 'https://fonts.google.com/knowledge/glossary/variable_fonts' },
90
- ],
87
+
88
+ bibliography,
91
89
  schemas: [faqSchema, howToSchema, appSchema],
92
90
  seo: [
93
91
  { type: 'title', level: 2, text: '모든 텍스트의 정확한 픽셀 너비 측정' },
@@ -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 { TextPixelCalculatorUI } from '../ui';
@@ -80,14 +81,11 @@ export const content: ToolLocaleContent<TextPixelCalculatorUI> = {
80
81
  title: 'Tekst Pixelbreedte Calculator',
81
82
  description: 'Bereken nauwkeurig hoe breed een tekst in pixels is op basis van lettertype, grootte en stijl. Gratis tool voor ontwerpers en ontwikkelaars.',
82
83
  ui,
83
- faqTitle: 'Veelgestelde Vragen',
84
+
84
85
  faq: faqData,
85
86
  howTo: howToData,
86
- bibliographyTitle: 'Referenties',
87
- bibliography: [
88
- { name: 'W3C: CSS Text Module Level 3', url: 'https://www.w3.org/TR/css-text-3/' },
89
- { name: 'Google Fonts: Understanding variable fonts', url: 'https://fonts.google.com/knowledge/glossary/variable_fonts' },
90
- ],
87
+
88
+ bibliography,
91
89
  schemas: [faqSchema, howToSchema, appSchema],
92
90
  seo: [
93
91
  { type: 'title', level: 2, text: 'Meet de exacte pixelbreedte van elke tekst' },
@@ -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 { TextPixelCalculatorUI } from '../ui';
@@ -80,14 +81,11 @@ export const content: ToolLocaleContent<TextPixelCalculatorUI> = {
80
81
  title: 'Kalkulator szerokości pikseli tekstu',
81
82
  description: 'Dokładnie oblicz, jak szeroki jest dowolny tekst w pikselach na podstawie czcionki, rozmiaru i stylu. Darmowe narzędzie dla projektantów i programistów.',
82
83
  ui,
83
- faqTitle: 'Często zadawane pytania',
84
+
84
85
  faq: faqData,
85
86
  howTo: howToData,
86
- bibliographyTitle: 'Źródła',
87
- bibliography: [
88
- { name: 'W3C: CSS Text Module Level 3', url: 'https://www.w3.org/TR/css-text-3/' },
89
- { name: 'Google Fonts: Understanding variable fonts', url: 'https://fonts.google.com/knowledge/glossary/variable_fonts' },
90
- ],
87
+
88
+ bibliography,
91
89
  schemas: [faqSchema, howToSchema, appSchema],
92
90
  seo: [
93
91
  { type: 'title', level: 2, text: 'Zmierz dokładną szerokość dowolnego tekstu w pikselach' },
@@ -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 { TextPixelCalculatorUI } from '../ui';
@@ -80,14 +81,11 @@ export const content: ToolLocaleContent<TextPixelCalculatorUI> = {
80
81
  title: 'Calculadora de Largura de Píxeis de Texto',
81
82
  description: 'Calcule com precisão a largura de qualquer texto em píxeis com base na fonte, tamanho e estilo. Ferramenta gratuita para designers e programadores.',
82
83
  ui,
83
- faqTitle: 'Perguntas Frequentes',
84
+
84
85
  faq: faqData,
85
86
  howTo: howToData,
86
- bibliographyTitle: 'Referências',
87
- bibliography: [
88
- { name: 'W3C: CSS Text Module Level 3', url: 'https://www.w3.org/TR/css-text-3/' },
89
- { name: 'Google Fonts: Understanding variable fonts', url: 'https://fonts.google.com/knowledge/glossary/variable_fonts' },
90
- ],
87
+
88
+ bibliography,
91
89
  schemas: [faqSchema, howToSchema, appSchema],
92
90
  seo: [
93
91
  { type: 'title', level: 2, text: 'Meça a largura exata em píxeis de qualquer texto' },
@@ -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 { TextPixelCalculatorUI } from '../ui';
@@ -80,14 +81,11 @@ export const content: ToolLocaleContent<TextPixelCalculatorUI> = {
80
81
  title: 'Калькулятор ширины текста в пикселях',
81
82
  description: 'Точно рассчитайте ширину любого текста в пикселях на основе шрифта, размера и стиля. Бесплатный инструмент для дизайнеров и разработчиков.',
82
83
  ui,
83
- faqTitle: 'Часто задаваемые вопросы',
84
+
84
85
  faq: faqData,
85
86
  howTo: howToData,
86
- bibliographyTitle: 'Источники',
87
- bibliography: [
88
- { name: 'W3C: CSS Text Module Level 3', url: 'https://www.w3.org/TR/css-text-3/' },
89
- { name: 'Google Fonts: Understanding variable fonts', url: 'https://fonts.google.com/knowledge/glossary/variable_fonts' },
90
- ],
87
+
88
+ bibliography,
91
89
  schemas: [faqSchema, howToSchema, appSchema],
92
90
  seo: [
93
91
  { type: 'title', level: 2, text: 'Измерьте точную ширину любого текста в пикселях' },
@@ -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 { TextPixelCalculatorUI } from '../ui';
@@ -80,14 +81,11 @@ export const content: ToolLocaleContent<TextPixelCalculatorUI> = {
80
81
  title: 'Text Pixel Beräknare',
81
82
  description: 'Beräkna exakt hur bred en text är i pixlar baserat på typsnitt, storlek och stil. Gratis verktyg för designers och utvecklare.',
82
83
  ui,
83
- faqTitle: 'Vanliga frågor',
84
+
84
85
  faq: faqData,
85
86
  howTo: howToData,
86
- bibliographyTitle: 'Referenser',
87
- bibliography: [
88
- { name: 'W3C: CSS Text Module Level 3', url: 'https://www.w3.org/TR/css-text-3/' },
89
- { name: 'Google Fonts: Understanding variable fonts', url: 'https://fonts.google.com/knowledge/glossary/variable_fonts' },
90
- ],
87
+
88
+ bibliography,
91
89
  schemas: [faqSchema, howToSchema, appSchema],
92
90
  seo: [
93
91
  { type: 'title', level: 2, text: 'Mät den exakta pixelbredden för valfri text' },
@@ -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 { TextPixelCalculatorUI } from '../ui';
@@ -80,14 +81,11 @@ export const content: ToolLocaleContent<TextPixelCalculatorUI> = {
80
81
  title: 'Metin Piksel Genişliği Hesaplayıcı',
81
82
  description: 'Yazı tipi, boyut ve stile göre herhangi bir metnin kaç piksel genişliğinde olduğunu doğru bir şekilde hesaplayın. Tasarımcılar ve geliştiriciler için ücretsiz araç.',
82
83
  ui,
83
- faqTitle: 'Sıkça Sorulan Sorular',
84
+
84
85
  faq: faqData,
85
86
  howTo: howToData,
86
- bibliographyTitle: 'Kaynaklar',
87
- bibliography: [
88
- { name: 'W3C: CSS Text Module Level 3', url: 'https://www.w3.org/TR/css-text-3/' },
89
- { name: 'Google Fonts: Understanding variable fonts', url: 'https://fonts.google.com/knowledge/glossary/variable_fonts' },
90
- ],
87
+
88
+ bibliography,
91
89
  schemas: [faqSchema, howToSchema, appSchema],
92
90
  seo: [
93
91
  { type: 'title', level: 2, text: 'Herhangi bir metnin tam piksel genişliğini ölçün' },
@@ -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 { TextPixelCalculatorUI } from '../ui';
@@ -80,14 +81,11 @@ export const content: ToolLocaleContent<TextPixelCalculatorUI> = {
80
81
  title: '文本像素宽度计算器',
81
82
  description: '根据字体、大小和样式精确计算任何文本在像素上的宽度。专为设计师和开发者提供的免费工具。',
82
83
  ui,
83
- faqTitle: '常见问题',
84
+
84
85
  faq: faqData,
85
86
  howTo: howToData,
86
- bibliographyTitle: '参考文献',
87
- bibliography: [
88
- { name: 'W3C: CSS 文本模块第 3 级', url: 'https://www.w3.org/TR/css-text-3/' },
89
- { name: 'Google Fonts: 了解可变字体', url: 'https://fonts.google.com/knowledge/glossary/variable_fonts' },
90
- ],
87
+
88
+ bibliography,
91
89
  schemas: [faqSchema, howToSchema, appSchema],
92
90
  seo: [
93
91
  { type: 'title', level: 2, text: '测量任何文本的精确像素宽度' },
@@ -9,6 +9,7 @@ interface Props {
9
9
 
10
10
  const { locale = 'es' } = Astro.props;
11
11
  const content = await textPixelCalculator.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 { whatsappLink } 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 whatsappLink.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: 'How to use the click to chat feature — WhatsApp Help Center', url: 'https://faq.whatsapp.com/591339899867293' },
5
+ { name: 'API Click to chat: parameters and formats — WhatsApp', url: 'https://faq.whatsapp.com/425559092497645' },
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 { WhatsappLinkUI } from '../ui';
@@ -76,14 +77,11 @@ export const content: ToolLocaleContent<WhatsappLinkUI> = {
76
77
  title: 'WhatsApp Link Generator mit QR',
77
78
  description: 'Erstellen Sie direkte WhatsApp-Chat-Links mit vorformulierter Nachricht und QR-Code. Kostenloses Tool, keine Registrierung, 100 % privat.',
78
79
  ui,
79
- faqTitle: 'Häufig gestellte Fragen',
80
+
80
81
  faq: faqData,
81
82
  howTo: howToData,
82
- bibliographyTitle: 'Referenzen',
83
- bibliography: [
84
- { name: 'So verwenden Sie die Funktion „Click to Chat“ — WhatsApp Hilfebereich', url: 'https://faq.whatsapp.com/591339899867293' },
85
- { name: 'API Click to chat: Parameter und Formate — WhatsApp', url: 'https://faq.whatsapp.com/425559092497645' },
86
- ],
83
+
84
+ bibliography,
87
85
  schemas: [faqSchema, howToSchema, appSchema],
88
86
  seo: [
89
87
  { type: 'title', level: 2, text: 'Generieren Sie kurze Direktlinks für WhatsApp' },
@@ -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 { WhatsappLinkUI } from '../ui';
@@ -76,14 +77,11 @@ export const content: ToolLocaleContent<WhatsappLinkUI> = {
76
77
  title: 'WhatsApp Link Generator with QR',
77
78
  description: 'Create direct WhatsApp chat links with pre-filled message and QR code. Free tool, no registration, 100% private.',
78
79
  ui,
79
- faqTitle: 'Frequently Asked Questions',
80
+
80
81
  faq: faqData,
81
82
  howTo: howToData,
82
- bibliographyTitle: 'References',
83
- bibliography: [
84
- { name: 'How to use the click to chat feature — WhatsApp Help Center', url: 'https://faq.whatsapp.com/591339899867293' },
85
- { name: 'API Click to chat: parameters and formats — WhatsApp', url: 'https://faq.whatsapp.com/425559092497645' },
86
- ],
83
+
84
+ bibliography,
87
85
  schemas: [faqSchema, howToSchema, appSchema],
88
86
  seo: [
89
87
  { type: 'title', level: 2, text: 'Generate short direct links for WhatsApp' },
@@ -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 { WhatsappLinkUI } from '../ui';
@@ -76,14 +77,11 @@ export const content: ToolLocaleContent<WhatsappLinkUI> = {
76
77
  title: 'Generador de Enlace WhatsApp con QR',
77
78
  description: 'Crea enlaces directos a tu chat de WhatsApp con mensaje predefinido y código QR. Herramienta gratuita, sin registro y 100% privada.',
78
79
  ui,
79
- faqTitle: 'Preguntas Frecuentes',
80
+
80
81
  faq: faqData,
81
82
  howTo: howToData,
82
- bibliographyTitle: 'Referencias',
83
- bibliography: [
84
- { name: 'Cómo usar la función clic para chatear — Centro de ayuda de WhatsApp', url: 'https://faq.whatsapp.com/591339899867293' },
85
- { name: 'API Click to chat: parámetros y formatos — WhatsApp', url: 'https://faq.whatsapp.com/425559092497645' },
86
- ],
83
+
84
+ bibliography,
87
85
  schemas: [faqSchema, howToSchema, appSchema],
88
86
  seo: [
89
87
  { type: 'title', level: 2, text: 'Genera enlaces cortos y directos para WhatsApp' },
@@ -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 { WhatsappLinkUI } from '../ui';
@@ -76,14 +77,11 @@ export const content: ToolLocaleContent<WhatsappLinkUI> = {
76
77
  title: 'Générateur de Lien WhatsApp avec QR',
77
78
  description: "Créez des liens directs vers votre chat WhatsApp avec message prédéfini et code QR. Outil gratuit, sans inscription, 100% privé.",
78
79
  ui,
79
- faqTitle: 'Questions Fréquentes',
80
+
80
81
  faq: faqData,
81
82
  howTo: howToData,
82
- bibliographyTitle: 'Références',
83
- bibliography: [
84
- { name: "Comment utiliser la fonction clic pour chatter — Aide WhatsApp", url: 'https://faq.whatsapp.com/591339899867293' },
85
- { name: "API Click to chat : paramètres et formats — WhatsApp", url: 'https://faq.whatsapp.com/425559092497645' },
86
- ],
83
+
84
+ bibliography,
87
85
  schemas: [faqSchema, howToSchema, appSchema],
88
86
  seo: [
89
87
  { type: 'title', level: 2, text: 'Générez des liens courts et directs pour WhatsApp' },
@@ -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 { WhatsappLinkUI } from '../ui';
@@ -76,14 +77,11 @@ export const content: ToolLocaleContent<WhatsappLinkUI> = {
76
77
  title: 'Pembuat Tautan WhatsApp dengan QR',
77
78
  description: 'Buat tautan obrolan WhatsApp langsung dengan pesan yang sudah diisi sebelumnya dan kode QR. Alat gratis, tanpa pendaftaran, 100% pribadi.',
78
79
  ui,
79
- faqTitle: 'Pertanyaan yang Sering Diajukan',
80
+
80
81
  faq: faqData,
81
82
  howTo: howToData,
82
- bibliographyTitle: 'Referensi',
83
- bibliography: [
84
- { name: 'Cara menggunakan fitur klik untuk chat — Pusat Bantuan WhatsApp', url: 'https://faq.whatsapp.com/591339899867293' },
85
- { name: 'API Klik untuk chat: parameter dan format — WhatsApp', url: 'https://faq.whatsapp.com/425559092497645' },
86
- ],
83
+
84
+ bibliography,
87
85
  schemas: [faqSchema, howToSchema, appSchema],
88
86
  seo: [
89
87
  { type: 'title', level: 2, text: 'Buat tautan langsung pendek untuk WhatsApp' },
@@ -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 { WhatsappLinkUI } from '../ui';
@@ -76,14 +77,11 @@ export const content: ToolLocaleContent<WhatsappLinkUI> = {
76
77
  title: 'Generatore di Link WhatsApp con QR',
77
78
  description: 'Crea link di chat WhatsApp diretti con messaggio precompilato e codice QR. Strumento gratuito, nessuna registrazione, 100% privato.',
78
79
  ui,
79
- faqTitle: 'Domande Frequenti',
80
+
80
81
  faq: faqData,
81
82
  howTo: howToData,
82
- bibliographyTitle: 'Riferimenti',
83
- bibliography: [
84
- { name: 'Come usare la funzione Clicca per chattare — Centro assistenza di WhatsApp', url: 'https://faq.whatsapp.com/591339899867293' },
85
- { name: 'API Clicca per chattare: parametri e formati — WhatsApp', url: 'https://faq.whatsapp.com/425559092497645' },
86
- ],
83
+
84
+ bibliography,
87
85
  schemas: [faqSchema, howToSchema, appSchema],
88
86
  seo: [
89
87
  { type: 'title', level: 2, text: 'Genera link diretti brevi per WhatsApp' },
@@ -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 { WhatsappLinkUI } from '../ui';
@@ -76,14 +77,11 @@ export const content: ToolLocaleContent<WhatsappLinkUI> = {
76
77
  title: 'QRコード付きWhatsAppリンク作成ツール',
77
78
  description: '定型メッセージとQRコード付きのWhatsApp直通チャットリンクを作成します。無料ツール、登録不要、100%プライベート。',
78
79
  ui,
79
- faqTitle: 'よくある質問',
80
+
80
81
  faq: faqData,
81
82
  howTo: howToData,
82
- bibliographyTitle: '参考文献',
83
- bibliography: [
84
- { name: '「クリックしてチャット」機能の使い方 — WhatsAppヘルプセンター', url: 'https://faq.whatsapp.com/591339899867293' },
85
- { name: 'API クリックしてチャット:パラメータと形式 — WhatsApp', url: 'https://faq.whatsapp.com/425559092497645' },
86
- ],
83
+
84
+ bibliography,
87
85
  schemas: [faqSchema, howToSchema, appSchema],
88
86
  seo: [
89
87
  { type: 'title', level: 2, text: 'WhatsApp用の短い直通リンクを生成' },
@@ -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 { WhatsappLinkUI } from '../ui';
@@ -76,14 +77,11 @@ export const content: ToolLocaleContent<WhatsappLinkUI> = {
76
77
  title: 'QR 포함 WhatsApp 링크 생성기',
77
78
  description: '미리 채워진 메시지와 QR 코드가 포함된 WhatsApp 직통 채팅 링크를 만드세요. 무료 도구, 가입 불필요, 100% 개인 정보 보호.',
78
79
  ui,
79
- faqTitle: '자주 묻는 질문',
80
+
80
81
  faq: faqData,
81
82
  howTo: howToData,
82
- bibliographyTitle: '참고 문헌',
83
- bibliography: [
84
- { name: '클릭해서 채팅하기 기능 사용 방법 — WhatsApp 고객 센터', url: 'https://faq.whatsapp.com/591339899867293' },
85
- { name: 'API 클릭해서 채팅하기: 파라미터 및 형식 — WhatsApp', url: 'https://faq.whatsapp.com/425559092497645' },
86
- ],
83
+
84
+ bibliography,
87
85
  schemas: [faqSchema, howToSchema, appSchema],
88
86
  seo: [
89
87
  { type: 'title', level: 2, text: 'WhatsApp용 짧은 직통 링크 생성' },
@@ -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 { WhatsappLinkUI } from '../ui';
@@ -76,14 +77,11 @@ export const content: ToolLocaleContent<WhatsappLinkUI> = {
76
77
  title: 'WhatsApp Link Generator met QR',
77
78
  description: 'Maak directe WhatsApp-chatlinks met vooraf ingevuld bericht en QR-code. Gratis tool, geen registratie, 100% privé.',
78
79
  ui,
79
- faqTitle: 'Veelgestelde Vragen',
80
+
80
81
  faq: faqData,
81
82
  howTo: howToData,
82
- bibliographyTitle: 'Referenties',
83
- bibliography: [
84
- { name: 'De functie "Klik om te chatten" gebruiken — WhatsApp Helpcentrum', url: 'https://faq.whatsapp.com/591339899867293' },
85
- { name: 'API Klik om te chatten: parameters en formaten — WhatsApp', url: 'https://faq.whatsapp.com/425559092497645' },
86
- ],
83
+
84
+ bibliography,
87
85
  schemas: [faqSchema, howToSchema, appSchema],
88
86
  seo: [
89
87
  { type: 'title', level: 2, text: 'Genereer korte directe links voor WhatsApp' },
@@ -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 { WhatsappLinkUI } from '../ui';
@@ -76,14 +77,11 @@ export const content: ToolLocaleContent<WhatsappLinkUI> = {
76
77
  title: 'Generator Linków WhatsApp z QR',
77
78
  description: 'Twórz bezpośrednie linki do czatu WhatsApp ze wstępnie wypełnioną wiadomością i kodem QR. Darmowe narzędzie, bez rejestracji, w 100% prywatne.',
78
79
  ui,
79
- faqTitle: 'Często zadawane pytania',
80
+
80
81
  faq: faqData,
81
82
  howTo: howToData,
82
- bibliographyTitle: 'Źródła',
83
- bibliography: [
84
- { name: 'Jak korzystać z funkcji kliknij i rozmawiaj — Centrum pomocy WhatsApp', url: 'https://faq.whatsapp.com/591339899867293' },
85
- { name: 'API Click to chat: parametry i formaty — WhatsApp', url: 'https://faq.whatsapp.com/425559092497645' },
86
- ],
83
+
84
+ bibliography,
87
85
  schemas: [faqSchema, howToSchema, appSchema],
88
86
  seo: [
89
87
  { type: 'title', level: 2, text: 'Generuj krótkie linki bezpośrednie do WhatsApp' },