Przejdź do głównej zawartości

Tłumaczenie (Translation)

Moduł Translation integruje DeepL API do tłumaczenia wiadomości tekstowych oraz Groq Whisper do transkrypcji wiadomości głosowych. Działa przez menu kontekstowe (prawy klik na wiadomość).

Włączanie modułu

  1. Dashboard → Twój serwer → toggle Translation
  2. Kliknij Edit i wprowadź klucz API DeepL
  3. Opcjonalnie: wprowadź klucz API Groq (dla transkrypcji audio)
  4. Zapisz zmiany
Wymagany klucz API

Moduł Translation wymaga klucza API DeepL do działania. Bez niego tłumaczenie nie będzie możliwe. Klucze są szyfrowane (Fernet) przed zapisaniem w bazie danych.

Uzyskaj darmowy klucz na: https://www.deepl.com/pro-api

Konfiguracja

Klucze API są przechowywane na poziomie guild config (nie w cog_settings):

OpcjaTypOpis
deepl_api_key_encryptedstringZaszyfrowany klucz API DeepL
groq_api_key_encryptedstringZaszyfrowany klucz API Groq (opcjonalny)

Dashboard

Panel edycji zawiera:

  • DeepL API Key — pole hasła (masked)
  • Groq API Key — pole hasła (opcjonalne, do transkrypcji audio)
  • Informacja o statusie klucza (skonfigurowany / brak)

Po włączeniu modułu, w menu kontekstowym wiadomości (prawy klik → Apps) pojawiają się:

Translate Message

Tłumaczy tekst wiadomości na preferowany język użytkownika.

Flow:

  1. Wyodrębnia tekst z wiadomości (content + embed title/description/fields/footer)
  2. Sprawdza preferencje językowe użytkownika
  3. Jeśli brak preferencji — wyświetla modal z prośbą o wybór języka
  4. Tłumaczy przez DeepL API
  5. Wyświetla tłumaczenie efemeralnie

Transcribe & Translate

Transkrybuje wiadomość głosową/audio i tłumaczy transkrypcję.

Flow:

  1. Szuka załącznika audio w wiadomości
  2. Sprawdza rozmiar (max 25 MB)
  3. Sprawdza preferencje językowe użytkownika
  4. Transkrybuje przez Groq Whisper API
  5. Tłumaczy transkrypcję przez DeepL API
  6. Wyświetla oba (oryginał + tłumaczenie) w embedzie efemeralnym
Obsługiwane formaty audio

.ogg, .mp3, .wav, .m4a, .flac, .webm, .mp4 oraz wszelkie pliki z content-type audio/* lub video/* (voice messages).

Komendy

/setlang

Ustawia preferowany język tłumaczenia użytkownika (globalny, cross-server).

Wyświetla menu rozwijane z paginacją (25 języków na stronę) — po wyborze zapisuje preferencję w bazie danych.

/languages

Wyświetla listę wszystkich obsługiwanych języków DeepL (efemeralnie).

Obsługiwane języki

DeepL obsługuje 31 języków docelowych:

KodJęzyk
BGBulgarian
CSCzech
DADanish
DEGerman
ELGreek
EN-GBEnglish (British)
EN-USEnglish (American)
ESSpanish
ETEstonian
FIFinnish
FRFrench
HUHungarian
IDIndonesian
ITItalian
JAJapanese
KOKorean
LTLithuanian
LVLatvian
NBNorwegian
NLDutch
PLPolish
PT-BRPortuguese (Brazilian)
PT-PTPortuguese (European)
RORomanian
RURussian
SKSlovak
SLSlovenian
SVSwedish
TRTurkish
UKUkrainian
ZHChinese (simplified)

Preferencje językowe

Kolejność rozwiązywania języka docelowego:

  1. translator_lang w tabeli user_language_prefs (ustawiony przez /setlang)
  2. Język interfejsu użytkownika (z LanguageManager)
  3. Modal z prośbą o ręczny wybór

Preferencja jest globalna — raz ustawiona działa na wszystkich serwerach z ArcBotem.

Limity

LimitWartość
Tekst do tłumaczenia5000 znaków
Plik audio25 MB
Cache klucza API30 minut
Timeout API30s (DeepL), 120s (Groq)

Obsługa błędów

Kod HTTPAkcja
403Nieprawidłowy klucz API — cache unieważniony
456Wyczerpany limit DeepL — informacja dla użytkownika
InneGeneryczny błąd "API error"

Nasłuchiwane zdarzenia

Moduł nie nasłuchuje zdarzeń — działa wyłącznie przez menu kontekstowe i komendy slash.

Wskazówki

Best practices
  • Użyj /setlang raz — bot zapamięta Twój język na stałe
  • DeepL Free pozwala na 500,000 znaków/miesiąc — wystarczające dla większości serwerów
  • Groq API jest opcjonalne — bez niego "Transcribe & Translate" nie będzie dostępne
  • Klucze API DeepL kończące się na :fx to klucze darmowe
Prywatność

Tłumaczenia są wyświetlane efemeralnie (widoczne tylko dla użytkownika). Treść wiadomości jest wysyłana do DeepL/Groq API w celu przetworzenia.