diff --git a/src-tauri/src/managers/transcription.rs b/src-tauri/src/managers/transcription.rs
index 01035fe..5212f7e 100644
--- a/src-tauri/src/managers/transcription.rs
+++ b/src-tauri/src/managers/transcription.rs
@@ -185,7 +185,7 @@ impl TranscriptionManager {
params.set_print_timestamps(false);
params.set_suppress_blank(true);
params.set_suppress_non_speech_tokens(true);
-
+
// Enable translation to English if requested
if settings.translate_to_english {
params.set_translate(true);
@@ -207,7 +207,11 @@ impl TranscriptionManager {
}
let et = std::time::Instant::now();
- let translation_note = if settings.translate_to_english { " (translated)" } else { "" };
+ let translation_note = if settings.translate_to_english {
+ " (translated)"
+ } else {
+ ""
+ };
println!("\ntook {}ms{}", (et - st).as_millis(), translation_note);
Ok(result.trim().to_string())
diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json
index ffc77be..bd90ebc 100644
--- a/src-tauri/tauri.conf.json
+++ b/src-tauri/tauri.conf.json
@@ -14,9 +14,9 @@
{
"title": "Handy",
"width": 540,
- "height": 590,
+ "height": 630,
"minWidth": 540,
- "minHeight": 590,
+ "minHeight": 630,
"resizable": true,
"maximizable": false
}
diff --git a/src/components/settings/Settings.tsx b/src/components/settings/Settings.tsx
index 423174d..9d31e16 100644
--- a/src/components/settings/Settings.tsx
+++ b/src/components/settings/Settings.tsx
@@ -5,6 +5,7 @@ import { PushToTalk } from "./PushToTalk";
import { AudioFeedback } from "./AudioFeedback";
import { OutputDeviceSelector } from "./OutputDeviceSelector";
import { HandyShortcut } from "./HandyShortcut";
+import { TranslateToEnglish } from "./TranslateToEnglish";
import { SettingsGroup } from "../ui/SettingsGroup";
export const Settings: React.FC = () => {
@@ -19,6 +20,7 @@ export const Settings: React.FC = () => {
+
diff --git a/src/components/settings/TranslateToEnglish.tsx b/src/components/settings/TranslateToEnglish.tsx
new file mode 100644
index 0000000..92917c3
--- /dev/null
+++ b/src/components/settings/TranslateToEnglish.tsx
@@ -0,0 +1,29 @@
+import React from "react";
+import { ToggleSwitch } from "../ui/ToggleSwitch";
+import { useSettings } from "../../hooks/useSettings";
+
+interface TranslateToEnglishProps {
+ descriptionMode?: "inline" | "tooltip";
+ grouped?: boolean;
+}
+
+export const TranslateToEnglish: React.FC = ({
+ descriptionMode = "tooltip",
+ grouped = false,
+}) => {
+ const { getSetting, updateSetting, isUpdating } = useSettings();
+
+ const translateToEnglish = getSetting("translate_to_english") || false;
+
+ return (
+ updateSetting("translate_to_english", enabled)}
+ isUpdating={isUpdating("translate_to_english")}
+ label="Translate to English"
+ description="Automatically translate speech from other languages to English during transcription."
+ descriptionMode={descriptionMode}
+ grouped={grouped}
+ />
+ );
+};
diff --git a/src/components/settings/index.ts b/src/components/settings/index.ts
index 81c1d65..b6f37bf 100644
--- a/src/components/settings/index.ts
+++ b/src/components/settings/index.ts
@@ -5,3 +5,4 @@ export { AlwaysOnMicrophone } from "./AlwaysOnMicrophone";
export { PushToTalk } from "./PushToTalk";
export { AudioFeedback } from "./AudioFeedback";
export { HandyShortcut } from "./HandyShortcut";
+export { TranslateToEnglish } from "./TranslateToEnglish";
diff --git a/src/hooks/useSettings.ts b/src/hooks/useSettings.ts
index 103e611..e1170ae 100644
--- a/src/hooks/useSettings.ts
+++ b/src/hooks/useSettings.ts
@@ -189,6 +189,11 @@ export const useSettings = (): UseSettingsReturn => {
deviceName: outputDeviceName,
});
break;
+ case "translate_to_english":
+ await invoke("change_translate_to_english_setting", {
+ enabled: value,
+ });
+ break;
case "bindings":
// Handle bindings separately - they use their own invoke methods
break;
@@ -231,6 +236,7 @@ export const useSettings = (): UseSettingsReturn => {
push_to_talk: false,
selected_microphone: "Default",
selected_output_device: "Default",
+ translate_to_english: false,
};
const defaultValue = defaults[key];