@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 = 'monitor-refresh-rate-detector';
7
+ const title = 'モニターリフレッシュレート測定器';
8
+ const description = 'requestAnimationFrameを使用して、モニターのリフレッシュレートを瞬時に高精度で検出します。フレームの安定性をテストし、業界標準と比較できます。';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'リフレッシュレート(Hz)とは何ですか?',
13
+ answer: 'リフレッシュレートとは、モニターが1秒間に画像を更新する回数のことです。60Hzのモニターは1秒間に60回、144Hzは144回更新されます。数値が高いほど、動きがより滑らかになります。',
14
+ },
15
+ {
16
+ question: 'この測定器の精度はどのくらいですか?',
17
+ answer: 'このツールは、モニターの更新サイクルと同期するrequestAnimationFrameを使用しています。精度はシステム負荷に依存します。安定モードでは、より長い時間測定することで精度を高めています。',
18
+ },
19
+ {
20
+ question: '安定モードと高速モードの違いは何ですか?',
21
+ answer: '高速モードは短時間(約3秒)測定し、素早く結果を表示します。安定モードはより長い時間(約10秒)かけてシステムノイズを除去し、より信頼性の高い結果を提供します。',
22
+ },
23
+ {
24
+ question: '検出されたHzがモニターの仕様と異なるのはなぜですか?',
25
+ answer: 'ケーブルの接続不良、ドライバの古さ、OSのスケーリング設定の影響などが考えられます。ディスプレイケーブルの抜き差しや、GPUドライバの更新を試してください。',
26
+ },
27
+ {
28
+ question: '最新のモニターはどのようなリフレッシュレートをサポートしていますか?',
29
+ answer: '一般的な標準は、60Hz(基本)、75Hz、120Hz、144Hz(ゲーム用)、240Hz(競技ゲーム用)、360Hz(プロeスポーツ用)などです。',
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, 360Hz)に一致しているかを表示します。',
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: 'ja',
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: 'モニターリフレッシュレート測定器:ディスプレイHzをオンラインでテスト',
102
+ level: 2,
103
+ },
104
+ {
105
+ type: 'paragraph',
106
+ html: 'モニターのリフレッシュレート(60Hz, 144Hz, 240Hzなど)を瞬時に高精度で検出します。フレームの安定性をテストし、ディスプレイが定格仕様で動作しているかを確認できます。',
107
+ },
108
+ {
109
+ type: 'title',
110
+ text: 'モニターのリフレッシュレートが重要な理由',
111
+ level: 3,
112
+ },
113
+ {
114
+ type: 'paragraph',
115
+ html: 'リフレッシュレートは、画面上の動きがどれだけ滑らかに見えるかを決定します。ゲーマーは144Hz以上のモニターで恩恵を受けますが、一般的なユーザーは60Hzで十分です。このツールは、モニターが公称通りのリフレッシュレートを出しているか確認するのに役立ちます。',
116
+ },
117
+ {
118
+ type: 'title',
119
+ text: 'リフレッシュレートを検出する方法',
120
+ level: 3,
121
+ },
122
+ {
123
+ type: 'list',
124
+ items: [
125
+ 'この測定器を読み込むと、すぐに測定が開始されます',
126
+ '高速(3秒)または安定(10秒)の測定モードを選択します',
127
+ 'メーターのダイヤルからモニターのHzを読み取ります',
128
+ '業界標準(60, 75, 120, 144, 240, 360Hz)と比較します',
129
+ ],
130
+ },
131
+ {
132
+ type: 'title',
133
+ text: '一般的なリフレッシュレート標準',
134
+ level: 3,
135
+ },
136
+ {
137
+ type: 'table',
138
+ headers: ['標準', '主な用途', '一般的なユーザー'],
139
+ rows: [
140
+ ['60Hz', '一般的なコンピュータ利用', '事務、Web閲覧'],
141
+ ['75Hz', 'ライトなゲーム', 'カジュアルゲーマー'],
142
+ ['120Hz', 'マルチメディア', 'コンソール機、配信視聴'],
143
+ ['144Hz', '競技ゲーム', 'FPS、高速なアクションゲーム'],
144
+ ['240Hz+', 'プロeスポーツ', 'プロゲーマー、配信者'],
145
+ ],
146
+ },
147
+ {
148
+ type: 'title',
149
+ text: 'トラブルシューティング:Hzが想定より低く表示される場合',
150
+ level: 3,
151
+ },
152
+ {
153
+ type: 'list',
154
+ items: [
155
+ 'HDMI/DisplayPortケーブルの接続を確認してください。接続不良は帯域幅を低下させます。',
156
+ 'GPUドライバ(NVIDIA, AMD, Intel)を更新してください。',
157
+ 'OSのディスプレイ設定を確認し、高リフレッシュレートが有効になっているか確認してください。',
158
+ '別のケーブルやモニターのポートを試してください。',
159
+ 'コンピュータを再起動して再テストしてください。',
160
+ ],
161
+ },
162
+ {
163
+ type: 'title',
164
+ text: 'この測定器の仕組み',
165
+ level: 3,
166
+ },
167
+ {
168
+ type: 'paragraph',
169
+ html: 'このツールはブラウザのrequestAnimationFrame APIを使用しており、モニターの更新サイクルと直接同期します。アニメーションフレーム間の時間を測定することで、特別なハードウェアを必要とせずに正確なリフレッシュレートを高精度で算出します。',
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-refresh-rate-detector';
7
+ const title = '모니터 주사율 측정기';
8
+ const description = 'requestAnimationFrame을 사용하여 모니터의 주사율을 즉시 정확하게 감지합니다. 프레임 안정성을 테스트하고 업계 표준과 비교해 보세요.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: '주사율(Hz)이란 무엇인가요?',
13
+ answer: '주사율은 모니터가 초당 화면을 업데이트하는 횟수를 의미합니다. 60Hz 모니터는 초당 60회, 144Hz 모니터는 144회 업데이트됩니다. 주사율이 높을수록 움직임이 더 부드러워집니다.',
14
+ },
15
+ {
16
+ question: '이 측정기는 얼마나 정확한가요?',
17
+ answer: '이 도구는 모니터의 재생 주기와 동기화되는 requestAnimationFrame을 사용합니다. 정확도는 시스템 부하에 따라 달라질 수 있습니다. 안정 모드는 더 긴 시간 동안 측정하여 정밀도를 높입니다.',
18
+ },
19
+ {
20
+ question: '안정 모드와 빠른 모드의 차이점은 무엇인가요?',
21
+ answer: '빠른 모드는 짧은 시간(~3초) 동안 측정하여 빠른 결과를 보여줍니다. 안정 모드는 더 긴 시간(~10초) 동안 측정하여 시스템 노이즈를 걸러내고 더 신뢰할 수 있는 결과를 제공합니다.',
22
+ },
23
+ {
24
+ question: '감지된 주사율이 모니터 사양과 다른 이유는 무엇인가요?',
25
+ answer: '케이블 연결 불량, 오래된 드라이버, 또는 OS의 배율 설정 간섭 등이 원인일 수 있습니다. 디스플레이 케이블을 다시 연결하거나 GPU 드라이버를 업데이트해 보세요.',
26
+ },
27
+ {
28
+ question: '최신 모니터는 어떤 주사율을 지원하나요?',
29
+ answer: '일반적인 표준은 60Hz(기본), 75Hz, 120Hz, 144Hz(게이밍), 240Hz(고성능 게이밍), 360Hz(전문 e스포츠) 등이 있습니다.',
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, 360Hz)에 해당하는지 보여줍니다.',
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: 'ko',
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: '모니터 주사율 측정기: 온라인 디스플레이 Hz 테스트',
102
+ level: 2,
103
+ },
104
+ {
105
+ type: 'paragraph',
106
+ html: '모니터의 주사율(60Hz, 144Hz, 240Hz 등)을 즉시 정밀하게 감지합니다. 프레임 안정성을 테스트하고 디스플레이가 정격 사양대로 작동하는지 확인하세요.',
107
+ },
108
+ {
109
+ type: 'title',
110
+ text: '모니터 주사율이 중요한 이유',
111
+ level: 3,
112
+ },
113
+ {
114
+ type: 'paragraph',
115
+ html: '주사율은 화면의 움직임이 얼마나 부드럽게 보이는지를 결정합니다. 게이머는 144Hz 이상의 모니터에서 큰 혜택을 보며, 일반 사용자는 60Hz로도 충분합니다. 이 도구는 모니터가 실제로 광고된 주사율을 제공하는지 확인하는 데 도움이 됩니다.',
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, 360Hz)과 비교해 보세요',
129
+ ],
130
+ },
131
+ {
132
+ type: 'title',
133
+ text: '일반적인 주사율 표준',
134
+ level: 3,
135
+ },
136
+ {
137
+ type: 'table',
138
+ headers: ['표준', '용도', '일반적인 사용자'],
139
+ rows: [
140
+ ['60Hz', '일반 컴퓨터 사용', '사무용, 웹 서핑'],
141
+ ['75Hz', '가벼운 게이밍', '캐주얼 게이머'],
142
+ ['120Hz', '멀티미디어', '콘솔, 스트리밍'],
143
+ ['144Hz', '전문 게이밍', 'FPS, 빠른 화면 전환 게임'],
144
+ ['240Hz+', '프로 e스포츠', '프로 게이머, 스트리머'],
145
+ ],
146
+ },
147
+ {
148
+ type: 'title',
149
+ text: '문제 해결: 주사율이 예상보다 낮게 표시될 때',
150
+ level: 3,
151
+ },
152
+ {
153
+ type: 'list',
154
+ items: [
155
+ 'HDMI/DisplayPort 케이블 연결을 확인하세요. 연결이 헐거우면 대역폭이 줄어듭니다.',
156
+ 'GPU 드라이버(NVIDIA, AMD, Intel)를 업데이트하세요.',
157
+ 'OS 디스플레이 설정에서 높은 주사율이 활성화되어 있는지 확인하세요.',
158
+ '다른 케이블이나 모니터 포트를 시도해 보세요.',
159
+ '컴퓨터를 재부팅한 후 다시 테스트해 보세요.',
160
+ ],
161
+ },
162
+ {
163
+ type: 'title',
164
+ text: '이 측정기에 적용된 기술',
165
+ level: 3,
166
+ },
167
+ {
168
+ type: 'paragraph',
169
+ html: '이 도구는 모니터의 재생 주기와 직접 동기화되는 브라우저의 requestAnimationFrame API를 사용합니다. 애니메이션 프레임 간의 시간을 측정하여 별도의 하드웨어 없이도 정확한 주사율을 높은 정밀도로 계산합니다.',
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-verversingssnelheid-detector';
7
+ const title = 'Monitor Verversingssnelheid Detector';
8
+ const description = 'Detecteer direct de verversingssnelheid van uw monitor met precisie met behulp van requestAnimationFrame. Test de framestabiliteit en vergelijk deze met industriestandaarden.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Wat is verversingssnelheid (Hz)?',
13
+ answer: 'Verversingssnelheid is hoe vaak per seconde uw monitor het beeld bijwerkt. Een 60Hz-monitor ververst 60 keer per seconde, terwijl een 144Hz-monitor 144 keer ververst. Hogere snelheden zorgen voor vloeiendere bewegingen.',
14
+ },
15
+ {
16
+ question: 'Hoe nauwkeurig is deze detector?',
17
+ answer: 'Deze tool maakt gebruik van requestAnimationFrame, dat synchroniseert met de verversingscyclus van uw monitor. De nauwkeurigheid hangt af van de systeembelasting. De stabiele modus meet gedurende langere perioden voor een grotere precisie.',
18
+ },
19
+ {
20
+ question: 'Wat is het verschil tussen de Stabiele en Snelle modus?',
21
+ answer: 'De Snelle modus meet gedurende een korte tijd (~3 seconden) voor snelle feedback. De Stabiele modus duurt langer (~10 seconden) om systeemruis weg te filteren en betrouwbaardere resultaten te geven.',
22
+ },
23
+ {
24
+ question: 'Waarom wijkt mijn gedetecteerde Hz af van wat mijn monitor zegt?',
25
+ answer: 'Dit kan gebeuren als: uw kabelverbinding los zit, stuurprogramma\'s verouderd zijn of uw OS-schaling interfereert. Probeer uw beeldschermkabel los te koppelen en weer aan te sluiten, of de GPU-stuurprogramma\'s bij te werken.',
26
+ },
27
+ {
28
+ question: 'Welke verversingssnelheden ondersteunen moderne monitoren?',
29
+ answer: 'Veelvoorkomende standaarden zijn 60Hz (basis), 75Hz, 120Hz, 144Hz (gaming), 240Hz (competitieve gaming) en 360Hz (professionele e-sports).',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: 'Laad de tool',
36
+ text: 'Open simpelweg deze pagina. De detector begint onmiddellijk met meten.',
37
+ },
38
+ {
39
+ name: 'Wacht op stabilisatie',
40
+ text: 'Kies de Stabiele of Snelle modus. Laat de meting voltooien zonder het venster te verplaatsen.',
41
+ },
42
+ {
43
+ name: 'Controleer de snelheidsmeter',
44
+ text: 'De verversingssnelheid van uw monitor verschijnt als een soepele draaiknop, met benchmarkstatistieken (min/max/gem).',
45
+ },
46
+ {
47
+ name: 'Vergelijk met standaarden',
48
+ text: 'De tool laat zien met welke standaard uw monitor overeenkomt (60, 75, 120, 144, 240, 360Hz).',
49
+ },
50
+ {
51
+ name: 'Optioneel: test frame skipping',
52
+ text: 'Bekijk het geanimeerde vierkant dat over het scherm beweegt om visueel de vloeiendheid te bevestigen.',
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: 'nl',
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 Verversingssnelheid Detector: Test uw Scherm Hz Online',
102
+ level: 2,
103
+ },
104
+ {
105
+ type: 'paragraph',
106
+ html: 'Detecteer direct de verversingssnelheid van uw monitor (60Hz, 144Hz, 240Hz, enz.) met precisie. Test de framestabiliteit en verifieer of uw scherm presteert volgens de opgegeven specificaties.',
107
+ },
108
+ {
109
+ type: 'title',
110
+ text: 'Waarom de Verversingssnelheid van de Monitor Belangrijk is',
111
+ level: 3,
112
+ },
113
+ {
114
+ type: 'paragraph',
115
+ html: 'De verversingssnelheid bepaalt hoe vloeiend beweging op uw scherm verschijnt. Gamers hebben baat bij 144Hz+ monitoren, terwijl algemene gebruikers 60Hz voldoende vinden. Deze tool helpt bevestigen dat uw monitor daadwerkelijk de geadverteerde verversingssnelheid levert.',
116
+ },
117
+ {
118
+ type: 'title',
119
+ text: 'Hoe u uw Verversingssnelheid Kunt Detecteren',
120
+ level: 3,
121
+ },
122
+ {
123
+ type: 'list',
124
+ items: [
125
+ 'Laad deze detector -de meting begint onmiddellijk',
126
+ 'Kies tussen Snelle (3s) of Stabiele (10s) meetmodus',
127
+ 'Lees de Hz van uw monitor af van de snelheidsmeter',
128
+ 'Vergelijk met industriestandaarden (60, 75, 120, 144, 240, 360Hz)',
129
+ ],
130
+ },
131
+ {
132
+ type: 'title',
133
+ text: 'Veelvoorkomende Verversingssnelheid Standaarden',
134
+ level: 3,
135
+ },
136
+ {
137
+ type: 'table',
138
+ headers: ['Standaard', 'Use Case', 'Typische Gebruiker'],
139
+ rows: [
140
+ ['60Hz', 'Algemeen Computergebruik', 'Kantoor, Webbrowser'],
141
+ ['75Hz', 'Licht Gamen', 'Casual Gamers'],
142
+ ['120Hz', 'Multimedia', 'Console, Streaming'],
143
+ ['144Hz', 'Competitief Gamen', 'FPS, Snelle Games'],
144
+ ['240Hz+', 'Professionele E-sports', 'Pro Gamers, Streamers'],
145
+ ],
146
+ },
147
+ {
148
+ type: 'title',
149
+ text: 'Problemen Oplossen: Scherm Toont Lagere Hz dan Verwacht',
150
+ level: 3,
151
+ },
152
+ {
153
+ type: 'list',
154
+ items: [
155
+ 'Controleer HDMI/DisplayPort kabelverbindingen -losse kabels verminderen de bandbreedte',
156
+ 'Update uw GPU-stuurprogramma\'s (NVIDIA, AMD, Intel)',
157
+ 'Controleer de OS-beeldscherminstellingen om er zeker van te zijn dat een hoge verversingssnelheid is ingeschakeld',
158
+ 'Probeer andere kabels of poorten op uw monitor',
159
+ 'Start uw computer opnieuw op en test opnieuw',
160
+ ],
161
+ },
162
+ {
163
+ type: 'title',
164
+ text: 'De Techniek Achter Deze Detector',
165
+ level: 3,
166
+ },
167
+ {
168
+ type: 'paragraph',
169
+ html: 'Deze tool maakt gebruik van de requestAnimationFrame API van de browser, die direct synchroniseert met de verversingscyclus van uw monitor. Door de tijd tussen animatieframes te meten, berekenen we uw exacte verversingssnelheid met hoge precisie -geen speciale hardware nodig.',
170
+ },
171
+ ],
172
+ ui: {
173
+ badge: 'Schermtest',
174
+ title: 'Monitor Verversingssnelheid Detector',
175
+ description: 'Detecteer de verversingssnelheid van uw scherm direct',
176
+ modeStable: 'Stabiel (10s, precies)',
177
+ modeFast: 'Snel (3s, vlot)',
178
+ measurementStatus: 'Bezig met meten...',
179
+ currentHz: 'Actueel',
180
+ averageHz: 'Gemiddelde',
181
+ maxHz: 'Maximum',
182
+ minHz: 'Minimum',
183
+ standardDetected: 'Standaard Gedetecteerd',
184
+ frameSkippingTest: 'Frame Skipping Test',
185
+ startMeasurement: 'Start Meting',
186
+ resetMeasurement: 'Reset',
187
+ copyResult: 'Resultaat Kopiëren',
188
+ copiedFeedback: 'Gekopieerd naar klembord!',
189
+ optimalConfiguration: '[OK] Optimale Configuratie',
190
+ suboptimalConfiguration: '[WAARSCHUWING] Onder Optimaal',
191
+ unstableRefreshRate: '[WAARSCHUWING] Onstabiele Verversingssnelheid',
192
+ measurementNotStarted: 'Klaar om te meten',
193
+ switchMonitorHint: 'Sleep het venster naar een andere monitor om deze te testen',
194
+ incompatibleBrowserMsg: 'Uw browser ondersteunt requestAnimationFrame niet',
195
+ },
196
+ };