diff --git a/messages/cs.json b/messages/cs.json index e0d1051..a0b3b07 100644 --- a/messages/cs.json +++ b/messages/cs.json @@ -83,5 +83,24 @@ "common_back": "Zpět", "audio_title": "Test zvuku", "avSync_title": "Synchronizace zvuku a videa", - "internet_title": "Rychlost internetu" + "internet_title": "Rychlost internetu", + "tests_signal-generator_description": "Generujte sinusové vlny, šum (bílý, růžový, hnědý) a frekvenční přechody. Zahrnuje osciloskop a spektrum.", + "tests_signal-generator_label": "Generátor signálu", + "signalGen_title": "Generátor signálu", + "signalGen_type": "Typ", + "signalGen_sine": "Sinus", + "signalGen_sweep": "Přechod", + "signalGen_noiseWhite": "Bílý šum", + "signalGen_noisePink": "Růžový šum", + "signalGen_noiseBrown": "Hnědý šum", + "signalGen_frequency": "Frekvence", + "signalGen_from": "Od", + "signalGen_to": "Do", + "signalGen_duration": "Doba trvání", + "signalGen_gain": "Hlasitost", + "signalGen_start": "Start", + "signalGen_stop": "Stop", + "signalGen_scope": "Osciloskop", + "signalGen_spectrum": "Spektrum", + "signalGen_loop": "Smyčka" } diff --git a/messages/de.json b/messages/de.json index 46e4301..36f20cb 100644 --- a/messages/de.json +++ b/messages/de.json @@ -83,5 +83,24 @@ "common_back": "Zurück", "audio_title": "Audiotest", "avSync_title": "Audio/Video-Synchronisation", - "internet_title": "Internetgeschwindigkeit" + "internet_title": "Internetgeschwindigkeit", + "tests_signal-generator_description": "Erzeugen Sie Sinuswellen, Rauschen (weiß, pink, braun) und Frequenz-Sweeps. Mit Oszilloskop und Spektrum.", + "tests_signal-generator_label": "Signalgenerator", + "signalGen_title": "Signalgenerator", + "signalGen_type": "Typ", + "signalGen_sine": "Sinus", + "signalGen_sweep": "Sweep", + "signalGen_noiseWhite": "Weißes Rauschen", + "signalGen_noisePink": "Pinkes Rauschen", + "signalGen_noiseBrown": "Braunes Rauschen", + "signalGen_frequency": "Frequenz", + "signalGen_from": "Von", + "signalGen_to": "Bis", + "signalGen_duration": "Dauer", + "signalGen_gain": "Verstärkung", + "signalGen_start": "Start", + "signalGen_stop": "Stopp", + "signalGen_scope": "Oszilloskop", + "signalGen_spectrum": "Spektrum", + "signalGen_loop": "Schleife" } diff --git a/messages/en.json b/messages/en.json index d833207..fc85633 100644 --- a/messages/en.json +++ b/messages/en.json @@ -83,5 +83,24 @@ "common_back": "Back", "audio_title": "Audio test", "avSync_title": "Audio/Video Synchronization", - "internet_title": "Internet speed" + "internet_title": "Internet speed", + "tests_signal-generator_description": "Generate sine waves, noise (white, pink, brown) and frequency sweeps. Includes oscilloscope and spectrum.", + "tests_signal-generator_label": "Signal Generator", + "signalGen_title": "Signal Generator", + "signalGen_type": "Type", + "signalGen_sine": "Sine", + "signalGen_sweep": "Sweep", + "signalGen_noiseWhite": "White noise", + "signalGen_noisePink": "Pink noise", + "signalGen_noiseBrown": "Brown noise", + "signalGen_frequency": "Frequency", + "signalGen_from": "From", + "signalGen_to": "To", + "signalGen_duration": "Duration", + "signalGen_gain": "Gain", + "signalGen_start": "Start", + "signalGen_stop": "Stop", + "signalGen_scope": "Oscilloscope", + "signalGen_spectrum": "Spectrum", + "signalGen_loop": "Loop" } diff --git a/messages/es.json b/messages/es.json index df09de0..ce3e1bf 100644 --- a/messages/es.json +++ b/messages/es.json @@ -83,5 +83,24 @@ "common_back": "Atrás", "audio_title": "Prueba de audio", "avSync_title": "Sincronización de Audio/Video", - "internet_title": "Velocidad de internet" + "internet_title": "Velocidad de internet", + "tests_signal-generator_description": "Genera ondas senoidales, ruido (blanco, rosa, marrón) y barridos de frecuencia. Incluye osciloscopio y espectro.", + "tests_signal-generator_label": "Generador de señal", + "signalGen_title": "Generador de señal", + "signalGen_type": "Tipo", + "signalGen_sine": "Senoidal", + "signalGen_sweep": "Barrido", + "signalGen_noiseWhite": "Ruido blanco", + "signalGen_noisePink": "Ruido rosa", + "signalGen_noiseBrown": "Ruido marrón", + "signalGen_frequency": "Frecuencia", + "signalGen_from": "Desde", + "signalGen_to": "Hasta", + "signalGen_duration": "Duración", + "signalGen_gain": "Ganancia", + "signalGen_start": "Iniciar", + "signalGen_stop": "Detener", + "signalGen_scope": "Osciloscopio", + "signalGen_spectrum": "Espectro", + "signalGen_loop": "Bucle" } diff --git a/messages/fr.json b/messages/fr.json index 2d42074..8623dfd 100644 --- a/messages/fr.json +++ b/messages/fr.json @@ -83,5 +83,24 @@ "common_back": "Retour", "audio_title": "Test audio", "avSync_title": "Synchronisation Audio/Vidéo", - "internet_title": "Vitesse Internet" + "internet_title": "Vitesse Internet", + "tests_signal-generator_description": "Générez des ondes sinusoïdales, du bruit (blanc, rose, marron) et des balayages de fréquence. Comprend un oscilloscope et un spectre.", + "tests_signal-generator_label": "Générateur de signaux", + "signalGen_title": "Générateur de signaux", + "signalGen_type": "Type", + "signalGen_sine": "Sinusoïdal", + "signalGen_sweep": "Balayage", + "signalGen_noiseWhite": "Bruit blanc", + "signalGen_noisePink": "Bruit rose", + "signalGen_noiseBrown": "Bruit marron", + "signalGen_frequency": "Fréquence", + "signalGen_from": "De", + "signalGen_to": "À", + "signalGen_duration": "Durée", + "signalGen_gain": "Volume", + "signalGen_start": "Démarrer", + "signalGen_stop": "Arrêter", + "signalGen_scope": "Oscilloscope", + "signalGen_spectrum": "Spectre", + "signalGen_loop": "Boucle" } diff --git a/messages/ja.json b/messages/ja.json index 6c9fc49..328c52a 100644 --- a/messages/ja.json +++ b/messages/ja.json @@ -83,5 +83,24 @@ "common_back": "戻る", "audio_title": "オーディオテスト", "avSync_title": "オーディオ/ビデオ同期", - "internet_title": "インターネット速度" + "internet_title": "インターネット速度", + "tests_signal-generator_description": "正弦波、ノイズ(ホワイト、ピンク、ブラウン)、周波数スイープを生成します。オシロスコープとスペクトラムが含まれています。", + "tests_signal-generator_label": "信号発生器", + "signalGen_title": "信号発生器", + "signalGen_type": "タイプ", + "signalGen_sine": "正弦波", + "signalGen_sweep": "スイープ", + "signalGen_noiseWhite": "ホワイトノイズ", + "signalGen_noisePink": "ピンクノイズ", + "signalGen_noiseBrown": "ブラウンノイズ", + "signalGen_frequency": "周波数", + "signalGen_from": "から", + "signalGen_to": "まで", + "signalGen_duration": "期間", + "signalGen_gain": "音量", + "signalGen_start": "開始", + "signalGen_stop": "停止", + "signalGen_scope": "オシロスコープ", + "signalGen_spectrum": "スペクトラム", + "signalGen_loop": "ループ" } diff --git a/messages/ukr.json b/messages/ukr.json index 97079ec..0553561 100644 --- a/messages/ukr.json +++ b/messages/ukr.json @@ -83,5 +83,24 @@ "common_back": "Назад", "audio_title": "Тест аудіо", "avSync_title": "Синхронізація аудіо/відео", - "internet_title": "Швидкість Інтернету" + "internet_title": "Швидкість Інтернету", + "tests_signal-generator_description": "Генеруйте синусоїди, шум (білий, рожевий, коричневий) та частотні розгортки. Включає осцилограф та спектр.", + "tests_signal-generator_label": "Генератор сигналів", + "signalGen_title": "Генератор сигналів", + "signalGen_type": "Тип", + "signalGen_sine": "Синусоїда", + "signalGen_sweep": "Розгортка", + "signalGen_noiseWhite": "Білий шум", + "signalGen_noisePink": "Рожевий шум", + "signalGen_noiseBrown": "Коричневий шум", + "signalGen_frequency": "Частота", + "signalGen_from": "Від", + "signalGen_to": "До", + "signalGen_duration": "Тривалість", + "signalGen_gain": "Гучність", + "signalGen_start": "Старт", + "signalGen_stop": "Стоп", + "signalGen_scope": "Осцилограф", + "signalGen_spectrum": "Спектр", + "signalGen_loop": "Цикл" } diff --git a/messages/zh-CN.json b/messages/zh-CN.json index 77b9bb3..dae496e 100644 --- a/messages/zh-CN.json +++ b/messages/zh-CN.json @@ -83,5 +83,24 @@ "common_back": "返回", "audio_title": "音频测试", "avSync_title": "音视频同步", - "internet_title": "网速" + "internet_title": "网速", + "tests_signal-generator_description": "生成正弦波、噪声(白噪声、粉红噪声、布朗噪声)和频率扫描。包括示波器和频谱图。", + "tests_signal-generator_label": "信号发生器", + "signalGen_title": "信号发生器", + "signalGen_type": "类型", + "signalGen_sine": "正弦波", + "signalGen_sweep": "扫描", + "signalGen_noiseWhite": "白噪声", + "signalGen_noisePink": "粉红噪声", + "signalGen_noiseBrown": "布朗噪声", + "signalGen_frequency": "频率", + "signalGen_from": "从", + "signalGen_to": "到", + "signalGen_duration": "持续时间", + "signalGen_gain": "音量", + "signalGen_start": "开始", + "signalGen_stop": "停止", + "signalGen_scope": "示波器", + "signalGen_spectrum": "频谱图", + "signalGen_loop": "循环" } diff --git a/project.inlang/.gitignore b/project.inlang/.gitignore new file mode 100644 index 0000000..5e46596 --- /dev/null +++ b/project.inlang/.gitignore @@ -0,0 +1 @@ +cache \ No newline at end of file diff --git a/project.inlang/settings.json b/project.inlang/settings.json index cc3874f..6bbff45 100644 --- a/project.inlang/settings.json +++ b/project.inlang/settings.json @@ -8,6 +8,5 @@ "pathPattern": "./messages/{locale}.json" }, "baseLocale": "en", - "locales": ["en", "es", "fr", "de", "zh-CN", "ja", "cs", "ukr"], - "strategy": ["localStorage", "preferredLanguage", "baseLocale"] + "locales": ["en", "es", "fr", "de", "zh-CN", "ja", "cs", "ukr"] } diff --git a/src/lib/audio/Oscilloscope.svelte b/src/lib/audio/Oscilloscope.svelte new file mode 100644 index 0000000..cdefdc8 --- /dev/null +++ b/src/lib/audio/Oscilloscope.svelte @@ -0,0 +1,86 @@ + + +
+
{title}
+ +
+ + diff --git a/src/lib/audio/Spectrum.svelte b/src/lib/audio/Spectrum.svelte new file mode 100644 index 0000000..b2cc262 --- /dev/null +++ b/src/lib/audio/Spectrum.svelte @@ -0,0 +1,170 @@ + + +
+
{title}
+ +
+ + diff --git a/src/routes/(pages)/+page.svelte b/src/routes/(pages)/+page.svelte index f12cd78..89d37e3 100644 --- a/src/routes/(pages)/+page.svelte +++ b/src/routes/(pages)/+page.svelte @@ -64,6 +64,11 @@ icon: 'ti-volume', categories: ['outputs', 'audio'] }, + { + id: 'signal-generator', + icon: 'ti-wave-sine', + categories: ['outputs', 'audio'] + }, { id: 'av-sync', icon: 'ti-time-duration-off', diff --git a/src/routes/(pages)/signal-generator/+page.svelte b/src/routes/(pages)/signal-generator/+page.svelte new file mode 100644 index 0000000..bbd1a75 --- /dev/null +++ b/src/routes/(pages)/signal-generator/+page.svelte @@ -0,0 +1,354 @@ + + +

{m.signalGen_title()}

+ +
+
+
+ {m.signalGen_type()}: +
+ + + + + +
+
+ + {#if genType === 'sine'} +
+ + onFrequencyChange(+e.currentTarget.value)} + /> + onFrequencyChange(+e.currentTarget.value)} + /> + Hz +
+ {/if} + + {#if genType === 'sweep'} +
+ + + + +
+
+ + + s + +
+ {/if} + +
+ + onVolumeChange(+e.currentTarget.value)} + /> + {(volume * 100) | 0}% +
+ +
+ {#if !started} + + {:else} + + {/if} +
+
+ +
+ {#if analyser} + + + {/if} +
+
+ +