13. Oktober 2026 · Changelog

CDPCMS 2.0.0

  • English is the source language of CDPCMS (order 1078, Michael: "everything is done in English, also the individual .php pages, the hints and inline comments, simply everything"). Every visible text (sidebar, page titles, headings, field labels, hints, buttons, placeholders, messages, validation errors, mails, settings pages, artisan commands) is written in English in the code as the `__()` key; German is only a translation in `lang/de.json` (843 entries). `lang/en.json` is no longer needed (kept under /root/archiv-1078). Framework texts in German: `lang/de/validation.php`, `auth.php`, `passwords.php`, `pagination.php`. The JavaScript dictionary `window.CMS_T` is filled from `lang/<locale>.json`. Fallback locale is now `en`.
  • All comments (file headers, DocBlocks, inline, Blade, CSS, JS, shell, systemd units), the documentation (README, theme.md, install scripts, module READMEs) and the tests are English. Order numbers stay (`1075:`). Lines that must carry German data (sentence-break abbreviations, German test fixtures, bilingual cookie-banner texts) are marked `german-data`.
  • Automatic check `tests/Unit/EnglishSourceTest`: fails when a `__()` key has no German translation, when a `__()` key or Blade text outside `__()` is German (umlauts or German word list), or when a comment contains umlauts.
  • English names (old names keep working): `App\Support\Money` (was CdpGeld; `forSite`, `number`, `symbol`, `format`, `parse`; array keys `format`/`currency`/`position`, `currency_position` values `before`/`after` – old `vor`/`nach` are still read), `Publisher::sentenceBreaks()` (was satzUmbruch), `ShopController::moneyInput()`, `ShopSetup` (was NotfallSetup); artisan `cdpcms:scheduled`, `cdpcms:invite`, `cdpcms:page-adopt {domain} {file} {slug}`, `cdpcms:module {name} {action on|off}`, `cdpcms:gfx-organize --dry-run`, `cdpcms:shop-setup --brand --price --shipping`, `cdpcms:wp-import --draft --skip --dry-run`, `cdpnews:connect --endpoint --list --lists --secret-file --on --check`, `cdpnews:install`, `cdpdownload:install` (the German names are aliases); website files `cms/assets/modals.php` (`cdpcms_modals()`), `ticker.php` (`cdpcms_ticker()`), `page.php` (`cdpcms_page()`), `controller/error-pages.php` – `fenster.php`, `laufband.php`, `seite.php`, `fehlerseiten.php` remain as compatibility files; page templates `post`, `side-by-side`, `no-title`, `full-width`, `_index`, `standard` (header keywords `Template:`, `For: page, post`, `Description:`; migration `2026_10_13_000100` renames `entries.template`, the Publisher maps old and new names in both directions, template names are translated in the editor); CMS route `/cms/modals` (`/cms/fenster` redirects 301, forms 308); media parameters `type`, `month`, `folder`, `view=list|grid` and type key `images` (old names still accepted); setting field type `amount` (was `betrag`); `deploy/setup.sh`, `cdpcms-update check|run`, `cdpcms-update-check.timer/.service` (old subcommands still accepted).
  • Nothing website-specific in the core: `ShopTheme::FIELDS` keeps only the generic groups (Brand, Appearance, Shipping and prices, Bundles and coupon code, Payment, Shipping label, Sender and mails) with neutral defaults; the brand select is built from `"brands"` in `cms/theme.json`. A theme adds its own groups with `cms/themes/<theme>/config/settings.php` or `config/cdp-settings.php` in the web folder (`ShopTheme::fields()`), optionally with `lang/<locale>.json` next to it. The website-specific groups of the notfall theme moved to `theme/cdpnotfall/config/cdp-settings.php` + `lang/de.json`; the product, colours and legal pages of `cdpcms:shop-setup` come from `config/cdp-setup.php` of the website (`theme/cdpnotfall/config/cdp-setup.php`).
  • Modals page (1077): fields in compact rows – name / type / on; small line / heading; button / link / link below; appears after / show again / start / end. Status badge "off" red (#c40000), "running" green. The term is "Modal"/"Modals" in English and German (never "Fenster").
  • No mention of other content systems remains in comments and texts (Michael, 13 Oct 2026); the import tool `cdpcms:wp-import` stays as a function for customers who move.
  • Fix: `cdpcms:gfx-organize` passed the old option to its per-site sub-process; `media.js` called the media API with the old German URL parts; `NotfallSetup` still wrote `price_cent` after 1075.

All posts