Skip to content

Commit 34d20fc

Browse files
17036 international messages (#17041)
* 17036 international messages * 17036 fix typo * 17036 fix _ * Misc cleanup & fixes * More cleanup --------- Co-authored-by: Jeremy Stretch <[email protected]>
1 parent f6c1642 commit 34d20fc

File tree

7 files changed

+94
-40
lines changed

7 files changed

+94
-40
lines changed

netbox/account/views.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ def post(self, request):
109109
# Authenticate user
110110
auth_login(request, form.get_user())
111111
logger.info(f"User {request.user} successfully authenticated")
112-
messages.success(request, f"Logged in as {request.user}.")
112+
messages.success(request, _("Logged in as {user}.").format(user=request.user))
113113

114114
# Ensure the user has a UserConfig defined. (This should normally be handled by
115115
# create_userconfig() on user creation.)
@@ -159,7 +159,7 @@ def get(self, request):
159159
username = request.user
160160
auth_logout(request)
161161
logger.info(f"User {username} has logged out")
162-
messages.info(request, "You have logged out.")
162+
messages.info(request, _("You have logged out."))
163163

164164
# Delete session key & language cookies (if set) upon logout
165165
response = HttpResponseRedirect(resolve_url(settings.LOGOUT_REDIRECT_URL))
@@ -234,7 +234,7 @@ class ChangePasswordView(LoginRequiredMixin, View):
234234
def get(self, request):
235235
# LDAP users cannot change their password here
236236
if getattr(request.user, 'ldap_username', None):
237-
messages.warning(request, "LDAP-authenticated user credentials cannot be changed within NetBox.")
237+
messages.warning(request, _("LDAP-authenticated user credentials cannot be changed within NetBox."))
238238
return redirect('account:profile')
239239

240240
form = PasswordChangeForm(user=request.user)
@@ -249,7 +249,7 @@ def post(self, request):
249249
if form.is_valid():
250250
form.save()
251251
update_session_auth_hash(request, form.user)
252-
messages.success(request, "Your password has been changed successfully.")
252+
messages.success(request, _("Your password has been changed successfully."))
253253
return redirect('account:profile')
254254

255255
return render(request, self.template_name, {

netbox/circuits/views.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from django.contrib import messages
22
from django.db import transaction
33
from django.shortcuts import get_object_or_404, redirect, render
4+
from django.utils.translation import gettext_lazy as _
45

56
from dcim.views import PathTraceView
67
from netbox.views import generic
@@ -326,7 +327,9 @@ def get(self, request, pk):
326327

327328
# Circuit must have at least one termination to swap
328329
if not circuit.termination_a and not circuit.termination_z:
329-
messages.error(request, "No terminations have been defined for circuit {}.".format(circuit))
330+
messages.error(request, _(
331+
"No terminations have been defined for circuit {circuit}."
332+
).format(circuit=circuit))
330333
return redirect('circuits:circuit', pk=circuit.pk)
331334

332335
return render(request, 'circuits/circuit_terminations_swap.html', {
@@ -374,7 +377,7 @@ def post(self, request, pk):
374377
circuit.termination_z = None
375378
circuit.save()
376379

377-
messages.success(request, f"Swapped terminations for circuit {circuit}.")
380+
messages.success(request, _("Swapped terminations for circuit {circuit}.").format(circuit=circuit))
378381
return redirect('circuits:circuit', pk=circuit.pk)
379382

380383
return render(request, 'circuits/circuit_terminations_swap.html', {

netbox/core/views.py

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,10 @@ def post(self, request, pk):
7676
datasource = get_object_or_404(self.queryset, pk=pk)
7777
job = datasource.enqueue_sync_job(request)
7878

79-
messages.success(request, f"Queued job #{job.pk} to sync {datasource}")
79+
messages.success(
80+
request,
81+
_("Queued job #{id} to sync {datasource}").format(id=job.pk, datasource=datasource)
82+
)
8083
return redirect(datasource.get_absolute_url())
8184

8285

@@ -235,7 +238,7 @@ def post(self, request, pk):
235238

236239
candidate_config = get_object_or_404(ConfigRevision, pk=pk)
237240
candidate_config.activate()
238-
messages.success(request, f"Restored configuration revision #{pk}")
241+
messages.success(request, _("Restored configuration revision #{id}").format(id=pk))
239242

240243
return redirect(candidate_config.get_absolute_url())
241244

@@ -379,9 +382,9 @@ def post(self, request, job_id):
379382
# Remove job id from queue and delete the actual job
380383
queue.connection.lrem(queue.key, 0, job.id)
381384
job.delete()
382-
messages.success(request, f'Deleted job {job_id}')
385+
messages.success(request, _('Job {id} has been deleted.').format(id=job_id))
383386
else:
384-
messages.error(request, f'Error deleting job: {form.errors[0]}')
387+
messages.error(request, _('Error deleting job {id}: {error}').format(id=job_id, error=form.errors[0]))
385388

386389
return redirect(reverse('core:background_queue_list'))
387390

@@ -394,13 +397,13 @@ def get(self, request, job_id):
394397
try:
395398
job = RQ_Job.fetch(job_id, connection=get_redis_connection(config['connection_config']),)
396399
except NoSuchJobError:
397-
raise Http404(_("Job {job_id} not found").format(job_id=job_id))
400+
raise Http404(_("Job {id} not found.").format(id=job_id))
398401

399402
queue_index = QUEUES_MAP[job.origin]
400403
queue = get_queue_by_index(queue_index)
401404

402405
requeue_job(job_id, connection=queue.connection, serializer=queue.serializer)
403-
messages.success(request, f'You have successfully requeued: {job_id}')
406+
messages.success(request, _('Job {id} has been re-enqueued.').format(id=job_id))
404407
return redirect(reverse('core:background_task', args=[job_id]))
405408

406409

@@ -412,7 +415,7 @@ def get(self, request, job_id):
412415
try:
413416
job = RQ_Job.fetch(job_id, connection=get_redis_connection(config['connection_config']),)
414417
except NoSuchJobError:
415-
raise Http404(_("Job {job_id} not found").format(job_id=job_id))
418+
raise Http404(_("Job {id} not found.").format(id=job_id))
416419

417420
queue_index = QUEUES_MAP[job.origin]
418421
queue = get_queue_by_index(queue_index)
@@ -435,7 +438,7 @@ def get(self, request, job_id):
435438
registry = ScheduledJobRegistry(queue.name, queue.connection)
436439
registry.remove(job)
437440

438-
messages.success(request, f'You have successfully enqueued: {job_id}')
441+
messages.success(request, _('Job {id} has been enqueued.').format(id=job_id))
439442
return redirect(reverse('core:background_task', args=[job_id]))
440443

441444

@@ -452,11 +455,11 @@ def get(self, request, job_id):
452455
queue_index = QUEUES_MAP[job.origin]
453456
queue = get_queue_by_index(queue_index)
454457

455-
stopped, _ = stop_jobs(queue, job_id)
456-
if len(stopped) == 1:
457-
messages.success(request, f'You have successfully stopped {job_id}')
458+
stopped_jobs = stop_jobs(queue, job_id)[0]
459+
if len(stopped_jobs) == 1:
460+
messages.success(request, _('Job {id} has been stopped.').format(id=job_id))
458461
else:
459-
messages.error(request, f'Failed to stop {job_id}')
462+
messages.error(request, _('Failed to stop job {id}').format(id=job_id))
460463

461464
return redirect(reverse('core:background_task', args=[job_id]))
462465

netbox/dcim/views.py

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2059,7 +2059,7 @@ def get_extra_context(self, request, instance):
20592059
try:
20602060
rendered_config = config_template.render(context=context_data)
20612061
except TemplateError as e:
2062-
messages.error(request, f"An error occurred while rendering the template: {e}")
2062+
messages.error(request, _("An error occurred while rendering the template: {error}").format(error=e))
20632063
rendered_config = traceback.format_exc()
20642064

20652065
return {
@@ -2823,7 +2823,13 @@ def post(self, request, pk):
28232823
device_bay.snapshot()
28242824
device_bay.installed_device = form.cleaned_data['installed_device']
28252825
device_bay.save()
2826-
messages.success(request, "Added {} to {}.".format(device_bay.installed_device, device_bay))
2826+
messages.success(
2827+
request,
2828+
_("Installed device {device} in bay {device_bay}.").format(
2829+
device=device_bay.installed_device,
2830+
device_bay=device_bay
2831+
)
2832+
)
28272833
return_url = self.get_return_url(request)
28282834

28292835
return redirect(return_url)
@@ -2858,7 +2864,13 @@ def post(self, request, pk):
28582864
removed_device = device_bay.installed_device
28592865
device_bay.installed_device = None
28602866
device_bay.save()
2861-
messages.success(request, f"{removed_device} has been removed from {device_bay}.")
2867+
messages.success(
2868+
request,
2869+
_("Removed device {device} from bay {device_bay}.").format(
2870+
device=removed_device,
2871+
device_bay=device_bay
2872+
)
2873+
)
28622874
return_url = self.get_return_url(request, device_bay.device)
28632875

28642876
return redirect(return_url)
@@ -3426,7 +3438,7 @@ def post(self, request, pk):
34263438

34273439
membership_form.save()
34283440
messages.success(request, mark_safe(
3429-
f'Added member <a href="{device.get_absolute_url()}">{escape(device)}</a>'
3441+
_('Added member <a href="{url}">{escape(device)}</a>').format(url=device.get_absolute_url())
34303442
))
34313443

34323444
if '_addanother' in request.POST:
@@ -3471,7 +3483,10 @@ def post(self, request, pk):
34713483
# Protect master device from being removed
34723484
virtual_chassis = VirtualChassis.objects.filter(master=device).first()
34733485
if virtual_chassis is not None:
3474-
messages.error(request, f'Unable to remove master device {device} from the virtual chassis.')
3486+
messages.error(
3487+
request,
3488+
_('Unable to remove master device {device} from the virtual chassis.').format(device=device)
3489+
)
34753490
return redirect(device.get_absolute_url())
34763491

34773492
if form.is_valid():
@@ -3483,7 +3498,10 @@ def post(self, request, pk):
34833498
device.vc_priority = None
34843499
device.save()
34853500

3486-
msg = 'Removed {} from virtual chassis {}'.format(device, device.virtual_chassis)
3501+
msg = _('Removed {device} from virtual chassis {chassis}').format(
3502+
device=device,
3503+
chassis=device.virtual_chassis
3504+
)
34873505
messages.success(request, msg)
34883506

34893507
return redirect(self.get_return_url(request, device))

netbox/netbox/views/generic/bulk_views.py

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,13 @@ def export_template(self, template, request):
106106
try:
107107
return template.render_to_response(self.queryset)
108108
except Exception as e:
109-
messages.error(request, f"There was an error rendering the selected export template ({template.name}): {e}")
109+
messages.error(
110+
request,
111+
_("There was an error rendering the selected export template ({template}): {error}").format(
112+
template=template.name,
113+
error=e
114+
)
115+
)
110116
# Strip the `export` param and redirect user to the filtered objects list
111117
query_params = request.GET.copy()
112118
query_params.pop('export')
@@ -668,7 +674,10 @@ def post(self, request, **kwargs):
668674
# Retrieve objects being edited
669675
table = self.table(self.queryset.filter(pk__in=pk_list), orderable=False)
670676
if not table.rows:
671-
messages.warning(request, "No {} were selected.".format(model._meta.verbose_name_plural))
677+
messages.warning(
678+
request,
679+
_("No {object_type} were selected.").format(object_type=model._meta.verbose_name_plural)
680+
)
672681
return redirect(self.get_return_url(request))
673682

674683
return render(request, self.template_name, {
@@ -745,8 +754,13 @@ def post(self, request):
745754
if self.queryset.filter(pk__in=renamed_pks).count() != len(selected_objects):
746755
raise PermissionsViolation
747756

748-
model_name = self.queryset.model._meta.verbose_name_plural
749-
messages.success(request, f"Renamed {len(selected_objects)} {model_name}")
757+
messages.success(
758+
request,
759+
_("Renamed {count} {object_type}").format(
760+
count=len(selected_objects),
761+
object_type=self.queryset.model._meta.verbose_name_plural
762+
)
763+
)
750764
return redirect(self.get_return_url(request))
751765

752766
except (AbortRequest, PermissionsViolation) as e:
@@ -838,7 +852,10 @@ def post(self, request, **kwargs):
838852
messages.error(request, mark_safe(e.message))
839853
return redirect(self.get_return_url(request))
840854

841-
msg = f"Deleted {deleted_count} {model._meta.verbose_name_plural}"
855+
msg = _("Deleted {count} {object_type}").format(
856+
count=deleted_count,
857+
object_type=model._meta.verbose_name_plural
858+
)
842859
logger.info(msg)
843860
messages.success(request, msg)
844861
return redirect(self.get_return_url(request))
@@ -855,7 +872,10 @@ def post(self, request, **kwargs):
855872
# Retrieve objects being deleted
856873
table = self.table(self.queryset.filter(pk__in=pk_list), orderable=False)
857874
if not table.rows:
858-
messages.warning(request, "No {} were selected for deletion.".format(model._meta.verbose_name_plural))
875+
messages.warning(
876+
request,
877+
_("No {object_type} were selected.").format(object_type=model._meta.verbose_name_plural)
878+
)
859879
return redirect(self.get_return_url(request))
860880

861881
return render(request, self.template_name, {
@@ -900,7 +920,10 @@ def post(self, request):
900920

901921
selected_objects = self.parent_model.objects.filter(pk__in=pk_list)
902922
if not selected_objects:
903-
messages.warning(request, "No {} were selected.".format(self.parent_model._meta.verbose_name_plural))
923+
messages.warning(
924+
request,
925+
_("No {object_type} were selected.").format(object_type=self.parent_model._meta.verbose_name_plural)
926+
)
904927
return redirect(self.get_return_url(request))
905928
table = self.table(selected_objects, orderable=False)
906929

netbox/netbox/views/generic/feature_views.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -202,11 +202,14 @@ def post(self, request, model, **kwargs):
202202
obj = get_object_or_404(qs, **kwargs)
203203

204204
if not obj.data_file:
205-
messages.error(request, f"Unable to synchronize data: No data file set.")
205+
messages.error(request, _("Unable to synchronize data: No data file set."))
206206
return redirect(obj.get_absolute_url())
207207

208208
obj.sync(save=True)
209-
messages.success(request, f"Synchronized data for {model._meta.verbose_name} {obj}.")
209+
messages.success(request, _("Synchronized data for {object_type} {object}.").format(
210+
object_type=model._meta.verbose_name,
211+
object=obj
212+
))
210213

211214
return redirect(obj.get_absolute_url())
212215

@@ -228,7 +231,9 @@ def post(self, request):
228231
for obj in selected_objects:
229232
obj.sync(save=True)
230233

231-
model_name = self.queryset.model._meta.verbose_name_plural
232-
messages.success(request, f"Synced {len(selected_objects)} {model_name}")
234+
messages.success(request, _("Synced {count} {object_type}").format(
235+
count=len(selected_objects),
236+
object_type=self.queryset.model._meta.verbose_name_plural
237+
))
233238

234239
return redirect(self.get_return_url(request))

netbox/virtualization/views.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -271,8 +271,9 @@ def post(self, request, pk):
271271
device.cluster = cluster
272272
device.save()
273273

274-
messages.success(request, "Added {} devices to cluster {}".format(
275-
len(device_pks), cluster
274+
messages.success(request, _("Added {count} devices to cluster {cluster}").format(
275+
count=len(device_pks),
276+
cluster=cluster
276277
))
277278
return redirect(cluster.get_absolute_url())
278279

@@ -305,8 +306,9 @@ def post(self, request, pk):
305306
device.cluster = None
306307
device.save()
307308

308-
messages.success(request, "Removed {} devices from cluster {}".format(
309-
len(device_pks), cluster
309+
messages.success(request, _("Removed {count} devices from cluster {cluster}").format(
310+
count=len(device_pks),
311+
cluster=cluster
310312
))
311313
return redirect(cluster.get_absolute_url())
312314

@@ -444,7 +446,7 @@ def get_extra_context(self, request, instance):
444446
try:
445447
rendered_config = config_template.render(context=context_data)
446448
except TemplateError as e:
447-
messages.error(request, f"An error occurred while rendering the template: {e}")
449+
messages.error(request, _("An error occurred while rendering the template: {error}").format(error=e))
448450
rendered_config = traceback.format_exc()
449451

450452
return {

0 commit comments

Comments
 (0)