mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-09-19 04:59:01 +00:00
Update messages for simplicity/consistency/grammer
- Closes #375 and #380. - More use of configurable brand name.
This commit is contained in:
parent
572e68dc36
commit
15312fe595
@ -13,9 +13,9 @@ personal servers running free software for private, personal
|
|||||||
communications. It is a networking appliance designed to allow
|
communications. It is a networking appliance designed to allow
|
||||||
interfacing with the rest of the Internet under conditions of
|
interfacing with the rest of the Internet under conditions of
|
||||||
protected privacy and data security. It hosts applications such as
|
protected privacy and data security. It hosts applications such as
|
||||||
blog, wiki, website, social network, email, web proxy and a Tor relay
|
blog, wiki, website, social network, email, web proxy and a Tor relay,
|
||||||
on a device that can replace your Wi-Fi router so that your data stays
|
on a device that can replace your Wi-Fi router, so that your data
|
||||||
with you.
|
stays with you.
|
||||||
|
|
||||||
Plinth is a web interface to administer the functions of the
|
Plinth is a web interface to administer the functions of the
|
||||||
FreedomBox. It is extensible and provides various applications of
|
FreedomBox. It is extensible and provides various applications of
|
||||||
|
|||||||
@ -27,11 +27,11 @@
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
{% blocktrans trimmed %}
|
{% blocktrans trimmed %}
|
||||||
Service discovery allows other machines on the network to
|
Service discovery allows other devices on the network to
|
||||||
discover your FreedomBox and services running on it. It also
|
discover your {{ box_name }} and services running on it. It
|
||||||
allows FreedomBox to discover other machines and services
|
also allows {{ box_name }} to discover other devices and
|
||||||
running on your local network. Service discovery is not
|
services running on your local network. Service discovery is
|
||||||
essential and works only on internal networks. It may be
|
not essential and works only on internal networks. It may be
|
||||||
disabled to improve security especially when connecting to a
|
disabled to improve security especially when connecting to a
|
||||||
hostile local network.
|
hostile local network.
|
||||||
{% endblocktrans %}
|
{% endblocktrans %}
|
||||||
|
|||||||
@ -38,6 +38,7 @@ from plinth.modules.names import SERVICES
|
|||||||
from plinth.signals import pre_hostname_change, post_hostname_change
|
from plinth.signals import pre_hostname_change, post_hostname_change
|
||||||
from plinth.signals import domainname_change
|
from plinth.signals import domainname_change
|
||||||
from plinth.signals import domain_added, domain_removed
|
from plinth.signals import domain_added, domain_removed
|
||||||
|
from plinth.utils import format_lazy
|
||||||
|
|
||||||
|
|
||||||
HOSTNAME_REGEX = r'^[a-zA-Z0-9]([-a-zA-Z0-9]{,61}[a-zA-Z0-9])?$'
|
HOSTNAME_REGEX = r'^[a-zA-Z0-9]([-a-zA-Z0-9]{,61}[a-zA-Z0-9])?$'
|
||||||
@ -92,12 +93,12 @@ class ConfigurationForm(forms.Form):
|
|||||||
# https://tools.ietf.org/html/rfc2181#section-11
|
# https://tools.ietf.org/html/rfc2181#section-11
|
||||||
hostname = TrimmedCharField(
|
hostname = TrimmedCharField(
|
||||||
label=ugettext_lazy('Hostname'),
|
label=ugettext_lazy('Hostname'),
|
||||||
help_text=\
|
help_text=format_lazy(ugettext_lazy(
|
||||||
ugettext_lazy('Hostname is the local name by which other machines on '
|
'Hostname is the local name by which other devices on the local '
|
||||||
'the local network reach your machine. It must start '
|
'network can reach your {box_name}. It must start and end with '
|
||||||
'and end with an alphabet or a digit and have as '
|
'an alphabet or a digit and have as interior characters only '
|
||||||
'interior characters only alphabets, digits and '
|
'alphabets, digits and hyphens. Total length must be 63 '
|
||||||
'hyphens. Total length must be 63 characters or less.'),
|
'characters or less.'), box_name=ugettext_lazy(cfg.box_name)),
|
||||||
validators=[
|
validators=[
|
||||||
validators.RegexValidator(
|
validators.RegexValidator(
|
||||||
HOSTNAME_REGEX,
|
HOSTNAME_REGEX,
|
||||||
@ -105,14 +106,14 @@ class ConfigurationForm(forms.Form):
|
|||||||
|
|
||||||
domainname = TrimmedCharField(
|
domainname = TrimmedCharField(
|
||||||
label=ugettext_lazy('Domain Name'),
|
label=ugettext_lazy('Domain Name'),
|
||||||
help_text=\
|
help_text=format_lazy(ugettext_lazy(
|
||||||
ugettext_lazy('Domain name is the global name by which other machines '
|
'Domain name is the global name by which other devices on the '
|
||||||
'on the Internet can reach you. It must consist of '
|
'Internet can reach your {box_name}. It must consist of labels '
|
||||||
'labels separated by dots. Each label must start and '
|
'separated by dots. Each label must start and end with an '
|
||||||
'end with an alphabet or a digit and have as interior '
|
'alphabet or a digit and have as interior characters only '
|
||||||
'characters only alphabets, digits and hyphens. Length '
|
'alphabets, digits and hyphens. Length of each label must be 63 '
|
||||||
'of each label must be 63 characters or less. Total '
|
'characters or less. Total length of domain name must be 253 '
|
||||||
'length of domain name must be 253 characters or less.'),
|
'characters or less.'), box_name=ugettext_lazy(cfg.box_name)),
|
||||||
required=False,
|
required=False,
|
||||||
validators=[
|
validators=[
|
||||||
validators.RegexValidator(
|
validators.RegexValidator(
|
||||||
@ -123,8 +124,7 @@ class ConfigurationForm(forms.Form):
|
|||||||
language = forms.ChoiceField(
|
language = forms.ChoiceField(
|
||||||
label=ugettext_lazy('Language'),
|
label=ugettext_lazy('Language'),
|
||||||
help_text=\
|
help_text=\
|
||||||
ugettext_lazy('Language for this FreedomBox web administration '
|
ugettext_lazy('Language for this web administration interface'),
|
||||||
'interface'),
|
|
||||||
required=False,
|
required=False,
|
||||||
choices=settings.LANGUAGES)
|
choices=settings.LANGUAGES)
|
||||||
|
|
||||||
|
|||||||
@ -26,6 +26,7 @@ import logging
|
|||||||
from plinth import actions
|
from plinth import actions
|
||||||
from plinth import cfg
|
from plinth import cfg
|
||||||
from plinth import package
|
from plinth import package
|
||||||
|
from plinth.utils import format_lazy
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
EMPTYSTRING = 'none'
|
EMPTYSTRING = 'none'
|
||||||
@ -78,9 +79,10 @@ class ConfigureForm(forms.Form):
|
|||||||
help_server = \
|
help_server = \
|
||||||
ugettext_lazy('Please do not enter a URL here (like '
|
ugettext_lazy('Please do not enter a URL here (like '
|
||||||
'"https://example.com/") but only the hostname of the '
|
'"https://example.com/") but only the hostname of the '
|
||||||
'GnuDIP server (like "example.pcom").')
|
'GnuDIP server (like "example.com").')
|
||||||
help_domain = \
|
help_domain = format_lazy(
|
||||||
ugettext_lazy('The public domain name you want use to reach your box.')
|
ugettext_lazy('The public domain name you want use to reach your '
|
||||||
|
'{box_name}.'), box_name=ugettext_lazy(cfg.box_name))
|
||||||
help_disable_ssl = \
|
help_disable_ssl = \
|
||||||
ugettext_lazy('Use this option if your provider uses self signed '
|
ugettext_lazy('Use this option if your provider uses self signed '
|
||||||
'certificates.')
|
'certificates.')
|
||||||
@ -90,13 +92,14 @@ class ConfigureForm(forms.Form):
|
|||||||
help_secret = \
|
help_secret = \
|
||||||
ugettext_lazy('Leave this field empty if you want to keep your '
|
ugettext_lazy('Leave this field empty if you want to keep your '
|
||||||
'previous configured password.')
|
'previous configured password.')
|
||||||
help_ip_url = \
|
help_ip_url = format_lazy(
|
||||||
ugettext_lazy('Optional Value. If your FreedomBox is not connected '
|
ugettext_lazy('Optional Value. If your {box_name} is not connected '
|
||||||
'directly to the Internet (i.e. connected to a NAT '
|
'directly to the Internet (i.e. connected to a NAT '
|
||||||
'router) this URL is used to figure out the real '
|
'router) this URL is used to figure out the real '
|
||||||
'Internet IP. The URL should simply return the IP where'
|
'Internet IP. The URL should simply return the IP where '
|
||||||
'the client comes from. Example: '
|
'the client comes from (example: '
|
||||||
'http://myip.datasystems24.de')
|
'http://myip.datasystems24.de).'),
|
||||||
|
box_name=ugettext_lazy(cfg.box_name))
|
||||||
help_user = \
|
help_user = \
|
||||||
ugettext_lazy('You should have been requested to select a username '
|
ugettext_lazy('You should have been requested to select a username '
|
||||||
'when you created the account.')
|
'when you created the account.')
|
||||||
@ -129,11 +132,11 @@ class ConfigureForm(forms.Form):
|
|||||||
help_text=help_update_url)
|
help_text=help_update_url)
|
||||||
|
|
||||||
disable_SSL_cert_check = forms.BooleanField(
|
disable_SSL_cert_check = forms.BooleanField(
|
||||||
label=ugettext_lazy('accept all SSL certificates'),
|
label=ugettext_lazy('Accept all SSL certificates'),
|
||||||
help_text=help_disable_ssl, required=False)
|
help_text=help_disable_ssl, required=False)
|
||||||
|
|
||||||
use_http_basic_auth = forms.BooleanField(
|
use_http_basic_auth = forms.BooleanField(
|
||||||
label=ugettext_lazy('use HTTP basic authentication'),
|
label=ugettext_lazy('Use HTTP basic authentication'),
|
||||||
help_text=help_http_auth, required=False)
|
help_text=help_http_auth, required=False)
|
||||||
|
|
||||||
dynamicdns_domain = TrimmedCharField(
|
dynamicdns_domain = TrimmedCharField(
|
||||||
@ -151,7 +154,7 @@ class ConfigureForm(forms.Form):
|
|||||||
label=ugettext_lazy('Password'), widget=forms.PasswordInput(),
|
label=ugettext_lazy('Password'), widget=forms.PasswordInput(),
|
||||||
required=False, help_text=help_secret)
|
required=False, help_text=help_secret)
|
||||||
|
|
||||||
showpw = forms.BooleanField(label=ugettext_lazy('show password'),
|
showpw = forms.BooleanField(label=ugettext_lazy('Show password'),
|
||||||
required=False)
|
required=False)
|
||||||
|
|
||||||
dynamicdns_ipurl = TrimmedCharField(
|
dynamicdns_ipurl = TrimmedCharField(
|
||||||
|
|||||||
@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<h2>{% trans "DynamicDNS client" %}</h2>
|
<h2>{% trans "Dynamic DNS Client" %}</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
{% blocktrans trimmed %}
|
{% blocktrans trimmed %}
|
||||||
@ -41,7 +41,7 @@
|
|||||||
public IP address to an
|
public IP address to an
|
||||||
<a href='http://gnudip2.sourceforge.net/' target='_blank'> gnudip </a>
|
<a href='http://gnudip2.sourceforge.net/' target='_blank'> gnudip </a>
|
||||||
server. Afterwards the Server will assign your DNS name with the
|
server. Afterwards the Server will assign your DNS name with the
|
||||||
new IP and if someone from the internet asks for your DNS name
|
new IP and if someone from the Internet asks for your DNS name
|
||||||
he will get your current IP answered.
|
he will get your current IP answered.
|
||||||
{% endblocktrans %}
|
{% endblocktrans %}
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
@ -32,14 +32,14 @@
|
|||||||
{% endblocktrans %}
|
{% endblocktrans %}
|
||||||
{% else %}
|
{% else %}
|
||||||
{% if no_nat %}
|
{% if no_nat %}
|
||||||
{% trans "Direct connection to the internet." %}
|
{% trans "Direct connection to the Internet." %}
|
||||||
{% else %}
|
{% else %}
|
||||||
{% blocktrans trimmed %}
|
{% blocktrans trimmed %}
|
||||||
Behind NAT, this means that dynamic DNS service will poll
|
Behind NAT. This means that Dynamic DNS service will poll
|
||||||
the "IP check URL" for changes (we need the "IP check URL"
|
the "IP check URL" for changes (the "IP check URL" entry is
|
||||||
for this reason - otherwise we will not detect IP changes).
|
needed for this - otherwise IP changes will not be
|
||||||
It may take up to {{ timer }} minutes until we update your
|
detected). In case the WAN IP changes, it may take up to
|
||||||
DNS entry in case of WAN IP change.
|
{{ timer }} minutes until your DNS entry is updated.
|
||||||
{% endblocktrans %}
|
{% endblocktrans %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@ -25,15 +25,15 @@
|
|||||||
<h2>{{ title }}</h2>
|
<h2>{{ title }}</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Firewall is a network security system that controls the incoming
|
|
||||||
and outgoing network traffic on your {{ box_name }}. Keeping a
|
|
||||||
{% blocktrans trimmed %}
|
{% blocktrans trimmed %}
|
||||||
|
Firewall is a security system that controls the incoming and
|
||||||
|
outgoing network traffic on your {{ box_name }}. Keeping a
|
||||||
firewall enabled and properly configured reduces risk of
|
firewall enabled and properly configured reduces risk of
|
||||||
security threat from the Internet.
|
security threat from the Internet.
|
||||||
{% endblocktrans %}
|
{% endblocktrans %}
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>{% trans "The following is the current status:" %}</p>
|
<p>{% trans "Current status:" %}</p>
|
||||||
|
|
||||||
{% if firewall_status == 'not_running' %}
|
{% if firewall_status == 'not_running' %}
|
||||||
|
|
||||||
@ -102,8 +102,8 @@
|
|||||||
<em>
|
<em>
|
||||||
{% blocktrans trimmed %}
|
{% blocktrans trimmed %}
|
||||||
The operation of the firewall is automatic. When you enable
|
The operation of the firewall is automatic. When you enable
|
||||||
a service it is automatically permitted in the firewall and
|
a service it is also permitted in the firewall and when you
|
||||||
you disable a service is automatically disabled in the firewall.
|
disable a service it is also disabled in the firewall.
|
||||||
{% endblocktrans %}
|
{% endblocktrans %}
|
||||||
</em>
|
</em>
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
@ -31,8 +31,8 @@
|
|||||||
<p>
|
<p>
|
||||||
{% blocktrans trimmed %}
|
{% blocktrans trimmed %}
|
||||||
{{ box_name }} setup is now complete. To make your {{ box_name }}
|
{{ box_name }} setup is now complete. To make your {{ box_name }}
|
||||||
functional, you need some applications. Applications will be
|
functional, you need some applications. They will be installed
|
||||||
installed the first time you access them.
|
the first time you access them.
|
||||||
{% endblocktrans %}
|
{% endblocktrans %}
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|||||||
@ -28,14 +28,14 @@
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
{% blocktrans trimmed %}
|
{% blocktrans trimmed %}
|
||||||
FreedomBox is a community project to develop, design and promote
|
{{ box_name }} is a community project to develop, design and
|
||||||
personal servers running free software for private, personal
|
promote personal servers running free software for private,
|
||||||
communications. It is a networking appliance designed to allow
|
personal communications. It is a networking appliance designed
|
||||||
interfacing with the rest of the Internet under conditions of
|
to allow interfacing with the rest of the Internet under
|
||||||
protected privacy and data security. It hosts applications such
|
conditions of protected privacy and data security. It hosts
|
||||||
as blog, wiki, website, social network, email, web proxy and a
|
applications such as blog, wiki, website, social network, email,
|
||||||
Tor relay on a device that can replace your Wi-Fi router so that
|
web proxy and a Tor relay, on a device that can replace your
|
||||||
your data stays with you.
|
Wi-Fi router, so that your data stays with you.
|
||||||
{% endblocktrans %}
|
{% endblocktrans %}
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|||||||
@ -35,12 +35,12 @@ service = None
|
|||||||
def init():
|
def init():
|
||||||
"""Initialize the ikiwiki module."""
|
"""Initialize the ikiwiki module."""
|
||||||
menu = cfg.main_menu.get('apps:index')
|
menu = cfg.main_menu.get('apps:index')
|
||||||
menu.add_urlname(_('Wiki & Blog (Ikiwiki)'), 'glyphicon-edit',
|
menu.add_urlname(_('Wiki and Blog (ikiwiki)'), 'glyphicon-edit',
|
||||||
'ikiwiki:index', 1100)
|
'ikiwiki:index', 1100)
|
||||||
|
|
||||||
global service
|
global service
|
||||||
service = service_module.Service(
|
service = service_module.Service(
|
||||||
'ikiwiki', _('Ikiwiki wikis and blogs'), ['http', 'https'],
|
'ikiwiki', _('ikiwiki wikis and blogs'), ['http', 'https'],
|
||||||
is_external=True, enabled=is_enabled())
|
is_external=True, enabled=is_enabled())
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -26,7 +26,7 @@ from django.utils.translation import ugettext_lazy as _
|
|||||||
class IkiwikiForm(forms.Form):
|
class IkiwikiForm(forms.Form):
|
||||||
"""ikiwiki configuration form."""
|
"""ikiwiki configuration form."""
|
||||||
enabled = forms.BooleanField(
|
enabled = forms.BooleanField(
|
||||||
label=_('Enable Ikiwiki'),
|
label=_('Enable ikiwiki'),
|
||||||
required=False)
|
required=False)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -25,14 +25,15 @@
|
|||||||
|
|
||||||
<h3>
|
<h3>
|
||||||
{% blocktrans trimmed %}
|
{% blocktrans trimmed %}
|
||||||
Delete Wiki/Blog <em>{{ name }}</em>
|
Delete Wiki or Blog <em>{{ name }}</em>
|
||||||
{% endblocktrans %}
|
{% endblocktrans %}
|
||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
{% blocktrans trimmed %}
|
{% blocktrans trimmed %}
|
||||||
This action will remove all the posts, pages and comments
|
This action will remove all the posts, pages and comments
|
||||||
including revision history. Delete this wiki/blog permanently?
|
including revision history. Delete this wiki or blog
|
||||||
|
permanently?
|
||||||
{% endblocktrans %}
|
{% endblocktrans %}
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|||||||
@ -41,7 +41,7 @@ subsubmenu = [{'url': reverse_lazy('ikiwiki:index'),
|
|||||||
|
|
||||||
|
|
||||||
def on_install():
|
def on_install():
|
||||||
"""Enable Ikiwiki on install."""
|
"""Enable ikiwiki on install."""
|
||||||
actions.superuser_run('ikiwiki', ['setup'])
|
actions.superuser_run('ikiwiki', ['setup'])
|
||||||
ikiwiki.service.notify_enabled(None, True)
|
ikiwiki.service.notify_enabled(None, True)
|
||||||
|
|
||||||
@ -70,7 +70,7 @@ def index(request):
|
|||||||
form = IkiwikiForm(initial=status, prefix='ikiwiki')
|
form = IkiwikiForm(initial=status, prefix='ikiwiki')
|
||||||
|
|
||||||
return TemplateResponse(request, 'ikiwiki.html',
|
return TemplateResponse(request, 'ikiwiki.html',
|
||||||
{'title': _('Wiki & Blog'),
|
{'title': _('Wiki and Blog'),
|
||||||
'status': status,
|
'status': status,
|
||||||
'form': form,
|
'form': form,
|
||||||
'subsubmenu': subsubmenu})
|
'subsubmenu': subsubmenu})
|
||||||
@ -129,7 +129,7 @@ def create(request):
|
|||||||
form = IkiwikiCreateForm(prefix='ikiwiki')
|
form = IkiwikiCreateForm(prefix='ikiwiki')
|
||||||
|
|
||||||
return TemplateResponse(request, 'ikiwiki_create.html',
|
return TemplateResponse(request, 'ikiwiki_create.html',
|
||||||
{'title': _('Create Wiki/Blog'),
|
{'title': _('Create Wiki or Blog'),
|
||||||
'form': form,
|
'form': form,
|
||||||
'subsubmenu': subsubmenu})
|
'subsubmenu': subsubmenu})
|
||||||
|
|
||||||
@ -179,6 +179,6 @@ def delete(request, name):
|
|||||||
return redirect(reverse_lazy('ikiwiki:manage'))
|
return redirect(reverse_lazy('ikiwiki:manage'))
|
||||||
|
|
||||||
return TemplateResponse(request, 'ikiwiki_delete.html',
|
return TemplateResponse(request, 'ikiwiki_delete.html',
|
||||||
{'title': _('Delete Wiki/Blog'),
|
{'title': _('Delete Wiki or Blog'),
|
||||||
'subsubmenu': subsubmenu,
|
'subsubmenu': subsubmenu,
|
||||||
'name': name})
|
'name': name})
|
||||||
|
|||||||
@ -320,7 +320,7 @@
|
|||||||
This interface is not maintained by {{ box_name }}. Its
|
This interface is not maintained by {{ box_name }}. Its
|
||||||
security status is unknown to {{ box_name }}. Many {{ box_name }}
|
security status is unknown to {{ box_name }}. Many {{ box_name }}
|
||||||
services may not be available on this interface. It is
|
services may not be available on this interface. It is
|
||||||
recommended that you deactivate/delete this connection and
|
recommended that you deactivate or delete this connection and
|
||||||
re-configure it.
|
re-configure it.
|
||||||
{% endblocktrans %}
|
{% endblocktrans %}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -37,7 +37,7 @@
|
|||||||
<p>
|
<p>
|
||||||
{% blocktrans trimmed %}
|
{% blocktrans trimmed %}
|
||||||
Virtual Private Network (VPN) is a technique for securely
|
Virtual Private Network (VPN) is a technique for securely
|
||||||
connecting two machines in order to access resources of a
|
connecting two devices in order to access resources of a
|
||||||
private network. While you are away from home, you can connect
|
private network. While you are away from home, you can connect
|
||||||
to your {{ box_name }} in order to join your home network and
|
to your {{ box_name }} in order to join your home network and
|
||||||
access private/internal services provided by {{ box_name }}.
|
access private/internal services provided by {{ box_name }}.
|
||||||
|
|||||||
@ -51,7 +51,7 @@ class TorForm(forms.Form): # pylint: disable=W0232
|
|||||||
required=False,
|
required=False,
|
||||||
help_text=format_lazy(_(
|
help_text=format_lazy(_(
|
||||||
'A hidden service will allow {box_name} to provide selected '
|
'A hidden service will allow {box_name} to provide selected '
|
||||||
'services (such as ownCloud or Chat) without revealing its '
|
'services (such as ownCloud or chat) without revealing its '
|
||||||
'location.'), box_name=_(cfg.box_name)))
|
'location.'), box_name=_(cfg.box_name)))
|
||||||
apt_transport_tor_enabled = forms.BooleanField(
|
apt_transport_tor_enabled = forms.BooleanField(
|
||||||
label=_('Download software packages over Tor'),
|
label=_('Download software packages over Tor'),
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user