Skip to content

Commit 5899135

Browse files
timobrembeckclaudep
authored andcommitted
Enable internationalization for URL status messages
1 parent 1367451 commit 5899135

File tree

4 files changed

+157
-13
lines changed

4 files changed

+157
-13
lines changed

CHANGELOG

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
Unreleased
22

3+
* Enable internationalization for URL status messages (Timo Ludwig, #125)
34
* Enable re-checking after rate limit was hit (Timo Ludwig, #153)
45
* Ignore raw `post_save` signal (Timo Ludwig, #106)
56
* Retry with fallback user agent on forbidden response (Timo Ludwig, #159)

linkcheck/locale/de/LC_MESSAGES/django.po

Lines changed: 80 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
msgid ""
22
msgstr ""
33
"Report-Msgid-Bugs-To: \n"
4-
"POT-Creation-Date: 2023-02-22 22:35+0100\n"
4+
"POT-Creation-Date: 2023-02-28 23:01+0100\n"
55
"Language: German\n"
66
"MIME-Version: 1.0\n"
77
"Content-Type: text/plain; charset=UTF-8\n"
@@ -53,38 +53,106 @@ msgstr[0] ""
5353
msgstr[1] ""
5454
"Das Löschen von {} hat dazu geführt, dass {} Links nicht mehr funktionieren."
5555

56-
#: models.py:111
56+
#: models.py:118
5757
msgid "Working empty anchor"
5858
msgstr "Funktionierender leerer Anker"
5959

60-
#: models.py:113
60+
#: models.py:120
6161
msgid "Anchor could not be checked"
6262
msgstr "Anker konnte nicht geprüft werden"
6363

64-
#: models.py:115
64+
#: models.py:122
6565
msgid "Broken anchor"
6666
msgstr "Ungültiger Anker"
6767

68-
#: models.py:116
68+
#: models.py:123
6969
msgid "Working anchor"
7070
msgstr "Funktionierender Anker"
7171

72-
#: models.py:123
72+
#: models.py:130
7373
msgid "Insecure link"
7474
msgstr "Unsicherer Link"
7575

76-
#: models.py:125
76+
#: models.py:132
7777
msgid "SSL certificate could not be checked"
7878
msgstr "SSL-Zertifikat konnte nicht überprüft werden"
7979

80-
#: models.py:127
80+
#: models.py:134
8181
msgid "Broken SSL certificate"
8282
msgstr "Fehlerhaftes SSL-Zertifikat"
8383

84-
#: models.py:128
84+
#: models.py:135
8585
msgid "Valid SSL certificate"
8686
msgstr "Valides SSL-Zertifikat"
8787

88+
#: models.py:140
89+
msgid "URL Not Yet Checked"
90+
msgstr "URL noch nicht geprüft"
91+
92+
#: models.py:142
93+
msgid "Empty link"
94+
msgstr "Leerer Link"
95+
96+
#: models.py:144
97+
msgid "Invalid URL"
98+
msgstr "Ungültige URL"
99+
100+
#: models.py:146
101+
msgid "Email link"
102+
msgstr "Email-Link"
103+
104+
#: models.py:146 models.py:148 models.py:150
105+
msgid "not automatically checked"
106+
msgstr "nicht automatisch geprüft"
107+
108+
#: models.py:148
109+
msgid "Phone number link"
110+
msgstr "Telefonnummern-Link"
111+
112+
#: models.py:150
113+
msgid "Anchor link"
114+
msgstr "Anker-Link"
115+
116+
#: models.py:152
117+
msgid "Working file link"
118+
msgstr "Funktionierender Datei-Link"
119+
120+
#: models.py:152
121+
msgid "Missing file"
122+
msgstr "Fehlende Datei"
123+
124+
#: models.py:156
125+
msgid "Working external link"
126+
msgstr "Funktionierender externer Link"
127+
128+
#: models.py:156
129+
msgid "Working internal link"
130+
msgstr "Funktionierender interner Link"
131+
132+
#: models.py:160
133+
msgid "Working permanent redirect"
134+
msgstr "Funktionierende dauerhafte Weiterleitung"
135+
136+
#: models.py:160
137+
msgid "Working temporary redirect"
138+
msgstr "Funktionierende temporäre Weiterleitung"
139+
140+
#: models.py:162
141+
msgid "Broken permanent redirect"
142+
msgstr "Fehlerhafte dauerhafte Weiterleitung"
143+
144+
#: models.py:162
145+
msgid "Broken temporary redirect"
146+
msgstr "Fehlerhafte temporäre Weiterleitung"
147+
148+
#: models.py:163
149+
msgid "Broken external link"
150+
msgstr "Fehlerhafter externer Link"
151+
152+
#: models.py:163
153+
msgid "Broken internal link"
154+
msgstr "Fehlerhafter interner Link"
155+
88156
#: templates/linkcheck/base_linkcheck.html:5
89157
#: templates/linkcheck/base_linkcheck.html:11
90158
#: templates/linkcheck/base_linkcheck.html:17
@@ -199,3 +267,6 @@ msgstr "Nicht ignorieren"
199267
#: templates/linkcheck/report.html:173
200268
msgid "Redirects to"
201269
msgstr "Leitet weiter zu"
270+
271+
#~ msgid "Link to section on same page"
272+
#~ msgstr "Link zu Abschnitt auf derselben Seite"

linkcheck/models.py

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,10 @@ class Url(models.Model):
7979
error_message = models.CharField(max_length=1024, default='', blank=True)
8080
redirect_to = models.TextField(blank=True)
8181

82+
@property
83+
def redirect_ok(self):
84+
return self.redirect_status_code < 300 if self.redirect_status_code else None
85+
8286
@property
8387
def type(self):
8488
if self.external:
@@ -132,10 +136,31 @@ def ssl_message(self):
132136

133137
@property
134138
def get_message(self):
135-
if self.last_checked:
136-
return self.message
137-
else:
138-
return "URL Not Yet Checked"
139+
if not self.last_checked:
140+
return _('URL Not Yet Checked')
141+
elif self.type == 'empty':
142+
return _('Empty link')
143+
elif self.type == 'invalid':
144+
return _('Invalid URL')
145+
elif self.type == 'mailto':
146+
return '{} ({})'.format(_("Email link"), _("not automatically checked"))
147+
elif self.type == 'phone':
148+
return '{} ({})'.format(_("Phone number link"), _("not automatically checked"))
149+
elif self.type == 'anchor':
150+
return '{} ({})'.format(_("Anchor link"), _("not automatically checked"))
151+
elif self.type == 'file':
152+
return _('Working file link') if self.status else _('Missing file')
153+
elif not self.status_code:
154+
return self.error_message
155+
elif self.status_code < 300:
156+
return _('Working external link') if self.external else _('Working internal link')
157+
elif self.status_code < 400:
158+
permanent = self.status_code in [HTTPStatus.MOVED_PERMANENTLY, HTTPStatus.PERMANENT_REDIRECT]
159+
if self.redirect_ok:
160+
return _('Working permanent redirect') if permanent else _('Working temporary redirect')
161+
else:
162+
return _('Broken permanent redirect') if permanent else _('Broken temporary redirect')
163+
return _('Broken external link') if self.external else _('Broken internal link')
139164

140165
@property
141166
def colour(self):

0 commit comments

Comments
 (0)