Skip to content

Simple guide · Overview

Page status: HistoricalHistory group: Updates

Swiss German, German, and Greek Language Update

This update adds three NutsNews languages across the web UI and article translation pipeline:

Visual overview

Primary diagram

System map

This update adds three NutsNews languages across the web UI and article translation pipeline:

Render the repository-owned system map when you need it.

Diagram is not rendered yet.

View as text
Swiss German, German, and Greek Language Update

This update adds three NutsNews languages across the web UI and article translation pipeline:

flowchart TB
  accTitle: Swiss German, German, and Greek Language Update
  accDescr {
    This update adds three NutsNews languages across the web UI and article translation pipeline:
  }
  A["Swiss German, German, and Greek Language Update"] --> B["updates/README_SWISS_GERMAN_GREEK_LANGUAGE_UPDATE.md"]
  B --> C["Auto-generated placeholder diagram"]

Swiss German, German, and Greek Language Update

Fullscreen diagram view.

Swiss German, German, and Greek Language Update

Section titled “Swiss German, German, and Greek Language Update”

This update adds three NutsNews languages across the web UI and article translation pipeline:

  • de-CH — Swiss German / Swiss High German
  • de — German
  • el — Greek
  • Adds the three languages to the site language selector.
  • Localizes the home feed copy, search UI, footer, hero tagline, settings menu, contact page, about page, and privacy page.
  • Lets the web API load translated article titles and summaries from public.article_summaries for the new language codes.
  • Updates the Cloudflare Worker translation defaults to generate fr, ja, de-CH, de, and el summaries.
  • Updates the local AI /translate endpoint so it accepts and translates the new language codes.
  • Updates translation audit, diagnosis, backfill, offline regression, wrangler, and GitHub translation coverage defaults.
Terminal window
export ENABLED_SUMMARY_LANGUAGES="fr,ja,de-CH,de,el"

Dry run first:

Terminal window
LANGUAGE_CODES="de-CH,de,el" \
BACKFILL_SOURCE=public_feed_snapshot \
CANDIDATE_LIMIT=250 \
BACKFILL_LIMIT=30 \
DRY_RUN=1 \
node scripts/backfill_article_summaries.mjs

Run the backfill:

Terminal window
LANGUAGE_CODES="de-CH,de,el" \
BACKFILL_SOURCE=public_feed_snapshot \
CANDIDATE_LIMIT=250 \
BACKFILL_LIMIT=30 \
node scripts/backfill_article_summaries.mjs
Terminal window
LANGUAGE_CODES="fr,ja,de-CH,de,el" \
AUDIT_SOURCE=public_feed_snapshot \
AUDIT_LIMIT=100 \
node scripts/audit_article_translations.mjs