|
1 | | -# bitext-word-alignment |
| 1 | +# Aligner — word-by-word translation visualizer |
2 | 2 |
|
3 | | -Draft requirements: `docs/tmp/idea.md` (under `docs/tmp/`, often gitignored). |
| 3 | +**[aligner.tinygods.dev](https://aligner.tinygods.dev)** |
4 | 4 |
|
5 | | -## App (`bitext/`) |
| 5 | +Aligner (also called *Bitext Align*) is a free web tool that shows **which word matches which** across stacked lines of text. Type or paste a sentence and its translation, click a word and then its match on the line above or below, and curved connectors draw the alignment between them. Add extra rows for **glosses** or **IPA**, then **export** the diagram or **share** it with a link. |
6 | 6 |
|
7 | | -SvelteKit app — see [`bitext/README.md`](bitext/README.md). |
| 7 | +No accounts, no machine translation — you stay in control of every link. Great for lessons, social posts, grammar notes, and conlang documentation. |
8 | 8 |
|
9 | | -**Node 20.19+ or 22.12+** required for the toolchain (Vite 8). |
| 9 | + |
10 | 10 |
|
11 | | -```sh |
12 | | -cd bitext && npm install && npm run dev |
13 | | -``` |
| 11 | +## What it's for |
| 12 | + |
| 13 | +- **Language learners** — see exactly why a translation says what it does: which source word became which target word, what gets dropped, and where word order changes. |
| 14 | +- **Teachers** — build handouts, slides, and flashcards; export a clean PNG or SVG and drop it into a lesson without retyping anything. |
| 15 | +- **Linguists** — produce Leipzig-style interlinear glosses with morpheme alignment, case/agreement tags, and free translations. |
| 16 | +- **Conlangers** — show how a constructed language maps onto English, with custom script fonts, gloss rows, and IPA. |
| 17 | + |
| 18 | +## What it does |
| 19 | + |
| 20 | +- **Multi-line alignment** — stack as many rows as you need (source, translation, gloss, IPA); links connect vertically adjacent lines. |
| 21 | +- **Manual word linking** — click a word, then its match; supports one-to-many and many-to-one links and freely crossing connectors for reordered translations. |
| 22 | +- **Interlinear glosses & IPA** — add annotation tiers above or below any line. |
| 23 | +- **Right-to-left scripts** — Hebrew, Arabic, and mixed LTR/RTL layouts. |
| 24 | +- **Tokenization control** — choose how text splits into word boxes (split characters, a join marker for fixed expressions, optional punctuation handling). |
| 25 | +- **Per-line typography** — font, size, spacing, and direction per line; custom and Google Fonts. |
| 26 | +- **Exports** — PNG, SVG, PDF, and a self-contained HTML file; exports match the preview, including custom-font shaping. |
| 27 | +- **Shareable URLs** — the whole alignment (text, links, and visual settings) is encoded in a `?data=` link. |
| 28 | + |
| 29 | +## Examples |
| 30 | + |
| 31 | +Browse ready-made examples — bilingual pairs, Turkish interlinear with IPA, RTL scripts, Tagalog compounds, Japanese–Chinese–English word order, and more interlinear glosses — at **[aligner.tinygods.dev/examples](https://aligner.tinygods.dev/examples)**. Open any one in the editor to adapt it. |
| 32 | + |
| 33 | + |
| 34 | + |
| 35 | + |
| 36 | + |
| 37 | +## How it works |
| 38 | + |
| 39 | +Edit your lines in the line editor, then link words in the preview. |
| 40 | + |
| 41 | + |
| 42 | + |
| 43 | +Tune colors, tokenization, and fonts in settings, then export or share. |
| 44 | + |
| 45 | + |
| 46 | + |
| 47 | +## Word alignment vs. interlinear vs. parallel text |
| 48 | + |
| 49 | +- **Interlinear translation** places a gloss directly under each source word — compact, but it hides reordering. Aligner keeps both sentences on their own line and draws connectors, so reorderings, splits, and merges stay obvious. |
| 50 | +- **Parallel text** is side-by-side bilingual reading for long-form study. Aligner focuses on one sentence pair at a time with explicit connectors showing which tokens correspond. |
| 51 | + |
| 52 | +## Learn more |
| 53 | + |
| 54 | +- **App:** [aligner.tinygods.dev](https://aligner.tinygods.dev) |
| 55 | +- **About / documentation:** [aligner.tinygods.dev/about](https://aligner.tinygods.dev/about) |
| 56 | +- **Privacy:** [aligner.tinygods.dev/privacy](https://aligner.tinygods.dev/privacy) |
| 57 | + |
| 58 | +Created by Dani Polani. See other [tools for linguistics and conlanging](https://danipolani.github.io/en/blog/tools/). |
0 commit comments