Skip to main content

A Python script for translating Jupyter notebook files.

Project description

Jupyter Translate: a Python script for translating Jupyter notebook files

[version 2024]

This script was created as a general-purpose translator for Jupyter notebooks, translating across different languages (the default source language is English). Install it with:

pip install jupyter_translate

or

pip install .

After installed, you can use it but running the following command in the terminal:

jupyter_translate test_Notebook_en.ipynb --target pt

A new file named test_Notebook_en_pt.ipynb will be created (or the code of the language you decided to use). There is also a script for automatically translating all .ipynb files in a folder and its subfolders. Additionally, you can use a version of the script that converts from/to any language, like:

jupyter_translate test_Notebook_pt.ipynb --source pt --target en

The program translates markdown content, comments in code cells, and messages formatted in print(f" ... ").

Translator Options:

By default, jupyter-translate uses googletrans on its backend. However, you can specify a different translator using the --translator option. Here’s how to use it:

python jupyter_translate.py test_Notebook_en.ipynb --target pt --translator='mymemory'

Currently supported translators are:

  • google (default)
  • mymemory

**Caution:** If you are using `mymemory` as backend translator, the language codes are different. The script will show you the codes. Make sure to specify the correct `--source` and `--target` language codes supported by the selected translator. The --language option can be set to any of the following (codes from default `googletrans`:
Code Language Code Language Code Language Code Language
af afrikaans sq albanian am amharic ar arabic
hy armenian az azerbaijani eu basque be belarusian
bn bengali bs bosnian bg bulgarian ca catalan
ceb cebuano ny chichewa zh-cn chinese (simplified) zh-tw chinese (traditional)
co corsican hr croatian cs czech da danish
nl dutch en english eo esperanto et estonian
tl filipino fi finnish fr french fy frisian
gl galician ka georgian de german el greek
gu gujarati ht haitian creole ha hausa haw hawaiian
iw hebrew hi hindi hmn hmong hu hungarian
is icelandic ig igbo id indonesian ga irish
it italian ja japanese jw javanese kn kannada
kk kazakh km khmer ko korean ku kurdish (kurmanji)
ky kyrgyz lo lao la latin lv latvian
lt lithuanian lb luxembourgish mk macedonian mg malagasy
ms malay ml malayalam mt maltese mi maori
mr marathi mn mongolian my myanmar (burmese) ne nepali
no norwegian ps pashto fa persian pl polish
pt portuguese pa punjabi ro romanian ru russian
sm samoan gd scots gaelic sr serbian st sesotho
sn shona sd sindhi si sinhala sk slovak
sl slovenian so somali es spanish su sundanese
sw swahili sv swedish tg tajik ta tamil
te telugu th thai tr turkish uk ukrainian
ur urdu uz uzbek vi vietnamese cy welsh
xh xhosa yi yiddish yo yoruba zu zulu
fil Filipino he Hebrew

Other options:

--delay:
The delay in seconds between retries in case of connection issues. The default is 10 seconds. Adjusting this can help if you're facing connectivity issues, especially behind firewalls.

python jupyter_translate.py my_notebook.ipynb --target es --delay=15

--rename:
If specified, this option will rename the original notebook file after the translation is complete. This can be useful if you want to keep the translated version as the primary file.

python jupyter_translate.py my_notebook.ipynb --target es --rename

--print:
Use this option if you want to print the translations directly to the console as they happen.

python jupyter_translate.py my_notebook.ipynb --target es --print

Implementation notes:

To set up a working Conda environment to use this tool, you must install a newer version of deep-translator via pip, as well as a few other libraries. You can do this with the included environment file. In your terminal, enter:

conda env create --file environment.yml
conda activate jtranslate

You can also reset the environment by running:

conda deactivate
conda remove --name jtranslate --all
conda env create -f environment.yml
conda activate jtranslate

Note: Copy and execute each line one by one—do not run them as a block. Caution: The googletrans API, as used by deep-translator, may face connectivity issues if you're behind a firewall. To improve accessibility in such environments, consider using the --delay option to introduce a pause between retries.

If you have any question or suggestion, use the pull request or discussion option in github.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jupyter_translate-2024.0.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

jupyter_translate-2024.0-py3-none-any.whl (8.2 kB view details)

Uploaded Python 3

File details

Details for the file jupyter_translate-2024.0.tar.gz.

File metadata

  • Download URL: jupyter_translate-2024.0.tar.gz
  • Upload date:
  • Size: 8.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for jupyter_translate-2024.0.tar.gz
Algorithm Hash digest
SHA256 06f1336dfabea70f23036d49961e74fa92d91ab0d52bb160a484f5842899b943
MD5 db762f03b6873d0f3a4e9bf52e263e55
BLAKE2b-256 95197c75894339ec6336ebd5b26ec50a0836e574ef7d17063cd1c9d3f9084020

See more details on using hashes here.

File details

Details for the file jupyter_translate-2024.0-py3-none-any.whl.

File metadata

File hashes

Hashes for jupyter_translate-2024.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bbb873ff0f7eab51bd25740558f8d01242353439d252052bf451d35403fb4333
MD5 460f735c4e303e57e488364a43769480
BLAKE2b-256 a2fbd283515f1d20b2b98cfc55f0d2351715d4f011b2e956cb80eaffb8edbe30

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page