@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
@@ -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-chastoty-obnovleniya-monitora';
7
+ const title = 'Детектор частоты обновления монитора';
8
+ const description = 'Мгновенно и точно определите частоту обновления вашего монитора с помощью requestAnimationFrame. Проверьте стабильность кадров и сравните показатели с отраслевыми стандартами.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Что такое частота обновления (Гц)?',
13
+ answer: 'Частота обновления — это количество обновлений изображения на мониторе в секунду. Монитор с частотой 60 Гц обновляется 60 раз в секунду, а 144 Гц — 144 раза. Более высокая частота обеспечивает плавность движений.',
14
+ },
15
+ {
16
+ question: 'Насколько точен этот детектор?',
17
+ answer: 'Этот инструмент использует requestAnimationFrame, который синхронизируется с циклом обновления вашего монитора. Точность зависит от нагрузки на систему. Стабильный режим измеряет показатели в течение более длительного времени для достижения максимальной точности.',
18
+ },
19
+ {
20
+ question: 'В чем разница между стабильным и быстрым режимами?',
21
+ answer: 'Быстрый режим проводит измерения в течение короткого времени (~3 секунды) для получения быстрого результата. Стабильный режим длится дольше (~10 секунд), чтобы отфильтровать системные шумы и предоставить более надежные данные.',
22
+ },
23
+ {
24
+ question: 'Почему обнаруженная частота отличается от заявленной производителем?',
25
+ answer: 'Это может произойти, если: кабель подключен неплотно, драйверы устарели или мешает масштабирование ОС. Попробуйте переподключить кабель монитора или обновить драйверы видеокарты.',
26
+ },
27
+ {
28
+ question: 'Какие частоты обновления поддерживают современные мониторы?',
29
+ answer: 'Общие стандарты: 60 Гц (базовый), 75 Гц, 120 Гц, 144 Гц (игровой), 240 Гц (киберспортивный) и 360 Гц (профессиональный киберспорт).',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: 'Загрузите инструмент',
36
+ text: 'Просто откройте эту страницу. Детектор начнет измерения немедленно.',
37
+ },
38
+ {
39
+ name: 'Дождитесь стабилизации',
40
+ text: 'Выберите стабильный или быстрый режим. Дайте измерению завершиться, не перемещая окно.',
41
+ },
42
+ {
43
+ name: 'Проверьте спидометр',
44
+ text: 'Частота обновления вашего монитора отобразится на плавном циферблате вместе со статистикой (мин/макс/сред).',
45
+ },
46
+ {
47
+ name: 'Сравните со стандартами',
48
+ text: 'Инструмент покажет, какому стандарту соответствует ваш монитор (60, 75, 120, 144, 240, 360 Гц).',
49
+ },
50
+ {
51
+ name: 'Дополнительно: тест пропуска кадров',
52
+ text: 'Следите за анимированным квадратом, пересекающим экран, чтобы визуально подтвердить плавность.',
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: 'ru',
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: 'Детектор частоты обновления монитора: тест Гц экрана онлайн',
102
+ level: 2,
103
+ },
104
+ {
105
+ type: 'paragraph',
106
+ html: 'Мгновенно и точно определяйте частоту обновления вашего монитора (60 Гц, 144 Гц, 240 Гц и т. д.). Проверьте стабильность кадров и убедитесь, что ваш дисплей работает в соответствии с заявленными характеристиками.',
107
+ },
108
+ {
109
+ type: 'title',
110
+ text: 'Почему важна частота обновления монитора',
111
+ level: 3,
112
+ },
113
+ {
114
+ type: 'paragraph',
115
+ html: 'Частота обновления определяет, насколько плавно выглядят движения на экране. Геймеры получают преимущество от мониторов 144 Гц+, в то время как обычным пользователям достаточно 60 Гц. Этот инструмент помогает подтвердить, действительно ли ваш монитор выдает заявленную частоту.',
116
+ },
117
+ {
118
+ type: 'title',
119
+ text: 'Как определить частоту обновления',
120
+ level: 3,
121
+ },
122
+ {
123
+ type: 'list',
124
+ items: [
125
+ 'Загрузите этот детектор — измерение начнется немедленно',
126
+ 'Выберите между быстрым (3 сек) или стабильным (10 сек) режимом измерения',
127
+ 'Посмотрите значение Гц вашего монитора на циферблате спидометра',
128
+ 'Сравните с отраслевыми стандартами (60, 75, 120, 144, 240, 360 Гц)',
129
+ ],
130
+ },
131
+ {
132
+ type: 'title',
133
+ text: 'Распространенные стандарты частоты обновления',
134
+ level: 3,
135
+ },
136
+ {
137
+ type: 'table',
138
+ headers: ['Стандарт', 'Вариант использования', 'Типичный пользователь'],
139
+ rows: [
140
+ ['60 Гц', 'Общие задачи', 'Офис, веб-серфинг'],
141
+ ['75 Гц', 'Легкие игры', 'Обычные геймеры'],
142
+ ['120 Гц', 'Мультимедиа', 'Консоли, стриминг'],
143
+ ['144 Гц', 'Соревновательные игры', 'FPS, динамичные игры'],
144
+ ['240 Гц+', 'Профессиональный киберспорт', 'Про-геймеры, стримеры'],
145
+ ],
146
+ },
147
+ {
148
+ type: 'title',
149
+ text: 'Устранение неполадок: дисплей показывает меньше Гц, чем ожидалось',
150
+ level: 3,
151
+ },
152
+ {
153
+ type: 'list',
154
+ items: [
155
+ 'Проверьте подключение кабеля HDMI/DisplayPort — плохой контакт снижает пропускную способность',
156
+ 'Обновите драйверы видеокарты (NVIDIA, AMD, Intel)',
157
+ 'Проверьте настройки экрана в ОС, чтобы убедиться, что высокая частота включена',
158
+ 'Попробуйте другие кабели или порты на мониторе',
159
+ 'Перезагрузите компьютер и проведите тест повторно',
160
+ ],
161
+ },
162
+ {
163
+ type: 'title',
164
+ text: 'Технология, лежащая в основе детектора',
165
+ level: 3,
166
+ },
167
+ {
168
+ type: 'paragraph',
169
+ html: 'Этот инструмент использует браузерное API requestAnimationFrame, которое синхронизируется напрямую с циклом обновления вашего монитора. Измеряя время между кадрами анимации, мы рассчитываем вашу точную частоту обновления с высокой точностью — никакого специального оборудования не требуется.',
170
+ },
171
+ ],
172
+ ui: {
173
+ badge: 'Тест дисплея',
174
+ title: 'Детектор частоты монитора',
175
+ description: 'Определите частоту обновления вашего экрана мгновенно',
176
+ modeStable: 'Стабильный (10с, точно)',
177
+ modeFast: 'Быстрый (3с, экспресс)',
178
+ measurementStatus: 'Измерение...',
179
+ currentHz: 'Текущая',
180
+ averageHz: 'Средняя',
181
+ maxHz: 'Максимум',
182
+ minHz: 'Минимум',
183
+ standardDetected: 'Обнаружен стандарт',
184
+ frameSkippingTest: 'Тест пропуска кадров',
185
+ startMeasurement: 'Начать измерение',
186
+ resetMeasurement: 'Сброс',
187
+ copyResult: 'Копировать результат',
188
+ copiedFeedback: 'Скопировано в буфер!',
189
+ optimalConfiguration: '[OK] Оптимальная конфигурация',
190
+ suboptimalConfiguration: '[ВНИМАНИЕ] Ниже оптимальной',
191
+ unstableRefreshRate: '[ВНИМАНИЕ] Нестабильная частота',
192
+ measurementNotStarted: 'Готов к измерению',
193
+ switchMonitorHint: 'Перетащите окно на другой монитор, чтобы протестировать его',
194
+ incompatibleBrowserMsg: 'Ваш браузер не поддерживает 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 = 'monitor-uppdateringsfrekvens-detektor';
7
+ const title = 'Detektor för Monitorns Uppdateringsfrekvens';
8
+ const description = 'Identifiera omedelbart din monitors uppdateringsfrekvens med precision med requestAnimationFrame. Testa bildstabilitet och jämför med branschstandarder.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Vad är uppdateringsfrekvens (Hz)?',
13
+ answer: 'Uppdateringsfrekvens är hur många gånger per sekund din monitor uppdaterar bilden. En 60Hz-monitor uppdateras 60 gånger per sekund, medan en 144Hz-monitor gör det 144 gånger. Högre frekvenser ger mjukare rörelser.',
14
+ },
15
+ {
16
+ question: 'Hur exakt är denna detektor?',
17
+ answer: 'Detta verktyg använder requestAnimationFrame, som synkroniseras med din monitors uppdateringscykel. Noggrannheten beror på systembelastningen. Det stabila läget mäter under längre perioder för högre precision.',
18
+ },
19
+ {
20
+ question: 'Vad är skillnaden mellan stabilt och snabbt läge?',
21
+ answer: 'Snabbt läge mäter under en kort tid (~3 sekunder) för snabb feedback. Stabilt läge tar längre tid (~10 sekunder) för att filtrera bort systembrus och ge mer tillförlitliga resultat.',
22
+ },
23
+ {
24
+ question: 'Varför skiljer sig min uppmätta Hz från vad min monitor säger?',
25
+ answer: 'Detta kan hända om: din kabelanslutning är lös, drivrutiner är föråldrade eller om ditt operativsystems skalning stör. Försök att dra ut och sätta i skärmkabeln igen, eller uppdatera GPU-drivrutinerna.',
26
+ },
27
+ {
28
+ question: 'Vilka uppdateringsfrekvenser stöder moderna monitorer?',
29
+ answer: 'Vanliga standarder är 60Hz (bas), 75Hz, 120Hz, 144Hz (gaming), 240Hz (tävlingsinriktad gaming) och 360Hz (professionell e-sport).',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: 'Ladda verktyget',
36
+ text: 'Öppna bara denna sida. Detektorn börjar mäta omedelbart.',
37
+ },
38
+ {
39
+ name: 'Vänta på stabilisering',
40
+ text: 'Välj stabilt eller snabbt läge. Låt mätningen slutföras utan att flytta fönstret.',
41
+ },
42
+ {
43
+ name: 'Kontrollera hastighetsmätaren',
44
+ text: 'Din monitors uppdateringsfrekvens visas som en mjuk mätare, med benchmark-statistik (min/max/medel).',
45
+ },
46
+ {
47
+ name: 'Jämför med standarder',
48
+ text: 'Verktyget visar vilken standard din monitor matchar (60, 75, 120, 144, 240, 360Hz).',
49
+ },
50
+ {
51
+ name: 'Valfritt: testa frame skipping',
52
+ text: 'Se den animerade fyrkanten korsa skärmen för att visuellt bekräfta flytet.',
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: 'sv',
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: 'Detektor för Monitorns Uppdateringsfrekvens: Testa din Hz Online',
102
+ level: 2,
103
+ },
104
+ {
105
+ type: 'paragraph',
106
+ html: 'Identifiera omedelbart din monitors uppdateringsfrekvens (60Hz, 144Hz, 240Hz, etc.) med precision. Testa bildstabilitet och verifiera att din skärm presterar enligt specifikationerna.',
107
+ },
108
+ {
109
+ type: 'title',
110
+ text: 'Varför Monitorns Uppdateringsfrekvens Spelar Roll',
111
+ level: 3,
112
+ },
113
+ {
114
+ type: 'paragraph',
115
+ html: 'Uppdateringsfrekvensen avgör hur mjuka rörelser upplevs på skärmen. Gamers drar nytta av 144Hz+ skärmar, medan vanliga användare finner 60Hz tillräckligt. Detta verktyg hjälper dig bekräfta att din monitor faktiskt levererar sin utlovade frekvens.',
116
+ },
117
+ {
118
+ type: 'title',
119
+ text: 'Så mäter du din Uppdateringsfrekvens',
120
+ level: 3,
121
+ },
122
+ {
123
+ type: 'list',
124
+ items: [
125
+ 'Ladda denna detektor – mätningen börjar omedelbart',
126
+ 'Välj mellan snabbt (3s) eller stabilt (10s) mätläge',
127
+ 'Läs av din monitors Hz på mätartavlan',
128
+ 'Jämför mot branschstandarder (60, 75, 120, 144, 240, 360Hz)',
129
+ ],
130
+ },
131
+ {
132
+ type: 'title',
133
+ text: 'Vanliga Standarder för Uppdateringsfrekvens',
134
+ level: 3,
135
+ },
136
+ {
137
+ type: 'table',
138
+ headers: ['Standard', 'Användningsområde', 'Typisk Användare'],
139
+ rows: [
140
+ ['60Hz', 'Allmän datoranvändning', 'Kontor, webbsurf'],
141
+ ['75Hz', 'Lättare gaming', 'Casual-gamers'],
142
+ ['120Hz', 'Multimedia', 'Konsol, streaming'],
143
+ ['144Hz', 'Tävlingsinriktad gaming', 'FPS, snabba spel'],
144
+ ['240Hz+', 'Professionell e-sport', 'Proffs, streamers'],
145
+ ],
146
+ },
147
+ {
148
+ type: 'title',
149
+ text: 'Felsökning: Skärmen visar lägre Hz än förväntat',
150
+ level: 3,
151
+ },
152
+ {
153
+ type: 'list',
154
+ items: [
155
+ 'Kontrollera HDMI/DisplayPort-kablar – lösa kablar begränsar bandbredden',
156
+ 'Uppdatera dina GPU-drivrutiner (NVIDIA, AMD, Intel)',
157
+ 'Kontrollera OS-inställningar för bildskärm så att hög uppdateringsfrekvens är aktiverad',
158
+ 'Prova andra kablar eller portar på din monitor',
159
+ 'Starta om datorn och testa igen',
160
+ ],
161
+ },
162
+ {
163
+ type: 'title',
164
+ text: 'Tekniken bakom denna detektor',
165
+ level: 3,
166
+ },
167
+ {
168
+ type: 'paragraph',
169
+ html: 'Verktyget använder webbläsarens requestAnimationFrame-API, som synkroniserar direkt med din monitors uppdateringscykel. Genom att mäta tiden mellan bildrutorna beräknar vi din exakta frekvens med hög precision – ingen speciell hårdvara krävs.',
170
+ },
171
+ ],
172
+ ui: {
173
+ badge: 'Skärmtest',
174
+ title: 'Detektor för Uppdateringsfrekvens',
175
+ description: 'Identifiera din skärms uppdateringsfrekvens direkt',
176
+ modeStable: 'Stabilt (10s, precist)',
177
+ modeFast: 'Snabbt (3s, kvickt)',
178
+ measurementStatus: 'Mäter...',
179
+ currentHz: 'Nuvarande',
180
+ averageHz: 'Genomsnitt',
181
+ maxHz: 'Maximum',
182
+ minHz: 'Minimum',
183
+ standardDetected: 'Standard identifierad',
184
+ frameSkippingTest: 'Test av Frame Skipping',
185
+ startMeasurement: 'Starta mätning',
186
+ resetMeasurement: 'Återställ',
187
+ copyResult: 'Kopiera resultat',
188
+ copiedFeedback: 'Kopierat till urklipp!',
189
+ optimalConfiguration: '[OK] Optimal konfiguration',
190
+ suboptimalConfiguration: '[VARNING] Under optimal nivå',
191
+ unstableRefreshRate: '[VARNING] Instabil frekvens',
192
+ measurementNotStarted: 'Redo att mäta',
193
+ switchMonitorHint: 'Dra fönstret till en annan skärm för att testa den',
194
+ incompatibleBrowserMsg: 'Din webbläsare stöder inte 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 = 'monitor-yenileme-hizi-dedektoru';
7
+ const title = 'Monitör Yenileme Hızı Dedektörü';
8
+ const description = 'requestAnimationFrame kullanarak monitörünüzün yenileme hızını anında ve hassasiyetle tespit edin. Kare kararlılığını test edin ve endüstri standartlarıyla karşılaştırın.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Yenileme hızı (Hz) nedir?',
13
+ answer: 'Yenileme hızı, monitörünüzün görüntüyü saniyede kaç kez güncellediğidir. 60Hz bir monitör saniyede 60 kez, 144Hz bir monitör ise saniyede 144 kez yenilenir. Daha yüksek hızlar daha akıcı hareket sağlar.',
14
+ },
15
+ {
16
+ question: 'Bu dedektör ne kadar hassas?',
17
+ answer: 'Bu araç, monitörünüzün yenileme döngüsüyle senkronize olan requestAnimationFrame\'i kullanır. Hassasiyet sistem yüküne bağlıdır. Kararlı mod, daha yüksek hassasiyet için daha uzun süre ölçüm yapar.',
18
+ },
19
+ {
20
+ question: 'Kararlı ve Hızlı mod arasındaki fark nedir?',
21
+ answer: 'Hızlı mod, hızlı geri bildirim için kısa bir süre (~3 saniye) ölçüm yapar. Kararlı mod, sistem gürültüsünü filtrelemek ve daha güvenilir sonuçlar sağlamak için daha uzun (~10 saniye) sürer.',
22
+ },
23
+ {
24
+ question: 'Tespit edilen Hz neden monitörümün belirttiğinden farklı?',
25
+ answer: 'Bu durum şu nedenlerle olabilir: kablo bağlantınız gevşek olabilir, sürücüler güncel olmayabilir veya işletim sistemi ölçeklendirmesi çakışıyor olabilir. Ekran kablonuzu çıkarıp takmayı veya GPU sürücülerini güncellemeyi deneyin.',
26
+ },
27
+ {
28
+ question: 'Modern monitörler hangi yenileme hızlarını destekler?',
29
+ answer: 'Yaygın standartlar 60Hz (temel), 75Hz, 120Hz, 144Hz (oyun), 240Hz (rekabetçi oyun) ve 360Hz\'dir (profesyonel e-spor).',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: 'Aracı yükleyin',
36
+ text: 'Sadece bu sayfayı açın. Dedektör hemen ölçüme başlar.',
37
+ },
38
+ {
39
+ name: 'Kararlı hale gelmesini bekleyin',
40
+ text: 'Kararlı veya Hızlı modu seçin. Ölçümün pencereyi hareket ettirmeden tamamlanmasına izin verin.',
41
+ },
42
+ {
43
+ name: 'Hız göstergesini kontrol edin',
44
+ text: 'Monitörünüzün yenileme hızı, karşılaştırmalı istatistiklerle (min/maks/ort) birlikte pürüzsüz bir kadranda görünür.',
45
+ },
46
+ {
47
+ name: 'Standartlarla karşılaştırın',
48
+ text: 'Araç, monitörünüzün hangi standartla eşleştiğini gösterir (60, 75, 120, 144, 240, 360Hz).',
49
+ },
50
+ {
51
+ name: 'Opsiyonel: kare atlama testi',
52
+ text: 'Akıcılığı görsel olarak doğrulamak için ekrandan geçen animasyonlu kareyi izleyin.',
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: 'tr',
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: 'Monitör Yenileme Hızı Dedektörü: Ekran Hz Değerinizi Online Test Edin',
102
+ level: 2,
103
+ },
104
+ {
105
+ type: 'paragraph',
106
+ html: 'Monitörünüzün yenileme hızını (60Hz, 144Hz, 240Hz, vb.) anında ve hassasiyetle tespit edin. Kare kararlılığını test edin ve ekranınızın belirtilen teknik özelliklerde çalışıp çalışmadığını doğrulayın.',
107
+ },
108
+ {
109
+ type: 'title',
110
+ text: 'Monitör Yenileme Hızı Neden Önemlidir?',
111
+ level: 3,
112
+ },
113
+ {
114
+ type: 'paragraph',
115
+ html: 'Yenileme hızı, hareketin ekranınızda ne kadar akıcı göründüğünü belirler. Oyuncular 144Hz+ monitörlerden faydalanırken, genel kullanıcılar 60Hz\'i yeterli bulur. Bu araç, monitörünüzün reklamı yapılan yenileme hızını gerçekten sunup sunmadığını doğrulamaya yardımcı olur.',
116
+ },
117
+ {
118
+ type: 'title',
119
+ text: 'Yenileme Hızınızı Nasıl Tespit Edersiniz?',
120
+ level: 3,
121
+ },
122
+ {
123
+ type: 'list',
124
+ items: [
125
+ 'Bu dedektörü yükleyin – ölçüm hemen başlar',
126
+ 'Hızlı (3s) veya Kararlı (10s) ölçüm modu arasında seçim yapın',
127
+ 'Monitörünüzün Hz değerini hız göstergesi kadranından okuyun',
128
+ 'Endüstri standartlarıyla (60, 75, 120, 144, 240, 360Hz) karşılaştırın',
129
+ ],
130
+ },
131
+ {
132
+ type: 'title',
133
+ text: 'Yaygın Yenileme Hızı Standartları',
134
+ level: 3,
135
+ },
136
+ {
137
+ type: 'table',
138
+ headers: ['Standart', 'Kullanım Durumu', 'Tipik Kullanıcı'],
139
+ rows: [
140
+ ['60Hz', 'Genel Bilgisayar Kullanımı', 'Ofis, Web Gezintisi'],
141
+ ['75Hz', 'Hafif Oyun', 'Gündelik Oyuncular'],
142
+ ['120Hz', 'Multimedya', 'Konsol, Akış'],
143
+ ['144Hz', 'Rekabetçi Oyun', 'FPS, Hızlı Oyunlar'],
144
+ ['240Hz+', 'Profesyonel e-Spor', 'Profesyonel Oyuncular, Yayıncılar'],
145
+ ],
146
+ },
147
+ {
148
+ type: 'title',
149
+ text: 'Sorun Giderme: Ekran Beklenenden Daha Düşük Hz Gösteriyor',
150
+ level: 3,
151
+ },
152
+ {
153
+ type: 'list',
154
+ items: [
155
+ 'HDMI/DisplayPort kablo bağlantılarını kontrol edin – gevşek kablolar bant genişliğini düşürür',
156
+ 'GPU sürücülerinizi güncelleyin (NVIDIA, AMD, Intel)',
157
+ 'Yüksek yenileme hızının etkinleştirildiğinden emin olmak için işletim sistemi ekran ayarlarını kontrol edin',
158
+ 'Monitörünüzdeki farklı kabloları veya bağlantı noktalarını deneyin',
159
+ 'Bilgisayarınızı yeniden başlatın ve tekrar test edin',
160
+ ],
161
+ },
162
+ {
163
+ type: 'title',
164
+ text: 'Bu Dedektörün Arkasındaki Teknoloji',
165
+ level: 3,
166
+ },
167
+ {
168
+ type: 'paragraph',
169
+ html: 'Bu araç, doğrudan monitörünüzün yenileme döngüsüyle senkronize olan tarayıcının requestAnimationFrame API\'sini kullanır. Animasyon kareleri arasındaki süreyi ölçerek, özel bir donanıma gerek duymadan tam yenileme hızınızı yüksek hassasiyetle hesaplarız.',
170
+ },
171
+ ],
172
+ ui: {
173
+ badge: 'Ekran Testi',
174
+ title: 'Yenileme Hızı Dedektörü',
175
+ description: 'Ekranınızın yenileme hızını anında tespit edin',
176
+ modeStable: 'Kararlı (10s, hassas)',
177
+ modeFast: 'Hızlı (3s, seri)',
178
+ measurementStatus: 'Ölçülüyor...',
179
+ currentHz: 'Mevcut',
180
+ averageHz: 'Ortalama',
181
+ maxHz: 'Maksimum',
182
+ minHz: 'Minimum',
183
+ standardDetected: 'Tespit Edilen Standart',
184
+ frameSkippingTest: 'Kare Atlama Testi',
185
+ startMeasurement: 'Ölçümü Başlat',
186
+ resetMeasurement: 'Sıfırla',
187
+ copyResult: 'Sonucu Kopyala',
188
+ copiedFeedback: 'Panoya kopyalandı!',
189
+ optimalConfiguration: '[OK] Optimal Yapılandırma',
190
+ suboptimalConfiguration: '[UYARI] Optimal Altı',
191
+ unstableRefreshRate: '[UYARI] Kararsız Yenileme Hızı',
192
+ measurementNotStarted: 'Ölçüme hazır',
193
+ switchMonitorHint: 'Test etmek için pencereyi başka bir monitöre sürükleyin',
194
+ incompatibleBrowserMsg: 'Tarayıcınız requestAnimationFrame\'i desteklemiyor',
195
+ },
196
+ };