YATTA (Yet Another Text Translation Addon) to bezpłatny dodatek dla screenreadera NVDA, którego autorem jest nasz stały współpracownik Piotr Machacz.
Dodatek tłumaczy ostatnią wypowiedź NVDA, zaznaczony tekst albo zawartość schowka, a w wybranych programach i grach może automatycznie przekładać treść odczytywaną przez czytnik ekranu. Obsługuje Google Translate, Bing, DeepL, OpenAI, Gemini i lokalne modele uruchamiane przez Ollamę. Posiada osobne ustawienia dla aplikacji oraz rozbudowaną pamięć tłumaczeń, która potrafi rozpoznawać zmienne liczby w powtarzających się komunikatach.
YATTA jest dodatkiem do NVDA przygotowanym przede wszystkim do szybkiego tłumaczenia interfejsów programów i gier. Może pracować na żądanie albo automatycznie, a ustawienia automatycznego tłumaczenia są zapamiętywane oddzielnie dla każdej aplikacji.
Dodatek łączy klasyczne serwisy tłumaczeniowe z usługami opartymi na dużych modelach językowych. Wynik może zostać odczytany mową albo pokazany w wiadomości obsługującej tryb przeglądania NVDA. Drugi sposób ułatwia spokojne przeczytanie dłuższego przekładu, poruszanie się po nim i kopiowanie fragmentów.
Pamięć tłumaczeń działa osobno dla programu i pary języków. Dzięki temu powtarzający się komunikat może zostać obsłużony bez kolejnego zapytania do usługi. YATTA obsługuje również dynamiczne wpisy oparte na wyrażeniach regularnych, co ma znaczenie w grach, gdzie zdanie pozostaje takie samo, ale zmieniają się nazwy, punkty, poziomy lub inne liczby.
Instalacja i szybki start
YATTA wymaga co najmniej NVDA 2025.3.3. Autor oznaczył NVDA 2026.1 jako ostatnią przetestowaną wersję.Rozszerzenia oczywiście można pobrać I zainstalować w standardowy sposób. Drugą możliwością jest użycie w sklepie z dodatkami NVDA przycisku instalacji ze źródła zewnętrznego.
Dodatek domyślnie korzysta z Google Translate, automatycznie rozpoznaje język źródłowy i tłumaczy na język interfejsu NVDA. Główne ustawienia znajdują się w oknie ustawień NVDA, w kategorii YATTA.
Skrót, który warto zapamiętać: NVDA+Shift+T otwiera warstwę poleceń YATTA. Po jej uruchomieniu wybiera się funkcję pojedynczą literą.
Polecenia w warstwie NVDA+Shift+T
- T – tłumaczy ostatnią frazę wypowiedzianą przez NVDA.
- S – tłumaczy zaznaczony tekst w dokumencie, programie albo na stronie internetowej.
- C – tłumaczy tekst znajdujący się w schowku.
- Shift+T, Shift+S i Shift+C – wykonują odpowiednie tłumaczenie, lecz pokazują wynik w wiadomości z trybem przeglądania zamiast ograniczać się do odczytu mową.
- A – włącza albo wyłącza automatyczne tłumaczenie treści odczytywanej przez NVDA w aktywnej aplikacji.
- W – zamienia język źródłowy z docelowym. Polecenie nie działa, gdy język źródłowy jest ustawiony na automatyczne wykrywanie.
- – otwiera ustawienia przeznaczone dla aktywnej aplikacji.
- E – otwiera edytor pamięci tłumaczeń.
Każde z tych poleceń można również przypisać do własnego, bezpośredniego skrótu w oknie Zdarzenia wejścia NVDA. Używanie warstwy nie jest więc obowiązkowe, jeżeli ktoś woli osobne kombinacje klawiszy.
Automatyczne tłumaczenie
Po włączeniu poleceniem A YATTA tłumaczy treści użytkownika zawarte w wypowiedziach NVDA. Ponieważ dodatek musi poczekać na odpowiedź usługi, między naciśnięciem klawisza a rozpoczęciem mowy może pojawić się opóźnienie. Przetłumaczony tekst trafia jednak do pamięci, więc ponowne wystąpienie tej samej frazy powinno zostać obsłużone szybciej.
Stan automatycznego tłumaczenia jest przechowywany dla bieżącego programu. Po przejściu do innej aplikacji tłumaczenie przestaje działać, jeżeli nie zostało w niej osobno włączone. Po powrocie do wcześniej obsługiwanego programu znów staje się aktywne.
Od wersji 2.0 domyślnie działa filtr pozostawiający bez zmian informacje generowane przez NVDA, takie jak role i stany kontrolek, pozycja elementu oraz dane o formatowaniu. Tłumaczona ma być przede wszystkim właściwa nazwa lub treść. Ustawienie można wyłączyć, lecz zwykle pomaga ono zachować zrozumiały sposób odczytu interfejsu.
Obsługiwane usługi tłumaczeniowe
- Google Translate i Bing – klasyczne usługi internetowe, niewymagające w YATTA wpisywania klucza API.
- DeepL – internetowa usługa tłumaczeniowa wymagająca własnego klucza API.
- OpenAI i Gemini – usługi oparte na modelach językowych; wymagają klucza API, wyboru modelu oraz odpowiednich promptów.
- Ollama – pozwala połączyć YATTA z modelem uruchomionym lokalnie, domyślnie na tym samym komputerze co NVDA. Można też wskazać inny adres serwera Ollamy.
Przy usługach opartych na modelach językowych YATTA może strumieniować odpowiedź. Tłumaczenie jest wtedy odczytywane w miarę napływania, bez czekania na zakończenie całego wyniku. Dokumentacja autora zaleca pozostawienie tej opcji włączonej ze względu na krótszy odczuwalny czas oczekiwania.
Ustawienia globalne
Widoczna zawartość kategorii YATTA zależy od wybranej usługi. Ustawienia niepotrzebne dla danego dostawcy są ukrywane. Dostępne są między innymi następujące opcje:
- Usługa tłumacząca – wybór używanego dostawcy.
- Język źródłowy i docelowy – wybór przez wpisanie nazwy albo wskazanie pozycji na liście. W klasycznych usługach lista obsługiwanych języków jest pobierana z serwera.
- Klucz API – pole wyświetlane dla usług, które go wymagają: DeepL, OpenAI i Gemini.
- Adres lub bazowy URL Ollamy – miejsce działania lokalnego albo zdalnego serwera Ollamy.
- Model – nazwa modelu LLM wpisana ręcznie albo wybrana z listy przyciskiem Wybierz model.
- Prompt systemowy i prompt użytkownika – instrukcje przekazywane modelowi. Przycisk wczytywania domyślnych promptów może uzupełnić ustawienia zalecane dla obsługiwanego modelu, na przykład translategemma.
- Strumieniowanie odpowiedzi – odczytywanie odpowiedzi modelu w miarę jej generowania.
- Zapisywanie pamięci na dysku – zachowanie pamięci tłumaczeń przy zamykaniu NVDA. Po wyłączeniu wpisy pozostają tylko w pamięci operacyjnej bieżącej sesji.
- Oddzielanie liczb podczas tłumaczenia – automatyczne tworzenie dynamicznych wpisów pamięci dla zdań zawierających liczby.
- Nietłumaczenie komunikatów NVDA – zachowywanie ról, stanów, położenia i informacji o formatowaniu generowanych przez czytnik ekranu. Opcja jest domyślnie włączona.
- Automatyczna zamiana języków – ponowne wykonanie tłumaczenia w przeciwnym kierunku, gdy klasyczna usługa wykryje, że tekst jest już w języku docelowym. Funkcja wymaga dwóch zapytań i może działać mniej pewnie przy krótkich tekstach.
- Dźwięk podczas dłuższych operacji – kliknięcie odtwarzane co dwie sekundy jako informacja, że tłumaczenie nadal trwa.
Zmienne używane w promptach
W promptach dla modeli językowych można umieszczać znaczniki, które YATTA zastępuje właściwymi danymi w chwili tłumaczenia:
- {SOURCE_LANG} – angielska nazwa języka źródłowego, na przykład Japanese.
- {SOURCE_CODE} – kod języka źródłowego, na przykład ja.
- {TARGET_LANG} – angielska nazwa języka docelowego.
- {TARGET_CODE} – kod języka docelowego.
- {TEXT} – tekst przeznaczony do tłumaczenia.
Ustawienia osobne dla aplikacji
Polecenie O otwiera ustawienia bieżącego programu. Można w nich nadpisać między innymi języki, prompty, sposób zapisywania pamięci oraz automatyczne oddzielanie liczb. Przykładowo gra może korzystać ze ściśle określonej pary języków i dynamicznej pamięci, a przeglądarka z ustawień globalnych i automatycznego wykrywania języka.
Przycisk Resetuj usuwa konfigurację konkretnego programu i przywraca wartości globalne. Polecenie W zmienia języki dla aktywnej aplikacji, jeżeli ma ona własny profil; w przeciwnym razie modyfikuje ustawienie globalne.
Pamięć tłumaczeń i wpisy dynamiczne
YATTA przechowuje zwykłe wpisy, w których dokładny tekst źródłowy odpowiada gotowemu tłumaczeniu, oraz wpisy dynamiczne korzystające z wyrażeń regularnych. Pamięć jest rozdzielana według aplikacji i języka. Edytor otwierany poleceniem E pozwala dodawać oraz zmieniać wpisy ręcznie.
Automatyczne oddzielanie liczb jest prostszą wersją tego mechanizmu. Z komunikatu w rodzaju „You have obtained 30 gold” liczba zostaje wydzielona jako zmienna. Gdy później pojawi się 20 albo 150 sztuk złota, dodatek może wykorzystać to samo tłumaczenie i podstawić nową wartość.
W ręcznie przygotowanym wyrażeniu regularnym grupy dopasowania można wstawić do przekładu na dwa sposoby. Znacznik {T1}, {T2} i kolejne poleca osobno przetłumaczyć zawartość danej grupy. Znacznik {P1}, {P2} i kolejne wstawia przechwycony fragment bez tłumaczenia; jest to szczególnie przydatne dla liczb.
Przykład wyniku: {T1}, {T2}, {P3} punktów życia i {P4} kart w talii.
Jeżeli model pominie wymagany znacznik, YATTA ma ostrzec o brakującej wartości, odczytać ją i nie zapisywać wadliwego tłumaczenia do pamięci. W takiej sytuacji autor sugeruje określenie języka źródłowego, zmianę usługi, przygotowanie dokładniejszego wpisu dynamicznego albo wyłączenie oddzielania liczb.
Kiedy nie oddzielać liczb: funkcja jest przeznaczona głównie do powtarzalnych komunikatów programów i gier. Przy zwykłych artykułach, wiadomościach lub wpisach w mediach społecznościowych lepiej pozostawić liczby w tekście, aby usługa zachowała daty i formatowanie.
Lokalne tłumaczenie przez Ollamę
Ollama pozwala uruchomić model tłumaczeniowy na własnym komputerze. W takim układzie tekst nie musi być wysyłany do zewnętrznej usługi internetowej, ale Ollamę i wybrany model należy zainstalować osobno. Szybkość i jakość zależą od modelu oraz sprzętu.
Autor wskazuje model translategemma jako punkt wyjścia. Według jego dokumentacji wariant 12B zajmuje około 8 GB pamięci i jest przeznaczony raczej dla karty z 12 GB VRAM. Wariant 4B ma zajmować około 3 GB i może być lepszy przy mniejszej ilości pamięci albo zbyt wolnym działaniu wersji 12B.
ollama pull translategemma:12b
Aby pobrać mniejszy wariant, w poleceniu należy zastąpić 12b przez 4b. Autor zaleca minimalny rozmiar kontekstu 4096, ponieważ YATTA nie utrzymuje kontekstu rozmowy i dzieli dłuższe teksty na fragmenty po 4000 znaków. Wersja 2.0.1 zwiększyła limit oczekiwania na odpowiedź Ollamy do 30 sekund; wersja 2.0 dodała też komunikat informujący o ładowaniu lokalnego modelu.
Modele mogą pomijać znaczniki używane przez dynamiczną pamięć. Domyślny prompt YATTA dla Ollamy próbuje temu zapobiegać, ale nie daje gwarancji. Jawne wskazanie języka źródłowego i docelowego może poprawić dokładność, także poza modelami językowymi.
Co zmieniły wersje 2.0 i 2.0.1
- Wersja 2.0.1 – wydłużyła limit oczekiwania na odpowiedź Ollamy do 30 sekund.
- Wersja 2.0 – dodała domyślnie włączone zachowywanie komunikatów NVDA, obejmujące role, stany, pozycję i formatowanie.
- Wersja 2.0 – wydłużyła wcześniejszy limit Ollamy do 20 sekund i dodała komunikat o ładowaniu modelu.
- Wersja 2.0 – naprawiła błąd tłumaczeń OpenAI występujący przy znakach spoza zestawu Latin-1.
Prywatność, jakość i ograniczenia
Sam dodatek według autora nie gromadzi informacji, ale podczas korzystania z Google Translate, Bing, DeepL, OpenAI lub Gemini tłumaczony tekst trafia do wybranej usługi. Przed przekazaniem prywatnych albo poufnych treści należy sprawdzić zasady danego dostawcy. Lokalna Ollama pozwala ograniczyć przesyłanie treści poza komputer, o ile sam serwer rzeczywiście działa lokalnie.
Ani dodatek, ani dostawca usługi nie gwarantują poprawności przekładu. Modele językowe mogą tworzyć błędne odpowiedzi, a klasyczne tłumacze również popełniają błędy. Tłumaczenia ważnych dokumentów, instrukcji bezpieczeństwa albo danych wrażliwych powinny zostać sprawdzone przez człowieka znającego język.
Opis przygotowano na podstawie dokumentacji, polskiego pliku pomocy, kodu źródłowego i metadanych najnowszego wydania.
Licencja, rozwój i inspiracje
YATTA jest projektem bezpłatnym i otwartym, udostępnionym na licencji GPL 3. Błędy, propozycje funkcji i nowe tłumaczenia można zgłaszać w systemie zgłoszeń repozytorium. Projekt wykorzystuje rozwiązania inspirowane wcześniejszymi dodatkami JGT, Instant Translate i NVDA Translate.
Zgłoś błąd lub propozycję w repozytorium YATTA
Najważniejsze odsyłacze
Aktualny plik instalacyjny: pobierz YATTA 2.0.1 (plik NVDA-ADDON)
Najnowsza wersja w przyszłości: otwórz stronę najnowszego wydania YATTA
Wszystkie wersje: przejdź do pełnej listy wydań YATTA
Projekt i pełna dokumentacja: repozytorium YATTA autora dodatku
Źródła
- Repozytorium i instrukcja YATTA – opis funkcji, poleceń, ustawień, pamięci tłumaczeń i zasad prywatności
- Najnowsze wydanie YATTA – bieżąca strona wydania, aktualizowana po publikacji nowej wersji
- Wydanie YATTA 2.0.1 – data publikacji, lista zmian i plik instalacyjny
- Historia zmian – zmiany w wersjach 2.0 i 2.0.1
- Metadane pakietu dodatku – wersja, zgodność z NVDA i licencja


