Skip to content

v9.44

Choose a tag to compare

@github-actions github-actions released this 14 Jun 06:11
· 81 commits to main since this release

v9.44 2026-06-14 WeKan ® release

This release adds the following new features:

  • Full right-to-left (RTL) UI for every page when an RTL language is selected
    (Arabic and its variants, Persian/Farsi, Hebrew, Uyghur, Uzbek-Arabic and
    Yiddish — the languages flagged rtl: true in imports/i18n/languages.js).
    Previously only some pages flipped. The root <html> element now gets a
    reactive dir="rtl"/dir="ltr" attribute that follows the chosen language, so
    the whole UI mirrors at once. To make this work on every page rather than a
    handful, all directional component CSS was converted to CSS logical properties
    (margin-leftmargin-inline-start, left:inset-inline-start:,
    text-align: lefttext-align: start, float: leftfloat: inline-start,
    and the mirror-image right/end variants) across 48 stylesheets, which flip
    automatically with dir. Horizontal-centering rules using
    left: 50% + transform: translate(-50%, …) were intentionally kept physical,
    since those already center correctly in both directions. The calendar view also
    renders RTL. Thanks to xet7 and Claude.
  • Tests for the RTL UI. A fast, server-less tests/rtl.test.js (run with
    node tests/rtl.test.js) checks that exactly the expected languages are
    flagged rtl: true, that the direction helper maps each language to the right
    dir value, that the root <html> and the client keep dir in sync, and —
    as a regression guard — that component CSS keeps using logical properties
    (no physical margin-left/float: left/bare left: offsets sneak back in).
    A Playwright browser spec tests/playwright/specs/18-rtl-layout.e2e.js drives
    the app in both English (LTR) and Arabic (RTL) and asserts, on the boards list,
    board view, card details, my-cards / due-cards / global-search, the admin
    settings page and the login page, that the direction is correct, the
    translated text is visible, and leading-edge content (the boards menu, the
    first board list) sits on the correct side. Thanks to xet7 and Claude.
  • Fixed the "Meteor unit tests" CI job hanging until its 45-minute timeout. The
    workflow set TEST_WATCH: '0', but meteortesting:mocha computes
    testWatch: TEST_WATCH || … and the string '0' is truthy in JavaScript, so
    it turned on watch mode and the process never exited. Removing the env var lets
    meteor test --once finish and exit with the correct status. Thanks to xet7
    and Claude.

Thanks to above GitHub users for their contributions and translators for their translations.