@jjlmoya/utils-hardware 1.24.0 → 1.25.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/category/index.ts +3 -1
- package/src/entries.ts +7 -1
- package/src/index.ts +2 -0
- package/src/tests/locale_completeness.test.ts +2 -2
- package/src/tests/tool_validation.test.ts +2 -2
- package/src/tool/keyboardChatterTest/bibliography.astro +15 -0
- package/src/tool/keyboardChatterTest/bibliography.ts +20 -0
- package/src/tool/keyboardChatterTest/component.astro +353 -0
- package/src/tool/keyboardChatterTest/entry.ts +30 -0
- package/src/tool/keyboardChatterTest/i18n/de.ts +232 -0
- package/src/tool/keyboardChatterTest/i18n/en.ts +232 -0
- package/src/tool/keyboardChatterTest/i18n/es.ts +232 -0
- package/src/tool/keyboardChatterTest/i18n/fr.ts +232 -0
- package/src/tool/keyboardChatterTest/i18n/id.ts +232 -0
- package/src/tool/keyboardChatterTest/i18n/it.ts +232 -0
- package/src/tool/keyboardChatterTest/i18n/ja.ts +232 -0
- package/src/tool/keyboardChatterTest/i18n/ko.ts +232 -0
- package/src/tool/keyboardChatterTest/i18n/nl.ts +232 -0
- package/src/tool/keyboardChatterTest/i18n/pl.ts +232 -0
- package/src/tool/keyboardChatterTest/i18n/pt.ts +232 -0
- package/src/tool/keyboardChatterTest/i18n/ru.ts +232 -0
- package/src/tool/keyboardChatterTest/i18n/sv.ts +232 -0
- package/src/tool/keyboardChatterTest/i18n/tr.ts +232 -0
- package/src/tool/keyboardChatterTest/i18n/zh.ts +232 -0
- package/src/tool/keyboardChatterTest/index.ts +12 -0
- package/src/tool/keyboardChatterTest/keyboard-chatter-test.css +512 -0
- package/src/tool/keyboardChatterTest/logic.ts +23 -0
- package/src/tool/keyboardChatterTest/seo.astro +16 -0
- package/src/tool/keyboardChatterTest/ui.ts +34 -0
- package/src/tool/webBluetoothBleScanner/bibliography.astro +14 -0
- package/src/tool/webBluetoothBleScanner/bibliography.ts +16 -0
- package/src/tool/webBluetoothBleScanner/component.astro +339 -0
- package/src/tool/webBluetoothBleScanner/entry.ts +29 -0
- package/src/tool/webBluetoothBleScanner/i18n/de.ts +233 -0
- package/src/tool/webBluetoothBleScanner/i18n/en.ts +233 -0
- package/src/tool/webBluetoothBleScanner/i18n/es.ts +233 -0
- package/src/tool/webBluetoothBleScanner/i18n/fr.ts +233 -0
- package/src/tool/webBluetoothBleScanner/i18n/id.ts +233 -0
- package/src/tool/webBluetoothBleScanner/i18n/it.ts +233 -0
- package/src/tool/webBluetoothBleScanner/i18n/ja.ts +233 -0
- package/src/tool/webBluetoothBleScanner/i18n/ko.ts +233 -0
- package/src/tool/webBluetoothBleScanner/i18n/nl.ts +233 -0
- package/src/tool/webBluetoothBleScanner/i18n/pl.ts +233 -0
- package/src/tool/webBluetoothBleScanner/i18n/pt.ts +233 -0
- package/src/tool/webBluetoothBleScanner/i18n/ru.ts +233 -0
- package/src/tool/webBluetoothBleScanner/i18n/sv.ts +233 -0
- package/src/tool/webBluetoothBleScanner/i18n/tr.ts +233 -0
- package/src/tool/webBluetoothBleScanner/i18n/zh.ts +233 -0
- package/src/tool/webBluetoothBleScanner/index.ts +11 -0
- package/src/tool/webBluetoothBleScanner/logic.ts +79 -0
- package/src/tool/webBluetoothBleScanner/seo.astro +15 -0
- package/src/tool/webBluetoothBleScanner/ui.ts +41 -0
- package/src/tool/webBluetoothBleScanner/web-bluetooth-ble-scanner.css +406 -0
- package/src/tools.ts +3 -1
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { KeyboardChatterTestUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
5
|
+
|
|
6
|
+
const slug = 'teste-chatter-teclado';
|
|
7
|
+
const title = 'Teste de Chatter do Teclado';
|
|
8
|
+
const description = 'Detecta chattering de teclado mecânico, digitação dupla e repique de switch com defeito verificando quão rápido a mesma tecla aparece duas vezes.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'O que é chattering de teclado?',
|
|
13
|
+
answer: 'Chattering de teclado é uma falha de hardware onde uma pressão física é registrada como múltiplas pressões. É comum em switches mecânicos sujos, desgastados, oxidados ou com debounce inadequado.',
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
question: 'Como funciona este teste de chattering de teclado?',
|
|
17
|
+
answer: 'Pressione a mesma tecla suspeita lentamente, um toque de cada vez. Se o registro mostrar pressões repetidas com apenas alguns milissegundos de diferença, o switch pode estar repicando e produzindo letras duplas.',
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
question: 'Qual delta significa que meu teclado está com digitação dupla?',
|
|
21
|
+
answer: 'Uma pressão repetida abaixo de 30 ms é fortemente suspeita de chattering. Repetições de 30 a 50 ms merecem atenção. Repetições intencionais normais geralmente ficam acima de 50 ms para a maioria dos usuários.',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
question: 'Por que a primeira pressão não mostra delta?',
|
|
25
|
+
answer: 'Um delta precisa de uma pressão anterior da mesma tecla. A primeira pressão estabelece a linha de base, e as pressões posteriores mostram o intervalo de tempo em milissegundos.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'O software pode corrigir o chattering do teclado?',
|
|
29
|
+
answer: 'O software de debounce pode esconder alguns sintomas, mas não repara o switch. Limpar, reassentar switches hot-swap, substituir o switch ou reparar a PCB do teclado pode ser necessário.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: 'Abra a ferramenta e pressione as teclas normalmente',
|
|
36
|
+
text: 'Não há botão de iniciar. Clique na ferramenta se necessário e pressione a tecla que estava digitando duplo.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Toque a tecla suspeita uma de cada vez',
|
|
40
|
+
text: 'Pressione a tecla que digita duplo. Se uma pressão física criar várias linhas de registro com deltas pequenos, o switch provavelmente está chattering.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Leia o código de cores',
|
|
44
|
+
text: 'Verde significa normal acima de 50 ms, amarelo significa suspeito de 30 a 50 ms e vermelho significa chattering detectado abaixo de 30 ms.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'Exporte o registro se necessário',
|
|
48
|
+
text: 'Use o botão de download para salvar um registro CSV que pode ajudar a comparar teclas ou documentar uma falha intermitente.',
|
|
49
|
+
},
|
|
50
|
+
];
|
|
51
|
+
|
|
52
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
53
|
+
'@context': 'https://schema.org',
|
|
54
|
+
'@type': 'FAQPage',
|
|
55
|
+
mainEntity: faqData.map((item) => ({
|
|
56
|
+
'@type': 'Question',
|
|
57
|
+
name: item.question,
|
|
58
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
59
|
+
})),
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
const howToSchema: WithContext<HowTo> = {
|
|
63
|
+
'@context': 'https://schema.org',
|
|
64
|
+
'@type': 'HowTo',
|
|
65
|
+
name: title,
|
|
66
|
+
description,
|
|
67
|
+
step: howToData.map((step, i) => ({
|
|
68
|
+
'@type': 'HowToStep',
|
|
69
|
+
position: i + 1,
|
|
70
|
+
name: step.name,
|
|
71
|
+
text: step.text,
|
|
72
|
+
})),
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
76
|
+
'@context': 'https://schema.org',
|
|
77
|
+
'@type': 'SoftwareApplication',
|
|
78
|
+
name: title,
|
|
79
|
+
description,
|
|
80
|
+
applicationCategory: 'UtilityApplication',
|
|
81
|
+
operatingSystem: 'All',
|
|
82
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'USD' },
|
|
83
|
+
inLanguage: 'pt',
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
export const content: ToolLocaleContent<KeyboardChatterTestUI> = {
|
|
87
|
+
slug,
|
|
88
|
+
title,
|
|
89
|
+
description,
|
|
90
|
+
faq: faqData,
|
|
91
|
+
bibliography,
|
|
92
|
+
howTo: howToData,
|
|
93
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
94
|
+
seo: [
|
|
95
|
+
{
|
|
96
|
+
type: 'title',
|
|
97
|
+
text: 'Teste de Digitação Dupla de Teclado Mecânico',
|
|
98
|
+
level: 2,
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
type: 'paragraph',
|
|
102
|
+
html: 'Este teste de chattering de teclado ajuda a diagnosticar um teclado mecânico que digita duas letras de uma pressão, perde liberações limpas ou produz caracteres repetidos sem você tocar duas vezes intencionalmente. Use-o antes de limpar switches, alterar configurações de debounce do firmware, abrir uma reivindicação de garantia ou substituir um switch hot-swap.',
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
type: 'diagnostic',
|
|
106
|
+
variant: 'info',
|
|
107
|
+
title: 'Como ler o resultado',
|
|
108
|
+
badge: 'Limites de delta',
|
|
109
|
+
html: '<p><strong>Normal</strong> significa que a repetição ficou acima de 50 ms e geralmente é intencional. <strong>Suspeito</strong> significa 30-50 ms e deve ser testado novamente na mesma tecla. <strong>Chattering detectado</strong> significa abaixo de 30 ms, o que é muito provavelmente uma pressão física repicando em múltiplos contatos elétricos.</p>',
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
type: 'title',
|
|
113
|
+
text: 'Por Que Switches Mecânicos Fazem Chattering',
|
|
114
|
+
level: 3,
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
type: 'paragraph',
|
|
118
|
+
html: 'Um switch mecânico não fecha como um sinal digital perfeitamente limpo. Os contatos metálicos podem repicar por alguns milissegundos antes de se estabilizar. O firmware do teclado normalmente filtra esse repique com uma janela de debounce. O chattering acontece quando o contato está sujo, desgastado, oxidado, solto, rachado ou mal ajustado a ponto do teclado reportar pressões extras depois que o filtro de debounce deveria tê-las tratado.',
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
type: 'table',
|
|
122
|
+
headers: ['Sintoma', 'Causa provável', 'O que tentar primeiro'],
|
|
123
|
+
rows: [
|
|
124
|
+
['Uma tecla digita a mesma letra duas vezes', 'Contato do switch sujo ou desgastado', 'Remova a keycap, sopre a poeira e teste novamente antes de substituir o switch.'],
|
|
125
|
+
['Várias teclas hot-swap chattering após uma montagem', 'Pinos do switch não encaixados corretamente', 'Retire e reassente o switch, verificando pinos tortos ou soquete solto.'],
|
|
126
|
+
['Só acontece após derramamentos ou umidade', 'Oxidação ou resíduos nos contatos', 'Desconecte o teclado e limpe de acordo com a orientação do fabricante.'],
|
|
127
|
+
['Muitas teclas mostram deltas pequenos', 'Debounce do firmware muito baixo ou problema de varredura', 'Compare em outra porta USB e revise as configurações de debounce do firmware se disponíveis.'],
|
|
128
|
+
],
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
type: 'title',
|
|
132
|
+
text: 'Método de Teste Que Reduz Falsos Positivos',
|
|
133
|
+
level: 3,
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'list',
|
|
137
|
+
items: [
|
|
138
|
+
'Teste uma tecla suspeita por vez em vez de digitar frases completas.',
|
|
139
|
+
'Pressione a tecla uma vez, solte completamente e aguarde um momento antes da próxima pressão.',
|
|
140
|
+
'Compare a tecla suspeita com uma tecla próxima que pareça saudável.',
|
|
141
|
+
'Ignore a primeira linha para uma tecla porque não há pressão anterior para comparar.',
|
|
142
|
+
'Se a mesma tecla mostrar repetidamente linhas vermelhas abaixo de 30 ms de toques únicos, trate como falha de hardware.',
|
|
143
|
+
'Se apenas linhas amarelas aparecerem, repita o teste mais devagar e verifique se seu ritmo de digitação está causando o intervalo curto.',
|
|
144
|
+
],
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
type: 'title',
|
|
148
|
+
text: 'Chattering vs. Digitação Rápida Intencional',
|
|
149
|
+
level: 3,
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
type: 'comparative',
|
|
153
|
+
columns: 3,
|
|
154
|
+
items: [
|
|
155
|
+
{
|
|
156
|
+
title: 'Chattering',
|
|
157
|
+
description: 'Concentrado em uma tecla, frequentemente abaixo de 30 ms, e aparece quando você pretendia uma pressão.',
|
|
158
|
+
points: ['Inspecione o switch ou soquete.', 'Compare com uma tecla saudável próxima.'],
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
title: 'Digitação rápida',
|
|
162
|
+
description: 'Afeta muitas teclas, segue seu ritmo e tende a ficar acima de 50 ms entre pressões repetidas da mesma tecla.',
|
|
163
|
+
points: ['Geralmente uso normal.', 'Teste novamente com toques únicos mais lentos.'],
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
title: 'Repetição de tecla do sistema',
|
|
167
|
+
description: 'Aparece ao manter uma tecla pressionada e geralmente repete em um ritmo regular definido pelo seu sistema operacional.',
|
|
168
|
+
points: ['Solte completamente entre toques.', 'Verifique as configurações de repetição do teclado separadamente.'],
|
|
169
|
+
},
|
|
170
|
+
],
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
type: 'title',
|
|
174
|
+
text: 'O Que Fazer Quando uma Tecla Falha',
|
|
175
|
+
level: 3,
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
type: 'list',
|
|
179
|
+
items: [
|
|
180
|
+
'Salve um registro CSV antes de mudar qualquer coisa para poder comparar resultados antes e depois.',
|
|
181
|
+
'Remova a keycap e inspecione sujeira, resíduos de líquido ou uma haste que não retorna suavemente.',
|
|
182
|
+
'Para teclados hot-swap, reassente ou substitua o switch e teste a mesma posição novamente.',
|
|
183
|
+
'Para teclados soldados, compare as opções de debounce do firmware antes de assumir que a PCB precisa de reparo.',
|
|
184
|
+
'Experimente outro cabo e porta USB se várias teclas não relacionadas mostrarem deltas impossíveis.',
|
|
185
|
+
'Para suporte de garantia, inclua a tecla afetada, valores delta repetidos, modelo do teclado, versão do firmware e se a falha segue o switch ou o soquete da PCB.',
|
|
186
|
+
],
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
type: 'summary',
|
|
190
|
+
title: 'Regra rápida',
|
|
191
|
+
items: [
|
|
192
|
+
'Uma única linha vermelha é uma pista, não um veredito.',
|
|
193
|
+
'Linhas vermelhas repetidas abaixo de 30 ms na mesma tecla física são forte evidência de chattering de teclado.',
|
|
194
|
+
'Use toques únicos deliberados e compare o switch suspeito com uma tecla saudável próxima antes de substituir hardware.',
|
|
195
|
+
],
|
|
196
|
+
},
|
|
197
|
+
],
|
|
198
|
+
ui: {
|
|
199
|
+
statusIdle: 'Pressione qualquer tecla',
|
|
200
|
+
statusListening: 'Medindo deltas de tecla',
|
|
201
|
+
statusChatter: 'Chattering detectado',
|
|
202
|
+
totalPresses: 'Total de pressões',
|
|
203
|
+
chatterEvents: 'Eventos de chattering',
|
|
204
|
+
worstDelta: 'Pior delta',
|
|
205
|
+
watchWindow: 'Linhas mantidas',
|
|
206
|
+
keyColumn: 'Tecla',
|
|
207
|
+
deltaColumn: 'Delta',
|
|
208
|
+
verdictColumn: 'Veredito',
|
|
209
|
+
timeColumn: 'Tempo',
|
|
210
|
+
normal: 'Normal',
|
|
211
|
+
suspect: 'Suspeito',
|
|
212
|
+
chatter: 'Chattering',
|
|
213
|
+
waiting: 'Aguardando',
|
|
214
|
+
clear: 'Limpar registro',
|
|
215
|
+
exportLog: 'Exportar CSV',
|
|
216
|
+
hint: 'O registro mantém as 80 linhas mais recentes para que sessões longas permaneçam rápidas. A repetição de tecla pressionada é ignorada; linhas vermelhas vêm de pressões separadas que ocorreram muito próximas.',
|
|
217
|
+
captureNotice: 'Sem botão de iniciar. Toque uma tecla suspeita uma vez e observe o delta desde sua pressão anterior.',
|
|
218
|
+
keyboardAriaLabel: 'Atividade recente de teclas',
|
|
219
|
+
logAriaLabel: 'Registro de eventos de chattering do teclado',
|
|
220
|
+
escapeKey: 'Esc',
|
|
221
|
+
backspaceKey: 'Back',
|
|
222
|
+
tabKey: 'Tab',
|
|
223
|
+
enterKey: 'Enter',
|
|
224
|
+
capsLockKey: 'Caps',
|
|
225
|
+
shiftKey: 'Shift',
|
|
226
|
+
controlKey: 'Ctrl',
|
|
227
|
+
metaKey: 'Meta',
|
|
228
|
+
altKey: 'Alt',
|
|
229
|
+
spaceKey: 'Espaço',
|
|
230
|
+
csvHeader: 'tecla,código,delta_ms,gravidade,hora',
|
|
231
|
+
},
|
|
232
|
+
};
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { KeyboardChatterTestUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
5
|
+
|
|
6
|
+
const slug = 'test-drebezga-klaviatury';
|
|
7
|
+
const title = 'Тест Дребезга Клавиатуры';
|
|
8
|
+
const description = 'Обнаруживайте дребезг механической клавиатуры, двойное нажатие и неисправный отскок переключателей, проверяя, как быстро одна и та же клавиша появляется дважды.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'Что такое дребезг клавиатуры?',
|
|
13
|
+
answer: 'Дребезг клавиатуры - это аппаратная неисправность, при которой одно физическое нажатие регистрируется как несколько нажатий. Часто встречается на грязных, изношенных, окисленных или плохо подавленных механических переключателях.',
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
question: 'Как работает этот тест дребезга клавиатуры?',
|
|
17
|
+
answer: 'Медленно нажимайте одну и ту же подозрительную клавишу, по одному нажатию за раз. Если журнал показывает повторные нажатия с интервалом всего в несколько миллисекунд, переключатель может дребезжать и выдавать двойные буквы.',
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
question: 'Какая дельта означает, что клавиатура дважды нажимает?',
|
|
21
|
+
answer: 'Повторное нажатие ниже 30 мс сильно подозрительно на дребезг. Повторения от 30 до 50 мс заслуживают внимания. Нормальные намеренные повторения обычно выше 50 мс для большинства пользователей.',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
question: 'Почему первое нажатие не показывает дельту?',
|
|
25
|
+
answer: 'Для дельты необходимо предыдущее нажатие той же клавиши. Первое нажатие устанавливает базовую линию, а последующие нажатия показывают временной интервал в миллисекундах.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Может ли программное обеспечение исправить дребезг клавиатуры?',
|
|
29
|
+
answer: 'Программное подавление дребезга может скрыть некоторые симптомы, но не ремонтирует переключатель. Может потребоваться очистка, переустановка переключателей hot-swap, замена переключателя или ремонт печатной платы клавиатуры.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: 'Откройте инструмент и нажимайте клавиши как обычно',
|
|
36
|
+
text: 'Кнопки запуска нет. При необходимости кликните в поле инструмента, затем нажмите клавишу, которая печатала дважды.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Нажимайте подозрительную клавишу по одному разу',
|
|
40
|
+
text: 'Нажмите клавишу, которая печатает дважды. Если одно физическое нажатие создаёт несколько строк журнала с крошечными дельтами, переключатель, вероятно, дребезжит.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Читайте цветовой код',
|
|
44
|
+
text: 'Зелёный означает норму выше 50 мс, жёлтый - подозрительно от 30 до 50 мс, красный - дребезг обнаружен ниже 30 мс.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'Экспортируйте журнал при необходимости',
|
|
48
|
+
text: 'Используйте кнопку загрузки, чтобы сохранить CSV-журнал, который поможет сравнить клавиши или задокументировать периодическую неисправность.',
|
|
49
|
+
},
|
|
50
|
+
];
|
|
51
|
+
|
|
52
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
53
|
+
'@context': 'https://schema.org',
|
|
54
|
+
'@type': 'FAQPage',
|
|
55
|
+
mainEntity: faqData.map((item) => ({
|
|
56
|
+
'@type': 'Question',
|
|
57
|
+
name: item.question,
|
|
58
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
59
|
+
})),
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
const howToSchema: WithContext<HowTo> = {
|
|
63
|
+
'@context': 'https://schema.org',
|
|
64
|
+
'@type': 'HowTo',
|
|
65
|
+
name: title,
|
|
66
|
+
description,
|
|
67
|
+
step: howToData.map((step, i) => ({
|
|
68
|
+
'@type': 'HowToStep',
|
|
69
|
+
position: i + 1,
|
|
70
|
+
name: step.name,
|
|
71
|
+
text: step.text,
|
|
72
|
+
})),
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
76
|
+
'@context': 'https://schema.org',
|
|
77
|
+
'@type': 'SoftwareApplication',
|
|
78
|
+
name: title,
|
|
79
|
+
description,
|
|
80
|
+
applicationCategory: 'UtilityApplication',
|
|
81
|
+
operatingSystem: 'All',
|
|
82
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'USD' },
|
|
83
|
+
inLanguage: 'ru',
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
export const content: ToolLocaleContent<KeyboardChatterTestUI> = {
|
|
87
|
+
slug,
|
|
88
|
+
title,
|
|
89
|
+
description,
|
|
90
|
+
faq: faqData,
|
|
91
|
+
bibliography,
|
|
92
|
+
howTo: howToData,
|
|
93
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
94
|
+
seo: [
|
|
95
|
+
{
|
|
96
|
+
type: 'title',
|
|
97
|
+
text: 'Тест Двойного Нажатия Механической Клавиатуры',
|
|
98
|
+
level: 2,
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
type: 'paragraph',
|
|
102
|
+
html: 'Этот тест дребезга клавиатуры помогает диагностировать механическую клавиатуру, которая печатает две буквы от одного нажатия, пропускает чистые отпускания или выдаёт повторяющиеся символы без вашего намеренного двойного нажатия. Используйте его перед очисткой переключателей, изменением настроек подавления дребезга в прошивке, открытием гарантийного обращения или заменой переключателя hot-swap.',
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
type: 'diagnostic',
|
|
106
|
+
variant: 'info',
|
|
107
|
+
title: 'Как читать результат',
|
|
108
|
+
badge: 'Пороги дельты',
|
|
109
|
+
html: '<p><strong>Норма</strong> означает, что повторение было выше 50 мс и обычно является намеренным. <strong>Подозрительно</strong> означает 30-50 мс и должно быть перепроверено на той же клавише. <strong>Дребезг обнаружен</strong> означает ниже 30 мс, что, скорее всего, является одним физическим нажатием, отскакивающим в несколько электрических контактов.</p>',
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
type: 'title',
|
|
113
|
+
text: 'Почему Механические Переключатели Дребезжат',
|
|
114
|
+
level: 3,
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
type: 'paragraph',
|
|
118
|
+
html: 'Механический переключатель не замыкается как идеально чистый цифровой сигнал. Металлические контакты могут дребезжать в течение нескольких миллисекунд перед установкой. Прошивка клавиатуры обычно фильтрует этот дребезг с помощью окна подавления. Дребезг происходит, когда контакт загрязнён, изношен, окислен, ослаблен, треснут или плохо настроен настолько, что клавиатура сообщает о лишних нажатиях после того, как фильтр подавления должен был их обработать.',
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
type: 'table',
|
|
122
|
+
headers: ['Симптом', 'Вероятная причина', 'Что попробовать сначала'],
|
|
123
|
+
rows: [
|
|
124
|
+
['Одна клавиша печатает одну и ту же букву дважды', 'Грязный или изношенный контакт переключателя', 'Снимите колпачок, выдуйте пыль и протестируйте снова перед заменой переключателя.'],
|
|
125
|
+
['Несколько клавиш hot-swap дребезжат после сборки', 'Штырьки переключателя не вставлены чисто', 'Вытащите и переустановите переключатель, проверяя погнутые штырьки или ослабленный разъём.'],
|
|
126
|
+
['Происходит только после пролития или влажности', 'Окисление или остатки на контактах', 'Отсоедините клавиатуру и очистите согласно рекомендациям производителя.'],
|
|
127
|
+
['Многие клавиши показывают крошечные дельты', 'Слишком низкое подавление дребезга в прошивке или проблема сканирования', 'Сравните на другом USB-порту и проверьте настройки подавления дребезга в прошивке, если доступны.'],
|
|
128
|
+
],
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
type: 'title',
|
|
132
|
+
text: 'Метод Тестирования, Снижающий Ложные Срабатывания',
|
|
133
|
+
level: 3,
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'list',
|
|
137
|
+
items: [
|
|
138
|
+
'Тестируйте по одной подозрительной клавише за раз вместо набора полных предложений.',
|
|
139
|
+
'Нажмите клавишу один раз, полностью отпустите и подождите немного перед следующим нажатием.',
|
|
140
|
+
'Сравните подозрительную клавишу с соседней клавишей, которая кажется исправной.',
|
|
141
|
+
'Игнорируйте первую строку для клавиши, так как нет предыдущего нажатия для сравнения.',
|
|
142
|
+
'Если одна и та же клавиша неоднократно показывает красные строки ниже 30 мс от одиночных нажатий, считайте это аппаратной неисправностью.',
|
|
143
|
+
'Если появляются только жёлтые строки, повторите тест медленнее и проверьте, не вызывает ли ваш ритм нажатия короткий интервал.',
|
|
144
|
+
],
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
type: 'title',
|
|
148
|
+
text: 'Дребезг против Намеренного Быстрого Набора',
|
|
149
|
+
level: 3,
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
type: 'comparative',
|
|
153
|
+
columns: 3,
|
|
154
|
+
items: [
|
|
155
|
+
{
|
|
156
|
+
title: 'Дребезг',
|
|
157
|
+
description: 'Сосредоточен на одной клавише, часто ниже 30 мс, и появляется, когда вы намеревались сделать одно нажатие.',
|
|
158
|
+
points: ['Осмотрите переключатель или разъём.', 'Сравните с соседней исправной клавишей.'],
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
title: 'Быстрый набор',
|
|
162
|
+
description: 'Затрагивает много клавиш, следует вашему ритму и обычно держится выше 50 мс между повторными нажатиями одной и той же клавиши.',
|
|
163
|
+
points: ['Обычно нормальное использование.', 'Перепроверьте с более медленными одиночными нажатиями.'],
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
title: 'Автоповтор клавиши системы',
|
|
167
|
+
description: 'Появляется при удержании клавиши и обычно повторяется с регулярным ритмом, установленным вашей операционной системой.',
|
|
168
|
+
points: ['Полностью отпускайте между нажатиями.', 'Проверьте настройки повтора клавиатуры отдельно.'],
|
|
169
|
+
},
|
|
170
|
+
],
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
type: 'title',
|
|
174
|
+
text: 'Что Делать, Когда Клавиша Не Проходит Тест',
|
|
175
|
+
level: 3,
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
type: 'list',
|
|
179
|
+
items: [
|
|
180
|
+
'Сохраните CSV-журнал перед тем, как что-либо менять, чтобы можно было сравнить результаты до и после.',
|
|
181
|
+
'Снимите колпачок клавиши и проверьте на наличие грязи, остатков жидкости или штока, который не возвращается плавно.',
|
|
182
|
+
'Для клавиатур hot-swap переустановите или замените переключатель и протестируйте ту же позицию снова.',
|
|
183
|
+
'Для паяных клавиатур сравните варианты подавления дребезга в прошивке, прежде чем предполагать, что печатная плата нуждается в ремонте.',
|
|
184
|
+
'Попробуйте другой кабель и USB-порт, если несколько несвязанных клавиш показывают невозможные дельты.',
|
|
185
|
+
'Для гарантийной поддержки укажите затронутую клавишу, повторяющиеся значения дельты, модель клавиатуры, версию прошивки и следует ли неисправность за переключателем или разъёмом на плате.',
|
|
186
|
+
],
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
type: 'summary',
|
|
190
|
+
title: 'Быстрое правило',
|
|
191
|
+
items: [
|
|
192
|
+
'Одна красная строка - это улика, а не приговор.',
|
|
193
|
+
'Повторяющиеся красные строки ниже 30 мс на одной и той же физической клавише - убедительное свидетельство дребезга клавиатуры.',
|
|
194
|
+
'Используйте намеренные одиночные нажатия и сравнивайте подозрительный переключатель с соседней исправной клавишей перед заменой оборудования.',
|
|
195
|
+
],
|
|
196
|
+
},
|
|
197
|
+
],
|
|
198
|
+
ui: {
|
|
199
|
+
statusIdle: 'Нажмите любую клавишу',
|
|
200
|
+
statusListening: 'Измерение дельт клавиш',
|
|
201
|
+
statusChatter: 'Дребезг обнаружен',
|
|
202
|
+
totalPresses: 'Всего нажатий',
|
|
203
|
+
chatterEvents: 'События дребезга',
|
|
204
|
+
worstDelta: 'Худшая дельта',
|
|
205
|
+
watchWindow: 'Строк сохранено',
|
|
206
|
+
keyColumn: 'Клавиша',
|
|
207
|
+
deltaColumn: 'Дельта',
|
|
208
|
+
verdictColumn: 'Вердикт',
|
|
209
|
+
timeColumn: 'Время',
|
|
210
|
+
normal: 'Норма',
|
|
211
|
+
suspect: 'Подозрительно',
|
|
212
|
+
chatter: 'Дребезг',
|
|
213
|
+
waiting: 'Ожидание',
|
|
214
|
+
clear: 'Очистить журнал',
|
|
215
|
+
exportLog: 'Экспорт CSV',
|
|
216
|
+
hint: 'Журнал хранит 80 последних строк, чтобы длинные сессии оставались быстрыми. Удержание клавиши игнорируется; красные строки происходят от отдельных нажатий, которые произошли слишком близко друг к другу.',
|
|
217
|
+
captureNotice: 'Кнопки запуска нет. Нажмите подозрительную клавишу один раз и наблюдайте дельту от её предыдущего нажатия.',
|
|
218
|
+
keyboardAriaLabel: 'Недавняя активность клавиш',
|
|
219
|
+
logAriaLabel: 'Журнал событий дребезга клавиатуры',
|
|
220
|
+
escapeKey: 'Esc',
|
|
221
|
+
backspaceKey: 'Back',
|
|
222
|
+
tabKey: 'Tab',
|
|
223
|
+
enterKey: 'Enter',
|
|
224
|
+
capsLockKey: 'Caps',
|
|
225
|
+
shiftKey: 'Shift',
|
|
226
|
+
controlKey: 'Ctrl',
|
|
227
|
+
metaKey: 'Meta',
|
|
228
|
+
altKey: 'Alt',
|
|
229
|
+
spaceKey: 'Пробел',
|
|
230
|
+
csvHeader: 'клавиша,код,дельта_мс,серьёзность,время',
|
|
231
|
+
},
|
|
232
|
+
};
|