feat: harden localization against malicious HTML (#5703)

- Add a new script that proccess the localization files and verify that
they only contain HTML according to our strictly defined rules.
- This should make adding malicious HTML near-impossible.

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5703
Reviewed-by: 0ko <0ko@noreply.codeberg.org>
Co-authored-by: Gusted <postmaster@gusted.xyz>
Co-committed-by: Gusted <postmaster@gusted.xyz>
This commit is contained in:
Gusted 2024-10-30 15:59:48 +00:00 committed by 0ko
commit dfe3ffc581
43 changed files with 361 additions and 151 deletions

View file

@ -839,7 +839,7 @@ add_email_confirmation_sent = Eene Utwiesens-E-Mail is an »%s« schickt worden.
ssh_desc = Deese publiken SSH-Slötels sünd mit dienem Konto verbunnen. De tohörig privaate Slötel gifft kumpleten Togriep up diene Repositoriums. SSH-Slötels, wat utwiest worden sünd, könen bruukt worden, um SSH-unnerschreven Git-Kommitterens uttowiesen.
keep_email_private_popup = Dat word diene E-Mail-Adress vun dienem Profil verburgen. Dann is dat nich mehr de Normaalweert för Kommitterens, wat du över de Internett-Schnittstee maakst, so as Datei-Upladens un Bewarkens, un word nich in Tosamenföhrens-Kommitterens bruukt. In Stee daarvun kann eene besünnere Adress %s bruukt worden, um Kommitterens mit dienem Konto to verbinnen. Wees wiss, dat dat Ännern vun deeser Instellen bestahn Kommitterens nich ännert.
ssh_helper = <strong>Bruukst du Hülp?</strong> Kiek de Inföhren an, wo du <a href="%s">diene eegenen SSH-Slötels maakst</a> of hülp <a href="%s">gewohnten Probleemen</a> of, över wat man mit SSH mennigmaal strukelt.
access_token_desc = Utköört Teken-Verlöövnissen begrenzen dat Anmellen blots up de tohörig <a %s>API</a>-Padden. Lees de <a %s>Dokumenteren</a> för mehr Informatioonen.
access_token_desc = Utköört Teken-Verlöövnissen begrenzen dat Anmellen blots up de tohörig <a href="%[1]s" target="_blank">API</a>-Padden. Lees de <a href="%[2]s" target="_blank">Dokumenteren</a> för mehr Informatioonen.
oauth2_confidential_client = Diskreeter Klient. Köör dat för Programmen ut, wat dat Geheimnis diskreet behanneln, as Internett-Sieden. Köör dat nich för stedenwies Programmen ut, as Schrievdisk- un Telefoon-Programmens.
gpg_helper = <strong>Bruukst du Hülp?</strong> Kiek de Inföhren <a href="%s">över GPG</a> an.
gpg_desc = Deese publiken GPG-Slötels sünd mit dienem Konto verbunnen un worden bruukt, um diene Kommitterens uttowiesen. Holl de tohörig privaaten Slötels seker, denn daarmit kann man Kommitterens mit diener Unnerschrift unnerschrieven.
@ -1126,7 +1126,7 @@ editor.patching = Plackt:
editor.fail_to_apply_patch = Kann Plack »%s« nich anwennen
editor.new_patch = Nejer Plack
editor.commit_message_desc = Wenn du willst, föög een wiederes Beschrieven hento …
editor.commit_directly_to_this_branch = Kommitteer stracks up de <strong class="branch-name">%s</strong>-Twieg.
editor.commit_directly_to_this_branch = Kommitteer stracks up de <strong class="%[2]s">%[1]s</strong>-Twieg.
editor.propose_file_change = Datei-Ännern vörslagen
editor.new_branch_name = Benööm de Twieg för deeses Kommitteren
editor.new_branch_name_desc = Nejer Twig-Naam …
@ -1561,7 +1561,7 @@ issues.due_date_invalid = Dat Anstahns-Datum is ungültig of buten de Rieg. Bidd
issues.dependency.remove = Wegdoon
issues.dependency.issue_close_blocks = Deeses Gefall blockeert dat Dichtmaken vun deesen Gefallens
issues.review.outdated_description = Inholl hett sik ännert, siet deeser Kommentaar schreven worden is
issues.force_push_codes = `hett %[1]s vun <a class="ui sha" href="%[3]s"><code>%[2]s</code></a> to <a class="ui sha" href="%[5]s"><code>%[4]s</code></a> %[6]s dwangsschuven`
issues.force_push_codes = `hett %[1]s vun <a class="%[7]s" href="%[3]s"><code>%[2]s</code></a> to <a class="%[7]s" href="%[5]s"><code>%[4]s</code></a> %[6]s dwangsschuven`
issues.dependency.pr_remove_text = Dat word de Ofhangen vun deesem Haalvörslag wegdoon. Wiedermaken?
issues.review.pending = Staht ut
issues.review.option.hide_outdated_comments = Verollte Kommentarens verbargen
@ -1599,7 +1599,7 @@ pulls.filter_changes_by_commit = Na Kommitteren filtern
pulls.nothing_to_compare = Deese Twiegen sünd gliek. t is nich nödig, eenen Haalvörslag to maken.
pulls.nothing_to_compare_have_tag = De utköört Twieg/Mark sünd gliek.
pulls.create = Haalvörslag maken
pulls.title_desc_one = will %[1]d Kommitteren vun <code>%[2]s</code> na <code id="branch_target">%[3]s</code> tosamenföhren
pulls.title_desc_one = will %[1]d Kommitteren vun <code>%[2]s</code> na <code id="%[4]s">%[3]s</code> tosamenföhren
pulls.merged_title_desc_one = hett %[1]d Kommitteren vun <code>%[2]s</code> na <code>%[3]s</code> %[4]s tosamenföhrt
pulls.change_target_branch_at = `hett de Enn-Twieg vun <b>%s</b> to <b>%s</b> %s ännert`
pulls.tab_conversation = Snack
@ -1649,7 +1649,7 @@ issues.content_history.delete_from_history = Ut Histoorje lösken
pulls.compare_changes = Nejer Haalvörslag
pulls.allow_edits_from_maintainers_desc = Brukers, well dat Recht hebben, to de Grund-Twieg to schrieven, düren ok up deesen Twieg schuuven
pulls.nothing_to_compare_and_allow_empty_pr = Deese Twiegen sünd gliek. De HV word leeg wesen.
pulls.title_desc_few = will %[1]d Kommitterens vun <code>%[2]s</code> na <code id="branch_target">%[3]s</code> tosamenföhren
pulls.title_desc_few = will %[1]d Kommitterens vun <code>%[2]s</code> na <code id="%[4]s">%[3]s</code> tosamenföhren
pulls.data_broken = Deeser Haalvörslag is kaputt, denn de Gabel-Informatioon fehlt.
pulls.waiting_count_1 = %d Nakieken staht ut
issues.content_history.deleted = lösket