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

Add a pack translation pipeline

Open
#56 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Feature
Clarity
Clearly specified
Activity status
Active
Tech stack
typescript
Domain
tooling

Research direction

Read docs/adr/0008-language-policy.md and docs/spec/content-pack.md sections 2 and 4, then inspect prompts/templates/ and packages/cli/src/generate/. Map the existing prompt and generation flows before implementing translation and structural verification. Done means both translation flows are documented in docs/authoring/pipeline.md, the German demo pack passes lexvm check with unchanged walkthrough and explored-state count, and a changed rule is rejected.

Written by the indexing model from the issue text.

Description

area: cli area: pipeline priority: medium type: feature

Context

Games are translated as separate packs, not as multi-language packs (ADR 0008). Ids are language-neutral and walkthroughs use ids, so a translation can keep the logic and the walkthrough unchanged, and verification shows that the game itself was preserved.

Scope

  • A translate prompt template, lexvm prompt --stage translate --pack <dir> --lang <lang> for any LLM, and a translation mode of lexvm generate for the API (--translate <dir>).
  • Only player-facing text is translated: titles, names, descriptions, dialogue, hints, endings, exit labels, pack verb labels, {id|display text} forms. Synonyms are recreated idiomatically for the parser of the target language. Ids, rules, conditions, effects and the walkthrough stay the same.
  • A structural check that compares source and translation: identical ids, rule and effect structure, and walkthrough; only text fields may differ. A new diagnostic code for violations.
  • Provenance: generator.notes names the source pack and version; a new pack id; the source license must allow derivatives, and attribution is kept.
  • The play-time estimate uses the reading speed of the target language.

Acceptance criteria

  • Translating the demo pack to German yields a pack that passes lexvm check with the same walkthrough and the same number of explored states.
  • The structural check rejects a translation that changes a rule.
  • docs/authoring/pipeline.md documents both flows.

References

  • docs/adr/0008-language-policy.md
  • prompts/templates/
  • packages/cli/src/generate/
  • docs/spec/content-pack.md (sections 2 and 4)
Dominant language
TypeScript
Stars
0
Forks
0
Avg merge
28m
Merged PRs (30d)
2

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 nullthrone/lexvm

All issues in nullthrone/lexvm

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.