WeblateOrg / WeblateOrg/weblate

Accessibility: plain text notification readable but malformed

Open
#21,519 5 comments 0 reactions 0 assignees View on GitHub
Area: Notifications Waiting for: Demand
Dominant language
Python
Stars
6.1k
Forks
1.4k
Avg merge
9h 53m
Merged PRs (30d)
395

Description

### Affected page or workflow

The content of notification emails is malformed in some cases. ~~The reason might be line breaks inserted by component on the server or on the client side.~~

The current output is the "raw-view" from posteo.de web-frontend (might be dovecot). The line breaks you see are not from Weblate, but from dovecot (or Firefox) when going into raw-view. Just ignore it.

Looks like markdown (using `[lable](link)` syntax).

```
--===============2738476748753073263==
Content-Type: multipart/alternative;
boundary="===============2759644650340816269=="

--===============2759644650340816269==
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable

# Alert triggered

[Codeberg Translate](https://translate.codeberg.org) /
[Feedybus](https://translate.codeberg.org/projects/feedybus/) /
[feedybus](https://translate.codeberg.org/projects/feedybus/feedybus/)

## Broken repository browser URL

Weblate could not validate the repository browser URL:

* : The read operation timed out=20

In case the above links work for you, they might just require authentication,
and it is safe to dismiss this alert.

This can happen if the path within the translation files contains references
to a parent directory, or is absolute.

[Documentation](https://docs.weblate.org/en/weblate-2026.8.1/admin/projects.h=
tml#component-
repoweb)

[View
diagnostics](https://translate.codeberg.org/projects/feedybus/feedybus/#alert=
s)

## Component Information

| Languages | [7](https://translate.codeberg.org/projects/feed=
ybus/feedybus/) | =
|
|-------------------------|--------------------------------------------------=
---------------------------------------|-------------------------------------=
----------------------------------------------------|
| All strings | [ 448 ](https://translate.codeberg.org/search/fe=
edybus/feedybus/) | =
|
| Translated strings | [ 339 ](https://translate.codeberg.org/search/fe=
edybus/feedybus/?q=3Dstate:>=3Dtranslated) | [ 75% ](https://translate.codeb=
erg.org/search/feedybus/feedybus/?q=3Dstate:>=3Dtranslated) |
| Untranslated strings | [ 108 ](https://translate.codeberg.org/search/fe=
edybus/feedybus/?q=3Dstate:empty) | [ 24% ](https://translate.codeber=
g.org/search/feedybus/feedybus/?q=3Dstate:empty) |
| Unfinished strings | [ 109 ](https://translate.codeberg.org/search/fe=
edybus/feedybus/?q=3Dstate:

### Steps to reproduce

Use plain text view in your mail client.

### Expected behavior

- Real plain text, not markdown.
- Lines not longer than 79 characters.

Additionally on the long run: "Send plain text only" option for users and/or admins, to spare bandwith (and CO2) with not sending multipart messages.

### Actual behavior

Malformed plain text part of multipart mails.

### Input method

_No response_

### Environment

_No response_

### Impact

Minor issue or inconsistent behavior

### Workaround

_No response_

### Screenshots or recordings

_No response_

### Additional context

_No response_

Contributor guide

Open the contributing guide

Research direction

No file or test is named in the report. Start by reproducing the notification in a mail client's plain-text view, then locate the notification email rendering path. Done means the plain-text part is readable plain text rather than Markdown, with lines no longer than 79 characters.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.