10 KiB
10 KiB
Mail-Adler Praktische Features
1. Google Translate für Englisch → Andere Sprachen
Workflow:
1. Englisch Strings exportieren
python3 export_to_csv.py → glossary_en.csv
2. In Excel: Englisch-Spalte kopieren
A1:A250 (alle English Strings)
3. Google Translate öffnen
https://translate.google.com
- Links: English Paste
- Rechts: Wähle Zielsprache
- Auto-Übersetzung
4. Ergebnis → Excel
Gespiegelt in neue Spalte
5. CSV zurück → .ts
python3 import_csv_to_ts.py
Zeit sparen:
Deutsch → Englisch: Manuell sorgfältig (10 Min)
Englisch → Rest: Google Translate Auto (30 Sekunden pro Sprache)
Statt 30 Sprachen × 45 Min = 22.5 Std
Nur 30 Sprachen × 30 Sec = 15 Minuten!
Das ist VIEL schneller! ✅
2. Auto-Übersetzung für Email-Inhalte
Feature für Phase C:
Wenn Email in anderer Sprache kommt → automatisch in deine Sprache übersetzen
// src/translation/EmailTranslator.h/cpp
class EmailTranslator {
public:
// Erkenne Sprache
QString detectLanguage(const QString &emailBody);
// Übersetze
QString translateToUserLanguage(
const QString &emailBody,
const QString &detectedLanguage
);
// Nutze lokale LLM (Ollama)
// Nicht Google (wegen Datenschutz!)
};
Verwendung:
// In MailViewWidget:
QString emailBody = "Bonjour, comment allez-vous?";
EmailTranslator translator;
QString detectedLang = translator.detectLanguage(emailBody);
// → "French"
if (detectedLang != userLanguage) {
QString translated = translator.translateToUserLanguage(
emailBody,
detectedLang
);
// Zeige Übersetzung
ui->emailContent->setText(translated);
// Zeige auch Original (kleiner)
ui->originalContent->setText(emailBody);
}
Optionen:
| Quelle | Datenschutz | Qualität | Geschwindigkeit |
|---|---|---|---|
| Google Translate API | ❌ Schlecht | ✅✅ Sehr gut | ⚡ Schnell |
| DeepL API | ⚠️ EU | ✅✅ Sehr gut | ⚡ Schnell |
| Ollama lokal | ✅✅ Perfekt | ✅ Gut | ⚡⚡ Mittel |
| LibreTranslate OSS | ✅✅ Perfekt | ✅ Gut | ⚡⚡ Mittel |
EMPFEHLUNG für Mail-Adler: Ollama lokal (dezentralisiert!)
# src/translation/ollama_translator.py
import requests
class OllamaEmailTranslator:
def __init__(self, base_url="http://localhost:11434"):
self.base_url = base_url
def translate_email(self, text: str, target_lang: str) -> str:
"""Übersetze Email-Text mit lokalem Ollama"""
prompt = f"""Übersetze folgende Email ins {target_lang}.
Halte Formatierung und Umlaute.
Antworte nur mit Übersetzung, keine Erklärung.
Text: {text}
Übersetzung:"""
response = requests.post(
f"{self.base_url}/api/generate",
json={
"model": "mistral:7b",
"prompt": prompt,
"stream": False,
}
)
return response.json()["response"].strip()
3. Copy-Paste überall (Universell)
Qt macht das automatisch:
// In jedem QTextEdit/QLineEdit:
// Ctrl+C/Ctrl+V funktionieren IMMER
// Rechts-Klick → Copy/Paste funktioniert IMMER
// In QTableWidget/QTreeWidget:
// Auch Copy-Paste möglich (Zellen-Inhalte)
// Eigene Implementierung für Custom:
class CustomText : public QWidget {
Q_OBJECT
private:
void keyPressEvent(QKeyEvent *event) override {
if (event->key() == Qt::Key_C && event->modifiers() == Qt::ControlModifier) {
QApplication::clipboard()->setText(selectedText());
}
if (event->key() == Qt::Key_V && event->modifiers() == Qt::ControlModifier) {
pasteFromClipboard();
}
}
};
In Mail-Adler:
- ✅ Email-Text: Copy-Paste überall
- ✅ Email-Header: Copy-Paste Absender, Betreff, etc.
- ✅ Anhang-Namen: Copy-Paste
- ✅ Links: Copy-Paste
- ✅ Metadaten: Alle markierbar & kopierbar
Standard in Qt - keine spezielle Implementierung nötig!
4. Tastatur-Shortcuts
Mail-Adler Standard-Shortcuts
NAVIGATION:
├─ Tab → Nächste Email / Feld
├─ Shift+Tab → Vorherige Email / Feld
├─ Arrow Up/Down → Navigation in Ordner/Liste
├─ Ctrl+Home → Erste Email
├─ Ctrl+End → Letzte Email
├─ Page Up/Down → Seitenweise scrollen
└─ Escape → Zurück zur Ordnerliste
LESEN:
├─ Space → Page Down (Email lesen)
├─ Shift+Space → Page Up
├─ Ctrl+F → Im Text suchen
├─ Ctrl+P → Email drucken
└─ Ctrl+Shift+V → Plaintext-Modus
SCHREIBEN:
├─ Ctrl+N → Neue Email
├─ Ctrl+Shift+D → Aus Entwürfen fortfahren
├─ Tab → Nächstes Feld (An → Cc → Betreff → Text)
├─ Ctrl+Enter → Senden
└─ Ctrl+Shift+S → Als Entwurf speichern
ORDNER:
├─ Ctrl+1 → Eingang
├─ Ctrl+2 → Gesendet
├─ Ctrl+3 → Entwürfe
├─ Ctrl+4 → Spam
├─ Ctrl+5 → Archiv
├─ Ctrl+6 → Custom Ordner
├─ Ctrl+Shift+N → Neuer Ordner
└─ Delete → Ordner löschen
AKTIONEN:
├─ Ctrl+R → Antworten
├─ Ctrl+Shift+R → Allen antworten
├─ Ctrl+Shift+F → Weiterleiten
├─ Ctrl+M → Als gelesen markieren
├─ Ctrl+* → Als Markiert (*) togglen
├─ Delete → Löschen → Papierkorb
├─ Ctrl+Delete → Permanent löschen
├─ Ctrl+S → Speichern / Synchronisieren
└─ F5 → Aktualisieren / Neu laden
ALLGEMEIN:
├─ Ctrl+Q → Beenden
├─ Ctrl+, → Einstellungen
├─ F1 → Hilfe
├─ Ctrl+H → Verlauf
├─ Ctrl+L → Adressleiste aktivieren
└─ Alt+Numbers → Menu nutzen
Implementierung in Qt:
// src/ui/MainWindow.cpp
void MainWindow::setupKeyboardShortcuts() {
// Neue Email
new QShortcut(Qt::CTRL + Qt::Key_N, this, SLOT(on_actionNew_triggered()));
// Antworten
new QShortcut(Qt::CTRL + Qt::Key_R, this, SLOT(on_actionReply_triggered()));
// Senden (in Compose)
new QShortcut(Qt::CTRL + Qt::Key_Return, this, SLOT(on_actionSend_triggered()));
// Navigation
new QShortcut(Qt::CTRL + Qt::Key_1, this, [this]() {
switchToFolder("Eingang");
});
new QShortcut(Qt::CTRL + Qt::Key_2, this, [this]() {
switchToFolder("Gesendet");
});
// Löschen
new QShortcut(Qt::Key_Delete, this, SLOT(on_actionDelete_triggered()));
// Spam
new QShortcut(Qt::CTRL + Qt::Key_Exlamation, this, SLOT(on_actionSpam_triggered()));
}
Vim-Style Shortcuts (Optional für Phase D):
// Für Power-User:
// :q → Beenden
// j/k → Down/Up
// d → Löschen
// a → Antworten
// r → Antworten
// w → Weiterleiten
// etc.
// Konfigurierbar in Einstellungen:
// [] Enable Vim Keybindings
5. Kombination: Englisch → Google Translate → Rest
Praktischer Workflow (für dich):
Tag 1: ENGLISCH (Manuell - sorgfältig)
═══════════════════════════════════
python3 export_to_csv.py \
--source translations/mail-adler_de.ts \
--output glossary_all.csv \
--languages "English"
→ Glossary mit Deutsch + leerer English-Spalte
→ LM Studio: 70 Wörter eingeben
Abbrechen = Cancel
Anmeldedaten = Credentials
... (30 Min)
→ Speichern
Day 2: GOOGLE TRANSLATE (Auto)
═══════════════════════════════════
1. Englisch-Spalte aus Excel kopieren (A1:A70)
2. Google Translate öffnen
3. Paste → Rechts: "Französisch" wählen
4. Auto-Übersetzung
5. Kopieren → Excel
→ Repeat für: Español, Português, Italiano, Niederländisch, Polnisch, ...
(Pro Sprache: 2-3 Minuten)
Day 3: IMPORT & RELEASE
═══════════════════════
./batch_import_parallel.sh
→ 20-30 Sekunden
git push
→ GitHub Actions
→ Release
TOTAL: 2.5 Tage für 30 Sprachen statt 22 Tage!
So sieht Excel aus:
Deutsch,English,Français,Español,Português,Italiano,Niederländisch,Polnisch,...
Abbrechen,Cancel,Annuler,Cancelar,Cancelar,Annulla,Annuleren,Anuluj,...
Anmeldedaten,Credentials,Identifiants,Credenciales,Credenciais,Credenziali,Inloggegevens,Poświadczenia,...
...
Englisch = Manuell sorgfältig Alles andere = Google Translate Auto
6. Zusammenfassung: Praktische Mail-Adler Features
| Feature | Status | Nutzen |
|---|---|---|
| Auto-Translate Email-Inhalt | Phase C | 🌍 User liest Emails in beliebiger Sprache |
| Copy-Paste überall | Phase B | ✅ Standard Qt |
| Tastatur-Shortcuts | Phase B | ⚡ Schnelles Arbeiten |
| Englisch manuell | Phase B | 👤 Sorgfaltig |
| Englisch→Andere via Google | Phase B | 🚀 Super schnell |
| Vim-Keybindings | Phase D | 🎮 Optional für Power-User |
7. Copy-Paste Implementierung (überall)
// src/util/ClipboardHelper.h
class ClipboardHelper {
public:
static QString getText() {
return QApplication::clipboard()->text();
}
static void setText(const QString &text) {
QApplication::clipboard()->setText(text);
}
static void copySelection(QAbstractItemView *view) {
// Kopiere ausgewählte Zeilen/Zellen
QModelIndexList indexes = view->selectionModel()->selectedIndexes();
QString text;
for (const auto &index : indexes) {
text += index.data().toString() + "\t";
}
setText(text);
}
};
// Nutzung überall:
// Rechts-Klick im Email-Text → Copy
// Rechts-Klick in Ordnerliste → Copy Ordnernamen
// etc. - alles Standard Qt!
8. Google Translate vs. Ollama für Email-Inhalt (Phase C)
Nutzer erhält Emails in verschiedenen Sprachen:
Option A: Google Translate (Phase C - später)
├─ Schnell ⚡
├─ Qualität sehr gut ✅✅
└─ Datenschutz ❌ (Daten zu Google)
Option B: Ollama lokal
├─ Schnell ⚡⚡ (lokal)
├─ Qualität gut ✅
└─ Datenschutz ✅✅ (alles lokal)
EMPFEHLUNG: Ollama (dezentralisiert!)
Fazit:
✅ Google Translate für deine Übersetzungsarbeit (Englisch → Andere) ✅ Ollama für User-Feature (Email-Inhalt Auto-Übersetzen) ✅ Copy-Paste überall (Standard in Qt) ✅ Tastatur-Shortcuts (Schneller arbeiten)
Alles machbar und praktisch! 🎯