Commit graph

39 commits

Author SHA1 Message Date
Virgil
cc66b3d049 fix(i18n): add explicit article token aliases
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 07:24:40 +00:00
Virgil
31d9672a46 fix(i18n): normalise failed action verbs
Some checks failed
Security Scan / security (push) Successful in 20s
Test / test (push) Has been cancelled
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 14:05:55 +00:00
Virgil
e9f06342a7 feat(i18n): add rtl aliases and definite article template func
All checks were successful
Security Scan / security (push) Successful in 13s
Test / test (push) Successful in 2m23s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 11:37:33 +00:00
Virgil
045a732191 feat(i18n): add short numeric template aliases
Some checks failed
Security Scan / security (push) Successful in 16s
Test / test (push) Has been cancelled
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 10:58:26 +00:00
Virgil
097c964a3b feat(i18n): add direct template numeric aliases
Some checks are pending
Test / test (push) Waiting to run
Security Scan / security (push) Successful in 22s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 10:54:37 +00:00
Virgil
38d2142c67 feat(i18n): add explicit template phrase aliases
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 10:33:56 +00:00
Virgil
04692a185c fix(grammar): handle hard-c endings in regular conjugation
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 09:30:20 +00:00
Virgil
cdb06e2eab fix(i18n): trim padded composition inputs
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 08:31:47 +00:00
Virgil
92b2f2ce94 feat(i18n): localize failure prefix
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 08:23:19 +00:00
Virgil
d2017eb6e3 fix(i18n): honour word map in action failures
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 07:23:49 +00:00
Virgil
78637dc14f fix(i18n): escape quoted strings
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 06:44:58 +00:00
Virgil
5449026041 Fix unicode capitalization in plural forms
All checks were successful
Security Scan / security (push) Successful in 15s
Test / test (push) Successful in 1m58s
2026-04-02 05:10:36 +00:00
Virgil
c7e5ee8512 feat(i18n): add template alias for numeric shorthand
Some checks failed
Security Scan / security (push) Successful in 14s
Test / test (push) Has been cancelled
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 05:07:09 +00:00
Virgil
1c9cf442b6 feat(i18n): add base language grammar fallback
Some checks are pending
Test / test (push) Waiting to run
Security Scan / security (push) Successful in 12s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 04:37:45 +00:00
Virgil
faaa03bac4 fix(grammar): handle aspirated h elision
Some checks failed
Security Scan / security (push) Successful in 12s
Test / test (push) Has been cancelled
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 02:29:56 +00:00
Virgil
40e00d13f1 feat(grammar): add lower and upper helpers
Some checks failed
Security Scan / security (push) Successful in 13s
Test / test (push) Has been cancelled
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 02:14:26 +00:00
Virgil
38bda00c92 fix(i18n): add helper fallback semantics
All checks were successful
Security Scan / security (push) Successful in 11s
Test / test (push) Successful in 1m32s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 00:40:37 +00:00
Virgil
e8353f68f1 feat(i18n): add definite article composition
All checks were successful
Security Scan / security (push) Successful in 13s
Test / test (push) Successful in 1m24s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 00:13:10 +00:00
Virgil
3d03213587 fix(i18n): infer French plural articles
All checks were successful
Security Scan / security (push) Successful in 12s
Test / test (push) Successful in 1m23s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 00:07:10 +00:00
Virgil
5511aba529 fix(i18n): preserve dotted filenames in title casing
All checks were successful
Security Scan / security (push) Successful in 12s
Test / test (push) Successful in 1m22s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 23:46:01 +00:00
Virgil
9a2abd98fd feat(i18n): expose prompt and lang template helpers
Some checks failed
Security Scan / security (push) Successful in 10s
Test / test (push) Has been cancelled
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 23:42:46 +00:00
Virgil
e6c1b1f384 feat(grammar): expose relative time helpers in templates
All checks were successful
Security Scan / security (push) Successful in 13s
Test / test (push) Successful in 1m9s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 23:21:27 +00:00
Virgil
3eb508de82 fix(grammar): select article from rendered word
All checks were successful
Security Scan / security (push) Successful in 11s
Test / test (push) Successful in 1m12s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 23:15:41 +00:00
Virgil
a35c406024 feat(grammar): preserve word map entries in article phrases
Some checks failed
Security Scan / security (push) Successful in 11s
Test / test (push) Has been cancelled
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 23:12:33 +00:00
Virgil
bf47180828 feat(grammar): preserve exact word forms
All checks were successful
Security Scan / security (push) Successful in 19s
Test / test (push) Successful in 1m13s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 22:34:36 +00:00
Virgil
742def991d feat(i18n): support French plural articles
Some checks are pending
Test / test (push) Waiting to run
Security Scan / security (push) Successful in 10s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 22:26:14 +00:00
Virgil
2c7175b892 feat(i18n): generalise French elision contractions
All checks were successful
Security Scan / security (push) Successful in 11s
Test / test (push) Successful in 1m8s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 22:20:07 +00:00
Virgil
81e99c67ea feat(i18n): honour locale singular noun forms
All checks were successful
Security Scan / security (push) Successful in 10s
Test / test (push) Successful in 1m4s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 09:07:55 +00:00
Virgil
02d9811918 feat(i18n): handle acronym articles
All checks were successful
Security Scan / security (push) Successful in 10s
Test / test (push) Successful in 56s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 07:36:34 +00:00
Virgil
c83329b90a fix(grammar): handle elided French article phrases
All checks were successful
Security Scan / security (push) Successful in 9s
Test / test (push) Successful in 55s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 06:51:45 +00:00
Virgil
5a95df9947 feat(i18n): expose composite helpers in templates
All checks were successful
Security Scan / security (push) Successful in 10s
Test / test (push) Successful in 53s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 06:30:36 +00:00
Virgil
eb45f9bfb1 feat(i18n): add article phrase template helper
All checks were successful
Security Scan / security (push) Successful in 11s
Test / test (push) Successful in 1m0s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 06:22:17 +00:00
Virgil
00b512063a feat(i18n): localise article selection
All checks were successful
Security Scan / security (push) Successful in 9s
Test / test (push) Successful in 59s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 06:07:52 +00:00
Snider
24e60104d1 feat: add grammar table spec and French locale
Document full JSON schema for gram.* keys in docs/grammar-table-spec.md.
Add French grammar tables (50 verbs, 24 gendered nouns, signals).
Extend loader to parse article by_gender map. Completes Phase 3.

Co-Authored-By: Virgil <virgil@lethean.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 17:57:22 +00:00
Snider
65cf099517 feat: extend irregular verb coverage and add benchmarks
Add 44 irregular verbs (compound, simple, CVC doubling overrides) and
15 benchmark functions across forward composition and reversal engine.
Completes Phase 1 hardening tasks.

Co-Authored-By: Virgil <virgil@lethean.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 17:41:29 +00:00
Snider
f0c4bebfb3 feat(grammar): add dual-class verb/noun entries and contractions
Add test, check, file as verbs and run, build as nouns so the
tokeniser can detect them in both grammatical roles. Add 15
contractions to verb_auxiliary signal list for dev text support.

Update reversal tests to use noun-only words (branch) in test
phrases to avoid dual-class ambiguity until disambiguation (Task 5).

Co-Authored-By: Virgil <virgil@lethean.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 16:00:42 +00:00
Snider
05d0483fd7 fix(grammar): review fixes for SignalData loading
Normalise signal words to lowercase on load (defensive against
mixed-case entries in locale JSON). Strengthen test assertions
with expected counts and spot-checks. Clarify Priors field comment.

Co-Authored-By: Virgil <virgil@lethean.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 15:54:59 +00:00
Snider
cb7404456f feat(grammar): add SignalData for disambiguation signals
Load noun_determiner, verb_auxiliary, and verb_infinitive word lists
from gram.signal in locale JSON. Reserve Priors field for future
corpus-derived per-word disambiguation priors.

Co-Authored-By: Virgil <virgil@lethean.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 15:50:45 +00:00
Claude
e8a87b0f50
feat: grammar-aware i18n module extracted from core
Standalone grammar-aware translation engine with:
- 3-tier verb/noun fallback (JSON locale → irregular maps → regular rules)
- 6 built-in i18n.* namespace handlers (label, progress, count, done, fail, numeric)
- Nested en.json with gram/prompt/time/lang sections (no flat command keys)
- CLDR plural rules for 10 languages
- Subject fluent API, number/time formatting, RTL detection
- 55 tests passing

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 19:51:27 +00:00