Skip to main content

latex-ji18n (LaTeX + Jinja2 + YAML = i18n)

Set of tools to render LaTeX documents in multiple languages using Jinja2 Python library and some conventions inspired by jekyll-multiple-languages-plugin.

So you have a LaTeX document that you want to internationalize. The first step is convert your project in a template. Using latex-ji18n command line tool, you can render YAML files into LaTeX Jinja2 templates.

Install

You need a pdflatex binary available at your system PATH. Then run:

pip install latex-ji18n

Separation of data, style and layout

Next structure of directories is the workflow that imposes this utility working with it:

 ├── _config
 │   ├── data.yml
 │   ├── layout.yml
 │   ├── style.yml
 │   └── _private    (optional)
 │       ├── data.yml
 │       └── layout.yml
 ├── dist
 │   ├── en.pdf
 │   ├── es.pdf
 │   └── fr.pdf
 ├── _i18n
 │   ├── _private    (optional)
 │   │   └── es.yml
 │   ├── en.yml
 │   ├── es.yml
 │   └── fr.yml
 └── src
     ├── template.tex
     ├── assets.jpg
     └── references.bib

The process is simple, you write your replacements in src/template.tex Jinja2 template file with \BLOCK{} and \VAR{} syntax, write your data or options inside _i18n/ and _config/ folders YAML files, run latex-ji18n to compile the PDFs and you will see each one for each language in dist/ folder.

Convention for separate data files

  • _private/: Directories that stores all the sensitive data that you don't want to include, for example, sharing your repositorie with GIT. This folders are totally optional. Inside each one, you must keep the same files structure that in _i18n/ and _config/ directories.
  • data.yml: Data that you want to include in the context, at the root of the dictionary, common to all languages. All the fields stored here are included at the root of the context. You can't include the fields layout nor style in the root of the context for data files.
  • layout.yml: Designed to store some layout options for the template. Fields stored here are available for the context in the layout dictionary.
  • style.yml: Designed to store style options for the template. Fields stored here are available for the context in the style dictionary.
  • _i18n/{language}.yml: Overrides data for the context. Designed to localize your data output. An output file will be created for every {language}.yml file, with the name of {language}.pdf.

Context creation

The contexts are created updating a dictionary iterating over files in next order:

  • config/data.yml
  • config/layout.yml
  • config/style.yml
  • config/_private/data.yml
  • config/_private/layout.yml
  • config/_private/style.yml
  • _i18n/{language}.yml
  • _i18n/_private/{language}.yml

Context data is dumped following next rules:

  • All the data located in data.yml files is dumped at the root of the context.
  • Data located in layout.yml files are dumped into a layout variable at the root of the context.
  • Data located in style.yml files are dumped into a style variable at the root of the context.
  • If src/ directory contains .bib files, database entries located at this files will be available ordered by entry type at _bibdb variable at the root of the context.

Metadata

Release files for latex-ji18n 0.0.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for latex-ji18n 0.0.6
File Size Uploaded
latex-ji18n-0.0.6.tar.gz 12.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for latex-ji18n 0.0.6
File Interpreter ABI Platform
latex_ji18n-0.0.6-py3-none-any.whl Python 3 none any Details

Total release size: 25.0 kB

Release files / latex-ji18n-0.0.6.tar.gz

Download URL latex-ji18n-0.0.6.tar.gz
Size 12.3 kB
Tags Source
SHA-256 checksum
How to use checksums
abb77e44156aef0ffdfe2adf0f3219dd56505bdde3884006c8913208e23e9955
BLAKE2b-256 checksum
How to use checksums
2dbd528a3ace9ea3ec5e1be56808335a0d2f9c65d88f9ac0e417916ac3b312a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.8.6

Release files / latex_ji18n-0.0.6-py3-none-any.whl

Download URL latex_ji18n-0.0.6-py3-none-any.whl
Size 12.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1f32758282804110a565df28d077accbe264932db0b4a1bcf968df87c504ebc7
BLAKE2b-256 checksum
How to use checksums
c3fdf75c3727310ee7fa71497eee4e40a064daa55963c3d211d2ee19423f5c55
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.8.6

Release history Release notifications | RSS feed

This release

0.0.6 This release

2 release files

0.0.4

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page