@jjlmoya/utils-hardware 1.3.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/package.json +2 -1
  2. package/src/tests/faq_count.test.ts +1 -1
  3. package/src/tests/i18n_coverage.test.ts +36 -0
  4. package/src/tests/locale_completeness.test.ts +1 -1
  5. package/src/tests/slug_uniqueness.test.ts +81 -0
  6. package/src/tests/title_quality.test.ts +1 -1
  7. package/src/tool/batteryHealthEstimator/i18n/de.ts +158 -0
  8. package/src/tool/batteryHealthEstimator/i18n/id.ts +158 -0
  9. package/src/tool/batteryHealthEstimator/i18n/it.ts +158 -0
  10. package/src/tool/batteryHealthEstimator/i18n/ja.ts +158 -0
  11. package/src/tool/batteryHealthEstimator/i18n/ko.ts +158 -0
  12. package/src/tool/batteryHealthEstimator/i18n/nl.ts +158 -0
  13. package/src/tool/batteryHealthEstimator/i18n/pl.ts +158 -0
  14. package/src/tool/batteryHealthEstimator/i18n/pt.ts +158 -0
  15. package/src/tool/batteryHealthEstimator/i18n/ru.ts +158 -0
  16. package/src/tool/batteryHealthEstimator/i18n/sv.ts +158 -0
  17. package/src/tool/batteryHealthEstimator/i18n/tr.ts +158 -0
  18. package/src/tool/batteryHealthEstimator/i18n/zh.ts +158 -0
  19. package/src/tool/batteryHealthEstimator/index.ts +15 -7
  20. package/src/tool/deadPixelTest/i18n/de.ts +218 -0
  21. package/src/tool/deadPixelTest/i18n/id.ts +218 -0
  22. package/src/tool/deadPixelTest/i18n/it.ts +218 -0
  23. package/src/tool/deadPixelTest/i18n/ja.ts +218 -0
  24. package/src/tool/deadPixelTest/i18n/ko.ts +218 -0
  25. package/src/tool/deadPixelTest/i18n/nl.ts +218 -0
  26. package/src/tool/deadPixelTest/i18n/pl.ts +218 -0
  27. package/src/tool/deadPixelTest/i18n/pt.ts +218 -0
  28. package/src/tool/deadPixelTest/i18n/ru.ts +218 -0
  29. package/src/tool/deadPixelTest/i18n/sv.ts +218 -0
  30. package/src/tool/deadPixelTest/i18n/tr.ts +218 -0
  31. package/src/tool/deadPixelTest/i18n/zh.ts +217 -0
  32. package/src/tool/deadPixelTest/index.ts +15 -7
  33. package/src/tool/gamepadTest/i18n/de.ts +186 -0
  34. package/src/tool/gamepadTest/i18n/id.ts +186 -0
  35. package/src/tool/gamepadTest/i18n/it.ts +186 -0
  36. package/src/tool/gamepadTest/i18n/ja.ts +186 -0
  37. package/src/tool/gamepadTest/i18n/ko.ts +186 -0
  38. package/src/tool/gamepadTest/i18n/nl.ts +186 -0
  39. package/src/tool/gamepadTest/i18n/pl.ts +186 -0
  40. package/src/tool/gamepadTest/i18n/pt.ts +186 -0
  41. package/src/tool/gamepadTest/i18n/ru.ts +186 -0
  42. package/src/tool/gamepadTest/i18n/sv.ts +186 -0
  43. package/src/tool/gamepadTest/i18n/tr.ts +186 -0
  44. package/src/tool/gamepadTest/i18n/zh.ts +186 -0
  45. package/src/tool/gamepadTest/index.ts +15 -7
  46. package/src/tool/gamepadVibrationTester/i18n/de.ts +155 -0
  47. package/src/tool/gamepadVibrationTester/i18n/id.ts +155 -0
  48. package/src/tool/gamepadVibrationTester/i18n/it.ts +155 -0
  49. package/src/tool/gamepadVibrationTester/i18n/ja.ts +155 -0
  50. package/src/tool/gamepadVibrationTester/i18n/ko.ts +155 -0
  51. package/src/tool/gamepadVibrationTester/i18n/nl.ts +155 -0
  52. package/src/tool/gamepadVibrationTester/i18n/pl.ts +155 -0
  53. package/src/tool/gamepadVibrationTester/i18n/pt.ts +155 -0
  54. package/src/tool/gamepadVibrationTester/i18n/ru.ts +155 -0
  55. package/src/tool/gamepadVibrationTester/i18n/sv.ts +155 -0
  56. package/src/tool/gamepadVibrationTester/i18n/tr.ts +155 -0
  57. package/src/tool/gamepadVibrationTester/i18n/zh.ts +155 -0
  58. package/src/tool/gamepadVibrationTester/index.ts +15 -7
  59. package/src/tool/keyboardTest/i18n/de.ts +146 -0
  60. package/src/tool/keyboardTest/i18n/id.ts +146 -0
  61. package/src/tool/keyboardTest/i18n/it.ts +146 -0
  62. package/src/tool/keyboardTest/i18n/ja.ts +146 -0
  63. package/src/tool/keyboardTest/i18n/ko.ts +146 -0
  64. package/src/tool/keyboardTest/i18n/nl.ts +146 -0
  65. package/src/tool/keyboardTest/i18n/pl.ts +146 -0
  66. package/src/tool/keyboardTest/i18n/pt.ts +146 -0
  67. package/src/tool/keyboardTest/i18n/ru.ts +146 -0
  68. package/src/tool/keyboardTest/i18n/sv.ts +146 -0
  69. package/src/tool/keyboardTest/i18n/tr.ts +146 -0
  70. package/src/tool/keyboardTest/i18n/zh.ts +146 -0
  71. package/src/tool/keyboardTest/index.ts +15 -7
  72. package/src/tool/mousePollingTest/i18n/de.ts +135 -0
  73. package/src/tool/mousePollingTest/i18n/id.ts +135 -0
  74. package/src/tool/mousePollingTest/i18n/it.ts +135 -0
  75. package/src/tool/mousePollingTest/i18n/ja.ts +135 -0
  76. package/src/tool/mousePollingTest/i18n/ko.ts +135 -0
  77. package/src/tool/mousePollingTest/i18n/nl.ts +135 -0
  78. package/src/tool/mousePollingTest/i18n/pl.ts +135 -0
  79. package/src/tool/mousePollingTest/i18n/pt.ts +135 -0
  80. package/src/tool/mousePollingTest/i18n/ru.ts +135 -0
  81. package/src/tool/mousePollingTest/i18n/sv.ts +135 -0
  82. package/src/tool/mousePollingTest/i18n/tr.ts +135 -0
  83. package/src/tool/mousePollingTest/i18n/zh.ts +135 -0
  84. package/src/tool/mousePollingTest/index.ts +15 -7
  85. package/src/tool/toneGenerator/i18n/de.ts +146 -0
  86. package/src/tool/toneGenerator/i18n/id.ts +146 -0
  87. package/src/tool/toneGenerator/i18n/it.ts +146 -0
  88. package/src/tool/toneGenerator/i18n/ja.ts +146 -0
  89. package/src/tool/toneGenerator/i18n/ko.ts +146 -0
  90. package/src/tool/toneGenerator/i18n/nl.ts +146 -0
  91. package/src/tool/toneGenerator/i18n/pl.ts +146 -0
  92. package/src/tool/toneGenerator/i18n/pt.ts +146 -0
  93. package/src/tool/toneGenerator/i18n/ru.ts +146 -0
  94. package/src/tool/toneGenerator/i18n/sv.ts +146 -0
  95. package/src/tool/toneGenerator/i18n/tr.ts +146 -0
  96. package/src/tool/toneGenerator/i18n/zh.ts +146 -0
  97. package/src/tool/toneGenerator/index.ts +15 -7
  98. package/src/types.ts +1 -1
@@ -0,0 +1,146 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { ToneGeneratorUI } from '../ui';
4
+
5
+ const slug = 'gerador-tons-frequencia-online';
6
+ const title = 'Gerador de Tons e Frequências Online';
7
+ const description =
8
+ 'Gere ondas sinusoidais, quadradas, triangulares e dente de serra. Teste as suas colunas, auscultadores ou subwoofer com frequências de 20Hz a 20kHz.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Para que serve um gerador de frequência?',
13
+ answer:
14
+ 'É utilizado para testar a resposta de frequência de colunas e auscultadores, detetar ressonâncias indesejadas em móveis, encontrar falhas na sua audição ou até ajudar a acalmar o tinido através da terapia notch.',
15
+ },
16
+ {
17
+ question: 'O que é uma onda sinusoidal versus uma onda quadrada?',
18
+ answer:
19
+ 'Uma onda sinusoidal é um tom puro sem harmónicas (suave e redonda). Uma onda quadrada é rica em harmónicas ímpares e soa muito mais agressiva ou digital. A onda triangular situa-se no meio, sendo útil para síntese de áudio.',
20
+ },
21
+ {
22
+ question: 'Posso danificar as minhas colunas com esta ferramenta?',
23
+ answer:
24
+ 'Sim, se usar volumes muito altos em frequências extremas (especialmente graves abaixo de 30Hz ou agudos acima de 15kHz). Comece sempre com um volume de sistema baixo e aumente gradualmente.',
25
+ },
26
+ {
27
+ question: 'Qual é o alcance da audição humana?',
28
+ answer:
29
+ 'Teoricamente de 20Hz a 20.000Hz (20kHz). No entanto, com a idade é normal perder a capacidade de ouvir acima de 15kHz. Este teste pode ajudar a verificar o seu limite superior pessoal.',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: 'Selecionar o tipo de forma de onda',
36
+ text: 'Escolha entre Sinusoidal (pura), Quadrada, Triangular ou Dente de serra, dependendo do tipo de teste que deseja realizar.',
37
+ },
38
+ {
39
+ name: 'Ajustar a frequência',
40
+ text: 'Mova o cursor para navegar no espetro audível. Use os atalhos de 60Hz, 440Hz ou 1kHz para aceder rapidamente a frequências de referência.',
41
+ },
42
+ {
43
+ name: 'Controlar o volume',
44
+ text: 'Certifique-se de que o volume das suas colunas está baixo antes de premir Reproduzir. Pode ajustar o ganho diretamente na ferramenta.',
45
+ },
46
+ {
47
+ name: 'Analisar a resposta',
48
+ text: 'Preste atenção a possíveis distorções ou momentos em que o som desaparece. Isto indicará os limites físicos do seu hardware de áudio.',
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: 'pt',
84
+ };
85
+
86
+ export const content: ToolLocaleContent<ToneGeneratorUI> = {
87
+ slug,
88
+ title,
89
+ description,
90
+ faqTitle: 'Perguntas Frequentes',
91
+ faq: faqData,
92
+ bibliographyTitle: 'Referências',
93
+ bibliography: [
94
+ {
95
+ name: 'MDN Web Docs — Web Audio API',
96
+ url: 'https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API',
97
+ },
98
+ {
99
+ name: 'ISO 226:2023 — Equal-loudness contours',
100
+ url: 'https://www.iso.org/standard/83117.html',
101
+ },
102
+ ],
103
+ howTo: howToData,
104
+ schemas: [faqSchema, howToSchema, appSchema],
105
+ seo: [
106
+ { type: 'title', text: 'Tudo Sobre Frequências e Ondas Sonoras', level: 2 },
107
+ {
108
+ type: 'paragraph',
109
+ html: 'O som é pura física em movimento. Esta ferramenta permite manipular ondas sonoras em tempo real, desde os graves mais profundos que pode sentir no peito até aos agudos ultrassónicos que apenas os animais conseguem detetar.',
110
+ },
111
+ { type: 'title', text: 'Alcance da Audição Humana e Presbiacusia', level: 3 },
112
+ {
113
+ type: 'paragraph',
114
+ html: 'Um ouvido humano saudável deteta sons entre <strong>20Hz e 20kHz</strong>. Com a idade, o limite superior desce: a maioria dos adultos com mais de 50 anos não consegue ouvir acima de 12kHz. O tom de 17,4kHz, conhecido como "mosquito tone", é um teste clássico que normalmente apenas adolescentes conseguem passar.',
115
+ },
116
+ { type: 'title', text: 'Tipos de Onda e Seus Usos', level: 3 },
117
+ {
118
+ type: 'paragraph',
119
+ html: '<strong>Sinusoidal:</strong> tom puro sem harmónicas, usado em testes de audição médicos e calibração de instrumentos. <strong>Quadrada:</strong> rica em harmónicas ímpares, soa como consolas retro de 8 bits. <strong>Dente de serra:</strong> contém todas as harmónicas, a base dos sintetizadores de música eletrónica. <strong>Triangular:</strong> ponto médio entre sinusoidal e quadrada — mais suave que a quadrada, mas com mais conteúdo harmónico que a sinusoidal.',
120
+ },
121
+ { type: 'title', text: 'Teste de Colunas e Limpeza por Vibração', level: 3 },
122
+ {
123
+ type: 'paragraph',
124
+ html: 'Uma onda de baixa frequência (normalmente <strong>165Hz</strong>) no volume máximo com forma quadrada ou dente de serra força o diafragma da coluna a vibrar violentamente, expelindo mecanicamente gotas de água presas na grelha. Não reproduza frequências extremamente altas no volume máximo por longos períodos: mesmo que não as consiga ouvir, a energia pode danificar os tweeters do seu equipamento.',
125
+ },
126
+ ],
127
+ ui: {
128
+ badge: 'Gerador de Áudio',
129
+ title: 'Gerador de Tons',
130
+ description: 'Gere frequências puras para testes de áudio.',
131
+ freqLabel: 'Frequência',
132
+ preset60: '60Hz',
133
+ preset440: '440Hz',
134
+ preset1k: '1kHz',
135
+ rangeMin: '20Hz (Sub-bass)',
136
+ rangeMax: '20kHz (Ultrassom)',
137
+ waveLabel: 'Forma de onda',
138
+ waveSine: 'Sinusoidal',
139
+ waveSquare: 'Quadrada',
140
+ waveSawtooth: 'Dente de serra',
141
+ waveTriangle: 'Triangular',
142
+ volLabel: 'Volume',
143
+ btnPlay: 'REPRODUZIR TOM',
144
+ btnStop: 'STOP',
145
+ },
146
+ };
@@ -0,0 +1,146 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { ToneGeneratorUI } from '../ui';
4
+
5
+ const slug = 'onlayn-generator-tonov-i-chastot';
6
+ const title = 'Онлайн генератор тонов и частот';
7
+ const description =
8
+ 'Генерируйте синусоидальные, прямоугольные, треугольные и пилообразные волны. Тестируйте свои динамики, наушники или сабвуфер на частотах от 20 Гц до 20 кГц.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Для чего используется генератор частот?',
13
+ answer:
14
+ 'Он используется для тестирования частотной характеристики динамиков и наушников, обнаружения нежелательных резонансов в мебели, поиска пробелов в вашем слуховом диапазоне или даже для помощи в успокоении тиннитуса с помощью нотч-терапии.',
15
+ },
16
+ {
17
+ question: 'В чем разница между синусоидальной и прямоугольной волной?',
18
+ answer:
19
+ 'Синусоидальная волна — это чистый тон без гармоник (плавный и округлый). Прямоугольная волна богата нечетными гармониками и звучит гораздо более агрессивно или «цифрово». Треугольная волна находится посередине и полезна для аудиосинтеза.',
20
+ },
21
+ {
22
+ question: 'Могу ли я повредить свои динамики этим инструментом?',
23
+ answer:
24
+ 'Да, если вы используете очень высокую громкость на экстремальных частотах (особенно басы ниже 30 Гц или высокие частоты выше 15 кГц). Всегда начинайте с низкой громкости системы и увеличивайте ее постепенно.',
25
+ },
26
+ {
27
+ question: 'Каков диапазон человеческого слуха?',
28
+ answer:
29
+ 'Теоретически от 20 Гц до 20 000 Гц (20 кГц). Однако с возрастом потеря способности слышать звуки выше 15 кГц является нормальной. Этот тест поможет вам проверить ваш личный верхний предел.',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: 'Выберите тип формы волны',
36
+ text: 'Выберите между синусоидальной (чистой), прямоугольной, треугольной или пилообразной в зависимости от типа теста, который вы хотите провести.',
37
+ },
38
+ {
39
+ name: 'Отрегулируйте частоту',
40
+ text: 'Перемещайте ползунок для навигации по слышимому спектру. Используйте ярлыки 60 Гц, 440 Гц или 1 кГц для быстрого доступа к эталонным частотам.',
41
+ },
42
+ {
43
+ name: 'Управляйте громкостью',
44
+ text: 'Перед нажатием кнопки Play убедитесь, что громкость ваших динамиков низкая. Вы можете регулировать усиление прямо в инструменте.',
45
+ },
46
+ {
47
+ name: 'Проанализируйте ответ',
48
+ text: 'Прислушивайтесь к возможным искажениям или моментам исчезновения звука. Это укажет на физические пределы вашего аудиооборудования.',
49
+ },
50
+ ];
51
+
52
+ const faqSchema: WithContext<FAQPage> = {
53
+ '@context': 'https://schema.org',
54
+ '@type': 'FAQPage',
55
+ mainEntity: faqData.map((item) => ({
56
+ '@type': 'Question',
57
+ name: item.question,
58
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
59
+ })),
60
+ };
61
+
62
+ const howToSchema: WithContext<HowTo> = {
63
+ '@context': 'https://schema.org',
64
+ '@type': 'HowTo',
65
+ name: title,
66
+ description,
67
+ step: howToData.map((step, i) => ({
68
+ '@type': 'HowToStep',
69
+ position: i + 1,
70
+ name: step.name,
71
+ text: step.text,
72
+ })),
73
+ };
74
+
75
+ const appSchema: WithContext<SoftwareApplication> = {
76
+ '@context': 'https://schema.org',
77
+ '@type': 'SoftwareApplication',
78
+ name: title,
79
+ description,
80
+ applicationCategory: 'UtilityApplication',
81
+ operatingSystem: 'All',
82
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
83
+ inLanguage: 'ru',
84
+ };
85
+
86
+ export const content: ToolLocaleContent<ToneGeneratorUI> = {
87
+ slug,
88
+ title,
89
+ description,
90
+ faqTitle: 'Часто задаваемые вопросы',
91
+ faq: faqData,
92
+ bibliographyTitle: 'Ссылки',
93
+ bibliography: [
94
+ {
95
+ name: 'MDN Web Docs — Web Audio API',
96
+ url: 'https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API',
97
+ },
98
+ {
99
+ name: 'ISO 226:2023 — Equal-loudness contours',
100
+ url: 'https://www.iso.org/standard/83117.html',
101
+ },
102
+ ],
103
+ howTo: howToData,
104
+ schemas: [faqSchema, howToSchema, appSchema],
105
+ seo: [
106
+ { type: 'title', text: 'Все о частотах и звуковых волнах', level: 2 },
107
+ {
108
+ type: 'paragraph',
109
+ html: 'Звук — это чистая физика в движении. Этот инструмент позволяет вам манипулировать звуковыми волнами в режиме реального времени: от самых глубоких басов, которые вы чувствуете грудью, до ультразвуковых высот, которые воспринимают только животные.',
110
+ },
111
+ { type: 'title', text: 'Диапазон человеческого слуха и пресбиакузис', level: 3 },
112
+ {
113
+ type: 'paragraph',
114
+ html: 'Здоровое человеческое ухо воспринимает звуки в диапазоне от <strong>20 Гц до 20 кГц</strong>. С возрастом верхний предел снижается: большинство взрослых старше 50 лет не слышат звуки выше 12 кГц. Тон 17,4 кГц, известный как «комариный писк», — это классический тест, который обычно проходят только подростки.',
115
+ },
116
+ { type: 'title', text: 'Типы волн и их использование', level: 3 },
117
+ {
118
+ type: 'paragraph',
119
+ html: '<strong>Синусоидальная:</strong> чистый тон без гармоник, используется в медицинских тестах слуха и калибровке инструментов. <strong>Прямоугольная:</strong> богата нечетными гармониками, звучит как ретро 8-битные консоли. <strong>Пилообразная:</strong> содержит все гармоники, основа синтезаторов электронной музыки. <strong>Треугольная:</strong> промежуточное звено между синусоидой и прямоугольником — мягче прямоугольной, но с большим гармоническим содержанием, чем синусоида.',
120
+ },
121
+ { type: 'title', text: 'Тестирование динамиков и виброочистка', level: 3 },
122
+ {
123
+ type: 'paragraph',
124
+ html: 'Низкочастотная волна (обычно <strong>165 Гц</strong>) на максимальной громкости с прямоугольной или пилообразной формой заставляет диффузор динамика сильно вибрировать, механически выталкивая капли воды, застрявшие в сетке. Не воспроизводите экстремально высокие частоты на максимальной громкости в течение длительного времени: даже если вы их не слышите, энергия может повредить твитеры вашего оборудования.',
125
+ },
126
+ ],
127
+ ui: {
128
+ badge: 'Аудиогенератор',
129
+ title: 'Генератор тонов',
130
+ description: 'Генерируйте чистые частоты для аудиотестов.',
131
+ freqLabel: 'Частота',
132
+ preset60: '60 Гц',
133
+ preset440: '440 Гц',
134
+ preset1k: '1 кГц',
135
+ rangeMin: '20 Гц (Саб-бас)',
136
+ rangeMax: '20 кГц (Ультразвук)',
137
+ waveLabel: 'Форма волны',
138
+ waveSine: 'Синус',
139
+ waveSquare: 'Квадрат',
140
+ waveSawtooth: 'Пила',
141
+ waveTriangle: 'Треугольник',
142
+ volLabel: 'Громкость',
143
+ btnPlay: 'ИГРАТЬ ТОН',
144
+ btnStop: 'СТОП',
145
+ },
146
+ };
@@ -0,0 +1,146 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { ToneGeneratorUI } from '../ui';
4
+
5
+ const slug = 'ton-och-frekvensgenerator-online';
6
+ const title = 'Online ton och frekvensgenerator';
7
+ const description =
8
+ 'Generera sinus-, fyrkants-, triangels- och sågtandsvågor. Testa dina högtalare, hörlurar eller subwoofer med frekvenser från 20Hz till 20kHz.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Vad används en frekvensgenerator till?',
13
+ answer:
14
+ 'Den används för att testa frekvensåtergivningen hos högtalare och hörlurar, upptäcka oönskade resonanser i möbler, hitta luckor i ditt hörselområde eller till och med hjälpa till att lindra tinnitus genom notch-terapi.',
15
+ },
16
+ {
17
+ question: 'Vad är skillnaden mellan en sinusvåg och en fyrkantsvåg?',
18
+ answer:
19
+ 'En sinusvåg är en ren ton utan övertoner (mjuk och rund). En fyrkantsvåg är rik på udda övertoner och låter mycket mer aggressiv eller digital. Triangelvågen ligger däremellan och är användbar för ljudsyntes.',
20
+ },
21
+ {
22
+ question: 'Kan jag skada mina högtalare med det här verktyget?',
23
+ answer:
24
+ 'Ja, om du använder mycket höga volymer vid extrema frekvenser (särskilt bas under 30Hz oder diskant över 15kHz). Börja alltid med en låg systemvolym och öka gradvis.',
25
+ },
26
+ {
27
+ question: 'Vilket är det mänskliga hörselområdet?',
28
+ answer:
29
+ 'Teoretiskt 20Hz till 20 000Hz (20kHz). Med åldern är det dock normalt att förlora förmågan att höra över 15kHz. Detta test kan hjälpa dig att verifiera din personliga övre gräns.',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: 'Välj vågtyp',
36
+ text: 'Välj mellan sinus (ren), fyrkant, triangel eller sågtand beroende på vilken typ av test du vill utföra.',
37
+ },
38
+ {
39
+ name: 'Justera frekvensen',
40
+ text: 'Flytta skjutreglaget för att navigera i det hörbara spektrumet. Använd genvägarna för 60Hz, 440Hz eller 1kHz för att snabbt komma åt referensfrekvenser.',
41
+ },
42
+ {
43
+ name: 'Kontrollera volymen',
44
+ text: 'Se till att högtalarvolymen är låg innan du trycker på Play. Du kan justera förstärkningen direkt i verktyget.',
45
+ },
46
+ {
47
+ name: 'Analysera svaret',
48
+ text: 'Lyssna efter eventuella förvrängningar eller moment när ljudet försvinner. Detta indikerar de fysiska begränsningarna hos din ljudhårdvara.',
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<ToneGeneratorUI> = {
87
+ slug,
88
+ title,
89
+ description,
90
+ faqTitle: 'Vanliga frågor',
91
+ faq: faqData,
92
+ bibliographyTitle: 'Referenser',
93
+ bibliography: [
94
+ {
95
+ name: 'MDN Web Docs — Web Audio API',
96
+ url: 'https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API',
97
+ },
98
+ {
99
+ name: 'ISO 226:2023 — Equal-loudness contours',
100
+ url: 'https://www.iso.org/standard/83117.html',
101
+ },
102
+ ],
103
+ howTo: howToData,
104
+ schemas: [faqSchema, howToSchema, appSchema],
105
+ seo: [
106
+ { type: 'title', text: 'Allt om frekvenser och ljudvågor', level: 2 },
107
+ {
108
+ type: 'paragraph',
109
+ html: 'Ljud är ren fysik i rörelse. Detta verktyg låter dig manipulera ljudvågor i realtid, från den djupaste basen du kan känna i bröstet till de ultraljudshöjder som endast djur kan uppfatta.',
110
+ },
111
+ { type: 'title', text: 'Mänskligt hörselområde och presbyacusis', level: 3 },
112
+ {
113
+ type: 'paragraph',
114
+ html: 'Ett friskt mänskligt öra uppfattar ljud mellan <strong>20Hz och 20kHz</strong>. Med åldern sjunker den övre gränsen: de flesta vuxna över 50 kan inte höra över 12kHz. Tonen på 17,4kHz, känd som "myggtonen", är ett klassiskt test som vanligtvis bara tonåringar klarar.',
115
+ },
116
+ { type: 'title', text: 'Vågtyper och deras användning', level: 3 },
117
+ {
118
+ type: 'paragraph',
119
+ html: '<strong>Sinus:</strong> ren ton utan övertoner, används i medicinska hörseltester och instrumentkalibrering. <strong>Fyrkant:</strong> rik på udda övertoner, låter som retro 8-bitarskonsoler. <strong>Sågtand:</strong> innehåller alla övertoner, basen för elektroniska musik-syntar. <strong>Triangel:</strong> mittpunkt mellan sinus och fyrkant — mjukare än fyrkant men med mer harmoniskt innehåll än sinus.',
120
+ },
121
+ { type: 'title', text: 'Högtalartest och rengöring genom vibration', level: 3 },
122
+ {
123
+ type: 'paragraph',
124
+ html: 'En lågfrekvent våg (vanligtvis <strong>165Hz</strong>) vid maximal volym med en fyrkants- eller sågtandsform tvingar högtalarmembranet att vibrera våldsamt, vilket mekaniskt driver ut vattendroppar som fastnat i gallret. Spela inte extremt höga frekvenser på maximal volym under långa perioder: även om du inte kan höra dem kan energin skada utrustningens diskanthögtalare.',
125
+ },
126
+ ],
127
+ ui: {
128
+ badge: 'Ljudgenerator',
129
+ title: 'Tongenerator',
130
+ description: 'Generera rena frekvenser för ljudtester.',
131
+ freqLabel: 'Frekvens',
132
+ preset60: '60Hz',
133
+ preset440: '440Hz',
134
+ preset1k: '1kHz',
135
+ rangeMin: '20Hz (Sub-bas)',
136
+ rangeMax: '20kHz (Ultraljud)',
137
+ waveLabel: 'Vågform',
138
+ waveSine: 'Sinus',
139
+ waveSquare: 'Fyrkant',
140
+ waveSawtooth: 'Sågtand',
141
+ waveTriangle: 'Triangel',
142
+ volLabel: 'Volym',
143
+ btnPlay: 'SPELA TON',
144
+ btnStop: 'STOPP',
145
+ },
146
+ };
@@ -0,0 +1,146 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { ToneGeneratorUI } from '../ui';
4
+
5
+ const slug = 'online-ses-ve-frekans-ureteci';
6
+ const title = 'Çevrimiçi Ses ve Frekans Üreteci';
7
+ const description =
8
+ 'Sinüs, kare, üçgen ve testere dişi dalgalar oluşturun. Hoparlörlerinizi, kulaklıklarınızı veya subwoofer\'ınızı 20Hz ile 20kHz arasındaki frekanslarla test edin.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Frekans üreteci ne için kullanılır?',
13
+ answer:
14
+ 'Hoparlörlerin ve kulaklıkların frekans tepkisini test etmek, mobilyalardaki istenmeyen rezonansları tespit etmek, işitme aralığınızdaki boşlukları bulmak ve hatta çentik (notch) terapisi yoluyla kulak çınlamasını sakinleştirmeye yardımcı olmak için kullanılır.',
15
+ },
16
+ {
17
+ question: 'Sinüs dalgası ile kare dalga arasındaki fark nedir?',
18
+ answer:
19
+ 'Sinüs dalgası, harmonik içermeyen saf bir tondur (pürüzsüz ve yuvarlak). Kare dalga tek harmonikler açısından zengindir ve çok daha agresif veya dijital bir sese sahiptir. Üçgen dalga, ses sentezi için yararlı olan ikisinin arasında bir yerdedir.',
20
+ },
21
+ {
22
+ question: 'Bu araçla hoparlörlerime zarar verebilir miyim?',
23
+ answer:
24
+ 'Evet, uç frekanslarda (özellikle 30Hz altındaki baslar veya 15kHz üzerindeki tizler) çok yüksek ses seviyeleri kullanırsanız zarar verebilirsiniz. Her zaman düşük bir sistem sesiyle başlayın ve kademeli olarak artırın.',
25
+ },
26
+ {
27
+ question: 'İnsan işitme aralığı nedir?',
28
+ answer:
29
+ 'Teorik olarak 20Hz ile 20.000Hz (20kHz) arasıdır. Ancak yaşlandıkça 15kHz\'in üzerindeki sesleri duyma yeteneğini kaybetmek normaldir. Bu test, kişisel üst sınırınızı doğrulamanıza yardımcı olabilir.',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: 'Dalga formu türünü seçin',
36
+ text: 'Yapmak istediğiniz testin türüne bağlı olarak Sinüs (saf), Kare, Üçgen veya Testere dişi arasından seçim yapın.',
37
+ },
38
+ {
39
+ name: 'Frekansı ayarlayın',
40
+ text: 'İşitilebilir spektrumda gezinmek için kaydırıcıyı hareket ettirin. Referans frekanslara hızlıca erişmek için 60Hz, 440Hz veya 1kHz kısayollarını kullanın.',
41
+ },
42
+ {
43
+ name: 'Ses seviyesini kontrol edin',
44
+ text: 'Oynat düğmesine basmadan önce hoparlör sesinizin düşük olduğundan emin olun. Kazancı (gain) doğrudan araç üzerinden ayarlayabilirsiniz.',
45
+ },
46
+ {
47
+ name: 'Tepkiyi analiz edin',
48
+ text: 'Olası bozulmaları veya sesin kaybolduğu anları dinleyin. Bu, ses donanımınızın fiziksel sınırlarını gösterecektir.',
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<ToneGeneratorUI> = {
87
+ slug,
88
+ title,
89
+ description,
90
+ faqTitle: 'Sıkça Sorulan Sorular',
91
+ faq: faqData,
92
+ bibliographyTitle: 'Referanslar',
93
+ bibliography: [
94
+ {
95
+ name: 'MDN Web Docs — Web Audio API',
96
+ url: 'https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API',
97
+ },
98
+ {
99
+ name: 'ISO 226:2023 — Equal-loudness contours',
100
+ url: 'https://www.iso.org/standard/83117.html',
101
+ },
102
+ ],
103
+ howTo: howToData,
104
+ schemas: [faqSchema, howToSchema, appSchema],
105
+ seo: [
106
+ { type: 'title', text: 'Frekanslar ve Ses Dalgaları Hakkında Her Şey', level: 2 },
107
+ {
108
+ type: 'paragraph',
109
+ html: 'Ses, hareket halindeki saf fiziktir. Bu araç, göğsünüzde hissedebileceğiniz en derin baslardan yalnızca hayvanların algılayabileceği ultrasonik tizlere kadar ses dalgalarını gerçek zamanlı olarak manipüle etmenizi sağlar.',
110
+ },
111
+ { type: 'title', text: 'İnsan İşitme Aralığı ve Presbikuzi', level: 3 },
112
+ {
113
+ type: 'paragraph',
114
+ html: 'Sağlıklı bir insan kulağı <strong>20Hz ile 20kHz</strong> arasındaki sesleri algılar. Yaşla birlikte üst sınır düşer: 50 yaşın üzerindeki çoğu yetişkin 12kHz\'in üzerini duyamaz. "Sivrisinek tonu" olarak bilinen 17.4kHz tonu, genellikle sadece gençlerin geçebildiği klasik bir testtir.',
115
+ },
116
+ { type: 'title', text: 'Dalga Türleri ve Kullanımları', level: 3 },
117
+ {
118
+ type: 'paragraph',
119
+ html: '<strong>Sinüs:</strong> Tibbi işitme testlerinde ve enstrüman kalibrasyonunda kullanılan, harmonik içermeyen saf ton. <strong>Kare:</strong> Tek harmonikler açısından zengin, retro 8-bit konsollar gibi ses çıkarır. <strong>Testere dişi:</strong> Elektronik müzik sentezleyicilerinin temeli olan tüm harmonikleri içerir. <strong>Üçgen:</strong> Sinüs ve kare arasındaki orta nokta; kare dalgadan daha pürüzsüz ancak sinüs dalgasından daha fazla harmonik içeriğe sahip.',
120
+ },
121
+ { type: 'title', text: 'Hoparlör Testi ve Titreşimle Temizleme', level: 3 },
122
+ {
123
+ type: 'paragraph',
124
+ html: 'Maksimum ses seviyesinde kare veya testere dişi şeklinde düşük frekanslı bir dalga (genellikle <strong>165Hz</strong>), hoparlör diyaframını şiddetle titremeye zorlayarak ızgarada hapsolmuş su damlacıklarını mekanik olarak dışarı atar. Çok yüksek frekansları uzun süre maksimum seste çalmayın: Duyamasanız bile enerji, ekipmanınızın tweeter\'larına zarar verebilir.',
125
+ },
126
+ ],
127
+ ui: {
128
+ badge: 'Ses Üreteci',
129
+ title: 'Ses Üreteci',
130
+ description: 'Ses testleri için saf frekanslar oluşturun.',
131
+ freqLabel: 'Frekans',
132
+ preset60: '60Hz',
133
+ preset440: '440Hz',
134
+ preset1k: '1kHz',
135
+ rangeMin: '20Hz (Sub-bas)',
136
+ rangeMax: '20kHz (Ultrason)',
137
+ waveLabel: 'Dalga Formu',
138
+ waveSine: 'Sinüs',
139
+ waveSquare: 'Kare',
140
+ waveSawtooth: 'Testere dişi',
141
+ waveTriangle: 'Üçgen',
142
+ volLabel: 'Ses Seviyesi',
143
+ btnPlay: 'SESİ OYNAT',
144
+ btnStop: 'DURDUR',
145
+ },
146
+ };