Jak włączyć obsługę języka arabskiego w terminalu GNOME?


32

Próbuję pisać po arabsku w aplikacji terminalowej, ale nie rozpoznaje tekstu od prawej do lewej i nie wiąże ze sobą arabskich liter tak, jak powinno.

Wypróbowałem to rozwiązanie https://bugs.launchpad.net/ubuntu/+source/vte/+bug/263822, ale nie zadziałało.

Czy są jakieś plany wdrożenia arabskiego wsparcia w terminalu gnome? Terminal Konsoli KDE działa bez żadnych problemów.


1
Co się stało, gdy wypróbowałeś bugs.launchpad.net/ubuntu/+source/vte/+bug/263822 ?
NN

2
dlaczego potrzebujesz pisać arabski na terminalu i dlaczego chcesz to pisać od prawej do lewej?
Black Block

1
FYI: Arabski jest zwykle pisany od prawej do lewej . Podobnie jak kilka innych języków, stary hebrajski przełącza się nawet z prawej na lewą i od lewej do prawej . Tradycyjne japońskie pismo zaczyna się od prawego górnego rogu strony i przechodzi w dół w kolumnie, a następna „linia” glifów po prawej stronie. To daje im także książki, które są czytane z prawej okładki, przewracając strony w lewo, aż do końca książki (zachodnia okładka).
david6,

Czy potrzebujesz sesji od lewej do prawej i od prawej do lewej podczas dowolnej sesji? Czy używasz emulacji terminala (sekwencje specjalne, pełny ekran, układ pola), czy jest to TYLKO dla wiersza poleceń?
david6,

@ Naruto dla mnie potrzebuję wsparcia w języku arabskim, ponieważ korzystam z treminalnego klienta IRC, a dołączenie do kanału arabskiego spowoduje wyświetlenie zniekształconych słów w kliencie. Nie jestem pewien co do niego.
Suhaib

Odpowiedzi:


10

W przypadku 64-bitowego systemu Ubuntu należy pobrać ten pakiet

zamiast. Chyba miałeś problem z zależnością. Trzeba również zainstalować aplikacje wymienione powyżej za pomocą tego polecenia.

sudo apt-get install libfribidi0 libfribidi-dev

Mam nadzieję, że to może pomóc


9

spróbuj tego: sudo apt-get install libfribidi0 libfribidi-devzainstaluj TEN pakiet, a następnie vim /usr/share/applications/gnome-terminal.desktopdodaj ten kod do dokumentu:

Terminal=true
Exec=/usr/bin/bicon.bin

W Ubuntu 13.04 zainstalowałem te pakiety, ale mogę znaleźć bicon.bin w dowolnym miejscu ...
Ba7a7chy 30.04.2013

Chcę, aby fribidi działało na Linux Suse. Zainstalowałem Fribidi, podążając za instalatorem na jego oficjalnej stronie, jednak nie widzę żadnych zmian w terminalu. Próbuję zypper install libfribidi0dostać błąd: Loading repository data... Reading installed packages... 'libfribidi0' not found in package names. Trying capabilities. No provider of 'libfribidi' found. Resolving package dependencies.szukałem i nie otrzymałem ani jednego rezultatu. Jakie pakiety powinienem mieć?
Neeku

7

Użyj Mlterm, ma świetne wsparcie dla arabskich i innych znaków niełacińskich. Możesz pobrać go z repozytoriów Ubuntu

Zdjęcie Mlterm pokazujące język arabski


Możesz go pobrać z repozytoriów Ubuntu
Damascene

Możesz edytować swoje pytanie, aby dodać treść komentarza i uczynić go bardziej przydatnym.
Jakuje

Zainstalowałem go i wydaje się, że nie działa, znaki arabskie to tylko pudełka. Może używa niewłaściwej czcionki?
Flimm

@Flimm upewnij się, że ustawienie kodowania to iso-8859-6 lub Windows, lub równoważne IBM
Błąd

@ Błąd Ostatnio wypróbowałem mlterm i wydawało się, że działa. Cieszę się, że nie musiałem próbować iso-8859-6, jeśli mam być szczery, życie jest o wiele prostsze, gdy wszystko korzysta z UTF-8.
Flimm,

4

Aktualizacja

Jak wspomniano w swoim komentarzu egmont , implementacja BiDi zbliża się do vteemulatora terminala. Sprawdź jego odpowiedź, która jest ostatnią aktualizacją dotyczącą tego tematu.

Oto odniesienie, jeśli szukasz szczegółów: https://terminal-wg.pages.freedesktop.org/bidi/


Oryginalna odpowiedź

Nie, nie ma planów wdrożenia obsługi RTL w gnome-terminalżadnym terminalu, na vteprzykład w przypadku synapticterminala instalacyjnego.

  • Możesz fribidiprzekazać swoje polecenie za pomocą polecenia, aby wykonać bidi i podstawowe kształtowanie arabskiego.
  • Możesz także użyć konsole(KDE) lub mltermtego, który zaimplementował częściową obsługę bidi i kształtowania Unicode.

Obecnie nie ma prawidłowego sposobu implementacji tych algorytmów Unicode dla konsol. (Te implementacje w konsoli i mlterm są rodzajem obejścia)

Oto fragment postu Behdada Esfahboda , on jest głównym twórcą HarfBuzz (w skrócie, silnik kształtowania tekstu OpenType)

Emulatory terminali z obsługą złożonego tekstu to bardzo dziwne hybrydy. Z jednej strony emulatory terminali muszą układać tekst we wstępnie zdefiniowanej siatce w określony sposób, co jest sprzeczne z wieloma aspektami i wymaganiami złożonego tekstu, z drugiej strony użytkownicy wymagają obsługi złożonego tekstu w swoich terminalach. Staje się brzydsze, gdy myślisz o tekście dwukierunkowym, powiedzmy, w edytorze tekstu konsoli. Niemniej jednak można śmiało powiedzieć, że takie hybrydy nie nakładają żadnych nowych wymagań na silnik kształtujący. gnome-terminal nie obsługuje obecnie złożonego tekstu oprócz łączenia znaków. Konsola ma dwukierunkową obsługę tekstu. Aplikacja terminalowa Apple ma co najmniej obsługę BiDi, a także obsługę kształtowania arabskiego, nie jest pewna innego złożonego tekstu. Aktualizacja (18 stycznia 2010 r.): Tryb terminalu (term i ansi-term) w najnowszych wersjach Emacsa może wyświetlać złożony tekst, w tym indykator.

Źródło: stan renderowania tekstu

Oto odpowiedni raport o błędzie w błędzie Launchpad nr 263822: Obsługa RTL (od prawej do lewej) w terminalu (BiDi) .


1
„Nie, nie ma planów wdrożenia obsługi RTL w gnome-terminalżadnym terminalu lub od tego zależy vte” - Tak było, kiedy opublikowałeś tę odpowiedź i na szczęście już tak nie jest. Zobacz moją odpowiedź dotyczącą aktualizacji.
egmont

3

GNOME Terminal 3.34 obsługuje skrypty od prawej do lewej, takie jak arabski.

Praca faktycznie przeszła do wersji VTE 0.58, więc każdy inny emulator terminala korzystający z VTE (np. Tilix, Terminator, Xfce Terminal, Guake ...) automatycznie ją odbierze.

Będzie debiutować w Ubuntu 19.10 Eoan Ermine.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.