@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
@@ -0,0 +1,196 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { RefreshRateDetectorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
5
+
6
+ const slug = 'detecteur-taux-rafraichissement-moniteur';
7
+ const title = 'Détecteur de Taux de Rafraîchissement du Moniteur';
8
+ const description = 'Détectez instantanément le taux de rafraîchissement de votre moniteur avec précision grâce à requestAnimationFrame. Testez la stabilité des images et comparez-la aux normes de l\'industrie.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Qu\'est-ce que le taux de rafraîchissement (Hz) ?',
13
+ answer: 'Le taux de rafraîchissement correspond au nombre de fois par seconde où votre moniteur actualise l\'image. Un moniteur 60Hz se rafraîchit 60 fois par seconde, tandis qu\'un 144Hz se rafraîchit 144 fois. Des taux plus élevés permettent un mouvement plus fluide.',
14
+ },
15
+ {
16
+ question: 'Quelle est la précision de ce détecteur ?',
17
+ answer: 'Cet outil utilise requestAnimationFrame, qui se synchronise avec le cycle de rafraîchissement de votre moniteur. La précision dépend de la charge du système. Le mode stable mesure sur des périodes plus longues pour une plus grande précision.',
18
+ },
19
+ {
20
+ question: 'Quelle est la différence entre le mode Stable et Rapide ?',
21
+ answer: 'Le mode Rapide mesure pendant une courte durée (~3 secondes) pour un retour rapide. Le mode Stable prend plus de temps (~10 secondes) pour filtrer le bruit du système et fournir des résultats plus fiables.',
22
+ },
23
+ {
24
+ question: 'Pourquoi mon Hz détecté est-il différent de ce qu\'indique mon moniteur ?',
25
+ answer: 'Cela peut arriver si : votre connexion par câble est lâche, vos pilotes sont obsolètes ou la mise à l\'échelle de votre système d\'exploitation interfère. Essayez de débrancher et de rebrancher votre câble d\'affichage, ou de mettre à jour les pilotes de votre GPU.',
26
+ },
27
+ {
28
+ question: 'Quels taux de rafraîchissement les moniteurs modernes prennent-ils en charge ?',
29
+ answer: 'Les normes courantes sont 60Hz (basique), 75Hz, 120Hz, 144Hz (gaming), 240Hz (gaming compétitif) et 360Hz (eSports professionnels).',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: 'Charger l\'outil',
36
+ text: 'Ouvrez simplement cette page. Le détecteur commence la mesure immédiatement.',
37
+ },
38
+ {
39
+ name: 'Attendre la stabilisation',
40
+ text: 'Choisissez le mode Stable ou Rapide. Laissez la mesure se terminer sans déplacer la fenêtre.',
41
+ },
42
+ {
43
+ name: 'Vérifier le tachymètre',
44
+ text: 'Le taux de rafraîchissement de votre moniteur apparaît sous la forme d\'un cadran fluide, avec des statistiques de référence (min/max/moy).',
45
+ },
46
+ {
47
+ name: 'Comparer avec les normes',
48
+ text: 'L\'outil affiche la norme correspondant à votre moniteur (60, 75, 120, 144, 240, 360Hz).',
49
+ },
50
+ {
51
+ name: 'Optionnel : test de saut d\'images',
52
+ text: 'Observez le carré animé traverser l\'écran pour confirmer visuellement la fluidité.',
53
+ },
54
+ ];
55
+
56
+ const faqSchema: WithContext<FAQPage> = {
57
+ '@context': 'https://schema.org',
58
+ '@type': 'FAQPage',
59
+ mainEntity: faqData.map((item) => ({
60
+ '@type': 'Question',
61
+ name: item.question,
62
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
63
+ })),
64
+ };
65
+
66
+ const howToSchema: WithContext<HowTo> = {
67
+ '@context': 'https://schema.org',
68
+ '@type': 'HowTo',
69
+ name: title,
70
+ description,
71
+ step: howToData.map((step, i) => ({
72
+ '@type': 'HowToStep',
73
+ position: i + 1,
74
+ name: step.name,
75
+ text: step.text,
76
+ })),
77
+ };
78
+
79
+ const appSchema: WithContext<SoftwareApplication> = {
80
+ '@context': 'https://schema.org',
81
+ '@type': 'SoftwareApplication',
82
+ name: title,
83
+ description,
84
+ applicationCategory: 'UtilityApplication',
85
+ operatingSystem: 'All',
86
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'USD' },
87
+ inLanguage: 'fr',
88
+ };
89
+
90
+ export const content: ToolLocaleContent<RefreshRateDetectorUI> = {
91
+ slug,
92
+ title,
93
+ description,
94
+ faq: faqData,
95
+ bibliography,
96
+ howTo: howToData,
97
+ schemas: [faqSchema, howToSchema, appSchema],
98
+ seo: [
99
+ {
100
+ type: 'title',
101
+ text: 'Détecteur de Taux de Rafraîchissement du Moniteur : Testez les Hz de votre Écran en Ligne',
102
+ level: 2,
103
+ },
104
+ {
105
+ type: 'paragraph',
106
+ html: 'Détectez instantanément le taux de rafraîchissement de votre moniteur (60Hz, 144Hz, 240Hz, etc.) avec précision. Testez la stabilité des images et vérifiez que votre écran fonctionne selon ses spécifications nominales.',
107
+ },
108
+ {
109
+ type: 'title',
110
+ text: 'Pourquoi le Taux de Rafraîchissement du Moniteur est-il Important ?',
111
+ level: 3,
112
+ },
113
+ {
114
+ type: 'paragraph',
115
+ html: 'Le taux de rafraîchissement détermine la fluidité du mouvement sur votre écran. Les joueurs bénéficient de moniteurs de 144Hz+, tandis que les utilisateurs généraux trouvent les 60Hz adéquats. Cet outil aide à confirmer que votre moniteur offre réellement son taux de rafraîchissement annoncé.',
116
+ },
117
+ {
118
+ type: 'title',
119
+ text: 'Comment Détecter votre Taux de Rafraîchissement',
120
+ level: 3,
121
+ },
122
+ {
123
+ type: 'list',
124
+ items: [
125
+ 'Chargez ce détecteur -la mesure commence immédiatement',
126
+ 'Choisissez entre le mode de mesure Rapide (3s) ou Stable (10s)',
127
+ 'Lisez les Hz de votre moniteur sur le cadran du tachymètre',
128
+ 'Comparez aux normes de l\'industrie (60, 75, 120, 144, 240, 360Hz)',
129
+ ],
130
+ },
131
+ {
132
+ type: 'title',
133
+ text: 'Normes de Taux de Rafraîchissement Courantes',
134
+ level: 3,
135
+ },
136
+ {
137
+ type: 'table',
138
+ headers: ['Norme', 'Cas d\'Utilisation', 'Utilisateur Typique'],
139
+ rows: [
140
+ ['60Hz', 'Informatique Générale', 'Bureautique, Navigation Web'],
141
+ ['75Hz', 'Gaming Léger', 'Joueurs Occasionnels'],
142
+ ['120Hz', 'Multimédia', 'Consoles, Streaming'],
143
+ ['144Hz', 'Gaming Compétitif', 'FPS, Jeux à Rythme Rapide'],
144
+ ['240Hz+', 'eSports Professionnels', 'Joueurs Pro, Streamers'],
145
+ ],
146
+ },
147
+ {
148
+ type: 'title',
149
+ text: 'Dépannage : L\'Écran Affiche moins de Hz que Prévu',
150
+ level: 3,
151
+ },
152
+ {
153
+ type: 'list',
154
+ items: [
155
+ 'Vérifiez les connexions du câble HDMI/DisplayPort -des câbles lâches réduisent la bande passante',
156
+ 'Mettez à jour vos pilotes GPU (NVIDIA, AMD, Intel)',
157
+ 'Vérifiez les paramètres d\'affichage de l\'OS pour vous assurer que le taux de rafraîchissement élevé est activé',
158
+ 'Essayez différents câbles ou ports sur votre moniteur',
159
+ 'Redémarrez votre ordinateur et testez de nouveau',
160
+ ],
161
+ },
162
+ {
163
+ type: 'title',
164
+ text: 'La Technologie derrière ce Détecteur',
165
+ level: 3,
166
+ },
167
+ {
168
+ type: 'paragraph',
169
+ html: 'Cet outil utilise l\'API requestAnimationFrame du navigateur, qui se synchronise directement avec le cycle de rafraîchissement de votre moniteur. En mesurant le temps entre les images d\'animation, nous calculons votre taux de rafraîchissement exact avec une grande précision -aucun matériel spécial n\'est requis.',
170
+ },
171
+ ],
172
+ ui: {
173
+ badge: 'Test d\'Écran',
174
+ title: 'Détecteur de Taux de Rafraîchissement',
175
+ description: 'Détectez le taux de rafraîchissement de votre écran instantanément',
176
+ modeStable: 'Stable (10s, précis)',
177
+ modeFast: 'Rapide (3s, rapide)',
178
+ measurementStatus: 'Mesure en cours...',
179
+ currentHz: 'Actuel',
180
+ averageHz: 'Moyenne',
181
+ maxHz: 'Maximum',
182
+ minHz: 'Minimum',
183
+ standardDetected: 'Norme Détectée',
184
+ frameSkippingTest: 'Test de Saut d\'Images',
185
+ startMeasurement: 'Démarrer la Mesure',
186
+ resetMeasurement: 'Réinitialiser',
187
+ copyResult: 'Copier le Résultat',
188
+ copiedFeedback: 'Copié dans le presse-papiers !',
189
+ optimalConfiguration: '[OK] Configuration Optimale',
190
+ suboptimalConfiguration: '[AVERTISSEMENT] Sous l\'Optimale',
191
+ unstableRefreshRate: '[AVERTISSEMENT] Taux de Rafraîchissement Instable',
192
+ measurementNotStarted: 'Prêt à mesurer',
193
+ switchMonitorHint: 'Faites glisser la fenêtre vers un autre moniteur pour le tester',
194
+ incompatibleBrowserMsg: 'Votre navigateur ne prend pas en charge requestAnimationFrame',
195
+ },
196
+ };
@@ -0,0 +1,196 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { RefreshRateDetectorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
5
+
6
+ const slug = 'detektor-refresh-rate-monitor';
7
+ const title = 'Monitor Refresh Rate Detector';
8
+ const description = 'Deteksi refresh rate monitor Anda secara instan dengan presisi menggunakan requestAnimationFrame. Uji stabilitas frame dan bandingkan dengan standar industri.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Apa itu refresh rate (Hz)?',
13
+ answer: 'Refresh rate adalah berapa kali per detik monitor Anda memperbarui gambar. Monitor 60Hz memperbarui 60 kali per detik, sedangkan 144Hz memperbarui 144 kali. Rate yang lebih tinggi menghasilkan gerakan yang lebih mulus.',
14
+ },
15
+ {
16
+ question: 'Seberapa akurat detektor ini?',
17
+ answer: 'Alat ini menggunakan requestAnimationFrame, yang sinkron dengan siklus refresh monitor Anda. Akurasi bergantung pada beban sistem. Mode stabil mengukur untuk periode yang lebih lama demi presisi yang lebih besar.',
18
+ },
19
+ {
20
+ question: 'Apa perbedaan antara mode Stabil dan Cepat?',
21
+ answer: 'Mode Cepat mengukur untuk waktu singkat (~3 detik) untuk umpan balik cepat. Mode Stabil memakan waktu lebih lama (~10 detik) untuk menyaring gangguan sistem dan memberikan hasil yang lebih andal.',
22
+ },
23
+ {
24
+ question: 'Mengapa Hz yang terdeteksi berbeda dengan spesifikasi monitor saya?',
25
+ answer: 'Ini bisa terjadi jika: koneksi kabel longgar, driver sudah usang, atau penskalaan OS mengganggu. Coba cabut dan pasang kembali kabel layar Anda, atau perbarui driver GPU.',
26
+ },
27
+ {
28
+ question: 'Berapa refresh rate yang didukung monitor modern?',
29
+ answer: 'Standar umum adalah 60Hz (dasar), 75Hz, 120Hz, 144Hz (gaming), 240Hz (gaming kompetitif), dan 360Hz (e-sports profesional).',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: 'Buka alat',
36
+ text: 'Cukup buka halaman ini. Detektor mulai mengukur segera.',
37
+ },
38
+ {
39
+ name: 'Tunggu stabilisasi',
40
+ text: 'Pilih mode Stabil atau Cepat. Biarkan pengukuran selesai tanpa menggeser jendela.',
41
+ },
42
+ {
43
+ name: 'Periksa speedometer',
44
+ text: 'Refresh rate monitor Anda muncul sebagai dial yang mulus, dengan statistik benchmark (min/maks/rata-rata).',
45
+ },
46
+ {
47
+ name: 'Bandingkan dengan standar',
48
+ text: 'Alat ini menunjukkan standar mana yang sesuai dengan monitor Anda (60, 75, 120, 144, 240, 360Hz).',
49
+ },
50
+ {
51
+ name: 'Opsional: uji frame skipping',
52
+ text: 'Lihat kotak animasi yang melintasi layar untuk mengonfirmasi fluiditas secara visual.',
53
+ },
54
+ ];
55
+
56
+ const faqSchema: WithContext<FAQPage> = {
57
+ '@context': 'https://schema.org',
58
+ '@type': 'FAQPage',
59
+ mainEntity: faqData.map((item) => ({
60
+ '@type': 'Question',
61
+ name: item.question,
62
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
63
+ })),
64
+ };
65
+
66
+ const howToSchema: WithContext<HowTo> = {
67
+ '@context': 'https://schema.org',
68
+ '@type': 'HowTo',
69
+ name: title,
70
+ description,
71
+ step: howToData.map((step, i) => ({
72
+ '@type': 'HowToStep',
73
+ position: i + 1,
74
+ name: step.name,
75
+ text: step.text,
76
+ })),
77
+ };
78
+
79
+ const appSchema: WithContext<SoftwareApplication> = {
80
+ '@context': 'https://schema.org',
81
+ '@type': 'SoftwareApplication',
82
+ name: title,
83
+ description,
84
+ applicationCategory: 'UtilityApplication',
85
+ operatingSystem: 'All',
86
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'USD' },
87
+ inLanguage: 'id',
88
+ };
89
+
90
+ export const content: ToolLocaleContent<RefreshRateDetectorUI> = {
91
+ slug,
92
+ title,
93
+ description,
94
+ faq: faqData,
95
+ bibliography,
96
+ howTo: howToData,
97
+ schemas: [faqSchema, howToSchema, appSchema],
98
+ seo: [
99
+ {
100
+ type: 'title',
101
+ text: 'Monitor Refresh Rate Detector: Uji Hz Layar Anda Secara Online',
102
+ level: 2,
103
+ },
104
+ {
105
+ type: 'paragraph',
106
+ html: 'Deteksi refresh rate monitor Anda (60Hz, 144Hz, 240Hz, dll.) secara instan dengan presisi. Uji stabilitas frame dan verifikasi apakah layar Anda berfungsi sesuai spesifikasi teknisnya.',
107
+ },
108
+ {
109
+ type: 'title',
110
+ text: 'Mengapa Refresh Rate Monitor Itu Penting',
111
+ level: 3,
112
+ },
113
+ {
114
+ type: 'paragraph',
115
+ html: 'Refresh rate menentukan seberapa mulus gerakan muncul di layar Anda. Gamer mendapat manfaat dari monitor 144Hz+, sementara pengguna umum merasa 60Hz sudah cukup. Alat ini membantu memastikan monitor Anda benar-benar memberikan refresh rate yang diiklankan.',
116
+ },
117
+ {
118
+ type: 'title',
119
+ text: 'Cara Mendeteksi Refresh Rate Anda',
120
+ level: 3,
121
+ },
122
+ {
123
+ type: 'list',
124
+ items: [
125
+ 'Buka detektor ini—pengukuran dimulai segera',
126
+ 'Pilih antara mode pengukuran Cepat (3 detik) atau Stabil (10 detik)',
127
+ 'Baca Hz monitor Anda dari dial speedometer',
128
+ 'Bandingkan dengan standar industri (60, 75, 120, 144, 240, 360Hz)',
129
+ ],
130
+ },
131
+ {
132
+ type: 'title',
133
+ text: 'Standar Refresh Rate Umum',
134
+ level: 3,
135
+ },
136
+ {
137
+ type: 'table',
138
+ headers: ['Standar', 'Kegunaan', 'Pengguna Tipikal'],
139
+ rows: [
140
+ ['60Hz', 'Komputasi Umum', 'Kantor, Menjelajah Web'],
141
+ ['75Hz', 'Gaming Ringan', 'Gamer Kasual'],
142
+ ['120Hz', 'Multimedia', 'Konsol, Streaming'],
143
+ ['144Hz', 'Gaming Kompetitif', 'FPS, Game Cepat'],
144
+ ['240Hz+', 'E-sports Profesional', 'Pro Gamer, Streamer'],
145
+ ],
146
+ },
147
+ {
148
+ type: 'title',
149
+ text: 'Pemecahan Masalah: Layar Menampilkan Hz Lebih Rendah dari yang Diharapkan',
150
+ level: 3,
151
+ },
152
+ {
153
+ type: 'list',
154
+ items: [
155
+ 'Periksa koneksi kabel HDMI/DisplayPort—kabel longgar mengurangi bandwidth',
156
+ 'Perbarui driver GPU Anda (NVIDIA, AMD, Intel)',
157
+ 'Periksa pengaturan layar OS untuk memastikan refresh rate tinggi telah diaktifkan',
158
+ 'Coba kabel atau port yang berbeda pada monitor Anda',
159
+ 'Mulai ulang komputer Anda dan uji kembali',
160
+ ],
161
+ },
162
+ {
163
+ type: 'title',
164
+ text: 'Teknologi di Balik Detektor Ini',
165
+ level: 3,
166
+ },
167
+ {
168
+ type: 'paragraph',
169
+ html: 'Alat ini menggunakan API requestAnimationFrame browser, yang sinkron langsung dengan siklus refresh monitor Anda. Dengan mengukur waktu antar frame animasi, kami menghitung refresh rate Anda yang tepat dengan presisi tinggi—tanpa perlu perangkat keras khusus.',
170
+ },
171
+ ],
172
+ ui: {
173
+ badge: 'Uji Layar',
174
+ title: 'Monitor Refresh Rate Detector',
175
+ description: 'Deteksi refresh rate layar Anda secara instan',
176
+ modeStable: 'Stabil (10 detik, presisi)',
177
+ modeFast: 'Cepat (3 detik, kilat)',
178
+ measurementStatus: 'Mengukur...',
179
+ currentHz: 'Saat Ini',
180
+ averageHz: 'Rata-rata',
181
+ maxHz: 'Maksimum',
182
+ minHz: 'Minimum',
183
+ standardDetected: 'Standar Terdeteksi',
184
+ frameSkippingTest: 'Uji Frame Skipping',
185
+ startMeasurement: 'Mulai Pengukuran',
186
+ resetMeasurement: 'Atur Ulang',
187
+ copyResult: 'Salin Hasil',
188
+ copiedFeedback: 'Berhasil disalin ke papan klip!',
189
+ optimalConfiguration: '[OK] Konfigurasi Optimal',
190
+ suboptimalConfiguration: '[PERINGATAN] Di Bawah Optimal',
191
+ unstableRefreshRate: '[PERINGATAN] Refresh Rate Tidak Stabil',
192
+ measurementNotStarted: 'Siap untuk mengukur',
193
+ switchMonitorHint: 'Seret jendela ke monitor lain untuk mengujinya',
194
+ incompatibleBrowserMsg: 'Browser Anda tidak mendukung requestAnimationFrame',
195
+ },
196
+ };
@@ -0,0 +1,196 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { RefreshRateDetectorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
5
+
6
+ const slug = 'rilevatore-frequenza-aggiornamento-monitor';
7
+ const title = 'Rilevatore Frequenza di Aggiornamento Monitor';
8
+ const description = 'Rileva istantaneamente la frequenza di aggiornamento del tuo monitor con precisione utilizzando requestAnimationFrame. Testa la stabilità dei fotogrammi e confrontala con gli standard del settore.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Cos\'è la frequenza di aggiornamento (Hz)?',
13
+ answer: 'La frequenza di aggiornamento indica quante volte al secondo il monitor aggiorna l\'immagine. Un monitor a 60Hz si aggiorna 60 volte al secondo, mentre uno a 144Hz si aggiorna 144 volte. Frequenze più elevate si traducono in movimenti più fluidi.',
14
+ },
15
+ {
16
+ question: 'Quanto è preciso questo rilevatore?',
17
+ answer: 'Questo strumento utilizza requestAnimationFrame, che si sincronizza con il ciclo di aggiornamento del monitor. La precisione dipende dal carico del sistema. La modalità stabile misura per periodi più lunghi per una maggiore precisione.',
18
+ },
19
+ {
20
+ question: 'Qual è la differenza tra la modalità Stabile e quella Veloce?',
21
+ answer: 'La modalità Veloce misura per un breve periodo (~3 secondi) per un feedback rapido. La modalità Stabile richiede più tempo (~10 secondi) per filtrare il rumore del sistema e fornire risultati più affidabili.',
22
+ },
23
+ {
24
+ question: 'Perché gli Hz rilevati sono diversi da quelli indicati dal mio monitor?',
25
+ answer: 'Ciò può accadere se: il collegamento del cavo è allentato, i driver sono obsoleti o l\'interferenza del ridimensionamento del sistema operativo. Prova a scollegare e ricollegare il cavo del display o ad aggiornare i driver della GPU.',
26
+ },
27
+ {
28
+ question: 'Quali frequenze di aggiornamento supportano i monitor moderni?',
29
+ answer: 'Gli standard comuni sono 60Hz (base), 75Hz, 120Hz, 144Hz (gaming), 240Hz (gaming competitivo) e 360Hz (eSport professionali).',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: 'Carica lo strumento',
36
+ text: 'Basta aprire questa pagina. Il rilevatore inizia a misurare immediatamente.',
37
+ },
38
+ {
39
+ name: 'Attendi la stabilizzazione',
40
+ text: 'Scegli la modalità Stabile o Veloce. Lascia che la misurazione venga completata senza spostare la finestra.',
41
+ },
42
+ {
43
+ name: 'Controlla il tachimetro',
44
+ text: 'La frequenza di aggiornamento del monitor appare come un quadrante fluido, con statistiche di benchmark (min/max/media).',
45
+ },
46
+ {
47
+ name: 'Confronta con gli standard',
48
+ text: 'Lo strumento mostra a quale standard corrisponde il tuo monitor (60, 75, 120, 144, 240, 360Hz).',
49
+ },
50
+ {
51
+ name: 'Opzionale: test del salto dei fotogrammi',
52
+ text: 'Osserva il quadrato animato che attraversa lo schermo per confermare visivamente la fluidità.',
53
+ },
54
+ ];
55
+
56
+ const faqSchema: WithContext<FAQPage> = {
57
+ '@context': 'https://schema.org',
58
+ '@type': 'FAQPage',
59
+ mainEntity: faqData.map((item) => ({
60
+ '@type': 'Question',
61
+ name: item.question,
62
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
63
+ })),
64
+ };
65
+
66
+ const howToSchema: WithContext<HowTo> = {
67
+ '@context': 'https://schema.org',
68
+ '@type': 'HowTo',
69
+ name: title,
70
+ description,
71
+ step: howToData.map((step, i) => ({
72
+ '@type': 'HowToStep',
73
+ position: i + 1,
74
+ name: step.name,
75
+ text: step.text,
76
+ })),
77
+ };
78
+
79
+ const appSchema: WithContext<SoftwareApplication> = {
80
+ '@context': 'https://schema.org',
81
+ '@type': 'SoftwareApplication',
82
+ name: title,
83
+ description,
84
+ applicationCategory: 'UtilityApplication',
85
+ operatingSystem: 'All',
86
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'USD' },
87
+ inLanguage: 'it',
88
+ };
89
+
90
+ export const content: ToolLocaleContent<RefreshRateDetectorUI> = {
91
+ slug,
92
+ title,
93
+ description,
94
+ faq: faqData,
95
+ bibliography,
96
+ howTo: howToData,
97
+ schemas: [faqSchema, howToSchema, appSchema],
98
+ seo: [
99
+ {
100
+ type: 'title',
101
+ text: 'Rilevatore Frequenza di Aggiornamento Monitor: Testa gli Hz del tuo Display Online',
102
+ level: 2,
103
+ },
104
+ {
105
+ type: 'paragraph',
106
+ html: 'Rileva istantaneamente la frequenza di aggiornamento del tuo monitor (60Hz, 144Hz, 240Hz, ecc.) con precisione. Testa la stabilità dei fotogrammi e verifica che il tuo display stia funzionando secondo le sue specifiche nominali.',
107
+ },
108
+ {
109
+ type: 'title',
110
+ text: 'Perché la Frequenza di Aggiornamento del Monitor è Importante',
111
+ level: 3,
112
+ },
113
+ {
114
+ type: 'paragraph',
115
+ html: 'La frequenza di aggiornamento determina la fluidità con cui i movimenti appaiono sullo schermo. I giocatori traggono vantaggio da monitor a 144Hz o superiori, mentre gli utenti generici trovano adeguati i 60Hz. Questo strumento aiuta a confermare che il monitor fornisca effettivamente la frequenza di aggiornamento pubblicizzata.',
116
+ },
117
+ {
118
+ type: 'title',
119
+ text: 'Come Rilevare la tua Frequenza di Aggiornamento',
120
+ level: 3,
121
+ },
122
+ {
123
+ type: 'list',
124
+ items: [
125
+ 'Carica questo rilevatore: la misurazione inizia immediatamente',
126
+ 'Scegli tra la modalità di misurazione Veloce (3s) o Stabile (10s)',
127
+ 'Leggi gli Hz del tuo monitor dal quadrante del tachimetro',
128
+ 'Confrontali con gli standard del settore (60, 75, 120, 144, 240, 360Hz)',
129
+ ],
130
+ },
131
+ {
132
+ type: 'title',
133
+ text: 'Standard Comuni della Frequenza di Aggiornamento',
134
+ level: 3,
135
+ },
136
+ {
137
+ type: 'table',
138
+ headers: ['Standard', 'Caso d\'Uso', 'Utente Tipico'],
139
+ rows: [
140
+ ['60Hz', 'Informatica Generale', 'Ufficio, Navigazione Web'],
141
+ ['75Hz', 'Gaming Leggero', 'Giocatori Occasionali'],
142
+ ['120Hz', 'Multimedia', 'Console, Streaming'],
143
+ ['144Hz', 'Gaming Competitivo', 'FPS, Giochi Veloci'],
144
+ ['240Hz+', 'eSport Professionali', 'Giocatori Pro, Streamer'],
145
+ ],
146
+ },
147
+ {
148
+ type: 'title',
149
+ text: 'Risoluzione dei Problemi: Il Display Mostra meno Hz di quelli Previsti',
150
+ level: 3,
151
+ },
152
+ {
153
+ type: 'list',
154
+ items: [
155
+ 'Controlla i collegamenti del cavo HDMI/DisplayPort: i cavi allentati riducono la larghezza di banda',
156
+ 'Aggiorna i driver della GPU (NVIDIA, AMD, Intel)',
157
+ 'Controlla le impostazioni del display del sistema operativo per assicurarti che la frequenza di aggiornamento elevata sia abilitata',
158
+ 'Prova diversi cavi o porte sul monitor',
159
+ 'Riavvia il computer e ripeti il test',
160
+ ],
161
+ },
162
+ {
163
+ type: 'title',
164
+ text: 'La Tecnologia Dietro questo Rilevatore',
165
+ level: 3,
166
+ },
167
+ {
168
+ type: 'paragraph',
169
+ html: 'Questo strumento utilizza l\'API requestAnimationFrame del browser, che si sincronizza direttamente con il ciclo di aggiornamento del monitor. Misurando il tempo tra i fotogrammi dell\'animazione, calcoliamo la tua esatta frequenza di aggiornamento con alta precisione, senza bisogno di hardware speciale.',
170
+ },
171
+ ],
172
+ ui: {
173
+ badge: 'Test del Display',
174
+ title: 'Rilevatore Frequenza Monitor',
175
+ description: 'Rileva istantaneamente la frequenza di aggiornamento del tuo display',
176
+ modeStable: 'Stabile (10s, preciso)',
177
+ modeFast: 'Veloce (3s, rapido)',
178
+ measurementStatus: 'Misurazione in corso...',
179
+ currentHz: 'Attuale',
180
+ averageHz: 'Media',
181
+ maxHz: 'Massimo',
182
+ minHz: 'Minimo',
183
+ standardDetected: 'Standard Rilevato',
184
+ frameSkippingTest: 'Test del Salto dei Fotogrammi',
185
+ startMeasurement: 'Avvia Misurazione',
186
+ resetMeasurement: 'Ripristina',
187
+ copyResult: 'Copia Risultato',
188
+ copiedFeedback: 'Copiato negli appunti!',
189
+ optimalConfiguration: '[OK] Configurazione Ottimale',
190
+ suboptimalConfiguration: '[AVVISO] Sotto l\'Ottimale',
191
+ unstableRefreshRate: '[AVVISO] Frequenza Instabile',
192
+ measurementNotStarted: 'Pronto per la misurazione',
193
+ switchMonitorHint: 'Trascina la finestra su un altro monitor per testarlo',
194
+ incompatibleBrowserMsg: 'Il tuo browser non supporta requestAnimationFrame',
195
+ },
196
+ };