WeblateOrg / WeblateOrg/weblate
Accessibility: plain text notification readable but malformed
- 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
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