Repository navigation
Add the ga, gd and pt-BR language packs (3.0, 3h) - #956
Merged
Merged
Conversation
locales.GA chooses ga, turning on the Irish clan particles nic, mhic, mic and uí, written default = false in ga.toml; locales.GD chooses gd, turning on nic; locales.PT_BR chooses pt-BR (and pt), turning on sb as Sobrinho's agnomen spelling. Each pack is a choice with no fragment and no patch, so it declares no DEVIATES: its surface is the words its choice changes, which the non-interference gate derives. nic's and sb's exclusions become the readings their packs turn on. F and N, which #843 left to this pack, stay excluded, the pack included: measured on tse-donors, the letter abbreviated a surname about twice as often as it wrote the agnomen. mhic stays out of gd.toml, where it mostly links a patronymic chain a second particle would split. The default does not move: _compiled.py is unchanged, the committed snapshot passes, and tse-donors matches master's base. CLDR's ga, gd and pt renderings are recorded under their packs (no move). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Regenerate the rules corpus and snapshot for rules/S11's new examples, so pt-BR moves 40 committed entries (pt's 38 plus two SB examples); measure ctgov-officials and record the S.B. degree read as Sobrinho's generation under the pack as accepted; state the comparator and population of the tse pair figures, which count pairs, not names. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Nic, Mhic and Mic carry their title case as cased, as ní and uí do: without a mask a turned-on particle is lowercased by case repair, so MÁIRE NIC GIOLLA PHÁDRAIG repaired to 'Máire nic' under ga and gd. Rows pin repair and force under each pack. docs/locales.rst states the MC, Sr and S.B. readings as costs, and a leading Nic as given only in a name read given-first; the SB mask's reach, the F/N recipe tree and rules/S11's and decisions/S11's wording are corrected; the release bullet is trimmed to one example. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Master's test_choice_rotators_cover_every_changed_word (3d) asks a rotator for each word of a choice's derived surface, which takes in the words a choice prefers as well as those it turns on: mc under ga and gd, and pt's do, e and sr under pt_br. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
derek73
force-pushed
the
feat/v3-pack-3h-ga-gd-pt-br
branch
from
October 30, 2026 19:36
c7756f4 to
f7f1b63
Compare
This was referenced Oct 31, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Sub-phase 3h of #753's work order: the Irish, Scottish Gaelic and Brazilian Portuguese packs. Each is a
Localethat is only a choice of languages (no lexicon fragment, no policy patch), so it declares noDEVIATES: its surface is the words its choice changes (_reading_index.changed_words), which the non-interference gate derives. The default does not move.What each pack turns on
default = falsein the file)locales.GAganic(daughter of),mhicanduí(married forms ofmac,ó),mic(genitive ofmac)locales.GDgdniclocales.PT_BRpt-BR(andpt)sb(Sobrinho),cased = "SB"nicandmiccarrygivenreadings (US SSA 77 and 26, Wikidata 173 and 10), so a leadingNic/Micstays the given name in a name read given-first, reportedPARTICLE_OR_GIVEN(rules/P1), asMacdoes by default.nic,mhic,micanduícarrycasedmasks, so case repair keeps their capital under the pack.nic's andsb's exclusions become these readings (item 9 of the 2026-10-27 #753 entry).Departures from the brief, for review
FandNare not turned on: they stayexcluded, the pack included. Turned on and measured on tse-donors (the corpus they were proposed from), scoring each moved name by what the registry wrote at the moved word:Fwas the agnomen in 48 moved filed/registry pairs and a letter abbreviating a surname in 104 (ANA MARIA F/ANA MARIA FILGUEIRAS),N18 vs 59 (EDINEI VITAL N/... DO NASCIMENTO). The strict "pair reads alike" measure (given, middle, family, suffix each equal) had shown 34 fixed and 0 broken for the three letters together, because most moves went from one wrong reading to another; a note in mechanisms.md#PAIRED-SPELLINGS-PER-CHANGE records the trap. Reverting is two entries in pt-BR.toml if the call goes the other way.mhicis in ga.toml only. In Scottish Gaelic it mostly links a patronymic chain (Iain mac Dhòmhnaill mhic Sheumais), which listing it splits at its last link, as the default already splits… mac … mac …. The same split happens undergaforSeán mac Seáin mhic Thomáis(no corpus name moves), accepted for the married formMáire Mhic Gabhann.Measured (2026-10-30, master 4067514 + this change, Python 3.11)
_compiled.pyunchanged; the committed snapshot gains only the three names rules/S11's new examples add to the rules corpus, no entry moving;snapshot.py --local tse-donors --base <master>matches the base.snapshot.py --languages):ga4,gd4 entries, allmc: the choice prefers ga's/gd's clanmcover en's Military Cross credential (John Smith MC→ familyMC), a 3b prefer effect on themcboth files already held.pt-BRmoves 40:pt's 38 plus two of rules/S11's newSBexamples.ga14/24,gd15/24,pt(CLDR's Brazilian file) 17/24 with and without the pack; new rows recorded incldr_agreement_locales.json.pt-BRagainstpt: 14 more names move; 13 areSBread as the agnomen, the registry spelling SOBRINHO in every one (pairs reading alike 11 → 22); 1 is theSBcase mask alone.ga4 fixed (Clodagh Nic Lochlainn,Orlaith Mhic Mhathuna,Damien Patrick Mc) / 1 broken (Nicholas Nic Rawlings Limited Rawlings, a company filed as a person);gd3 / the same 1.ga24 fixed / 0 broken (Pauline Uí Dhuibhir,Éimí Mhic an Ridire, 22Nic …);gd20 / 0.pt-BRagainstpt: 17 more; 12 onlycapitalized(force=True)(a mid-nameSBkeeps capitals), 5 where the S.B. degree now fillsgenerationinstead ofcredentials(Howard S. Gordon, MD SB), one of them moving fields (Silvio Brugger, SB: givenSB→ suffix). Recorded as an accepted cost of choosing Brazilian Portuguese.pt-BR's moves in PSC (12 broken) and ORCID (21 fixed, 11 broken) are allpt's own: see Open.Open
pt(sopt-BR) prefers pt.toml's titlesr(Senhor) over English's generationSr:Gary Holloway Sr→ familySr,J. Smith Sr.→ titleSr.(PSC's 12). Recorded in the decisions entry.tests/v2/test_locales.py's_is_vocabulary_pack/_deviateshelpers are also being written by the 3d (ne) branch; whichever lands second keeps one copy.Same-PR docs
rules/S11 (
SBunder the choice, with[pt_br]examples andFas a boundary), decisions/vocabulary-model (Standing line + 2026-10-30 phase 3h entry), decisions/S11 (Standing line amended, Log entry), mechanisms.md (field note above), RFC status and work-order row,docs/locales.rst(table rows, a "Packs that choose a language" recipe doctest, contract steps for a vocabulary pack), README'savailable()doctest, release-log bullet.Review
A design-docs review pass found four figure problems (an unregenerated rules corpus behind a "no re-record" claim, the S.B. degree's cost unmeasured, two pair figures without their comparator, and 242 counting pairs not distinct names); all fixed in the second commit.
A second review (orchestrator) found the missing Irish case masks (
MÁIRE NIC GIOLLA PHÁDRAIGrepaired toMáire nicunderga/gd), docs presenting theMC/Srreadings as features, an unqualified leading-Nicclaim, theSBmask's reach, two wording slips, and a missing step in the F/N recipe; all fixed in the third commit, with failing-first rows forcapitalized()under each pack.Checks
uv run pytest,-n0 -m serial,--python 3.15, mypy, ruff,build.py --check, sphinx doctest + html (clean),python -m doctest README.rst. namedivider is not installed locally, so the ja rows ran skipped, as in CI's build jobs.🤖 Generated with Claude Code