@jjlmoya/utils-tools 1.11.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 (234) 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/date-difference-calculator.css +1 -1
  9. package/src/tool/date-diff-calculator/i18n/de.ts +4 -7
  10. package/src/tool/date-diff-calculator/i18n/en.ts +4 -7
  11. package/src/tool/date-diff-calculator/i18n/es.ts +4 -7
  12. package/src/tool/date-diff-calculator/i18n/fr.ts +4 -7
  13. package/src/tool/date-diff-calculator/i18n/id.ts +4 -7
  14. package/src/tool/date-diff-calculator/i18n/it.ts +4 -7
  15. package/src/tool/date-diff-calculator/i18n/ja.ts +4 -7
  16. package/src/tool/date-diff-calculator/i18n/ko.ts +4 -7
  17. package/src/tool/date-diff-calculator/i18n/nl.ts +4 -7
  18. package/src/tool/date-diff-calculator/i18n/pl.ts +4 -7
  19. package/src/tool/date-diff-calculator/i18n/pt.ts +4 -7
  20. package/src/tool/date-diff-calculator/i18n/ru.ts +4 -7
  21. package/src/tool/date-diff-calculator/i18n/sv.ts +4 -7
  22. package/src/tool/date-diff-calculator/i18n/tr.ts +4 -7
  23. package/src/tool/date-diff-calculator/i18n/zh.ts +4 -7
  24. package/src/tool/date-diff-calculator/seo.astro +2 -1
  25. package/src/tool/drive-direct-link/bibliography.astro +2 -10
  26. package/src/tool/drive-direct-link/bibliography.ts +6 -0
  27. package/src/tool/drive-direct-link/google-drive-direct-download-link.css +1 -1
  28. package/src/tool/drive-direct-link/i18n/de.ts +4 -6
  29. package/src/tool/drive-direct-link/i18n/en.ts +4 -6
  30. package/src/tool/drive-direct-link/i18n/es.ts +4 -6
  31. package/src/tool/drive-direct-link/i18n/fr.ts +4 -6
  32. package/src/tool/drive-direct-link/i18n/id.ts +4 -6
  33. package/src/tool/drive-direct-link/i18n/it.ts +4 -6
  34. package/src/tool/drive-direct-link/i18n/ja.ts +4 -6
  35. package/src/tool/drive-direct-link/i18n/ko.ts +4 -6
  36. package/src/tool/drive-direct-link/i18n/nl.ts +4 -6
  37. package/src/tool/drive-direct-link/i18n/pl.ts +4 -6
  38. package/src/tool/drive-direct-link/i18n/pt.ts +4 -6
  39. package/src/tool/drive-direct-link/i18n/ru.ts +4 -6
  40. package/src/tool/drive-direct-link/i18n/sv.ts +4 -6
  41. package/src/tool/drive-direct-link/i18n/tr.ts +4 -6
  42. package/src/tool/drive-direct-link/i18n/zh.ts +4 -6
  43. package/src/tool/drive-direct-link/seo.astro +2 -1
  44. package/src/tool/email-list-cleaner/bibliography.astro +2 -10
  45. package/src/tool/email-list-cleaner/bibliography.ts +7 -0
  46. package/src/tool/email-list-cleaner/email-list-cleaner.css +1 -1
  47. package/src/tool/email-list-cleaner/i18n/de.ts +4 -7
  48. package/src/tool/email-list-cleaner/i18n/en.ts +4 -7
  49. package/src/tool/email-list-cleaner/i18n/es.ts +4 -7
  50. package/src/tool/email-list-cleaner/i18n/fr.ts +4 -7
  51. package/src/tool/email-list-cleaner/i18n/id.ts +4 -7
  52. package/src/tool/email-list-cleaner/i18n/it.ts +4 -7
  53. package/src/tool/email-list-cleaner/i18n/ja.ts +4 -7
  54. package/src/tool/email-list-cleaner/i18n/ko.ts +4 -7
  55. package/src/tool/email-list-cleaner/i18n/nl.ts +4 -7
  56. package/src/tool/email-list-cleaner/i18n/pl.ts +4 -7
  57. package/src/tool/email-list-cleaner/i18n/pt.ts +4 -7
  58. package/src/tool/email-list-cleaner/i18n/ru.ts +4 -7
  59. package/src/tool/email-list-cleaner/i18n/sv.ts +4 -7
  60. package/src/tool/email-list-cleaner/i18n/tr.ts +4 -7
  61. package/src/tool/email-list-cleaner/i18n/zh.ts +4 -7
  62. package/src/tool/email-list-cleaner/seo.astro +2 -1
  63. package/src/tool/env-badge-spain/bibliography.astro +2 -10
  64. package/src/tool/env-badge-spain/bibliography.ts +6 -0
  65. package/src/tool/env-badge-spain/environmental-badge-simulator-spain.css +17 -17
  66. package/src/tool/env-badge-spain/i18n/de.ts +4 -6
  67. package/src/tool/env-badge-spain/i18n/en.ts +4 -6
  68. package/src/tool/env-badge-spain/i18n/es.ts +4 -6
  69. package/src/tool/env-badge-spain/i18n/fr.ts +4 -6
  70. package/src/tool/env-badge-spain/i18n/id.ts +4 -6
  71. package/src/tool/env-badge-spain/i18n/it.ts +4 -6
  72. package/src/tool/env-badge-spain/i18n/ja.ts +4 -6
  73. package/src/tool/env-badge-spain/i18n/ko.ts +4 -6
  74. package/src/tool/env-badge-spain/i18n/nl.ts +4 -6
  75. package/src/tool/env-badge-spain/i18n/pl.ts +4 -6
  76. package/src/tool/env-badge-spain/i18n/pt.ts +4 -6
  77. package/src/tool/env-badge-spain/i18n/ru.ts +4 -6
  78. package/src/tool/env-badge-spain/i18n/sv.ts +4 -6
  79. package/src/tool/env-badge-spain/i18n/tr.ts +4 -6
  80. package/src/tool/env-badge-spain/i18n/zh.ts +4 -6
  81. package/src/tool/env-badge-spain/seo.astro +2 -1
  82. package/src/tool/morse-beacon/bibliography.astro +2 -10
  83. package/src/tool/morse-beacon/bibliography.ts +7 -0
  84. package/src/tool/morse-beacon/i18n/de.ts +4 -7
  85. package/src/tool/morse-beacon/i18n/en.ts +4 -7
  86. package/src/tool/morse-beacon/i18n/es.ts +4 -7
  87. package/src/tool/morse-beacon/i18n/fr.ts +4 -7
  88. package/src/tool/morse-beacon/i18n/id.ts +4 -7
  89. package/src/tool/morse-beacon/i18n/it.ts +4 -7
  90. package/src/tool/morse-beacon/i18n/ja.ts +4 -7
  91. package/src/tool/morse-beacon/i18n/ko.ts +4 -7
  92. package/src/tool/morse-beacon/i18n/nl.ts +4 -7
  93. package/src/tool/morse-beacon/i18n/pl.ts +4 -7
  94. package/src/tool/morse-beacon/i18n/pt.ts +4 -7
  95. package/src/tool/morse-beacon/i18n/ru.ts +4 -7
  96. package/src/tool/morse-beacon/i18n/sv.ts +4 -7
  97. package/src/tool/morse-beacon/i18n/tr.ts +4 -7
  98. package/src/tool/morse-beacon/i18n/zh.ts +4 -7
  99. package/src/tool/morse-beacon/morse-beacon.css +1 -1
  100. package/src/tool/morse-beacon/seo.astro +2 -1
  101. package/src/tool/password-generator/bibliography.astro +2 -10
  102. package/src/tool/password-generator/bibliography.ts +8 -0
  103. package/src/tool/password-generator/i18n/de.ts +4 -8
  104. package/src/tool/password-generator/i18n/en.ts +4 -8
  105. package/src/tool/password-generator/i18n/es.ts +4 -8
  106. package/src/tool/password-generator/i18n/fr.ts +4 -8
  107. package/src/tool/password-generator/i18n/id.ts +4 -8
  108. package/src/tool/password-generator/i18n/it.ts +4 -8
  109. package/src/tool/password-generator/i18n/ja.ts +4 -8
  110. package/src/tool/password-generator/i18n/ko.ts +4 -8
  111. package/src/tool/password-generator/i18n/nl.ts +4 -8
  112. package/src/tool/password-generator/i18n/pl.ts +4 -8
  113. package/src/tool/password-generator/i18n/pt.ts +4 -8
  114. package/src/tool/password-generator/i18n/ru.ts +4 -8
  115. package/src/tool/password-generator/i18n/sv.ts +4 -8
  116. package/src/tool/password-generator/i18n/tr.ts +4 -8
  117. package/src/tool/password-generator/i18n/zh.ts +4 -8
  118. package/src/tool/password-generator/password-generator.css +4 -4
  119. package/src/tool/password-generator/seo.astro +2 -1
  120. package/src/tool/routes/bibliography.astro +2 -10
  121. package/src/tool/routes/bibliography.ts +9 -0
  122. package/src/tool/routes/i18n/de.ts +4 -9
  123. package/src/tool/routes/i18n/en.ts +4 -9
  124. package/src/tool/routes/i18n/es.ts +4 -9
  125. package/src/tool/routes/i18n/fr.ts +4 -9
  126. package/src/tool/routes/i18n/id.ts +4 -9
  127. package/src/tool/routes/i18n/it.ts +4 -9
  128. package/src/tool/routes/i18n/ja.ts +4 -9
  129. package/src/tool/routes/i18n/ko.ts +4 -9
  130. package/src/tool/routes/i18n/nl.ts +4 -9
  131. package/src/tool/routes/i18n/pl.ts +4 -9
  132. package/src/tool/routes/i18n/pt.ts +4 -9
  133. package/src/tool/routes/i18n/ru.ts +4 -9
  134. package/src/tool/routes/i18n/sv.ts +4 -9
  135. package/src/tool/routes/i18n/tr.ts +4 -9
  136. package/src/tool/routes/i18n/zh.ts +4 -9
  137. package/src/tool/routes/optimal-routes.css +2 -2
  138. package/src/tool/routes/seo.astro +2 -1
  139. package/src/tool/rule-of-three/bibliography.astro +2 -10
  140. package/src/tool/rule-of-three/bibliography.ts +6 -0
  141. package/src/tool/rule-of-three/i18n/de.ts +4 -6
  142. package/src/tool/rule-of-three/i18n/en.ts +4 -6
  143. package/src/tool/rule-of-three/i18n/es.ts +4 -6
  144. package/src/tool/rule-of-three/i18n/fr.ts +4 -6
  145. package/src/tool/rule-of-three/i18n/id.ts +4 -6
  146. package/src/tool/rule-of-three/i18n/it.ts +4 -6
  147. package/src/tool/rule-of-three/i18n/ja.ts +4 -6
  148. package/src/tool/rule-of-three/i18n/ko.ts +4 -6
  149. package/src/tool/rule-of-three/i18n/nl.ts +4 -6
  150. package/src/tool/rule-of-three/i18n/pl.ts +4 -6
  151. package/src/tool/rule-of-three/i18n/pt.ts +4 -6
  152. package/src/tool/rule-of-three/i18n/ru.ts +4 -6
  153. package/src/tool/rule-of-three/i18n/sv.ts +4 -6
  154. package/src/tool/rule-of-three/i18n/tr.ts +4 -6
  155. package/src/tool/rule-of-three/i18n/zh.ts +4 -6
  156. package/src/tool/rule-of-three/rule-of-three.css +2 -2
  157. package/src/tool/rule-of-three/seo.astro +2 -1
  158. package/src/tool/seo-content-optimizer/bibliography.astro +2 -10
  159. package/src/tool/seo-content-optimizer/bibliography.ts +6 -0
  160. package/src/tool/seo-content-optimizer/i18n/de.ts +4 -6
  161. package/src/tool/seo-content-optimizer/i18n/en.ts +4 -6
  162. package/src/tool/seo-content-optimizer/i18n/es.ts +4 -6
  163. package/src/tool/seo-content-optimizer/i18n/fr.ts +4 -6
  164. package/src/tool/seo-content-optimizer/i18n/id.ts +4 -6
  165. package/src/tool/seo-content-optimizer/i18n/it.ts +4 -6
  166. package/src/tool/seo-content-optimizer/i18n/ja.ts +4 -6
  167. package/src/tool/seo-content-optimizer/i18n/ko.ts +4 -6
  168. package/src/tool/seo-content-optimizer/i18n/nl.ts +4 -6
  169. package/src/tool/seo-content-optimizer/i18n/pl.ts +4 -6
  170. package/src/tool/seo-content-optimizer/i18n/pt.ts +4 -6
  171. package/src/tool/seo-content-optimizer/i18n/ru.ts +4 -6
  172. package/src/tool/seo-content-optimizer/i18n/sv.ts +4 -6
  173. package/src/tool/seo-content-optimizer/i18n/tr.ts +4 -6
  174. package/src/tool/seo-content-optimizer/i18n/zh.ts +4 -6
  175. package/src/tool/seo-content-optimizer/seo-content-optimizer.css +10 -10
  176. package/src/tool/seo-content-optimizer/seo.astro +2 -1
  177. package/src/tool/speed-reader/bibliography.astro +2 -10
  178. package/src/tool/speed-reader/bibliography.ts +10 -0
  179. package/src/tool/speed-reader/i18n/de.ts +4 -10
  180. package/src/tool/speed-reader/i18n/en.ts +4 -10
  181. package/src/tool/speed-reader/i18n/es.ts +4 -10
  182. package/src/tool/speed-reader/i18n/fr.ts +4 -10
  183. package/src/tool/speed-reader/i18n/id.ts +4 -10
  184. package/src/tool/speed-reader/i18n/it.ts +4 -10
  185. package/src/tool/speed-reader/i18n/ja.ts +4 -10
  186. package/src/tool/speed-reader/i18n/ko.ts +4 -10
  187. package/src/tool/speed-reader/i18n/nl.ts +4 -10
  188. package/src/tool/speed-reader/i18n/pl.ts +4 -10
  189. package/src/tool/speed-reader/i18n/pt.ts +4 -10
  190. package/src/tool/speed-reader/i18n/ru.ts +4 -10
  191. package/src/tool/speed-reader/i18n/sv.ts +4 -10
  192. package/src/tool/speed-reader/i18n/tr.ts +4 -10
  193. package/src/tool/speed-reader/i18n/zh.ts +4 -10
  194. package/src/tool/speed-reader/seo.astro +2 -1
  195. package/src/tool/speed-reader/speed-reader.css +5 -5
  196. package/src/tool/text-pixel-calculator/bibliography.astro +2 -10
  197. package/src/tool/text-pixel-calculator/bibliography.ts +6 -0
  198. package/src/tool/text-pixel-calculator/i18n/de.ts +4 -6
  199. package/src/tool/text-pixel-calculator/i18n/en.ts +4 -6
  200. package/src/tool/text-pixel-calculator/i18n/es.ts +4 -6
  201. package/src/tool/text-pixel-calculator/i18n/fr.ts +4 -6
  202. package/src/tool/text-pixel-calculator/i18n/id.ts +4 -6
  203. package/src/tool/text-pixel-calculator/i18n/it.ts +4 -6
  204. package/src/tool/text-pixel-calculator/i18n/ja.ts +4 -6
  205. package/src/tool/text-pixel-calculator/i18n/ko.ts +4 -6
  206. package/src/tool/text-pixel-calculator/i18n/nl.ts +4 -6
  207. package/src/tool/text-pixel-calculator/i18n/pl.ts +4 -6
  208. package/src/tool/text-pixel-calculator/i18n/pt.ts +4 -6
  209. package/src/tool/text-pixel-calculator/i18n/ru.ts +4 -6
  210. package/src/tool/text-pixel-calculator/i18n/sv.ts +4 -6
  211. package/src/tool/text-pixel-calculator/i18n/tr.ts +4 -6
  212. package/src/tool/text-pixel-calculator/i18n/zh.ts +4 -6
  213. package/src/tool/text-pixel-calculator/seo.astro +2 -1
  214. package/src/tool/text-pixel-calculator/text-pixel-width-calculator.css +1 -1
  215. package/src/tool/whatsapp-link/bibliography.astro +2 -10
  216. package/src/tool/whatsapp-link/bibliography.ts +6 -0
  217. package/src/tool/whatsapp-link/i18n/de.ts +4 -6
  218. package/src/tool/whatsapp-link/i18n/en.ts +4 -6
  219. package/src/tool/whatsapp-link/i18n/es.ts +4 -6
  220. package/src/tool/whatsapp-link/i18n/fr.ts +4 -6
  221. package/src/tool/whatsapp-link/i18n/id.ts +4 -6
  222. package/src/tool/whatsapp-link/i18n/it.ts +4 -6
  223. package/src/tool/whatsapp-link/i18n/ja.ts +4 -6
  224. package/src/tool/whatsapp-link/i18n/ko.ts +4 -6
  225. package/src/tool/whatsapp-link/i18n/nl.ts +4 -6
  226. package/src/tool/whatsapp-link/i18n/pl.ts +4 -6
  227. package/src/tool/whatsapp-link/i18n/pt.ts +4 -6
  228. package/src/tool/whatsapp-link/i18n/ru.ts +4 -6
  229. package/src/tool/whatsapp-link/i18n/sv.ts +4 -6
  230. package/src/tool/whatsapp-link/i18n/tr.ts +4 -6
  231. package/src/tool/whatsapp-link/i18n/zh.ts +4 -6
  232. package/src/tool/whatsapp-link/seo.astro +2 -1
  233. package/src/tool/whatsapp-link/whatsapp-link-generator.css +2 -2
  234. 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 { EnvBadgeSpainUI } from '../ui';
@@ -113,14 +114,11 @@ export const content: ToolLocaleContent<EnvBadgeSpainUI> = {
113
114
  title: 'Miljödekalsimulator Spanien',
114
115
  description: 'Ta reda på gratis vilken spansk DGT-miljödekal som gäller för din bil, motorcykel eller skåpbil för lågutsläppszoner (ZBE) i Spanien.',
115
116
  ui,
116
- faqTitle: 'Vanliga frågor',
117
+
117
118
  faq: faqData,
118
119
  howTo: howToData,
119
- bibliographyTitle: 'Referenser',
120
- bibliography: [
121
- { name: 'DGT-föreskrifter om klimatförändringar och trafik (Spanska)', url: 'https://www.dgt.es/export/sites/web-DGT/.galleries/downloads/muevete-con-seguridad/normas-de-trafico/MOV-gestion-trafico/2023/INSTRUCCION-recomendaciones-ZBE_fe.pdf' },
122
- { name: 'Spansk klimatlag och lågutsläppszoner (BOE)', url: 'https://www.boe.es/buscar/act.php?id=BOE-A-2021-8447' },
123
- ],
120
+
121
+ bibliography,
124
122
  schemas: [faqSchema, howToSchema, appSchema],
125
123
  seo: [
126
124
  { type: 'title', level: 2, text: 'Vad är den spanska DGT-miljödekalen?' },
@@ -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 { EnvBadgeSpainUI } from '../ui';
@@ -113,14 +114,11 @@ export const content: ToolLocaleContent<EnvBadgeSpainUI> = {
113
114
  title: 'İspanya Çevre Etiketi Simülatörü',
114
115
  description: 'İspanya\'daki Düşük Emisyon Bölgeleri (ZBE) için aracınızın, motosikletinizin veya kamyonetinizin hangi İspanyol DGT çevre etiketine sahip olduğunu ücretsiz öğrenin.',
115
116
  ui,
116
- faqTitle: 'Sıkça Sorulan Sorular',
117
+
117
118
  faq: faqData,
118
119
  howTo: howToData,
119
- bibliographyTitle: 'Kaynaklar',
120
- bibliography: [
121
- { name: 'İklim Değişikliği ve Trafik Düzenlemeleri Üzerine DGT (İspanyolca)', url: 'https://www.dgt.es/export/sites/web-DGT/.galleries/downloads/muevete-con-seguridad/normas-de-trafico/MOV-gestion-trafico/2023/INSTRUCCION-recomendaciones-ZBE_fe.pdf' },
122
- { name: 'İspanyol İklim Değişikliği Yasası ve Düşük Emisyon Bölgeleri (BOE)', url: 'https://www.boe.es/buscar/act.php?id=BOE-A-2021-8447' },
123
- ],
120
+
121
+ bibliography,
124
122
  schemas: [faqSchema, howToSchema, appSchema],
125
123
  seo: [
126
124
  { type: 'title', level: 2, text: 'İspanyol DGT çevre etiketi nedir?' },
@@ -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 { EnvBadgeSpainUI } from '../ui';
@@ -113,14 +114,11 @@ export const content: ToolLocaleContent<EnvBadgeSpainUI> = {
113
114
  title: '西班牙环保标签模拟器',
114
115
  description: '免费查询适用于您的轿车、摩托车或面包车的西班牙 DGT 环保标签,以应对西班牙的低排放区 (ZBE)。',
115
116
  ui,
116
- faqTitle: '常见问题',
117
+
117
118
  faq: faqData,
118
119
  howTo: howToData,
119
- bibliographyTitle: '参考文献',
120
- bibliography: [
121
- { name: 'DGT 气候变化与交通法规(西班牙语)', url: 'https://www.dgt.es/export/sites/web-DGT/.galleries/downloads/muevete-con-seguridad/normas-de-trafico/MOV-gestion-trafico/2023/INSTRUCCION-recomendaciones-ZBE_fe.pdf' },
122
- { name: '西班牙气候变化法与低排放区 (BOE)', url: 'https://www.boe.es/buscar/act.php?id=BOE-A-2021-8447' },
123
- ],
120
+
121
+ bibliography,
124
122
  schemas: [faqSchema, howToSchema, appSchema],
125
123
  seo: [
126
124
  { type: 'title', level: 2, text: '什么是西班牙 DGT 环保标签?' },
@@ -9,6 +9,7 @@ interface Props {
9
9
 
10
10
  const { locale = 'es' } = Astro.props;
11
11
  const content = await envBadgeSpain.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 { morseBeacon } 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 morseBeacon.i18n[locale]?.();
3
+ import { bibliography } from './bibliography';
12
4
  ---
13
5
 
14
- {content && <SharedBibliography links={content.bibliography} />}
6
+ <SharedBibliography links={bibliography} />
@@ -0,0 +1,7 @@
1
+ import type { BibliographyEntry } from '../../types';
2
+
3
+ export const bibliography: BibliographyEntry[] = [
4
+ { name: 'ITU-R M.1677-1 — International Morse Code', url: 'https://www.itu.int/dms_pubrec/itu-r/rec/m/R-REC-M.1677-1-200910-I!!PDF-E.pdf' },
5
+ { name: 'W3C MediaCapture Image — Torch', url: 'https://w3c.github.io/mediacapture-image/#torch' },
6
+ { name: 'Morse code — Wikipedia', url: 'https://en.wikipedia.org/wiki/Morse_code' },
7
+ ];
@@ -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 { MorseBeaconUI } from '../ui';
@@ -91,15 +92,11 @@ export const content: ToolLocaleContent<MorseBeaconUI> = {
91
92
  title: 'Morsebakke: Taktischer SOS Sender',
92
93
  description: 'Verwandeln Sie Ihr Gerät in eine Morse-Sendestation. Nutzen Sie Blitzlicht und Bildschirm als Notlichtsignale und zur taktischen Kommunikation.',
93
94
  ui,
94
- faqTitle: 'Häufig gestellte Fragen',
95
+
95
96
  faq: faqData,
96
97
  howTo: howToData,
97
- bibliographyTitle: 'Referenzen',
98
- bibliography: [
99
- { name: 'ITU-R M.1677-1 — Internationaler Morsecode', url: 'https://www.itu.int/dms_pubrec/itu-r/rec/m/R-REC-M.1677-1-200910-I!!PDF-E.pdf' },
100
- { name: 'W3C MediaCapture Image — Torch', url: 'https://w3c.github.io/mediacapture-image/#torch' },
101
- { name: 'Morsecode — Wikipedia', url: 'https://de.wikipedia.org/wiki/Morsecode' },
102
- ],
98
+
99
+ bibliography,
103
100
  schemas: [faqSchema, howToSchema, appSchema],
104
101
  seo: [
105
102
  {
@@ -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 { MorseBeaconUI } from '../ui';
@@ -91,15 +92,11 @@ export const content: ToolLocaleContent<MorseBeaconUI> = {
91
92
  title: 'Morse Beacon: Tactical SOS Transmitter',
92
93
  description: 'Turn your device into a Morse transmission station. Use flash and screen as emergency light signals and tactical communication.',
93
94
  ui,
94
- faqTitle: 'Frequently Asked Questions',
95
+
95
96
  faq: faqData,
96
97
  howTo: howToData,
97
- bibliographyTitle: 'References',
98
- bibliography: [
99
- { name: 'ITU-R M.1677-1 — International Morse Code', url: 'https://www.itu.int/dms_pubrec/itu-r/rec/m/R-REC-M.1677-1-200910-I!!PDF-E.pdf' },
100
- { name: 'W3C MediaCapture Image — Torch', url: 'https://w3c.github.io/mediacapture-image/#torch' },
101
- { name: 'Morse code — Wikipedia', url: 'https://en.wikipedia.org/wiki/Morse_code' },
102
- ],
98
+
99
+ bibliography,
103
100
  schemas: [faqSchema, howToSchema, appSchema],
104
101
  seo: [
105
102
  {
@@ -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 { MorseBeaconUI } from '../ui';
@@ -91,15 +92,11 @@ export const content: ToolLocaleContent<MorseBeaconUI> = {
91
92
  title: 'Baliza Morse: Transmisor Táctico SOS',
92
93
  description: 'Convierte tu dispositivo en una estación de transmisión Morse. Utiliza flash y pantalla como señales de luz de emergencia y comunicación táctica.',
93
94
  ui,
94
- faqTitle: 'Preguntas Frecuentes',
95
+
95
96
  faq: faqData,
96
97
  howTo: howToData,
97
- bibliographyTitle: 'Referencias',
98
- bibliography: [
99
- { name: 'ITU-R M.1677-1 — International Morse Code', url: 'https://www.itu.int/dms_pubrec/itu-r/rec/m/R-REC-M.1677-1-200910-I!!PDF-E.pdf' },
100
- { name: 'W3C MediaCapture Image — Torch', url: 'https://w3c.github.io/mediacapture-image/#torch' },
101
- { name: 'Código Morse — Wikipedia', url: 'https://es.wikipedia.org/wiki/C%C3%B3digo_Morse' },
102
- ],
98
+
99
+ bibliography,
103
100
  schemas: [faqSchema, howToSchema, appSchema],
104
101
  seo: [
105
102
  {
@@ -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 { MorseBeaconUI } from '../ui';
@@ -91,15 +92,11 @@ export const content: ToolLocaleContent<MorseBeaconUI> = {
91
92
  title: 'Balise Morse : Émetteur tactique SOS',
92
93
  description: "Transformez votre appareil en station d'émission Morse. Utilisez le flash et l'écran comme signaux lumineux d'urgence et de communication tactique.",
93
94
  ui,
94
- faqTitle: 'Questions fréquentes',
95
+
95
96
  faq: faqData,
96
97
  howTo: howToData,
97
- bibliographyTitle: 'Références',
98
- bibliography: [
99
- { name: 'ITU-R M.1677-1 — Code Morse international', url: 'https://www.itu.int/dms_pubrec/itu-r/rec/m/R-REC-M.1677-1-200910-I!!PDF-E.pdf' },
100
- { name: 'W3C MediaCapture Image — Torch', url: 'https://w3c.github.io/mediacapture-image/#torch' },
101
- { name: 'Code Morse — Wikipédia', url: 'https://fr.wikipedia.org/wiki/Code_Morse_international' },
102
- ],
98
+
99
+ bibliography,
103
100
  schemas: [faqSchema, howToSchema, appSchema],
104
101
  seo: [
105
102
  {
@@ -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 { MorseBeaconUI } from '../ui';
@@ -91,15 +92,11 @@ export const content: ToolLocaleContent<MorseBeaconUI> = {
91
92
  title: 'Suar Morse: Pemancar SOS Taktis',
92
93
  description: 'Ubah perangkat Anda menjadi stasiun transmisi Morse. Gunakan lampu kilat dan layar sebagai sinyal lampu darurat dan komunikasi taktis.',
93
94
  ui,
94
- faqTitle: 'Pertanyaan yang Sering Diajukan',
95
+
95
96
  faq: faqData,
96
97
  howTo: howToData,
97
- bibliographyTitle: 'Referensi',
98
- bibliography: [
99
- { name: 'ITU-R M.1677-1 — International Morse Code', url: 'https://www.itu.int/dms_pubrec/itu-r/rec/m/R-REC-M.1677-1-200910-I!!PDF-E.pdf' },
100
- { name: 'W3C MediaCapture Image — Torch', url: 'https://w3c.github.io/mediacapture-image/#torch' },
101
- { name: 'Kode Morse — Wikipedia', url: 'https://id.wikipedia.org/wiki/Kode_Morse' },
102
- ],
98
+
99
+ bibliography,
103
100
  schemas: [faqSchema, howToSchema, appSchema],
104
101
  seo: [
105
102
  {
@@ -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 { MorseBeaconUI } from '../ui';
@@ -91,15 +92,11 @@ export const content: ToolLocaleContent<MorseBeaconUI> = {
91
92
  title: 'Faro Morse: Trasmettitore Tattico SOS',
92
93
  description: 'Trasforma il tuo dispositivo in una stazione di trasmissione Morse. Usa il flash e lo schermo come segnali luminosi di emergenza e comunicazione tattica.',
93
94
  ui,
94
- faqTitle: 'Domande Frequenti',
95
+
95
96
  faq: faqData,
96
97
  howTo: howToData,
97
- bibliographyTitle: 'Riferimenti',
98
- bibliography: [
99
- { name: 'ITU-R M.1677-1 — Codice Morse Internazionale', url: 'https://www.itu.int/dms_pubrec/itu-r/rec/m/R-REC-M.1677-1-200910-I!!PDF-E.pdf' },
100
- { name: 'W3C MediaCapture Image — Torch', url: 'https://w3c.github.io/mediacapture-image/#torch' },
101
- { name: 'Codice Morse — Wikipedia', url: 'https://it.wikipedia.org/wiki/Codice_Morse' },
102
- ],
98
+
99
+ bibliography,
103
100
  schemas: [faqSchema, howToSchema, appSchema],
104
101
  seo: [
105
102
  {
@@ -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 { MorseBeaconUI } from '../ui';
@@ -91,15 +92,11 @@ export const content: ToolLocaleContent<MorseBeaconUI> = {
91
92
  title: 'モールス・ビーコン:タクティカルSOS送信機',
92
93
  description: 'デバイスをモールス信号送信ステーションに変えます。フラッシュと画面を緊急光信号やタクティカル通信として使用できます。',
93
94
  ui,
94
- faqTitle: 'よくある質問',
95
+
95
96
  faq: faqData,
96
97
  howTo: howToData,
97
- bibliographyTitle: '参考文献',
98
- bibliography: [
99
- { name: 'ITU-R M.1677-1 — 国際モールス符号', url: 'https://www.itu.int/dms_pubrec/itu-r/rec/m/R-REC-M.1677-1-200910-I!!PDF-E.pdf' },
100
- { name: 'W3C MediaCapture Image — Torch', url: 'https://w3c.github.io/mediacapture-image/#torch' },
101
- { name: 'モールス符号 — Wikipedia', url: 'https://ja.wikipedia.org/wiki/%E3%83%A2%E3%83%BC%E3%83%AB%E3%82%B9%E7%AC%A6%E5%8F%B7' },
102
- ],
98
+
99
+ bibliography,
103
100
  schemas: [faqSchema, howToSchema, appSchema],
104
101
  seo: [
105
102
  {
@@ -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 { MorseBeaconUI } from '../ui';
@@ -91,15 +92,11 @@ export const content: ToolLocaleContent<MorseBeaconUI> = {
91
92
  title: '모스 비콘: 전술 SOS 전송기',
92
93
  description: '장치를 모스 부호 전송국으로 변환하세요. 플래시와 화면을 비상 조명 신호 및 전술 통신용으로 사용하세요.',
93
94
  ui,
94
- faqTitle: '자주 묻는 질문',
95
+
95
96
  faq: faqData,
96
97
  howTo: howToData,
97
- bibliographyTitle: '참고 문헌',
98
- bibliography: [
99
- { name: 'ITU-R M.1677-1 — 국제 모스 부호', url: 'https://www.itu.int/dms_pubrec/itu-r/rec/m/R-REC-M.1677-1-200910-I!!PDF-E.pdf' },
100
- { name: 'W3C MediaCapture Image — Torch', url: 'https://w3c.github.io/mediacapture-image/#torch' },
101
- { name: '모스 부호 — 위키백과', url: 'https://ko.wikipedia.org/wiki/%EB%AA%A8%EC%8A%A4_%EB%B6%80%ED%98%B8' },
102
- ],
98
+
99
+ bibliography,
103
100
  schemas: [faqSchema, howToSchema, appSchema],
104
101
  seo: [
105
102
  {
@@ -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 { MorseBeaconUI } from '../ui';
@@ -91,15 +92,11 @@ export const content: ToolLocaleContent<MorseBeaconUI> = {
91
92
  title: 'Morse Baken: Tactische SOS zender',
92
93
  description: 'Verander uw apparaat in een Morse-zendstation. Gebruik flitser en scherm als noodlichtsignalen en tactische communicatie.',
93
94
  ui,
94
- faqTitle: 'Veelgestelde Vragen',
95
+
95
96
  faq: faqData,
96
97
  howTo: howToData,
97
- bibliographyTitle: 'Referenties',
98
- bibliography: [
99
- { name: 'ITU-R M.1677-1 — Internationale Morsecode', url: 'https://www.itu.int/dms_pubrec/itu-r/rec/m/R-REC-M.1677-1-200910-I!!PDF-E.pdf' },
100
- { name: 'W3C MediaCapture Image — Torch', url: 'https://w3c.github.io/mediacapture-image/#torch' },
101
- { name: 'Morsecode — Wikipedia', url: 'https://nl.wikipedia.org/wiki/Morse' },
102
- ],
98
+
99
+ bibliography,
103
100
  schemas: [faqSchema, howToSchema, appSchema],
104
101
  seo: [
105
102
  {
@@ -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 { MorseBeaconUI } from '../ui';
@@ -91,15 +92,11 @@ export const content: ToolLocaleContent<MorseBeaconUI> = {
91
92
  title: 'Nadajnik Morse\'a: Taktyczny nadajnik SOS',
92
93
  description: 'Zmień swoje urządzenie w stację nadawczą Morse\'a. Używaj lampy błyskowej i ekranu jako awaryjnych sygnałów świetlnych i komunikacji taktycznej.',
93
94
  ui,
94
- faqTitle: 'Często zadawane pytania',
95
+
95
96
  faq: faqData,
96
97
  howTo: howToData,
97
- bibliographyTitle: 'Źródła',
98
- bibliography: [
99
- { name: 'ITU-R M.1677-1 — Międzynarodowy kod Morse\'a', url: 'https://www.itu.int/dms_pubrec/itu-r/rec/m/R-REC-M.1677-1-200910-I!!PDF-E.pdf' },
100
- { name: 'W3C MediaCapture Image — Torch', url: 'https://w3c.github.io/mediacapture-image/#torch' },
101
- { name: 'Kod Morse\'a — Wikipedia', url: 'https://pl.wikipedia.org/wiki/Kod_Morse%E2%80%99a' },
102
- ],
98
+
99
+ bibliography,
103
100
  schemas: [faqSchema, howToSchema, appSchema],
104
101
  seo: [
105
102
  {
@@ -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 { MorseBeaconUI } from '../ui';
@@ -91,15 +92,11 @@ export const content: ToolLocaleContent<MorseBeaconUI> = {
91
92
  title: 'Farol Morse: Transmissor Tático SOS',
92
93
  description: 'Transforme o seu dispositivo numa estação de transmissão Morse. Utilize o flash e o ecrã como sinais luminosos de emergência e comunicação tática.',
93
94
  ui,
94
- faqTitle: 'Perguntas Frequentes',
95
+
95
96
  faq: faqData,
96
97
  howTo: howToData,
97
- bibliographyTitle: 'Referências',
98
- bibliography: [
99
- { name: 'ITU-R M.1677-1 — Código Morse Internacional', url: 'https://www.itu.int/dms_pubrec/itu-r/rec/m/R-REC-M.1677-1-200910-I!!PDF-E.pdf' },
100
- { name: 'W3C MediaCapture Image — Torch', url: 'https://w3c.github.io/mediacapture-image/#torch' },
101
- { name: 'Código Morse — Wikipédia', url: 'https://pt.wikipedia.org/wiki/C%C3%B3digo_Morse' },
102
- ],
98
+
99
+ bibliography,
103
100
  schemas: [faqSchema, howToSchema, appSchema],
104
101
  seo: [
105
102
  {
@@ -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 { MorseBeaconUI } from '../ui';
@@ -91,15 +92,11 @@ export const content: ToolLocaleContent<MorseBeaconUI> = {
91
92
  title: 'Маяк Морзе: Тактический SOS передатчик',
92
93
  description: 'Превратите свое устройство в станцию передачи сообщений азбукой Морзе. Используйте вспышку и экран как аварийные световые сигналы и средства тактической связи.',
93
94
  ui,
94
- faqTitle: 'Часто задаваемые вопросы',
95
+
95
96
  faq: faqData,
96
97
  howTo: howToData,
97
- bibliographyTitle: 'Источники',
98
- bibliography: [
99
- { name: 'ITU-R M.1677-1 — Международная азбука Морзе', url: 'https://www.itu.int/dms_pubrec/itu-r/rec/m/R-REC-M.1677-1-200910-I!!PDF-E.pdf' },
100
- { name: 'W3C MediaCapture Image — Torch', url: 'https://w3c.github.io/mediacapture-image/#torch' },
101
- { name: 'Азбука Морзе — Википедия', url: 'https://ru.wikipedia.org/wiki/%D0%90%D0%B7%D0%B1%D1%83%D0%BA%D0%B0_%D0%9C%D0%BE%D1%80%D0%B7%D0%B5' },
102
- ],
98
+
99
+ bibliography,
103
100
  schemas: [faqSchema, howToSchema, appSchema],
104
101
  seo: [
105
102
  {
@@ -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 { MorseBeaconUI } from '../ui';
@@ -91,15 +92,11 @@ export const content: ToolLocaleContent<MorseBeaconUI> = {
91
92
  title: 'Morsefyr: Taktisk SOS sändare',
92
93
  description: 'Förvandla din enhet till en morsesändningsstation. Använd blixt och skärm som nödljusignaler och taktisk kommunikation.',
93
94
  ui,
94
- faqTitle: 'Vanliga frågor',
95
+
95
96
  faq: faqData,
96
97
  howTo: howToData,
97
- bibliographyTitle: 'Referenser',
98
- bibliography: [
99
- { name: 'ITU-R M.1677-1 — International Morse Code', url: 'https://www.itu.int/dms_pubrec/itu-r/rec/m/R-REC-M.1677-1-200910-I!!PDF-E.pdf' },
100
- { name: 'W3C MediaCapture Image — Torch', url: 'https://w3c.github.io/mediacapture-image/#torch' },
101
- { name: 'Morsekod — Wikipedia', url: 'https://sv.wikipedia.org/wiki/Morsekod' },
102
- ],
98
+
99
+ bibliography,
103
100
  schemas: [faqSchema, howToSchema, appSchema],
104
101
  seo: [
105
102
  {
@@ -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 { MorseBeaconUI } from '../ui';
@@ -91,15 +92,11 @@ export const content: ToolLocaleContent<MorseBeaconUI> = {
91
92
  title: 'Mors Feneri: Taktik SOS Vericisi',
92
93
  description: 'Cihazınızı bir Mors iletim istasyonuna dönüştürün. Flaşı ve ekranı acil durum ışık sinyalleri ve taktik iletişim olarak kullanın.',
93
94
  ui,
94
- faqTitle: 'Sıkça Sorulan Sorular',
95
+
95
96
  faq: faqData,
96
97
  howTo: howToData,
97
- bibliographyTitle: 'Kaynaklar',
98
- bibliography: [
99
- { name: 'ITU-R M.1677-1 — Uluslararası Mors Alfabesi', url: 'https://www.itu.int/dms_pubrec/itu-r/rec/m/R-REC-M.1677-1-200910-I!!PDF-E.pdf' },
100
- { name: 'W3C MediaCapture Image — Torch', url: 'https://w3c.github.io/mediacapture-image/#torch' },
101
- { name: 'Mors Alfabesi — Vikipedi', url: 'https://tr.wikipedia.org/wiki/Mors_alfabesi' },
102
- ],
98
+
99
+ bibliography,
103
100
  schemas: [faqSchema, howToSchema, appSchema],
104
101
  seo: [
105
102
  {
@@ -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 { MorseBeaconUI } from '../ui';
@@ -91,15 +92,11 @@ export const content: ToolLocaleContent<MorseBeaconUI> = {
91
92
  title: '摩尔斯信标:战术 SOS 发射器',
92
93
  description: '将您的设备变成摩尔斯电码传输站。使用闪光灯和屏幕作为紧急光信号和战术通信。',
93
94
  ui,
94
- faqTitle: '常见问题',
95
+
95
96
  faq: faqData,
96
97
  howTo: howToData,
97
- bibliographyTitle: '参考文献',
98
- bibliography: [
99
- { name: 'ITU-R M.1677-1 — 国际摩尔斯电码', url: 'https://www.itu.int/dms_pubrec/itu-r/rec/m/R-REC-M.1677-1-200910-I!!PDF-E.pdf' },
100
- { name: 'W3C MediaCapture Image — Torch', url: 'https://w3c.github.io/mediacapture-image/#torch' },
101
- { name: '摩尔斯电码 — 维基百科', url: 'https://zh.wikipedia.org/wiki/%E6%91%A9%E5%B0%94%E6%96%AF%E7%94%B5%E7%A0%81' },
102
- ],
98
+
99
+ bibliography,
103
100
  schemas: [faqSchema, howToSchema, appSchema],
104
101
  seo: [
105
102
  {
@@ -26,7 +26,7 @@
26
26
  margin: 0 auto;
27
27
  }
28
28
 
29
- :global(.theme-dark) .mb-root {
29
+ .theme-dark .mb-root {
30
30
  --mb-card-bg: #0f172a;
31
31
  --mb-card-border: #1e293b;
32
32
  --mb-text-main: #e2e8f0;
@@ -9,6 +9,7 @@ interface Props {
9
9
 
10
10
  const { locale = 'es' } = Astro.props;
11
11
  const content = await morseBeacon.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 { passwordGenerator } 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 passwordGenerator.i18n[locale]?.();
3
+ import { bibliography } from './bibliography';
12
4
  ---
13
5
 
14
- {content && <SharedBibliography links={content.bibliography} />}
6
+ <SharedBibliography links={bibliography} />
@@ -0,0 +1,8 @@
1
+ import type { BibliographyEntry } from '../../types';
2
+
3
+ export const bibliography: BibliographyEntry[] = [
4
+ { name: 'Web Cryptography API — MDN Web Docs', url: 'https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API' },
5
+ { name: 'NIST SP 800-63B: Digital Identity Guidelines', url: 'https://pages.nist.gov/800-63-3/sp800-63b.html' },
6
+ { name: 'Password — Wikipedia', url: 'https://en.wikipedia.org/wiki/Password' },
7
+ { name: 'Have I Been Pwned — Check if your password was exposed', url: 'https://haveibeenpwned.com/Passwords' },
8
+ ];
@@ -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 { PasswordGeneratorUI } from '../ui';
@@ -89,16 +90,11 @@ export const content: ToolLocaleContent<PasswordGeneratorUI> = {
89
90
  title: 'Sicherer Zufallspasswort Generator',
90
91
  description: 'Erstellen Sie sofort starke, hacksichere Passwörter. Kostenloses Cybersecurity-Tool zum Generieren zufälliger, sicherer Schlüssel.',
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: 'Web Cryptography API — MDN Web Docs', url: 'https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API' },
98
- { name: 'NIST SP 800-63B: Digital Identity Guidelines', url: 'https://pages.nist.gov/800-63-3/sp800-63b.html' },
99
- { name: 'Passwort — Wikipedia', url: 'https://de.wikipedia.org/wiki/Passwort' },
100
- { name: 'Have I Been Pwned — Prüfen Sie, ob Ihr Passwort geleakt wurde', url: 'https://haveibeenpwned.com/Passwords' },
101
- ],
96
+
97
+ bibliography,
102
98
  schemas: [faqSchema, howToSchema, appSchema],
103
99
  seo: [
104
100
  {
@@ -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 { PasswordGeneratorUI } from '../ui';
@@ -89,16 +90,11 @@ export const content: ToolLocaleContent<PasswordGeneratorUI> = {
89
90
  title: 'Secure Random Password Generator',
90
91
  description: 'Create strong, hack-proof passwords instantly. Free cybersecurity tool to generate random, secure keys.',
91
92
  ui,
92
- faqTitle: 'Frequently Asked Questions',
93
+
93
94
  faq: faqData,
94
95
  howTo: howToData,
95
- bibliographyTitle: 'References',
96
- bibliography: [
97
- { name: 'Web Cryptography API — MDN Web Docs', url: 'https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API' },
98
- { name: 'NIST SP 800-63B: Digital Identity Guidelines', url: 'https://pages.nist.gov/800-63-3/sp800-63b.html' },
99
- { name: 'Password — Wikipedia', url: 'https://en.wikipedia.org/wiki/Password' },
100
- { name: 'Have I Been Pwned — Check if your password was exposed', url: 'https://haveibeenpwned.com/Passwords' },
101
- ],
96
+
97
+ bibliography,
102
98
  schemas: [faqSchema, howToSchema, appSchema],
103
99
  seo: [
104
100
  {
@@ -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 { PasswordGeneratorUI } from '../ui';
@@ -89,16 +90,11 @@ export const content: ToolLocaleContent<PasswordGeneratorUI> = {
89
90
  title: 'Generador de Contraseñas Seguras y Aleatorias',
90
91
  description: 'Crea contraseñas robustas e imposibles de hackear al instante. Herramienta gratuita de ciberseguridad para generar claves aleatorias y seguras.',
91
92
  ui,
92
- faqTitle: 'Preguntas Frecuentes',
93
+
93
94
  faq: faqData,
94
95
  howTo: howToData,
95
- bibliographyTitle: 'Referencias',
96
- bibliography: [
97
- { name: 'Web Cryptography API — MDN Web Docs', url: 'https://developer.mozilla.org/es/docs/Web/API/Web_Crypto_API' },
98
- { name: 'NIST SP 800-63B: Digital Identity Guidelines', url: 'https://pages.nist.gov/800-63-3/sp800-63b.html' },
99
- { name: 'Contraseña — Wikipedia', url: 'https://es.wikipedia.org/wiki/Contrase%C3%B1a' },
100
- { name: 'Have I Been Pwned — Comprueba si tu contraseña fue expuesta', url: 'https://haveibeenpwned.com/Passwords' },
101
- ],
96
+
97
+ bibliography,
102
98
  schemas: [faqSchema, howToSchema, appSchema],
103
99
  seo: [
104
100
  {
@@ -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 { PasswordGeneratorUI } from '../ui';
@@ -89,16 +90,11 @@ export const content: ToolLocaleContent<PasswordGeneratorUI> = {
89
90
  title: 'Générateur de mots de passe sécurisés et aléatoires',
90
91
  description: 'Créez des mots de passe robustes et impossibles à pirater instantanément. Outil de cybersécurité gratuit pour générer des clés aléatoires et sécurisées.',
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: 'API Web Cryptography — MDN Web Docs', url: 'https://developer.mozilla.org/fr/docs/Web/API/Web_Crypto_API' },
98
- { name: 'NIST SP 800-63B : Lignes directrices sur l\'identité numérique', url: 'https://pages.nist.gov/800-63-3/sp800-63b.html' },
99
- { name: 'Mot de passe — Wikipédia', url: 'https://fr.wikipedia.org/wiki/Mot_de_passe' },
100
- { name: 'Have I Been Pwned — Vérifiez si votre mot de passe a été exposé', url: 'https://haveibeenpwned.com/Passwords' },
101
- ],
96
+
97
+ bibliography,
102
98
  schemas: [faqSchema, howToSchema, appSchema],
103
99
  seo: [
104
100
  {