Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,13 @@ jobs:
- name: Install dependencies
run: gjsify install --immutable

# Ahead of the type checks so a broken catalog is reported as itself.
# `msgfmt` only asks whether a `msgstr` is non-empty, so this is the only
# gate that sees markup Pango cannot parse or a translated code
# identifier — both of which have reached `main` before.
- name: Validate translation catalogs
run: gjsify workspace @learn6502/translations check

# Build the workspace deps that publish built output (`@learn6502/core`,
# `examples`, `learn` ship `dist/*.d.ts`; `common-ui` exports source).
# Without this, type-checking common-ui/app-* fails with TS2307 "Cannot
Expand Down
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -335,7 +335,7 @@ Persona: native speaker + software engineer + 6502/retro dev interest. Produce a

**Reference:** Other language files in `packages/translations/*.po` (de, es, fr, ia, nl) as context.

**Validate:** `gjsify workspace @learn6502/translations build`
**Validate:** `gjsify workspace @learn6502/translations check` (structure: markup, tags, `<tt>` literals, placeholders — also run in CI), then `build`

## Documentation

Expand Down
2 changes: 1 addition & 1 deletion packages/translations/LINGUAS
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ nl
pl
pt
pt_BR
ta
uk
vi
zh_Hans
ta
28 changes: 28 additions & 0 deletions packages/translations/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,33 @@ Support for every new language is welcome.
3. **External links**:
- You may replace links to English pages with equivalent high-quality pages in the target language.
- Prefer reputable sources (e.g., Wikipedia) when a high-quality article exists in the target language.
- In-document anchors like `href="#jumping"` navigate inside the tutorial — keep the fragment as it is.
- Write `&` as `&amp;`, in a URL as well as in prose. A bare `&` — or an HTML-only entity like
`&nbsp;` — is a markup error, and the GNOME app renders the whole paragraph as nothing.

4. **Inline `<tt>` is code**, not prose: subroutine names, labels, opcodes, registers and addresses
the reader looks up in the editor. Copy it through unchanged. A translated `<tt>illegalMove</tt>`
describes code the reader cannot find, and a translated `<tt>JSR end</tt>` no longer assembles.
`<b>` may hold either — translate a UI button label like `<b>Step</b>`, matching how that button
is translated elsewhere in the catalog, and leave code like `<b>BVS/BVC</b>` alone.

### Checking your work

```bash
gjsify workspace @learn6502/translations check
```

`msgfmt` only asks whether a `msgstr` is non-empty, so a catalog can report 100% translated while
shipping strings the GNOME app cannot render. The `check` script reads what `msgfmt` does not, and
CI runs it on every pull request:

- the markup parses — every tag, attribute and `&` entity is one `GtkLabel` accepts, because a label
whose markup fails to parse renders as nothing at all;
- every tag the English opens is still there, so no emphasis and no link is dropped in translation;
- `<tt>` content is unchanged, per the rule above;
- format placeholders match — none dropped, none added.

It says nothing about language quality; that still needs a native speaker.

## Resources

Expand Down Expand Up @@ -71,6 +98,7 @@ Below is an overview of all languages, their sources, and human validation statu
| Finnish | fi | Contributed by Jiri Grönroos | Jiri Grönroos | Validated |
| Hebrew | he | Contributed by Menachem (@naattxx) | @naattxx | Validated |
| Indonesian | id | Contributed by Arif Budiman (@arifpedia) | @arifpedia | Validated |
| Tamil | ta | Contributed by தமிழ் நேரம் (@TamilNeram) via Weblate | — | Needs validation |

To volunteer as a validator, please use [Weblate](https://hosted.weblate.org/projects/eu-jumplink-learn6502/app/) or report your feedback in the [issue tracker](https://github.com/JumpLink/Learn6502/issues).

Expand Down
Loading
Loading