@jjlmoya/utils-hardware 1.3.0 → 1.6.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/i18n/de.ts +106 -0
- package/src/category/i18n/id.ts +106 -0
- package/src/category/i18n/it.ts +106 -0
- package/src/category/i18n/ja.ts +106 -0
- package/src/category/i18n/ko.ts +106 -0
- package/src/category/i18n/nl.ts +106 -0
- package/src/category/i18n/pl.ts +106 -0
- package/src/category/i18n/pt.ts +106 -0
- package/src/category/i18n/ru.ts +106 -0
- package/src/category/i18n/sv.ts +106 -0
- package/src/category/i18n/tr.ts +106 -0
- package/src/category/i18n/zh.ts +106 -0
- package/src/category/index.ts +13 -1
- package/src/tests/category_validation.test.ts +73 -0
- 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_language_code_format.test.ts +23 -0
- 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
|
@@ -7,10 +7,6 @@ import PixelesPantallaBibliography from './bibliography.astro';
|
|
|
7
7
|
import type { PixelesPantallaUI } from './ui';
|
|
8
8
|
export type PixelesPantallaLocaleContent = ToolLocaleContent<PixelesPantallaUI>;
|
|
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 pixelesPantalla: HardwareToolEntry<PixelesPantallaUI> = {
|
|
15
11
|
id: 'pixeles-pantalla',
|
|
16
12
|
icons: {
|
|
@@ -18,9 +14,21 @@ export const pixelesPantalla: HardwareToolEntry<PixelesPantallaUI> = {
|
|
|
18
14
|
fg: 'mdi:monitor-shimmer',
|
|
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,186 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { TestMandoUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'gamepad-test-deutsch';
|
|
6
|
+
const title = 'Online Gamepad & Controller Test';
|
|
7
|
+
const description = 'Testen Sie Ihren Xbox-, PlayStation- oder PC-Controller. Visualisieren Sie Totzonen, Joystick-Drift und Tasten.';
|
|
8
|
+
|
|
9
|
+
const faqData = [
|
|
10
|
+
{
|
|
11
|
+
question: 'Was ist Joystick-Drift?',
|
|
12
|
+
answer: 'Drift tritt auf, wenn der Controller Bewegungen registriert, ohne dass der Joystick berührt wird. Dies wird durch Verschleiß der internen Potentiometer verursacht, die ein falsches elektrisches Signal in eine konstante Richtung senden.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Wie kann ich Drift per Software beheben?',
|
|
16
|
+
answer: 'Wenn der Drift geringfügig ist, können Sie in Ihren Spieleinstellungen eine größere "Totzone" (Deadzone) konfigurieren. Dadurch werden kleine Joystick-Bewegungen in der Mitte ignoriert.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'Ist es mit PS5-, Xbox- und Switch-Controllern kompatibel?',
|
|
20
|
+
answer: 'Ja. Unser Tool verwendet die Standard-Gamepad-API moderner Browser, die fast jeden über USB oder Bluetooth angeschlossenen Controller erkennt, einschließlich DualSense, DualShock 4 und Xbox-Controller.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: 'Warum erkennt der Browser meinen Controller nicht?',
|
|
24
|
+
answer: 'Aus Sicherheitsgründen aktivieren Browser das Gamepad erst nach dem ersten Tastendruck. Wenn es nicht erscheint, drücken Sie eine beliebige Taste (wie A oder X) und stellen Sie sicher, dass Sie sich nicht im strengen Inkognito-Modus befinden.',
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
const howToData = [
|
|
29
|
+
{
|
|
30
|
+
name: 'Controller anschließen',
|
|
31
|
+
text: 'Schließen Sie Ihr Gamepad über USB an oder koppeln Sie es über Bluetooth mit Ihrem Computer.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'Erkennung aktivieren',
|
|
35
|
+
text: 'Bewegen Sie die Joysticks oder drücken Sie eine beliebige Taste, damit der Browser das angeschlossene Gerät erkennt.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'Totzonen testen',
|
|
39
|
+
text: 'Lassen Sie die Joysticks los und beobachten Sie die Achsen auf dem Bildschirm. Wenn die Werte nicht bei 0,0000 liegen, haben Sie einen leichten Drift.',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: 'Tasten und Vibration prüfen',
|
|
43
|
+
text: 'Drücken Sie jede Taste und jeden Trigger. Die visuellen Anzeigen sollten aufleuchten, und wenn Ihr Controller dies unterstützt, können Sie den Vibrationsmotor testen.',
|
|
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<TestMandoUI> = {
|
|
82
|
+
slug,
|
|
83
|
+
title,
|
|
84
|
+
description,
|
|
85
|
+
faqTitle: 'Häufig gestellte Fragen',
|
|
86
|
+
faq: faqData,
|
|
87
|
+
bibliographyTitle: 'Technische Referenzen',
|
|
88
|
+
bibliography: [
|
|
89
|
+
{
|
|
90
|
+
name: 'Gamepad API Standard - W3C',
|
|
91
|
+
url: 'https://w3c.github.io/gamepad/',
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
name: 'Vibration API - MDN Web Docs',
|
|
95
|
+
url: 'https://developer.mozilla.org/en-US/docs/Web/API/Vibration_API',
|
|
96
|
+
},
|
|
97
|
+
],
|
|
98
|
+
howTo: howToData,
|
|
99
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
100
|
+
seo: [
|
|
101
|
+
{
|
|
102
|
+
type: 'title',
|
|
103
|
+
text: 'Online Gamepad Test: Drift und Joystick Probleme erkennen',
|
|
104
|
+
level: 2,
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'paragraph',
|
|
108
|
+
html: 'Kostenloses Tool zum Testen von Xbox-, PlayStation-, Switch- und anderen Controllern. Visualisieren Sie Totzonen, erkennen Sie Drift und testen Sie die Vibration.',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'title',
|
|
112
|
+
text: 'Was ist Joystick-Drift',
|
|
113
|
+
level: 3,
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
type: 'paragraph',
|
|
117
|
+
html: 'Drift ist ein häufiger Defekt bei analogen Joysticks, bei dem der Stick Bewegungen registriert, ohne berührt zu werden. Er wird durch Verschleiß der internen Potentiometer verursacht.',
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
type: 'title',
|
|
121
|
+
text: 'Controller-Kompatibilität',
|
|
122
|
+
level: 3,
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
type: 'paragraph',
|
|
126
|
+
html: 'Kompatibel mit Xbox One, Xbox Series X/S, PlayStation 4, PlayStation 5 (DualSense), Nintendo Switch Pro und praktisch jedem modernen USB- oder Bluetooth-Gamepad.',
|
|
127
|
+
},
|
|
128
|
+
],
|
|
129
|
+
ui: {
|
|
130
|
+
badge: 'Eingabetest',
|
|
131
|
+
title: 'Gamepad und Controller Test',
|
|
132
|
+
description: 'Testen Sie Ihren Controller und erkennen Sie Probleme.',
|
|
133
|
+
connectionMessage: 'Schließen Sie Ihr USB- oder Bluetooth-Gerät an',
|
|
134
|
+
connectionStatus: 'Verbunden',
|
|
135
|
+
axisLabel: 'Achsen',
|
|
136
|
+
buttonsLabel: 'Tasten',
|
|
137
|
+
vibrationTitle: 'Vibrationstest',
|
|
138
|
+
vibrationDescription: 'Erfordert Browser-Unterstützung und kompatibles Gamepad.',
|
|
139
|
+
vibrationLow: 'Niedrig (Rumble)',
|
|
140
|
+
vibrationHigh: 'Hoch (Buzz)',
|
|
141
|
+
eventHistoryTitle: 'Ereignisverlauf',
|
|
142
|
+
eventHistoryClear: 'Löschen',
|
|
143
|
+
eventWaiting: 'Warte auf Ereignisse...',
|
|
144
|
+
gameStartBtn: 'CHALLENGE STARTEN',
|
|
145
|
+
gameControllerWarning: 'Controller anschließen oder Tastatur nutzen',
|
|
146
|
+
gameTimer: 'Zeit',
|
|
147
|
+
gameScore: 'Punkte',
|
|
148
|
+
gameInstruction: 'Schnell drücken',
|
|
149
|
+
gameCompleted: 'Herausforderung abgeschlossen',
|
|
150
|
+
gameNewRecord: 'NEUER REKORD',
|
|
151
|
+
gameRestartBtn: 'Wiederholen',
|
|
152
|
+
gameFeedback: 'Du bist eine Tasten-Legende',
|
|
153
|
+
gameIntroTitlePre: 'Pro Gamer ',
|
|
154
|
+
gameIntroHighlight: 'Reflexe',
|
|
155
|
+
gameIntroTitlePost: '?',
|
|
156
|
+
gameIntroDescPre: 'Testen Sie die Latenz und Reaktionsgeschwindigkeit Ihres Controllers. Sie haben ',
|
|
157
|
+
gameIntroDescSeconds: '30 Sekunden',
|
|
158
|
+
gameIntroDescPost: ', um die Tasten zu meistern.',
|
|
159
|
+
gameShareBtn: 'RANG TEILEN',
|
|
160
|
+
gameLogConnected: 'Verbunden',
|
|
161
|
+
gameLogDisconnected: 'Getrennt',
|
|
162
|
+
gameLogCleared: 'Protokoll gelöscht...',
|
|
163
|
+
gameLogBtnPrefix: 'Taste',
|
|
164
|
+
gameVibNotSupported: 'Vibration nicht unterstützt.',
|
|
165
|
+
gameVibLow: 'Niedrig',
|
|
166
|
+
gameVibHigh: 'Hoch',
|
|
167
|
+
gameMoveStick: 'STICK BEWEGEN',
|
|
168
|
+
gamePress: 'DRÜCKEN',
|
|
169
|
+
rankLegendaryName: 'LEGENDÄR',
|
|
170
|
+
rankLegendaryDesc: 'Deine Finger bewegen sich mit Schallgeschwindigkeit.',
|
|
171
|
+
rankLegendaryFlavor: 'Mein Controller fliegt!',
|
|
172
|
+
rankProName: 'PRO GAMER',
|
|
173
|
+
rankProDesc: 'Du hast stählerne Reflexe und einen gut kalibrierten Controller.',
|
|
174
|
+
rankProFlavor: 'Mein Controller fliegt!',
|
|
175
|
+
rankGamerName: 'GAMER',
|
|
176
|
+
rankGamerDesc: 'Nicht schlecht, aber du brauchst mehr Übung für kompetitives Spielen.',
|
|
177
|
+
rankGamerFlavor: 'Fast geschafft!',
|
|
178
|
+
rankNoobName: 'NOOB',
|
|
179
|
+
rankNoobDesc: 'Bist du sicher, dass der Controller eingeschaltet ist?',
|
|
180
|
+
rankNoobFlavor: 'Der Controller hat was gegen mich!',
|
|
181
|
+
gameShareText: 'Kannst du mich schlagen?',
|
|
182
|
+
gameShareScorePrefix: 'Ich habe',
|
|
183
|
+
gameShareScoreSuffix: 'Treffer erzielt',
|
|
184
|
+
gameShareTitle: 'Online Gamepad Test',
|
|
185
|
+
},
|
|
186
|
+
};
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { TestMandoUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'tes-gamepad-online';
|
|
6
|
+
const title = 'Tes Gamepad & Kontroler Online';
|
|
7
|
+
const description = 'Uji kontroler Xbox, PlayStation, atau PC Anda. Visualisasikan dead zone, drift joystick, dan tombol.';
|
|
8
|
+
|
|
9
|
+
const faqData = [
|
|
10
|
+
{
|
|
11
|
+
question: 'Apa itu Joystick Drift?',
|
|
12
|
+
answer: 'Drift terjadi ketika kontroler mendeteksi gerakan tanpa joystick disentuh. Hal ini disebabkan oleh keausan pada potensiometer internal, yang mengirimkan sinyal listrik palsu ke arah yang konstan.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Bagaimana cara memperbaiki drift melalui software?',
|
|
16
|
+
answer: 'Jika drift ringan, Anda dapat mengonfigurasi "Dead Zone" (Zona Mati) yang lebih besar di pengaturan game Anda. Ini akan mengabaikan gerakan joystick kecil di bagian tengah.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'Apakah ini kompatibel dengan kontroler PS5, Xbox, dan Switch?',
|
|
20
|
+
answer: 'Ya. Alat kami menggunakan Gamepad API standar dari browser modern, yang mendeteksi hampir semua kontroler yang terhubung via USB atau Bluetooth, termasuk DualSense, DualShock 4, dan Kontroler Xbox.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: 'Mengapa browser tidak mendeteksi kontroler saya?',
|
|
24
|
+
answer: 'Untuk keamanan, browser hanya mengaktifkan gamepad setelah penekanan tombol pertama. Jika tidak muncul, tekan tombol apa saja (seperti A atau X) dan pastikan Anda tidak berada dalam mode penyamaran yang ketat.',
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
const howToData = [
|
|
29
|
+
{
|
|
30
|
+
name: 'Hubungkan kontroler',
|
|
31
|
+
text: 'Colokkan gamepad Anda via USB oder sambungkan via Bluetooth ke komputer Anda.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'Aktifkan deteksi',
|
|
35
|
+
text: 'Gerakkan joystick atau tekan tombol apa pun agar browser mengenali perangkat yang terhubung.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'Uji dead zone',
|
|
39
|
+
text: 'Lepaskan joystick dan amati sumbu di layar. Jika nilainya tidak 0.0000, Anda memiliki sedikit drift.',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: 'Verifikasi tombol dan getaran',
|
|
43
|
+
text: 'Tekan setiap tombol dan trigger. Indikator visual harus menyala dan jika kontroler Anda mendukungnya, Anda dapat menguji motor getaran.',
|
|
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<TestMandoUI> = {
|
|
82
|
+
slug,
|
|
83
|
+
title,
|
|
84
|
+
description,
|
|
85
|
+
faqTitle: 'Pertanyaan yang Sering Diajukan',
|
|
86
|
+
faq: faqData,
|
|
87
|
+
bibliographyTitle: 'Referensi Teknis',
|
|
88
|
+
bibliography: [
|
|
89
|
+
{
|
|
90
|
+
name: 'Standar Gamepad API - W3C',
|
|
91
|
+
url: 'https://w3c.github.io/gamepad/',
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
name: 'Vibration API - MDN Web Docs',
|
|
95
|
+
url: 'https://developer.mozilla.org/en-US/docs/Web/API/Vibration_API',
|
|
96
|
+
},
|
|
97
|
+
],
|
|
98
|
+
howTo: howToData,
|
|
99
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
100
|
+
seo: [
|
|
101
|
+
{
|
|
102
|
+
type: 'title',
|
|
103
|
+
text: 'Tes Gamepad Online: Deteksi Drift dan Masalah Joystick',
|
|
104
|
+
level: 2,
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'paragraph',
|
|
108
|
+
html: 'Alat gratis untuk menguji kontroler Xbox, PlayStation, Switch, dan lainnya. Visualisasikan dead zone, deteksi drift, dan uji getaran.',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'title',
|
|
112
|
+
text: 'Apa itu Joystick Drift',
|
|
113
|
+
level: 3,
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
type: 'paragraph',
|
|
117
|
+
html: 'Drift adalah cacat umum pada joystick analog di mana stick mencatat gerakan tanpa disentuh. Hal ini disebabkan oleh keausan pada potensiometer internal.',
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
type: 'title',
|
|
121
|
+
text: 'Kompatibilitas Kontroler',
|
|
122
|
+
level: 3,
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
type: 'paragraph',
|
|
126
|
+
html: 'Kompatibel dengan Xbox One, Xbox Series X/S, PlayStation 4, PlayStation 5 (DualSense), Nintendo Switch Pro, dan hampir semua gamepad USB atau Bluetooth modern.',
|
|
127
|
+
},
|
|
128
|
+
],
|
|
129
|
+
ui: {
|
|
130
|
+
badge: 'Tes Input',
|
|
131
|
+
title: 'Tes Gamepad dan Kontroler',
|
|
132
|
+
description: 'Uji kontroler Anda dan deteksi masalah.',
|
|
133
|
+
connectionMessage: 'Hubungkan perangkat USB atau Bluetooth Anda',
|
|
134
|
+
connectionStatus: 'Terhubung',
|
|
135
|
+
axisLabel: 'Sumbu',
|
|
136
|
+
buttonsLabel: 'Tombol',
|
|
137
|
+
vibrationTitle: 'Tes Getaran',
|
|
138
|
+
vibrationDescription: 'Membutuhkan dukungan browser dan gamepad yang kompatibel.',
|
|
139
|
+
vibrationLow: 'Rendah (Rumble)',
|
|
140
|
+
vibrationHigh: 'Tinggi (Buzz)',
|
|
141
|
+
eventHistoryTitle: 'Riwayat Kejadian',
|
|
142
|
+
eventHistoryClear: 'Bersihkan',
|
|
143
|
+
eventWaiting: 'Menunggu kejadian...',
|
|
144
|
+
gameStartBtn: 'MULAI TANTANGAN',
|
|
145
|
+
gameControllerWarning: 'Hubungkan gamepad atau gunakan keyboard',
|
|
146
|
+
gameTimer: 'Timer',
|
|
147
|
+
gameScore: 'Skor',
|
|
148
|
+
gameInstruction: 'Tekan cepat',
|
|
149
|
+
gameCompleted: 'Tantangan Selesai',
|
|
150
|
+
gameNewRecord: 'REKOR BARU',
|
|
151
|
+
gameRestartBtn: 'Coba Lagi',
|
|
152
|
+
gameFeedback: 'Anda adalah legenda tombol',
|
|
153
|
+
gameIntroTitlePre: 'Refleks ',
|
|
154
|
+
gameIntroHighlight: 'Pro Gamer',
|
|
155
|
+
gameIntroTitlePost: '?',
|
|
156
|
+
gameIntroDescPre: 'Uji latensi kontroler dan kecepatan reaksi Anda. Anda punya waktu ',
|
|
157
|
+
gameIntroDescSeconds: '30 detik',
|
|
158
|
+
gameIntroDescPost: ' untuk menguasai tombol.',
|
|
159
|
+
gameShareBtn: 'BAGIKAN PERINGKAT',
|
|
160
|
+
gameLogConnected: 'Terhubung',
|
|
161
|
+
gameLogDisconnected: 'Terputus',
|
|
162
|
+
gameLogCleared: 'Log dibersihkan...',
|
|
163
|
+
gameLogBtnPrefix: 'Tombol',
|
|
164
|
+
gameVibNotSupported: 'Getaran tidak didukung.',
|
|
165
|
+
gameVibLow: 'Rendah',
|
|
166
|
+
gameVibHigh: 'Tinggi',
|
|
167
|
+
gameMoveStick: 'GERAKKAN STICK',
|
|
168
|
+
gamePress: 'TEKAN',
|
|
169
|
+
rankLegendaryName: 'LEGENDA',
|
|
170
|
+
rankLegendaryDesc: 'Jari-jari Anda bergerak secepat kilat.',
|
|
171
|
+
rankLegendaryFlavor: 'Gamepad saya terbang!',
|
|
172
|
+
rankProName: 'PRO GAMER',
|
|
173
|
+
rankProDesc: 'Anda memiliki refleks baja dan kontroler yang terkalibrasi dengan baik.',
|
|
174
|
+
rankProFlavor: 'Gamepad saya terbang!',
|
|
175
|
+
rankGamerName: 'GAMER',
|
|
176
|
+
rankGamerDesc: 'Lumayan, tapi Anda butuh lebih banyak latihan untuk permainan kompetitif.',
|
|
177
|
+
rankGamerFlavor: 'Hampir saja!',
|
|
178
|
+
rankNoobName: 'NOOB',
|
|
179
|
+
rankNoobDesc: 'Apakah Anda yakin kontroler Anda sudah menyala?',
|
|
180
|
+
rankNoobFlavor: 'Gamepad-nya tidak mau kerja sama!',
|
|
181
|
+
gameShareText: 'Bisakah Anda mengalahkan saya?',
|
|
182
|
+
gameShareScorePrefix: 'Saya dapat',
|
|
183
|
+
gameShareScoreSuffix: 'poin',
|
|
184
|
+
gameShareTitle: 'Tes Gamepad Online',
|
|
185
|
+
},
|
|
186
|
+
};
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { TestMandoUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'test-gamepad-online';
|
|
6
|
+
const title = 'Test Gamepad e Controller Online';
|
|
7
|
+
const description = 'Testa il tuo controller Xbox, PlayStation o PC. Visualizza zone morte, drift degli analogici e pulsanti.';
|
|
8
|
+
|
|
9
|
+
const faqData = [
|
|
10
|
+
{
|
|
11
|
+
question: "Cos'è il Drift degli Analogici?",
|
|
12
|
+
answer: "Il drift si verifica quando il controller registra un movimento senza che l'analogico venga toccato. È causato dall'usura dei potenziometri interni, che inviano un falso segnale elettrico in una direzione costante.",
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Come posso risolvere il drift tramite software?',
|
|
16
|
+
answer: 'Se il drift è lieve, puoi configurare una "Zona Morta" (Deadzone) più ampia nelle impostazioni del gioco. Questo ignora i piccoli movimenti dell\'analogico al centro.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'È compatibile con i controller PS5, Xbox e Switch?',
|
|
20
|
+
answer: "Sì. Il nostro strumento utilizza la Gamepad API standard dei browser moderni, che rileva quasi tutti i controller collegati via USB o Bluetooth, inclusi DualSense, DualShock 4 e controller Xbox.",
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: 'Perché il browser non rileva il mio controller?',
|
|
24
|
+
answer: "Per sicurezza, i browser attivano il gamepad solo dopo la pressione del primo pulsante. Se non appare, premi un pulsante qualsiasi (come A o X) e assicurati di non essere in modalità incognito rigorosa.",
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
const howToData = [
|
|
29
|
+
{
|
|
30
|
+
name: 'Collega il controller',
|
|
31
|
+
text: 'Collega il tuo gamepad tramite USB o associalo via Bluetooth al tuo computer.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'Attiva il rilevamento',
|
|
35
|
+
text: 'Muovi gli analogici o premi un pulsante qualsiasi affinché il browser riconosca il dispositivo collegato.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'Testa le zone morte',
|
|
39
|
+
text: 'Rilascia gli analogici e osserva gli assi sullo schermo. Se i valori non sono a 0.0000, hai un leggero drift.',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: 'Verifica pulsanti e vibrazione',
|
|
43
|
+
text: 'Premi ogni pulsante e grilletto. Gli indicatori visivi dovrebbero illuminarsi e, se il tuo controller lo supporta, puoi testare il motore di vibrazione.',
|
|
44
|
+
},
|
|
45
|
+
];
|
|
46
|
+
|
|
47
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
48
|
+
'@context': 'https://schema.org',
|
|
49
|
+
'@type': 'FAQPage',
|
|
50
|
+
mainEntity: faqData.map((item) => ({
|
|
51
|
+
'@type': 'Question',
|
|
52
|
+
name: item.question,
|
|
53
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
54
|
+
})),
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
const howToSchema: WithContext<HowTo> = {
|
|
58
|
+
'@context': 'https://schema.org',
|
|
59
|
+
'@type': 'HowTo',
|
|
60
|
+
name: title,
|
|
61
|
+
description,
|
|
62
|
+
step: howToData.map((step, i) => ({
|
|
63
|
+
'@type': 'HowToStep',
|
|
64
|
+
position: i + 1,
|
|
65
|
+
name: step.name,
|
|
66
|
+
text: step.text,
|
|
67
|
+
})),
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
71
|
+
'@context': 'https://schema.org',
|
|
72
|
+
'@type': 'SoftwareApplication',
|
|
73
|
+
name: title,
|
|
74
|
+
description,
|
|
75
|
+
applicationCategory: 'UtilityApplication',
|
|
76
|
+
operatingSystem: 'All',
|
|
77
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
78
|
+
inLanguage: 'it',
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
export const content: ToolLocaleContent<TestMandoUI> = {
|
|
82
|
+
slug,
|
|
83
|
+
title,
|
|
84
|
+
description,
|
|
85
|
+
faqTitle: 'Domande Frequenti',
|
|
86
|
+
faq: faqData,
|
|
87
|
+
bibliographyTitle: 'Riferimenti Tecnici',
|
|
88
|
+
bibliography: [
|
|
89
|
+
{
|
|
90
|
+
name: 'Gamepad API Standard - W3C',
|
|
91
|
+
url: 'https://w3c.github.io/gamepad/',
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
name: 'Vibration API - MDN Web Docs',
|
|
95
|
+
url: 'https://developer.mozilla.org/en-US/docs/Web/API/Vibration_API',
|
|
96
|
+
},
|
|
97
|
+
],
|
|
98
|
+
howTo: howToData,
|
|
99
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
100
|
+
seo: [
|
|
101
|
+
{
|
|
102
|
+
type: 'title',
|
|
103
|
+
text: 'Test Gamepad Online: Rileva Drift e Problemi agli Analogici',
|
|
104
|
+
level: 2,
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'paragraph',
|
|
108
|
+
html: 'Strumento gratuito per testare controller Xbox, PlayStation, Switch e altri. Visualizza zone morte, rileva il drift e testa la vibrazione.',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'title',
|
|
112
|
+
text: "Cos'è il Drift degli Analogici",
|
|
113
|
+
level: 3,
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
type: 'paragraph',
|
|
117
|
+
html: "Il drift è un difetto comune negli analogici dove la levetta registra un movimento senza essere toccata. È causato dall'usura dei potenziometri interni.",
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
type: 'title',
|
|
121
|
+
text: 'Compatibilità Controller',
|
|
122
|
+
level: 3,
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
type: 'paragraph',
|
|
126
|
+
html: 'Compatibile con Xbox One, Xbox Series X/S, PlayStation 4, PlayStation 5 (DualSense), Nintendo Switch Pro e praticamente qualsiasi gamepad USB o Bluetooth moderno.',
|
|
127
|
+
},
|
|
128
|
+
],
|
|
129
|
+
ui: {
|
|
130
|
+
badge: 'Test Input',
|
|
131
|
+
title: 'Test Gamepad e Controller',
|
|
132
|
+
description: 'Testa il tuo controller e rileva eventuali problemi.',
|
|
133
|
+
connectionMessage: 'Collega il tuo dispositivo USB o Bluetooth',
|
|
134
|
+
connectionStatus: 'Connesso',
|
|
135
|
+
axisLabel: 'Assi',
|
|
136
|
+
buttonsLabel: 'Pulsanti',
|
|
137
|
+
vibrationTitle: 'Test Vibrazione',
|
|
138
|
+
vibrationDescription: 'Richiede il supporto del browser e un gamepad compatibile.',
|
|
139
|
+
vibrationLow: 'Bassa (Rumble)',
|
|
140
|
+
vibrationHigh: 'Alta (Buzz)',
|
|
141
|
+
eventHistoryTitle: 'Cronologia Eventi',
|
|
142
|
+
eventHistoryClear: 'Cancella',
|
|
143
|
+
eventWaiting: 'In attesa di eventi...',
|
|
144
|
+
gameStartBtn: 'INIZIA SFIDA',
|
|
145
|
+
gameControllerWarning: 'Collega un gamepad o usa la tastiera',
|
|
146
|
+
gameTimer: 'Timer',
|
|
147
|
+
gameScore: 'Punteggio',
|
|
148
|
+
gameInstruction: 'Premi velocemente',
|
|
149
|
+
gameCompleted: 'Sfida Completata',
|
|
150
|
+
gameNewRecord: 'NUOVO RECORD',
|
|
151
|
+
gameRestartBtn: 'Riprova',
|
|
152
|
+
gameFeedback: 'Sei una leggenda dei pulsanti',
|
|
153
|
+
gameIntroTitlePre: 'Riflessi da ',
|
|
154
|
+
gameIntroHighlight: 'Pro Gamer',
|
|
155
|
+
gameIntroTitlePost: '?',
|
|
156
|
+
gameIntroDescPre: 'Testa la latenza del tuo controller e la tua velocità di reazione. Hai ',
|
|
157
|
+
gameIntroDescSeconds: '30 secondi',
|
|
158
|
+
gameIntroDescPost: ' per dominare i pulsanti.',
|
|
159
|
+
gameShareBtn: 'CONDIVIDI RANGO',
|
|
160
|
+
gameLogConnected: 'Connesso',
|
|
161
|
+
gameLogDisconnected: 'Disconnesso',
|
|
162
|
+
gameLogCleared: 'Log cancellato...',
|
|
163
|
+
gameLogBtnPrefix: 'Pulsante',
|
|
164
|
+
gameVibNotSupported: 'Vibrazione non supportata.',
|
|
165
|
+
gameVibLow: 'Bassa',
|
|
166
|
+
gameVibHigh: 'Alta',
|
|
167
|
+
gameMoveStick: 'MUOVI ANALOGICO',
|
|
168
|
+
gamePress: 'PREMI',
|
|
169
|
+
rankLegendaryName: 'LEGGENDARIO',
|
|
170
|
+
rankLegendaryDesc: 'Le tue dita si muovono alla velocità del suono.',
|
|
171
|
+
rankLegendaryFlavor: 'Il mio controller sta volando!',
|
|
172
|
+
rankProName: 'PRO GAMER',
|
|
173
|
+
rankProDesc: 'Hai riflessi d\'acciaio e un controller ben calibrato.',
|
|
174
|
+
rankProFlavor: 'Il mio controller sta volando!',
|
|
175
|
+
rankGamerName: 'GAMER',
|
|
176
|
+
rankGamerDesc: 'Niente male, ma ti serve più pratica per il gioco competitivo.',
|
|
177
|
+
rankGamerFlavor: 'Quasi preso!',
|
|
178
|
+
rankNoobName: 'NOOB',
|
|
179
|
+
rankNoobDesc: 'Sei sicuro di aver acceso il controller?',
|
|
180
|
+
rankNoobFlavor: 'Il controller ce l\'ha con me!',
|
|
181
|
+
gameShareText: 'Riesci a battermi?',
|
|
182
|
+
gameShareScorePrefix: 'Ho fatto',
|
|
183
|
+
gameShareScoreSuffix: 'punti',
|
|
184
|
+
gameShareTitle: 'Test Gamepad Online',
|
|
185
|
+
},
|
|
186
|
+
};
|