Skip to content

Add the Czech, Slovak, Slovenian and Croatian packs (3.0, 3f) - #957

Merged
derek73 merged 1 commit into
masterfrom
feat/v3-pack-3f-cs-sk-sl-hr
Oct 30, 2026
Merged

derek73 merged 1 commit into
masterfrom
feat/v3-pack-3f-cs-sk-sl-hr

Conversation

@derek73

@derek73 derek73 commented Oct 30, 2026 •

Copy link
Copy Markdown
Owner

3.0 sub-phase 3f of #753: the Czech, Slovak, Slovenian and Croatian packs. locales.CS, locales.SK, locales.SL and locales.HR are one Locale per language, and each is a choice of its one BCP 47 tag and nothing else. Every word they turn on is a reading written default = false in that language's vocabulary file. The default's compile (_compiled.py) does not change, and no default parse moves.

What each pack turns on

Pack Readings
CS ml., st. (3c's generations). Academic titles: MUDr, MDDr, MVDr, JUDr, PhDr, RNDr, PaedDr, PharmDr, ThDr, Mgr, MgA, BcA. The post-nominal credential DrSc. pan (salutation). roz. (birth marker).
SK ml., st.. The same titles except MgA/BcA. The credentials ArtD, DrSc.
SL, HR ml., st.
  • The pan exclusions in cs.toml and pl.toml, and the roz exclusion in cs.toml, are converted to readings off by default. So choosing pl now turns on pan too.
  • bc (bakalář) is a new exclusion, from measurement: under a Czech choice it moved 23 ctgov officials. One was a Czech Bc. The rest were the US nursing credential BC or initials (Lora L. Beebe, PhD, PMHNP, BC read title BC).

Examples under locales.CS:

Input Default Pack
Jan Novák, MUDr given MUDr, family Jan Novák title MUDr, given Jan, family Novák
Jiří Dienstbier ml. family ml. family Dienstbier, suffix ml.
Jan Novák, DrSc given DrSc suffix DrSc
Jana Nováková roz. Svobodová middle Nováková roz. maiden Svobodová

Design calls (decisions/vocabulary-model, 2026-10-30 phase 3f entry)

  • One pack per language. The RFC's API section already says so. The files hold different words: a shared pack would turn on Czech pan and roz for a Slovene caller. A caller with data in two languages chooses both.
  • 3c's open questions:
    1. Saint readings of st: they leave under all four packs, and that cost is accepted. St Clair Smith reads given St. Choosing fr as well keeps them; fr's choice changes only père besides. Moving the Saint readings to mul.toml was weighed and declined.
    2. Ungated ml: stays ungated, like Smith, JR.
    3. One-letter h/i: re-deferred to es (3g) and to de.
  • Should a bare Ing after a comma be a credential? Viera Sevcikova, Ing reads given Ing, family Viera Sevcikova #848's open question 1: under the pack, Mgr/MUDr/PhDr after a comma are titles, as Czech writes them.
  • The registry contract, on Add locales.NE, the first language pack: a choice of ne (3.0, 3d) #955's helpers (_is_vocabulary_pack, _deviates, _pack_deviates). The four packs register as Add locales.NE, the first language pack: a choice of ne (3.0, 3d) #955's choice packs, with no DEVIATES. This adds two checks: the contract test refuses a choice pack whose choice changes no word, and test_choice_rotators_cover_every_changed_word requires a rotator for every changed word. The combined gate reads the surface of the union of all packs' languages, or'd with every pack's hand DEVIATES (decisions/deviates-registry).

Measured (2026-10-30, 40675146 + this change, Python 3.11)

Committed corpora (snapshot.py --languages TAG), entries moved:

  • cs 17, sk 15, sl 15, hr 15, pl 11.
  • 15 of each are st/ml moves: 3c's 14 plus S11's new [cs] example Jiří Dienstbier st., added to the rules corpus here.
  • cs and pl add the two committed Polish Pan … names, now read with the title.

CLDR locale view: newly recorded for the four packs. Whole-rendering agreement does not change (cs 14/24, sk 15/24, sl 16/24, hr 18/24). Two sl renderings improve in family/suffix.

Local corpora (--base a checkout of 40675146), entries moved:

Corpus cs sk sl / hr
ctgov-officials 178 161 72
orcid-researchers 245 191 138
psc-individuals 416 399 395 (sl; hr not run)

tse-donors under cs moves 9 and ukec-individuals 9.

Most of these moves are 3c's st; the rest are this PR's pan, titles and drsc:

  • The titles and drsc are fixes wherever they move a field: Denisa Wilkes, MUDr stops reversing.
  • roz: one fix and two given names Roz lost.
  • pan: every move is a Chinese name read with a title (ctgov 17, ORCID 46, PSC 16, TSE 2). No Czech salutation appears among them. As a title on its own it also takes a lone given name after a family comma (Smith, Pan → title Pan, no given name).

Fielded scores for the four countries:

  • ORCID, CZ/SK/SI/HR (56,808 records): agreement goes 52,239 → 52,240 under cs and sk.
  • PSC, Czech/Slovak/Slovenian/Croatian nationality (3,578 records): 3,505 agree, unchanged. One record is fixed and one misfiled record moves.

Open, for review

  • pan: the corpora show only its cost, the same profile that got bc excluded. Keep it or drop it?
  • Uncontested titles: whether mudr, judr and the others belong in the default instead. That would be a default change, outside phase 3.
  • Reading.languages names no file for a reading a pack turned on (ml., MUDr), and Mgr. still names en fr though the choice dropped their reading — decided 2026-10-29; now said in docs/locales.rst.
  • Found, not fixed: with one word before a family comma, Novák, st. reads title st. by shape and reports suffix-or-name, as the default does Dumas, fils. (pinned).
  • Found, not fixed: a gated generation behind a particle run after a family comma stays in the given part, unreported. Novák, Freiherr von Berg st. reads that way, as Dumas, Freiherr von Berg fils does in the default (rules/S11).

Checks

  • uv run pytest
  • -n0 -m serial
  • --python 3.15
  • mypy, ruff
  • build.py --check
  • sphinx-build -b doctest

🤖 Generated with Claude Code

@derek73 derek73 added enhancement vocabulary Per-word vocabulary model and language packs labels Oct 30, 2026
@derek73 derek73 self-assigned this Oct 30, 2026
@derek73
derek73 force-pushed the feat/v3-pack-3f-cs-sk-sl-hr branch from 868f759 to cb40fc8 Compare October 30, 2026 19:20
Squashed for the rebase onto #955: the pack commit and its two review rounds.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement vocabulary Per-word vocabulary model and language packs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant