@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 { 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
  {
@@ -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
  {
@@ -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: 'Pembuat Kata Sandi Acak Aman',
90
91
  description: 'Buat kata sandi yang kuat dan tahan peretas secara instan. Alat keamanan siber gratis untuk menghasilkan kunci acak dan aman.',
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: '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://id.wikipedia.org/wiki/Kata_sandi' },
100
- { name: 'Have I Been Pwned — Periksa apakah kata sandi Anda terekspos', 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: 'Generatore di Password Casuali Sicure',
90
91
  description: 'Crea istantaneamente password forti e a prova di hacker. Strumento gratuito di cybersecurity per generare chiavi casuali e sicure.',
91
92
  ui,
92
- faqTitle: 'Domande Frequenti',
93
+
93
94
  faq: faqData,
94
95
  howTo: howToData,
95
- bibliographyTitle: 'Riferimenti',
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://it.wikipedia.org/wiki/Password' },
100
- { name: 'Have I Been Pwned — Controlla se la tua password è stata esposta', 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: '安全なランダムパスワード生成ツール',
90
91
  description: '強力でハッカーに強いパスワードを即座に作成します。ランダムで安全なキーを生成するための無料のサイバーセキュリティツール。',
91
92
  ui,
92
- faqTitle: 'よくある質問',
93
+
93
94
  faq: faqData,
94
95
  howTo: howToData,
95
- bibliographyTitle: '参考文献',
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: 'パスワード — Wikipedia', url: 'https://ja.wikipedia.org/wiki/%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89' },
100
- { name: 'Have I Been Pwned — パスワードの漏洩を確認', 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: '안전한 무작위 비밀번호 생성기',
90
91
  description: '강력하고 해킹에 강한 비밀번호를 즉시 생성하세요. 무작위의 안전한 키를 생성하기 위한 무료 사이버 보안 도구입니다.',
91
92
  ui,
92
- faqTitle: '자주 묻는 질문',
93
+
93
94
  faq: faqData,
94
95
  howTo: howToData,
95
- bibliographyTitle: '참고 문헌',
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: 디지털 ID 가이드라인', url: 'https://pages.nist.gov/800-63-3/sp800-63b.html' },
99
- { name: '비밀번호 — 위키백과', url: 'https://ko.wikipedia.org/wiki/%EB%B9%84%EB%B0%80%EB%B2%88%ED%98%B8' },
100
- { name: 'Have I Been Pwned — 비밀번호 유출 여부 확인', 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: 'Veilige willekeurige wachtwoordgenerator',
90
91
  description: 'Maak direct sterke, hackerbestendige wachtwoorden. Gratis cybersecurity-tool om willekeurige, veilige sleutels te genereren.',
91
92
  ui,
92
- faqTitle: 'Veelgestelde Vragen',
93
+
93
94
  faq: faqData,
94
95
  howTo: howToData,
95
- bibliographyTitle: 'Referenties',
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: 'Wachtwoord — Wikipedia', url: 'https://nl.wikipedia.org/wiki/Wachtwoord' },
100
- { name: 'Have I Been Pwned — Controleer of uw wachtwoord is uitgelekt', 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: 'Generator bezpiecznych losowych haseł',
90
91
  description: 'Błyskawicznie twórz silne, odporne na hakerów hasła. Darmowe narzędzie do cyberbezpieczeństwa do generowania losowych, bezpiecznych kluczy.',
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: '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: 'Hasło — Wikipedia', url: 'https://pl.wikipedia.org/wiki/Has%C5%82o' },
100
- { name: 'Have I Been Pwned — Sprawdź, czy Twoje hasło zostało ujawnione', url: 'https://haveibeenpwned.com/Passwords' },
101
- ],
96
+
97
+ bibliography,
102
98
  schemas: [faqSchema, howToSchema, appSchema],
103
99
  seo: [
104
100
  {