feat(i18n): translate UI to English and de-hardcode feature/* strings (#3) - #6
Merged
Merged
Conversation
…s hardcodeados de feature/* a recursos (#3)
- Externaliza a recursos (values + values-en) todos los strings hardcodeados restantes: viewport (frases por estado como string-arrays), pair buddy, code cards, misiones/seeds, logros, recompensas diarias, moodlets, navegacion, splash, widget y notificaciones (canales + workers). - Logros/habilidades/misiones/moodlets/quests se resuelven por id estable (LocalizedGameText) sin cambiar el formato persistido; QuestType y Achievement quedan sin texto embebido. - Contenido educativo bilingue: ChallengesDataEn/SpecialChallengesDataEn/CodeReviewDataEn/CodeCardsEn (traduccion EN por id) + LocalizedContent.localized() segun locale del sistema; traduce literales dentro de snippets de codigo. - Topics y dificultad se persisten como claves canonicas (TopicKey/DifficultyKey) normalizando valores legacy localizados (bug: en EN la dificultad no activaba logica y comparaciones de topics fallaban). - Correcciones de exactitud git game (escenarios 2/4/8), capitalizacion y exclamaciones ES. - Test LocalizedContentTest: paridad ES<->EN (cobertura de ids, orden y cantidad de opciones).
…aciones de canales y temas)
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.
🎯 What does this PR do?
The app is now fully bilingual (ES + EN) — UI and learning content — following the system language automatically.
Phase 1 — remaining UI strings to resources
string-arrays), PairBuddy, code cards, daily rewards, quest/moodlet seeds, navigation, splash, widget (XML + RemoteViews), notifications, channel labels, daily-commit generator: all extracted tovalues/+values-en/(now 584 keys each, parity-tested).LocalizedGameText.kt); no persisted-data format changes.Phase 2 — bilingual learning content
ChallengesDataEn.kt(90),SpecialChallengesDataEn.kt(6),CodeReviewDataEn.kt(10),CodeCardsEn.kt(40). Selected vialocalized()by system locale; Spanish default untouched.LocalizedContentTestverifies id coverage, option order and answer-index bounds.Phase 3 — quality pass
¡), wording polish.lintDebug: 0 errors;testDebugUnitTestgreen.Known limitations (documented in README)
🧪 How to test
values/meaning unchanged)..\gradlew :app:testDebugUnitTestincludesLocalizedContentTest(ES↔EN content parity).