@jjlmoya/utils-hardware 1.2.0 → 1.5.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.
- package/package.json +2 -1
- package/src/tests/faq_count.test.ts +1 -1
- package/src/tests/i18n_coverage.test.ts +36 -0
- package/src/tests/locale_completeness.test.ts +1 -1
- package/src/tests/slug_uniqueness.test.ts +81 -0
- package/src/tests/title_quality.test.ts +1 -1
- package/src/tool/batteryHealthEstimator/i18n/de.ts +158 -0
- package/src/tool/batteryHealthEstimator/i18n/id.ts +158 -0
- package/src/tool/batteryHealthEstimator/i18n/it.ts +158 -0
- package/src/tool/batteryHealthEstimator/i18n/ja.ts +158 -0
- package/src/tool/batteryHealthEstimator/i18n/ko.ts +158 -0
- package/src/tool/batteryHealthEstimator/i18n/nl.ts +158 -0
- package/src/tool/batteryHealthEstimator/i18n/pl.ts +158 -0
- package/src/tool/batteryHealthEstimator/i18n/pt.ts +158 -0
- package/src/tool/batteryHealthEstimator/i18n/ru.ts +158 -0
- package/src/tool/batteryHealthEstimator/i18n/sv.ts +158 -0
- package/src/tool/batteryHealthEstimator/i18n/tr.ts +158 -0
- package/src/tool/batteryHealthEstimator/i18n/zh.ts +158 -0
- package/src/tool/batteryHealthEstimator/index.ts +15 -7
- package/src/tool/deadPixelTest/i18n/de.ts +218 -0
- package/src/tool/deadPixelTest/i18n/id.ts +218 -0
- package/src/tool/deadPixelTest/i18n/it.ts +218 -0
- package/src/tool/deadPixelTest/i18n/ja.ts +218 -0
- package/src/tool/deadPixelTest/i18n/ko.ts +218 -0
- package/src/tool/deadPixelTest/i18n/nl.ts +218 -0
- package/src/tool/deadPixelTest/i18n/pl.ts +218 -0
- package/src/tool/deadPixelTest/i18n/pt.ts +218 -0
- package/src/tool/deadPixelTest/i18n/ru.ts +218 -0
- package/src/tool/deadPixelTest/i18n/sv.ts +218 -0
- package/src/tool/deadPixelTest/i18n/tr.ts +218 -0
- package/src/tool/deadPixelTest/i18n/zh.ts +217 -0
- package/src/tool/deadPixelTest/index.ts +15 -7
- package/src/tool/gamepadTest/i18n/de.ts +186 -0
- package/src/tool/gamepadTest/i18n/id.ts +186 -0
- package/src/tool/gamepadTest/i18n/it.ts +186 -0
- package/src/tool/gamepadTest/i18n/ja.ts +186 -0
- package/src/tool/gamepadTest/i18n/ko.ts +186 -0
- package/src/tool/gamepadTest/i18n/nl.ts +186 -0
- package/src/tool/gamepadTest/i18n/pl.ts +186 -0
- package/src/tool/gamepadTest/i18n/pt.ts +186 -0
- package/src/tool/gamepadTest/i18n/ru.ts +186 -0
- package/src/tool/gamepadTest/i18n/sv.ts +186 -0
- package/src/tool/gamepadTest/i18n/tr.ts +186 -0
- package/src/tool/gamepadTest/i18n/zh.ts +186 -0
- package/src/tool/gamepadTest/index.ts +15 -7
- package/src/tool/gamepadVibrationTester/i18n/de.ts +155 -0
- package/src/tool/gamepadVibrationTester/i18n/id.ts +155 -0
- package/src/tool/gamepadVibrationTester/i18n/it.ts +155 -0
- package/src/tool/gamepadVibrationTester/i18n/ja.ts +155 -0
- package/src/tool/gamepadVibrationTester/i18n/ko.ts +155 -0
- package/src/tool/gamepadVibrationTester/i18n/nl.ts +155 -0
- package/src/tool/gamepadVibrationTester/i18n/pl.ts +155 -0
- package/src/tool/gamepadVibrationTester/i18n/pt.ts +155 -0
- package/src/tool/gamepadVibrationTester/i18n/ru.ts +155 -0
- package/src/tool/gamepadVibrationTester/i18n/sv.ts +155 -0
- package/src/tool/gamepadVibrationTester/i18n/tr.ts +155 -0
- package/src/tool/gamepadVibrationTester/i18n/zh.ts +155 -0
- package/src/tool/gamepadVibrationTester/index.ts +15 -7
- package/src/tool/keyboardTest/i18n/de.ts +146 -0
- package/src/tool/keyboardTest/i18n/id.ts +146 -0
- package/src/tool/keyboardTest/i18n/it.ts +146 -0
- package/src/tool/keyboardTest/i18n/ja.ts +146 -0
- package/src/tool/keyboardTest/i18n/ko.ts +146 -0
- package/src/tool/keyboardTest/i18n/nl.ts +146 -0
- package/src/tool/keyboardTest/i18n/pl.ts +146 -0
- package/src/tool/keyboardTest/i18n/pt.ts +146 -0
- package/src/tool/keyboardTest/i18n/ru.ts +146 -0
- package/src/tool/keyboardTest/i18n/sv.ts +146 -0
- package/src/tool/keyboardTest/i18n/tr.ts +146 -0
- package/src/tool/keyboardTest/i18n/zh.ts +146 -0
- package/src/tool/keyboardTest/index.ts +15 -7
- package/src/tool/mousePollingTest/component.astro +1 -1
- package/src/tool/mousePollingTest/i18n/de.ts +135 -0
- package/src/tool/mousePollingTest/i18n/id.ts +135 -0
- package/src/tool/mousePollingTest/i18n/it.ts +135 -0
- package/src/tool/mousePollingTest/i18n/ja.ts +135 -0
- package/src/tool/mousePollingTest/i18n/ko.ts +135 -0
- package/src/tool/mousePollingTest/i18n/nl.ts +135 -0
- package/src/tool/mousePollingTest/i18n/pl.ts +135 -0
- package/src/tool/mousePollingTest/i18n/pt.ts +135 -0
- package/src/tool/mousePollingTest/i18n/ru.ts +135 -0
- package/src/tool/mousePollingTest/i18n/sv.ts +135 -0
- package/src/tool/mousePollingTest/i18n/tr.ts +135 -0
- package/src/tool/mousePollingTest/i18n/zh.ts +135 -0
- package/src/tool/mousePollingTest/index.ts +15 -7
- package/src/tool/mousePollingTest/logic/RatonManager.ts +90 -51
- package/src/tool/mousePollingTest/logic/StatisticalFilter.ts +17 -25
- package/src/tool/toneGenerator/i18n/de.ts +146 -0
- package/src/tool/toneGenerator/i18n/id.ts +146 -0
- package/src/tool/toneGenerator/i18n/it.ts +146 -0
- package/src/tool/toneGenerator/i18n/ja.ts +146 -0
- package/src/tool/toneGenerator/i18n/ko.ts +146 -0
- package/src/tool/toneGenerator/i18n/nl.ts +146 -0
- package/src/tool/toneGenerator/i18n/pl.ts +146 -0
- package/src/tool/toneGenerator/i18n/pt.ts +146 -0
- package/src/tool/toneGenerator/i18n/ru.ts +146 -0
- package/src/tool/toneGenerator/i18n/sv.ts +146 -0
- package/src/tool/toneGenerator/i18n/tr.ts +146 -0
- package/src/tool/toneGenerator/i18n/zh.ts +146 -0
- package/src/tool/toneGenerator/index.ts +15 -7
- package/src/types.ts +1 -1
- package/src/tool/mousePollingTest/worker/mouseWorker.ts +0 -50
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { TestTecladoUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'test-tastiera-online';
|
|
6
|
+
const title = 'Test Tastiera Online e Rilevatore Ghosting';
|
|
7
|
+
const description = 'Controlla se la tua tastiera soffre di Ghosting o Key Jamming. Visualizzatore tasti in tempo reale e contatore N-Key Rollover.';
|
|
8
|
+
|
|
9
|
+
const faqData = [
|
|
10
|
+
{
|
|
11
|
+
question: "Cos'è il Ghosting sulla tastiera?",
|
|
12
|
+
answer: "È un difetto che si verifica quando premi più tasti contemporaneamente e il computer non ne registra alcuni. È dovuto a limitazioni nella matrice elettrica interna della tastiera che non può elaborare determinate combinazioni.",
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Cosa significa N-Key Rollover (NKRO)?',
|
|
16
|
+
answer: 'NKRO significa che la tastiera può registrare tanti tasti quanti ne puoi premere simultaneamente senza errori. È una funzione premium, comune nelle tastiere meccaniche e da gaming di fascia alta.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'Perché la mia tastiera fallisce quando premo 3 tasti insieme?',
|
|
20
|
+
answer: 'La maggior parte delle tastiere da ufficio economiche ha un rollover di 2 o 3 tasti. Questo è sufficiente per scrivere ma insufficiente per il gaming intensivo o scorciatoie complesse.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: 'Come posso riparare un tasto che non risponde?',
|
|
24
|
+
answer: "Se il test non rileva la pressione del tasto, potrebbe trattarsi di sporco sotto l'interruttore, un guasto al contatto elettrico o un cavo danneggiato. Prova a pulire la tastiera con aria compressa prima di arrenderti.",
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
const howToData = [
|
|
29
|
+
{
|
|
30
|
+
name: 'Metti a fuoco il visualizzatore',
|
|
31
|
+
text: 'Clicca in un punto qualsiasi della pagina per assicurarti che il browser abbia il focus e possa catturare la pressione dei tasti hardware.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'Esegui il test di risposta',
|
|
35
|
+
text: 'Premi ogni tasto della tastiera uno ad uno. Il tasto corrispondente sullo schermo si illuminerà di verde se funziona correttamente.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'Controlla il ghosting',
|
|
39
|
+
text: 'Premi i tasti comuni da gaming (W, A, S, D, Spazio, Shift) tutti insieme per vedere se si bloccano o si illuminano tutti.',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: 'Verifica il rollover massimo',
|
|
43
|
+
text: 'Prova a premere quanti più tasti puoi con entrambe le mani e guarda il contatore della pressione simultanea massima dei tasti.',
|
|
44
|
+
},
|
|
45
|
+
];
|
|
46
|
+
|
|
47
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
48
|
+
'@context': 'https://schema.org',
|
|
49
|
+
'@type': 'FAQPage',
|
|
50
|
+
mainEntity: faqData.map((item) => ({
|
|
51
|
+
'@type': 'Question',
|
|
52
|
+
name: item.question,
|
|
53
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
54
|
+
})),
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
const howToSchema: WithContext<HowTo> = {
|
|
58
|
+
'@context': 'https://schema.org',
|
|
59
|
+
'@type': 'HowTo',
|
|
60
|
+
name: title,
|
|
61
|
+
description,
|
|
62
|
+
step: howToData.map((step, i) => ({
|
|
63
|
+
'@type': 'HowToStep',
|
|
64
|
+
position: i + 1,
|
|
65
|
+
name: step.name,
|
|
66
|
+
text: step.text,
|
|
67
|
+
})),
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
71
|
+
'@context': 'https://schema.org',
|
|
72
|
+
'@type': 'SoftwareApplication',
|
|
73
|
+
name: title,
|
|
74
|
+
description,
|
|
75
|
+
applicationCategory: 'UtilityApplication',
|
|
76
|
+
operatingSystem: 'All',
|
|
77
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
78
|
+
inLanguage: 'it',
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
export const content: ToolLocaleContent<TestTecladoUI> = {
|
|
82
|
+
slug,
|
|
83
|
+
title,
|
|
84
|
+
description,
|
|
85
|
+
faqTitle: 'Domande Frequenti',
|
|
86
|
+
faq: faqData,
|
|
87
|
+
bibliographyTitle: 'Riferimenti Tecnici',
|
|
88
|
+
bibliography: [
|
|
89
|
+
{
|
|
90
|
+
name: 'USB Keyboard/Keypad Page - HID Usage Tables',
|
|
91
|
+
url: 'https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf',
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
name: 'Mechanical vs Membrane Keyboards - Technical Deep Dive',
|
|
95
|
+
url: 'https://deskthority.net/wiki/Rollover',
|
|
96
|
+
},
|
|
97
|
+
],
|
|
98
|
+
howTo: howToData,
|
|
99
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
100
|
+
seo: [
|
|
101
|
+
{
|
|
102
|
+
type: 'title',
|
|
103
|
+
text: 'Test Tastiera Online: Rileva Ghosting e N-Key Rollover',
|
|
104
|
+
level: 2,
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'paragraph',
|
|
108
|
+
html: 'Uno strumento interattivo per la diagnostica della tastiera. Controlla se la tua periferica soffre di ghosting, jamming o limitazioni del rollover. Chiamata visiva con supporto per tutti i tipi di tastiera.',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'title',
|
|
112
|
+
text: "Cos'è il Ghosting?",
|
|
113
|
+
level: 3,
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
type: 'paragraph',
|
|
117
|
+
html: 'Il ghosting si verifica quando premi una specifica combinazione di tasti e la tastiera registra una pressione fantasma che non hai fatto. Ciò è dovuto a limitazioni nella matrice del circuito interno.',
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
type: 'title',
|
|
121
|
+
text: 'N-Key Rollover e Rollover Massimo',
|
|
122
|
+
level: 3,
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
type: 'paragraph',
|
|
126
|
+
html: '<strong>NKRO (N-Key Rollover):</strong> Consente di registrare tutti i tasti premuti simultaneamente. <strong>6KRO:</strong> Vecchio limite standard USB. <strong>2-3KRO:</strong> Comune sulle tastiere economiche, sufficiente per scrivere.',
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
type: 'title',
|
|
130
|
+
text: 'Tastiere Meccaniche vs Membrana',
|
|
131
|
+
level: 3,
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
type: 'paragraph',
|
|
135
|
+
html: 'Le tastiere meccaniche hanno interruttori individuali con diodi isolati, eliminando il ghosting. Le tastiere a membrana condividono tracce conduttrici, causando errori nelle combinazioni simultanee.',
|
|
136
|
+
},
|
|
137
|
+
],
|
|
138
|
+
ui: {
|
|
139
|
+
badge: 'Test Input',
|
|
140
|
+
title: 'Test Tastiera e Rilevatore Ghosting',
|
|
141
|
+
description: 'Verifica l\'N-Key Rollover e rileva i tasti difettosi.',
|
|
142
|
+
simultaneousLabel: 'Simultanei',
|
|
143
|
+
eventLogLabel: 'Registro Eventi',
|
|
144
|
+
resetBtn: 'Reset',
|
|
145
|
+
},
|
|
146
|
+
};
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { TestTecladoUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'keyboard-test';
|
|
6
|
+
const title = 'オンライン・キーボードテスト&ゴースト検出器';
|
|
7
|
+
const description = 'キーボードのゴースト現象やキーの詰まりをチェック。リアルタイムのキー可視化とNキーロールオーバー・カウンター。';
|
|
8
|
+
|
|
9
|
+
const faqData = [
|
|
10
|
+
{
|
|
11
|
+
question: 'キーボードのゴースト現象(Ghosting)とは何ですか?',
|
|
12
|
+
answer: '複数のキーを同時に押したときに、一部のキーが正しく反応しない現象です。キーボード内部の電気回路(マトリックス)の制限により、特定の組み合わせを処理できないために発生します。',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Nキーロールオーバー(NKRO)とは何ですか?',
|
|
16
|
+
answer: '同時に押したすべてのキーを、制限なく正確に認識できる機能のことです。高級なメカニカルキーボードやゲーミングキーボードに搭載されているプレミアムな機能です。',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: '3つのキーを同時に押すと反応が悪くなるのはなぜですか?',
|
|
20
|
+
answer: '多くの安価な事務用キーボードは、2個または3個までのロールオーバーに制限されています。通常のタイピングには十分ですが、激しいゲームや複雑なショートカットには不向きです。',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: '反応しないキーを修理する方法はありますか?',
|
|
24
|
+
answer: 'テストでキー入力が検出されない場合、スイッチ下の汚れ、接触不良、またはケーブルの断線が考えられます。諦める前に、エアダスターなどで掃除を試してみてください。',
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
const howToData = [
|
|
29
|
+
{
|
|
30
|
+
name: '可視化画面をフォーカスする',
|
|
31
|
+
text: 'ページ内の任意の場所をクリックして、ブラウザがキー入力をキャプチャできるようにします。',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: '反応テストを実行する',
|
|
35
|
+
text: 'キーボードの各キーを1つずつ押してください。正しく動作していれば、画面上の対応するキーが緑色に点灯します。',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'ゴーストをチェックする',
|
|
39
|
+
text: 'よく使うゲーム用キー(W, A, S, D, スペース, シフト)を同時に押し、入力がロックされたり、すべて反応するか確認します。',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: '最大ロールオーバーを確認する',
|
|
43
|
+
text: '両手でできるだけ多くのキーを同時に押し、最大同時押しカウンターの数値を確認します。',
|
|
44
|
+
},
|
|
45
|
+
];
|
|
46
|
+
|
|
47
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
48
|
+
'@context': 'https://schema.org',
|
|
49
|
+
'@type': 'FAQPage',
|
|
50
|
+
mainEntity: faqData.map((item) => ({
|
|
51
|
+
'@type': 'Question',
|
|
52
|
+
name: item.question,
|
|
53
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
54
|
+
})),
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
const howToSchema: WithContext<HowTo> = {
|
|
58
|
+
'@context': 'https://schema.org',
|
|
59
|
+
'@type': 'HowTo',
|
|
60
|
+
name: title,
|
|
61
|
+
description,
|
|
62
|
+
step: howToData.map((step, i) => ({
|
|
63
|
+
'@type': 'HowToStep',
|
|
64
|
+
position: i + 1,
|
|
65
|
+
name: step.name,
|
|
66
|
+
text: step.text,
|
|
67
|
+
})),
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
71
|
+
'@context': 'https://schema.org',
|
|
72
|
+
'@type': 'SoftwareApplication',
|
|
73
|
+
name: title,
|
|
74
|
+
description,
|
|
75
|
+
applicationCategory: 'UtilityApplication',
|
|
76
|
+
operatingSystem: 'All',
|
|
77
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
78
|
+
inLanguage: 'ja',
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
export const content: ToolLocaleContent<TestTecladoUI> = {
|
|
82
|
+
slug,
|
|
83
|
+
title,
|
|
84
|
+
description,
|
|
85
|
+
faqTitle: 'よくある質問',
|
|
86
|
+
faq: faqData,
|
|
87
|
+
bibliographyTitle: '技術リファレンス',
|
|
88
|
+
bibliography: [
|
|
89
|
+
{
|
|
90
|
+
name: 'USB Keyboard/Keypad Page - HID Usage Tables',
|
|
91
|
+
url: 'https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf',
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
name: 'Mechanical vs Membrane Keyboards - Technical Deep Dive',
|
|
95
|
+
url: 'https://deskthority.net/wiki/Rollover',
|
|
96
|
+
},
|
|
97
|
+
],
|
|
98
|
+
howTo: howToData,
|
|
99
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
100
|
+
seo: [
|
|
101
|
+
{
|
|
102
|
+
type: 'title',
|
|
103
|
+
text: 'オンライン・キーボードテスト:ゴーストとNキーロールオーバーを検出',
|
|
104
|
+
level: 2,
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'paragraph',
|
|
108
|
+
html: 'キーボード診断用のインタラクティブツール。ゴースト、チャタリング、ロールオーバー制限などをチェック。すべてのキーボードタイプをサポートし、視覚的に分かりやすい表示。',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'title',
|
|
112
|
+
text: 'ゴースト現象とは?',
|
|
113
|
+
level: 3,
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
type: 'paragraph',
|
|
117
|
+
html: '特定のキーを組み合わせたときに、押していないはずの「幽霊」入力を登録してしまう現象です。内部の電子回路マトリックスの制限が原因です。',
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
type: 'title',
|
|
121
|
+
text: 'Nキーロールオーバーと最大同時押し',
|
|
122
|
+
level: 3,
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
type: 'paragraph',
|
|
126
|
+
html: '<strong>NKRO (N-Key Rollover):</strong> すべてのキーを同時に認識可能。<strong>6KRO:</strong> 古いUSB規格の制限。<strong>2-3KRO:</strong> 安価なキーボードに多く、文字入力には十分。',
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
type: 'title',
|
|
130
|
+
text: 'メカニカル vs メンブレン',
|
|
131
|
+
level: 3,
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
type: 'paragraph',
|
|
135
|
+
html: 'メカニカルキーボードは個別のスイッチとダイオードを持ち、ゴーストを排除。メンブレンは導電線を共有しているため、同時押しで不具合が出ることがあります。',
|
|
136
|
+
},
|
|
137
|
+
],
|
|
138
|
+
ui: {
|
|
139
|
+
badge: '入力テスト',
|
|
140
|
+
title: 'キーボードテスト&ゴースト検出器',
|
|
141
|
+
description: 'Nキーロールオーバーを確認し、故障キーを特定。',
|
|
142
|
+
simultaneousLabel: '同時押し',
|
|
143
|
+
eventLogLabel: 'イベントログ',
|
|
144
|
+
resetBtn: 'リセット',
|
|
145
|
+
},
|
|
146
|
+
};
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { TestTecladoUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'keyboard-test';
|
|
6
|
+
const title = '온라인 키보드 테스트 및 고스트 감지기';
|
|
7
|
+
const description = '키보드에 고스트 현상이나 키 씹힘 현상이 있는지 확인하세요. 실시간 키 시각화 및 무한 동시 입력(N-Key Rollover) 카운터.';
|
|
8
|
+
|
|
9
|
+
const faqData = [
|
|
10
|
+
{
|
|
11
|
+
question: '키보드 고스트(Ghosting) 현상이란 무엇인가요?',
|
|
12
|
+
answer: '여러 키를 동시에 눌렀을 때 컴퓨터가 그중 일부를 인식하지 못하는 결함을 말합니다. 이는 특정 조합을 처리할 수 없는 키보드 내부 전기 회로망(matrix)의 한계 때문입니다.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: '무한 동시 입력(NKRO, N-Key Rollover)이란 무엇인가요?',
|
|
16
|
+
answer: 'NKRO는 사용자가 동시에 누를 수 있는 모든 키를 오류 없이 인식할 수 있음을 의미합니다. 주로 고급 기계식 키보드나 게이밍 키보드에서 볼 수 있는 기능입니다.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: '왜 3개의 키를 한꺼번에 누르면 실패하나요?',
|
|
20
|
+
answer: '대부분의 저렴한 사무용 키보드는 2개 또는 3개 키 동시 입력까지만 지원합니다. 이는 일반적인 타이핑에는 충분하지만, 집중적인 게임이나 복잡한 단축키 사용에는 부족합니다.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: '응답하지 않는 키를 고칠 수 있나요?',
|
|
24
|
+
answer: '테스트에서 키 눌림이 감지되지 않는다면 스위치 아래의 먼지, 전기 접점 불량 또는 케이블 손상일 수 있습니다. 포기하기 전에 에어 스프레이 등으로 키보드를 청소해 보세요.',
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
const howToData = [
|
|
29
|
+
{
|
|
30
|
+
name: '시각화 화면 포커스',
|
|
31
|
+
text: '페이지의 아무 곳이나 클릭하여 브라우저가 포커스를 유지하고 하드웨어 키 입력을 캡처할 수 있도록 하세요.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: '응답 테스트 실행',
|
|
35
|
+
text: '키보드의 각 키를 하나씩 눌러보세요. 정상적으로 작동하면 화면의 해당 키가 녹색으로 켜집니다.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: '고스트 현상 확인',
|
|
39
|
+
text: '게임에서 자주 사용하는 키들(W, A, S, D, Space, Shift)을 한꺼번에 눌러 고스트 현상이 생기는지 확인하세요.',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: '최대 동시 입력 확인',
|
|
43
|
+
text: '양손으로 최대한 많은 키를 동시에 눌러보고 최대 동시 입력 키 카운터를 확인하세요.',
|
|
44
|
+
},
|
|
45
|
+
];
|
|
46
|
+
|
|
47
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
48
|
+
'@context': 'https://schema.org',
|
|
49
|
+
'@type': 'FAQPage',
|
|
50
|
+
mainEntity: faqData.map((item) => ({
|
|
51
|
+
'@type': 'Question',
|
|
52
|
+
name: item.question,
|
|
53
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
54
|
+
})),
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
const howToSchema: WithContext<HowTo> = {
|
|
58
|
+
'@context': 'https://schema.org',
|
|
59
|
+
'@type': 'HowTo',
|
|
60
|
+
name: title,
|
|
61
|
+
description,
|
|
62
|
+
step: howToData.map((step, i) => ({
|
|
63
|
+
'@type': 'HowToStep',
|
|
64
|
+
position: i + 1,
|
|
65
|
+
name: step.name,
|
|
66
|
+
text: step.text,
|
|
67
|
+
})),
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
71
|
+
'@context': 'https://schema.org',
|
|
72
|
+
'@type': 'SoftwareApplication',
|
|
73
|
+
name: title,
|
|
74
|
+
description,
|
|
75
|
+
applicationCategory: 'UtilityApplication',
|
|
76
|
+
operatingSystem: 'All',
|
|
77
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
78
|
+
inLanguage: 'ko',
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
export const content: ToolLocaleContent<TestTecladoUI> = {
|
|
82
|
+
slug,
|
|
83
|
+
title,
|
|
84
|
+
description,
|
|
85
|
+
faqTitle: '자주 묻는 질문',
|
|
86
|
+
faq: faqData,
|
|
87
|
+
bibliographyTitle: '기술 참조',
|
|
88
|
+
bibliography: [
|
|
89
|
+
{
|
|
90
|
+
name: 'USB Keyboard/Keypad Page - HID Usage Tables',
|
|
91
|
+
url: 'https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf',
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
name: 'Mechanical vs Membrane Keyboards - Technical Deep Dive',
|
|
95
|
+
url: 'https://deskthority.net/wiki/Rollover',
|
|
96
|
+
},
|
|
97
|
+
],
|
|
98
|
+
howTo: howToData,
|
|
99
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
100
|
+
seo: [
|
|
101
|
+
{
|
|
102
|
+
type: 'title',
|
|
103
|
+
text: '온라인 키보드 테스트: 고스트 및 동시 입력 한계 자가 진단',
|
|
104
|
+
level: 2,
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'paragraph',
|
|
108
|
+
html: '키보드 진단을 위한 대화형 도구입니다. 고스트 현상, 씹힘 현상 또는 동시 입력 제한을 확인하세요. 모든 키보드 유형을 지원하며 시각적으로 명확한 피드백을 제공합니다.',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'title',
|
|
112
|
+
text: '고스트 현상이란?',
|
|
113
|
+
level: 3,
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
type: 'paragraph',
|
|
117
|
+
html: '고스트 현상은 특정 키 조합을 누를 때 누르지 않은 환상(phantom) 키가 입력되는 현상을 말합니다. 이는 내부 회로망의 한계로 인해 발생합니다.',
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
type: 'title',
|
|
121
|
+
text: '무한 동시 입력 및 최대 입력 한계',
|
|
122
|
+
level: 3,
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
type: 'paragraph',
|
|
126
|
+
html: '<strong>NKRO (N-Key Rollover):</strong> 누른 모든 키를 동시에 인식합니다. <strong>6KRO:</strong> 구형 USB 표준의 한계입니다. <strong>2-3KRO:</strong> 저가형 키보드에서 흔하며 일반 타이핑에 적합합니다.',
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
type: 'title',
|
|
130
|
+
text: '기계식 vs 멤버레인 키보드',
|
|
131
|
+
level: 3,
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
type: 'paragraph',
|
|
135
|
+
html: '기계식 키보드는 다이오드가 있는 개별 스위치를 사용하여 고스트 현상을 제거합니다. 멤브레인 키보드는 전기 신호 통로를 공유하므로 동시 입력 시 오류가 발생할 수 있습니다.',
|
|
136
|
+
},
|
|
137
|
+
],
|
|
138
|
+
ui: {
|
|
139
|
+
badge: '입력 테스트',
|
|
140
|
+
title: '키보드 테스트 및 고스트 감지기',
|
|
141
|
+
description: '동시 입력을 확인하고 불량 키를 찾아보세요.',
|
|
142
|
+
simultaneousLabel: '동시 입력',
|
|
143
|
+
eventLogLabel: '이벤트 로그',
|
|
144
|
+
resetBtn: '초기화',
|
|
145
|
+
},
|
|
146
|
+
};
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { TestTecladoUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'toetsenbord-test-online';
|
|
6
|
+
const title = 'Online Toetsenbord Test & Ghosting Detector';
|
|
7
|
+
const description = 'Controleer of uw toetsenbord last heeft van Ghosting of Key Jamming. Real-time toetsen-visualizer en N-Key Rollover teller.';
|
|
8
|
+
|
|
9
|
+
const faqData = [
|
|
10
|
+
{
|
|
11
|
+
question: 'Wat is Ghosting op een toetsenbord?',
|
|
12
|
+
answer: 'Het is een defect dat optreedt wanneer u meerdere toetsen tegelijk indrukt en de computer sommige daarvan niet registreert. Het komt door beperkingen in de interne elektrische matrix van het toetsenbord die bepaalde combinaties niet kan verwerken.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Wat betekent N-Key Rollover (NKRO)?',
|
|
16
|
+
answer: 'NKRO betekent dat het toetsenbord evenveel toetsen kan registreren als u tegelijkertijd kunt indrukken zonder fouten. Het is een premium functie, gebruikelijk bij high-end mechanische en gamingtoetsenborden.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'Waarom hapert mijn toetsenbord als ik 3 toetsen tegelijk indruk?',
|
|
20
|
+
answer: 'De meeste goedkope kantoortoetsenborden hebben een 2- of 3-toetsen rollover. Dit is voldoende voor typen, maar onvoldoende voor intensief gamen of complexe sneltoetsen.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: 'Hoe kan ik een toets repareren die niet reageert?',
|
|
24
|
+
answer: 'Als de test de toetsaanslag niet detecteert, kan dit komen door vuil onder de switch, een elektrisch contactfout of een beschadigde kabel. Probeer het toetsenbord te reinigen met perslucht voordat u het opgeeft.',
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
const howToData = [
|
|
29
|
+
{
|
|
30
|
+
name: 'Focus de visualizer',
|
|
31
|
+
text: 'Klik ergens op de pagina om ervoor te zorgen dat de browser focus heeft en hardware-toetsaanslagen kan vastleggen.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'Voer de responstest uit',
|
|
35
|
+
text: 'Druk de toetsen op uw toetsenbord één voor één in. De bijbehorende toets op het scherm licht groen op als deze correct werkt.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'Controleer op ghosting',
|
|
39
|
+
text: 'Druk veelgebruikte gaming-toetsen (W, A, S, D, Spatie, Shift) allemaal tegelijk in om te zien of ze blokkeren of allemaal oplichten.',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: 'Verifieer maximale rollover',
|
|
43
|
+
text: 'Probeer met beide handen zoveel mogelijk toetsen tegelijk in te drukken en bekijk de maximale gelijktijdige toetsaanslagteller.',
|
|
44
|
+
},
|
|
45
|
+
];
|
|
46
|
+
|
|
47
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
48
|
+
'@context': 'https://schema.org',
|
|
49
|
+
'@type': 'FAQPage',
|
|
50
|
+
mainEntity: faqData.map((item) => ({
|
|
51
|
+
'@type': 'Question',
|
|
52
|
+
name: item.question,
|
|
53
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
54
|
+
})),
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
const howToSchema: WithContext<HowTo> = {
|
|
58
|
+
'@context': 'https://schema.org',
|
|
59
|
+
'@type': 'HowTo',
|
|
60
|
+
name: title,
|
|
61
|
+
description,
|
|
62
|
+
step: howToData.map((step, i) => ({
|
|
63
|
+
'@type': 'HowToStep',
|
|
64
|
+
position: i + 1,
|
|
65
|
+
name: step.name,
|
|
66
|
+
text: step.text,
|
|
67
|
+
})),
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
71
|
+
'@context': 'https://schema.org',
|
|
72
|
+
'@type': 'SoftwareApplication',
|
|
73
|
+
name: title,
|
|
74
|
+
description,
|
|
75
|
+
applicationCategory: 'UtilityApplication',
|
|
76
|
+
operatingSystem: 'All',
|
|
77
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
78
|
+
inLanguage: 'nl',
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
export const content: ToolLocaleContent<TestTecladoUI> = {
|
|
82
|
+
slug,
|
|
83
|
+
title,
|
|
84
|
+
description,
|
|
85
|
+
faqTitle: 'Veelgestelde Vragen',
|
|
86
|
+
faq: faqData,
|
|
87
|
+
bibliographyTitle: 'Technische Referenties',
|
|
88
|
+
bibliography: [
|
|
89
|
+
{
|
|
90
|
+
name: 'USB Keyboard/Keypad Page - HID Usage Tables',
|
|
91
|
+
url: 'https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf',
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
name: 'Mechanical vs Membrane Keyboards - Technical Deep Dive',
|
|
95
|
+
url: 'https://deskthority.net/wiki/Rollover',
|
|
96
|
+
},
|
|
97
|
+
],
|
|
98
|
+
howTo: howToData,
|
|
99
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
100
|
+
seo: [
|
|
101
|
+
{
|
|
102
|
+
type: 'title',
|
|
103
|
+
text: 'Online Toetsenbord Test: Detecteer Ghosting en N-Key Rollover',
|
|
104
|
+
level: 2,
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'paragraph',
|
|
108
|
+
html: 'Een interactieve tool voor toetsenborddiagnostiek. Controleer of uw randapparatuur last heeft van ghosting, jamming of rollover-beperkingen. Visueel duidelijk met ondersteuning voor alle typen toetsenborden.',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'title',
|
|
112
|
+
text: 'Wat is Ghosting?',
|
|
113
|
+
level: 3,
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
type: 'paragraph',
|
|
117
|
+
html: 'Ghosting treedt op wanneer u een specifieke combinatie van toetsen indrukt en het toetsenbord een fantoom-toetsaanslag registreert die u niet heeft gemaakt. Dit komt door beperkingen in de interne circuitmatrix.',
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
type: 'title',
|
|
121
|
+
text: 'N-Key Rollover en Maximale Rollover',
|
|
122
|
+
level: 3,
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
type: 'paragraph',
|
|
126
|
+
html: '<strong>NKRO (N-Key Rollover):</strong> Hiermee kunnen alle ingedrukte toetsen tegelijkertijd worden geregistreerd. <strong>6KRO:</strong> Oude USB-standaardlimiet. <strong>2-3KRO:</strong> Gebruikelijk op goedkope toetsenborden, voldoende voor typen.',
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
type: 'title',
|
|
130
|
+
text: 'Mechanische vs Membraan Toetsenborden',
|
|
131
|
+
level: 3,
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
type: 'paragraph',
|
|
135
|
+
html: 'Mechanische toetsenborden hebben individuele switches met geïsoleerde dioden, waardoor ghosting wordt geëlimineerd. Membraantoetsenborden delen geleiderbanen, wat fouten veroorzaakt bij gelijktijdige combinaties.',
|
|
136
|
+
},
|
|
137
|
+
],
|
|
138
|
+
ui: {
|
|
139
|
+
badge: 'Input Test',
|
|
140
|
+
title: 'Toetsenbord Test en Ghosting Detector',
|
|
141
|
+
description: 'Verifieer N-Key Rollover en detecteer defecte toetsen.',
|
|
142
|
+
simultaneousLabel: 'Gelijktijdig',
|
|
143
|
+
eventLogLabel: 'Gebeurtenissenlogboek',
|
|
144
|
+
resetBtn: 'Reset',
|
|
145
|
+
},
|
|
146
|
+
};
|