@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
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { TestRatonUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'test-polling-rate-myshi-online';
|
|
6
|
+
const title = 'Онлайн тест частоты опроса мыши';
|
|
7
|
+
const description =
|
|
8
|
+
'Проверьте реальные Гц вашей мыши. Убедитесь, что ваша игровая мышь работает на частоте 1000 Гц или выше с помощью нашего профессионального инструмента.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'Что такое частота опроса (Polling Rate) мыши?',
|
|
13
|
+
answer:
|
|
14
|
+
'Это частота, с которой мышь передает свою позицию компьютеру, измеряемая в Гц. Частота опроса 1000 Гц означает, что мышь отправляет данные каждую 1 миллисекунду, обеспечивая гораздо более плавное движение.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: 'Почему мой тест не достигает 1000 Гц постоянно?',
|
|
18
|
+
answer:
|
|
19
|
+
'Браузер может измерять частоту опроса только тогда, когда мышь находится в движении. Если вы двигаете ее медленно или ваш процессор сильно загружен, измерения могут колебаться. Двигайте мышь быстрыми кругами, чтобы получить реальный максимальный пик.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: 'Лучше ли иметь максимально возможную частоту опроса?',
|
|
23
|
+
answer:
|
|
24
|
+
'В целом да для игр (1000 Гц или более), так как это уменьшает задержку. Однако экстремально высокие частоты (4000 Гц или 8000 Гц) потребляют много ресурсов процессора, и не все игры оптимизированы под них.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'Как частота обновления монитора влияет на мышь?',
|
|
28
|
+
answer:
|
|
29
|
+
'Если у вас монитор 144 Гц или 240 Гц, низкая частота опроса (125 Гц) заставит указатель выглядеть прерывистым. Для высокочастотных мониторов важно использовать как минимум 500 Гц или 1000 Гц.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: 'Подготовьте область тестирования',
|
|
36
|
+
text: 'Поместите курсор внутрь зоны захвата инструмента.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Двигайте мышь быстро',
|
|
40
|
+
text: 'Делайте быстрые, широкие круговые движения. Инструмент рассчитает интервалы между каждым событием перемещения мыши, отправленным оборудованием.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Наблюдайте за графиком стабильности',
|
|
44
|
+
text: 'Проверьте, постоянна ли линия Гц или есть резкие падения, что может указывать на помехи у беспроводных мышей или проблемы с процессором.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'Проанализируйте время отклика',
|
|
48
|
+
text: 'Проверьте среднюю задержку (Delay) в миллисекундах. Хорошая игровая мышь должна поддерживать среднюю задержку около 1 мс.',
|
|
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: 'ru',
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
export const content: ToolLocaleContent<TestRatonUI> = {
|
|
87
|
+
slug,
|
|
88
|
+
title,
|
|
89
|
+
description,
|
|
90
|
+
faqTitle: 'Часто задаваемые вопросы',
|
|
91
|
+
faq: faqData,
|
|
92
|
+
bibliographyTitle: 'Ссылки',
|
|
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
|
+
howTo: howToData,
|
|
104
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
105
|
+
seo: [
|
|
106
|
+
{ type: 'title', text: 'Полное руководство по частоте опроса мыши', level: 2 },
|
|
107
|
+
{
|
|
108
|
+
type: 'paragraph',
|
|
109
|
+
html: 'Когда вы физически перемещаете мышь по коврику, это аналоговое движение должно быть преобразовано в цифровые сигналы, которые понимает ваш компьютер. <strong>Polling Rate</strong> — это частота, с которой мышь «сообщает» свою позицию ПК. Она измеряется в Герцах (Гц).',
|
|
110
|
+
},
|
|
111
|
+
{ type: 'title', text: 'Уровни частоты опроса и их использование', level: 3 },
|
|
112
|
+
{
|
|
113
|
+
type: 'paragraph',
|
|
114
|
+
html: '<strong>125 Гц</strong> — Мышь отправляет отчет каждые 8 миллисекунд. Подходит для офисного использования, но движения кажутся прерывистыми на мониторах 144 Гц. <strong>1000 Гц</strong> — Золотой стандарт гейминга: отчет каждую 1 мс. Плавное движение без видимых задержек. <strong>8000 Гц</strong> — Новейшие технологии (Razer, Logitech). Отчет каждые 0,125 мс, но требуется мощный процессор.',
|
|
115
|
+
},
|
|
116
|
+
{ type: 'title', text: 'Почему частота Гц колеблется?', level: 3 },
|
|
117
|
+
{
|
|
118
|
+
type: 'paragraph',
|
|
119
|
+
html: 'Совершенно нормально. Большинство современных мышей имеют динамическую частоту опроса для экономии энергии. Если вы двигаете мышь медленно, она отправляет меньше отчетов, так как данных для обновления меньше. Только быстрые, непрерывные движения заставляют сенсор достичь реального максимума.',
|
|
120
|
+
},
|
|
121
|
+
{ type: 'title', text: 'Polling Rate против DPI: В чем разница', level: 3 },
|
|
122
|
+
{
|
|
123
|
+
type: 'paragraph',
|
|
124
|
+
html: '<strong>DPI (Dots Per Inch)</strong> — это чувствительность: сколько пикселей проходит курсор на дюйм физического перемещения. <strong>Гц (Polling Rate)</strong> — это частота обновления: насколько плавно и своевременно сообщается об этом перемещении. Оба параметра независимы и дополняют друг друга.',
|
|
125
|
+
},
|
|
126
|
+
],
|
|
127
|
+
ui: {
|
|
128
|
+
badge: 'Тест мыши',
|
|
129
|
+
title: 'Проверка частоты опроса',
|
|
130
|
+
description: 'Двигайте мышь быстрыми кругами для измерения Гц.',
|
|
131
|
+
labelAvg: 'Средний',
|
|
132
|
+
labelPeak: 'Пиковый',
|
|
133
|
+
placeholder: 'Двигайте мышь здесь',
|
|
134
|
+
},
|
|
135
|
+
};
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { TestRatonUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'mus-polling-rate-test-online';
|
|
6
|
+
const title = 'Online Mus Polling Rate Test';
|
|
7
|
+
const description =
|
|
8
|
+
'Kontrollera den verkliga Hz-hastigheten på din mus. Verifiera om din gamingmus fungerar i 1000Hz eller mer med vårt professionella verktyg.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'Vad är Polling Rate på en mus?',
|
|
13
|
+
answer:
|
|
14
|
+
'Det är frekvensen med vilken musen rapporterar sin position till datorn, mätt i Hz. En polling rate på 1000Hz betyder att musen skickar data varje 1 millisekund, vilket ger en mycket mjukare rörelse.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: 'Varför når mitt test inte 1000Hz konstant?',
|
|
18
|
+
answer:
|
|
19
|
+
'Webbläsaren kan bara mäta polling rate när musen rör sig. Om du rör den långsamt eller om din CPU är mycket upptagen kan mätningen fluktuera. Rör musen i snabba cirklar för att få den verkliga maximala toppen.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: 'Är det bättre att ha högsta möjliga polling rate?',
|
|
23
|
+
answer:
|
|
24
|
+
'Generellt sett ja för gaming (1000Hz eller mer), eftersom det minskar lag. Extremt höga hastigheter (4000Hz eller 8000Hz) förbrukar dock mycket CPU-resurser och inte alla spel är optimerade för dem.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'Hur påverkar monitorns uppdateringsfrekvens musen?',
|
|
28
|
+
answer:
|
|
29
|
+
'Om du har en 144Hz- eller 240Hz-monitor kommer en låg polling rate (125Hz) att få pekaren att se ryckig ut. För högfrekventa monitorer är det viktigt att använda minst 500Hz eller 1000Hz.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: 'Förbered testområdet',
|
|
36
|
+
text: 'Placera markören inuti verktygets fångstzon.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Rör musen snabbt',
|
|
40
|
+
text: 'Gör snabba, vida cirkelrörelser. Verktyget kommer att beräkna intervallen mellan varje mousemove-händelse som skickas av hårdvaran.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Observera stabilitetsgrafen',
|
|
44
|
+
text: 'Kontrollera om Hz-linjen är konstant eller har plötsliga fall, vilket kan indikera störningar i trådlösa möss eller CPU-problem.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'Analysera responstiden',
|
|
48
|
+
text: 'Kontrollera den genomsnittliga fördröjningen (Delay) i millisekunder. En bra gamingmus bör ligga nära 1ms i genomsnittlig latens.',
|
|
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: 'sv',
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
export const content: ToolLocaleContent<TestRatonUI> = {
|
|
87
|
+
slug,
|
|
88
|
+
title,
|
|
89
|
+
description,
|
|
90
|
+
faqTitle: 'Vanliga frågor',
|
|
91
|
+
faq: faqData,
|
|
92
|
+
bibliographyTitle: 'Referenser',
|
|
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
|
+
howTo: howToData,
|
|
104
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
105
|
+
seo: [
|
|
106
|
+
{ type: 'title', text: 'Den definitiva guiden till Polling Rate', level: 2 },
|
|
107
|
+
{
|
|
108
|
+
type: 'paragraph',
|
|
109
|
+
html: 'När du fysiskt rör din mus på musmattan måste den analoga rörelsen översättas till digitala signaler som din dator förstår. <strong>Polling Rate</strong> är frekvensen med vilken musen "rapporterar" sin position till datorn. Den mäts i Hertz (Hz).',
|
|
110
|
+
},
|
|
111
|
+
{ type: 'title', text: 'Polling Rate-nivåer och deras användning', level: 3 },
|
|
112
|
+
{
|
|
113
|
+
type: 'paragraph',
|
|
114
|
+
html: '<strong>125 Hz</strong> — Musen rapporterar var 8:e millisekund. Okej för kontorsbruk men ser ryckigt ut på 144Hz-monitorer. <strong>1000 Hz</strong> — Den gyllene standarden för gaming: rapporterar varje millisekund (1 ms). Mjuk rörelse utan märkbar fördröjning. <strong>8000 Hz</strong> — Banbrytande teknologi (Razer, Logitech). Rapporterar var 0,125 ms men kräver en kraftfull CPU.',
|
|
115
|
+
},
|
|
116
|
+
{ type: 'title', text: 'Varför fluktuerar mina Hz?', level: 3 },
|
|
117
|
+
{
|
|
118
|
+
type: 'paragraph',
|
|
119
|
+
html: 'Helt normalt. De flesta moderna möss har en dynamisk polling rate för att spara ström. Om du rör musen långsamt skickar den färre rapporter eftersom det finns mindre ny data. Endast snabba, kontinuerliga rörelser pressar sensorn till dess verkliga maximala topp.',
|
|
120
|
+
},
|
|
121
|
+
{ type: 'title', text: 'Polling Rate vs DPI: Den stora förvirringen', level: 3 },
|
|
122
|
+
{
|
|
123
|
+
type: 'paragraph',
|
|
124
|
+
html: '<strong>DPI (Dots Per Inch)</strong> är känslighet: hur många pixlar markören rör sig per tum av fysisk rörelse. <strong>Hz (Polling Rate)</strong> är uppdateringsfrekvens: hur mjukt och snabbt den rörelsen rapporteras. Båda parametrarna är oberoende och kompletterar varandra.',
|
|
125
|
+
},
|
|
126
|
+
],
|
|
127
|
+
ui: {
|
|
128
|
+
badge: 'Mustest',
|
|
129
|
+
title: 'Polling Rate Checker',
|
|
130
|
+
description: 'Rör musen i snabba cirklar för att mäta Hz.',
|
|
131
|
+
labelAvg: 'Genomsnitt',
|
|
132
|
+
labelPeak: 'Topp',
|
|
133
|
+
placeholder: 'Rör musen här',
|
|
134
|
+
},
|
|
135
|
+
};
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { TestRatonUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'fare-polling-hizi-testi-online';
|
|
6
|
+
const title = 'Çevrimiçi Fare Polling Rate Testi';
|
|
7
|
+
const description =
|
|
8
|
+
'Farenizin gerçek Hz değerini kontrol edin. Profesyonel aracımızla oyuncu farenizin 1000Hz veya daha fazla çalışıp çalışmadığını doğrulayın.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'Farenin Polling Rate\'i (Bildirim Hızı) nedir?',
|
|
13
|
+
answer:
|
|
14
|
+
'Farenin konumunu bilgisayara bildirme sıklığıdır ve Hz cinsinden ölçülür. 1000Hz\'lik bir bildirim hızı, farenin her 1 milisaniyede bir veri gönderdiği anlamına gelir ve çok daha akıcı bir hareket sağlar.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: 'Testim neden sürekli 1000Hz\'e ulaşmıyor?',
|
|
18
|
+
answer:
|
|
19
|
+
'Tarayıcı, bildirim hızını yalnızca fare hareket halindeyken ölçebilir. Yavaş hareket ettirirseniz veya CPU\'nuz çok meşgulse ölçüm dalgalanabilir. Gerçek maksimum zirveyi elde etmek için fareyi hızlı daireler çizerek hareket ettirin.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: 'Mümkün olan en yüksek bildirim hızına sahip olmak daha mı iyidir?',
|
|
23
|
+
answer:
|
|
24
|
+
'Gecikmeyi azalttığı için oyun oynamak için (1000Hz veya daha fazla) genellikle evet. Ancak 4000Hz veya 8000Hz gibi aşırı yüksek hızlar çok fazla CPU kaynağı tüketir ve tüm oyunlar bunlar için optimize edilmemiştir.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'Monitör yenileme hızı fareyi nasıl etkiler?',
|
|
28
|
+
answer:
|
|
29
|
+
'144Hz veya 240Hz monitörünüz varsa, düşük bir bildirim hızı (125Hz) imlecin kesik kesik görünmesine neden olur. Yüksek frekanslı monitörler için en az 500Hz veya 1000Hz kullanılması esastır.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: 'Test alanını hazırlayın',
|
|
36
|
+
text: 'İmleci aracın yakalama bölgesinin içine yerleştirin.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Fareyi hızlıca hareket ettirin',
|
|
40
|
+
text: 'Hızlı ve geniş dairesel hareketler yapın. Araç, donanım tarafından gönderilen her mousemove olayı arasındaki aralıkları hesaplayacaktır.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'İstikrar grafiğini gözlemleyin',
|
|
44
|
+
text: 'Hz çizgisinin sabit olup olmadığını veya ani düşüşler olup olmadığını kontrol edin; bu durum kablosuz farelerde paraziti veya CPU sorunlarını gösterebilir.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'Tepki süresini analiz edin',
|
|
48
|
+
text: 'Milisaniye cinsinden ortalama gecikmeyi (Delay) kontrol edin. İyi bir oyuncu faresi, ortalama gecikme süresini 1ms\'ye yakın tutmalıdır.',
|
|
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<TestRatonUI> = {
|
|
87
|
+
slug,
|
|
88
|
+
title,
|
|
89
|
+
description,
|
|
90
|
+
faqTitle: 'Sıkça Sorulan Sorular',
|
|
91
|
+
faq: faqData,
|
|
92
|
+
bibliographyTitle: 'Referanslar',
|
|
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
|
+
howTo: howToData,
|
|
104
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
105
|
+
seo: [
|
|
106
|
+
{ type: 'title', text: 'Polling Rate Hakkında Kesin Kılavuz', level: 2 },
|
|
107
|
+
{
|
|
108
|
+
type: 'paragraph',
|
|
109
|
+
html: 'Farenizi mousepad üzerinde fiziksel olarak hareket ettirdiğinizde, bu analog hareket bilgisayarınızın anlayacağı dijital sinyallere dönüştürülmelidir. <strong>Polling Rate</strong>, farenin konumunu bilgisayara "bildirme" sıklığıdır. Hertz (Hz) cinsinden ölçülür.',
|
|
110
|
+
},
|
|
111
|
+
{ type: 'title', text: 'Polling Rate Seviyeleri ve Kullanımları', level: 3 },
|
|
112
|
+
{
|
|
113
|
+
type: 'paragraph',
|
|
114
|
+
html: '<strong>125 Hz</strong> — Fare her 8 milisaniyede bir bildirim yapar. Ofis kullanımı için uygundur ancak 144Hz monitörlerde kesik kesik hissettirir. <strong>1000 Hz</strong> — Oyun oynamanın altın standardı: her 1 ms\'de bir bildirim yapar. Algılanabilir bir gecikme olmaksızın akıcı hareket. <strong>8000 Hz</strong> — En son teknoloji (Razer, Logitech). Her 0,125 ms\'de bir bildirim yapar ancak güçlü bir CPU gerektirir.',
|
|
115
|
+
},
|
|
116
|
+
{ type: 'title', text: 'Hz Neden Dalgalanıyor?', level: 3 },
|
|
117
|
+
{
|
|
118
|
+
type: 'paragraph',
|
|
119
|
+
html: 'Tamamen normal. Çoğu modern fare, güç tasarrufu sağlamak için dinamik bir bildirim hızına sahiptir. Fareyi yavaş hareket ettirirseniz, daha az yeni veri olduğu için daha az bildirim gönderir. Yalnızca hızlı ve sürekli hareketler sensörü gerçek maksimum zirvesine taşır.',
|
|
120
|
+
},
|
|
121
|
+
{ type: 'title', text: 'Polling Rate ve DPI: Büyük Karışıklık', level: 3 },
|
|
122
|
+
{
|
|
123
|
+
type: 'paragraph',
|
|
124
|
+
html: '<strong>DPI (Eman Başına Nokta)</strong> hassasiyettir: imlecin bir inçlik fiziksel hareket başına kaç piksel hareket ettiğidir. <strong>Hz (Polling Rate)</strong> ise güncelleme sıklığıdır: bu hareketin ne kadar akıcı ve zamanında bildirildiğidir. Her iki parametre de birbirinden bağımsızdır ve birbirini tamamlar.',
|
|
125
|
+
},
|
|
126
|
+
],
|
|
127
|
+
ui: {
|
|
128
|
+
badge: 'Fare Testi',
|
|
129
|
+
title: 'Polling Rate Kontrolü',
|
|
130
|
+
description: 'Hz değerini ölçmek için fareyi hızlı daireler çizerek hareket ettirin.',
|
|
131
|
+
labelAvg: 'Ortalama',
|
|
132
|
+
labelPeak: 'Zirve',
|
|
133
|
+
placeholder: 'Fareyi burada hareket ettirin',
|
|
134
|
+
},
|
|
135
|
+
};
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { TestRatonUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'mouse-polling-rate-test';
|
|
6
|
+
const title = '在线鼠标回报率测试';
|
|
7
|
+
const description =
|
|
8
|
+
'检查鼠标的真实 Hz。使用我们的专业工具验证您的游戏鼠标是否在 1000Hz 或更高频率下工作。';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: '什么是鼠标回报率 (Polling Rate)?',
|
|
13
|
+
answer:
|
|
14
|
+
'它是鼠标向电脑报告其位置的频率,以 Hz 为单位衡量。1000Hz 的回报率意味着鼠标每 1 毫秒发送一次数据,从而提供更平滑的移动。',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: '为什么我的测试不能持续达到 1000Hz?',
|
|
18
|
+
answer:
|
|
19
|
+
'浏览器只有在鼠标移动时才能测量回报率。如果您移动缓慢或 CPU 非常繁忙,测量值可能会波动。请快速转圈移动鼠标以获得真实的最高峰值。',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: '回报率是否越高越好?',
|
|
23
|
+
answer:
|
|
24
|
+
'对于游戏(1000Hz 或更高)来说,通常是的,因为它可以减少延迟。然而,极高的速率(4000Hz 或 8000Hz)会消耗大量 CPU 资源,并非所有游戏都针对这些速率进行了优化。',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: '显示器刷新率如何影响鼠标?',
|
|
28
|
+
answer:
|
|
29
|
+
'如果您使用 144Hz 或 240Hz 显示器,较低的回报率(125Hz)会使指针看起来有顿挫感。对于高刷新率显示器,至少使用 500Hz 或 1000Hz 是至关重要的。',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: '准备测试区域',
|
|
36
|
+
text: '将光标置于工具的采集区域内。',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: '快速移动鼠标',
|
|
40
|
+
text: '进行快速、大范围的圆周运动。该工具将计算硬件发送的每个 mousemove 事件之间的时间间隔。',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: '观察稳定性图表',
|
|
44
|
+
text: '检查 Hz 曲线是否平稳或是否存在突然下降,这可能表明无线鼠标受到干扰或 CPU 存在问题。',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: '分析响应时间',
|
|
48
|
+
text: '检查以毫秒为单位的平均延迟(Delay)。一只好的游戏鼠标平均延迟应保持在 1ms 左右。',
|
|
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<TestRatonUI> = {
|
|
87
|
+
slug,
|
|
88
|
+
title,
|
|
89
|
+
description,
|
|
90
|
+
faqTitle: '常见问题',
|
|
91
|
+
faq: faqData,
|
|
92
|
+
bibliographyTitle: '参考资料',
|
|
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
|
+
howTo: howToData,
|
|
104
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
105
|
+
seo: [
|
|
106
|
+
{ type: 'title', text: '鼠标回报率权威指南', level: 2 },
|
|
107
|
+
{
|
|
108
|
+
type: 'paragraph',
|
|
109
|
+
html: '当您在鼠标垫上物理移动鼠标时,这种模拟运动必须转换为电脑理解的数字信号。<strong>回报率 (Polling Rate)</strong> 是鼠标向电脑“报告”其位置的频率。它以赫兹 (Hz) 为单位。',
|
|
110
|
+
},
|
|
111
|
+
{ type: 'title', text: '回报率等级及其用途', level: 3 },
|
|
112
|
+
{
|
|
113
|
+
type: 'paragraph',
|
|
114
|
+
html: '<strong>125 Hz</strong> — 鼠标每 8 毫秒报告一次。适用于办公,但在 144Hz 显示器上会感到卡顿。 <strong>1000 Hz</strong> — 游戏黄金标准:每 1 毫秒报告一次。平滑移动,无感知延迟。 <strong>8000 Hz</strong> — 尖端技术(Razer, Logitech)。每 0.125 毫秒报告一次,但需要强劲的 CPU。',
|
|
115
|
+
},
|
|
116
|
+
{ type: 'title', text: '为什么我的 Hz 值会波动?', level: 3 },
|
|
117
|
+
{
|
|
118
|
+
type: 'paragraph',
|
|
119
|
+
html: '完全正常。大多数现代鼠标都有动态回报率以节省电量。如果您移动鼠标缓慢,它发送的报告就会减少,因为新数据较少。只有快速、持续的移动才能使传感器达到其真实的最高峰值。',
|
|
120
|
+
},
|
|
121
|
+
{ type: 'title', text: '回报率 vs DPI:核心区别', level: 3 },
|
|
122
|
+
{
|
|
123
|
+
type: 'paragraph',
|
|
124
|
+
html: '<strong>DPI (Dots Per Inch)</strong> 是灵敏度:即鼠标每移动一英寸,光标移动多少像素。 <strong>Hz (回报率)</strong> 是更新频率:即该移动报告的平滑度和及时性。这两个参数是相互独立且互补的。',
|
|
125
|
+
},
|
|
126
|
+
],
|
|
127
|
+
ui: {
|
|
128
|
+
badge: '鼠标测试',
|
|
129
|
+
title: '回报率检测器',
|
|
130
|
+
description: '快速圆周移动鼠标以测量 Hz。',
|
|
131
|
+
labelAvg: '平均值',
|
|
132
|
+
labelPeak: '峰值',
|
|
133
|
+
placeholder: '在此移动鼠标',
|
|
134
|
+
},
|
|
135
|
+
};
|
|
@@ -7,10 +7,6 @@ import TestRatonBibliography from './bibliography.astro';
|
|
|
7
7
|
import type { TestRatonUI } from './ui';
|
|
8
8
|
export type TestRatonLocaleContent = ToolLocaleContent<TestRatonUI>;
|
|
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 testRaton: HardwareToolEntry<TestRatonUI> = {
|
|
15
11
|
id: 'test-raton',
|
|
16
12
|
icons: {
|
|
@@ -18,9 +14,21 @@ export const testRaton: HardwareToolEntry<TestRatonUI> = {
|
|
|
18
14
|
fg: 'mdi:mouse',
|
|
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
|
|