6. Adding a translation#

If your book has a Dutch and an English version you can take the following steps to create a language switch in your Jupyter Book.

Organize your book with the following folders tree:

├── book_EN
|	├── _static
|	|	├── img
|	|	|	├── nl.png
|	|	|	└── en.png
|	|	|
|	|	└── translation.js
|	|
|	├── _config.yml
|	├── _toc.yml
|	└── other files/folders ....		
|	
└──	book_NL
	├── _static
	|	├── img
	|	|	├── nl.png
	|	|	└── en.png
	|	|
	|	└── translation.js
	|
	├── _config.yml
	├── _toc.yml
	└── other files/folders ...	

and make sure that the _static folder is the same in the two book folders (book_EN and book_NL).

You can find the content of the _static folder in this repository

Navigate to the book_EN folder and build the book. If you don’t have python installed make sure to activate the virtual environment.

cd <path>/book_EN
jupyter-book build .

Navigate to the book_NL folder and build that book too.

cd ../book_NL
jupyter-book build .

at this point the folder tree should look like this

├── book_EN
|	├── _build
|	|	├── .doctrees
|	|	└── html		
|	|
|	├── _static
|	|	├── img
|	|	|	├── nl.png
|	|	|	└── en.png
|	|	|
|	|	└── translation.js
|	|
|	├── _config.yml
|	├── _toc.yml
|	└── other files/folders ....		
|	
└──	book_NL
	├── _build
	|	├── .doctrees
	|	└── html		
	|
	├── _static
	|	├── img
	|	|	├── nl.png
	|	|	└── en.png
	|	|
	|	└── translation.js
	|
	├── _config.yml
	├── _toc.yml
	└── other files/folders ...	

rename the html folder of the dutch book to nl. Assuming you are still in the book_NL from the building command

cd _build
mv html nl

move the renamed folder inside the html folder of the english book

cp -r nl ../../book_EN/_build/html

browse the jupyter book with 2 languages at

└── book_EN
	└── _build
		└── html
			└── index.html