@jjlmoya/utils-hardware 1.15.0 → 1.17.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 (178) hide show
  1. package/package.json +1 -1
  2. package/src/category/i18n/ru.ts +5 -5
  3. package/src/category/index.ts +3 -1
  4. package/src/entries.ts +7 -1
  5. package/src/index.ts +2 -0
  6. package/src/pages/[locale]/[slug].astro +28 -12
  7. package/src/tests/locale_completeness.test.ts +7 -21
  8. package/src/tests/no_h1_in_components.test.ts +1 -1
  9. package/src/tests/shared-test-helpers.ts +56 -0
  10. package/src/tests/tool_exports.test.ts +34 -0
  11. package/src/tests/tool_validation.test.ts +2 -2
  12. package/src/tool/batteryHealthEstimator/bibliography.ts +13 -0
  13. package/src/tool/batteryHealthEstimator/i18n/de.ts +3 -13
  14. package/src/tool/batteryHealthEstimator/i18n/en.ts +3 -13
  15. package/src/tool/batteryHealthEstimator/i18n/es.ts +2 -12
  16. package/src/tool/batteryHealthEstimator/i18n/fr.ts +3 -13
  17. package/src/tool/batteryHealthEstimator/i18n/id.ts +3 -13
  18. package/src/tool/batteryHealthEstimator/i18n/it.ts +2 -12
  19. package/src/tool/batteryHealthEstimator/i18n/ja.ts +2 -12
  20. package/src/tool/batteryHealthEstimator/i18n/ko.ts +2 -12
  21. package/src/tool/batteryHealthEstimator/i18n/nl.ts +3 -13
  22. package/src/tool/batteryHealthEstimator/i18n/pl.ts +3 -13
  23. package/src/tool/batteryHealthEstimator/i18n/pt.ts +3 -13
  24. package/src/tool/batteryHealthEstimator/i18n/ru.ts +7 -17
  25. package/src/tool/batteryHealthEstimator/i18n/sv.ts +3 -13
  26. package/src/tool/batteryHealthEstimator/i18n/tr.ts +3 -13
  27. package/src/tool/batteryHealthEstimator/i18n/zh.ts +3 -13
  28. package/src/tool/batteryHealthEstimator/seo.astro +3 -2
  29. package/src/tool/colorAccuracyTest/bibliography.astro +14 -0
  30. package/src/tool/colorAccuracyTest/bibliography.ts +16 -0
  31. package/src/tool/colorAccuracyTest/color-accuracy-test.css +728 -0
  32. package/src/tool/colorAccuracyTest/component.astro +157 -0
  33. package/src/tool/colorAccuracyTest/entry.ts +29 -0
  34. package/src/tool/colorAccuracyTest/i18n/de.ts +284 -0
  35. package/src/tool/colorAccuracyTest/i18n/en.ts +284 -0
  36. package/src/tool/colorAccuracyTest/i18n/es.ts +284 -0
  37. package/src/tool/colorAccuracyTest/i18n/fr.ts +284 -0
  38. package/src/tool/colorAccuracyTest/i18n/id.ts +284 -0
  39. package/src/tool/colorAccuracyTest/i18n/it.ts +284 -0
  40. package/src/tool/colorAccuracyTest/i18n/ja.ts +284 -0
  41. package/src/tool/colorAccuracyTest/i18n/ko.ts +284 -0
  42. package/src/tool/colorAccuracyTest/i18n/nl.ts +284 -0
  43. package/src/tool/colorAccuracyTest/i18n/pl.ts +284 -0
  44. package/src/tool/colorAccuracyTest/i18n/pt.ts +284 -0
  45. package/src/tool/colorAccuracyTest/i18n/ru.ts +284 -0
  46. package/src/tool/colorAccuracyTest/i18n/sv.ts +284 -0
  47. package/src/tool/colorAccuracyTest/i18n/tr.ts +284 -0
  48. package/src/tool/colorAccuracyTest/i18n/zh.ts +284 -0
  49. package/src/tool/colorAccuracyTest/index.ts +9 -0
  50. package/src/tool/colorAccuracyTest/logic.ts +226 -0
  51. package/src/tool/colorAccuracyTest/seo.astro +15 -0
  52. package/src/tool/colorAccuracyTest/ui.ts +27 -0
  53. package/src/tool/deadPixelTest/bibliography.ts +13 -0
  54. package/src/tool/deadPixelTest/i18n/de.ts +2 -12
  55. package/src/tool/deadPixelTest/i18n/en.ts +2 -12
  56. package/src/tool/deadPixelTest/i18n/es.ts +2 -12
  57. package/src/tool/deadPixelTest/i18n/fr.ts +2 -12
  58. package/src/tool/deadPixelTest/i18n/id.ts +2 -12
  59. package/src/tool/deadPixelTest/i18n/it.ts +2 -12
  60. package/src/tool/deadPixelTest/i18n/ja.ts +2 -12
  61. package/src/tool/deadPixelTest/i18n/ko.ts +2 -12
  62. package/src/tool/deadPixelTest/i18n/nl.ts +2 -12
  63. package/src/tool/deadPixelTest/i18n/pl.ts +2 -12
  64. package/src/tool/deadPixelTest/i18n/pt.ts +2 -12
  65. package/src/tool/deadPixelTest/i18n/ru.ts +2 -12
  66. package/src/tool/deadPixelTest/i18n/sv.ts +2 -12
  67. package/src/tool/deadPixelTest/i18n/tr.ts +2 -12
  68. package/src/tool/deadPixelTest/i18n/zh.ts +2 -12
  69. package/src/tool/deadPixelTest/seo.astro +3 -2
  70. package/src/tool/gamepadTest/bibliography.ts +12 -0
  71. package/src/tool/gamepadTest/i18n/de.ts +2 -12
  72. package/src/tool/gamepadTest/i18n/en.ts +2 -12
  73. package/src/tool/gamepadTest/i18n/es.ts +2 -12
  74. package/src/tool/gamepadTest/i18n/fr.ts +2 -12
  75. package/src/tool/gamepadTest/i18n/id.ts +2 -12
  76. package/src/tool/gamepadTest/i18n/it.ts +2 -12
  77. package/src/tool/gamepadTest/i18n/ja.ts +2 -12
  78. package/src/tool/gamepadTest/i18n/ko.ts +2 -12
  79. package/src/tool/gamepadTest/i18n/nl.ts +2 -12
  80. package/src/tool/gamepadTest/i18n/pl.ts +2 -12
  81. package/src/tool/gamepadTest/i18n/pt.ts +2 -12
  82. package/src/tool/gamepadTest/i18n/ru.ts +3 -13
  83. package/src/tool/gamepadTest/i18n/sv.ts +2 -12
  84. package/src/tool/gamepadTest/i18n/tr.ts +2 -12
  85. package/src/tool/gamepadTest/i18n/zh.ts +2 -12
  86. package/src/tool/gamepadTest/seo.astro +3 -2
  87. package/src/tool/gamepadVibrationTester/bibliography.ts +13 -0
  88. package/src/tool/gamepadVibrationTester/i18n/de.ts +2 -12
  89. package/src/tool/gamepadVibrationTester/i18n/en.ts +2 -12
  90. package/src/tool/gamepadVibrationTester/i18n/es.ts +2 -12
  91. package/src/tool/gamepadVibrationTester/i18n/fr.ts +2 -12
  92. package/src/tool/gamepadVibrationTester/i18n/id.ts +2 -12
  93. package/src/tool/gamepadVibrationTester/i18n/it.ts +2 -12
  94. package/src/tool/gamepadVibrationTester/i18n/ja.ts +2 -12
  95. package/src/tool/gamepadVibrationTester/i18n/ko.ts +2 -12
  96. package/src/tool/gamepadVibrationTester/i18n/nl.ts +2 -12
  97. package/src/tool/gamepadVibrationTester/i18n/pl.ts +2 -12
  98. package/src/tool/gamepadVibrationTester/i18n/pt.ts +2 -12
  99. package/src/tool/gamepadVibrationTester/i18n/ru.ts +5 -15
  100. package/src/tool/gamepadVibrationTester/i18n/sv.ts +2 -12
  101. package/src/tool/gamepadVibrationTester/i18n/tr.ts +2 -12
  102. package/src/tool/gamepadVibrationTester/i18n/zh.ts +2 -12
  103. package/src/tool/gamepadVibrationTester/seo.astro +3 -2
  104. package/src/tool/keyboardTest/bibliography.ts +13 -0
  105. package/src/tool/keyboardTest/i18n/de.ts +2 -12
  106. package/src/tool/keyboardTest/i18n/en.ts +2 -12
  107. package/src/tool/keyboardTest/i18n/es.ts +2 -12
  108. package/src/tool/keyboardTest/i18n/fr.ts +2 -12
  109. package/src/tool/keyboardTest/i18n/id.ts +2 -12
  110. package/src/tool/keyboardTest/i18n/it.ts +2 -12
  111. package/src/tool/keyboardTest/i18n/ja.ts +2 -12
  112. package/src/tool/keyboardTest/i18n/ko.ts +2 -12
  113. package/src/tool/keyboardTest/i18n/nl.ts +2 -12
  114. package/src/tool/keyboardTest/i18n/pl.ts +2 -12
  115. package/src/tool/keyboardTest/i18n/pt.ts +2 -12
  116. package/src/tool/keyboardTest/i18n/ru.ts +2 -12
  117. package/src/tool/keyboardTest/i18n/sv.ts +2 -12
  118. package/src/tool/keyboardTest/i18n/tr.ts +2 -12
  119. package/src/tool/keyboardTest/i18n/zh.ts +2 -12
  120. package/src/tool/keyboardTest/seo.astro +3 -2
  121. package/src/tool/mousePollingTest/bibliography.ts +13 -0
  122. package/src/tool/mousePollingTest/i18n/de.ts +3 -13
  123. package/src/tool/mousePollingTest/i18n/en.ts +3 -13
  124. package/src/tool/mousePollingTest/i18n/es.ts +3 -13
  125. package/src/tool/mousePollingTest/i18n/fr.ts +3 -13
  126. package/src/tool/mousePollingTest/i18n/id.ts +3 -13
  127. package/src/tool/mousePollingTest/i18n/it.ts +3 -13
  128. package/src/tool/mousePollingTest/i18n/ja.ts +3 -13
  129. package/src/tool/mousePollingTest/i18n/ko.ts +3 -13
  130. package/src/tool/mousePollingTest/i18n/nl.ts +3 -13
  131. package/src/tool/mousePollingTest/i18n/pl.ts +3 -13
  132. package/src/tool/mousePollingTest/i18n/pt.ts +3 -13
  133. package/src/tool/mousePollingTest/i18n/ru.ts +5 -15
  134. package/src/tool/mousePollingTest/i18n/sv.ts +3 -13
  135. package/src/tool/mousePollingTest/i18n/tr.ts +3 -13
  136. package/src/tool/mousePollingTest/i18n/zh.ts +3 -13
  137. package/src/tool/mousePollingTest/seo.astro +3 -2
  138. package/src/tool/refreshRateDetector/bibliography.astro +14 -0
  139. package/src/tool/refreshRateDetector/bibliography.ts +12 -0
  140. package/src/tool/refreshRateDetector/component.astro +206 -0
  141. package/src/tool/refreshRateDetector/entry.ts +29 -0
  142. package/src/tool/refreshRateDetector/i18n/de.ts +196 -0
  143. package/src/tool/refreshRateDetector/i18n/en.ts +196 -0
  144. package/src/tool/refreshRateDetector/i18n/es.ts +196 -0
  145. package/src/tool/refreshRateDetector/i18n/fr.ts +196 -0
  146. package/src/tool/refreshRateDetector/i18n/id.ts +196 -0
  147. package/src/tool/refreshRateDetector/i18n/it.ts +196 -0
  148. package/src/tool/refreshRateDetector/i18n/ja.ts +196 -0
  149. package/src/tool/refreshRateDetector/i18n/ko.ts +196 -0
  150. package/src/tool/refreshRateDetector/i18n/nl.ts +196 -0
  151. package/src/tool/refreshRateDetector/i18n/pl.ts +196 -0
  152. package/src/tool/refreshRateDetector/i18n/pt.ts +196 -0
  153. package/src/tool/refreshRateDetector/i18n/ru.ts +196 -0
  154. package/src/tool/refreshRateDetector/i18n/sv.ts +196 -0
  155. package/src/tool/refreshRateDetector/i18n/tr.ts +196 -0
  156. package/src/tool/refreshRateDetector/i18n/zh.ts +196 -0
  157. package/src/tool/refreshRateDetector/index.ts +11 -0
  158. package/src/tool/refreshRateDetector/monitor-refresh-rate-detector.css +342 -0
  159. package/src/tool/refreshRateDetector/seo.astro +15 -0
  160. package/src/tool/refreshRateDetector/ui.ts +24 -0
  161. package/src/tool/toneGenerator/bibliography.ts +13 -0
  162. package/src/tool/toneGenerator/i18n/de.ts +3 -13
  163. package/src/tool/toneGenerator/i18n/en.ts +3 -13
  164. package/src/tool/toneGenerator/i18n/es.ts +2 -12
  165. package/src/tool/toneGenerator/i18n/fr.ts +3 -13
  166. package/src/tool/toneGenerator/i18n/id.ts +3 -13
  167. package/src/tool/toneGenerator/i18n/it.ts +3 -13
  168. package/src/tool/toneGenerator/i18n/ja.ts +2 -12
  169. package/src/tool/toneGenerator/i18n/ko.ts +2 -12
  170. package/src/tool/toneGenerator/i18n/nl.ts +3 -13
  171. package/src/tool/toneGenerator/i18n/pl.ts +3 -13
  172. package/src/tool/toneGenerator/i18n/pt.ts +3 -13
  173. package/src/tool/toneGenerator/i18n/ru.ts +6 -16
  174. package/src/tool/toneGenerator/i18n/sv.ts +3 -13
  175. package/src/tool/toneGenerator/i18n/tr.ts +2 -12
  176. package/src/tool/toneGenerator/i18n/zh.ts +2 -12
  177. package/src/tool/toneGenerator/seo.astro +3 -2
  178. package/src/tools.ts +3 -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 { PixelesPantallaUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'doda-pixel-test-skarmreparation';
6
7
  const title = 'Test för Döda Pixlar och Skärmreparationsverktyg';
@@ -87,21 +88,10 @@ export const content: ToolLocaleContent<PixelesPantallaUI> = {
87
88
  slug,
88
89
  title,
89
90
  description,
90
- faqTitle: 'Vanliga frågor',
91
91
  faq: faqData,
92
- bibliographyTitle: 'Referenser och standarder',
93
- bibliography: [
94
- {
95
- name: 'ISO/IEC 9241-307: Bildskärmsergonomi och relaterad utrustning',
96
- url: 'https://www.iso.org/standard/72025.html',
97
- },
98
- {
99
- name: 'Dead Pixel Policy - Vanliga standarder (VESA)',
100
- url: 'https://www.vesa.org/',
101
- },
102
- ],
103
92
  howTo: howToData,
104
93
  schemas: [faqSchema, howToSchema, appSchema],
94
+ bibliography,
105
95
  seo: [
106
96
  {
107
97
  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 { PixelesPantallaUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'olu-piksel-testi-ekran-tamiri';
6
7
  const title = 'Ölü Piksel Testi ve Ekran Tamir Aracı';
@@ -87,21 +88,10 @@ export const content: ToolLocaleContent<PixelesPantallaUI> = {
87
88
  slug,
88
89
  title,
89
90
  description,
90
- faqTitle: 'Sıkça Sorulan Sorular',
91
91
  faq: faqData,
92
- bibliographyTitle: 'Referanslar ve Standartlar',
93
- bibliography: [
94
- {
95
- name: 'ISO/IEC 9241-307: Ekran ergonomisi ve ilgili ekipmanlar',
96
- url: 'https://www.iso.org/standard/72025.html',
97
- },
98
- {
99
- name: 'Ölü Piksel Politikası - Yaygın Standartlar (VESA)',
100
- url: 'https://www.vesa.org/',
101
- },
102
- ],
103
92
  howTo: howToData,
104
93
  schemas: [faqSchema, howToSchema, appSchema],
94
+ bibliography,
105
95
  seo: [
106
96
  {
107
97
  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 { PixelesPantallaUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'dead-pixel-tester';
6
7
  const title = '屏幕坏点检测与修复工具';
@@ -87,21 +88,10 @@ export const content: ToolLocaleContent<PixelesPantallaUI> = {
87
88
  slug,
88
89
  title,
89
90
  description,
90
- faqTitle: '常见问题',
91
91
  faq: faqData,
92
- bibliographyTitle: '参考资料与标准',
93
- bibliography: [
94
- {
95
- name: 'ISO/IEC 9241-307: 显示器人体工程学及相关设备',
96
- url: 'https://www.iso.org/standard/72025.html',
97
- },
98
- {
99
- name: '坏点政策 - 通用标准 (VESA)',
100
- url: 'https://www.vesa.org/',
101
- },
102
- ],
103
92
  howTo: howToData,
104
93
  schemas: [faqSchema, howToSchema, appSchema],
94
+ bibliography,
105
95
  seo: [
106
96
  {
107
97
  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 { pixelesPantalla } 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 pixelesPantalla.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,12 @@
1
+ import type { BibliographyEntry } from '../../../types';
2
+
3
+ export const bibliography: BibliographyEntry[] = [
4
+ {
5
+ name: 'Gamepad API Standard - W3C',
6
+ url: 'https://w3c.github.io/gamepad/',
7
+ },
8
+ {
9
+ name: 'Vibration API - MDN Web Docs',
10
+ url: 'https://developer.mozilla.org/en-US/docs/Web/API/Vibration_API',
11
+ },
12
+ ];
@@ -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-deutsch';
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: 'Häufig gestellte Fragen',
86
86
  faq: faqData,
87
- bibliographyTitle: 'Technische Referenzen',
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 = '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',
@@ -114,7 +104,7 @@ export const content: ToolLocaleContent<TestMandoUI> = {
114
104
  },
115
105
  {
116
106
  type: 'paragraph',
117
- html: 'Дрифт это распространенный дефект аналоговых стиков, при котором регистрируется движение без прикосновения к джойстику. Это вызвано износом внутренних потенциометров.',
107
+ html: 'Дрифт -это распространенный дефект аналоговых стиков, при котором регистрируется движение без прикосновения к джойстику. Это вызвано износом внутренних потенциометров.',
118
108
  },
119
109
  {
120
110
  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
  {