diff --git a/HACKING.md b/HACKING.md index 1b69d3ab0..df5ecdf1b 100644 --- a/HACKING.md +++ b/HACKING.md @@ -304,7 +304,7 @@ default. ### Marking text for translation To mark text for translation, FreedomBox uses Django's translation strings. A -module should e.g. `from django.utils.translation import ugettext as _` and wrap +module should e.g. `from django.utils.translation import gettext as _` and wrap user-facing text with `_()`. Use it like this: ```python diff --git a/doc/dev/tutorial/components.rst b/doc/dev/tutorial/components.rst index ff0773637..fde22cf41 100644 --- a/doc/dev/tutorial/components.rst +++ b/doc/dev/tutorial/components.rst @@ -18,7 +18,7 @@ function normally. .. code-block:: python3 :caption: ``__init__.py`` - from django.utils.translation import ugettext_lazy as _ + from django.utils.translation import gettext_lazy as _ from plinth import app as app_module diff --git a/doc/dev/tutorial/other.rst b/doc/dev/tutorial/other.rst index 135678848..2a99fbe9f 100644 --- a/doc/dev/tutorial/other.rst +++ b/doc/dev/tutorial/other.rst @@ -79,7 +79,7 @@ the Django's localization methods to make that happen. .. code-block:: python3 :caption: ``__init__.py`` - from django.utils.translation import ugettext_lazy as _ + from django.utils.translation import gettext_lazy as _ class TransmissionApp(app_module.App): ... @@ -95,8 +95,8 @@ the Django's localization methods to make that happen. Notice that the app's name, description, etc. are wrapped in the ``_()`` method call. This needs to be done for the rest of our app. We use the -:obj:`~django.utils.translation.ugettext_lazy` in some cases and we use the -regular :obj:`~django.utils.translation.ugettext` in other cases. This is +:obj:`~django.utils.translation.gettext_lazy` in some cases and we use the +regular :obj:`~django.utils.translation.gettext` in other cases. This is because in the second case the :obj:`~django.utils.translation.gettext` lookup is made once and reused for every user looking at the interface. These users may each have a different language set for their interface. Lookup made for one diff --git a/plinth/context_processors.py b/plinth/context_processors.py index 7793d9a64..01a4bbf8b 100644 --- a/plinth/context_processors.py +++ b/plinth/context_processors.py @@ -5,8 +5,8 @@ Django context processors to provide common data to templates. import re -from django.utils.translation import ugettext as _ -from django.utils.translation import ugettext_noop +from django.utils.translation import gettext as _ +from django.utils.translation import gettext_noop from plinth import cfg, menu from plinth.utils import is_user_admin @@ -20,7 +20,7 @@ def common(request): """ # Allow a value in configuration file to be translated. Allow # the brand name 'FreedomBox' itself to be translated. - ugettext_noop('FreedomBox') + gettext_noop('FreedomBox') from plinth.notification import Notification notifications_context = Notification.get_display_context( diff --git a/plinth/daemon.py b/plinth/daemon.py index 532922e32..08a03ca9a 100644 --- a/plinth/daemon.py +++ b/plinth/daemon.py @@ -8,7 +8,8 @@ import subprocess import psutil from django.utils.text import format_lazy -from django.utils.translation import ugettext as _, ugettext_lazy +from django.utils.translation import gettext as _ +from django.utils.translation import gettext_lazy from plinth import action_utils, actions, app @@ -100,7 +101,7 @@ class Daemon(app.LeaderComponent): """Check if a daemon is running.""" result = 'passed' if self.is_running() else 'failed' - template = ugettext_lazy('Service {service_name} is running') + template = gettext_lazy('Service {service_name} is running') testname = format_lazy(template, service_name=self.unit) return [testname, result] @@ -126,12 +127,12 @@ def diagnose_port_listening(port, kind='tcp', listen_address=None): result = _check_port(port, kind, listen_address) if listen_address: - template = ugettext_lazy( + template = gettext_lazy( 'Listening on {kind} port {listen_address}:{port}') testname = format_lazy(template, kind=kind, listen_address=listen_address, port=port) else: - template = ugettext_lazy('Listening on {kind} port {port}') + template = gettext_lazy('Listening on {kind} port {port}') testname = format_lazy(template, kind=kind, port=port) return [testname, 'passed' if result else 'failed'] diff --git a/plinth/forms.py b/plinth/forms.py index 6042ea323..045c9231c 100644 --- a/plinth/forms.py +++ b/plinth/forms.py @@ -12,7 +12,7 @@ from django.forms import CheckboxInput from django.utils import translation from django.utils.safestring import mark_safe from django.utils.translation import get_language_info -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ import plinth diff --git a/plinth/middleware.py b/plinth/middleware.py index 51d31a576..208dd66a2 100644 --- a/plinth/middleware.py +++ b/plinth/middleware.py @@ -12,7 +12,7 @@ from django.contrib.auth.decorators import login_required from django.core.exceptions import PermissionDenied from django.shortcuts import render from django.utils.deprecation import MiddlewareMixin -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from stronghold.utils import is_view_func_public import plinth diff --git a/plinth/modules/apache/__init__.py b/plinth/modules/apache/__init__.py index 87e7dbbc5..08fdac67c 100644 --- a/plinth/modules/apache/__init__.py +++ b/plinth/modules/apache/__init__.py @@ -4,7 +4,7 @@ FreedomBox app for Apache server. """ import os -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/apache/components.py b/plinth/modules/apache/components.py index 82cf0284a..c6ac23958 100644 --- a/plinth/modules/apache/components.py +++ b/plinth/modules/apache/components.py @@ -7,7 +7,7 @@ import re import subprocess from django.utils.text import format_lazy -from django.utils.translation import ugettext_lazy +from django.utils.translation import gettext_lazy from plinth import action_utils, actions, app @@ -119,10 +119,10 @@ def diagnose_url(url, kind=None, env=None, check_certificate=True, wrapper, expected_output) if kind: - template = ugettext_lazy('Access URL {url} on tcp{kind}') + template = gettext_lazy('Access URL {url} on tcp{kind}') testname = format_lazy(template, url=url, kind=kind) else: - template = ugettext_lazy('Access URL {url}') + template = gettext_lazy('Access URL {url}') testname = format_lazy(template, url=url) return [testname, result] diff --git a/plinth/modules/avahi/__init__.py b/plinth/modules/avahi/__init__.py index 076dfe8c5..a7480cf5f 100644 --- a/plinth/modules/avahi/__init__.py +++ b/plinth/modules/avahi/__init__.py @@ -3,7 +3,7 @@ FreedomBox app for service discovery. """ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/backups/__init__.py b/plinth/modules/backups/__init__.py index f3e512bf0..f083d02ce 100644 --- a/plinth/modules/backups/__init__.py +++ b/plinth/modules/backups/__init__.py @@ -11,8 +11,8 @@ import re import paramiko from django.utils.text import get_valid_filename -from django.utils.translation import ugettext_lazy as _ -from django.utils.translation import ugettext_noop +from django.utils.translation import gettext_lazy as _ +from django.utils.translation import gettext_noop from plinth import actions from plinth import app as app_module @@ -193,18 +193,18 @@ def split_path(path): def _show_schedule_setup_notification(): """Show a notification hinting to setup a remote backup schedule.""" from plinth.notification import Notification - message = ugettext_noop( + message = gettext_noop( 'Enable an automatic backup schedule for data safety. Prefer an ' 'encrypted remote backup location or an extra attached disk.') data = { - 'app_name': 'translate:' + ugettext_noop('Backups'), + 'app_name': 'translate:' + gettext_noop('Backups'), 'app_icon': 'fa-files-o' } - title = ugettext_noop('Enable a Backup Schedule') + title = gettext_noop('Enable a Backup Schedule') actions_ = [{ 'type': 'link', 'class': 'primary', - 'text': ugettext_noop('Go to {app_name}'), + 'text': gettext_noop('Go to {app_name}'), 'url': 'backups:index' }, { 'type': 'dismiss' @@ -238,20 +238,20 @@ def _show_schedule_error_notification(repository, is_error, exception=None): except KeyError: error_count = 0 - message = ugettext_noop( + message = gettext_noop( 'A scheduled backup failed. Past {error_count} attempts for backup ' 'did not succeed. The latest error is: {error_message}') data = { - 'app_name': 'translate:' + ugettext_noop('Backups'), + 'app_name': 'translate:' + gettext_noop('Backups'), 'app_icon': 'fa-files-o', 'error_count': error_count + 1 if is_error else 0, 'error_message': str(exception) } - title = ugettext_noop('Error During Backup') + title = gettext_noop('Error During Backup') actions_ = [{ 'type': 'link', 'class': 'primary', - 'text': ugettext_noop('Go to {app_name}'), + 'text': gettext_noop('Go to {app_name}'), 'url': 'backups:index' }, { 'type': 'dismiss' diff --git a/plinth/modules/backups/forms.py b/plinth/modules/backups/forms.py index 50391624f..627fa933c 100644 --- a/plinth/modules/backups/forms.py +++ b/plinth/modules/backups/forms.py @@ -12,8 +12,8 @@ from django import forms from django.core.exceptions import ValidationError from django.core.validators import (FileExtensionValidator, validate_ipv46_address) -from django.utils.translation import ugettext -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext +from django.utils.translation import gettext_lazy as _ from plinth.modules.storage import get_mounts from plinth.utils import format_lazy @@ -30,7 +30,7 @@ def _get_app_choices(components): for component in components: name = component.app.info.name if not component.has_data: - name = ugettext('{app} (No data to backup)').format( + name = gettext('{app} (No data to backup)').format( app=component.app.info.name) choices.append((component.app_id, name)) diff --git a/plinth/modules/backups/repository.py b/plinth/modules/backups/repository.py index 1e37be97e..4ba462adc 100644 --- a/plinth/modules/backups/repository.py +++ b/plinth/modules/backups/repository.py @@ -13,7 +13,7 @@ import re from uuid import uuid1 import paramiko -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions, cfg from plinth.errors import ActionError diff --git a/plinth/modules/backups/views.py b/plinth/modules/backups/views.py index 5d27766ac..36d308fa6 100644 --- a/plinth/modules/backups/views.py +++ b/plinth/modules/backups/views.py @@ -16,8 +16,8 @@ from django.http import Http404, StreamingHttpResponse from django.shortcuts import redirect from django.urls import reverse, reverse_lazy from django.utils.decorators import method_decorator -from django.utils.translation import ugettext as _ -from django.utils.translation import ugettext_lazy +from django.utils.translation import gettext as _ +from django.utils.translation import gettext_lazy from django.views.generic import FormView, TemplateView, View from plinth.errors import PlinthError @@ -52,7 +52,7 @@ class ScheduleView(SuccessMessageMixin, FormView): prefix = 'backups_schedule' template_name = 'backups_schedule.html' success_url = reverse_lazy('backups:index') - success_message = ugettext_lazy('Backup schedule updated.') + success_message = gettext_lazy('Backup schedule updated.') def get_initial(self): """Return the values to fill in the form.""" @@ -103,7 +103,7 @@ class CreateArchiveView(SuccessMessageMixin, FormView): prefix = 'backups' template_name = 'backups_form.html' success_url = reverse_lazy('backups:index') - success_message = ugettext_lazy('Archive created.') + success_message = gettext_lazy('Archive created.') def get_context_data(self, **kwargs): """Return additional context for rendering the template.""" @@ -191,7 +191,7 @@ class BaseRestoreView(SuccessMessageMixin, FormView): prefix = 'backups' template_name = 'backups_restore.html' success_url = reverse_lazy('backups:index') - success_message = ugettext_lazy('Restored files from backup.') + success_message = gettext_lazy('Restored files from backup.') def get_form_kwargs(self): """Pass additional keyword args for instantiating the form.""" diff --git a/plinth/modules/bepasty/__init__.py b/plinth/modules/bepasty/__init__.py index 708587d50..7dff5f5bf 100644 --- a/plinth/modules/bepasty/__init__.py +++ b/plinth/modules/bepasty/__init__.py @@ -5,7 +5,7 @@ FreedomBox app for bepasty. import json -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/bepasty/forms.py b/plinth/modules/bepasty/forms.py index 9d5e1740e..51352bc96 100644 --- a/plinth/modules/bepasty/forms.py +++ b/plinth/modules/bepasty/forms.py @@ -4,7 +4,7 @@ Django forms for bepasty app. """ from django import forms -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth.modules import bepasty diff --git a/plinth/modules/bepasty/manifest.py b/plinth/modules/bepasty/manifest.py index 1d5873a41..b29d271fa 100644 --- a/plinth/modules/bepasty/manifest.py +++ b/plinth/modules/bepasty/manifest.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: AGPL-3.0-or-later -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ clients = [{ 'name': _('bepasty'), diff --git a/plinth/modules/bepasty/views.py b/plinth/modules/bepasty/views.py index a9ab1ba7e..3af4d8125 100644 --- a/plinth/modules/bepasty/views.py +++ b/plinth/modules/bepasty/views.py @@ -7,7 +7,7 @@ from django.contrib import messages from django.contrib.messages.views import SuccessMessageMixin from django.shortcuts import redirect from django.urls import reverse_lazy -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from django.views.decorators.http import require_POST from django.views.generic import FormView diff --git a/plinth/modules/bind/__init__.py b/plinth/modules/bind/__init__.py index 981140158..a2d32b2bb 100644 --- a/plinth/modules/bind/__init__.py +++ b/plinth/modules/bind/__init__.py @@ -8,7 +8,7 @@ from collections import defaultdict from pathlib import Path import augeas -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/bind/forms.py b/plinth/modules/bind/forms.py index 10f127789..36cca46cc 100644 --- a/plinth/modules/bind/forms.py +++ b/plinth/modules/bind/forms.py @@ -5,7 +5,7 @@ Forms for BIND module. from django import forms from django.core.validators import validate_ipv46_address -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ def validate_ips(ips): diff --git a/plinth/modules/bind/views.py b/plinth/modules/bind/views.py index d244687d4..4300eeddb 100644 --- a/plinth/modules/bind/views.py +++ b/plinth/modules/bind/views.py @@ -4,7 +4,7 @@ Views for BIND module. """ from django.contrib import messages -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth.modules import bind, names diff --git a/plinth/modules/calibre/__init__.py b/plinth/modules/calibre/__init__.py index b770531d5..16bcab5a3 100644 --- a/plinth/modules/calibre/__init__.py +++ b/plinth/modules/calibre/__init__.py @@ -6,7 +6,7 @@ FreedomBox app for calibre e-book library. import json import re -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/calibre/forms.py b/plinth/modules/calibre/forms.py index 61fe67d61..0aeb162ed 100644 --- a/plinth/modules/calibre/forms.py +++ b/plinth/modules/calibre/forms.py @@ -6,7 +6,7 @@ Django form for configuring calibre. from django import forms from django.core import validators from django.core.exceptions import ValidationError -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth.modules import calibre diff --git a/plinth/modules/calibre/manifest.py b/plinth/modules/calibre/manifest.py index 85dcee040..a862e90fd 100644 --- a/plinth/modules/calibre/manifest.py +++ b/plinth/modules/calibre/manifest.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: AGPL-3.0-or-later -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ clients = [{ 'name': _('calibre'), diff --git a/plinth/modules/calibre/views.py b/plinth/modules/calibre/views.py index f969de9d5..7e52b09c6 100644 --- a/plinth/modules/calibre/views.py +++ b/plinth/modules/calibre/views.py @@ -9,7 +9,7 @@ from django.http import Http404 from django.shortcuts import redirect from django.template.response import TemplateResponse from django.urls import reverse_lazy -from django.utils.translation import ugettext as _ +from django.utils.translation import gettext as _ from django.views.generic.edit import FormView from plinth import actions, views diff --git a/plinth/modules/cockpit/__init__.py b/plinth/modules/cockpit/__init__.py index 82edd004e..70d2ccd53 100644 --- a/plinth/modules/cockpit/__init__.py +++ b/plinth/modules/cockpit/__init__.py @@ -4,7 +4,7 @@ FreedomBox app to configure Cockpit. """ from django.urls import reverse_lazy -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/cockpit/manifest.py b/plinth/modules/cockpit/manifest.py index db8953a66..f7bcbeec6 100644 --- a/plinth/modules/cockpit/manifest.py +++ b/plinth/modules/cockpit/manifest.py @@ -3,7 +3,7 @@ Application manifest for cockpit. """ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ clients = [{ 'name': _('Cockpit'), diff --git a/plinth/modules/config/__init__.py b/plinth/modules/config/__init__.py index 45e3fde71..a2b0327bb 100644 --- a/plinth/modules/config/__init__.py +++ b/plinth/modules/config/__init__.py @@ -7,7 +7,7 @@ import os import socket import augeas -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/config/forms.py b/plinth/modules/config/forms.py index df71dcdb1..1b57e41fb 100644 --- a/plinth/modules/config/forms.py +++ b/plinth/modules/config/forms.py @@ -9,12 +9,12 @@ import re from django import forms from django.core import validators from django.core.exceptions import ValidationError -from django.utils.translation import ugettext as _ -from django.utils.translation import ugettext_lazy +from django.utils.translation import gettext as _ +from django.utils.translation import gettext_lazy from plinth import cfg, frontpage -from plinth.utils import format_lazy from plinth.modules.apache import get_users_with_website +from plinth.utils import format_lazy from . import home_page_url2scid @@ -37,7 +37,7 @@ def get_homepage_choices(): for shortcut in shortcuts if shortcut.is_enabled()] uws_choices = \ [(home_page_url2scid(url), - format_lazy(ugettext_lazy("{user}'s website"), user=user)) + format_lazy(gettext_lazy("{user}'s website"), user=user)) for user, url in get_users_with_website().items()] apache_default = ('apache-default', _('Apache Default')) plinth = ('plinth', _('FreedomBox Service (Plinth)')) @@ -52,21 +52,21 @@ class ConfigurationForm(forms.Form): # https://tools.ietf.org/html/rfc1123#section-2 # https://tools.ietf.org/html/rfc2181#section-11 hostname = forms.CharField( - label=ugettext_lazy('Hostname'), help_text=format_lazy( - ugettext_lazy( + label=gettext_lazy('Hostname'), help_text=format_lazy( + gettext_lazy( 'Hostname is the local name by which other devices on the ' 'local network can reach your {box_name}. It must start and ' 'end with an alphabet or a digit and have as interior ' 'characters only alphabets, digits and hyphens. Total ' 'length must be 63 characters or less.'), - box_name=ugettext_lazy(cfg.box_name)), validators=[ + box_name=gettext_lazy(cfg.box_name)), validators=[ validators.RegexValidator(HOSTNAME_REGEX, - ugettext_lazy('Invalid hostname')) + gettext_lazy('Invalid hostname')) ], strip=True) domainname = forms.CharField( - label=ugettext_lazy('Domain Name'), help_text=format_lazy( - ugettext_lazy( + label=gettext_lazy('Domain Name'), help_text=format_lazy( + gettext_lazy( 'Domain name is the global name by which other devices on the ' 'Internet can reach your {box_name}. It must consist of ' 'labels separated by dots. Each label must start and end ' @@ -74,16 +74,16 @@ class ConfigurationForm(forms.Form): 'only alphabets, digits and hyphens. Length of each label ' 'must be 63 characters or less. Total length of domain name ' 'must be 253 characters or less.'), - box_name=ugettext_lazy(cfg.box_name)), required=False, validators=[ + box_name=gettext_lazy(cfg.box_name)), required=False, validators=[ validators.RegexValidator( r'^[a-zA-Z0-9]([-a-zA-Z0-9.]{,251}[a-zA-Z0-9])?$', - ugettext_lazy('Invalid domain name')), + gettext_lazy('Invalid domain name')), domain_label_validator ], strip=True) homepage = forms.ChoiceField( - label=ugettext_lazy('Webserver Home Page'), help_text=format_lazy( - ugettext_lazy( + label=gettext_lazy('Webserver Home Page'), help_text=format_lazy( + gettext_lazy( 'Choose the default page that must be served when ' 'someone visits your {box_name} on the web. A typical use ' 'case is to set your blog or wiki as the home page when ' @@ -91,11 +91,11 @@ class ConfigurationForm(forms.Form): 'page is set to something other than {box_name} Service ' '(Plinth), your users must explicitly type /plinth or ' '/freedombox to reach {box_name} Service (Plinth).'), - box_name=ugettext_lazy(cfg.box_name)), required=False, + box_name=gettext_lazy(cfg.box_name)), required=False, choices=get_homepage_choices) advanced_mode = forms.BooleanField( - label=ugettext_lazy('Show advanced apps and features'), required=False, - help_text=ugettext_lazy( + label=gettext_lazy('Show advanced apps and features'), required=False, + help_text=gettext_lazy( 'Show apps and features that require more technical ' 'knowledge.')) diff --git a/plinth/modules/config/views.py b/plinth/modules/config/views.py index d39eacf9c..ceddffad2 100644 --- a/plinth/modules/config/views.py +++ b/plinth/modules/config/views.py @@ -6,7 +6,7 @@ FreedomBox views for basic system configuration. import logging from django.contrib import messages -from django.utils.translation import ugettext as _ +from django.utils.translation import gettext as _ from plinth import actions, views from plinth.modules import config diff --git a/plinth/modules/coturn/__init__.py b/plinth/modules/coturn/__init__.py index 5bca036a9..bf06d7129 100644 --- a/plinth/modules/coturn/__init__.py +++ b/plinth/modules/coturn/__init__.py @@ -8,7 +8,7 @@ import logging import pathlib from django.urls import reverse_lazy -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/coturn/forms.py b/plinth/modules/coturn/forms.py index c0d336d20..e57740c1c 100644 --- a/plinth/modules/coturn/forms.py +++ b/plinth/modules/coturn/forms.py @@ -5,7 +5,7 @@ Forms for Coturn app. from django import forms from django.core.exceptions import ValidationError -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth.modules import coturn from plinth.modules.coturn.components import TurnConfiguration diff --git a/plinth/modules/coturn/views.py b/plinth/modules/coturn/views.py index d868a21b4..07073968a 100644 --- a/plinth/modules/coturn/views.py +++ b/plinth/modules/coturn/views.py @@ -4,7 +4,7 @@ Views for Coturn app. """ from django.contrib import messages -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ import plinth.modules.coturn as coturn from plinth import views diff --git a/plinth/modules/datetime/__init__.py b/plinth/modules/datetime/__init__.py index 197c626be..7a555c733 100644 --- a/plinth/modules/datetime/__init__.py +++ b/plinth/modules/datetime/__init__.py @@ -5,7 +5,7 @@ FreedomBox app to configure system date and time. import subprocess -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import app as app_module from plinth import menu diff --git a/plinth/modules/datetime/forms.py b/plinth/modules/datetime/forms.py index 092f3e19a..39086a5b9 100644 --- a/plinth/modules/datetime/forms.py +++ b/plinth/modules/datetime/forms.py @@ -7,7 +7,7 @@ import logging import subprocess from django import forms -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ logger = logging.getLogger(__name__) diff --git a/plinth/modules/datetime/views.py b/plinth/modules/datetime/views.py index a6a71f251..313309141 100644 --- a/plinth/modules/datetime/views.py +++ b/plinth/modules/datetime/views.py @@ -6,7 +6,7 @@ FreedomBox app for configuring date and time. import logging from django.contrib import messages -from django.utils.translation import ugettext as _ +from django.utils.translation import gettext as _ from plinth import actions from plinth.views import AppView diff --git a/plinth/modules/deluge/__init__.py b/plinth/modules/deluge/__init__.py index 3e82bd30d..d57a72bdf 100644 --- a/plinth/modules/deluge/__init__.py +++ b/plinth/modules/deluge/__init__.py @@ -3,7 +3,7 @@ FreedomBox app to configure a Deluge web client. """ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/deluge/forms.py b/plinth/modules/deluge/forms.py index 65e766bbb..825638204 100644 --- a/plinth/modules/deluge/forms.py +++ b/plinth/modules/deluge/forms.py @@ -3,7 +3,7 @@ Forms for Deluge app. """ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth.modules.storage.forms import (DirectorySelectForm, DirectoryValidator) diff --git a/plinth/modules/deluge/manifest.py b/plinth/modules/deluge/manifest.py index 8d6241785..81f8fb8f9 100644 --- a/plinth/modules/deluge/manifest.py +++ b/plinth/modules/deluge/manifest.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: AGPL-3.0-or-later -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ clients = [{ 'name': _('Deluge'), diff --git a/plinth/modules/deluge/views.py b/plinth/modules/deluge/views.py index 4a15c9f82..e97b5cd7d 100644 --- a/plinth/modules/deluge/views.py +++ b/plinth/modules/deluge/views.py @@ -6,7 +6,7 @@ Django views for Deluge. import json from django.contrib import messages -from django.utils.translation import ugettext as _ +from django.utils.translation import gettext as _ from plinth import actions, views diff --git a/plinth/modules/diagnostics/__init__.py b/plinth/modules/diagnostics/__init__.py index 40558f64c..61bde37f4 100644 --- a/plinth/modules/diagnostics/__init__.py +++ b/plinth/modules/diagnostics/__init__.py @@ -10,8 +10,8 @@ import pathlib import threading import psutil -from django.utils.translation import ugettext_lazy as _ -from django.utils.translation import ugettext_noop +from django.utils.translation import gettext_lazy as _ +from django.utils.translation import gettext_noop from plinth import app as app_module from plinth import cfg, daemon, glib, menu @@ -95,10 +95,10 @@ def run_on_all_enabled_modules(): # Four result strings returned by tests, mark for translation and # translate later. - ugettext_noop('passed') - ugettext_noop('failed') - ugettext_noop('error') - ugettext_noop('warning') + gettext_noop('passed') + gettext_noop('failed') + gettext_noop('error') + gettext_noop('warning') apps = [] @@ -201,23 +201,23 @@ def _warn_about_low_ram_space(request): if memory_info['free_bytes'] < 1024**3: # Translators: This is the unit of computer storage Mebibyte similar to # Megabyte. - memory_available_unit = ugettext_noop('MiB') + memory_available_unit = gettext_noop('MiB') memory_available = memory_info['free_bytes'] / 1024**2 else: # Translators: This is the unit of computer storage Gibibyte similar to # Gigabyte. - memory_available_unit = ugettext_noop('GiB') + memory_available_unit = gettext_noop('GiB') memory_available = memory_info['free_bytes'] / 1024**3 show = False if memory_info['percent_used'] > 90: severity = 'error' - advice_message = ugettext_noop( + advice_message = gettext_noop( 'You should disable some apps to reduce memory usage.') show = True elif memory_info['percent_used'] > 75: severity = 'warning' - advice_message = ugettext_noop( + advice_message = gettext_noop( 'You should not install any new apps on this system.') show = True @@ -228,14 +228,14 @@ def _warn_about_low_ram_space(request): pass return - message = ugettext_noop( + message = gettext_noop( # xgettext:no-python-format 'System is low on memory: {percent_used}% used, {memory_available} ' '{memory_available_unit} free. {advice_message}') - title = ugettext_noop('Low Memory') + title = gettext_noop('Low Memory') data = { 'app_icon': 'fa-heartbeat', - 'app_name': 'translate:' + ugettext_noop('Diagnostics'), + 'app_name': 'translate:' + gettext_noop('Diagnostics'), 'percent_used': f'{memory_info["percent_used"]:.1f}', 'memory_available': f'{memory_available:.1f}', 'memory_available_unit': 'translate:' + memory_available_unit, diff --git a/plinth/modules/diagnostics/views.py b/plinth/modules/diagnostics/views.py index 2c2853d2d..cff4451f1 100644 --- a/plinth/modules/diagnostics/views.py +++ b/plinth/modules/diagnostics/views.py @@ -7,7 +7,7 @@ import logging from django.http import Http404 from django.template.response import TemplateResponse -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from django.views.decorators.http import require_POST from plinth.app import App diff --git a/plinth/modules/diaspora/__init__.py b/plinth/modules/diaspora/__init__.py index aefc903bc..78e1a0c4a 100644 --- a/plinth/modules/diaspora/__init__.py +++ b/plinth/modules/diaspora/__init__.py @@ -3,7 +3,7 @@ import os import augeas -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/diaspora/forms.py b/plinth/modules/diaspora/forms.py index 15947a22b..89eb3bc7f 100644 --- a/plinth/modules/diaspora/forms.py +++ b/plinth/modules/diaspora/forms.py @@ -4,7 +4,7 @@ Forms for configuring diaspora* """ from django import forms -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ class DiasporaAppForm(forms.Form): diff --git a/plinth/modules/diaspora/manifest.py b/plinth/modules/diaspora/manifest.py index 02b0efdc7..78b988d0a 100644 --- a/plinth/modules/diaspora/manifest.py +++ b/plinth/modules/diaspora/manifest.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: AGPL-3.0-or-later -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth.clients import store_url from plinth.modules import diaspora diff --git a/plinth/modules/diaspora/views.py b/plinth/modules/diaspora/views.py index 6d05bcd79..1c449721e 100644 --- a/plinth/modules/diaspora/views.py +++ b/plinth/modules/diaspora/views.py @@ -6,7 +6,7 @@ Views for the diaspora module from django.contrib import messages from django.shortcuts import redirect from django.urls import reverse_lazy -from django.utils.translation import ugettext as _ +from django.utils.translation import gettext as _ from django.views.generic import FormView from plinth.forms import DomainSelectionForm diff --git a/plinth/modules/dynamicdns/__init__.py b/plinth/modules/dynamicdns/__init__.py index 67cc4d82b..536351557 100644 --- a/plinth/modules/dynamicdns/__init__.py +++ b/plinth/modules/dynamicdns/__init__.py @@ -3,7 +3,7 @@ FreedomBox app to configure ez-ipupdate client. """ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/dynamicdns/forms.py b/plinth/modules/dynamicdns/forms.py index ed804bab6..3f2bf1b4c 100644 --- a/plinth/modules/dynamicdns/forms.py +++ b/plinth/modules/dynamicdns/forms.py @@ -5,8 +5,8 @@ Forms for the dynamicsdns module. from django import forms from django.core import validators -from django.utils.translation import ugettext as _ -from django.utils.translation import ugettext_lazy +from django.utils.translation import gettext as _ +from django.utils.translation import gettext_lazy from plinth import cfg from plinth.utils import format_lazy @@ -26,98 +26,97 @@ class TrimmedCharField(forms.CharField): class ConfigureForm(forms.Form): """Form to configure the Dynamic DNS client.""" help_update_url = \ - ugettext_lazy('The Variables <User>, <Pass>, <Ip>, ' - '<Domain> may be used within the URL. For details ' - 'see the update URL templates of the example providers.') + gettext_lazy('The Variables <User>, <Pass>, <Ip>, ' + '<Domain> may be used within the URL. For details ' + 'see the update URL templates of the example providers.') help_services = \ - ugettext_lazy('Please choose an update protocol according to your ' - 'provider. If your provider does not support the GnuDIP ' - 'protocol or your provider is not listed you may use ' - 'the update URL of your provider.') + gettext_lazy('Please choose an update protocol according to your ' + 'provider. If your provider does not support the GnuDIP ' + 'protocol or your provider is not listed you may use ' + 'the update URL of your provider.') help_server = \ - ugettext_lazy('Please do not enter a URL here (like ' - '"https://example.com/") but only the hostname of the ' - 'GnuDIP server (like "example.com").') + gettext_lazy('Please do not enter a URL here (like ' + '"https://example.com/") but only the hostname of the ' + 'GnuDIP server (like "example.com").') help_domain = format_lazy( - ugettext_lazy('The public domain name you want to use to reach your ' - '{box_name}.'), box_name=ugettext_lazy(cfg.box_name)) + gettext_lazy('The public domain name you want to use to reach your ' + '{box_name}.'), box_name=gettext_lazy(cfg.box_name)) help_disable_ssl = \ - ugettext_lazy('Use this option if your provider uses self signed ' - 'certificates.') + gettext_lazy('Use this option if your provider uses self signed ' + 'certificates.') help_http_auth = \ - ugettext_lazy('If this option is selected, your username and password ' - 'will be used for HTTP basic authentication.') + gettext_lazy('If this option is selected, your username and password ' + 'will be used for HTTP basic authentication.') help_secret = \ - ugettext_lazy('Leave this field empty if you want to keep your ' - 'current password.') + gettext_lazy('Leave this field empty if you want to keep your ' + 'current password.') help_ip_url = format_lazy( - ugettext_lazy('Optional Value. If your {box_name} is not connected ' - 'directly to the Internet (i.e. connected to a NAT ' - 'router) this URL is used to determine the real ' - 'IP address. The URL should simply return the IP where ' - 'the client comes from (example: ' - 'http://myip.datasystems24.de).'), - box_name=ugettext_lazy(cfg.box_name)) + gettext_lazy('Optional Value. If your {box_name} is not connected ' + 'directly to the Internet (i.e. connected to a NAT ' + 'router) this URL is used to determine the real ' + 'IP address. The URL should simply return the IP where ' + 'the client comes from (example: ' + 'http://myip.datasystems24.de).'), + box_name=gettext_lazy(cfg.box_name)) help_user = \ - ugettext_lazy('The username that was used when the account was ' - 'created.') + gettext_lazy('The username that was used when the account was ' + 'created.') - provider_choices = (('GnuDIP', ugettext_lazy('GnuDIP')), + provider_choices = (('GnuDIP', gettext_lazy('GnuDIP')), ('noip', 'noip.com'), ('selfhost', 'selfhost.bz'), ('freedns', 'freedns.afraid.org'), - ('other', ugettext_lazy('other update URL'))) + ('other', gettext_lazy('other update URL'))) - enabled = forms.BooleanField(label=ugettext_lazy('Enable Dynamic DNS'), + enabled = forms.BooleanField(label=gettext_lazy('Enable Dynamic DNS'), required=False) - service_type = forms.ChoiceField(label=ugettext_lazy('Service Type'), + service_type = forms.ChoiceField(label=gettext_lazy('Service Type'), help_text=help_services, choices=provider_choices) dynamicdns_server = TrimmedCharField( - label=ugettext_lazy('GnuDIP Server Address'), required=False, + label=gettext_lazy('GnuDIP Server Address'), required=False, help_text=help_server, validators=[ validators.RegexValidator(r'^[\w-]{1,63}(\.[\w-]{1,63})*$', - ugettext_lazy('Invalid server name')) + gettext_lazy('Invalid server name')) ]) - dynamicdns_update_url = TrimmedCharField(label=ugettext_lazy('Update URL'), + dynamicdns_update_url = TrimmedCharField(label=gettext_lazy('Update URL'), required=False, help_text=help_update_url) disable_SSL_cert_check = forms.BooleanField( - label=ugettext_lazy('Accept all SSL certificates'), + label=gettext_lazy('Accept all SSL certificates'), help_text=help_disable_ssl, required=False) use_http_basic_auth = forms.BooleanField( - label=ugettext_lazy('Use HTTP basic authentication'), + label=gettext_lazy('Use HTTP basic authentication'), help_text=help_http_auth, required=False) dynamicdns_domain = TrimmedCharField( - label=ugettext_lazy('Domain Name'), help_text=help_domain, + label=gettext_lazy('Domain Name'), help_text=help_domain, required=False, validators=[ validators.RegexValidator(r'^[\w-]{1,63}(\.[\w-]{1,63})*$', - ugettext_lazy('Invalid domain name')) + gettext_lazy('Invalid domain name')) ]) - dynamicdns_user = TrimmedCharField(label=ugettext_lazy('Username'), + dynamicdns_user = TrimmedCharField(label=gettext_lazy('Username'), required=False, help_text=help_user) - dynamicdns_secret = TrimmedCharField(label=ugettext_lazy('Password'), + dynamicdns_secret = TrimmedCharField(label=gettext_lazy('Password'), widget=forms.PasswordInput(), required=False, help_text=help_secret) - showpw = forms.BooleanField(label=ugettext_lazy('Show password'), + showpw = forms.BooleanField(label=gettext_lazy('Show password'), required=False) dynamicdns_ipurl = TrimmedCharField( - label=ugettext_lazy('URL to look up public IP'), required=False, + label=gettext_lazy('URL to look up public IP'), required=False, help_text=help_ip_url, validators=[validators.URLValidator(schemes=['http', 'https', 'ftp'])]) use_ipv6 = forms.BooleanField( - label=ugettext_lazy('Use IPv6 instead of IPv4'), - required=False) + label=gettext_lazy('Use IPv6 instead of IPv4'), required=False) def clean(self): cleaned_data = super(ConfigureForm, self).clean() diff --git a/plinth/modules/dynamicdns/views.py b/plinth/modules/dynamicdns/views.py index 99cdf5bfa..e0b41a40d 100644 --- a/plinth/modules/dynamicdns/views.py +++ b/plinth/modules/dynamicdns/views.py @@ -8,8 +8,8 @@ import logging from django.contrib import messages from django.template.response import TemplateResponse from django.urls import reverse_lazy -from django.utils.translation import ugettext as _ -from django.utils.translation import ugettext_lazy +from django.utils.translation import gettext as _ +from django.utils.translation import gettext_lazy from plinth import actions from plinth.modules import dynamicdns @@ -23,13 +23,13 @@ EMPTYSTRING = 'none' subsubmenu = [{ 'url': reverse_lazy('dynamicdns:index'), - 'text': ugettext_lazy('About') + 'text': gettext_lazy('About') }, { 'url': reverse_lazy('dynamicdns:configure'), - 'text': ugettext_lazy('Configure') + 'text': gettext_lazy('Configure') }, { 'url': reverse_lazy('dynamicdns:statuspage'), - 'text': ugettext_lazy('Status') + 'text': gettext_lazy('Status') }] diff --git a/plinth/modules/ejabberd/__init__.py b/plinth/modules/ejabberd/__init__.py index 7676b686f..e73847b73 100644 --- a/plinth/modules/ejabberd/__init__.py +++ b/plinth/modules/ejabberd/__init__.py @@ -8,7 +8,8 @@ import logging import pathlib from django.urls import reverse_lazy -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ + from plinth import actions from plinth import app as app_module from plinth import cfg, frontpage, menu diff --git a/plinth/modules/ejabberd/forms.py b/plinth/modules/ejabberd/forms.py index 75cd46686..dc605a546 100644 --- a/plinth/modules/ejabberd/forms.py +++ b/plinth/modules/ejabberd/forms.py @@ -5,7 +5,7 @@ Forms for configuring Ejabberd. from django import forms from django.urls import reverse_lazy -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import cfg from plinth.modules.coturn.forms import turn_uris_validator diff --git a/plinth/modules/ejabberd/manifest.py b/plinth/modules/ejabberd/manifest.py index c1006331c..092ccc9e2 100644 --- a/plinth/modules/ejabberd/manifest.py +++ b/plinth/modules/ejabberd/manifest.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: AGPL-3.0-or-later -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth.clients import store_url from plinth.modules.jsxc import manifest as jsxc_manifest diff --git a/plinth/modules/ejabberd/views.py b/plinth/modules/ejabberd/views.py index ad6f99bcd..1f470be4f 100644 --- a/plinth/modules/ejabberd/views.py +++ b/plinth/modules/ejabberd/views.py @@ -3,12 +3,12 @@ Views for the Ejabberd module """ -from plinth.modules.coturn.components import TurnConfiguration from django.contrib import messages -from django.utils.translation import ugettext as _ +from django.utils.translation import gettext as _ from plinth import actions from plinth.modules import coturn, ejabberd +from plinth.modules.coturn.components import TurnConfiguration from plinth.views import AppView from .forms import EjabberdForm diff --git a/plinth/modules/email_server/__init__.py b/plinth/modules/email_server/__init__.py index 51851baa2..da59314d2 100644 --- a/plinth/modules/email_server/__init__.py +++ b/plinth/modules/email_server/__init__.py @@ -4,7 +4,7 @@ import logging from django.urls import reverse_lazy -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ import plinth.app import plinth.daemon @@ -16,8 +16,7 @@ from plinth.modules.config import get_domainname from plinth.modules.firewall.components import Firewall from plinth.modules.letsencrypt.components import LetsEncrypt -from . import audit -from . import manifest +from . import audit, manifest version = 1 diff --git a/plinth/modules/email_server/aliases/__init__.py b/plinth/modules/email_server/aliases/__init__.py index e4811bb17..fb391945b 100644 --- a/plinth/modules/email_server/aliases/__init__.py +++ b/plinth/modules/email_server/aliases/__init__.py @@ -9,9 +9,10 @@ import pwd import sqlite3 from django.core.exceptions import ValidationError -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth.modules.email_server import lock + from . import models map_db_schema_script = """ @@ -49,7 +50,7 @@ def db_cursor(): def get(uid_number): s = 'SELECT * FROM Alias WHERE uid_number=?' with db_cursor() as cur: - rows = cur.execute(s, (uid_number,)) + rows = cur.execute(s, (uid_number, )) result = [models.Alias(**r) for r in rows] return result diff --git a/plinth/modules/email_server/aliases/models.py b/plinth/modules/email_server/aliases/models.py index ac3277fe1..2f307498f 100644 --- a/plinth/modules/email_server/aliases/models.py +++ b/plinth/modules/email_server/aliases/models.py @@ -1,8 +1,8 @@ import re -from dataclasses import dataclass, field, InitVar +from dataclasses import InitVar, dataclass, field from django.core.exceptions import ValidationError -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ email_positive_pattern = re.compile('^[a-zA-Z0-9-_\\.]+') diff --git a/plinth/modules/email_server/audit/domain.py b/plinth/modules/email_server/audit/domain.py index bdd432e69..b9205292e 100644 --- a/plinth/modules/email_server/audit/domain.py +++ b/plinth/modules/email_server/audit/domain.py @@ -9,17 +9,17 @@ import select import subprocess import sys import time - from types import SimpleNamespace from django.core.exceptions import ValidationError -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ + from plinth.actions import superuser_run from plinth.errors import ActionError from plinth.modules.config import get_domainname +from plinth.modules.email_server import interproc, postconf from . import models -from plinth.modules.email_server import interproc, postconf EXIT_VALIDATION = 40 diff --git a/plinth/modules/email_server/audit/home.py b/plinth/modules/email_server/audit/home.py index 6b09a327b..2b5e24d41 100644 --- a/plinth/modules/email_server/audit/home.py +++ b/plinth/modules/email_server/audit/home.py @@ -6,10 +6,10 @@ import pwd import subprocess from django.core.exceptions import ValidationError -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ + from plinth.actions import superuser_run from plinth.errors import ActionError - from plinth.modules.email_server import interproc logger = logging.getLogger(__name__) diff --git a/plinth/modules/email_server/audit/ldap.py b/plinth/modules/email_server/audit/ldap.py index 351ceccb7..89ea6f0b0 100644 --- a/plinth/modules/email_server/audit/ldap.py +++ b/plinth/modules/email_server/audit/ldap.py @@ -4,11 +4,12 @@ configurations""" import logging -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ + +import plinth.modules.email_server.aliases as aliases +import plinth.modules.email_server.postconf as postconf from plinth import actions -import plinth.modules.email_server.postconf as postconf -import plinth.modules.email_server.aliases as aliases from . import models default_config = { @@ -47,7 +48,6 @@ default_smtps_options = { 'smtpd_relay_restrictions': 'permit_sasl_authenticated,reject' } - MAILSRV_DIR = '/var/lib/plinth/mailsrv' ETC_ALIASES = 'hash:/etc/aliases' BEFORE_ALIASES = 'ldap:/etc/postfix/freedombox-username-to-uid-number.cf' diff --git a/plinth/modules/email_server/audit/rcube.py b/plinth/modules/email_server/audit/rcube.py index 426c31e23..e6f24f43c 100644 --- a/plinth/modules/email_server/audit/rcube.py +++ b/plinth/modules/email_server/audit/rcube.py @@ -4,13 +4,13 @@ import json import logging import os -from django.utils.translation import ugettext_lazy as _ -from plinth import actions +from django.utils.translation import gettext_lazy as _ -from . import models +from plinth import actions from plinth.modules.email_server.lock import Mutex from plinth.modules.email_server.modconf import ConfigInjector +from . import models config_path = '/etc/roundcube/config.inc.php' boundary_pattern = '//[ ]*--[ ]*(BEGIN|END)[ ]+FREEDOMBOX CONFIG$' diff --git a/plinth/modules/email_server/audit/spam.py b/plinth/modules/email_server/audit/spam.py index e92808b04..fb19f8dee 100644 --- a/plinth/modules/email_server/audit/spam.py +++ b/plinth/modules/email_server/audit/spam.py @@ -6,13 +6,14 @@ import logging import re import subprocess -from django.utils.translation import ugettext_lazy as _ -from plinth import actions +from django.utils.translation import gettext_lazy as _ -from . import models +from plinth import actions from plinth.modules.email_server import interproc, lock, postconf from plinth.modules.email_server.modconf import ConfigInjector +from . import models + milter_config = { 'milter_mail_macros': 'i ' + ' '.join([ '{auth_type}', '{auth_authen}', '{auth_author}', diff --git a/plinth/modules/email_server/audit/tls.py b/plinth/modules/email_server/audit/tls.py index f0746d17b..145dea372 100644 --- a/plinth/modules/email_server/audit/tls.py +++ b/plinth/modules/email_server/audit/tls.py @@ -6,11 +6,12 @@ import logging import os import sys -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ + from plinth import actions +from plinth.modules.email_server import interproc, postconf from . import models -from plinth.modules.email_server import interproc, postconf # Mozilla Guideline v5.6, Postfix 1.17.7, OpenSSL 1.1.1d, intermediate # Generated 2021-08 diff --git a/plinth/modules/email_server/forms.py b/plinth/modules/email_server/forms.py index 9567d1be1..2108b91fb 100644 --- a/plinth/modules/email_server/forms.py +++ b/plinth/modules/email_server/forms.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: AGPL-3.0-or-later from django import forms -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ class EmailServerForm(forms.Form): diff --git a/plinth/modules/email_server/manifest.py b/plinth/modules/email_server/manifest.py index 51e4d8e75..a4714eac4 100644 --- a/plinth/modules/email_server/manifest.py +++ b/plinth/modules/email_server/manifest.py @@ -1,5 +1,6 @@ # SPDX-License-Identifier: AGPL-3.0-or-later -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ + from plinth.clients import store_url clients = [{ diff --git a/plinth/modules/email_server/views.py b/plinth/modules/email_server/views.py index 81ff70dd5..0feeacadf 100644 --- a/plinth/modules/email_server/views.py +++ b/plinth/modules/email_server/views.py @@ -3,20 +3,18 @@ import io import itertools import pwd -import plinth.actions -import plinth.utils - from django.core.exceptions import ValidationError from django.http import HttpResponseBadRequest from django.shortcuts import redirect from django.utils.html import escape -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from django.views.generic.base import TemplateView, View + +import plinth.actions +import plinth.utils from plinth.views import AppView, render_tabs -from . import aliases -from . import audit -from . import forms +from . import aliases, audit, forms class TabMixin(View): diff --git a/plinth/modules/firewall/__init__.py b/plinth/modules/firewall/__init__.py index 0a35c9537..a2aefc6c7 100644 --- a/plinth/modules/firewall/__init__.py +++ b/plinth/modules/firewall/__init__.py @@ -6,7 +6,7 @@ FreedomBox app to configure a firewall. import contextlib import logging -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/firewall/components.py b/plinth/modules/firewall/components.py index a2ffe6064..d94cd8e4c 100644 --- a/plinth/modules/firewall/components.py +++ b/plinth/modules/firewall/components.py @@ -7,7 +7,7 @@ import logging import re from django.utils.text import format_lazy -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import app from plinth.modules import firewall diff --git a/plinth/modules/first_boot/forms.py b/plinth/modules/first_boot/forms.py index 84465d041..1e8f4ae7b 100644 --- a/plinth/modules/first_boot/forms.py +++ b/plinth/modules/first_boot/forms.py @@ -1,7 +1,7 @@ # SPDX-License-Identifier: AGPL-3.0-or-later from django import forms -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import cfg from plinth.modules import first_boot diff --git a/plinth/modules/first_boot/views.py b/plinth/modules/first_boot/views.py index 542f23eb0..51ec66145 100644 --- a/plinth/modules/first_boot/views.py +++ b/plinth/modules/first_boot/views.py @@ -2,7 +2,7 @@ from django import http from django.urls import reverse -from django.utils.translation import ugettext as _ +from django.utils.translation import gettext as _ from django.views.generic import TemplateView from django.views.generic.edit import FormView diff --git a/plinth/modules/gitweb/__init__.py b/plinth/modules/gitweb/__init__.py index 702bf8f76..41252e616 100644 --- a/plinth/modules/gitweb/__init__.py +++ b/plinth/modules/gitweb/__init__.py @@ -6,7 +6,7 @@ FreedomBox app to configure Gitweb. import json import os -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/gitweb/forms.py b/plinth/modules/gitweb/forms.py index 9501d8884..555f8918b 100644 --- a/plinth/modules/gitweb/forms.py +++ b/plinth/modules/gitweb/forms.py @@ -10,7 +10,7 @@ from urllib.parse import urlparse from django import forms from django.core.exceptions import ValidationError from django.core.validators import URLValidator -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth.modules import gitweb diff --git a/plinth/modules/gitweb/manifest.py b/plinth/modules/gitweb/manifest.py index f37c347e9..92847f90d 100644 --- a/plinth/modules/gitweb/manifest.py +++ b/plinth/modules/gitweb/manifest.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: AGPL-3.0-or-later -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ CONFIG_FILE = '/etc/gitweb-freedombox.conf' GIT_REPO_PATH = '/var/lib/git' diff --git a/plinth/modules/gitweb/views.py b/plinth/modules/gitweb/views.py index 6420d384d..2b82eb4b5 100644 --- a/plinth/modules/gitweb/views.py +++ b/plinth/modules/gitweb/views.py @@ -9,7 +9,7 @@ from django.http import Http404 from django.shortcuts import redirect from django.template.response import TemplateResponse from django.urls import reverse_lazy -from django.utils.translation import ugettext as _ +from django.utils.translation import gettext as _ from django.views.generic import FormView from plinth import actions, views diff --git a/plinth/modules/help/__init__.py b/plinth/modules/help/__init__.py index eed3852df..fa0360537 100644 --- a/plinth/modules/help/__init__.py +++ b/plinth/modules/help/__init__.py @@ -5,8 +5,8 @@ FreedomBox app for help pages. import os +from django.utils.translation import gettext_lazy as _ from django.utils.translation import pgettext_lazy -from django.utils.translation import ugettext_lazy as _ from plinth import app as app_module from plinth import cfg, menu, web_server diff --git a/plinth/modules/help/views.py b/plinth/modules/help/views.py index 5c48b77bb..2ddef7f9f 100644 --- a/plinth/modules/help/views.py +++ b/plinth/modules/help/views.py @@ -12,7 +12,7 @@ from django.http import Http404, HttpResponse, HttpResponseRedirect from django.template.response import TemplateResponse from django.urls import reverse from django.utils.translation import get_language_from_request -from django.utils.translation import ugettext as _ +from django.utils.translation import gettext as _ from plinth import __version__, actions, cfg from plinth.modules.upgrades.views import (get_os_release, diff --git a/plinth/modules/i2p/__init__.py b/plinth/modules/i2p/__init__.py index 146196619..b7bf6bcac 100644 --- a/plinth/modules/i2p/__init__.py +++ b/plinth/modules/i2p/__init__.py @@ -3,7 +3,7 @@ FreedomBox app to configure I2P. """ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/i2p/manifest.py b/plinth/modules/i2p/manifest.py index 335fbea7f..6c41320d3 100644 --- a/plinth/modules/i2p/manifest.py +++ b/plinth/modules/i2p/manifest.py @@ -3,7 +3,7 @@ Application manifest for I2P. """ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ _package_id = 'net.geti2p.i2p' _download_url = 'https://geti2p.net/download' diff --git a/plinth/modules/i2p/views.py b/plinth/modules/i2p/views.py index 31a97e13f..d3c230035 100644 --- a/plinth/modules/i2p/views.py +++ b/plinth/modules/i2p/views.py @@ -3,7 +3,7 @@ Views for I2P application. """ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth.views import AppView diff --git a/plinth/modules/ikiwiki/__init__.py b/plinth/modules/ikiwiki/__init__.py index e2fd6cf4d..6ccbd1269 100644 --- a/plinth/modules/ikiwiki/__init__.py +++ b/plinth/modules/ikiwiki/__init__.py @@ -4,7 +4,7 @@ FreedomBox app to configure ikiwiki. """ from django.urls import reverse_lazy -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/ikiwiki/forms.py b/plinth/modules/ikiwiki/forms.py index a62f4ef7f..85c3f1b6b 100644 --- a/plinth/modules/ikiwiki/forms.py +++ b/plinth/modules/ikiwiki/forms.py @@ -4,7 +4,7 @@ Forms for configuring ikiwiki """ from django import forms -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ class IkiwikiCreateForm(forms.Form): diff --git a/plinth/modules/ikiwiki/manifest.py b/plinth/modules/ikiwiki/manifest.py index e2e4b82c7..6d8f98bc2 100644 --- a/plinth/modules/ikiwiki/manifest.py +++ b/plinth/modules/ikiwiki/manifest.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: AGPL-3.0-or-later -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ clients = [{ 'name': _('ikiwiki'), diff --git a/plinth/modules/ikiwiki/views.py b/plinth/modules/ikiwiki/views.py index 8af12ea26..0959bfc04 100644 --- a/plinth/modules/ikiwiki/views.py +++ b/plinth/modules/ikiwiki/views.py @@ -7,7 +7,7 @@ from django.contrib import messages from django.shortcuts import redirect from django.template.response import TemplateResponse from django.urls import reverse_lazy -from django.utils.translation import ugettext as _ +from django.utils.translation import gettext as _ from plinth import actions, views from plinth.modules import ikiwiki diff --git a/plinth/modules/infinoted/__init__.py b/plinth/modules/infinoted/__init__.py index 5cda4cf2e..a8f04118d 100644 --- a/plinth/modules/infinoted/__init__.py +++ b/plinth/modules/infinoted/__init__.py @@ -4,7 +4,7 @@ FreedomBox app for infinoted. """ from django.urls import reverse_lazy -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/infinoted/manifest.py b/plinth/modules/infinoted/manifest.py index a9e89364c..d844d5c27 100644 --- a/plinth/modules/infinoted/manifest.py +++ b/plinth/modules/infinoted/manifest.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: AGPL-3.0-or-later -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import cfg from plinth.utils import format_lazy diff --git a/plinth/modules/jsxc/__init__.py b/plinth/modules/jsxc/__init__.py index 7f58d1acc..e12d0a3bf 100644 --- a/plinth/modules/jsxc/__init__.py +++ b/plinth/modules/jsxc/__init__.py @@ -6,7 +6,7 @@ FreedomBox app to configure XMPP web client/jsxc. import logging from django.urls import reverse_lazy -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import app as app_module from plinth import frontpage, menu diff --git a/plinth/modules/jsxc/manifest.py b/plinth/modules/jsxc/manifest.py index c1b5f1e8e..9898d5e1d 100644 --- a/plinth/modules/jsxc/manifest.py +++ b/plinth/modules/jsxc/manifest.py @@ -1,7 +1,7 @@ # SPDX-License-Identifier: AGPL-3.0-or-later from django.urls import reverse_lazy -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ clients = [{ 'name': _('JSXC'), diff --git a/plinth/modules/letsencrypt/__init__.py b/plinth/modules/letsencrypt/__init__.py index 52f259531..57d397276 100644 --- a/plinth/modules/letsencrypt/__init__.py +++ b/plinth/modules/letsencrypt/__init__.py @@ -7,7 +7,7 @@ import json import logging import pathlib -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/letsencrypt/views.py b/plinth/modules/letsencrypt/views.py index 257dcadc2..0bf67a38e 100644 --- a/plinth/modules/letsencrypt/views.py +++ b/plinth/modules/letsencrypt/views.py @@ -9,7 +9,7 @@ from django.contrib import messages from django.shortcuts import redirect from django.template.response import TemplateResponse from django.urls import reverse_lazy -from django.utils.translation import ugettext as _ +from django.utils.translation import gettext as _ from django.views.decorators.http import require_POST from plinth.errors import ActionError diff --git a/plinth/modules/matrixsynapse/__init__.py b/plinth/modules/matrixsynapse/__init__.py index 6d2484ff5..5d7cf3de6 100644 --- a/plinth/modules/matrixsynapse/__init__.py +++ b/plinth/modules/matrixsynapse/__init__.py @@ -9,7 +9,7 @@ import pathlib from typing import List from django.urls import reverse_lazy -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from ruamel.yaml.util import load_yaml_guess_indent from plinth import actions diff --git a/plinth/modules/matrixsynapse/forms.py b/plinth/modules/matrixsynapse/forms.py index d231dffe3..2f505d9eb 100644 --- a/plinth/modules/matrixsynapse/forms.py +++ b/plinth/modules/matrixsynapse/forms.py @@ -5,9 +5,9 @@ Forms for the Matrix Synapse module. from django import forms from django.urls import reverse_lazy +from django.utils.translation import gettext_lazy as _ from plinth.modules.coturn.forms import turn_uris_validator -from django.utils.translation import ugettext_lazy as _ from plinth.utils import format_lazy diff --git a/plinth/modules/matrixsynapse/manifest.py b/plinth/modules/matrixsynapse/manifest.py index a9eb3f56c..f246f2998 100644 --- a/plinth/modules/matrixsynapse/manifest.py +++ b/plinth/modules/matrixsynapse/manifest.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: AGPL-3.0-or-later -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth.clients import store_url diff --git a/plinth/modules/matrixsynapse/views.py b/plinth/modules/matrixsynapse/views.py index 892097850..1198d8aa9 100644 --- a/plinth/modules/matrixsynapse/views.py +++ b/plinth/modules/matrixsynapse/views.py @@ -6,7 +6,7 @@ Views for the Matrix Synapse module. from django.contrib import messages from django.shortcuts import redirect from django.urls import reverse_lazy -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from django.views.generic import FormView from plinth import actions diff --git a/plinth/modules/mediawiki/__init__.py b/plinth/modules/mediawiki/__init__.py index 4c1762a32..b1d157c47 100644 --- a/plinth/modules/mediawiki/__init__.py +++ b/plinth/modules/mediawiki/__init__.py @@ -6,7 +6,7 @@ FreedomBox app to configure MediaWiki. import re from urllib.parse import urlparse -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/mediawiki/forms.py b/plinth/modules/mediawiki/forms.py index c2d9f57a3..0354e3f17 100644 --- a/plinth/modules/mediawiki/forms.py +++ b/plinth/modules/mediawiki/forms.py @@ -8,7 +8,7 @@ import pathlib from django import forms from django.forms import Widget from django.utils.safestring import mark_safe -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ def get_skins(): diff --git a/plinth/modules/mediawiki/manifest.py b/plinth/modules/mediawiki/manifest.py index ff8e5142f..3e4c72b75 100644 --- a/plinth/modules/mediawiki/manifest.py +++ b/plinth/modules/mediawiki/manifest.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: AGPL-3.0-or-later -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ clients = [{ 'name': _('MediaWiki'), diff --git a/plinth/modules/mediawiki/views.py b/plinth/modules/mediawiki/views.py index f26d15650..1a0045eff 100644 --- a/plinth/modules/mediawiki/views.py +++ b/plinth/modules/mediawiki/views.py @@ -6,7 +6,7 @@ FreedomBox app for configuring MediaWiki. import logging from django.contrib import messages -from django.utils.translation import ugettext as _ +from django.utils.translation import gettext as _ from plinth import actions, views from plinth.modules import mediawiki diff --git a/plinth/modules/minetest/__init__.py b/plinth/modules/minetest/__init__.py index eb49512d3..4e3b70f45 100644 --- a/plinth/modules/minetest/__init__.py +++ b/plinth/modules/minetest/__init__.py @@ -5,7 +5,7 @@ FreedomBox app for Minetest server. import augeas from django.urls import reverse_lazy -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import app as app_module from plinth import cfg, frontpage, menu diff --git a/plinth/modules/minetest/forms.py b/plinth/modules/minetest/forms.py index b89c893c3..c473f4e04 100644 --- a/plinth/modules/minetest/forms.py +++ b/plinth/modules/minetest/forms.py @@ -4,7 +4,7 @@ Forms for minetest module. """ from django import forms -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ class MinetestForm(forms.Form): diff --git a/plinth/modules/minetest/manifest.py b/plinth/modules/minetest/manifest.py index f0fc23b7e..c23ff3f15 100644 --- a/plinth/modules/minetest/manifest.py +++ b/plinth/modules/minetest/manifest.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: AGPL-3.0-or-later -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth.clients import store_url diff --git a/plinth/modules/minetest/views.py b/plinth/modules/minetest/views.py index a58dd659b..53b82e98c 100644 --- a/plinth/modules/minetest/views.py +++ b/plinth/modules/minetest/views.py @@ -4,7 +4,7 @@ Views for minetest module. """ from django.contrib import messages -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth.modules import names diff --git a/plinth/modules/minidlna/__init__.py b/plinth/modules/minidlna/__init__.py index 74b084216..e4de44d37 100644 --- a/plinth/modules/minidlna/__init__.py +++ b/plinth/modules/minidlna/__init__.py @@ -2,7 +2,7 @@ """ FreedomBox app to configure minidlna. """ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ import plinth.app as app_module from plinth import actions, frontpage, menu diff --git a/plinth/modules/minidlna/forms.py b/plinth/modules/minidlna/forms.py index cc893874f..556c34e13 100644 --- a/plinth/modules/minidlna/forms.py +++ b/plinth/modules/minidlna/forms.py @@ -4,7 +4,7 @@ FreedomBox configuration form for MiniDLNA server. """ from django import forms -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ class MiniDLNAServerForm(forms.Form): diff --git a/plinth/modules/minidlna/manifest.py b/plinth/modules/minidlna/manifest.py index 1c9ae1945..c7e6e45c5 100644 --- a/plinth/modules/minidlna/manifest.py +++ b/plinth/modules/minidlna/manifest.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: AGPL-3.0-or-later -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth.clients import store_url diff --git a/plinth/modules/minidlna/views.py b/plinth/modules/minidlna/views.py index 0bd84f569..91c24a55c 100644 --- a/plinth/modules/minidlna/views.py +++ b/plinth/modules/minidlna/views.py @@ -5,7 +5,7 @@ Views for the minidlna module import os from django.contrib import messages -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth.modules import minidlna from plinth.views import AppView diff --git a/plinth/modules/mldonkey/__init__.py b/plinth/modules/mldonkey/__init__.py index 147edf899..3d44be83c 100644 --- a/plinth/modules/mldonkey/__init__.py +++ b/plinth/modules/mldonkey/__init__.py @@ -3,7 +3,7 @@ FreedomBox app for mldonkey. """ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/mldonkey/manifest.py b/plinth/modules/mldonkey/manifest.py index 18280f0fc..25819b496 100644 --- a/plinth/modules/mldonkey/manifest.py +++ b/plinth/modules/mldonkey/manifest.py @@ -3,7 +3,7 @@ Application manifest for mldonkey. """ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth.clients import store_url diff --git a/plinth/modules/monkeysphere/__init__.py b/plinth/modules/monkeysphere/__init__.py index d4ffff00a..ab612d917 100644 --- a/plinth/modules/monkeysphere/__init__.py +++ b/plinth/modules/monkeysphere/__init__.py @@ -3,7 +3,7 @@ FreedomBox app for monkeysphere. """ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import app as app_module from plinth import menu diff --git a/plinth/modules/monkeysphere/views.py b/plinth/modules/monkeysphere/views.py index 2a093c04f..27c3c22a9 100644 --- a/plinth/modules/monkeysphere/views.py +++ b/plinth/modules/monkeysphere/views.py @@ -9,7 +9,7 @@ from django.contrib import messages from django.shortcuts import redirect from django.template.response import TemplateResponse from django.urls import reverse_lazy -from django.utils.translation import ugettext as _ +from django.utils.translation import gettext as _ from django.views.decorators.http import require_POST from plinth import actions diff --git a/plinth/modules/mumble/__init__.py b/plinth/modules/mumble/__init__.py index b39889bd7..57f56b272 100644 --- a/plinth/modules/mumble/__init__.py +++ b/plinth/modules/mumble/__init__.py @@ -6,7 +6,7 @@ FreedomBox app to configure Mumble server. import pathlib from django.urls import reverse_lazy -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/mumble/forms.py b/plinth/modules/mumble/forms.py index a3df53a23..3e2c72ece 100644 --- a/plinth/modules/mumble/forms.py +++ b/plinth/modules/mumble/forms.py @@ -4,7 +4,7 @@ Mumble server configuration form """ from django import forms -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth.modules import mumble diff --git a/plinth/modules/mumble/manifest.py b/plinth/modules/mumble/manifest.py index d99b6b53f..e5c8b493a 100644 --- a/plinth/modules/mumble/manifest.py +++ b/plinth/modules/mumble/manifest.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: AGPL-3.0-or-later -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth.clients import store_url diff --git a/plinth/modules/mumble/views.py b/plinth/modules/mumble/views.py index 4180f7b59..999579143 100644 --- a/plinth/modules/mumble/views.py +++ b/plinth/modules/mumble/views.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: AGPL-3.0-or-later from django.contrib import messages -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth.modules import mumble diff --git a/plinth/modules/names/__init__.py b/plinth/modules/names/__init__.py index 45b47934c..d17005760 100644 --- a/plinth/modules/names/__init__.py +++ b/plinth/modules/names/__init__.py @@ -5,7 +5,7 @@ FreedomBox app to configure name services. import logging -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import app as app_module from plinth import cfg, menu diff --git a/plinth/modules/names/components.py b/plinth/modules/names/components.py index ce8e48be7..b9dc82797 100644 --- a/plinth/modules/names/components.py +++ b/plinth/modules/names/components.py @@ -3,7 +3,7 @@ App component to introduce a new domain type. """ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import app diff --git a/plinth/modules/networks/__init__.py b/plinth/modules/networks/__init__.py index 044669234..1d56c5cd8 100644 --- a/plinth/modules/networks/__init__.py +++ b/plinth/modules/networks/__init__.py @@ -7,7 +7,7 @@ import subprocess from logging import Logger from django.utils.text import format_lazy -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/networks/forms.py b/plinth/modules/networks/forms.py index 167ecd5d9..621efad99 100644 --- a/plinth/modules/networks/forms.py +++ b/plinth/modules/networks/forms.py @@ -2,7 +2,7 @@ from django import forms from django.core import validators -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import cfg, network from plinth.utils import format_lazy, import_from_gi diff --git a/plinth/modules/networks/views.py b/plinth/modules/networks/views.py index 8f0b1a67d..96a6437af 100644 --- a/plinth/modules/networks/views.py +++ b/plinth/modules/networks/views.py @@ -7,8 +7,8 @@ from django.http import HttpResponseRedirect from django.shortcuts import redirect from django.template.response import TemplateResponse from django.urls import reverse_lazy -from django.utils.translation import ugettext as _ -from django.utils.translation import ugettext_lazy +from django.utils.translation import gettext as _ +from django.utils.translation import gettext_lazy from django.views.decorators.http import require_POST from django.views.generic.edit import FormView @@ -24,93 +24,93 @@ logger = logging.getLogger(__name__) # i18n for device.state # https://developer.gnome.org/libnm/1.29/libnm-nm-dbus-interface.html#NMDeviceState CONNECTION_METHOD_STRINGS = { - 'disabled': ugettext_lazy('disabled'), - 'auto': ugettext_lazy('automatic'), - 'manual': ugettext_lazy('manual'), - 'shared': ugettext_lazy('shared'), - 'link-local': ugettext_lazy('link-local'), + 'disabled': gettext_lazy('disabled'), + 'auto': gettext_lazy('automatic'), + 'manual': gettext_lazy('manual'), + 'shared': gettext_lazy('shared'), + 'link-local': gettext_lazy('link-local'), } # i18n for device.state # https://developer.gnome.org/libnm/1.29/libnm-nm-dbus-interface.html#NMDeviceState DEVICE_STATE_STRINGS = { - 'unknown': ugettext_lazy('unknown'), - 'unmanaged': ugettext_lazy('unmanaged'), - 'unavailable': ugettext_lazy('unavailable'), - 'disconnected': ugettext_lazy('disconnected'), - 'prepare': ugettext_lazy('preparing'), - 'config': ugettext_lazy('connecting'), - 'need-auth': ugettext_lazy('needs authentication'), - 'ip-config': ugettext_lazy('requesting address'), - 'ip-check': ugettext_lazy('checking'), - 'secondaries': ugettext_lazy('waiting for secondary'), - 'activated': ugettext_lazy('activated'), - 'deactivating': ugettext_lazy('deactivating'), - 'failed': ugettext_lazy('failed'), + 'unknown': gettext_lazy('unknown'), + 'unmanaged': gettext_lazy('unmanaged'), + 'unavailable': gettext_lazy('unavailable'), + 'disconnected': gettext_lazy('disconnected'), + 'prepare': gettext_lazy('preparing'), + 'config': gettext_lazy('connecting'), + 'need-auth': gettext_lazy('needs authentication'), + 'ip-config': gettext_lazy('requesting address'), + 'ip-check': gettext_lazy('checking'), + 'secondaries': gettext_lazy('waiting for secondary'), + 'activated': gettext_lazy('activated'), + 'deactivating': gettext_lazy('deactivating'), + 'failed': gettext_lazy('failed'), } # i18n for device.state_reason # https://developer.gnome.org/libnm/1.29/libnm-nm-dbus-interface.html#NMDeviceStateReason DEVICE_STATE_REASON_STRINGS = { 'none': - ugettext_lazy('no reason'), + gettext_lazy('no reason'), 'unknown': - ugettext_lazy('unknown error'), + gettext_lazy('unknown error'), 'now-managed': - ugettext_lazy('device is now managed'), + gettext_lazy('device is now managed'), 'now-unmanaged': - ugettext_lazy('device is now unmanaged'), + gettext_lazy('device is now unmanaged'), 'config-failed': - ugettext_lazy('configuration failed'), + gettext_lazy('configuration failed'), 'no-secrets': - ugettext_lazy('secrets required'), + gettext_lazy('secrets required'), 'dhcp-start-failed': - ugettext_lazy('DHCP client failed to start'), + gettext_lazy('DHCP client failed to start'), 'dhcp-error': - ugettext_lazy('DHCP client error'), + gettext_lazy('DHCP client error'), 'dhcp-failed': - ugettext_lazy('DHCP client failed'), + gettext_lazy('DHCP client failed'), 'shared-start-failed': - ugettext_lazy('shared connection service failed to start'), + gettext_lazy('shared connection service failed to start'), 'shared-failed': - ugettext_lazy('shared connection service failed'), + gettext_lazy('shared connection service failed'), 'removed': - ugettext_lazy('device was removed'), + gettext_lazy('device was removed'), 'user-requested': - ugettext_lazy('device disconnected by user'), + gettext_lazy('device disconnected by user'), 'dependency-failed': - ugettext_lazy('a dependency of the connection failed'), + gettext_lazy('a dependency of the connection failed'), 'ssid-not-found': - ugettext_lazy('Wi-Fi network not found'), + gettext_lazy('Wi-Fi network not found'), 'secondary-connection-failed': - ugettext_lazy('a secondary connection failed'), + gettext_lazy('a secondary connection failed'), 'new-activation': - ugettext_lazy('new connection activation was enqueued'), + gettext_lazy('new connection activation was enqueued'), 'ip-address-duplicate': - ugettext_lazy('a duplicate IP address was detected'), + gettext_lazy('a duplicate IP address was detected'), 'ip-method-unsupported': - ugettext_lazy('selected IP method is not supported'), + gettext_lazy('selected IP method is not supported'), } # i18n for device.type # https://developer.gnome.org/libnm/1.29/libnm-nm-dbus-interface.html#NMDeviceType DEVICE_TYPE_STRINGS = { - 'unknown': ugettext_lazy('unknown'), - 'ethernet': ugettext_lazy('Ethernet'), - 'wifi': ugettext_lazy('Wi-Fi'), - 'generic': ugettext_lazy('generic'), - 'tun': ugettext_lazy('TUN or TAP interface'), - 'wireguard': ugettext_lazy('WireGuard'), + 'unknown': gettext_lazy('unknown'), + 'ethernet': gettext_lazy('Ethernet'), + 'wifi': gettext_lazy('Wi-Fi'), + 'generic': gettext_lazy('generic'), + 'tun': gettext_lazy('TUN or TAP interface'), + 'wireguard': gettext_lazy('WireGuard'), } # i18n for wireless.mode # https://developer.gnome.org/libnm/1.29/libnm-nm-dbus-interface.html#NM80211Mode WIRELESS_MODE_STRINGS = { - 'unknown': ugettext_lazy('unknown'), - 'adhoc': ugettext_lazy('ad-hoc'), - 'infra': ugettext_lazy('infrastructure'), - 'ap': ugettext_lazy('access point'), - 'mesh': ugettext_lazy('mesh point'), + 'unknown': gettext_lazy('unknown'), + 'adhoc': gettext_lazy('ad-hoc'), + 'infra': gettext_lazy('infrastructure'), + 'ap': gettext_lazy('access point'), + 'mesh': gettext_lazy('mesh point'), } diff --git a/plinth/modules/openvpn/__init__.py b/plinth/modules/openvpn/__init__.py index 4eebfd66a..be6a70247 100644 --- a/plinth/modules/openvpn/__init__.py +++ b/plinth/modules/openvpn/__init__.py @@ -6,7 +6,7 @@ FreedomBox app to configure OpenVPN server. import os from django.urls import reverse_lazy -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/openvpn/manifest.py b/plinth/modules/openvpn/manifest.py index 9a15acc11..443276b99 100644 --- a/plinth/modules/openvpn/manifest.py +++ b/plinth/modules/openvpn/manifest.py @@ -3,7 +3,7 @@ Application manifest for OpenVPN. """ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth.clients import store_url diff --git a/plinth/modules/pagekite/__init__.py b/plinth/modules/pagekite/__init__.py index 02891e86a..dd39e076b 100644 --- a/plinth/modules/pagekite/__init__.py +++ b/plinth/modules/pagekite/__init__.py @@ -3,7 +3,7 @@ FreedomBox app to configure PageKite. """ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/pagekite/forms.py b/plinth/modules/pagekite/forms.py index 336530eed..ff1abf9af 100644 --- a/plinth/modules/pagekite/forms.py +++ b/plinth/modules/pagekite/forms.py @@ -6,8 +6,8 @@ import json from django import forms from django.contrib import messages from django.core import validators -from django.utils.translation import ugettext as _ -from django.utils.translation import ugettext_lazy +from django.utils.translation import gettext as _ +from django.utils.translation import gettext_lazy from plinth.errors import ActionError @@ -29,22 +29,22 @@ class ConfigurationForm(forms.Form): """Configure PageKite credentials and frontend""" server_domain = forms.CharField( - label=ugettext_lazy('Server domain'), required=False, - help_text=ugettext_lazy( + label=gettext_lazy('Server domain'), required=False, + help_text=gettext_lazy( 'Select your pagekite server. Set "pagekite.net" to use ' 'the default pagekite.net server.'), widget=forms.TextInput()) server_port = forms.IntegerField( - label=ugettext_lazy('Server port'), required=False, - help_text=ugettext_lazy('Port of your pagekite server (default: 80)')) + label=gettext_lazy('Server port'), required=False, + help_text=gettext_lazy('Port of your pagekite server (default: 80)')) kite_name = TrimmedCharField( - label=ugettext_lazy('Kite name'), - help_text=ugettext_lazy('Example: mybox.pagekite.me'), validators=[ + label=gettext_lazy('Kite name'), + help_text=gettext_lazy('Example: mybox.pagekite.me'), validators=[ validators.RegexValidator(r'^[\w-]{1,63}(\.[\w-]{1,63})*$', - ugettext_lazy('Invalid kite name')) + gettext_lazy('Invalid kite name')) ]) kite_secret = TrimmedCharField( - label=ugettext_lazy('Kite secret'), help_text=ugettext_lazy( + label=gettext_lazy('Kite secret'), help_text=gettext_lazy( 'A secret associated with the kite or the default secret ' 'for your account if no secret is set on the kite.')) @@ -85,14 +85,14 @@ class BaseCustomServiceForm(forms.Form): """Basic form functionality to handle a custom service""" choices = [('http', 'http'), ('https', 'https'), ('raw', 'raw')] protocol = forms.ChoiceField(choices=choices, - label=ugettext_lazy('protocol')) + label=gettext_lazy('protocol')) frontend_port = forms.IntegerField( min_value=0, max_value=65535, - label=ugettext_lazy('external (frontend) port'), required=True) + label=gettext_lazy('external (frontend) port'), required=True) backend_port = forms.IntegerField( min_value=0, max_value=65535, - label=ugettext_lazy('internal (freedombox) port')) - subdomains = forms.BooleanField(label=ugettext_lazy('Enable Subdomains'), + label=gettext_lazy('internal (freedombox) port')) + subdomains = forms.BooleanField(label=gettext_lazy('Enable Subdomains'), required=False) def convert_formdata_to_service(self, formdata): diff --git a/plinth/modules/pagekite/utils.py b/plinth/modules/pagekite/utils.py index 7c3cf266d..f551beea9 100644 --- a/plinth/modules/pagekite/utils.py +++ b/plinth/modules/pagekite/utils.py @@ -4,7 +4,7 @@ import json import logging import os -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth.signals import domain_added, domain_removed diff --git a/plinth/modules/pagekite/views.py b/plinth/modules/pagekite/views.py index 209cf8a11..02c8dfac4 100644 --- a/plinth/modules/pagekite/views.py +++ b/plinth/modules/pagekite/views.py @@ -2,7 +2,7 @@ from django.http import HttpResponseRedirect from django.urls import reverse, reverse_lazy -from django.utils.translation import ugettext as _ +from django.utils.translation import gettext as _ from django.views.generic import View from django.views.generic.edit import FormView @@ -14,6 +14,7 @@ from .forms import (AddCustomServiceForm, ConfigurationForm, class DeleteServiceView(View): + def post(self, request): form = DeleteCustomServiceForm(request.POST) if form.is_valid(): diff --git a/plinth/modules/performance/__init__.py b/plinth/modules/performance/__init__.py index 4591f451d..dbb0ea8c9 100644 --- a/plinth/modules/performance/__init__.py +++ b/plinth/modules/performance/__init__.py @@ -3,7 +3,7 @@ FreedomBox app for System Monitoring (cockpit-pcp) in ‘System’. """ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import app as app_module from plinth import menu diff --git a/plinth/modules/performance/manifest.py b/plinth/modules/performance/manifest.py index 907e33a14..f40a63813 100644 --- a/plinth/modules/performance/manifest.py +++ b/plinth/modules/performance/manifest.py @@ -7,7 +7,7 @@ import subprocess from functools import lru_cache from django.utils.functional import lazy -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth.utils import Version diff --git a/plinth/modules/power/__init__.py b/plinth/modules/power/__init__.py index 75e4ce599..006ba71ea 100644 --- a/plinth/modules/power/__init__.py +++ b/plinth/modules/power/__init__.py @@ -3,7 +3,7 @@ FreedomBox app for power controls. """ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import app as app_module from plinth.modules.backups.components import BackupRestore diff --git a/plinth/modules/privoxy/__init__.py b/plinth/modules/privoxy/__init__.py index 40255cec3..02bec9b21 100644 --- a/plinth/modules/privoxy/__init__.py +++ b/plinth/modules/privoxy/__init__.py @@ -4,7 +4,7 @@ FreedomBox app to configure Privoxy. """ from django.urls import reverse_lazy -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import action_utils, actions from plinth import app as app_module diff --git a/plinth/modules/quassel/__init__.py b/plinth/modules/quassel/__init__.py index f45e700e9..bf17d805a 100644 --- a/plinth/modules/quassel/__init__.py +++ b/plinth/modules/quassel/__init__.py @@ -6,7 +6,7 @@ FreedomBox app for Quassel. import pathlib from django.urls import reverse_lazy -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/quassel/forms.py b/plinth/modules/quassel/forms.py index f1a9ce436..72eef7e3d 100644 --- a/plinth/modules/quassel/forms.py +++ b/plinth/modules/quassel/forms.py @@ -4,7 +4,7 @@ Forms for Quassel app. """ from django import forms -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth.modules import quassel diff --git a/plinth/modules/quassel/manifest.py b/plinth/modules/quassel/manifest.py index fe3afcfb1..2deb7f047 100644 --- a/plinth/modules/quassel/manifest.py +++ b/plinth/modules/quassel/manifest.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: AGPL-3.0-or-later -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth.clients import store_url diff --git a/plinth/modules/quassel/views.py b/plinth/modules/quassel/views.py index 12787e0b9..a5e671d0b 100644 --- a/plinth/modules/quassel/views.py +++ b/plinth/modules/quassel/views.py @@ -1,7 +1,7 @@ # SPDX-License-Identifier: AGPL-3.0-or-later from django.contrib import messages -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth.modules import quassel from plinth.views import AppView diff --git a/plinth/modules/radicale/__init__.py b/plinth/modules/radicale/__init__.py index c8e84ab12..97112e41b 100644 --- a/plinth/modules/radicale/__init__.py +++ b/plinth/modules/radicale/__init__.py @@ -6,7 +6,7 @@ FreedomBox app for radicale. import logging import augeas -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/radicale/forms.py b/plinth/modules/radicale/forms.py index 0ce96e0f2..569dcc81b 100644 --- a/plinth/modules/radicale/forms.py +++ b/plinth/modules/radicale/forms.py @@ -4,7 +4,7 @@ Forms for radicale module. """ from django import forms -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import cfg from plinth.utils import format_lazy diff --git a/plinth/modules/radicale/manifest.py b/plinth/modules/radicale/manifest.py index 7d876df49..f0c071172 100644 --- a/plinth/modules/radicale/manifest.py +++ b/plinth/modules/radicale/manifest.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: AGPL-3.0-or-later -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth.clients import store_url diff --git a/plinth/modules/radicale/views.py b/plinth/modules/radicale/views.py index 18733ccd0..88d56cac6 100644 --- a/plinth/modules/radicale/views.py +++ b/plinth/modules/radicale/views.py @@ -4,7 +4,7 @@ Views for radicale module. """ from django.contrib import messages -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth.views import AppView diff --git a/plinth/modules/roundcube/__init__.py b/plinth/modules/roundcube/__init__.py index 8250e0491..7455928b4 100644 --- a/plinth/modules/roundcube/__init__.py +++ b/plinth/modules/roundcube/__init__.py @@ -3,7 +3,7 @@ FreedomBox app to configure Roundcube. """ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/roundcube/manifest.py b/plinth/modules/roundcube/manifest.py index 124b5ae69..ee3219da3 100644 --- a/plinth/modules/roundcube/manifest.py +++ b/plinth/modules/roundcube/manifest.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: AGPL-3.0-or-later -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ clients = [{ 'name': _('Roundcube'), diff --git a/plinth/modules/samba/__init__.py b/plinth/modules/samba/__init__.py index e13452a52..f00e332a3 100644 --- a/plinth/modules/samba/__init__.py +++ b/plinth/modules/samba/__init__.py @@ -9,7 +9,7 @@ import pwd import socket from django.urls import reverse_lazy -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/samba/manifest.py b/plinth/modules/samba/manifest.py index 6defc1d29..5532b6bf6 100644 --- a/plinth/modules/samba/manifest.py +++ b/plinth/modules/samba/manifest.py @@ -3,7 +3,7 @@ Application manifest for Samba. """ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth.clients import store_url diff --git a/plinth/modules/samba/views.py b/plinth/modules/samba/views.py index cc177ae33..c725670b9 100644 --- a/plinth/modules/samba/views.py +++ b/plinth/modules/samba/views.py @@ -11,8 +11,9 @@ from collections import defaultdict from django.contrib import messages from django.shortcuts import redirect from django.urls import reverse -from django.utils.translation import ugettext as _ +from django.utils.translation import gettext as _ from django.views.decorators.http import require_POST + from plinth import views from plinth.errors import ActionError from plinth.modules import samba, storage diff --git a/plinth/modules/searx/__init__.py b/plinth/modules/searx/__init__.py index be661a77c..1246d760c 100644 --- a/plinth/modules/searx/__init__.py +++ b/plinth/modules/searx/__init__.py @@ -5,7 +5,7 @@ FreedomBox app to configure Searx. import os -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/searx/forms.py b/plinth/modules/searx/forms.py index 87e2426f7..e4cddb966 100644 --- a/plinth/modules/searx/forms.py +++ b/plinth/modules/searx/forms.py @@ -4,7 +4,7 @@ Django form for configuring Searx. """ from django import forms -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ class SearxForm(forms.Form): diff --git a/plinth/modules/searx/manifest.py b/plinth/modules/searx/manifest.py index 09f55904c..d8db2f2df 100644 --- a/plinth/modules/searx/manifest.py +++ b/plinth/modules/searx/manifest.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: AGPL-3.0-or-later -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ clients = [{ 'name': _('Searx'), diff --git a/plinth/modules/searx/views.py b/plinth/modules/searx/views.py index 2aa212e0f..3a8e8f8ea 100644 --- a/plinth/modules/searx/views.py +++ b/plinth/modules/searx/views.py @@ -4,7 +4,7 @@ Django views for Searx. """ from django.contrib import messages -from django.utils.translation import ugettext as _ +from django.utils.translation import gettext as _ from plinth import actions, views from plinth.errors import ActionError diff --git a/plinth/modules/security/__init__.py b/plinth/modules/security/__init__.py index b67e0105e..4ccc42b6e 100644 --- a/plinth/modules/security/__init__.py +++ b/plinth/modules/security/__init__.py @@ -7,7 +7,7 @@ import re import subprocess from collections import defaultdict -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/security/forms.py b/plinth/modules/security/forms.py index a7e91c38d..84137b1fb 100644 --- a/plinth/modules/security/forms.py +++ b/plinth/modules/security/forms.py @@ -4,7 +4,7 @@ Forms for security module """ from django import forms -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ class SecurityForm(forms.Form): diff --git a/plinth/modules/security/views.py b/plinth/modules/security/views.py index 2270fb746..d284098df 100644 --- a/plinth/modules/security/views.py +++ b/plinth/modules/security/views.py @@ -5,7 +5,7 @@ Views for security module from django.contrib import messages from django.template.response import TemplateResponse -from django.utils.translation import ugettext as _ +from django.utils.translation import gettext as _ from plinth import action_utils, actions from plinth.modules import security diff --git a/plinth/modules/shaarli/__init__.py b/plinth/modules/shaarli/__init__.py index 4ec8707b9..b14a82125 100644 --- a/plinth/modules/shaarli/__init__.py +++ b/plinth/modules/shaarli/__init__.py @@ -3,7 +3,7 @@ FreedomBox app to configure Shaarli. """ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import app as app_module from plinth import frontpage, menu diff --git a/plinth/modules/shaarli/manifest.py b/plinth/modules/shaarli/manifest.py index 93fe4d885..b5f815796 100644 --- a/plinth/modules/shaarli/manifest.py +++ b/plinth/modules/shaarli/manifest.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: AGPL-3.0-or-later -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ clients = [{ 'name': _('Shaarli'), diff --git a/plinth/modules/shadowsocks/__init__.py b/plinth/modules/shadowsocks/__init__.py index 2a9934ef1..5a30e9bd3 100644 --- a/plinth/modules/shadowsocks/__init__.py +++ b/plinth/modules/shadowsocks/__init__.py @@ -4,7 +4,7 @@ FreedomBox app to configure Shadowsocks. """ from django.urls import reverse_lazy -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/shadowsocks/forms.py b/plinth/modules/shadowsocks/forms.py index 593ae647f..849c46fea 100644 --- a/plinth/modules/shadowsocks/forms.py +++ b/plinth/modules/shadowsocks/forms.py @@ -4,7 +4,7 @@ FreedomBox app for configuring Shadowsocks. """ from django import forms -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth.utils import format_lazy @@ -23,6 +23,7 @@ METHODS = [('chacha20-ietf-poly1305', class TrimmedCharField(forms.CharField): """Trim the contents of a CharField""" + def clean(self, value): """Clean and validate the field value""" if value: diff --git a/plinth/modules/shadowsocks/views.py b/plinth/modules/shadowsocks/views.py index 254e6e2c5..b1d8b74fd 100644 --- a/plinth/modules/shadowsocks/views.py +++ b/plinth/modules/shadowsocks/views.py @@ -6,7 +6,7 @@ FreedomBox app for configuring Shadowsocks. import json from django.contrib import messages -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions, views from plinth.errors import ActionError diff --git a/plinth/modules/sharing/__init__.py b/plinth/modules/sharing/__init__.py index 0640994d2..1ac5ee950 100644 --- a/plinth/modules/sharing/__init__.py +++ b/plinth/modules/sharing/__init__.py @@ -5,7 +5,7 @@ FreedomBox app to configure sharing. import json -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/sharing/forms.py b/plinth/modules/sharing/forms.py index 78f3ec1fd..b70782d12 100644 --- a/plinth/modules/sharing/forms.py +++ b/plinth/modules/sharing/forms.py @@ -5,7 +5,7 @@ Django forms for sharing app. from django import forms from django.core.exceptions import ValidationError -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth.modules import sharing from plinth.modules.users.components import UsersAndGroups diff --git a/plinth/modules/sharing/views.py b/plinth/modules/sharing/views.py index 074e4012a..1bca8f15f 100644 --- a/plinth/modules/sharing/views.py +++ b/plinth/modules/sharing/views.py @@ -8,7 +8,7 @@ from django.contrib.messages.views import SuccessMessageMixin from django.http import Http404 from django.shortcuts import redirect from django.urls import reverse_lazy -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from django.views.decorators.http import require_POST from django.views.generic import FormView, TemplateView diff --git a/plinth/modules/snapshot/__init__.py b/plinth/modules/snapshot/__init__.py index 52ca422d2..df3797811 100644 --- a/plinth/modules/snapshot/__init__.py +++ b/plinth/modules/snapshot/__init__.py @@ -7,7 +7,7 @@ import json import pathlib import augeas -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/snapshot/forms.py b/plinth/modules/snapshot/forms.py index 19be2ee98..5b5fda117 100644 --- a/plinth/modules/snapshot/forms.py +++ b/plinth/modules/snapshot/forms.py @@ -4,7 +4,7 @@ Forms for snapshot module. """ from django import forms -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ class SnapshotForm(forms.Form): diff --git a/plinth/modules/snapshot/views.py b/plinth/modules/snapshot/views.py index d68934d92..70a3ce678 100644 --- a/plinth/modules/snapshot/views.py +++ b/plinth/modules/snapshot/views.py @@ -11,8 +11,8 @@ from django.http import HttpResponseRedirect from django.shortcuts import redirect from django.template.response import TemplateResponse from django.urls import reverse, reverse_lazy -from django.utils.translation import ugettext as _ -from django.utils.translation import ugettext_lazy +from django.utils.translation import gettext as _ +from django.utils.translation import gettext_lazy from plinth import actions from plinth.errors import ActionError @@ -22,23 +22,21 @@ from plinth.modules import storage from . import get_configuration from .forms import SnapshotForm - # i18n for snapshot descriptions SNAPSHOT_DESCRIPTION_STRINGS = { - 'manually created': ugettext_lazy('manually created'), - 'timeline': ugettext_lazy('timeline'), - 'apt': ugettext_lazy('apt'), + 'manually created': gettext_lazy('manually created'), + 'timeline': gettext_lazy('timeline'), + 'apt': gettext_lazy('apt'), } - subsubmenu = [ { 'url': reverse_lazy('snapshot:index'), - 'text': ugettext_lazy('Configure') + 'text': gettext_lazy('Configure') }, { 'url': reverse_lazy('snapshot:manage'), - 'text': ugettext_lazy('Manage Snapshots') + 'text': gettext_lazy('Manage Snapshots') }, ] diff --git a/plinth/modules/ssh/__init__.py b/plinth/modules/ssh/__init__.py index 7010bb962..0e3d94b20 100644 --- a/plinth/modules/ssh/__init__.py +++ b/plinth/modules/ssh/__init__.py @@ -7,7 +7,7 @@ import pathlib import re import subprocess -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/ssh/forms.py b/plinth/modules/ssh/forms.py index dd6e1ccb2..fb4112f92 100644 --- a/plinth/modules/ssh/forms.py +++ b/plinth/modules/ssh/forms.py @@ -4,7 +4,7 @@ FreedomBox configuration form for OpenSSH server. """ from django import forms -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ class SSHServerForm(forms.Form): diff --git a/plinth/modules/ssh/views.py b/plinth/modules/ssh/views.py index 630eae126..ebddcf3d3 100644 --- a/plinth/modules/ssh/views.py +++ b/plinth/modules/ssh/views.py @@ -3,7 +3,7 @@ Views for the SSH module """ from django.contrib import messages -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth.modules import ssh diff --git a/plinth/modules/sso/__init__.py b/plinth/modules/sso/__init__.py index 0d2197472..a131d69de 100644 --- a/plinth/modules/sso/__init__.py +++ b/plinth/modules/sso/__init__.py @@ -3,7 +3,7 @@ FreedomBox app to configure Single Sign On services. """ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/storage/__init__.py b/plinth/modules/storage/__init__.py index 2f06563ce..472943a93 100644 --- a/plinth/modules/storage/__init__.py +++ b/plinth/modules/storage/__init__.py @@ -8,8 +8,8 @@ import logging import subprocess import psutil -from django.utils.translation import ugettext_lazy as _ -from django.utils.translation import ugettext_noop +from django.utils.translation import gettext_lazy as _ +from django.utils.translation import gettext_noop from plinth import actions from plinth import app as app_module @@ -306,21 +306,21 @@ def warn_about_low_disk_space(request): except KeyError: pass else: - message = ugettext_noop( + message = gettext_noop( # xgettext:no-python-format 'Low space on system partition: {percent_used}% used, ' '{free_space} free.') - title = ugettext_noop('Low disk space') + title = gettext_noop('Low disk space') data = { 'app_icon': 'fa-hdd-o', - 'app_name': 'translate:' + ugettext_noop('Storage'), + 'app_name': 'translate:' + gettext_noop('Storage'), 'percent_used': root_info['percent_used'], 'free_space': format_bytes(root_info['free_bytes']) } actions = [{ 'type': 'link', 'class': 'primary', - 'text': ugettext_noop('Go to {app_name}'), + 'text': gettext_noop('Go to {app_name}'), 'url': 'storage:index' }, { 'type': 'dismiss' @@ -338,13 +338,13 @@ def report_failing_drive(id, is_failing): id.encode()).decode() from plinth.notification import Notification - title = ugettext_noop('Disk failure imminent') - message = ugettext_noop( + title = gettext_noop('Disk failure imminent') + message = gettext_noop( 'Disk {id} is reporting that it is likely to fail in the near future. ' 'Copy any data while you still can and replace the drive.') data = { 'app_icon': 'fa-hdd-o', - 'app_name': 'translate:' + ugettext_noop('Storage'), + 'app_name': 'translate:' + gettext_noop('Storage'), 'id': id } note = Notification.update_or_create(id=notification_id, app_id='storage', diff --git a/plinth/modules/storage/forms.py b/plinth/modules/storage/forms.py index a5870a377..c40b6e82d 100644 --- a/plinth/modules/storage/forms.py +++ b/plinth/modules/storage/forms.py @@ -8,7 +8,7 @@ import os from django import forms from django.core.exceptions import ValidationError -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions, module_loader from plinth.modules import storage diff --git a/plinth/modules/storage/views.py b/plinth/modules/storage/views.py index d1294ca78..749c27e8d 100644 --- a/plinth/modules/storage/views.py +++ b/plinth/modules/storage/views.py @@ -11,7 +11,7 @@ from django.contrib import messages from django.shortcuts import redirect from django.template.response import TemplateResponse from django.urls import reverse -from django.utils.translation import ugettext as _ +from django.utils.translation import gettext as _ from django.views.decorators.http import require_POST from plinth import actions, views diff --git a/plinth/modules/syncthing/__init__.py b/plinth/modules/syncthing/__init__.py index d01878b3f..e99ac42a1 100644 --- a/plinth/modules/syncthing/__init__.py +++ b/plinth/modules/syncthing/__init__.py @@ -3,7 +3,7 @@ FreedomBox app to configure Syncthing. """ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/syncthing/manifest.py b/plinth/modules/syncthing/manifest.py index 565412612..0c65840bd 100644 --- a/plinth/modules/syncthing/manifest.py +++ b/plinth/modules/syncthing/manifest.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: AGPL-3.0-or-later -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth.clients import store_url diff --git a/plinth/modules/tahoe/__init__.py b/plinth/modules/tahoe/__init__.py index 50b5f7680..946634468 100644 --- a/plinth/modules/tahoe/__init__.py +++ b/plinth/modules/tahoe/__init__.py @@ -7,7 +7,7 @@ import json import os from django.urls import reverse_lazy -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/tor/__init__.py b/plinth/modules/tor/__init__.py index 80909be19..8af5c2d21 100644 --- a/plinth/modules/tor/__init__.py +++ b/plinth/modules/tor/__init__.py @@ -5,7 +5,7 @@ FreedomBox app to configure Tor. import json -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import action_utils, actions from plinth import app as app_module diff --git a/plinth/modules/tor/forms.py b/plinth/modules/tor/forms.py index bee709cda..08c67a38e 100644 --- a/plinth/modules/tor/forms.py +++ b/plinth/modules/tor/forms.py @@ -3,12 +3,13 @@ Forms for configuring Tor. """ +import re + from django import forms from django.core.exceptions import ValidationError from django.core.validators import validate_ipv46_address from django.forms import widgets -from django.utils.translation import ugettext_lazy as _ -import re +from django.utils.translation import gettext_lazy as _ from plinth import cfg from plinth.utils import format_lazy @@ -16,6 +17,7 @@ from plinth.utils import format_lazy class TrimmedCharField(forms.CharField): """Trim the contents of a CharField""" + def clean(self, value): """Clean and validate the field value""" if value: diff --git a/plinth/modules/tor/manifest.py b/plinth/modules/tor/manifest.py index 3377bf261..a26fbeac2 100644 --- a/plinth/modules/tor/manifest.py +++ b/plinth/modules/tor/manifest.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: AGPL-3.0-or-later -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth.clients import store_url diff --git a/plinth/modules/tor/views.py b/plinth/modules/tor/views.py index bdeb80cc5..9242c8932 100644 --- a/plinth/modules/tor/views.py +++ b/plinth/modules/tor/views.py @@ -4,7 +4,7 @@ FreedomBox app for configuring Tor. """ from django.contrib import messages from django.template.response import TemplateResponse -from django.utils.translation import ugettext as _ +from django.utils.translation import gettext as _ from plinth import actions from plinth.errors import ActionError diff --git a/plinth/modules/transmission/__init__.py b/plinth/modules/transmission/__init__.py index dc9785749..a37003436 100644 --- a/plinth/modules/transmission/__init__.py +++ b/plinth/modules/transmission/__init__.py @@ -5,7 +5,7 @@ FreedomBox app to configure Transmission server. import json -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/transmission/forms.py b/plinth/modules/transmission/forms.py index 20a1abf46..4bac74885 100644 --- a/plinth/modules/transmission/forms.py +++ b/plinth/modules/transmission/forms.py @@ -3,7 +3,7 @@ FreedomBox app for configuring Transmission. """ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth.modules.storage.forms import (DirectorySelectForm, DirectoryValidator) diff --git a/plinth/modules/transmission/manifest.py b/plinth/modules/transmission/manifest.py index a9adbd834..2fb13fb10 100644 --- a/plinth/modules/transmission/manifest.py +++ b/plinth/modules/transmission/manifest.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: AGPL-3.0-or-later -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ clients = [{ 'name': _('Transmission'), diff --git a/plinth/modules/transmission/views.py b/plinth/modules/transmission/views.py index d0372be2a..a26d907e9 100644 --- a/plinth/modules/transmission/views.py +++ b/plinth/modules/transmission/views.py @@ -8,7 +8,7 @@ import logging import socket from django.contrib import messages -from django.utils.translation import ugettext as _ +from django.utils.translation import gettext as _ from plinth import actions, views diff --git a/plinth/modules/ttrss/__init__.py b/plinth/modules/ttrss/__init__.py index fad1bae05..06e450f5e 100644 --- a/plinth/modules/ttrss/__init__.py +++ b/plinth/modules/ttrss/__init__.py @@ -4,7 +4,7 @@ FreedomBox app to configure Tiny Tiny RSS. """ from django.urls import reverse_lazy -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/ttrss/manifest.py b/plinth/modules/ttrss/manifest.py index 7e0229277..a5fd3d6f3 100644 --- a/plinth/modules/ttrss/manifest.py +++ b/plinth/modules/ttrss/manifest.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: AGPL-3.0-or-later -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth.clients import store_url diff --git a/plinth/modules/upgrades/__init__.py b/plinth/modules/upgrades/__init__.py index e6ca2d2aa..3bdcad2d7 100644 --- a/plinth/modules/upgrades/__init__.py +++ b/plinth/modules/upgrades/__init__.py @@ -9,8 +9,8 @@ import os import subprocess from aptsources import sourceslist -from django.utils.translation import ugettext_lazy as _ -from django.utils.translation import ugettext_noop +from django.utils.translation import gettext_lazy as _ +from django.utils.translation import gettext_noop import plinth from plinth import actions @@ -119,10 +119,10 @@ class UpgradesApp(app_module.App): data = { 'version': plinth.__version__, - 'app_name': 'translate:' + ugettext_noop('Updates'), + 'app_name': 'translate:' + gettext_noop('Updates'), 'app_icon': 'fa-refresh' } - title = ugettext_noop('FreedomBox Updated') + title = gettext_noop('FreedomBox Updated') note = Notification.update_or_create( id='upgrades-new-release', app_id='upgrades', severity='info', title=title, body_template='upgrades-new-release.html', data=data, @@ -207,8 +207,8 @@ def check_dist_upgrade(_): logger.info('Skip dist upgrade: --test is not set.') elif 'not-enough-free-space' in reason: logger.warning('Skip dist upgrade: Not enough free space in /.') - title = ugettext_noop('Could not start distribution update') - message = ugettext_noop( + title = gettext_noop('Could not start distribution update') + message = gettext_noop( 'There is not enough free space in the root partition to ' 'start the distribution update. Please ensure at least 5 GB ' 'is free. Distribution update will be retried after 24 hours,' @@ -220,8 +220,8 @@ def check_dist_upgrade(_): }], group='admin') elif 'started-dist-upgrade' in reason: logger.info('Started dist upgrade.') - title = ugettext_noop('Distribution update started') - message = ugettext_noop( + title = gettext_noop('Distribution update started') + message = gettext_noop( 'Started update to next stable release. This may take a long ' 'time to complete.') Notification.update_or_create(id='upgrades-dist-upgrade-started', diff --git a/plinth/modules/upgrades/forms.py b/plinth/modules/upgrades/forms.py index 667d2b8c0..c97688a43 100644 --- a/plinth/modules/upgrades/forms.py +++ b/plinth/modules/upgrades/forms.py @@ -4,7 +4,7 @@ Forms for configuring unattended-upgrades. """ from django import forms -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth.modules import upgrades diff --git a/plinth/modules/upgrades/views.py b/plinth/modules/upgrades/views.py index fc7d42a23..3d17ca3a7 100644 --- a/plinth/modules/upgrades/views.py +++ b/plinth/modules/upgrades/views.py @@ -9,7 +9,7 @@ from django.contrib import messages from django.http import HttpResponseRedirect from django.shortcuts import redirect from django.urls import reverse_lazy -from django.utils.translation import ugettext as _ +from django.utils.translation import gettext as _ from django.views.generic import TemplateView from django.views.generic.edit import FormView diff --git a/plinth/modules/users/__init__.py b/plinth/modules/users/__init__.py index 7eee772a4..897fb96a3 100644 --- a/plinth/modules/users/__init__.py +++ b/plinth/modules/users/__init__.py @@ -6,12 +6,13 @@ FreedomBox app to manage users. import grp import subprocess +from django.utils.text import format_lazy +from django.utils.translation import gettext_lazy as _ + from plinth import actions from plinth import app as app_module from plinth import cfg, menu from plinth.daemon import Daemon -from django.utils.text import format_lazy -from django.utils.translation import ugettext_lazy as _, ugettext_lazy from .components import UsersAndGroups @@ -110,7 +111,7 @@ def _diagnose_ldap_entry(search_item): except subprocess.CalledProcessError: pass - template = ugettext_lazy('Check LDAP entry "{search_item}"') + template = _('Check LDAP entry "{search_item}"') testname = format_lazy(template, search_item=search_item) return [testname, result] diff --git a/plinth/modules/users/forms.py b/plinth/modules/users/forms.py index 2d6e3e4ff..3c2333685 100644 --- a/plinth/modules/users/forms.py +++ b/plinth/modules/users/forms.py @@ -11,8 +11,8 @@ from django.contrib.auth.models import Group, User from django.core import validators from django.core.exceptions import ValidationError from django.utils.deconstruct import deconstructible -from django.utils.translation import ugettext as _ -from django.utils.translation import ugettext_lazy +from django.utils.translation import gettext as _ +from django.utils.translation import gettext_lazy import plinth.forms from plinth import actions @@ -61,22 +61,22 @@ class UsernameValidator(validators.RegexValidator): """ regex = r'^[\w.@][\w.@-]+\Z' - message = ugettext_lazy('Enter a valid username.') + message = gettext_lazy('Enter a valid username.') flags = re.ASCII USERNAME_FIELD = forms.CharField( - label=ugettext_lazy('Username'), max_length=150, + label=gettext_lazy('Username'), max_length=150, validators=[UsernameValidator()], - help_text=ugettext_lazy('Required. 150 characters or fewer. English ' - 'letters, digits and @/./-/_ only.')) + help_text=gettext_lazy('Required. 150 characters or fewer. English ' + 'letters, digits and @/./-/_ only.')) class PasswordConfirmForm(forms.Form): """Password confirmation form.""" confirm_password = forms.CharField( widget=forms.PasswordInput, - label=ugettext_lazy('Authorization Password'), help_text=ugettext_lazy( + label=gettext_lazy('Authorization Password'), help_text=gettext_lazy( 'Enter your current password to authorize account modifications.')) def clean_confirm_password(self): @@ -100,8 +100,8 @@ class CreateUserForm(ValidNewUsernameCheckMixin, username = USERNAME_FIELD groups = forms.MultipleChoiceField( choices=UsersAndGroups.get_group_choices, - label=ugettext_lazy('Permissions'), required=False, - widget=plinth.forms.CheckboxSelectMultiple, help_text=ugettext_lazy( + label=gettext_lazy('Permissions'), required=False, + widget=plinth.forms.CheckboxSelectMultiple, help_text=gettext_lazy( 'Select which services should be available to the new ' 'user. The user will be able to log in to services that ' 'support single sign-on through LDAP, if they are in the ' @@ -174,8 +174,8 @@ class UserUpdateForm(ValidNewUsernameCheckMixin, PasswordConfirmForm, """When user info is changed, also updates LDAP user.""" username = USERNAME_FIELD ssh_keys = forms.CharField( - label=ugettext_lazy('Authorized SSH Keys'), required=False, - widget=forms.Textarea, help_text=ugettext_lazy( + label=gettext_lazy('Authorized SSH Keys'), required=False, + widget=forms.Textarea, help_text=gettext_lazy( 'Setting an SSH public key will allow this user to ' 'securely log in to the system without using a ' 'password. You may enter multiple keys, one on each ' diff --git a/plinth/modules/users/views.py b/plinth/modules/users/views.py index f11b55d55..c7cb8bfc0 100644 --- a/plinth/modules/users/views.py +++ b/plinth/modules/users/views.py @@ -8,8 +8,8 @@ from django.contrib.messages.views import SuccessMessageMixin from django.core.exceptions import PermissionDenied from django.http import HttpResponseRedirect from django.urls import reverse, reverse_lazy -from django.utils.translation import ugettext as _ -from django.utils.translation import ugettext_lazy +from django.utils.translation import gettext as _ +from django.utils.translation import gettext_lazy from django.views.generic.edit import (CreateView, DeleteView, FormView, UpdateView) @@ -39,9 +39,9 @@ class UserCreate(ContextMixin, SuccessMessageMixin, CreateView): form_class = CreateUserForm template_name = 'users_create.html' model = User - success_message = ugettext_lazy('User %(username)s created.') + success_message = gettext_lazy('User %(username)s created.') success_url = reverse_lazy('users:create') - title = ugettext_lazy('Create User') + title = gettext_lazy('Create User') def get_form_kwargs(self): """Make the request object available to the form.""" @@ -58,7 +58,7 @@ class UserList(AppView, ContextMixin, django.views.generic.ListView): """View to list users.""" model = User template_name = 'users_list.html' - title = ugettext_lazy('Users') + title = gettext_lazy('Users') app_id = 'users' def get_context_data(self, *args, **kwargs): @@ -73,8 +73,8 @@ class UserUpdate(ContextMixin, SuccessMessageMixin, UpdateView): model = User form_class = UserUpdateForm slug_field = 'username' - success_message = ugettext_lazy('User %(username)s updated.') - title = ugettext_lazy('Edit User') + success_message = gettext_lazy('User %(username)s updated.') + title = gettext_lazy('Edit User') def dispatch(self, request, *args, **kwargs): """Handle a request and return a HTTP response.""" @@ -119,7 +119,7 @@ class UserDelete(ContextMixin, DeleteView): model = User slug_field = 'username' success_url = reverse_lazy('users:index') - title = ugettext_lazy('Delete User') + title = gettext_lazy('Delete User') def delete(self, *args, **kwargs): """Set the success message of deleting the user. @@ -145,8 +145,8 @@ class UserChangePassword(ContextMixin, SuccessMessageMixin, FormView): """View to change user password.""" template_name = 'users_change_password.html' form_class = UserChangePasswordForm - title = ugettext_lazy('Change Password') - success_message = ugettext_lazy('Password changed successfully.') + title = gettext_lazy('Change Password') + success_message = gettext_lazy('Password changed successfully.') def dispatch(self, request, *args, **kwargs): """Handle a request and return a HTTP response.""" diff --git a/plinth/modules/wireguard/__init__.py b/plinth/modules/wireguard/__init__.py index c3c130edd..a55a589ce 100644 --- a/plinth/modules/wireguard/__init__.py +++ b/plinth/modules/wireguard/__init__.py @@ -4,7 +4,7 @@ FreedomBox app for wireguard. """ from django.urls import reverse_lazy -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import app as app_module from plinth import cfg, frontpage, menu diff --git a/plinth/modules/wireguard/forms.py b/plinth/modules/wireguard/forms.py index 2c9079e49..baa205599 100644 --- a/plinth/modules/wireguard/forms.py +++ b/plinth/modules/wireguard/forms.py @@ -9,7 +9,7 @@ import binascii from django import forms from django.core.exceptions import ValidationError from django.core.validators import validate_ipv4_address -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ KEY_LENGTH = 32 diff --git a/plinth/modules/wireguard/manifest.py b/plinth/modules/wireguard/manifest.py index 8ac7a8cee..6c1be52b8 100644 --- a/plinth/modules/wireguard/manifest.py +++ b/plinth/modules/wireguard/manifest.py @@ -3,7 +3,7 @@ Application manifest for WireGuard. """ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth.clients import store_url diff --git a/plinth/modules/wireguard/views.py b/plinth/modules/wireguard/views.py index 1a4aabc31..bac527a7f 100644 --- a/plinth/modules/wireguard/views.py +++ b/plinth/modules/wireguard/views.py @@ -10,7 +10,7 @@ from django.contrib.messages.views import SuccessMessageMixin from django.http import Http404 from django.shortcuts import redirect from django.urls import reverse_lazy -from django.utils.translation import ugettext as _ +from django.utils.translation import gettext as _ from django.views.generic import FormView, TemplateView from plinth import network diff --git a/plinth/modules/wordpress/__init__.py b/plinth/modules/wordpress/__init__.py index 35f64de57..d918fd592 100644 --- a/plinth/modules/wordpress/__init__.py +++ b/plinth/modules/wordpress/__init__.py @@ -3,7 +3,8 @@ FreedomBox app to configure WordPress. """ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ + from plinth import actions from plinth import app as app_module from plinth import cfg, frontpage, menu diff --git a/plinth/modules/wordpress/forms.py b/plinth/modules/wordpress/forms.py index 8c6fe3479..c49f00f61 100644 --- a/plinth/modules/wordpress/forms.py +++ b/plinth/modules/wordpress/forms.py @@ -4,7 +4,7 @@ FreedomBox app for configuring WordPress. """ from django import forms -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ class WordPressForm(forms.Form): diff --git a/plinth/modules/wordpress/manifest.py b/plinth/modules/wordpress/manifest.py index dd16bc2bd..c46899e83 100644 --- a/plinth/modules/wordpress/manifest.py +++ b/plinth/modules/wordpress/manifest.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: AGPL-3.0-or-later -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ clients = [{ 'name': _('WordPress'), diff --git a/plinth/modules/wordpress/views.py b/plinth/modules/wordpress/views.py index ef341faf3..1387a05dd 100644 --- a/plinth/modules/wordpress/views.py +++ b/plinth/modules/wordpress/views.py @@ -6,7 +6,8 @@ FreedomBox app for configuring WordPress. import pathlib from django.contrib import messages -from django.utils.translation import ugettext as _ +from django.utils.translation import gettext as _ + from plinth import actions, views from . import PUBLIC_ACCESS_FILE diff --git a/plinth/modules/zoph/__init__.py b/plinth/modules/zoph/__init__.py index 60a9ec00d..f65754e64 100644 --- a/plinth/modules/zoph/__init__.py +++ b/plinth/modules/zoph/__init__.py @@ -6,7 +6,7 @@ FreedomBox app to configure Zoph web application import json import logging -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth import actions from plinth import app as app_module diff --git a/plinth/modules/zoph/forms.py b/plinth/modules/zoph/forms.py index 11a149e88..c2cf91a21 100644 --- a/plinth/modules/zoph/forms.py +++ b/plinth/modules/zoph/forms.py @@ -4,7 +4,7 @@ FreedomBox app for configuring Zoph. """ from django import forms -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ class ZophForm(forms.Form): diff --git a/plinth/modules/zoph/manifest.py b/plinth/modules/zoph/manifest.py index bf6ea5268..f9a5f52d7 100644 --- a/plinth/modules/zoph/manifest.py +++ b/plinth/modules/zoph/manifest.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: AGPL-3.0-or-later -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ clients = [{ 'name': _('Zoph'), diff --git a/plinth/modules/zoph/views.py b/plinth/modules/zoph/views.py index 067179853..bb7ddc972 100644 --- a/plinth/modules/zoph/views.py +++ b/plinth/modules/zoph/views.py @@ -9,7 +9,7 @@ from django.contrib import messages from django.http import HttpResponseRedirect from django.shortcuts import redirect from django.urls import reverse_lazy -from django.utils.translation import ugettext as _ +from django.utils.translation import gettext as _ from django.views.generic import TemplateView from plinth import views diff --git a/plinth/network.py b/plinth/network.py index 1c07efec9..e4c8d1222 100644 --- a/plinth/network.py +++ b/plinth/network.py @@ -10,7 +10,7 @@ import struct import time import uuid -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from plinth.utils import import_from_gi diff --git a/plinth/notification.py b/plinth/notification.py index 77004ada0..9917e33e1 100644 --- a/plinth/notification.py +++ b/plinth/notification.py @@ -10,7 +10,7 @@ from django.core.exceptions import ValidationError from django.db.models import Q from django.template.exceptions import TemplateDoesNotExist from django.template.response import SimpleTemplateResponse -from django.utils.translation import ugettext +from django.utils.translation import gettext from plinth import cfg @@ -283,7 +283,7 @@ class Notification(models.StoredNotification): if not string: return None - string = ugettext(string) + string = gettext(string) try: string = str(string) if data: @@ -321,7 +321,7 @@ class Notification(models.StoredNotification): if not template: return None - context = dict(data, box_name=ugettext(cfg.box_name), request=request) + context = dict(data, box_name=gettext(cfg.box_name), request=request) try: return SimpleTemplateResponse(template, context).render() except TemplateDoesNotExist: diff --git a/plinth/package.py b/plinth/package.py index f354568ef..c6221a0c9 100644 --- a/plinth/package.py +++ b/plinth/package.py @@ -8,8 +8,8 @@ import logging import subprocess import threading -from django.utils.translation import ugettext as _ -from django.utils.translation import ugettext_lazy +from django.utils.translation import gettext as _ +from django.utils.translation import gettext_lazy from plinth import actions from plinth.utils import format_lazy @@ -155,13 +155,13 @@ class Transaction(object): status_map = { 'pmstatus': - ugettext_lazy('installing'), + gettext_lazy('installing'), 'dlstatus': - ugettext_lazy('downloading'), + gettext_lazy('downloading'), 'media-change': - ugettext_lazy('media change'), + gettext_lazy('media change'), 'pmconffile': - format_lazy(ugettext_lazy('configuration file: {file}'), + format_lazy(gettext_lazy('configuration file: {file}'), file=parts[1]), } self.status_string = status_map.get(parts[0], '') diff --git a/plinth/tests/test_notification.py b/plinth/tests/test_notification.py index e7ba76582..6af90bc7f 100644 --- a/plinth/tests/test_notification.py +++ b/plinth/tests/test_notification.py @@ -334,8 +334,8 @@ def test_list_filter_user_and_group(note, user): assert list(Notification.list(user=user)) == [note] -@patch('plinth.notification.ugettext') -def test_display_context(ugettext, note, user, rf): +@patch('plinth.notification.gettext') +def test_display_context(gettext, note, user, rf): """Test display context for a notification.""" request = rf.get('/plinth/help/about/') @@ -361,7 +361,7 @@ def test_display_context(ugettext, note, user, rf): 'text': 'translated Test text', 'url': 'Test url' }] - ugettext.side_effect = lambda string: 'translated ' + string + gettext.side_effect = lambda string: 'translated ' + string note.severity = 'error' note.title = 'Test Title {test-key1}' diff --git a/plinth/views.py b/plinth/views.py index de64c473f..54603236c 100644 --- a/plinth/views.py +++ b/plinth/views.py @@ -13,7 +13,7 @@ from django.http import Http404, HttpResponseBadRequest, HttpResponseRedirect from django.template.response import TemplateResponse from django.urls import reverse from django.utils.html import escape -from django.utils.translation import ugettext as _ +from django.utils.translation import gettext as _ from django.views.generic import TemplateView from django.views.generic.edit import FormView from stronghold.decorators import public