Migrate languages.py to spec + code generation
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 20/100
- Tipo di issue
- Refactoring
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Ferma
- Stack tecnologico
- javascript, python
- Ambito
- build-system, internationalization, tooling
Direzione di ricerca
Inizia da le_utils/constants/languages.py, resources/languagelookup.json e scripts/generate_from_specs.py, quindi esamina tests/test_languages.py e tests/test_getlangs.py. Conferma che la specifica contenga tutte le voci delle lingue e i metadati, che la generazione produca gli output Python e JavaScript, che i test aggiornati passino e che il file JSON legacy venga rimosso.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
❌ This issue is not open for contribution. Visit Contributing guidelines to learn about the contributing process and how to find suitable issues.
Overview
languages should be generated from a spec in the format #182 introduces, and scripts/add_language.py should add new languages to that spec. Its public Python API should not change.
Complexity: High
Target branch: main
Context
languagelookup.jsonholds 286 languages; the 17 RTL ones carry"rtl": true, which becomesLanguage.text_direction.Languagehas five fields and three properties (code,id,first_native_name).getlang_by_nameandgetlang_by_native_namealso match aliases built from the;-,,- and()-separated parts of each name.make add-languagerunsscripts/add_language.py, which writes tolanguagelookup.json.languagelookup.jsonis linked from ricecooker's docs, kolibri-library, sample-channels, cookiecutter-chef, andspec/schema-embed_*_request.jsonin this repo.
The Change
js/Languages.jsshould export the language records and the text direction constants.
Acceptance Criteria
-
le_utils/constants/languages.pyandjs/Languages.jsare generated fromspec/constants-languages.json, andmake buildon a clean checkout leaves no diff. - The pinned-API test from #182 passes unchanged for
languages, andgetlang_by_nameandgetlang_by_native_namereturn the same language as before for every name and alias. -
make add-languageadds a language tospec/constants-languages.json. -
le_utils/resources/languagelookup.jsonis a symlink tospec/constants-languages.json.
AI usage
I made the decisions recorded on #181 and #182; Claude Code applied them to this module against the current code and drafted the issue.
- Lingua principale
- Python
- Stelle
- 7
- Fork
- 37
- Merge medio
- 7g 42m
- PR unite (30g)
- 7
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di learningequality/le-utils
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 20/100
learningequality/le-utils#187 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
learningequality/le-utils#185 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
learningequality/le-utils#184 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
learningequality/le-utils#183 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
learningequality/le-utils#182 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di learningequality/le-utils
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
-
Clean up dependabot noiseApertaTask
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
war-and-code/dircue#200 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 87/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
I maintainer di solito rispondono entro 1 giorno