Tips en Trucs 2024

Offline vertalen met Argos Translate

Google Translate is geweldig, totdat het dat niet meer is. De kwaliteit van de vertalingen is ontegenzeggelijk indrukwekkend en de apps hebben een aantal echt nuttige functies. Maar zelfs als je ervoor kiest om het feit te negeren dat Google van onze gegevens leeft, dan is er nog de kwestie dat Google Translate niet offline werkt - in ieder geval niet op een Linux-systeem. En zelfs als het dat wel zou kunnen, is er nog steeds iets te zeggen voor het gebruik en de ondersteuning van een open-source alternatief.

Argos Translate, een open-source neurale vertaalmachine die offline werkt en beschikbaar is als een Python bibliotheek, een terminal opdracht, een webapplicatie en een desktop programma. Installeer Argos Translate op je machine, voeg een eenvoudig Bash shell script toe en je kunt direct een tekstselectie vertalen vanuit elke applicatie.

De eerste stap is het installeren van de vereiste pakketten:

dany@pindabook:~$ sudo apt install python3-venv python3-pip xclip
[sudo] wachtwoord voor root: 
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar 
De volgende extra pakketten zullen geïnstalleerd worden:
  binutils binutils-common binutils-x86-64-linux-gnu build-essential dpkg-dev fakeroot g++ g++-12 gcc gcc-12
  libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan8 libatomic1 libbinutils
  libc-dev-bin libc-devtools libc6-dev libcc1-0 libcrypt-dev libctf-nobfd0 libctf0 libdpkg-perl libexpat1-dev
  libfakeroot libfile-fcntllock-perl libgcc-12-dev libgprofng0 libitm1 libjs-sphinxdoc liblsan0 libnsl-dev
  libpython3-dev libpython3.11-dev libstdc++-12-dev libtirpc-dev libtsan2 libubsan1 linux-libc-dev make
  manpages-dev python3-dev python3-distutils python3-lib2to3 python3-pip-whl python3-setuptools
  python3-setuptools-whl python3-wheel python3.11-dev python3.11-venv rpcsvc-proto zlib1g-dev
Voorgestelde pakketten:
  binutils-doc debian-keyring g++-multilib g++-12-multilib gcc-12-doc gcc-multilib autoconf automake libtool flex
  bison gcc-doc gcc-12-multilib gcc-12-locales glibc-doc bzr libstdc++-12-doc make-doc python-setuptools-doc
De volgende NIEUWE pakketten zullen geïnstalleerd worden:
  binutils binutils-common binutils-x86-64-linux-gnu build-essential dpkg-dev fakeroot g++ g++-12 gcc gcc-12
  libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan8 libatomic1 libbinutils
  libc-dev-bin libc-devtools libc6-dev libcc1-0 libcrypt-dev libctf-nobfd0 libctf0 libdpkg-perl libexpat1-dev
  libfakeroot libfile-fcntllock-perl libgcc-12-dev libgprofng0 libitm1 libjs-sphinxdoc liblsan0 libnsl-dev
  libpython3-dev libpython3.11-dev libstdc++-12-dev libtirpc-dev libtsan2 libubsan1 linux-libc-dev make
  manpages-dev python3-dev python3-distutils python3-lib2to3 python3-pip python3-pip-whl python3-setuptools
  python3-setuptools-whl python3-venv python3-wheel python3.11-dev python3.11-venv rpcsvc-proto xclip zlib1g-dev
0 opgewaardeerd, 56 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd.
Er moeten 67,7 MB aan archieven opgehaald worden.
Na deze bewerking zal er 273 MB extra schijfruimte gebruikt worden.
Wilt u doorgaan? [J/n] 
Ophalen:1 http://deb.debian.org/debian bookworm/main amd64 binutils-common amd64 2.40-2 [2.487 kB]
Ophalen:2 http://deb.debian.org/debian bookworm/main amd64 libbinutils amd64 2.40-2 [572 kB]
Ophalen:3 http://deb.debian.org/debian bookworm/main amd64 libctf-nobfd0 amd64 2.40-2 [153 kB]
...
Ophalen:54 http://deb.debian.org/debian bookworm/main amd64 python3.11-venv amd64 3.11.2-6+deb12u2 [5.896 B]
Ophalen:55 http://deb.debian.org/debian bookworm/main amd64 python3-venv amd64 3.11.2-1+b1 [1.200 B]
Ophalen:56 http://deb.debian.org/debian bookworm/main amd64 xclip amd64 0.13-2 [23,3 kB]
67,7 MB opgehaald in 6s (11,6 MB/s)
Extraheren van sjablonen uit pakketten: 100%
Voorheen niet geselecteerd pakket binutils-common:amd64 wordt geselecteerd.
(Database wordt ingelezen ... 173836 bestanden en mappen momenteel geïnstalleerd.)
Uitpakken van .../00-binutils-common_2.40-2_amd64.deb wordt voorbereid...
Bezig met uitpakken van binutils-common:amd64 (2.40-2) ...
...
Voorheen niet geselecteerd pakket xclip wordt geselecteerd.
Uitpakken van .../55-xclip_0.13-2_amd64.deb wordt voorbereid...
Bezig met uitpakken van xclip (0.13-2) ...
Instellen van manpages-dev (6.03-2) ...
Instellen van python3-setuptools-whl (66.1.1-1) ...
Instellen van libfile-fcntllock-perl (0.22-4+b1) ...
...
Instellen van libpython3-dev:amd64 (3.11.2-1+b1) ...
Instellen van python3.11-dev (3.11.2-6+deb12u2) ...
Instellen van python3-dev (3.11.2-1+b1) ...
Bezig met afhandelen van triggers voor man-db (2.11.2-2) ...
Bezig met afhandelen van triggers voor libc-bin (2.36-9+deb12u7) ...

Met Python en pip geïnstalleerd, maak je een virtuele omgeving voor Argos Translate om de afhankelijkheden geïsoleerd te houden van andere Python-projecten.

dany@pindabook:~$ python3 -m venv argostranslate

Activeer de virtuele omgeving voordat je Argos Translate en zijn afhankelijkheden installeert:

dany@pindabook:~$ . argostranslate/bin/activate; cd argostranslate/

Installeer vervolgens Argos Translate

(argostranslate) dany@pindabook:~/argostranslate$ python3 -m pip install argostranslate argostranslategui
Collecting argostranslate
  Downloading argostranslate-1.9.6-py3-none-any.whl (34 kB)
Collecting argostranslategui
  Downloading argostranslategui-1.6.5-py3-none-any.whl (7.6 kB)
Collecting ctranslate2<5,>=4.0
  Downloading ctranslate2-4.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (192.5 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 192.5/192.5 MB 4.9 MB/s eta 0:00:00
Collecting packaging
  Downloading packaging-24.1-py3-none-any.whl (53 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 54.0/54.0 kB 2.8 MB/s eta 0:00:00
Collecting sacremoses==0.0.53
  Downloading sacremoses-0.0.53.tar.gz (880 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 880.6/880.6 kB 2.7 MB/s eta 0:00:00
  Preparing metadata (setup.py) ... -⌫ ⌫done
Collecting sentencepiece==0.2.0
  Downloading sentencepiece-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.3/1.3 MB 11.4 MB/s eta 0:00:00
Collecting stanza==1.1.1
  Downloading stanza-1.1.1-py3-none-any.whl (227 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 227.6/227.6 kB 5.7 MB/s eta 0:00:00
Collecting click
  Downloading click-8.1.7-py3-none-any.whl (97 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 97.9/97.9 kB 6.8 MB/s eta 0:00:00
Collecting joblib
  Downloading joblib-1.4.2-py3-none-any.whl (301 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 301.8/301.8 kB 8.2 MB/s eta 0:00:00
Collecting regex
  Downloading regex-2024.5.15-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (785 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 785.0/785.0 kB 8.8 MB/s eta 0:00:00
Collecting six
  Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting tqdm
  Downloading tqdm-4.66.4-py3-none-any.whl (78 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 78.3/78.3 kB 3.6 MB/s eta 0:00:00
Collecting numpy
  Downloading numpy-2.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (19.3 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 19.3/19.3 MB 9.8 MB/s eta 0:00:00
Collecting protobuf
  Downloading protobuf-5.27.2-cp38-abi3-manylinux2014_x86_64.whl (309 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 309.3/309.3 kB 7.6 MB/s eta 0:00:00
Collecting requests
  Downloading requests-2.32.3-py3-none-any.whl (64 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 64.9/64.9 kB 3.1 MB/s eta 0:00:00
Collecting torch>=1.3.0
  Downloading torch-2.3.1-cp311-cp311-manylinux1_x86_64.whl (779.2 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 779.2/779.2 MB 1.7 MB/s eta 0:00:00
Collecting PyQt5
  Downloading PyQt5-5.15.10-cp37-abi3-manylinux_2_17_x86_64.whl (8.2 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.2/8.2 MB 10.7 MB/s eta 0:00:00
Requirement already satisfied: setuptools in ./lib/python3.11/site-packages (from ctranslate2<5,>=4.0->argostranslate) (66.1.1)
Collecting pyyaml<7,>=5.3
  Downloading PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (757 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 757.7/757.7 kB 10.8 MB/s eta 0:00:00
Collecting PyQt5-sip<13,>=12.13
  Downloading PyQt5_sip-12.15.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.whl (276 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 276.0/276.0 kB 8.3 MB/s eta 0:00:00
Collecting PyQt5-Qt5>=5.15.2
  Downloading PyQt5_Qt5-5.15.14-py3-none-manylinux2014_x86_64.whl (60.5 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 60.5/60.5 MB 7.9 MB/s eta 0:00:00
Collecting filelock
  Downloading filelock-3.15.4-py3-none-any.whl (16 kB)
Collecting typing-extensions>=4.8.0
  Downloading typing_extensions-4.12.2-py3-none-any.whl (37 kB)
Collecting sympy
  Downloading sympy-1.13.0-py3-none-any.whl (6.2 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.2/6.2 MB 10.7 MB/s eta 0:00:00
Collecting networkx
  Downloading networkx-3.3-py3-none-any.whl (1.7 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.7/1.7 MB 10.8 MB/s eta 0:00:00
Collecting jinja2
  Downloading jinja2-3.1.4-py3-none-any.whl (133 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 133.3/133.3 kB 4.3 MB/s eta 0:00:00
Collecting fsspec
  Downloading fsspec-2024.6.1-py3-none-any.whl (177 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 177.6/177.6 kB 5.4 MB/s eta 0:00:00
Collecting nvidia-cuda-nvrtc-cu12==12.1.105
  Downloading nvidia_cuda_nvrtc_cu12-12.1.105-py3-none-manylinux1_x86_64.whl (23.7 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 23.7/23.7 MB 9.4 MB/s eta 0:00:00
Collecting nvidia-cuda-runtime-cu12==12.1.105
  Downloading nvidia_cuda_runtime_cu12-12.1.105-py3-none-manylinux1_x86_64.whl (823 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 823.6/823.6 kB 10.2 MB/s eta 0:00:00
Collecting nvidia-cuda-cupti-cu12==12.1.105
  Downloading nvidia_cuda_cupti_cu12-12.1.105-py3-none-manylinux1_x86_64.whl (14.1 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 14.1/14.1 MB 10.3 MB/s eta 0:00:00
Collecting nvidia-cudnn-cu12==8.9.2.26
  Downloading nvidia_cudnn_cu12-8.9.2.26-py3-none-manylinux1_x86_64.whl (731.7 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 731.7/731.7 MB 1.5 MB/s eta 0:00:00
Collecting nvidia-cublas-cu12==12.1.3.1
  Downloading nvidia_cublas_cu12-12.1.3.1-py3-none-manylinux1_x86_64.whl (410.6 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 410.6/410.6 MB 2.7 MB/s eta 0:00:00
Collecting nvidia-cufft-cu12==11.0.2.54
  Downloading nvidia_cufft_cu12-11.0.2.54-py3-none-manylinux1_x86_64.whl (121.6 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 121.6/121.6 MB 6.0 MB/s eta 0:00:00
Collecting nvidia-curand-cu12==10.3.2.106
  Downloading nvidia_curand_cu12-10.3.2.106-py3-none-manylinux1_x86_64.whl (56.5 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 56.5/56.5 MB 7.9 MB/s eta 0:00:00
Collecting nvidia-cusolver-cu12==11.4.5.107
  Downloading nvidia_cusolver_cu12-11.4.5.107-py3-none-manylinux1_x86_64.whl (124.2 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 124.2/124.2 MB 5.7 MB/s eta 0:00:00
Collecting nvidia-cusparse-cu12==12.1.0.106
  Downloading nvidia_cusparse_cu12-12.1.0.106-py3-none-manylinux1_x86_64.whl (196.0 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 196.0/196.0 MB 3.6 MB/s eta 0:00:00
Collecting nvidia-nccl-cu12==2.20.5
  Downloading nvidia_nccl_cu12-2.20.5-py3-none-manylinux2014_x86_64.whl (176.2 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 176.2/176.2 MB 5.1 MB/s eta 0:00:00
Collecting nvidia-nvtx-cu12==12.1.105
  Downloading nvidia_nvtx_cu12-12.1.105-py3-none-manylinux1_x86_64.whl (99 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 99.1/99.1 kB 6.0 MB/s eta 0:00:00
Collecting triton==2.3.1
  Downloading triton-2.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (168.1 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 168.1/168.1 MB 5.1 MB/s eta 0:00:00
Collecting nvidia-nvjitlink-cu12
  Downloading nvidia_nvjitlink_cu12-12.5.82-py3-none-manylinux2014_x86_64.whl (21.3 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 21.3/21.3 MB 9.9 MB/s eta 0:00:00
Collecting charset-normalizer<4,>=2
  Downloading charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (140 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 140.3/140.3 kB 6.8 MB/s eta 0:00:00
Collecting idna<4,>=2.5
  Downloading idna-3.7-py3-none-any.whl (66 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 66.8/66.8 kB 4.4 MB/s eta 0:00:00
Collecting urllib3<3,>=1.21.1
  Downloading urllib3-2.2.2-py3-none-any.whl (121 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 121.4/121.4 kB 5.9 MB/s eta 0:00:00
Collecting certifi>=2017.4.17
  Downloading certifi-2024.7.4-py3-none-any.whl (162 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 163.0/163.0 kB 5.3 MB/s eta 0:00:00
Collecting MarkupSafe>=2.0
  Downloading MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (28 kB)
Collecting mpmath<1.4,>=1.1.0
  Downloading mpmath-1.3.0-py3-none-any.whl (536 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 536.2/536.2 kB 8.1 MB/s eta 0:00:00
Installing collected packages: sentencepiece, PyQt5-Qt5, mpmath, urllib3, typing-extensions, tqdm, sympy, six, regex, pyyaml, PyQt5-sip, protobuf, packaging, nvidia-nvtx-cu12, nvidia-nvjitlink-cu12, nvidia-nccl-cu12, nvidia-curand-cu12, nvidia-cufft-cu12, nvidia-cuda-runtime-cu12, nvidia-cuda-nvrtc-cu12, nvidia-cuda-cupti-cu12, nvidia-cublas-cu12, numpy, networkx, MarkupSafe, joblib, idna, fsspec, filelock, click, charset-normalizer, certifi, triton, sacremoses, requests, PyQt5, nvidia-cusparse-cu12, nvidia-cudnn-cu12, jinja2, ctranslate2, nvidia-cusolver-cu12, torch, stanza, argostranslate, argostranslategui
  DEPRECATION: sacremoses is being installed using the legacy 'setup.py install' method, because it does not have a 'pyproject.toml' and the 'wheel' package is not installed. pip 23.1 will enforce this behaviour change. A possible replacement is to enable the '--use-pep517' option. Discussion can be found at https://github.com/pypa/pip/issues/8559
  Running setup.py install for sacremoses ... -⌫ ⌫\⌫ ⌫done
Successfully installed MarkupSafe-2.1.5 PyQt5-5.15.10 PyQt5-Qt5-5.15.14 PyQt5-sip-12.15.0 argostranslate-1.9.6 argostranslategui-1.6.5 certifi-2024.7.4 charset-normalizer-3.3.2 click-8.1.7 ctranslate2-4.3.1 filelock-3.15.4 fsspec-2024.6.1 idna-3.7 jinja2-3.1.4 joblib-1.4.2 mpmath-1.3.0 networkx-3.3 numpy-2.0.0 nvidia-cublas-cu12-12.1.3.1 nvidia-cuda-cupti-cu12-12.1.105 nvidia-cuda-nvrtc-cu12-12.1.105 nvidia-cuda-runtime-cu12-12.1.105 nvidia-cudnn-cu12-8.9.2.26 nvidia-cufft-cu12-11.0.2.54 nvidia-curand-cu12-10.3.2.106 nvidia-cusolver-cu12-11.4.5.107 nvidia-cusparse-cu12-12.1.0.106 nvidia-nccl-cu12-2.20.5 nvidia-nvjitlink-cu12-12.5.82 nvidia-nvtx-cu12-12.1.105 packaging-24.1 protobuf-5.27.2 pyyaml-6.0.1 regex-2024.5.15 requests-2.32.3 sacremoses-0.0.53 sentencepiece-0.2.0 six-1.16.0 stanza-1.1.1 sympy-1.13.0 torch-2.3.1 tqdm-4.66.4 triton-2.3.1 typing-extensions-4.12.2 urllib3-2.2.2

Nog even controleren of er iets moet bijgewerkt worden:

(argostranslate) dany@pindabook:~/argostranslate$ argospm update

En we kunnen het vertaalsysteem van het Engels naar het Nederlands downloaden:

(argostranslate) dany@pindabook:~/argostranslate$ argospm install translate-en_nl

En vice versa:

(argostranslate) dany@pindabook:~/argostranslate$ argospm install translate-nl_en

Nu alles geïnstalleerd is kunnen we de virtuele Python omgeving verlaten en terugkeren naar de Home map:

(argostranslate) dany@pindabook:~/argostranslate$ deactivate
dany@pindabook:~/argostranslate$ cd

Om te controleren of Argos Translate correct werkt, voer je opdracht argos-translate --from en --to nl “Hello World!” uit. De uitvoer zou de vertaling moeten bevatten.

dany@pindabook:~$ argostranslate/bin/argos-translate --from en --to nl "Hello World!"
Hallo wereld!

Of je start het grafisch Desktop programma met de opdracht:

dany@pindabook:~$ argostranslate/bin/argos-translate-gui
Argos Translate

Tijd om met behulp van een script het vertalen te vereenvoudigen. We beginnen met het aanmaken van een map voor persoonlijke opdrachten (programma's):

dany@pindabook:~$ mkdir -p $HOME/bin

Deze map voegen we toe aan de systeemvariabele PATH waardoor de persoonlijke opdrachten map eenvoudiger toehankelijk wordt (zonder het opgeven van het volledige pad):

dany@pindabook:~$ echo "export PATH=$HOME/bin:$PATH" >>$HOME/.bashrc

Dit wordt pas actief na de volgende terminal herstart, maar kunnen we met de volgende opdracht manueel activeren:

dany@pindabook:~$ export PATH=$HOME/bin:$PATH

Nu over naar het shellscript. Gebruik de teksteditor van je voorkeur (hier nano) om een leeg tekstbestand te maken:

dany@pindabook:~$ nano bin/nl-en.sh

En voer de onderstaande code in:

#!/usr/bin/env bash
if [ ! -x "$(command -v ~/argostranslate/bin/argos-translate)" ] || [ ! -x "$(command -v xclip)" ]; then
    echo "Zorg ervoor dat Argos Translate en xclip op uw systeem geïnstalleerd zijn"
    exit 1
fi
if [ -z "$1" ]; then
    s=$(xclip -o)
else
    s="$1"
fi
echo -e "$s" >> nl-en.txt
echo "---" >> nl-en.txt
~/argostranslate/bin/argos-translate --from nl --to en "$s" | xclip
t=$(xclip -o)
echo -e "$t\n" >> $HOME/nl-en.txt
notify-send "$t"

Sla het bestand op onder de naam nl-en.sh in de map ~/bin. Maak het script uitvoerbaar met de volgende opdracht:

dany@pindabook:~$ chmod +x ~/bin/nl-en.sh

Daar het script gebruik maakt van de opdracht notify-send, wat deel uitmaakt van het softwarepakket libnotify-bin, installeren we dit:

dany@pindabook:~$ sudo apt install libnotify-bin
[sudo] wachtwoord voor root: 
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar 
De volgende NIEUWE pakketten zullen geïnstalleerd worden:
  libnotify-bin
0 opgewaardeerd, 1 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd.
Er moeten 17,3 kB aan archieven opgehaald worden.
Na deze bewerking zal er 50,2 kB extra schijfruimte gebruikt worden.
Ophalen:1 http://deb.debian.org/debian bookworm/main amd64 libnotify-bin amd64 0.8.1-1 [17,3 kB]
17,3 kB opgehaald in 0s (462 kB/s) 
Voorheen niet geselecteerd pakket libnotify-bin wordt geselecteerd.
(Database wordt ingelezen ... 181739 bestanden en mappen momenteel geïnstalleerd.)
Uitpakken van .../libnotify-bin_0.8.1-1_amd64.deb wordt voorbereid...
Bezig met uitpakken van libnotify-bin (0.8.1-1) ...
Instellen van libnotify-bin (0.8.1-1) ...
Bezig met afhandelen van triggers voor man-db (2.11.2-2) ...

Je kunt nu elke tekst op het klembord van het Engels naar het Nederlands laten vertalen door de opdracht nl-en.sh uit te voeren.
Engels naar Nederlands

We zijn bijna klaar. De laatste stap is het toewijzen van een sneltoets aan het script. Om dit te doen in KDE, open je Systeeminstellingen, activeer je naar de sectie Sneltoetsen en maak je een nieuwe sneltoets aan met de knop . Voer het scriptbestand ~/bin/nl-en.sh in.

Dat is alles. Selecteer een tekst die je wilt vertalen, druk op de opgegeven snelteots en je zou de vertaling moeten zien in een popupmelding. Het script slaat alle tekstselecties en hun vertalingen op in het bestand nl-en.txt, voor het geval je ze later nog eens wilt bekijken.

Argos Translate verwijderen