Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

[Task] Show translated courses on the dashboard

Closed
#202 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
25/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
typescript

Research direction

Start by finding every inspectCatalog('en') call: the dashboard pages, dashboard/src/lib/store.ts and the import preview. Choosing the language per request and mapping the free-text profile language to a courses/<lang> folder are open decisions, so settle them with the maintainer first. Read docs/seo.md before touching sitemap.xml, llms.txt or the inLanguage data. Done when a courses/fr fixture shows French titles for a French learner, untranslated courses fall back to English, progress ids stay the same, and npm test passes.

Written by the indexing model from the issue text.

Description

dashboard enhancement

Summary

Let the dashboard show the catalog in the learner's language when a translation exists (courses/<lang>/), falling back to English.

Why

The tutor already teaches translated courses: the MCP tools take a lang argument and fall back to en. The dashboard does not: every page calls inspectCatalog('en'), so a learner taught in French would still see English course titles, descriptions, lesson titles and themes. This blocks #197 from being useful end to end.

Scope

  • Choose the catalog language per request (the learner's saved language, with en as fallback when a course or the whole language is missing) instead of the hard-coded 'en' in the pages, dashboard/src/lib/store.ts and the import preview
  • The profile stores the language as free text (e.g. "English"), not a code: decide how it maps to a courses/<lang> folder
  • Signed-out public pages, sitemap.xml, llms.txt and the structured data (inLanguage): decide whether they stay English or get per-language addresses (see docs/seo.md)
  • <html lang> and date formatting follow the chosen language

Out of scope

Translating the dashboard's own interface text (dashboard/src/i18n/en.ts is the only language today). Worth its own ticket.

Acceptance criteria

  • With a courses/fr/ fixture and a learner whose language is French, home, the catalog and a course page show the French titles
  • A course with no translation shows in English, with no warning
  • Progress is unchanged across languages (same lesson ids)
  • npm test passes, with a course fixture that has a second language

Size

M

Dominant language
TypeScript
Stars
1
Forks
0
Avg merge
1h 18m
Merged PRs (30d)
149

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from CGSeb/lessonfolk

All issues in CGSeb/lessonfolk

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.