@jjlmoya/utils-hardware 1.14.0 → 1.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/category/index.ts +2 -1
- package/src/entries.ts +4 -1
- package/src/index.ts +1 -0
- package/src/pages/[locale]/[slug].astro +28 -12
- package/src/tests/locale_completeness.test.ts +6 -20
- package/src/tests/shared-test-helpers.ts +56 -0
- package/src/tests/tool_exports.test.ts +34 -0
- package/src/tests/tool_validation.test.ts +2 -2
- package/src/tool/batteryHealthEstimator/bibliography.ts +13 -0
- package/src/tool/batteryHealthEstimator/i18n/de.ts +2 -12
- package/src/tool/batteryHealthEstimator/i18n/en.ts +2 -12
- package/src/tool/batteryHealthEstimator/i18n/es.ts +2 -12
- package/src/tool/batteryHealthEstimator/i18n/fr.ts +2 -12
- package/src/tool/batteryHealthEstimator/i18n/id.ts +2 -12
- package/src/tool/batteryHealthEstimator/i18n/it.ts +2 -12
- package/src/tool/batteryHealthEstimator/i18n/ja.ts +2 -12
- package/src/tool/batteryHealthEstimator/i18n/ko.ts +2 -12
- package/src/tool/batteryHealthEstimator/i18n/nl.ts +2 -12
- package/src/tool/batteryHealthEstimator/i18n/pl.ts +2 -12
- package/src/tool/batteryHealthEstimator/i18n/pt.ts +2 -12
- package/src/tool/batteryHealthEstimator/i18n/ru.ts +2 -12
- package/src/tool/batteryHealthEstimator/i18n/sv.ts +2 -12
- package/src/tool/batteryHealthEstimator/i18n/tr.ts +2 -12
- package/src/tool/batteryHealthEstimator/i18n/zh.ts +2 -12
- package/src/tool/batteryHealthEstimator/lithium-battery-health-calculator.css +90 -3
- package/src/tool/batteryHealthEstimator/seo.astro +3 -2
- package/src/tool/deadPixelTest/bibliography.ts +13 -0
- package/src/tool/deadPixelTest/dead-pixel-tester.css +33 -6
- package/src/tool/deadPixelTest/i18n/de.ts +2 -12
- package/src/tool/deadPixelTest/i18n/en.ts +2 -12
- package/src/tool/deadPixelTest/i18n/es.ts +2 -12
- package/src/tool/deadPixelTest/i18n/fr.ts +2 -12
- package/src/tool/deadPixelTest/i18n/id.ts +2 -12
- package/src/tool/deadPixelTest/i18n/it.ts +2 -12
- package/src/tool/deadPixelTest/i18n/ja.ts +2 -12
- package/src/tool/deadPixelTest/i18n/ko.ts +2 -12
- package/src/tool/deadPixelTest/i18n/nl.ts +2 -12
- package/src/tool/deadPixelTest/i18n/pl.ts +2 -12
- package/src/tool/deadPixelTest/i18n/pt.ts +2 -12
- package/src/tool/deadPixelTest/i18n/ru.ts +2 -12
- package/src/tool/deadPixelTest/i18n/sv.ts +2 -12
- package/src/tool/deadPixelTest/i18n/tr.ts +2 -12
- package/src/tool/deadPixelTest/i18n/zh.ts +2 -12
- package/src/tool/deadPixelTest/seo.astro +3 -2
- package/src/tool/gamepadTest/bibliography.ts +12 -0
- package/src/tool/gamepadTest/gamepad-test.css +88 -3
- package/src/tool/gamepadTest/i18n/de.ts +2 -12
- package/src/tool/gamepadTest/i18n/en.ts +2 -12
- package/src/tool/gamepadTest/i18n/es.ts +2 -12
- package/src/tool/gamepadTest/i18n/fr.ts +2 -12
- package/src/tool/gamepadTest/i18n/id.ts +2 -12
- package/src/tool/gamepadTest/i18n/it.ts +2 -12
- package/src/tool/gamepadTest/i18n/ja.ts +2 -12
- package/src/tool/gamepadTest/i18n/ko.ts +2 -12
- package/src/tool/gamepadTest/i18n/nl.ts +2 -12
- package/src/tool/gamepadTest/i18n/pl.ts +2 -12
- package/src/tool/gamepadTest/i18n/pt.ts +2 -12
- package/src/tool/gamepadTest/i18n/ru.ts +2 -12
- package/src/tool/gamepadTest/i18n/sv.ts +2 -12
- package/src/tool/gamepadTest/i18n/tr.ts +2 -12
- package/src/tool/gamepadTest/i18n/zh.ts +2 -12
- package/src/tool/gamepadTest/seo.astro +3 -2
- package/src/tool/gamepadVibrationTester/bibliography.ts +13 -0
- package/src/tool/gamepadVibrationTester/gamepad-vibration-tester.css +124 -4
- package/src/tool/gamepadVibrationTester/i18n/de.ts +2 -12
- package/src/tool/gamepadVibrationTester/i18n/en.ts +2 -12
- package/src/tool/gamepadVibrationTester/i18n/es.ts +2 -12
- package/src/tool/gamepadVibrationTester/i18n/fr.ts +2 -12
- package/src/tool/gamepadVibrationTester/i18n/id.ts +2 -12
- package/src/tool/gamepadVibrationTester/i18n/it.ts +2 -12
- package/src/tool/gamepadVibrationTester/i18n/ja.ts +2 -12
- package/src/tool/gamepadVibrationTester/i18n/ko.ts +2 -12
- package/src/tool/gamepadVibrationTester/i18n/nl.ts +2 -12
- package/src/tool/gamepadVibrationTester/i18n/pl.ts +2 -12
- package/src/tool/gamepadVibrationTester/i18n/pt.ts +2 -12
- package/src/tool/gamepadVibrationTester/i18n/ru.ts +2 -12
- package/src/tool/gamepadVibrationTester/i18n/sv.ts +2 -12
- package/src/tool/gamepadVibrationTester/i18n/tr.ts +2 -12
- package/src/tool/gamepadVibrationTester/i18n/zh.ts +2 -12
- package/src/tool/gamepadVibrationTester/seo.astro +3 -2
- package/src/tool/keyboardTest/bibliography.ts +13 -0
- package/src/tool/keyboardTest/i18n/de.ts +2 -12
- package/src/tool/keyboardTest/i18n/en.ts +2 -12
- package/src/tool/keyboardTest/i18n/es.ts +2 -12
- package/src/tool/keyboardTest/i18n/fr.ts +2 -12
- package/src/tool/keyboardTest/i18n/id.ts +2 -12
- package/src/tool/keyboardTest/i18n/it.ts +2 -12
- package/src/tool/keyboardTest/i18n/ja.ts +2 -12
- package/src/tool/keyboardTest/i18n/ko.ts +2 -12
- package/src/tool/keyboardTest/i18n/nl.ts +2 -12
- package/src/tool/keyboardTest/i18n/pl.ts +2 -12
- package/src/tool/keyboardTest/i18n/pt.ts +2 -12
- package/src/tool/keyboardTest/i18n/ru.ts +2 -12
- package/src/tool/keyboardTest/i18n/sv.ts +2 -12
- package/src/tool/keyboardTest/i18n/tr.ts +2 -12
- package/src/tool/keyboardTest/i18n/zh.ts +2 -12
- package/src/tool/keyboardTest/keyboard-test.css +46 -3
- package/src/tool/keyboardTest/seo.astro +3 -2
- package/src/tool/mousePollingTest/bibliography.ts +13 -0
- package/src/tool/mousePollingTest/i18n/de.ts +2 -12
- package/src/tool/mousePollingTest/i18n/en.ts +2 -12
- package/src/tool/mousePollingTest/i18n/es.ts +2 -12
- package/src/tool/mousePollingTest/i18n/fr.ts +2 -12
- package/src/tool/mousePollingTest/i18n/id.ts +2 -12
- package/src/tool/mousePollingTest/i18n/it.ts +2 -12
- package/src/tool/mousePollingTest/i18n/ja.ts +2 -12
- package/src/tool/mousePollingTest/i18n/ko.ts +2 -12
- package/src/tool/mousePollingTest/i18n/nl.ts +2 -12
- package/src/tool/mousePollingTest/i18n/pl.ts +2 -12
- package/src/tool/mousePollingTest/i18n/pt.ts +2 -12
- package/src/tool/mousePollingTest/i18n/ru.ts +2 -12
- package/src/tool/mousePollingTest/i18n/sv.ts +2 -12
- package/src/tool/mousePollingTest/i18n/tr.ts +2 -12
- package/src/tool/mousePollingTest/i18n/zh.ts +2 -12
- package/src/tool/mousePollingTest/mouse-polling-rate-test.css +27 -5
- package/src/tool/mousePollingTest/seo.astro +3 -2
- package/src/tool/refreshRateDetector/bibliography.astro +14 -0
- package/src/tool/refreshRateDetector/bibliography.ts +20 -0
- package/src/tool/refreshRateDetector/component.astro +206 -0
- package/src/tool/refreshRateDetector/entry.ts +29 -0
- package/src/tool/refreshRateDetector/i18n/de.ts +196 -0
- package/src/tool/refreshRateDetector/i18n/en.ts +196 -0
- package/src/tool/refreshRateDetector/i18n/es.ts +196 -0
- package/src/tool/refreshRateDetector/i18n/fr.ts +196 -0
- package/src/tool/refreshRateDetector/i18n/id.ts +196 -0
- package/src/tool/refreshRateDetector/i18n/it.ts +196 -0
- package/src/tool/refreshRateDetector/i18n/ja.ts +196 -0
- package/src/tool/refreshRateDetector/i18n/ko.ts +196 -0
- package/src/tool/refreshRateDetector/i18n/nl.ts +196 -0
- package/src/tool/refreshRateDetector/i18n/pl.ts +196 -0
- package/src/tool/refreshRateDetector/i18n/pt.ts +196 -0
- package/src/tool/refreshRateDetector/i18n/ru.ts +196 -0
- package/src/tool/refreshRateDetector/i18n/sv.ts +196 -0
- package/src/tool/refreshRateDetector/i18n/tr.ts +196 -0
- package/src/tool/refreshRateDetector/i18n/zh.ts +196 -0
- package/src/tool/refreshRateDetector/index.ts +11 -0
- package/src/tool/refreshRateDetector/monitor-refresh-rate-detector.css +342 -0
- package/src/tool/refreshRateDetector/seo.astro +15 -0
- package/src/tool/refreshRateDetector/ui.ts +24 -0
- package/src/tool/toneGenerator/bibliography.ts +13 -0
- package/src/tool/toneGenerator/i18n/de.ts +2 -12
- package/src/tool/toneGenerator/i18n/en.ts +2 -12
- package/src/tool/toneGenerator/i18n/es.ts +2 -12
- package/src/tool/toneGenerator/i18n/fr.ts +2 -12
- package/src/tool/toneGenerator/i18n/id.ts +2 -12
- package/src/tool/toneGenerator/i18n/it.ts +2 -12
- package/src/tool/toneGenerator/i18n/ja.ts +2 -12
- package/src/tool/toneGenerator/i18n/ko.ts +2 -12
- package/src/tool/toneGenerator/i18n/nl.ts +2 -12
- package/src/tool/toneGenerator/i18n/pl.ts +2 -12
- package/src/tool/toneGenerator/i18n/pt.ts +2 -12
- package/src/tool/toneGenerator/i18n/ru.ts +2 -12
- package/src/tool/toneGenerator/i18n/sv.ts +2 -12
- package/src/tool/toneGenerator/i18n/tr.ts +2 -12
- package/src/tool/toneGenerator/i18n/zh.ts +2 -12
- package/src/tool/toneGenerator/seo.astro +3 -2
- package/src/tool/toneGenerator/tone-frequency-generator.css +25 -3
- package/src/tools.ts +2 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { TestTecladoUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
4
5
|
|
|
5
6
|
const slug = 'tastatur-test-online';
|
|
6
7
|
const title = 'Online Tastatur Test & Ghosting Detektor';
|
|
@@ -82,21 +83,10 @@ export const content: ToolLocaleContent<TestTecladoUI> = {
|
|
|
82
83
|
slug,
|
|
83
84
|
title,
|
|
84
85
|
description,
|
|
85
|
-
faqTitle: 'Häufig gestellte Fragen',
|
|
86
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
87
|
howTo: howToData,
|
|
99
88
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
89
|
+
bibliography,
|
|
100
90
|
seo: [
|
|
101
91
|
{
|
|
102
92
|
type: 'title',
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { TestTecladoUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
4
5
|
|
|
5
6
|
const slug = 'keyboard-test';
|
|
6
7
|
const title = 'Online Keyboard Test & Ghosting Detector';
|
|
@@ -82,21 +83,10 @@ export const content: ToolLocaleContent<TestTecladoUI> = {
|
|
|
82
83
|
slug,
|
|
83
84
|
title,
|
|
84
85
|
description,
|
|
85
|
-
faqTitle: 'Frequently Asked Questions',
|
|
86
86
|
faq: faqData,
|
|
87
|
-
bibliographyTitle: 'Technical References',
|
|
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
87
|
howTo: howToData,
|
|
99
88
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
89
|
+
bibliography,
|
|
100
90
|
seo: [
|
|
101
91
|
{
|
|
102
92
|
type: 'title',
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { TestTecladoUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
4
5
|
|
|
5
6
|
const slug = 'test-teclado';
|
|
6
7
|
const title = 'Test de Teclado y Ghosting Online';
|
|
@@ -82,21 +83,10 @@ export const content: ToolLocaleContent<TestTecladoUI> = {
|
|
|
82
83
|
slug,
|
|
83
84
|
title,
|
|
84
85
|
description,
|
|
85
|
-
faqTitle: 'Preguntas Frecuentes',
|
|
86
86
|
faq: faqData,
|
|
87
|
-
bibliographyTitle: 'Referencias Técnicas',
|
|
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
87
|
howTo: howToData,
|
|
99
88
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
89
|
+
bibliography,
|
|
100
90
|
seo: [
|
|
101
91
|
{
|
|
102
92
|
type: 'title',
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { TestTecladoUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
4
5
|
|
|
5
6
|
const slug = 'test-clavier';
|
|
6
7
|
const title = 'Test de Clavier et Détecteur de Ghosting';
|
|
@@ -82,21 +83,10 @@ export const content: ToolLocaleContent<TestTecladoUI> = {
|
|
|
82
83
|
slug,
|
|
83
84
|
title,
|
|
84
85
|
description,
|
|
85
|
-
faqTitle: 'Questions Fréquemment Posées',
|
|
86
86
|
faq: faqData,
|
|
87
|
-
bibliographyTitle: 'Références Techniques',
|
|
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
87
|
howTo: howToData,
|
|
99
88
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
89
|
+
bibliography,
|
|
100
90
|
seo: [
|
|
101
91
|
{
|
|
102
92
|
type: 'title',
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { TestTecladoUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
4
5
|
|
|
5
6
|
const slug = 'tes-keyboard-online';
|
|
6
7
|
const title = 'Tes Keyboard Online & Detektor Ghosting';
|
|
@@ -82,21 +83,10 @@ export const content: ToolLocaleContent<TestTecladoUI> = {
|
|
|
82
83
|
slug,
|
|
83
84
|
title,
|
|
84
85
|
description,
|
|
85
|
-
faqTitle: 'Pertanyaan yang Sering Diajukan',
|
|
86
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
87
|
howTo: howToData,
|
|
99
88
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
89
|
+
bibliography,
|
|
100
90
|
seo: [
|
|
101
91
|
{
|
|
102
92
|
type: 'title',
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { TestTecladoUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
4
5
|
|
|
5
6
|
const slug = 'test-tastiera-online';
|
|
6
7
|
const title = 'Test Tastiera Online e Rilevatore Ghosting';
|
|
@@ -82,21 +83,10 @@ export const content: ToolLocaleContent<TestTecladoUI> = {
|
|
|
82
83
|
slug,
|
|
83
84
|
title,
|
|
84
85
|
description,
|
|
85
|
-
faqTitle: 'Domande Frequenti',
|
|
86
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
87
|
howTo: howToData,
|
|
99
88
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
89
|
+
bibliography,
|
|
100
90
|
seo: [
|
|
101
91
|
{
|
|
102
92
|
type: 'title',
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { TestTecladoUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
4
5
|
|
|
5
6
|
const slug = 'keyboard-test';
|
|
6
7
|
const title = 'オンライン・キーボードテスト&ゴースト検出器';
|
|
@@ -82,21 +83,10 @@ export const content: ToolLocaleContent<TestTecladoUI> = {
|
|
|
82
83
|
slug,
|
|
83
84
|
title,
|
|
84
85
|
description,
|
|
85
|
-
faqTitle: 'よくある質問',
|
|
86
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
87
|
howTo: howToData,
|
|
99
88
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
89
|
+
bibliography,
|
|
100
90
|
seo: [
|
|
101
91
|
{
|
|
102
92
|
type: 'title',
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { TestTecladoUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
4
5
|
|
|
5
6
|
const slug = 'keyboard-test';
|
|
6
7
|
const title = '온라인 키보드 테스트 및 고스트 감지기';
|
|
@@ -82,21 +83,10 @@ export const content: ToolLocaleContent<TestTecladoUI> = {
|
|
|
82
83
|
slug,
|
|
83
84
|
title,
|
|
84
85
|
description,
|
|
85
|
-
faqTitle: '자주 묻는 질문',
|
|
86
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
87
|
howTo: howToData,
|
|
99
88
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
89
|
+
bibliography,
|
|
100
90
|
seo: [
|
|
101
91
|
{
|
|
102
92
|
type: 'title',
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { TestTecladoUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
4
5
|
|
|
5
6
|
const slug = 'toetsenbord-test-online';
|
|
6
7
|
const title = 'Online Toetsenbord Test & Ghosting Detector';
|
|
@@ -82,21 +83,10 @@ export const content: ToolLocaleContent<TestTecladoUI> = {
|
|
|
82
83
|
slug,
|
|
83
84
|
title,
|
|
84
85
|
description,
|
|
85
|
-
faqTitle: 'Veelgestelde Vragen',
|
|
86
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
87
|
howTo: howToData,
|
|
99
88
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
89
|
+
bibliography,
|
|
100
90
|
seo: [
|
|
101
91
|
{
|
|
102
92
|
type: 'title',
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { TestTecladoUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
4
5
|
|
|
5
6
|
const slug = 'test-klawiatury-online';
|
|
6
7
|
const title = 'Online Test Klawiatury i Detektor Ghostingu';
|
|
@@ -82,21 +83,10 @@ export const content: ToolLocaleContent<TestTecladoUI> = {
|
|
|
82
83
|
slug,
|
|
83
84
|
title,
|
|
84
85
|
description,
|
|
85
|
-
faqTitle: 'Często Zadawane Pytania',
|
|
86
86
|
faq: faqData,
|
|
87
|
-
bibliographyTitle: 'Referencje Techniczne',
|
|
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
87
|
howTo: howToData,
|
|
99
88
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
89
|
+
bibliography,
|
|
100
90
|
seo: [
|
|
101
91
|
{
|
|
102
92
|
type: 'title',
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { TestTecladoUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
4
5
|
|
|
5
6
|
const slug = 'teste-teclado-online';
|
|
6
7
|
const title = 'Teste de Teclado Online e Detetor de Ghosting';
|
|
@@ -82,21 +83,10 @@ export const content: ToolLocaleContent<TestTecladoUI> = {
|
|
|
82
83
|
slug,
|
|
83
84
|
title,
|
|
84
85
|
description,
|
|
85
|
-
faqTitle: 'Perguntas Frequentes',
|
|
86
86
|
faq: faqData,
|
|
87
|
-
bibliographyTitle: 'Referências Técnicas',
|
|
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
87
|
howTo: howToData,
|
|
99
88
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
89
|
+
bibliography,
|
|
100
90
|
seo: [
|
|
101
91
|
{
|
|
102
92
|
type: 'title',
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { TestTecladoUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
4
5
|
|
|
5
6
|
const slug = 'test-klaviatury-online';
|
|
6
7
|
const title = 'Онлайн тест клавиатуры и детектор гостинга';
|
|
@@ -82,21 +83,10 @@ export const content: ToolLocaleContent<TestTecladoUI> = {
|
|
|
82
83
|
slug,
|
|
83
84
|
title,
|
|
84
85
|
description,
|
|
85
|
-
faqTitle: 'Часто задаваемые вопросы',
|
|
86
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
87
|
howTo: howToData,
|
|
99
88
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
89
|
+
bibliography,
|
|
100
90
|
seo: [
|
|
101
91
|
{
|
|
102
92
|
type: 'title',
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { TestTecladoUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
4
5
|
|
|
5
6
|
const slug = 'tangentbordstest-online';
|
|
6
7
|
const title = 'Online Tangentbordstest & Ghosting detektor';
|
|
@@ -82,21 +83,10 @@ export const content: ToolLocaleContent<TestTecladoUI> = {
|
|
|
82
83
|
slug,
|
|
83
84
|
title,
|
|
84
85
|
description,
|
|
85
|
-
faqTitle: 'Vanliga frågor',
|
|
86
86
|
faq: faqData,
|
|
87
|
-
bibliographyTitle: 'Tekniska referenser',
|
|
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
87
|
howTo: howToData,
|
|
99
88
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
89
|
+
bibliography,
|
|
100
90
|
seo: [
|
|
101
91
|
{
|
|
102
92
|
type: 'title',
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { TestTecladoUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
4
5
|
|
|
5
6
|
const slug = 'klavye-testi-online';
|
|
6
7
|
const title = 'Çevrimiçi Klavye Testi ve Ghosting Belirleyici';
|
|
@@ -82,21 +83,10 @@ export const content: ToolLocaleContent<TestTecladoUI> = {
|
|
|
82
83
|
slug,
|
|
83
84
|
title,
|
|
84
85
|
description,
|
|
85
|
-
faqTitle: 'Sıkça Sorulan Sorular',
|
|
86
86
|
faq: faqData,
|
|
87
|
-
bibliographyTitle: 'Teknik Referanslar',
|
|
88
|
-
bibliography: [
|
|
89
|
-
{
|
|
90
|
-
name: 'USB Klavye/Tuş Takımı Sayfası - HID Kullanım Tabloları',
|
|
91
|
-
url: 'https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf',
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
name: 'Mekanik ve Membran Klavyeler - Teknik İnceleme',
|
|
95
|
-
url: 'https://deskthority.net/wiki/Rollover',
|
|
96
|
-
},
|
|
97
|
-
],
|
|
98
87
|
howTo: howToData,
|
|
99
88
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
89
|
+
bibliography,
|
|
100
90
|
seo: [
|
|
101
91
|
{
|
|
102
92
|
type: 'title',
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { TestTecladoUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
4
5
|
|
|
5
6
|
const slug = 'keyboard-test';
|
|
6
7
|
const title = '在线键盘测试与按键冲突检测器';
|
|
@@ -82,21 +83,10 @@ export const content: ToolLocaleContent<TestTecladoUI> = {
|
|
|
82
83
|
slug,
|
|
83
84
|
title,
|
|
84
85
|
description,
|
|
85
|
-
faqTitle: '常见问题',
|
|
86
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
87
|
howTo: howToData,
|
|
99
88
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
89
|
+
bibliography,
|
|
100
90
|
seo: [
|
|
101
91
|
{
|
|
102
92
|
type: 'title',
|
|
@@ -1,7 +1,50 @@
|
|
|
1
1
|
.tt-wrapper {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
--tt-accent: #4f46e5;
|
|
3
|
+
--tt-accent-hover: #4338ca;
|
|
4
|
+
--tt-surface: #fff;
|
|
5
|
+
--tt-surface-alt: #f1f5f9;
|
|
6
|
+
--tt-border: #e2e8f0;
|
|
7
|
+
--tt-text: #0f172a;
|
|
8
|
+
--tt-text-muted: #64748b;
|
|
9
|
+
--tt-key-bg: #fff;
|
|
10
|
+
--tt-key-text: #64748b;
|
|
11
|
+
--tt-key-border: #e2e8f0;
|
|
12
|
+
--tt-key-shadow: rgba(0, 0, 0, 0.2);
|
|
13
|
+
--tt-key-active-bg: #4f46e5;
|
|
14
|
+
--tt-key-tested-bg: #d1fae5;
|
|
15
|
+
--tt-key-tested-text: #059669;
|
|
16
|
+
--tt-kb-bg: #e2e8f0;
|
|
17
|
+
|
|
18
|
+
width: 100%;
|
|
19
|
+
color: var(--tt-text);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.theme-dark .tt-wrapper {
|
|
23
|
+
--tt-surface: #0f172a;
|
|
24
|
+
--tt-surface-alt: #1e293b;
|
|
25
|
+
--tt-border: #334155;
|
|
26
|
+
--tt-text: #f1f5f9;
|
|
27
|
+
--tt-text-muted: #94a3b8;
|
|
28
|
+
--tt-key-bg: #334155;
|
|
29
|
+
--tt-key-text: #cbd5e1;
|
|
30
|
+
--tt-key-border: #475569;
|
|
31
|
+
--tt-key-shadow: rgba(0, 0, 0, 0.5);
|
|
32
|
+
--tt-key-active-bg: #6366f1;
|
|
33
|
+
--tt-key-tested-bg: rgba(16, 185, 129, 0.3);
|
|
34
|
+
--tt-key-tested-text: #6ee7b7;
|
|
35
|
+
--tt-kb-bg: #334155;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
body.is-widget .tt-wrapper {
|
|
39
|
+
padding: 0;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
body.is-widget .tt-wrapper > div {
|
|
43
|
+
background: transparent;
|
|
44
|
+
box-shadow: none;
|
|
45
|
+
border: none;
|
|
46
|
+
padding: 1rem;
|
|
47
|
+
}
|
|
5
48
|
|
|
6
49
|
.tt-container {
|
|
7
50
|
max-width: 80rem;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
import { SEORenderer } from '@jjlmoya/utils-shared';
|
|
3
|
-
import type { KnownLocale } from '../../types';
|
|
4
3
|
import { testTeclado } from './index';
|
|
4
|
+
import type { KnownLocale } from '../../types';
|
|
5
5
|
|
|
6
6
|
interface Props {
|
|
7
7
|
locale?: KnownLocale;
|
|
@@ -9,6 +9,7 @@ interface Props {
|
|
|
9
9
|
|
|
10
10
|
const { locale = 'es' } = Astro.props;
|
|
11
11
|
const content = await testTeclado.i18n[locale]?.();
|
|
12
|
+
if (!content) return null;
|
|
12
13
|
---
|
|
13
14
|
|
|
14
|
-
{content && <SEORenderer content={{ locale, sections: content.seo }} />}
|
|
15
|
+
{content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { BibliographyEntry } from '../../../types';
|
|
2
|
+
|
|
3
|
+
export const bibliography: BibliographyEntry[] = [
|
|
4
|
+
|
|
5
|
+
{
|
|
6
|
+
name: 'Gamepad Polling Rate — Logitech',
|
|
7
|
+
url: 'https://www.logitechg.com/en-us/innovation/delta-zero.html',
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
name: 'USB HID Polling Rate — USB Implementers Forum',
|
|
11
|
+
url: 'https://www.usb.org/hid',
|
|
12
|
+
},
|
|
13
|
+
];
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { TestRatonUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
4
5
|
|
|
5
6
|
const slug = 'maus-polling-rate-test-online';
|
|
6
7
|
const title = 'Online Maus Polling Rate Test';
|
|
@@ -87,21 +88,10 @@ export const content: ToolLocaleContent<TestRatonUI> = {
|
|
|
87
88
|
slug,
|
|
88
89
|
title,
|
|
89
90
|
description,
|
|
90
|
-
faqTitle: 'Häufig gestellte Fragen',
|
|
91
91
|
faq: faqData,
|
|
92
|
-
bibliographyTitle: 'Referenzen',
|
|
93
|
-
bibliography: [
|
|
94
|
-
{
|
|
95
|
-
name: 'Gamepad Polling Rate — Logitech',
|
|
96
|
-
url: 'https://www.logitechg.com/en-us/innovation/delta-zero.html',
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
name: 'USB HID Polling Rate — USB Implementers Forum',
|
|
100
|
-
url: 'https://www.usb.org/hid',
|
|
101
|
-
},
|
|
102
|
-
],
|
|
103
92
|
howTo: howToData,
|
|
104
93
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
94
|
+
bibliography,
|
|
105
95
|
seo: [
|
|
106
96
|
{ type: 'title', text: 'Der ultimative Leitfaden zur Polling Rate', level: 2 },
|
|
107
97
|
{
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { TestRatonUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
4
5
|
|
|
5
6
|
const slug = 'mouse-polling-rate-test';
|
|
6
7
|
const title = 'Online Mouse Polling Rate Test';
|
|
@@ -87,21 +88,10 @@ export const content: ToolLocaleContent<TestRatonUI> = {
|
|
|
87
88
|
slug,
|
|
88
89
|
title,
|
|
89
90
|
description,
|
|
90
|
-
faqTitle: 'Frequently Asked Questions',
|
|
91
91
|
faq: faqData,
|
|
92
|
-
bibliographyTitle: 'References',
|
|
93
|
-
bibliography: [
|
|
94
|
-
{
|
|
95
|
-
name: 'Gamepad Polling Rate — Logitech',
|
|
96
|
-
url: 'https://www.logitechg.com/en-us/innovation/delta-zero.html',
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
name: 'USB HID Polling Rate — USB Implementers Forum',
|
|
100
|
-
url: 'https://www.usb.org/hid',
|
|
101
|
-
},
|
|
102
|
-
],
|
|
103
92
|
howTo: howToData,
|
|
104
93
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
94
|
+
bibliography,
|
|
105
95
|
seo: [
|
|
106
96
|
{ type: 'title', text: 'Definitive Guide to Polling Rate', level: 2 },
|
|
107
97
|
{
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { TestRatonUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
4
5
|
|
|
5
6
|
const slug = 'test-raton';
|
|
6
7
|
const title = 'Test de Polling Rate del Ratón Online';
|
|
@@ -87,21 +88,10 @@ export const content: ToolLocaleContent<TestRatonUI> = {
|
|
|
87
88
|
slug,
|
|
88
89
|
title,
|
|
89
90
|
description,
|
|
90
|
-
faqTitle: 'Preguntas Frecuentes',
|
|
91
91
|
faq: faqData,
|
|
92
|
-
bibliographyTitle: 'Referencias',
|
|
93
|
-
bibliography: [
|
|
94
|
-
{
|
|
95
|
-
name: 'Gamepad Polling Rate — Logitech',
|
|
96
|
-
url: 'https://www.logitechg.com/en-us/innovation/delta-zero.html',
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
name: 'USB HID Polling Rate — USB Implementers Forum',
|
|
100
|
-
url: 'https://www.usb.org/hid',
|
|
101
|
-
},
|
|
102
|
-
],
|
|
103
92
|
howTo: howToData,
|
|
104
93
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
94
|
+
bibliography,
|
|
105
95
|
seo: [
|
|
106
96
|
{ type: 'title', text: 'Guía Definitiva sobre Polling Rate (tasa de sondeo)', level: 2 },
|
|
107
97
|
{
|