A Python-based tool for generating language reference sheets from a structured SQLite database.
The program queries stored vocabulary and produces formatted output in multiple formats, including plain text, HTML, and LaTeX. It is designed to minimise manual formatting work by automating the transformation from raw data to readable reference material.
-
Structured vocabulary storage using SQLite
-
Supports multiple languages:
- German (DE)
- Spanish (ES)
- French (FR)
- Italian (IT)
-
Supports multiple word types:
- Nouns
- Verbs
- Adjectives
-
Generates formatted reference sheets in:
- Plain text
- HTML
- LaTeX
- CSV
- Markdown
- Console output
-
Language-aware formatting (e.g. handling grammatical gender and adjective forms)
- Python 3
- SQLite
- HTML (for web output)
- LaTeX (for typeset documents)
- LoaLaTeX (for PDF export)
-
The user selects:
- A language (e.g. DE, ES, FR, IT)
- A word type (noun, verb, adjective)
-
The program:
- Queries the SQLite database using parameterised SQL
- Retrieves relevant rows and column metadata
-
The data is:
- Formatted according to the selected output type
- Written to file(s) and/or displayed in the console
- MiKTeX
- Python 3.x
- Clone the repository
- Install MiKTeX if not already installed.
- Ensure the database file is in place:
database/flubb.db
- Run the program:
python main.py
-
Follow the prompts to select:
- Language
- Word type
- Output format(s)
Generated files are written to:
output/
Depending on selection, outputs may include:
.txt— plain text tables.html— structured HTML documents.tex— LaTeX source files.pdf— Portable Document Files.csv— Comma Separated Values.md— text with markdown
database/
flubb.db
exporters/
(functions for exportation to different file formats)
formatters/
(functions for the formatting of text for various formats)
output/
(generated files)
utils/
(functions to change field names to something more meaningful, and escape out problematic characters)
database.py
main.py
Generate a German noun reference sheet:
-
Input: Language → DE Word type → noun
-
Output: Table including:
- English translation
- German lemma
- Grammatical gender
Core functionality is complete:
- Database schema established
- Query system implemented
- Multi-format export working
- GUI or web interface
- Expanded dataset
- Enhanced HTML styling
- Additional export formats
- Improved document layout for LaTeX output
This project focuses on:
- Data modelling
- Query design
- Automated document generation
LibreOffice integration was explored early on but is not part of the current workflow.