Low-resource multilingual localization (143 languages) + game rule/termination fixes - #195
Merged
Merged
Conversation
Regenerate the README low-resource language table from the confidence ledger (per-language tier, meaning fidelity, target-language coverage). Reconcile FIXES.md / DEFERRED.md with the restored and newly-finished game state.
Restore the verified multilingual versions of Coup, Hanabi, LeTruc, LeducHoldem, Poker, Santorini, Set, Tak, and the word games (Wordle, WordLadder, Hangman, WordSearch, WordChains, SpellingBee, LetterAuction), and finish outstanding rule/termination bugs: - Poker: highest-straight ranking + main/side-pot splitting - Hanabi: 3 fuse tokens, end on the 3rd misplay, report cooperative score - LeTruc: faithful trick ranking, fold scoring, and raise structure - Tak: guaranteed termination (flat-win + turn cap) - Hangman: a wrong full-word guess costs a life (guarantees termination) - SpellingBee: numpy-free, reproducible frequency-weighted letter sampling - ScenarioPlanning/Debate: default-jury import fallback; NewRecruit prompt interpolation; TruthAndDeception even default max_turns; remove stray debug prints in SettlersOfCatan/LogicPuzzle/WordSearch Localization infrastructure: check_locales.py gate, translate_locale.py, language_confidence.py confidence surface, and the multilingual test harness. Remove three stray backup files.
Add UI localizations for 143 additional low-resource languages, produced with open machine translation (NLLB-200) and verified for meaning fidelity by an independent two-model LLM judge (Llama-3.1-405B + Qwen2.5-72B). Every in-target string is judged by both model families; agreements are auto-confirmed, and a flag from only one family is adjudicated by a careful single-leaf Llama-3.1-405B re-judge so the over-flagging model cannot churn faithful strings. Confirmed bugs are re-translated under a no-regression write gate (placeholder / parser- command / curly-slot-multiset parity + language-ID leak check). Includes the per-language confidence ledger (_trackb_confidence.json): 132 CERTIFIED_FLAGGED / 11 EXPERIMENTAL at an 85% adjudicated-fidelity bar; every language ships >=94% post-repair fidelity. Also restores and updates the structured-language locales, scenarios, and golden transcripts for the multilingual game environments.
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.
Adds UI localizations for 143 additional low-resource languages on top of the existing 8-language multilingual work, plus correctness fixes to the games being localized.
Translation & verification
Strings are produced with open MT (NLLB-200) and verified for meaning fidelity by an independent two-model LLM judge (Llama-3.1-405B + Qwen2.5-72B). Every in-target string is judged by both families; agreements auto-confirm, and a flag from only one family is adjudicated by a careful single-leaf Llama-3.1-405B re-judge so the over-flagging model can't churn faithful strings. Confirmed bugs are re-translated under a no-regression write gate (placeholder / parser-command / curly-slot-multiset parity + language-ID leak check).
Coverage is 99.98%: 2 of 9021 game-language pairs (
lus/Breakthrough,kas/SpiteAndMalice) retain single-model baseline verification after persistent judge-parse failures — noted in the ledger.Confidence ledger
_trackb_confidence.jsonrecords per-language tier, meaning fidelity, residual-bug counts, and target-language coverage: 132 CERTIFIED_FLAGGED / 11 EXPERIMENTAL at an 85% adjudicated-fidelity bar. Every language ships ≥94% post-repair fidelity. These are LLM-verified, not native-verified —CERTIFIEDremains reserved for native review. At runtime,language_confidence.warn_if_flagged(lang)emits aUserWarningfor any non-certified locale.Game fixes
Restored/finished alongside their locales:
set_drawkwarg, NewRecruit prompt interpolation, TruthAndDeception even defaultmax_turns; removed stray debug prints in SettlersOfCatan / LogicPuzzle / WordSearchTooling
check_locales.pyCI gate,translate_locale.pyhelper,language_confidence.py, and the multilingual test harness. Also removes three stray backup files that were committed by mistake (Poker/env copy.py,SimpleRenderWrapper/render copy.py,Diplomacy/prompts/context_prompt copy.txt).Verification
python scripts/check_locales.py→ 0 errors across 79 gamespython tests/multilingual/test_multilingual.py→ all games pass (English golden byte-identity + cross-lingual smoke)