The hover-term "Concept Reference" dictionary panels in the C#, Python, C, and C++ playgrounds are sourced from hardcoded, English-only TypeScript data files in spikersoft-angular, with no i18n mechanism at all:
Each entry (label, summary, details, signatures[].note, examples[].explanation) is plain English text rendered directly in the hover card, regardless of the active platform language.
Origin
Split out from spikerj/spikersoft-issues#271 ("Missing translations at C++ Playground"). That report's instructions panel symptom was fixed by the #279 → #296 lesson-content localization work (PR #29), but the Concepts panel symptom it also called out is a separate system (frontend-only static data, not the backend LessonTranslation pipeline) and remains unresolved.
Scope
Decide on a localization approach for LanguageConcept entries: either (a) extend the LanguageConcept model with locale-keyed fields (mirroring the backend's CurriculumLocale pattern), or (b) move concept copy into the existing i18n JSON files (en.json/es.json) keyed by concept id, with the data files holding only structural metadata (token, kind, signatures syntax, relatedLessonNumbers, etc).
Translate all entries across the 4 data files to Spanish.
Wire the concept-reference component to read the active language and select the right copy.
Add a regression test (analogous to CurriculumLocaleTests.SpanishTranslations_NoUnresolvedSeedTokensLeak) ensuring every concept has Spanish copy before it ships.
Severity
Medium — visible, reported by users, but scoped to a secondary reference panel rather than core lesson instructions.
## Summary
The hover-term "Concept Reference" dictionary panels in the C#, Python, C, and C++ playgrounds are sourced from hardcoded, English-only TypeScript data files in `spikersoft-angular`, with no i18n mechanism at all:
- `libraries/features/dev-tools-csharp-runner/src/lib/csharp-concepts.data.ts`
- `libraries/features/dev-tools-python-runner/src/lib/python-concepts.data.ts`
- `libraries/features/dev-tools-c-runner/src/lib/c-concepts.data.ts`
- `libraries/features/dev-tools-cpp-runner/src/lib/cpp-concepts.data.ts`
Each entry (`label`, `summary`, `details`, `signatures[].note`, `examples[].explanation`) is plain English text rendered directly in the hover card, regardless of the active platform language.
## Origin
Split out from spikerj/spikersoft-issues#271 ("Missing translations at C++ Playground"). That report's **instructions panel** symptom was fixed by the #279 → #296 lesson-content localization work (PR #29), but the **Concepts panel** symptom it also called out is a separate system (frontend-only static data, not the backend `LessonTranslation` pipeline) and remains unresolved.
## Scope
- Decide on a localization approach for `LanguageConcept` entries: either (a) extend the `LanguageConcept` model with locale-keyed fields (mirroring the backend's `CurriculumLocale` pattern), or (b) move concept copy into the existing i18n JSON files (`en.json`/`es.json`) keyed by concept `id`, with the data files holding only structural metadata (`token`, `kind`, `signatures` syntax, `relatedLessonNumbers`, etc).
- Translate all entries across the 4 data files to Spanish.
- Wire the concept-reference component to read the active language and select the right copy.
- Add a regression test (analogous to `CurriculumLocaleTests.SpanishTranslations_NoUnresolvedSeedTokensLeak`) ensuring every concept has Spanish copy before it ships.
## Severity
Medium — visible, reported by users, but scoped to a secondary reference panel rather than core lesson instructions.
Opened spikersoft-angular PR #85. Adds Spanish overlays for all 184 remaining Concept Reference entries (44 Python + 67 C + 73 C++) and wires LANGUAGE_CONCEPT_TRANSLATIONS into each runner — the pane's localization mechanism was already generic (built for C# in #213), so no component changes were needed. Will close this out once merged.
Opened [spikersoft-angular PR #85](https://git.spikersoft.com/spikerj/spikersoft-angular/pulls/85). Adds Spanish overlays for all 184 remaining Concept Reference entries (44 Python + 67 C + 73 C++) and wires `LANGUAGE_CONCEPT_TRANSLATIONS` into each runner — the pane's localization mechanism was already generic (built for C# in #213), so no component changes were needed. Will close this out once merged.
Resolved in spikersoft-angular PR #85 (merged to master). Added Spanish Concept Reference overlays for Python (44), C (67), and C++ (73) via the existing generic LANGUAGE_CONCEPT_TRANSLATIONS mechanism (C# was already wired up in #213), plus guard specs for each. Hovering a term now shows Spanish prose when the app language is Spanish. Closing.
Resolved in spikersoft-angular PR #85 (merged to `master`). Added Spanish Concept Reference overlays for Python (44), C (67), and C++ (73) via the existing generic `LANGUAGE_CONCEPT_TRANSLATIONS` mechanism (C# was already wired up in #213), plus guard specs for each. Hovering a term now shows Spanish prose when the app language is Spanish. Closing.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
The hover-term "Concept Reference" dictionary panels in the C#, Python, C, and C++ playgrounds are sourced from hardcoded, English-only TypeScript data files in
spikersoft-angular, with no i18n mechanism at all:libraries/features/dev-tools-csharp-runner/src/lib/csharp-concepts.data.tslibraries/features/dev-tools-python-runner/src/lib/python-concepts.data.tslibraries/features/dev-tools-c-runner/src/lib/c-concepts.data.tslibraries/features/dev-tools-cpp-runner/src/lib/cpp-concepts.data.tsEach entry (
label,summary,details,signatures[].note,examples[].explanation) is plain English text rendered directly in the hover card, regardless of the active platform language.Origin
Split out from spikerj/spikersoft-issues#271 ("Missing translations at C++ Playground"). That report's instructions panel symptom was fixed by the #279 → #296 lesson-content localization work (PR #29), but the Concepts panel symptom it also called out is a separate system (frontend-only static data, not the backend
LessonTranslationpipeline) and remains unresolved.Scope
LanguageConceptentries: either (a) extend theLanguageConceptmodel with locale-keyed fields (mirroring the backend'sCurriculumLocalepattern), or (b) move concept copy into the existing i18n JSON files (en.json/es.json) keyed by conceptid, with the data files holding only structural metadata (token,kind,signaturessyntax,relatedLessonNumbers, etc).CurriculumLocaleTests.SpanishTranslations_NoUnresolvedSeedTokensLeak) ensuring every concept has Spanish copy before it ships.Severity
Medium — visible, reported by users, but scoped to a secondary reference panel rather than core lesson instructions.
Opened spikersoft-angular PR #85. Adds Spanish overlays for all 184 remaining Concept Reference entries (44 Python + 67 C + 73 C++) and wires
LANGUAGE_CONCEPT_TRANSLATIONSinto each runner — the pane's localization mechanism was already generic (built for C# in #213), so no component changes were needed. Will close this out once merged.Resolved in spikersoft-angular PR #85 (merged to
master). Added Spanish Concept Reference overlays for Python (44), C (67), and C++ (73) via the existing genericLANGUAGE_CONCEPT_TRANSLATIONSmechanism (C# was already wired up in #213), plus guard specs for each. Hovering a term now shows Spanish prose when the app language is Spanish. Closing.