99 Commits

Author SHA1 Message Date
authentik-automation[bot]
c42eb839c3 core, web: update translations (#25528)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-27 09:26:51 +02:00
authentik-automation[bot]
e3001864f8 core, web: update translations (#25398)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-23 23:31:08 +00:00
authentik-automation[bot]
aa87ac8b28 core, web: update translations (#25042)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2026-08-13 15:23:39 +02:00
authentik-automation[bot]
f46bbb30cd core, web: update translations (#25011)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2026-08-12 06:09:18 +01:00
authentik-automation[bot]
560518a78a core, web: update translations (#24853)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-07 08:03:34 +00:00
authentik-automation[bot]
4f37139a82 core, web: update translations (#24802)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2026-08-06 11:05:49 +01:00
authentik-automation[bot]
e11aa54911 core, web: update translations (#24773)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2026-08-05 11:05:42 +01:00
authentik-automation[bot]
9e80f548e1 core, web: update translations (#24717)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2026-08-04 15:02:16 +02:00
authentik-automation[bot]
b29025f6d2 core, web: update translations (#24611)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-03 15:35:02 +02:00
authentik-automation[bot]
c991de5f1a core, web: update translations (#24538)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-31 13:20:04 +02:00
authentik-automation[bot]
1195254ba2 core, web: update translations (#24513)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-30 18:48:01 +02:00
authentik-automation[bot]
46e9c5e422 core, web: update translations (#24484)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2026-07-30 15:10:42 +00:00
authentik-automation[bot]
cb4191232f core, web: update translations (#24467)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-30 13:22:34 +02:00
authentik-automation[bot]
0ef5a1e216 core, web: update translations (#24445)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-29 13:46:21 +00:00
authentik-automation[bot]
973d9b9a1a core, web: update translations (#24420)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2026-07-28 10:55:08 +00:00
authentik-automation[bot]
a5687ae748 core, web: update translations (#24364)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-27 15:53:12 +02:00
authentik-automation[bot]
d80647b165 core, web: update translations (#24331)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-24 14:58:57 +02:00
authentik-automation[bot]
eb5419d3ff core, web: update translations (#24304)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-23 15:36:10 +02:00
authentik-automation[bot]
7e59364dc7 core, web: update translations (#24276)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2026-07-22 10:48:22 +01:00
authentik-automation[bot]
65310d4213 core, web: update translations (#24037)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-15 13:39:32 +02:00
authentik-automation[bot]
6efe4d0e40 core, web: update translations (#23913)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2026-07-11 03:50:36 +02:00
authentik-automation[bot]
bcd845c7a7 core, web: update translations (#23841)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2026-07-08 10:59:14 +01:00
authentik-automation[bot]
a08f9767fa core, web: update translations (#23669)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-06 13:04:28 +02:00
authentik-automation[bot]
5150546bcf core, web: update translations (#23648)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-03 12:12:44 +00:00
authentik-automation[bot]
5e8b366dc5 core, web: update translations (#23581)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2026-07-02 04:31:38 +02:00
authentik-automation[bot]
d1b34ed325 core, web: update translations (#23534)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-06-30 12:07:24 +00:00
authentik-automation[bot]
e69c9d9d6a core, web: update translations (#23373)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-06-25 14:53:38 +02:00
Teffen Ellis
d012a82d95 web: decode lit-localize over-escaped entities across all localized strings (#23264)
* web: sanitize lit-localize over-escape across all str-tagged messages

`@lit/localize-tools@0.8.x` HTML-escapes every text fragment it splices
into a compiled message template, including `str`-tagged and untagged
messages whose runtime value is a plain string. That bakes literal `<`,
`>`, and `&` characters into the output as `&lt;`, `&gt;`, `&amp;`, and
re-escapes a translator's `&quot;` to `&amp;quot;` — both surfacing as
visible entity text wherever a translated message lands in a DOM text
node. #22857 fixed one case by relocating the angle brackets outside the
`msg(str…)` wrapper. The defect class itself was wider than that one
string.

The XLIFFs mirror Transifex, so an in-repo `<target>` cleanup gets
overwritten on the next sync. The fix lives in the build pipeline:
`build-locales.mjs` now runs `scripts/unescape-locale-entities.mjs`
after `RuntimeLitLocalizer.build()`, which walks every emitted
`src/locales/*.ts` and decodes the XML predefined entities (`&lt;`,
`&gt;`, `&quot;`, `&apos;`, `&amp;`) back to characters for `str`-tagged
and untagged template literals. `html`-tagged literals get a milder
pass that strips one layer of `&amp;`-doubling, so a legitimate `&gt;`
stays single-encoded and lit-html still parses it back to `>`.

`PasswordPolicyForm.ts` also had five `msg("… (guesses &lt; 10^3)")`
source-side strings using literal entities for the score-threshold
helper text. Rewrote them with real `<` / `>=` characters and gave them
explicit `policy.password.score-threshold.description.*-guessable` IDs
per the kebab-hierarchy convention in `web/AGENTS.md`. The
re-extraction sweep dropped the five orphaned auto-hashed trans-units
out of every XLIFF; the next Transifex sync will refill the new IDs.

A unit test covers the sanitizer for str-tagged, untagged, html-tagged,
substitution holes, fully doubled entities, and the no-op
pass-through. A headless Chromium run signed in as akadmin in de-DE
and fi-FI finds zero `&(amp|lt|gt|quot|apos);` hits across body text,
aria-labels, titles, and placeholders.

Co-Authored-By: ${GIT_CO_AUTHOR_NAME} <${GIT_CO_AUTHOR_EMAIL}>

* web: ignore foreign-language locale test fixtures in cspell
2026-06-24 21:58:43 +02:00
Teffen Ellis
69d358c444 web: fix email angle brackets rendering as HTML entities in localized UI (#23262)
web/admin: fix angle-bracket email entities leaking through localized UI (#22857)

The user details page rendered the email portion of a user's display name as
literal "&lt;user@example.com&gt;" text under any locale other than English.

The root cause sits upstream in @lit/localize-tools 0.8.2. Its
"escapeTextContentToEmbedInTemplateLiteral" helper HTML-escapes "<", ">", and
"&" in every message string it emits into the compiled locale TS modules,
including plain "str" (non-HTML) messages. The same helper also runs against
the source content when a locale has no <target> for a given trans-unit, so
the escaped text is baked into the fallback. English avoided the issue only
because the runtime uses the live source template literal rather than the
compiled module.

The simplest fix is to keep the angle brackets out of the "msg(str…)"
wrapper so they survive as literal characters in the JS string at runtime.
RFC-style <email> notation does not need translating, and the existing
"user.display.emailInAngleBrackets" trans-units had no actual translations
anyway. Running "npm run extract-locales" sweeps the now-unused entries out
of every XLIFF file.

Co-authored-by: Agent (authentik-i22857-kind-broad-vanilla) <279763771+playpen-agent@users.noreply.github.com>
2026-06-22 18:15:04 +02:00
authentik-automation[bot]
010b8a0942 core, web: update translations (#23196)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-06-19 11:52:19 +00:00
authentik-automation[bot]
91ef9e0d69 core, web: update translations (#23150)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-06-17 13:54:46 +02:00
authentik-automation[bot]
959ba246a8 core, web: update translations (#23018)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2026-06-15 14:24:29 +02:00
authentik-automation[bot]
8554427d3f core, web: update translations (#22983)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2026-06-11 05:35:35 +02:00
authentik-automation[bot]
77f293a1f0 core, web: update translations (#22852)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2026-06-04 19:48:19 +00:00
authentik-automation[bot]
4a5525d2ed core, web: update translations (#22453)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-20 14:35:47 +02:00
authentik-automation[bot]
281a4d9bdb core, web: update translations (#22372)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-18 14:10:58 +00:00
authentik-automation[bot]
5a0a210d4a core, web: update translations (#22344)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2026-05-14 13:17:31 +02:00
authentik-automation[bot]
df5c2cc662 core, web: update translations (#22140)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2026-05-11 13:26:23 +02:00
authentik-automation[bot]
16de9d1b44 core, web: update translations (#22074)
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2026-05-06 15:26:38 +02:00
authentik-automation[bot]
5064167f28 core, web: update translations (#22047)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2026-05-05 13:08:29 +02:00
authentik-automation[bot]
c834681251 core, web: update translations (#22014)
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2026-05-04 14:41:55 +02:00
authentik-automation[bot]
0b6d3a2850 core, web: update translations (#22013)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2026-05-02 18:26:22 +02:00
authentik-automation[bot]
aad4b6f925 core, web: update translations (#21998)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2026-05-01 02:01:58 -03:00
authentik-automation[bot]
16fd8183b0 core, web: update translations (#21966)
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2026-04-30 13:41:38 +02:00
authentik-automation[bot]
99250b0498 core, web: update translations (#21952)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2026-04-29 04:08:12 +02:00
authentik-automation[bot]
94ce30adb5 core, web: update translations (#21870)
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2026-04-28 14:08:06 +02:00
authentik-automation[bot]
e4971f9aa5 core, web: update translations (#21785)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2026-04-23 10:39:13 +02:00
authentik-automation[bot]
d158fdb792 core, web: update translations (#21655)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2026-04-17 23:50:28 +01:00
authentik-automation[bot]
067a2216a0 core, web: update translations (#21631)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2026-04-16 06:33:36 +00:00
authentik-automation[bot]
4b0831d840 core, web: update translations (#21552)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2026-04-12 13:31:17 +02:00