@jjlmoya/utils-hardware 1.15.0 → 1.16.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 (152) hide show
  1. package/package.json +1 -1
  2. package/src/category/index.ts +2 -1
  3. package/src/entries.ts +4 -1
  4. package/src/index.ts +1 -0
  5. package/src/pages/[locale]/[slug].astro +28 -12
  6. package/src/tests/locale_completeness.test.ts +6 -20
  7. package/src/tests/shared-test-helpers.ts +56 -0
  8. package/src/tests/tool_exports.test.ts +34 -0
  9. package/src/tests/tool_validation.test.ts +2 -2
  10. package/src/tool/batteryHealthEstimator/bibliography.ts +13 -0
  11. package/src/tool/batteryHealthEstimator/i18n/de.ts +2 -12
  12. package/src/tool/batteryHealthEstimator/i18n/en.ts +2 -12
  13. package/src/tool/batteryHealthEstimator/i18n/es.ts +2 -12
  14. package/src/tool/batteryHealthEstimator/i18n/fr.ts +2 -12
  15. package/src/tool/batteryHealthEstimator/i18n/id.ts +2 -12
  16. package/src/tool/batteryHealthEstimator/i18n/it.ts +2 -12
  17. package/src/tool/batteryHealthEstimator/i18n/ja.ts +2 -12
  18. package/src/tool/batteryHealthEstimator/i18n/ko.ts +2 -12
  19. package/src/tool/batteryHealthEstimator/i18n/nl.ts +2 -12
  20. package/src/tool/batteryHealthEstimator/i18n/pl.ts +2 -12
  21. package/src/tool/batteryHealthEstimator/i18n/pt.ts +2 -12
  22. package/src/tool/batteryHealthEstimator/i18n/ru.ts +2 -12
  23. package/src/tool/batteryHealthEstimator/i18n/sv.ts +2 -12
  24. package/src/tool/batteryHealthEstimator/i18n/tr.ts +2 -12
  25. package/src/tool/batteryHealthEstimator/i18n/zh.ts +2 -12
  26. package/src/tool/batteryHealthEstimator/seo.astro +3 -2
  27. package/src/tool/deadPixelTest/bibliography.ts +13 -0
  28. package/src/tool/deadPixelTest/i18n/de.ts +2 -12
  29. package/src/tool/deadPixelTest/i18n/en.ts +2 -12
  30. package/src/tool/deadPixelTest/i18n/es.ts +2 -12
  31. package/src/tool/deadPixelTest/i18n/fr.ts +2 -12
  32. package/src/tool/deadPixelTest/i18n/id.ts +2 -12
  33. package/src/tool/deadPixelTest/i18n/it.ts +2 -12
  34. package/src/tool/deadPixelTest/i18n/ja.ts +2 -12
  35. package/src/tool/deadPixelTest/i18n/ko.ts +2 -12
  36. package/src/tool/deadPixelTest/i18n/nl.ts +2 -12
  37. package/src/tool/deadPixelTest/i18n/pl.ts +2 -12
  38. package/src/tool/deadPixelTest/i18n/pt.ts +2 -12
  39. package/src/tool/deadPixelTest/i18n/ru.ts +2 -12
  40. package/src/tool/deadPixelTest/i18n/sv.ts +2 -12
  41. package/src/tool/deadPixelTest/i18n/tr.ts +2 -12
  42. package/src/tool/deadPixelTest/i18n/zh.ts +2 -12
  43. package/src/tool/deadPixelTest/seo.astro +3 -2
  44. package/src/tool/gamepadTest/bibliography.ts +12 -0
  45. package/src/tool/gamepadTest/i18n/de.ts +2 -12
  46. package/src/tool/gamepadTest/i18n/en.ts +2 -12
  47. package/src/tool/gamepadTest/i18n/es.ts +2 -12
  48. package/src/tool/gamepadTest/i18n/fr.ts +2 -12
  49. package/src/tool/gamepadTest/i18n/id.ts +2 -12
  50. package/src/tool/gamepadTest/i18n/it.ts +2 -12
  51. package/src/tool/gamepadTest/i18n/ja.ts +2 -12
  52. package/src/tool/gamepadTest/i18n/ko.ts +2 -12
  53. package/src/tool/gamepadTest/i18n/nl.ts +2 -12
  54. package/src/tool/gamepadTest/i18n/pl.ts +2 -12
  55. package/src/tool/gamepadTest/i18n/pt.ts +2 -12
  56. package/src/tool/gamepadTest/i18n/ru.ts +2 -12
  57. package/src/tool/gamepadTest/i18n/sv.ts +2 -12
  58. package/src/tool/gamepadTest/i18n/tr.ts +2 -12
  59. package/src/tool/gamepadTest/i18n/zh.ts +2 -12
  60. package/src/tool/gamepadTest/seo.astro +3 -2
  61. package/src/tool/gamepadVibrationTester/bibliography.ts +13 -0
  62. package/src/tool/gamepadVibrationTester/i18n/de.ts +2 -12
  63. package/src/tool/gamepadVibrationTester/i18n/en.ts +2 -12
  64. package/src/tool/gamepadVibrationTester/i18n/es.ts +2 -12
  65. package/src/tool/gamepadVibrationTester/i18n/fr.ts +2 -12
  66. package/src/tool/gamepadVibrationTester/i18n/id.ts +2 -12
  67. package/src/tool/gamepadVibrationTester/i18n/it.ts +2 -12
  68. package/src/tool/gamepadVibrationTester/i18n/ja.ts +2 -12
  69. package/src/tool/gamepadVibrationTester/i18n/ko.ts +2 -12
  70. package/src/tool/gamepadVibrationTester/i18n/nl.ts +2 -12
  71. package/src/tool/gamepadVibrationTester/i18n/pl.ts +2 -12
  72. package/src/tool/gamepadVibrationTester/i18n/pt.ts +2 -12
  73. package/src/tool/gamepadVibrationTester/i18n/ru.ts +2 -12
  74. package/src/tool/gamepadVibrationTester/i18n/sv.ts +2 -12
  75. package/src/tool/gamepadVibrationTester/i18n/tr.ts +2 -12
  76. package/src/tool/gamepadVibrationTester/i18n/zh.ts +2 -12
  77. package/src/tool/gamepadVibrationTester/seo.astro +3 -2
  78. package/src/tool/keyboardTest/bibliography.ts +13 -0
  79. package/src/tool/keyboardTest/i18n/de.ts +2 -12
  80. package/src/tool/keyboardTest/i18n/en.ts +2 -12
  81. package/src/tool/keyboardTest/i18n/es.ts +2 -12
  82. package/src/tool/keyboardTest/i18n/fr.ts +2 -12
  83. package/src/tool/keyboardTest/i18n/id.ts +2 -12
  84. package/src/tool/keyboardTest/i18n/it.ts +2 -12
  85. package/src/tool/keyboardTest/i18n/ja.ts +2 -12
  86. package/src/tool/keyboardTest/i18n/ko.ts +2 -12
  87. package/src/tool/keyboardTest/i18n/nl.ts +2 -12
  88. package/src/tool/keyboardTest/i18n/pl.ts +2 -12
  89. package/src/tool/keyboardTest/i18n/pt.ts +2 -12
  90. package/src/tool/keyboardTest/i18n/ru.ts +2 -12
  91. package/src/tool/keyboardTest/i18n/sv.ts +2 -12
  92. package/src/tool/keyboardTest/i18n/tr.ts +2 -12
  93. package/src/tool/keyboardTest/i18n/zh.ts +2 -12
  94. package/src/tool/keyboardTest/seo.astro +3 -2
  95. package/src/tool/mousePollingTest/bibliography.ts +13 -0
  96. package/src/tool/mousePollingTest/i18n/de.ts +2 -12
  97. package/src/tool/mousePollingTest/i18n/en.ts +2 -12
  98. package/src/tool/mousePollingTest/i18n/es.ts +2 -12
  99. package/src/tool/mousePollingTest/i18n/fr.ts +2 -12
  100. package/src/tool/mousePollingTest/i18n/id.ts +2 -12
  101. package/src/tool/mousePollingTest/i18n/it.ts +2 -12
  102. package/src/tool/mousePollingTest/i18n/ja.ts +2 -12
  103. package/src/tool/mousePollingTest/i18n/ko.ts +2 -12
  104. package/src/tool/mousePollingTest/i18n/nl.ts +2 -12
  105. package/src/tool/mousePollingTest/i18n/pl.ts +2 -12
  106. package/src/tool/mousePollingTest/i18n/pt.ts +2 -12
  107. package/src/tool/mousePollingTest/i18n/ru.ts +2 -12
  108. package/src/tool/mousePollingTest/i18n/sv.ts +2 -12
  109. package/src/tool/mousePollingTest/i18n/tr.ts +2 -12
  110. package/src/tool/mousePollingTest/i18n/zh.ts +2 -12
  111. package/src/tool/mousePollingTest/seo.astro +3 -2
  112. package/src/tool/refreshRateDetector/bibliography.astro +14 -0
  113. package/src/tool/refreshRateDetector/bibliography.ts +20 -0
  114. package/src/tool/refreshRateDetector/component.astro +206 -0
  115. package/src/tool/refreshRateDetector/entry.ts +29 -0
  116. package/src/tool/refreshRateDetector/i18n/de.ts +196 -0
  117. package/src/tool/refreshRateDetector/i18n/en.ts +196 -0
  118. package/src/tool/refreshRateDetector/i18n/es.ts +196 -0
  119. package/src/tool/refreshRateDetector/i18n/fr.ts +196 -0
  120. package/src/tool/refreshRateDetector/i18n/id.ts +196 -0
  121. package/src/tool/refreshRateDetector/i18n/it.ts +196 -0
  122. package/src/tool/refreshRateDetector/i18n/ja.ts +196 -0
  123. package/src/tool/refreshRateDetector/i18n/ko.ts +196 -0
  124. package/src/tool/refreshRateDetector/i18n/nl.ts +196 -0
  125. package/src/tool/refreshRateDetector/i18n/pl.ts +196 -0
  126. package/src/tool/refreshRateDetector/i18n/pt.ts +196 -0
  127. package/src/tool/refreshRateDetector/i18n/ru.ts +196 -0
  128. package/src/tool/refreshRateDetector/i18n/sv.ts +196 -0
  129. package/src/tool/refreshRateDetector/i18n/tr.ts +196 -0
  130. package/src/tool/refreshRateDetector/i18n/zh.ts +196 -0
  131. package/src/tool/refreshRateDetector/index.ts +11 -0
  132. package/src/tool/refreshRateDetector/monitor-refresh-rate-detector.css +342 -0
  133. package/src/tool/refreshRateDetector/seo.astro +15 -0
  134. package/src/tool/refreshRateDetector/ui.ts +24 -0
  135. package/src/tool/toneGenerator/bibliography.ts +13 -0
  136. package/src/tool/toneGenerator/i18n/de.ts +2 -12
  137. package/src/tool/toneGenerator/i18n/en.ts +2 -12
  138. package/src/tool/toneGenerator/i18n/es.ts +2 -12
  139. package/src/tool/toneGenerator/i18n/fr.ts +2 -12
  140. package/src/tool/toneGenerator/i18n/id.ts +2 -12
  141. package/src/tool/toneGenerator/i18n/it.ts +2 -12
  142. package/src/tool/toneGenerator/i18n/ja.ts +2 -12
  143. package/src/tool/toneGenerator/i18n/ko.ts +2 -12
  144. package/src/tool/toneGenerator/i18n/nl.ts +2 -12
  145. package/src/tool/toneGenerator/i18n/pl.ts +2 -12
  146. package/src/tool/toneGenerator/i18n/pt.ts +2 -12
  147. package/src/tool/toneGenerator/i18n/ru.ts +2 -12
  148. package/src/tool/toneGenerator/i18n/sv.ts +2 -12
  149. package/src/tool/toneGenerator/i18n/tr.ts +2 -12
  150. package/src/tool/toneGenerator/i18n/zh.ts +2 -12
  151. package/src/tool/toneGenerator/seo.astro +3 -2
  152. package/src/tools.ts +2 -1
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { TestMandoUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'gamepad-test';
6
7
  const title = 'Online Gamepad & Controller Test';
@@ -82,19 +83,8 @@ export const content: ToolLocaleContent<TestMandoUI> = {
82
83
  slug,
83
84
  title,
84
85
  description,
85
- faqTitle: 'Frequently Asked Questions',
86
86
  faq: faqData,
87
- bibliographyTitle: 'Technical References',
88
- bibliography: [
89
- {
90
- name: 'Gamepad API Standard - W3C',
91
- url: 'https://w3c.github.io/gamepad/',
92
- },
93
- {
94
- name: 'Vibration API - MDN Web Docs',
95
- url: 'https://developer.mozilla.org/en-US/docs/Web/API/Vibration_API',
96
- },
97
- ],
87
+ bibliography,
98
88
  howTo: howToData,
99
89
  schemas: [faqSchema, howToSchema, appSchema],
100
90
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { TestMandoUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'test-mando';
6
7
  const title = 'Test de Mando y Gamepad Online';
@@ -82,19 +83,8 @@ export const content: ToolLocaleContent<TestMandoUI> = {
82
83
  slug,
83
84
  title,
84
85
  description,
85
- faqTitle: 'Preguntas Frecuentes',
86
86
  faq: faqData,
87
- bibliographyTitle: 'Referencias Técnicas',
88
- bibliography: [
89
- {
90
- name: 'Gamepad API Standard - W3C',
91
- url: 'https://w3c.github.io/gamepad/',
92
- },
93
- {
94
- name: 'Vibration API - MDN Web Docs',
95
- url: 'https://developer.mozilla.org/en-US/docs/Web/API/Vibration_API',
96
- },
97
- ],
87
+ bibliography,
98
88
  howTo: howToData,
99
89
  schemas: [faqSchema, howToSchema, appSchema],
100
90
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { TestMandoUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'test-manette';
6
7
  const title = 'Test de Manette et Contrôleur En Ligne';
@@ -82,21 +83,10 @@ export const content: ToolLocaleContent<TestMandoUI> = {
82
83
  slug,
83
84
  title,
84
85
  description,
85
- faqTitle: 'Questions Fréquemment Posées',
86
86
  faq: faqData,
87
- bibliographyTitle: 'Références Techniques',
88
- bibliography: [
89
- {
90
- name: 'Gamepad API Standard - W3C',
91
- url: 'https://w3c.github.io/gamepad/',
92
- },
93
- {
94
- name: 'Vibration API - MDN Web Docs',
95
- url: 'https://developer.mozilla.org/en-US/docs/Web/API/Vibration_API',
96
- },
97
- ],
98
87
  howTo: howToData,
99
88
  schemas: [faqSchema, howToSchema, appSchema],
89
+ bibliography,
100
90
  seo: [
101
91
  {
102
92
  type: 'title',
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { TestMandoUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'tes-gamepad-online';
6
7
  const title = 'Tes Gamepad & Kontroler Online';
@@ -82,21 +83,10 @@ export const content: ToolLocaleContent<TestMandoUI> = {
82
83
  slug,
83
84
  title,
84
85
  description,
85
- faqTitle: 'Pertanyaan yang Sering Diajukan',
86
86
  faq: faqData,
87
- bibliographyTitle: 'Referensi Teknis',
88
- bibliography: [
89
- {
90
- name: 'Standar Gamepad API - W3C',
91
- url: 'https://w3c.github.io/gamepad/',
92
- },
93
- {
94
- name: 'Vibration API - MDN Web Docs',
95
- url: 'https://developer.mozilla.org/en-US/docs/Web/API/Vibration_API',
96
- },
97
- ],
98
87
  howTo: howToData,
99
88
  schemas: [faqSchema, howToSchema, appSchema],
89
+ bibliography,
100
90
  seo: [
101
91
  {
102
92
  type: 'title',
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { TestMandoUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'test-gamepad-online';
6
7
  const title = 'Test Gamepad e Controller Online';
@@ -82,21 +83,10 @@ export const content: ToolLocaleContent<TestMandoUI> = {
82
83
  slug,
83
84
  title,
84
85
  description,
85
- faqTitle: 'Domande Frequenti',
86
86
  faq: faqData,
87
- bibliographyTitle: 'Riferimenti Tecnici',
88
- bibliography: [
89
- {
90
- name: 'Gamepad API Standard - W3C',
91
- url: 'https://w3c.github.io/gamepad/',
92
- },
93
- {
94
- name: 'Vibration API - MDN Web Docs',
95
- url: 'https://developer.mozilla.org/en-US/docs/Web/API/Vibration_API',
96
- },
97
- ],
98
87
  howTo: howToData,
99
88
  schemas: [faqSchema, howToSchema, appSchema],
89
+ bibliography,
100
90
  seo: [
101
91
  {
102
92
  type: 'title',
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { TestMandoUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'gamepad-test';
6
7
  const title = 'オンライン・ゲームパッド&コントローラーテスト';
@@ -82,21 +83,10 @@ export const content: ToolLocaleContent<TestMandoUI> = {
82
83
  slug,
83
84
  title,
84
85
  description,
85
- faqTitle: 'よくある質問',
86
86
  faq: faqData,
87
- bibliographyTitle: '技術リファレンス',
88
- bibliography: [
89
- {
90
- name: 'Gamepad API 標準 - W3C',
91
- url: 'https://w3c.github.io/gamepad/',
92
- },
93
- {
94
- name: 'Vibration API - MDN Web Docs',
95
- url: 'https://developer.mozilla.org/en-US/docs/Web/API/Vibration_API',
96
- },
97
- ],
98
87
  howTo: howToData,
99
88
  schemas: [faqSchema, howToSchema, appSchema],
89
+ bibliography,
100
90
  seo: [
101
91
  {
102
92
  type: 'title',
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { TestMandoUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'gamepad-test';
6
7
  const title = '온라인 게임패드 및 컨트롤러 테스트';
@@ -82,21 +83,10 @@ export const content: ToolLocaleContent<TestMandoUI> = {
82
83
  slug,
83
84
  title,
84
85
  description,
85
- faqTitle: '자주 묻는 질문',
86
86
  faq: faqData,
87
- bibliographyTitle: '기술 참조',
88
- bibliography: [
89
- {
90
- name: 'Gamepad API 표준 - W3C',
91
- url: 'https://w3c.github.io/gamepad/',
92
- },
93
- {
94
- name: 'Vibration API - MDN Web Docs',
95
- url: 'https://developer.mozilla.org/en-US/docs/Web/API/Vibration_API',
96
- },
97
- ],
98
87
  howTo: howToData,
99
88
  schemas: [faqSchema, howToSchema, appSchema],
89
+ bibliography,
100
90
  seo: [
101
91
  {
102
92
  type: 'title',
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { TestMandoUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'gamepad-test-online';
6
7
  const title = 'Online Gamepad & Controller Test';
@@ -82,21 +83,10 @@ export const content: ToolLocaleContent<TestMandoUI> = {
82
83
  slug,
83
84
  title,
84
85
  description,
85
- faqTitle: 'Veelgestelde Vragen',
86
86
  faq: faqData,
87
- bibliographyTitle: 'Technische Referenties',
88
- bibliography: [
89
- {
90
- name: 'Gamepad API Standard - W3C',
91
- url: 'https://w3c.github.io/gamepad/',
92
- },
93
- {
94
- name: 'Vibration API - MDN Web Docs',
95
- url: 'https://developer.mozilla.org/en-US/docs/Web/API/Vibration_API',
96
- },
97
- ],
98
87
  howTo: howToData,
99
88
  schemas: [faqSchema, howToSchema, appSchema],
89
+ bibliography,
100
90
  seo: [
101
91
  {
102
92
  type: 'title',
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { TestMandoUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'test-pada-online';
6
7
  const title = 'Test Padów i Kontrolerów Online';
@@ -82,21 +83,10 @@ export const content: ToolLocaleContent<TestMandoUI> = {
82
83
  slug,
83
84
  title,
84
85
  description,
85
- faqTitle: 'Często Zadawane Pytania',
86
86
  faq: faqData,
87
- bibliographyTitle: 'Referencje Techniczne',
88
- bibliography: [
89
- {
90
- name: 'Gamepad API Standard - W3C',
91
- url: 'https://w3c.github.io/gamepad/',
92
- },
93
- {
94
- name: 'Vibration API - MDN Web Docs',
95
- url: 'https://developer.mozilla.org/en-US/docs/Web/API/Vibration_API',
96
- },
97
- ],
98
87
  howTo: howToData,
99
88
  schemas: [faqSchema, howToSchema, appSchema],
89
+ bibliography,
100
90
  seo: [
101
91
  {
102
92
  type: 'title',
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { TestMandoUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'teste-gamepad-online';
6
7
  const title = 'Teste de Gamepad e Comando Online';
@@ -82,21 +83,10 @@ export const content: ToolLocaleContent<TestMandoUI> = {
82
83
  slug,
83
84
  title,
84
85
  description,
85
- faqTitle: 'Perguntas Frequentes',
86
86
  faq: faqData,
87
- bibliographyTitle: 'Referências Técnicas',
88
- bibliography: [
89
- {
90
- name: 'Gamepad API Standard - W3C',
91
- url: 'https://w3c.github.io/gamepad/',
92
- },
93
- {
94
- name: 'Vibration API - MDN Web Docs',
95
- url: 'https://developer.mozilla.org/en-US/docs/Web/API/Vibration_API',
96
- },
97
- ],
98
87
  howTo: howToData,
99
88
  schemas: [faqSchema, howToSchema, appSchema],
89
+ bibliography,
100
90
  seo: [
101
91
  {
102
92
  type: 'title',
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { TestMandoUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'test-gejmpada-online';
6
7
  const title = 'Онлайн тест геймпада и контроллера';
@@ -82,21 +83,10 @@ export const content: ToolLocaleContent<TestMandoUI> = {
82
83
  slug,
83
84
  title,
84
85
  description,
85
- faqTitle: 'Часто Задаваемые Вопросы',
86
86
  faq: faqData,
87
- bibliographyTitle: 'Технические Справки',
88
- bibliography: [
89
- {
90
- name: 'Стандарт Gamepad API - W3C',
91
- url: 'https://w3c.github.io/gamepad/',
92
- },
93
- {
94
- name: 'Vibration API - MDN Web Docs',
95
- url: 'https://developer.mozilla.org/en-US/docs/Web/API/Vibration_API',
96
- },
97
- ],
98
87
  howTo: howToData,
99
88
  schemas: [faqSchema, howToSchema, appSchema],
89
+ bibliography,
100
90
  seo: [
101
91
  {
102
92
  type: 'title',
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { TestMandoUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'gamepad-test-svenska';
6
7
  const title = 'Gamepad & Controller Test Online';
@@ -82,21 +83,10 @@ export const content: ToolLocaleContent<TestMandoUI> = {
82
83
  slug,
83
84
  title,
84
85
  description,
85
- faqTitle: 'Vanliga frågor',
86
86
  faq: faqData,
87
- bibliographyTitle: 'Tekniska referenser',
88
- bibliography: [
89
- {
90
- name: 'Gamepad API Standard - W3C',
91
- url: 'https://w3c.github.io/gamepad/',
92
- },
93
- {
94
- name: 'Vibration API - MDN Web Docs',
95
- url: 'https://developer.mozilla.org/en-US/docs/Web/API/Vibration_API',
96
- },
97
- ],
98
87
  howTo: howToData,
99
88
  schemas: [faqSchema, howToSchema, appSchema],
89
+ bibliography,
100
90
  seo: [
101
91
  {
102
92
  type: 'title',
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { TestMandoUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'oyun-kolu-testi-online';
6
7
  const title = 'Çevrimiçi Oyun Kolu ve Kontrolcü Testi';
@@ -82,21 +83,10 @@ export const content: ToolLocaleContent<TestMandoUI> = {
82
83
  slug,
83
84
  title,
84
85
  description,
85
- faqTitle: 'Sıkça Sorulan Sorular',
86
86
  faq: faqData,
87
- bibliographyTitle: 'Teknik Referanslar',
88
- bibliography: [
89
- {
90
- name: 'Gamepad API Standardı - W3C',
91
- url: 'https://w3c.github.io/gamepad/',
92
- },
93
- {
94
- name: 'Titreşim API\'sı - MDN Web Belgeleri',
95
- url: 'https://developer.mozilla.org/en-US/docs/Web/API/Vibration_API',
96
- },
97
- ],
98
87
  howTo: howToData,
99
88
  schemas: [faqSchema, howToSchema, appSchema],
89
+ bibliography,
100
90
  seo: [
101
91
  {
102
92
  type: 'title',
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { TestMandoUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'gamepad-test';
6
7
  const title = '在线手柄与控制器检测';
@@ -82,21 +83,10 @@ export const content: ToolLocaleContent<TestMandoUI> = {
82
83
  slug,
83
84
  title,
84
85
  description,
85
- faqTitle: '常见问题',
86
86
  faq: faqData,
87
- bibliographyTitle: '技术参考',
88
- bibliography: [
89
- {
90
- name: 'Gamepad API 标准 - W3C',
91
- url: 'https://w3c.github.io/gamepad/',
92
- },
93
- {
94
- name: 'Vibration API - MDN Web Docs',
95
- url: 'https://developer.mozilla.org/en-US/docs/Web/API/Vibration_API',
96
- },
97
- ],
98
87
  howTo: howToData,
99
88
  schemas: [faqSchema, howToSchema, appSchema],
89
+ bibliography,
100
90
  seo: [
101
91
  {
102
92
  type: 'title',
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  import { SEORenderer } from '@jjlmoya/utils-shared';
3
- import type { KnownLocale } from '../../types';
4
3
  import { testMando } from './index';
4
+ import type { KnownLocale } from '../../types';
5
5
 
6
6
  interface Props {
7
7
  locale?: KnownLocale;
@@ -9,6 +9,7 @@ interface Props {
9
9
 
10
10
  const { locale = 'es' } = Astro.props;
11
11
  const content = await testMando.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 }} />}
@@ -0,0 +1,13 @@
1
+ import type { BibliographyEntry } from '../../../types';
2
+
3
+ export const bibliography: BibliographyEntry[] = [
4
+
5
+ {
6
+ name: 'How haptic vibration works — HobbyConsolas',
7
+ url: 'https://www.hobbyconsolas.com/reportajes/como-funciona-vibracion-haptica-mando-dualsense-ps5-757673',
8
+ },
9
+ {
10
+ name: 'Gamepad API — W3C',
11
+ url: 'https://w3c.github.io/gamepad/',
12
+ },
13
+ ];
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { ProbadorVibracionMandoUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'gamepad-vibration-test-online';
6
7
  const title = 'Online Gamepad Vibrationstester';
@@ -87,21 +88,10 @@ export const content: ToolLocaleContent<ProbadorVibracionMandoUI> = {
87
88
  slug,
88
89
  title,
89
90
  description,
90
- faqTitle: 'Häufig gestellte Fragen',
91
91
  faq: faqData,
92
- bibliographyTitle: 'Referenzen',
93
- bibliography: [
94
- {
95
- name: 'Wie haptische Vibration funktioniert — HobbyConsolas',
96
- url: 'https://www.hobbyconsolas.com/reportajes/como-funciona-vibracion-haptica-mando-dualsense-ps5-757673',
97
- },
98
- {
99
- name: 'Gamepad API — W3C',
100
- url: 'https://w3c.github.io/gamepad/',
101
- },
102
- ],
103
92
  howTo: howToData,
104
93
  schemas: [faqSchema, howToSchema, appSchema],
94
+ bibliography,
105
95
  seo: [
106
96
  { type: 'title', text: 'So überprüfen Sie die Vibration Ihres Gaming Gamepads', level: 2 },
107
97
  {
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { ProbadorVibracionMandoUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'gamepad-vibration-tester';
6
7
  const title = 'Online Gamepad Vibration Tester';
@@ -87,21 +88,10 @@ export const content: ToolLocaleContent<ProbadorVibracionMandoUI> = {
87
88
  slug,
88
89
  title,
89
90
  description,
90
- faqTitle: 'Frequently Asked Questions',
91
91
  faq: faqData,
92
- bibliographyTitle: 'References',
93
- bibliography: [
94
- {
95
- name: 'How haptic vibration works — HobbyConsolas',
96
- url: 'https://www.hobbyconsolas.com/reportajes/como-funciona-vibracion-haptica-mando-dualsense-ps5-757673',
97
- },
98
- {
99
- name: 'Gamepad API — W3C',
100
- url: 'https://w3c.github.io/gamepad/',
101
- },
102
- ],
103
92
  howTo: howToData,
104
93
  schemas: [faqSchema, howToSchema, appSchema],
94
+ bibliography,
105
95
  seo: [
106
96
  { type: 'title', text: 'How to audit your gaming gamepad vibration', level: 2 },
107
97
  {
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { ProbadorVibracionMandoUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'probador-vibracion-mando';
6
7
  const title = 'Probador de Vibración de Mando Online';
@@ -87,21 +88,10 @@ export const content: ToolLocaleContent<ProbadorVibracionMandoUI> = {
87
88
  slug,
88
89
  title,
89
90
  description,
90
- faqTitle: 'Preguntas Frecuentes',
91
91
  faq: faqData,
92
- bibliographyTitle: 'Referencias',
93
- bibliography: [
94
- {
95
- name: 'Cómo funciona la vibración háptica — HobbyConsolas',
96
- url: 'https://www.hobbyconsolas.com/reportajes/como-funciona-vibracion-haptica-mando-dualsense-ps5-757673',
97
- },
98
- {
99
- name: 'Gamepad API — W3C',
100
- url: 'https://w3c.github.io/gamepad/',
101
- },
102
- ],
103
92
  howTo: howToData,
104
93
  schemas: [faqSchema, howToSchema, appSchema],
94
+ bibliography,
105
95
  seo: [
106
96
  { type: 'title', text: 'Cómo auditar la vibración de tu mando gaming', level: 2 },
107
97
  {
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { ProbadorVibracionMandoUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'testeur-vibration-manette';
6
7
  const title = 'Testeur de Vibration de Manette en Ligne';
@@ -87,21 +88,10 @@ export const content: ToolLocaleContent<ProbadorVibracionMandoUI> = {
87
88
  slug,
88
89
  title,
89
90
  description,
90
- faqTitle: 'Questions Fréquentes',
91
91
  faq: faqData,
92
- bibliographyTitle: 'Références',
93
- bibliography: [
94
- {
95
- name: 'Comment fonctionne la vibration haptique — HobbyConsolas',
96
- url: 'https://www.hobbyconsolas.com/reportajes/como-funciona-vibracion-haptica-mando-dualsense-ps5-757673',
97
- },
98
- {
99
- name: 'Gamepad API — W3C',
100
- url: 'https://w3c.github.io/gamepad/',
101
- },
102
- ],
103
92
  howTo: howToData,
104
93
  schemas: [faqSchema, howToSchema, appSchema],
94
+ bibliography,
105
95
  seo: [
106
96
  { type: 'title', text: 'Comment auditer la vibration de votre manette gaming', level: 2 },
107
97
  {
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { ProbadorVibracionMandoUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'tes-getaran-gamepad-online';
6
7
  const title = 'Tes Getaran Gamepad Online';
@@ -87,21 +88,10 @@ export const content: ToolLocaleContent<ProbadorVibracionMandoUI> = {
87
88
  slug,
88
89
  title,
89
90
  description,
90
- faqTitle: 'Pertanyaan yang Sering Diajukan',
91
91
  faq: faqData,
92
- bibliographyTitle: 'Referensi',
93
- bibliography: [
94
- {
95
- name: 'Cara kerja getaran haptik — HobbyConsolas',
96
- url: 'https://www.hobbyconsolas.com/reportajes/como-funciona-vibracion-haptica-mando-dualsense-ps5-757673',
97
- },
98
- {
99
- name: 'Gamepad API — W3C',
100
- url: 'https://w3c.github.io/gamepad/',
101
- },
102
- ],
103
92
  howTo: howToData,
104
93
  schemas: [faqSchema, howToSchema, appSchema],
94
+ bibliography,
105
95
  seo: [
106
96
  { type: 'title', text: 'Cara memeriksa getaran gamepad gaming Anda', level: 2 },
107
97
  {
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { ProbadorVibracionMandoUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'test-vibrazione-gamepad-online';
6
7
  const title = 'Test Vibrazione Gamepad Online';
@@ -87,21 +88,10 @@ export const content: ToolLocaleContent<ProbadorVibracionMandoUI> = {
87
88
  slug,
88
89
  title,
89
90
  description,
90
- faqTitle: 'Domande Frequenti',
91
91
  faq: faqData,
92
- bibliographyTitle: 'Riferimenti',
93
- bibliography: [
94
- {
95
- name: 'Come funziona la vibrazione aptica — HobbyConsolas',
96
- url: 'https://www.hobbyconsolas.com/reportajes/como-funciona-vibracion-haptica-mando-dualsense-ps5-757673',
97
- },
98
- {
99
- name: 'Gamepad API — W3C',
100
- url: 'https://w3c.github.io/gamepad/',
101
- },
102
- ],
103
92
  howTo: howToData,
104
93
  schemas: [faqSchema, howToSchema, appSchema],
94
+ bibliography,
105
95
  seo: [
106
96
  { type: 'title', text: 'Come verificare la vibrazione del tuo gamepad da gioco', level: 2 },
107
97
  {