@jjlmoya/utils-hardware 1.3.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/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/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
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { ProbadorVibracionMandoUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'oyun-kolu-titresim-testi-online';
|
|
6
|
+
const title = 'Çevrimiçi Oyun Kolu Titreşim Testi';
|
|
7
|
+
const description =
|
|
8
|
+
'Tarayıcınızda oyun kolunuzun haptik motorlarını ve Dual-Rumble titreşimini test edin. Xbox, DualShock, DualSense ve genel kontrolcüleri destekler.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'Oyun kolumu çevrimiçi test etmek için neye ihtiyacım var?',
|
|
13
|
+
answer:
|
|
14
|
+
'Oyun kolunuzu USB kablosuyla bilgisayara veya mobil cihaza bağlamanız ya da Bluetooth üzerinden eşleştirmeniz yeterlidir. Bağlandıktan sonra algılanması için herhangi bir düğmeye basın.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: 'Her oyun kolu modeliyle çalışır mı?',
|
|
18
|
+
answer:
|
|
19
|
+
'Cihazınız ve işletim sisteminiz desteklediği sürece bilinen markaların (PlayStation veya Xbox gibi) çoğu modern oyun kolu uyumludur.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: 'Oyun kolumun sağ tarafı solundan daha az titriyor, bu normal mi?',
|
|
23
|
+
answer:
|
|
24
|
+
'Evet, tamamen normal. Oyun kollarında genellikle bir tarafın güçlü, derin titreşimleri, diğer tarafın ise hızlı, hafif titreşimleri işlediği asimetrik bir tasarım bulunur.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'Bu testleri çalıştırmak çok pil tüketir mi?',
|
|
28
|
+
answer:
|
|
29
|
+
'Titreşim, kablosuz bir oyun kolundaki en enerji tüketen işlevlerden biridir. Sürekli ve uzun testler çalıştırmak pili normalden daha hızlı tüketecektir.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: 'Oyun kolunu bağlayın ve açın',
|
|
36
|
+
text: 'Oyun kolunuzu USB kablosu veya Bluetooth aracılığıyla PC, Mac veya mobil cihazınıza bağlayın.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Oyun kolunda bir düğmeye basın',
|
|
40
|
+
text: 'Tarayıcılar, oyun kolunun algılanması ve web iletişiminin başlaması için en az bir düğmeye basmanızı gerektirir.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Titreşim motorlarını ayarlayın',
|
|
44
|
+
text: 'Güçlü Motor (Düşük) ve İnce Motor (Yüksek) gücünü bağımsız olarak yapılandırın.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'Desenleri çalıştırın',
|
|
48
|
+
text: 'Hazır ayarlardan birine basın veya parametreleri manuel olarak yapılandırıp her bir bileşeni hissetmek için sinyali gönderin.',
|
|
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: 'EUR' },
|
|
83
|
+
inLanguage: 'tr',
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
export const content: ToolLocaleContent<ProbadorVibracionMandoUI> = {
|
|
87
|
+
slug,
|
|
88
|
+
title,
|
|
89
|
+
description,
|
|
90
|
+
faqTitle: 'Sıkça Sorulan Sorular',
|
|
91
|
+
faq: faqData,
|
|
92
|
+
bibliographyTitle: 'Referanslar',
|
|
93
|
+
bibliography: [
|
|
94
|
+
{
|
|
95
|
+
name: 'Haptik titreşim nasıl çalışır — HobbyConsolas',
|
|
96
|
+
url: 'https://www.hobbyconsolas.com/reportajes/como-funciona-vibracion-haptica-mando-dualsense-ps5-757673',
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
name: 'Gamepad API — W3C',
|
|
100
|
+
url: 'https://w3c.github.io/gamepad/',
|
|
101
|
+
},
|
|
102
|
+
],
|
|
103
|
+
howTo: howToData,
|
|
104
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
105
|
+
seo: [
|
|
106
|
+
{ type: 'title', text: 'Oyun kolunuzun titreşimini nasıl denetlersiniz', level: 2 },
|
|
107
|
+
{
|
|
108
|
+
type: 'paragraph',
|
|
109
|
+
html: 'Haptik geri bildirim, oyun donanımının en sürükleyici öğelerinden biridir. Bir motor arızalandığında ilk semptomlar genellikle anormal vızıltı veya asimetrik titreşimlerdir. Bunları erken teşhis etmek büyük arızaları önler.',
|
|
110
|
+
},
|
|
111
|
+
{ type: 'title', text: 'Neden titreşim testi yapılmalı?', level: 3 },
|
|
112
|
+
{
|
|
113
|
+
type: 'paragraph',
|
|
114
|
+
html: 'İkinci el bir oyun kolu satın alırken, sürücüleri güncelledikten sonra veya bir düşmeden sonra haptik motorları test etmek gerçek donanım arızalarını yazılım sorunlarından ayırmaya yardımcı olur. Xbox, PlayStation 4, PlayStation 5 (DualSense), Nintendo Switch Pro ve genel USB oyun kollarıyla uyumludur.',
|
|
115
|
+
},
|
|
116
|
+
{ type: 'title', text: 'Dual-Rumble ve Lineer Aktüatör Mimarisi Karşılaştırması', level: 3 },
|
|
117
|
+
{
|
|
118
|
+
type: 'paragraph',
|
|
119
|
+
html: 'Klasik oyun kolları (Xbox, DualShock) iki asimetrik mikro motor kullanır: sol motor derin, gmbürtülü titreşimler üretir; sağdaki ise hızlı, tiz vızıltılar çıkarır. DualSense gibi gelişmiş cihazlar doku ve direnci simüle eden lineer aktüatörler kullanır.',
|
|
120
|
+
},
|
|
121
|
+
{ type: 'title', text: 'Semptom bazlı teşhis kılavuzu', level: 3 },
|
|
122
|
+
{
|
|
123
|
+
type: 'paragraph',
|
|
124
|
+
html: 'Her motoru bağımsız olarak %100 güçte etkinleştirin. Her ikisi de aynı sesi çıkarıyorsa oyun kolu tek motorlu bir kopya olabilir. Biri yanıt vermiyorsa kasayı açmadan önce bağlantıyı kontrol edin. Kısmi yoğunlukları test edin: kaliteli motorlar bir açma/kapama düğmesi gibi değil, kademeli olarak yanıt verir.',
|
|
125
|
+
},
|
|
126
|
+
],
|
|
127
|
+
ui: {
|
|
128
|
+
badge: 'Titreşim Testi',
|
|
129
|
+
title: 'Oyun Kolu Titreşim Test Edici',
|
|
130
|
+
description: 'Oyun kolunuzun Dual-Rumble motoru üzerinde doğrudan kontrol.',
|
|
131
|
+
deviceDisconnected: 'Oyun Kolu Bağlantısı Kesildi',
|
|
132
|
+
deviceDisconnectedSub: 'Başlamak için oyun kolunuzdaki bir düğmeye basın',
|
|
133
|
+
deviceFallback: 'Oyun Kolu Bağlandı',
|
|
134
|
+
deviceConnectedSub: 'Kararlı bağlantı. Teste hazır.',
|
|
135
|
+
noSupportWarning: "Tarayıcınızda Dual-Rumble desteği algılanmadı. Temel genel titreşim kullanılıyor.",
|
|
136
|
+
tabPresets: 'En İyi Hazır Ayarlar',
|
|
137
|
+
tabCustom: 'Saf Hassasiyet',
|
|
138
|
+
presetHeavyTitle: 'Çekiç Darbesi',
|
|
139
|
+
presetHeavyDesc: '300ms boyunca ağır motor maksimumda. Güçlü bir darbeyi simüle eder.',
|
|
140
|
+
presetLightTitle: 'Arı Vızıltısı',
|
|
141
|
+
presetLightDesc: 'Yalnızca sağ motor. Olağandışı vızıltıları tespit etmek için idealdir.',
|
|
142
|
+
presetHeartbeatTitle: 'Kalp Atışı',
|
|
143
|
+
presetHeartbeatDesc: 'Hafif ardışık darbeler. Eylemsizlik tutuşunu kontrol etmek için mükemmeldir.',
|
|
144
|
+
presetSongTitle: 'Madeni Para Ritmi',
|
|
145
|
+
presetSongDesc: 'Ardışık madeni para seslerini simüle eder. Kısa ve dokunsal.',
|
|
146
|
+
presetRockYouTitle: 'Rock You!',
|
|
147
|
+
presetRockYouDesc: "Queen'in klasiği ellerinizde: güm, güm, şak!",
|
|
148
|
+
presetEarthquakeTitle: 'Maksimum Deprem!',
|
|
149
|
+
presetEarthquakeDesc: 'Her iki motor da %100 patlayıcı güçte. ÇOK yoğun.',
|
|
150
|
+
customStrongLabel: 'Güçlü Kuvvet (Sol)',
|
|
151
|
+
customWeakLabel: 'Zayıf Kuvvet (Sağ)',
|
|
152
|
+
customDurationLabel: 'Darbe Süresi',
|
|
153
|
+
btnSendSignal: 'SİNYALİ ŞİMDİ GÖNDER',
|
|
154
|
+
},
|
|
155
|
+
};
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { ProbadorVibracionMandoUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'gamepad-vibration-tester';
|
|
6
|
+
const title = '在线手柄振动测试';
|
|
7
|
+
const description =
|
|
8
|
+
'在浏览器中测试游戏手柄的触感马达和 Dual-Rumble 振动。支持 Xbox、DualShock、DualSense 和通用控制器。';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: '在线测试手柄需要准备什么?',
|
|
13
|
+
answer:
|
|
14
|
+
'只需通过 USB 线将手柄连接到电脑或移动设备,或通过蓝牙进行配对。连接后,按任意键即可被检测到。',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: '是否适用于所有手柄型号?',
|
|
18
|
+
answer:
|
|
19
|
+
'如果您的设备和操作系统支持,大多数知名品牌(如 PlayStation 或 Xbox)的现代手柄都是兼容的。',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: '我的手柄右侧振动比左侧弱,这正常吗?',
|
|
23
|
+
answer:
|
|
24
|
+
'是的,完全正常。手柄通常采用非对称设计,其中一侧负责强力、深层的振动,另一侧负责快速、细微的振动。',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: '运行这些测试会消耗大量电池吗?',
|
|
28
|
+
answer:
|
|
29
|
+
'振动是无线手柄中最耗能的功能之一。运行持续、长时间的测试会比平时更快地耗尽电池。',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: '连接并开启手柄',
|
|
36
|
+
text: '通过 USB 线或蓝牙将手柄连接到您的 PC、Mac 或移动设备。',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: '按下手柄上的按键',
|
|
40
|
+
text: '浏览器要求您至少按下一个按键,以便检测到手柄并开始网页通信。',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: '调整振动马达',
|
|
44
|
+
text: '独立配置强力马达(低频)和精细马达(高频)的功率。',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: '执行模式',
|
|
48
|
+
text: '点击其中一个预设,或手动配置参数并发送信号来感触每个组件。',
|
|
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: 'EUR' },
|
|
83
|
+
inLanguage: 'zh',
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
export const content: ToolLocaleContent<ProbadorVibracionMandoUI> = {
|
|
87
|
+
slug,
|
|
88
|
+
title,
|
|
89
|
+
description,
|
|
90
|
+
faqTitle: '常见问题',
|
|
91
|
+
faq: faqData,
|
|
92
|
+
bibliographyTitle: '参考资料',
|
|
93
|
+
bibliography: [
|
|
94
|
+
{
|
|
95
|
+
name: '触感振动的工作原理 — HobbyConsolas',
|
|
96
|
+
url: 'https://www.hobbyconsolas.com/reportajes/como-funciona-vibracion-haptica-mando-dualsense-ps5-757673',
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
name: 'Gamepad API — W3C',
|
|
100
|
+
url: 'https://w3c.github.io/gamepad/',
|
|
101
|
+
},
|
|
102
|
+
],
|
|
103
|
+
howTo: howToData,
|
|
104
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
105
|
+
seo: [
|
|
106
|
+
{ type: 'title', text: '如何审计您的游戏手柄振动', level: 2 },
|
|
107
|
+
{
|
|
108
|
+
type: 'paragraph',
|
|
109
|
+
html: '触觉反馈是游戏硬件中最具沉浸感的元素之一。当马达出现故障时,最初的症状通常是异常的嗡嗡声或非对称振动。及早诊断可防止重大故障。',
|
|
110
|
+
},
|
|
111
|
+
{ type: 'title', text: '为什么要运行振动测试?', level: 3 },
|
|
112
|
+
{
|
|
113
|
+
type: 'paragraph',
|
|
114
|
+
html: '在购买二手手柄、更新驱动程序或发生跌落后,测试触感马达有助于区分真实的硬件故障与软件问题。兼容 Xbox、PlayStation 4、PlayStation 5 (DualSense)、Nintendo Switch Pro 和通用 USB 手柄。',
|
|
115
|
+
},
|
|
116
|
+
{ type: 'title', text: 'Dual-Rumble 与线性执行器架构', level: 3 },
|
|
117
|
+
{
|
|
118
|
+
type: 'paragraph',
|
|
119
|
+
html: '经典手柄 (Xbox, DualShock) 使用两个非对称微型马达:左侧产生深沉、轰鸣的振动;右侧产生快速、尖锐的嗡嗡声。像 DualSense 这样先进的设备使用线性执行器来模拟纹理和阻力。',
|
|
120
|
+
},
|
|
121
|
+
{ type: 'title', text: '基于症状的诊断指南', level: 3 },
|
|
122
|
+
{
|
|
123
|
+
type: 'paragraph',
|
|
124
|
+
html: '以 100% 功率独立激活每个马达。如果听起来都一样,手柄可能是只有一个马达的仿制品。如果其中一个没有响应,请在拆开外壳前检查连接。测试细分强度:高质量马达是逐渐响应的,而不是像开关一样。',
|
|
125
|
+
},
|
|
126
|
+
],
|
|
127
|
+
ui: {
|
|
128
|
+
badge: '振动测试',
|
|
129
|
+
title: '手柄振动测试器',
|
|
130
|
+
description: '直接控制手柄的 Dual-Rumble 马达。',
|
|
131
|
+
deviceDisconnected: '手柄已断开连接',
|
|
132
|
+
deviceDisconnectedSub: '按下手柄上的按键开始',
|
|
133
|
+
deviceFallback: '手柄已连接',
|
|
134
|
+
deviceConnectedSub: '连接稳定。准备测试。',
|
|
135
|
+
noSupportWarning: "浏览器中未检测到 Dual-Rumble 支持。正在使用基础通用振动。",
|
|
136
|
+
tabPresets: '热门预设',
|
|
137
|
+
tabCustom: '精准控制',
|
|
138
|
+
presetHeavyTitle: '重锤打击',
|
|
139
|
+
presetHeavyDesc: '重型马达最大功率持续 300ms。模拟强力撞击。',
|
|
140
|
+
presetLightTitle: '蜜蜂嗡嗡',
|
|
141
|
+
presetLightDesc: '仅右侧马达。适合检测异常的嗡嗡声。',
|
|
142
|
+
presetHeartbeatTitle: '心跳',
|
|
143
|
+
presetHeartbeatDesc: '细微的连续脉冲。非常适合检查惯性保持情况。',
|
|
144
|
+
presetSongTitle: '金币节奏',
|
|
145
|
+
presetSongDesc: '模拟连续的金币声。短促且有触感。',
|
|
146
|
+
presetRockYouTitle: 'Rock You!',
|
|
147
|
+
presetRockYouDesc: "Queen 的经典旋律:动、动、打!",
|
|
148
|
+
presetEarthquakeTitle: '最大级别地震!',
|
|
149
|
+
presetEarthquakeDesc: '双马达 100% 爆发力。非常强烈。',
|
|
150
|
+
customStrongLabel: '强力马达(左)',
|
|
151
|
+
customWeakLabel: '精细马达(右)',
|
|
152
|
+
customDurationLabel: '脉冲时长',
|
|
153
|
+
btnSendSignal: '立即发送信号',
|
|
154
|
+
},
|
|
155
|
+
};
|
|
@@ -7,10 +7,6 @@ import ProbadorVibracionMandoBibliography from './bibliography.astro';
|
|
|
7
7
|
import type { ProbadorVibracionMandoUI } from './ui';
|
|
8
8
|
export type ProbadorVibracionMandoLocaleContent = ToolLocaleContent<ProbadorVibracionMandoUI>;
|
|
9
9
|
|
|
10
|
-
import { content as es } from './i18n/es';
|
|
11
|
-
import { content as en } from './i18n/en';
|
|
12
|
-
import { content as fr } from './i18n/fr';
|
|
13
|
-
|
|
14
10
|
export const probadorVibracionMando: HardwareToolEntry<ProbadorVibracionMandoUI> = {
|
|
15
11
|
id: 'probador-vibracion-mando',
|
|
16
12
|
icons: {
|
|
@@ -18,9 +14,21 @@ export const probadorVibracionMando: HardwareToolEntry<ProbadorVibracionMandoUI>
|
|
|
18
14
|
fg: 'mdi:gamepad-variant',
|
|
19
15
|
},
|
|
20
16
|
i18n: {
|
|
21
|
-
|
|
22
|
-
en:
|
|
23
|
-
|
|
17
|
+
de: () => import('./i18n/de').then((m) => m.content),
|
|
18
|
+
en: () => import('./i18n/en').then((m) => m.content),
|
|
19
|
+
es: () => import('./i18n/es').then((m) => m.content),
|
|
20
|
+
fr: () => import('./i18n/fr').then((m) => m.content),
|
|
21
|
+
id: () => import('./i18n/id').then((m) => m.content),
|
|
22
|
+
it: () => import('./i18n/it').then((m) => m.content),
|
|
23
|
+
ja: () => import('./i18n/ja').then((m) => m.content),
|
|
24
|
+
ko: () => import('./i18n/ko').then((m) => m.content),
|
|
25
|
+
nl: () => import('./i18n/nl').then((m) => m.content),
|
|
26
|
+
pl: () => import('./i18n/pl').then((m) => m.content),
|
|
27
|
+
pt: () => import('./i18n/pt').then((m) => m.content),
|
|
28
|
+
ru: () => import('./i18n/ru').then((m) => m.content),
|
|
29
|
+
sv: () => import('./i18n/sv').then((m) => m.content),
|
|
30
|
+
tr: () => import('./i18n/tr').then((m) => m.content),
|
|
31
|
+
zh: () => import('./i18n/zh').then((m) => m.content),
|
|
24
32
|
},
|
|
25
33
|
};
|
|
26
34
|
|
|
@@ -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 = 'tastatur-test-online';
|
|
6
|
+
const title = 'Online Tastatur Test & Ghosting Detektor';
|
|
7
|
+
const description = 'Prüfen Sie, ob Ihre Tastatur unter Ghosting oder Key Jamming leidet. Echtzeit-Tastenvirtualisierung und N-Key-Rollover-Zähler.';
|
|
8
|
+
|
|
9
|
+
const faqData = [
|
|
10
|
+
{
|
|
11
|
+
question: 'Was ist Ghosting bei einer Tastatur?',
|
|
12
|
+
answer: 'Es handelt sich um einen Defekt, der auftritt, wenn Sie mehrere Tasten gleichzeitig drücken und der Computer einige davon nicht registriert. Dies liegt an Einschränkungen in der internen elektrischen Matrix der Tastatur, die bestimmte Kombinationen nicht verarbeiten kann.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Was bedeutet N-Key-Rollover (NKRO)?',
|
|
16
|
+
answer: 'NKRO bedeutet, dass die Tastatur so viele Tasten gleichzeitig registrieren kann, wie Sie drücken können, ohne Fehler. Dies ist ein Premium-Feature, das häufig in hochwertigen mechanischen und Gaming-Tastaturen zu finden ist.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'Warum versagt meine Tastatur, wenn ich 3 Tasten gleichzeitig drücke?',
|
|
20
|
+
answer: 'Die meisten billigen Büro-Tastaturen haben ein 2- oder 3-Tasten-Rollover. Das reicht zum Tippen aus, ist aber für intensives Gaming oder komplexe Shortcuts unzureichend.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: 'Wie kann ich eine Taste reparieren, die nicht reagiert?',
|
|
24
|
+
answer: 'Wenn der Test den Tastendruck nicht erkennt, könnte es an Schmutz unter dem Schalter, einem elektrischen Kontaktfehler oder einem beschädigten Kabel liegen. Versuchen Sie, die Tastatur mit Druckluft zu reinigen, bevor Sie aufgeben.',
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
const howToData = [
|
|
29
|
+
{
|
|
30
|
+
name: 'Visualisierung fokussieren',
|
|
31
|
+
text: 'Klicken Sie irgendwo auf die Seite, um sicherzustellen, dass der Browser den Fokus hat und Hardware-Tastendrücke erfassen kann.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'Reaktionstest durchführen',
|
|
35
|
+
text: 'Drücken Sie nacheinander jede Taste auf Ihrer Tastatur. Die entsprechende Taste auf dem Bildschirm leuchtet grün auf, wenn sie korrekt funktioniert.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'Auf Ghosting prüfen',
|
|
39
|
+
text: 'Drücken Sie gängige Gaming-Tasten (W, A, S, D, Leertaste, Shift) alle gleichzeitig, um zu sehen, ob sie sperren oder alle aufleuchten.',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: 'Maximalen Rollover überprüfen',
|
|
43
|
+
text: 'Versuchen Sie, mit beiden Händen so viele Tasten wie möglich gleichzeitig zu drücken, und beobachten Sie den Zähler für maximale gleichzeitige Tastendrücke.',
|
|
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: 'de',
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
export const content: ToolLocaleContent<TestTecladoUI> = {
|
|
82
|
+
slug,
|
|
83
|
+
title,
|
|
84
|
+
description,
|
|
85
|
+
faqTitle: 'Häufig gestellte Fragen',
|
|
86
|
+
faq: faqData,
|
|
87
|
+
bibliographyTitle: 'Technische Referenzen',
|
|
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 Tastatur Test: Ghosting und N-Key-Rollover erkennen',
|
|
104
|
+
level: 2,
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'paragraph',
|
|
108
|
+
html: 'Ein interaktives Tool zur Tastaturdiagnose. Prüfen Sie, ob Ihr Peripheriegerät unter Ghosting, Jamming oder Rollover-Einschränkungen leidet. Visuell klar mit Unterstützung für alle Tastaturtypen.',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'title',
|
|
112
|
+
text: 'Was ist Ghosting?',
|
|
113
|
+
level: 3,
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
type: 'paragraph',
|
|
117
|
+
html: 'Ghosting tritt auf, wenn Sie eine bestimmte Tastenkombination drücken und die Tastatur einen Phantom-Tastendruck registriert, den Sie nicht ausgeführt haben. Dies liegt an Einschränkungen im internen Schaltkreis-Matrix.',
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
type: 'title',
|
|
121
|
+
text: 'N-Key-Rollover und maximaler Rollover',
|
|
122
|
+
level: 3,
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
type: 'paragraph',
|
|
126
|
+
html: '<strong>NKRO (N-Key-Rollover):</strong> Ermöglicht das gleichzeitige Registrieren aller gedrückten Tasten. <strong>6KRO:</strong> Alter USB-Standard-Limit. <strong>2-3KRO:</strong> Üblich bei billigen Tastaturen, ausreichend zum Tippen.',
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
type: 'title',
|
|
130
|
+
text: 'Mechanische vs. Membran-Tastaturen',
|
|
131
|
+
level: 3,
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
type: 'paragraph',
|
|
135
|
+
html: 'Mechanische Tastaturen haben individuelle Schalter mit isolierten Dioden, was Ghosting eliminiert. Membran-Tastaturen teilen sich Leiterbahnen, was zu Fehlern bei gleichzeitigen Kombinationen führt.',
|
|
136
|
+
},
|
|
137
|
+
],
|
|
138
|
+
ui: {
|
|
139
|
+
badge: 'Eingabetest',
|
|
140
|
+
title: 'Tastatur Test und Ghosting Detektor',
|
|
141
|
+
description: 'N-Key-Rollover überprüfen und defekte Tasten erkennen.',
|
|
142
|
+
simultaneousLabel: 'Gleichzeitig',
|
|
143
|
+
eventLogLabel: 'Ereignisprotokoll',
|
|
144
|
+
resetBtn: 'Zurücksetzen',
|
|
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 = 'tes-keyboard-online';
|
|
6
|
+
const title = 'Tes Keyboard Online & Detektor Ghosting';
|
|
7
|
+
const description = 'Periksa apakah keyboard Anda mengalami Ghosting atau Key Jamming. Visualizer tombol real-time dan penghitung N-Key Rollover.';
|
|
8
|
+
|
|
9
|
+
const faqData = [
|
|
10
|
+
{
|
|
11
|
+
question: 'Apa itu Ghosting pada keyboard?',
|
|
12
|
+
answer: 'Ini adalah cacat yang terjadi ketika Anda menekan beberapa tombol sekaligus dan komputer tidak mendaftarkan beberapa di antaranya. Hal ini dikarenakan keterbatasan dalam matriks listrik internal keyboard yang tidak dapat memproses kombinasi tertentu.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Apa yang dimaksud dengan N-Key Rollover (NKRO)?',
|
|
16
|
+
answer: 'NKRO berarti keyboard dapat mendaftarkan tombol sebanyak yang dapat Anda tekan secara bersamaan tanpa kegagalan. Ini adalah fitur premium, umum pada keyboard mekanis dan gaming kelas atas.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'Mengapa keyboard saya gagal saat saya menekan 3 tombol sekaligus?',
|
|
20
|
+
answer: 'Sebagian besar keyboard kantor murah memiliki rollover 2 atau 3 tombol. Ini cukup untuk mengetik tetapi tidak cukup untuk gaming intensif atau pintasan kompleks.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: 'Bagaimana cara memperbaiki tombol yang tidak merespons?',
|
|
24
|
+
answer: 'Jika tes tidak mendeteksi penekanan tombol, itu bisa jadi karena kotoran di bawah Switch, kegagalan kontak listrik, atau kabel yang rusak. Coba bersihkan keyboard dengan udara bertekanan sebelum menyerah.',
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
const howToData = [
|
|
29
|
+
{
|
|
30
|
+
name: 'Fokuskan visualizer',
|
|
31
|
+
text: 'Klik di mana saja pada halaman untuk memastikan browser memiliki fokus dan dapat menangkap penekanan tombol perangkat keras.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'Jalankan tes respons',
|
|
35
|
+
text: 'Tekan setiap tombol pada keyboard Anda satu per satu. Tombol yang sesuai di layar akan menyala hijau jika berfungsi dengan benar.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'Periksa ghosting',
|
|
39
|
+
text: 'Tekan tombol gaming umum (W, A, S, D, Spasi, Shift) sekaligus untuk melihat apakah mereka terkunci atau semuanya menyala.',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: 'Verifikasi rollover maksimum',
|
|
43
|
+
text: 'Coba tekan tombol sebanyak mungkin dengan kedua tangan dan perhatikan penghitung penekanan tombol simultan maksimum.',
|
|
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: 'id',
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
export const content: ToolLocaleContent<TestTecladoUI> = {
|
|
82
|
+
slug,
|
|
83
|
+
title,
|
|
84
|
+
description,
|
|
85
|
+
faqTitle: 'Pertanyaan yang Sering Diajukan',
|
|
86
|
+
faq: faqData,
|
|
87
|
+
bibliographyTitle: 'Referensi Teknis',
|
|
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: 'Tes Keyboard Online: Deteksi Ghosting dan N-Key Rollover',
|
|
104
|
+
level: 2,
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'paragraph',
|
|
108
|
+
html: 'Alat interaktif untuk diagnosis keyboard. Periksa apakah perangkat periferal Anda mengalami ghosting, jamming, atau keterbatasan rollover. Visual yang jelas dengan dukungan untuk semua jenis keyboard.',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'title',
|
|
112
|
+
text: 'Apa itu Ghosting?',
|
|
113
|
+
level: 3,
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
type: 'paragraph',
|
|
117
|
+
html: 'Ghosting terjadi ketika Anda menekan kombinasi tombol tertentu dan keyboard mendaftarkan penekanan tombol hantu yang tidak Anda lakukan. Hal ini dikarenakan keterbatasan dalam matriks sirkuit internal.',
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
type: 'title',
|
|
121
|
+
text: 'N-Key Rollover dan Rollover Maksimum',
|
|
122
|
+
level: 3,
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
type: 'paragraph',
|
|
126
|
+
html: '<strong>NKRO (N-Key Rollover):</strong> Memungkinkan pendaftaran semua tombol yang ditekan secara bersamaan. <strong>6KRO:</strong> Batas standar USB lama. <strong>2-3KRO:</strong> Umum pada keyboard murah, cukup untuk mengetik.',
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
type: 'title',
|
|
130
|
+
text: 'Keyboard Mekanik vs Membran',
|
|
131
|
+
level: 3,
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
type: 'paragraph',
|
|
135
|
+
html: 'Keyboard mekanik memiliki Switch individual dengan dioda terisolasi, menghilangkan ghosting. Keyboard membran berbagi jalur konduktor, menyebabkan kegagalan dalam kombinasi simultan.',
|
|
136
|
+
},
|
|
137
|
+
],
|
|
138
|
+
ui: {
|
|
139
|
+
badge: 'Tes Input',
|
|
140
|
+
title: 'Tes Keyboard dan Detektor Ghosting',
|
|
141
|
+
description: 'Verifikasi N-Key Rollover dan deteksi tombol yang gagal.',
|
|
142
|
+
simultaneousLabel: 'Simultan',
|
|
143
|
+
eventLogLabel: 'Log Kejadian',
|
|
144
|
+
resetBtn: 'Reset',
|
|
145
|
+
},
|
|
146
|
+
};
|