feat: swap translation languages with Return on empty input

This commit is contained in:
2026-10-18 10:08:33 +02:00
parent 9001411880
commit 9613cbb994
3 changed files with 31 additions and 4 deletions
+9 -2
View File
@@ -239,8 +239,11 @@ final class TranslationController: NSViewController {
func inputChanged() {
cancelRequest()
output.string = ""
translateButton.title = "Translate"
translateButton.toolTip = "Translate the input (Return). Escape dismisses Conjure."
let isEmpty = (input?() ?? "").trimmingCharacters(in: .whitespacesAndNewlines).isEmpty
translateButton.title = isEmpty ? "Swap languages" : "Translate"
translateButton.toolTip = isEmpty
? "Swap source and target languages (Return)."
: "Translate the input (Return). Escape dismisses Conjure."
settingsButton.isHidden = true
languageButton.title = "\(languageName(sourceLanguage)) → \(languageName(targetLanguage))"
output.setAccessibilityLabel("\(languageName(targetLanguage)) translation")
@@ -269,6 +272,10 @@ final class TranslationController: NSViewController {
@objc func performPrimaryAction() {
guard task == nil else { return }
if (input?() ?? "").trimmingCharacters(in: .whitespacesAndNewlines).isEmpty {
swapLanguages()
return
}
guard !output.string.isEmpty else { translate(); return }
pasteboard.clearContents()
if pasteboard.setString(output.string, forType: .string) {