Bug: C# Hello World exercise partially translated #215

Closed
opened 2026-05-26 17:43:07 +00:00 by Zhekrom · 1 comment

Title: Bug: C# Hello World exercise partially translated
Severity: Medium
Mode: C# lessons section � Hello World exercise
Lesson ID / File: C# Hello World lesson
Environment: Firefox (any version), Windows (any version)
Date/Time: May 26, 2026

Source Code
(Not applicable � content / translation issue)

Steps to Reproduce
1. Navigate to the C# Hello World lesson
2. Look at the exercise instructions and content
3. Compare with the error messages and notifications shown

Expected Output
The entire exercise � both the instructions and the notifications/errors � should be fully translated to Spanish.

Actual Output
Error messages and notifications appear in Spanish, but the exercise body itself is not correctly translated. Parts remain in English or are inconsistently translated.

Suggested Priority
Medium � does not block functionality, but creates a confusing mixed-language experience that hinders learning for Spanish-speaking users.

Additional Notes
Same systematic translation issue affecting the C# course. The error/notification system seems to have been translated separately from the exercise content itself.

Title: Bug: C# Hello World exercise partially translated Severity: Medium Mode: C# lessons section � Hello World exercise Lesson ID / File: C# Hello World lesson Environment: Firefox (any version), Windows (any version) Date/Time: May 26, 2026 Source Code (Not applicable � content / translation issue) Steps to Reproduce 1. Navigate to the C# Hello World lesson 2. Look at the exercise instructions and content 3. Compare with the error messages and notifications shown Expected Output The entire exercise � both the instructions and the notifications/errors � should be fully translated to Spanish. Actual Output Error messages and notifications appear in Spanish, but the exercise body itself is not correctly translated. Parts remain in English or are inconsistently translated. Suggested Priority Medium � does not block functionality, but creates a confusing mixed-language experience that hinders learning for Spanish-speaking users. Additional Notes Same systematic translation issue affecting the C# course. The error/notification system seems to have been translated separately from the exercise content itself.
Owner

Fix up in spikerj/spikersoft-backend#7.

Root cause: the Spanish curriculum file (es/csharp.json) only carried lesson 100's title and description — no instructions or hints — so the catalog card was translated but the exercise body fell back to English. On top of that, the lesson's second instruction embeds a per-attempt randomized target ("print exactly: "), and the translation pipeline had no way to inject per-attempt values into static translations — randomized lessons simply couldn't be translated correctly.

Fix:

  • The locale overlay now late-binds {seedKey} tokens from the attempt's seed, so translations can carry randomized values.
  • Lesson 100 now has full Spanish instructions and hints.
  • Grading is unchanged and locale-agnostic (covered by tests).

Note: an audit shows the same gap (title/description only) applies to every lesson across all 8 tracks — that's the root cause of #196–#203 as well. This PR puts the mechanism in place; filling in the remaining lesson content is a translation-authoring effort that can now proceed track by track. Will close this one when the PR merges.

Fix up in spikerj/spikersoft-backend#7. **Root cause:** the Spanish curriculum file (`es/csharp.json`) only carried lesson 100's *title* and *description* — no `instructions` or `hints` — so the catalog card was translated but the exercise body fell back to English. On top of that, the lesson's second instruction embeds a per-attempt randomized target ("print exactly: `…`"), and the translation pipeline had no way to inject per-attempt values into static translations — randomized lessons simply couldn't be translated correctly. **Fix:** - The locale overlay now late-binds `{seedKey}` tokens from the attempt's seed, so translations can carry randomized values. - Lesson 100 now has full Spanish instructions and hints. - Grading is unchanged and locale-agnostic (covered by tests). Note: an audit shows the same gap (title/description only) applies to every lesson across all 8 tracks — that's the root cause of #196–#203 as well. This PR puts the mechanism in place; filling in the remaining lesson content is a translation-authoring effort that can now proceed track by track. Will close this one when the PR merges.
Sign in to join this conversation.