mirror of
https://github.com/Mailu/Mailu.git
synced 2025-02-21 19:19:39 +02:00
Merge pull request #75 from kaiyou/feat-babel
Implement babel translation for I18N
This commit is contained in:
commit
fe8e25485d
@ -10,5 +10,6 @@ COPY requirements.txt .
|
||||
COPY start.sh /start.sh
|
||||
|
||||
RUN pip install -r requirements.txt
|
||||
RUN pybabel compile -d freeposte/translations
|
||||
|
||||
CMD ["/start.sh"]
|
||||
|
3
admin/babel.cfg
Normal file
3
admin/babel.cfg
Normal file
@ -0,0 +1,3 @@
|
||||
[python: **.py]
|
||||
[jinja2: **/templates/**.html]
|
||||
extensions=jinja2.ext.autoescape,jinja2.ext.with_
|
@ -4,6 +4,7 @@ import flask_bootstrap
|
||||
import flask_login
|
||||
import flask_script
|
||||
import flask_migrate
|
||||
import flask_babel
|
||||
|
||||
import os
|
||||
import docker
|
||||
@ -23,7 +24,9 @@ default_config = {
|
||||
'DEBUG': False,
|
||||
'BOOTSTRAP_SERVE_LOCAL': True,
|
||||
'DKIM_PATH': '/dkim/{domain}.{selector}.key',
|
||||
'DKIM_SELECTOR': 'dkim'
|
||||
'DKIM_SELECTOR': 'dkim',
|
||||
'BABEL_DEFAULT_LOCALE': 'en',
|
||||
'BABEL_DEFAULT_TIMEZONE': 'UTC'
|
||||
}
|
||||
|
||||
# Load configuration from the environment if available
|
||||
@ -36,6 +39,7 @@ db = flask_sqlalchemy.SQLAlchemy(app)
|
||||
migrate = flask_migrate.Migrate(app, db)
|
||||
login_manager = flask_login.LoginManager()
|
||||
login_manager.init_app(app)
|
||||
babel = flask_babel.Babel(app)
|
||||
|
||||
# Manager commnad
|
||||
manager = flask_script.Manager(app)
|
||||
|
@ -1,5 +1,6 @@
|
||||
from wtforms import validators, fields, widgets
|
||||
from wtforms_components import fields as fields_
|
||||
from flask_babel import lazy_gettext as _
|
||||
|
||||
import flask_login
|
||||
import flask_wtf
|
||||
@ -28,92 +29,93 @@ class DestinationField(fields.SelectMultipleField):
|
||||
def pre_validate(self, form):
|
||||
for item in self.data:
|
||||
if not self.validator.match(item):
|
||||
raise validators.ValidationError("Invalid email address.")
|
||||
raise validators.ValidationError(_('Invalid email address.'))
|
||||
|
||||
|
||||
class Confirmation(flask_wtf.FlaskForm):
|
||||
submit = fields.SubmitField('Confirm')
|
||||
class ConfirmationForm(flask_wtf.FlaskForm):
|
||||
submit = fields.SubmitField(_('Confirm'))
|
||||
|
||||
|
||||
class LoginForm(flask_wtf.FlaskForm):
|
||||
email = fields.StringField('E-mail', [validators.Email()])
|
||||
pw = fields.PasswordField('Password', [validators.DataRequired()])
|
||||
submit = fields.SubmitField('Sign in')
|
||||
email = fields.StringField(_('E-mail'), [validators.Email()])
|
||||
pw = fields.PasswordField(_('Password'), [validators.DataRequired()])
|
||||
submit = fields.SubmitField(_('Sign in'))
|
||||
|
||||
|
||||
class DomainForm(flask_wtf.FlaskForm):
|
||||
name = fields.StringField('Domain name', [validators.DataRequired()])
|
||||
max_users = fields_.IntegerField('Maximum user count', default=10)
|
||||
max_aliases = fields_.IntegerField('Maximum alias count', default=10)
|
||||
comment = fields.StringField('Comment')
|
||||
submit = fields.SubmitField('Create')
|
||||
name = fields.StringField(_('Domain name'), [validators.DataRequired()])
|
||||
max_users = fields_.IntegerField(_('Maximum user count'), default=10)
|
||||
max_aliases = fields_.IntegerField(_('Maximum alias count'), default=10)
|
||||
comment = fields.StringField(_('Comment'))
|
||||
submit = fields.SubmitField(_('Create'))
|
||||
|
||||
|
||||
class UserForm(flask_wtf.FlaskForm):
|
||||
localpart = fields.StringField('E-mail', [validators.DataRequired()])
|
||||
pw = fields.PasswordField('Password', [validators.DataRequired()])
|
||||
pw2 = fields.PasswordField('Confirm password', [validators.EqualTo('pw')])
|
||||
quota_bytes = fields_.IntegerSliderField('Quota', default=1000000000)
|
||||
enable_imap = fields.BooleanField('Allow IMAP access', default=True)
|
||||
enable_pop = fields.BooleanField('Allow POP3 access', default=True)
|
||||
comment = fields.StringField('Comment')
|
||||
submit = fields.SubmitField('Save')
|
||||
localpart = fields.StringField(_('E-mail'), [validators.DataRequired()])
|
||||
pw = fields.PasswordField(_('Password'), [validators.DataRequired()])
|
||||
pw2 = fields.PasswordField(_('Confirm password'), [validators.EqualTo('pw')])
|
||||
quota_bytes = fields_.IntegerSliderField(_('Quota'), default=1000000000)
|
||||
enable_imap = fields.BooleanField(_('Allow IMAP access'), default=True)
|
||||
enable_pop = fields.BooleanField(_('Allow POP3 access'), default=True)
|
||||
comment = fields.StringField(_('Comment'))
|
||||
submit = fields.SubmitField(_('Save'))
|
||||
|
||||
|
||||
class UserSettingsForm(flask_wtf.FlaskForm):
|
||||
displayed_name = fields.StringField('Displayed name')
|
||||
spam_enabled = fields.BooleanField('Enable spam filter')
|
||||
spam_threshold = fields_.IntegerSliderField('Spam filter threshold')
|
||||
submit = fields.SubmitField('Save settings')
|
||||
displayed_name = fields.StringField(_('Displayed name'))
|
||||
spam_enabled = fields.BooleanField(_('Enable spam filter'))
|
||||
spam_threshold = fields_.IntegerSliderField(_('Spam filter threshold'))
|
||||
submit = fields.SubmitField(_('Save settings'))
|
||||
|
||||
|
||||
class UserPasswordForm(flask_wtf.FlaskForm):
|
||||
pw = fields.PasswordField('Password', [validators.DataRequired()])
|
||||
pw2 = fields.PasswordField('Password check', [validators.DataRequired()])
|
||||
submit = fields.SubmitField('Update password')
|
||||
pw = fields.PasswordField(_('Password'), [validators.DataRequired()])
|
||||
pw2 = fields.PasswordField(_('Password check'), [validators.DataRequired()])
|
||||
submit = fields.SubmitField(_('Update password'))
|
||||
|
||||
|
||||
class UserForwardForm(flask_wtf.FlaskForm):
|
||||
forward_enabled = fields.BooleanField('Enable forwarding')
|
||||
forward_enabled = fields.BooleanField(_('Enable forwarding'))
|
||||
forward_destination = fields.StringField(
|
||||
'Destination', [validators.Optional(), validators.Email()]
|
||||
_('Destination'), [validators.Optional(), validators.Email()]
|
||||
)
|
||||
submit = fields.SubmitField('Update')
|
||||
submit = fields.SubmitField(_('Update'))
|
||||
|
||||
|
||||
class UserReplyForm(flask_wtf.FlaskForm):
|
||||
reply_enabled = fields.BooleanField('Enable automatic reply')
|
||||
reply_subject = fields.StringField('Reply subject')
|
||||
reply_body = fields.StringField('Reply body', widget=widgets.TextArea())
|
||||
submit = fields.SubmitField('Update')
|
||||
reply_enabled = fields.BooleanField(_('Enable automatic reply'))
|
||||
reply_subject = fields.StringField(_('Reply subject'))
|
||||
reply_body = fields.StringField(_('Reply body'),
|
||||
widget=widgets.TextArea())
|
||||
submit = fields.SubmitField(_('Update'))
|
||||
|
||||
|
||||
class AliasForm(flask_wtf.FlaskForm):
|
||||
localpart = fields.StringField('Alias', [validators.DataRequired()])
|
||||
localpart = fields.StringField(_('Alias'), [validators.DataRequired()])
|
||||
wildcard = fields.BooleanField(
|
||||
'Use SQL Like Syntax (e.g. for catch-all aliases, admin-%@domain.com)')
|
||||
destination = DestinationField('Destination')
|
||||
comment = fields.StringField('Comment')
|
||||
submit = fields.SubmitField('Create')
|
||||
_('Use SQL LIKE Syntax (e.g. for catch-all aliases)'))
|
||||
destination = DestinationField(_('Destination'))
|
||||
comment = fields.StringField(_('Comment'))
|
||||
submit = fields.SubmitField(_('Create'))
|
||||
|
||||
|
||||
class AdminForm(flask_wtf.FlaskForm):
|
||||
admin = fields.SelectField('Admin email', choices=[])
|
||||
submit = fields.SubmitField('Submit')
|
||||
admin = fields.SelectField(_('Admin email'), choices=[])
|
||||
submit = fields.SubmitField(_('Submit'))
|
||||
|
||||
|
||||
class ManagerForm(flask_wtf.FlaskForm):
|
||||
manager = fields.SelectField('Manager email')
|
||||
submit = fields.SubmitField('Submit')
|
||||
manager = fields.SelectField(_('Manager email'))
|
||||
submit = fields.SubmitField(_('Submit'))
|
||||
|
||||
|
||||
class FetchForm(flask_wtf.FlaskForm):
|
||||
protocol = fields.SelectField('Protocol', choices=[
|
||||
protocol = fields.SelectField(_('Protocol'), choices=[
|
||||
('imap', 'IMAP'), ('pop3', 'POP3')
|
||||
])
|
||||
host = fields.StringField('Hostname or IP')
|
||||
port = fields.IntegerField('TCP port')
|
||||
tls = fields.BooleanField('Enable TLS')
|
||||
username = fields.StringField('Username')
|
||||
password = fields.StringField('Password')
|
||||
submit = fields.SubmitField('Submit')
|
||||
host = fields.StringField(_('Hostname or IP'))
|
||||
port = fields.IntegerField(_('TCP port'))
|
||||
tls = fields.BooleanField(_('Enable TLS'))
|
||||
username = fields.StringField(_('Username'))
|
||||
password = fields.StringField(_('Password'))
|
||||
submit = fields.SubmitField(_('Submit'))
|
||||
|
@ -1,7 +1,7 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}
|
||||
Add a global administrator
|
||||
{% trans %}Add a global administrator{% endtrans %}
|
||||
{% endblock %}
|
||||
|
||||
{% block box_content %}
|
||||
|
@ -1,24 +1,26 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}
|
||||
Global administrators
|
||||
{% trans %}Global administrators{% endtrans %}
|
||||
{% endblock %}
|
||||
|
||||
{% block main_action %}
|
||||
<a class="btn btn-primary" href="{{ url_for('.admin_create') }}">Add administrator</a>
|
||||
<a class="btn btn-primary" href="{{ url_for('.admin_create') }}">
|
||||
{% trans %}Add administrator{% endtrans %}
|
||||
</a>
|
||||
{% endblock %}
|
||||
|
||||
{% block box %}
|
||||
<table class="table table-bordered">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Actions</th>
|
||||
<th>Email</th>
|
||||
<th>{% trans %}Actions{% endtrans %}</th>
|
||||
<th>{% trans %}Email{% endtrans %}</th>
|
||||
</tr>
|
||||
{% for admin in admins %}
|
||||
<tr>
|
||||
<td>
|
||||
<a href="{{ url_for('.admin_delete', admin=admin.email) }}" title="Delete"><i class="fa fa-trash"></i></a>
|
||||
<a href="{{ url_for('.admin_delete', admin=admin.email) }}" title="{% trans %}Delete{% endtrans %}"><i class="fa fa-trash"></i></a>
|
||||
</td>
|
||||
<td>{{ admin }}</td>
|
||||
</tr>
|
||||
|
@ -1,7 +1,7 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}
|
||||
Create alias
|
||||
{% trans %}Create alias{% endtrans %}
|
||||
{% endblock %}
|
||||
|
||||
{% block subtitle %}
|
||||
|
@ -1,7 +1,7 @@
|
||||
{% extends "alias/create.html" %}
|
||||
|
||||
{% block title %}
|
||||
Edit alias
|
||||
{% trans %}Edit alias{% endtrans %}
|
||||
{% endblock %}
|
||||
|
||||
{% block subtitle %}
|
||||
|
@ -1,7 +1,7 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}
|
||||
Alias list
|
||||
{% trans %}Alias list{% endtrans %}
|
||||
{% endblock %}
|
||||
|
||||
{% block subtitle %}
|
||||
@ -9,25 +9,25 @@ Alias list
|
||||
{% endblock %}
|
||||
|
||||
{% block main_action %}
|
||||
<a class="btn btn-primary" href="{{ url_for('.alias_create', domain_name=domain.name) }}">Add alias</a>
|
||||
<a class="btn btn-primary" href="{{ url_for('.alias_create', domain_name=domain.name) }}">{% trans %}Add alias{% endtrans %}</a>
|
||||
{% endblock %}
|
||||
|
||||
{% block box %}
|
||||
<table class="table table-bordered">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Actions</th>
|
||||
<th>Email</th>
|
||||
<th>Destination</th>
|
||||
<th>Comment</th>
|
||||
<th>Created</th>
|
||||
<th>Last edit</th>
|
||||
<th>{% trans %}Actions{% endtrans %}</th>
|
||||
<th>{% trans %}Email{% endtrans %}</th>
|
||||
<th>{% trans %}Destination{% endtrans %}</th>
|
||||
<th>{% trans %}Comment{% endtrans %}</th>
|
||||
<th>{% trans %}Created{% endtrans %}</th>
|
||||
<th>{% trans %}Last edit{% endtrans %}</th>
|
||||
</tr>
|
||||
{% for alias in domain.aliases %}
|
||||
<tr>
|
||||
<td>
|
||||
<a href="{{ url_for('.alias_edit', alias=alias.email) }}" title="Edit"><i class="fa fa-pencil"></i></a>
|
||||
<a href="{{ url_for('.alias_delete', alias=alias.email) }}" title="Delete"><i class="fa fa-trash"></i></a>
|
||||
<a href="{{ url_for('.alias_edit', alias=alias.email) }}" title="{% trans %}Edit{% endtrans %}"><i class="fa fa-pencil"></i></a>
|
||||
<a href="{{ url_for('.alias_delete', alias=alias.email) }}" title="{% trans %}Delete{% endtrans %}"><i class="fa fa-trash"></i></a>
|
||||
</td>
|
||||
<td>{{ alias }}</td>
|
||||
<td>{{ alias.destination|join(', ') or '-' }}</td>
|
||||
|
@ -1,7 +1,7 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}
|
||||
Confirm action
|
||||
{% trans %}Confirm action{% endtrans %}
|
||||
{% endblock %}
|
||||
|
||||
{% block subtitle %}
|
||||
@ -9,6 +9,6 @@ Confirm action
|
||||
{% endblock %}
|
||||
|
||||
{% block box_content %}
|
||||
<p>You are about to {{ action }}. Please confirm your action.</p>
|
||||
<p>{% trans action %}You are about to {{ action }}. Please confirm your action.{% endtrans %}</p>
|
||||
{{ macros.form(form) }}
|
||||
{% endblock %}
|
||||
|
@ -1,7 +1,7 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}
|
||||
New domain
|
||||
{% trans %}New domain{% endtrans %}
|
||||
{% endblock %}
|
||||
|
||||
{% block box_content %}
|
||||
|
@ -1,7 +1,7 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}
|
||||
Domain details
|
||||
{% trans %}Domain details{% endtrans %}
|
||||
{% endblock %}
|
||||
|
||||
{% block subtitle %}
|
||||
@ -10,7 +10,7 @@ Domain details
|
||||
|
||||
{% block main_action %}
|
||||
{% if current_user.global_admin %}
|
||||
<a class="btn btn-primary" href="{{ url_for(".domain_genkeys", domain_name=domain.name) }}">Regenerate keys</a>
|
||||
<a class="btn btn-primary" href="{{ url_for(".domain_genkeys", domain_name=domain.name) }}">{% trans %}Regenerate keys{% endtrans %}</a>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
@ -18,30 +18,30 @@ Domain details
|
||||
<table class="table table-bordered">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Domain name</th>
|
||||
<th>{% trans %}Domain name{% endtrans %}</th>
|
||||
<td>{{ domain.name }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>DNS MX entry</th>
|
||||
<th>{% trans %}DNS MX entry{% endtrans %}</th>
|
||||
<td><pre>{{ domain.name }}. 600 IN MX 10 {{ config["HOSTNAME"] }}.</pre></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>DNS SPF entries</th>
|
||||
<th>{% trans %}DNS SPF entries{% endtrans %}</th>
|
||||
<td><pre>
|
||||
{{ domain.name }}. 600 IN TXT "v=spf1 mx a:{{ config["HOSTNAME"] }} -all"
|
||||
{{ domain.name }}. 600 IN SPF "v=spf1 mx a:{{ config["HOSTNAME"] }} -all"</pre></td>
|
||||
</tr>
|
||||
{% if domain.dkim_publickey %}
|
||||
<tr>
|
||||
<th>DKIM public key</th>
|
||||
<th>{% trans %}DKIM public key{% endtrans %}</th>
|
||||
<td><pre style="white-space: pre-wrap; word-wrap: break-word;">{{ domain.dkim_publickey }}</pre></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>DNS DKIM entry</th>
|
||||
<th>{% trans %}DNS DKIM entry{% endtrans %}</th>
|
||||
<td><pre style="white-space: pre-wrap; word-wrap: break-word;">{{ config["DKIM_SELECTOR"] }}._domainkey.{{ domain.name }}. IN 600 TXT "v=DKIM1; k=rsa; p={{ domain.dkim_publickey }}"</pre></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>DNS DMARC entry</th>
|
||||
<th>{% trans %}DNS DMARC entry{% endtrans %}</th>
|
||||
<td><pre>_dmarc.{{ domain.name }}. 600 IN TXT "v=DMARC1; p=reject; rua=mailto:{{ config["POSTMASTER"] }}@{{ config["DOMAIN"] }}; adkim=s; aspf=s"</pre></td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
|
@ -1,7 +1,7 @@
|
||||
{% extends "domain/create.html" %}
|
||||
|
||||
{% block title %}
|
||||
Edit domain
|
||||
{% trans %}Edit domain{% endtrans %}
|
||||
{% endblock %}
|
||||
|
||||
{% block subtitle %}
|
||||
|
@ -1,12 +1,12 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}
|
||||
Domain list
|
||||
{% trans %}Domain list{% endtrans %}
|
||||
{% endblock %}
|
||||
|
||||
{% block main_action %}
|
||||
{% if current_user.global_admin %}
|
||||
<a class="btn btn-primary" href="{{ url_for('.domain_create') }}">New domain</a>
|
||||
<a class="btn btn-primary" href="{{ url_for('.domain_create') }}">{% trans %}New domain{% endtrans %}</a>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
@ -14,28 +14,28 @@ Domain list
|
||||
<table class="table table-bordered">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Actions</th>
|
||||
<th>Manage</th>
|
||||
<th>Domain name</th>
|
||||
<th>Mailbox count</th>
|
||||
<th>Alias count</th>
|
||||
<th>Comment</th>
|
||||
<th>Created</th>
|
||||
<th>Last edit</th>
|
||||
<th>{% trans %}Actions{% endtrans %}</th>
|
||||
<th>{% trans %}Manage{% endtrans %}</th>
|
||||
<th>{% trans %}Domain name{% endtrans %}</th>
|
||||
<th>{% trans %}Mailbox count{% endtrans %}</th>
|
||||
<th>{% trans %}Alias count{% endtrans %}</th>
|
||||
<th>{% trans %}Comment{% endtrans %}</th>
|
||||
<th>{% trans %}Created{% endtrans %}</th>
|
||||
<th>{% trans %}Last edit{% endtrans %}</th>
|
||||
</tr>
|
||||
{% for domain in current_user.get_managed_domains() %}
|
||||
<tr>
|
||||
<td>
|
||||
<a href="{{ url_for('.domain_details', domain_name=domain.name) }}" title="Details"><i class="fa fa-list"></i></a>
|
||||
<a href="{{ url_for('.domain_details', domain_name=domain.name) }}" title="{% trans %}Details{% endtrans %}"><i class="fa fa-list"></i></a>
|
||||
{% if current_user.global_admin %}
|
||||
<a href="{{ url_for('.domain_edit', domain_name=domain.name) }}" title="Edit"><i class="fa fa-pencil"></i></a>
|
||||
<a href="{{ url_for('.domain_delete', domain_name=domain.name) }}" title="Delete"><i class="fa fa-trash"></i></a>
|
||||
<a href="{{ url_for('.domain_edit', domain_name=domain.name) }}" title="{% trans %}Edit{% endtrans %}"><i class="fa fa-pencil"></i></a>
|
||||
<a href="{{ url_for('.domain_delete', domain_name=domain.name) }}" title="{% trans %}Delete{% endtrans %}"><i class="fa fa-trash"></i></a>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
<a href="{{ url_for('.user_list', domain_name=domain.name) }}" title="Users"><i class="fa fa-envelope-o"></i></a>
|
||||
<a href="{{ url_for('.alias_list', domain_name=domain.name) }}" title="Aliases"><i class="fa fa-at"></i></a>
|
||||
<a href="{{ url_for('.manager_list', domain_name=domain.name) }}" title="Managers"><i class="fa fa-user"></i></a>
|
||||
<a href="{{ url_for('.user_list', domain_name=domain.name) }}" title="{% trans %}Users{% endtrans %}"><i class="fa fa-envelope-o"></i></a>
|
||||
<a href="{{ url_for('.alias_list', domain_name=domain.name) }}" title="{% trans %}Aliases{% endtrans %}"><i class="fa fa-at"></i></a>
|
||||
<a href="{{ url_for('.manager_list', domain_name=domain.name) }}" title="{% trans %}Managers{% endtrans %}"><i class="fa fa-user"></i></a>
|
||||
</td>
|
||||
<td>{{ domain.name }}</td>
|
||||
<td>{{ domain.users | count }} / {{ domain.max_users or '∞' }}</td>
|
||||
|
@ -1,7 +1,7 @@
|
||||
{% extends "form.html" %}
|
||||
|
||||
{% block title %}
|
||||
Add a fetched account
|
||||
{% trans %}Add a fetched account{% endtrans %}
|
||||
{% endblock %}
|
||||
|
||||
{% block subtitle %}
|
||||
|
@ -1,7 +1,7 @@
|
||||
{% extends "form.html" %}
|
||||
|
||||
{% block title %}
|
||||
Update a fetched account
|
||||
{% trans %}Update a fetched account{% endtrans %}
|
||||
{% endblock %}
|
||||
|
||||
{% block subtitle %}
|
||||
|
@ -1,7 +1,7 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}
|
||||
Fetched accounts
|
||||
{% trans %}Fetched accounts{% endtrans %}
|
||||
{% endblock %}
|
||||
|
||||
{% block subtitle %}
|
||||
@ -9,26 +9,26 @@ Fetched accounts
|
||||
{% endblock %}
|
||||
|
||||
{% block main_action %}
|
||||
<a class="btn btn-primary" href="{{ url_for('.fetch_create', user_email=user.email) }}">Add an account</a>
|
||||
<a class="btn btn-primary" href="{{ url_for('.fetch_create', user_email=user.email) }}">{% trans %}Add an account{% endtrans %}</a>
|
||||
{% endblock %}
|
||||
|
||||
{% block box %}
|
||||
<table class="table table-bordered">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Actions</th>
|
||||
<th>Endpoint</th>
|
||||
<th>Username</th>
|
||||
<th>Last check</th>
|
||||
<th>Status</th>
|
||||
<th>Created</th>
|
||||
<th>Last edit</th>
|
||||
<th>{% trans %}Actions{% endtrans %}</th>
|
||||
<th>{% trans %}Endpoint{% endtrans %}</th>
|
||||
<th>{% trans %}Username{% endtrans %}</th>
|
||||
<th>{% trans %}Last check{% endtrans %}</th>
|
||||
<th>{% trans %}Status{% endtrans %}</th>
|
||||
<th>{% trans %}Created{% endtrans %}</th>
|
||||
<th>{% trans %}Last edit{% endtrans %}</th>
|
||||
</tr>
|
||||
{% for fetch in user.fetches %}
|
||||
<tr>
|
||||
<td>
|
||||
<a href="{{ url_for('.fetch_edit', fetch_id=fetch.id) }}" title="Edit"><i class="fa fa-pencil"></i></a>
|
||||
<a href="{{ url_for('.fetch_delete', fetch_id=fetch.id) }}" title="Delete"><i class="fa fa-trash"></i></a>
|
||||
<a href="{{ url_for('.fetch_edit', fetch_id=fetch.id) }}" title="{% trans %}Edit{% endtrans %}"><i class="fa fa-pencil"></i></a>
|
||||
<a href="{{ url_for('.fetch_delete', fetch_id=fetch.id) }}" title="{% trans %}Delete{% endtrans %}"><i class="fa fa-trash"></i></a>
|
||||
</td>
|
||||
<td>{{ fetch.protocol }}{{ 's' if fetch.tls else '' }}://{{ fetch.host }}:{{ fetch.port }}</td>
|
||||
<td>{{ fetch.username }}</td>
|
||||
|
@ -3,10 +3,10 @@
|
||||
{% block sidebar %}
|
||||
<section class="sidebar">
|
||||
<ul class="sidebar-menu">
|
||||
<li class="header">Your account</li>
|
||||
<li class="header">{% trans %}Your account{% endtrans %}</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
<i class="fa fa-sign-in"></i> <span>Sign in</span>
|
||||
<i class="fa fa-sign-in"></i> <span>{% trans %}Sign in{% endtrans %}</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
@ -14,11 +14,11 @@
|
||||
{% endblock %}
|
||||
|
||||
{% block title %}
|
||||
Sign in
|
||||
{% trans %}Sign in{% endtrans %}
|
||||
{% endblock %}
|
||||
|
||||
{% block subtitle %}
|
||||
to access the administration tools
|
||||
{% trans %}to access the administration tools{% endtrans %}
|
||||
{% endblock %}
|
||||
|
||||
{% block box_content %}
|
||||
|
@ -1,7 +1,7 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}
|
||||
Add a manager
|
||||
{% trans %}Add a manager{% endtrans %}
|
||||
{% endblock %}
|
||||
|
||||
{% block subtitle %}
|
||||
|
@ -1,7 +1,7 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}
|
||||
Manager list
|
||||
{% trans %}Manager list{% endtrans %}
|
||||
{% endblock %}
|
||||
|
||||
{% block subtitle %}
|
||||
@ -9,20 +9,20 @@ Manager list
|
||||
{% endblock %}
|
||||
|
||||
{% block main_action %}
|
||||
<a class="btn btn-primary" href="{{ url_for('.manager_create', domain_name=domain.name) }}">Add manager</a>
|
||||
<a class="btn btn-primary" href="{{ url_for('.manager_create', domain_name=domain.name) }}">{% trans %}Add manager{% endtrans %}</a>
|
||||
{% endblock %}
|
||||
|
||||
{% block box %}
|
||||
<table class="table table-bordered">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Actions</th>
|
||||
<th>Email</th>
|
||||
<th>{% trans %}Actions{% endtrans %}</th>
|
||||
<th>{% trans %}Email{% endtrans %}</th>
|
||||
</tr>
|
||||
{% for manager in domain.managers %}
|
||||
<tr>
|
||||
<td>
|
||||
<a href="{{ url_for('.manager_delete', domain_name=domain.name, user_email=manager.email) }}" title="Delete"><i class="fa fa-trash"></i></a>
|
||||
<a href="{{ url_for('.manager_delete', domain_name=domain.name, user_email=manager.email) }}" title="{% trans %}Delete{% endtrans %}"><i class="fa fa-trash"></i></a>
|
||||
</td>
|
||||
<td>{{ manager }}</td>
|
||||
</tr>
|
||||
|
@ -1,19 +1,19 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}
|
||||
Services status
|
||||
{% trans %}Services status{% endtrans %}
|
||||
{% endblock %}
|
||||
|
||||
{% block box %}
|
||||
<table class="table table-bordered">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Service</th>
|
||||
<th>Status</th>
|
||||
<th>PID</th>
|
||||
<th>Image</th>
|
||||
<th>Started</th>
|
||||
<th>Last update</th>
|
||||
<th>{% trans %}Service{% endtrans %}</th>
|
||||
<th>{% trans %}Status{% endtrans %}</th>
|
||||
<th>{% trans %}PID{% endtrans %}</th>
|
||||
<th>{% trans %}Image{% endtrans %}</th>
|
||||
<th>{% trans %}Started{% endtrans %}</th>
|
||||
<th>{% trans %}Last update{% endtrans %}</th>
|
||||
</tr>
|
||||
{% for name, container in containers.items() %}
|
||||
<tr>
|
||||
|
@ -2,61 +2,61 @@
|
||||
<h4 class="text-center text-primary">{{ current_user }}</h4>
|
||||
|
||||
<ul class="sidebar-menu">
|
||||
<li class="header">My account</li>
|
||||
<li class="header">{% trans %}My account{% endtrans %}</li>
|
||||
<li>
|
||||
<a href="{{ url_for('.user_settings') }}">
|
||||
<i class="fa fa-wrench"></i> <span>Settings</span>
|
||||
<i class="fa fa-wrench"></i> <span>{% trans %}Settings{% endtrans %}</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ url_for('.user_password') }}">
|
||||
<i class="fa fa-lock"></i> <span>Update password</span>
|
||||
<i class="fa fa-lock"></i> <span>{% trans %}Update password{% endtrans %}</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ url_for('.user_forward') }}">
|
||||
<i class="fa fa-share"></i> <span>Auto-forward</span>
|
||||
<i class="fa fa-share"></i> <span>{% trans %}Auto-forward{% endtrans %}</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ url_for('.user_reply') }}">
|
||||
<i class="fa fa-plane"></i> <span>Auto-reply</span>
|
||||
<i class="fa fa-plane"></i> <span>{% trans %}Auto-reply{% endtrans %}</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ url_for('.fetch_list') }}">
|
||||
<i class="fa fa-download"></i> <span>Fetched accounts</span>
|
||||
<i class="fa fa-download"></i> <span>{% trans %}Fetched accounts{% endtrans %}</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ url_for('.logout') }}">
|
||||
<i class="fa fa-sign-out"></i> <span>Sign out</span>
|
||||
<i class="fa fa-sign-out"></i> <span>{% trans %}Sign out{% endtrans %}</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="header">Administration</li>
|
||||
<li class="header">{% trans %}Administration{% endtrans %}</li>
|
||||
{% if current_user.global_admin %}
|
||||
<li>
|
||||
<a href="{{ url_for('.services') }}">
|
||||
<i class="fa fa-dashboard"></i> <span>Services status</span>
|
||||
<i class="fa fa-dashboard"></i> <span>{% trans %}Services status{% endtrans %}</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ url_for('.admin_list') }}">
|
||||
<i class="fa fa-user"></i> <span>Administrators</span>
|
||||
<i class="fa fa-user"></i> <span>{% trans %}Administrators{% endtrans %}</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% if current_user.manager_of or current_user.global_admin %}
|
||||
<li>
|
||||
<a href="{{ url_for('.domain_list') }}">
|
||||
<i class="fa fa-envelope"></i> <span>Mail domains</span>
|
||||
<i class="fa fa-envelope"></i> <span>{% trans %}Mail domains{% endtrans %}</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
<li>
|
||||
<a href="https://github.com/kaiyou/freeposte.io">
|
||||
<i class="fa fa-life-ring"></i> <span>Help</span>
|
||||
<i class="fa fa-life-ring"></i> <span>{% trans %}Help{% endtrans %}</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
@ -1,5 +1,5 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<div class="alert alert-warning" role="alert">We are still working on this feature!</div>
|
||||
<div class="alert alert-warning" role="alert">{% trans %}We are still working on this feature!{% endtrans %}</div>
|
||||
{% endblock %}
|
||||
|
436
admin/freeposte/translations/en/LC_MESSAGES/messages.po
Normal file
436
admin/freeposte/translations/en/LC_MESSAGES/messages.po
Normal file
@ -0,0 +1,436 @@
|
||||
# English translations for PROJECT.
|
||||
# Copyright (C) 2016 ORGANIZATION
|
||||
# This file is distributed under the same license as the PROJECT project.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2016.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PROJECT VERSION\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2016-10-02 17:33+0200\n"
|
||||
"PO-Revision-Date: 2016-10-02 15:02+0200\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language: en\n"
|
||||
"Language-Team: en <LL@li.org>\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 2.3.4\n"
|
||||
|
||||
#: freeposte/admin/forms.py:32
|
||||
msgid "Invalid email address."
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:36
|
||||
msgid "Confirm"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:40 freeposte/admin/forms.py:54
|
||||
msgid "E-mail"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:41 freeposte/admin/forms.py:55
|
||||
#: freeposte/admin/forms.py:72 freeposte/admin/forms.py:120
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:42 freeposte/admin/templates/login.html:9
|
||||
#: freeposte/admin/templates/login.html:17
|
||||
msgid "Sign in"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:46 freeposte/admin/templates/domain/details.html:21
|
||||
#: freeposte/admin/templates/domain/list.html:19
|
||||
msgid "Domain name"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:47
|
||||
msgid "Maximum user count"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:48
|
||||
msgid "Maximum alias count"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:49 freeposte/admin/forms.py:60
|
||||
#: freeposte/admin/forms.py:98 freeposte/admin/templates/alias/list.html:22
|
||||
#: freeposte/admin/templates/domain/list.html:22
|
||||
msgid "Comment"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:50 freeposte/admin/forms.py:99
|
||||
msgid "Create"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:56
|
||||
msgid "Confirm password"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:57
|
||||
msgid "Quota"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:58
|
||||
msgid "Allow IMAP access"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:59
|
||||
msgid "Allow POP3 access"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:61
|
||||
msgid "Save"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:65
|
||||
msgid "Displayed name"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:66
|
||||
msgid "Enable spam filter"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:67
|
||||
msgid "Spam filter threshold"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:68
|
||||
msgid "Save settings"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:73
|
||||
msgid "Password check"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:74 freeposte/admin/templates/sidebar.html:13
|
||||
msgid "Update password"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:78
|
||||
msgid "Enable forwarding"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:80 freeposte/admin/forms.py:97
|
||||
#: freeposte/admin/templates/alias/list.html:21
|
||||
msgid "Destination"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:82 freeposte/admin/forms.py:90
|
||||
msgid "Update"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:86
|
||||
msgid "Enable automatic reply"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:87
|
||||
msgid "Reply subject"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:88
|
||||
msgid "Reply body"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:94
|
||||
msgid "Alias"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:96
|
||||
msgid "Use SQL LIKE Syntax (e.g. for catch-all aliases)"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:103
|
||||
msgid "Admin email"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:104 freeposte/admin/forms.py:109
|
||||
#: freeposte/admin/forms.py:121
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:108
|
||||
msgid "Manager email"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:113
|
||||
msgid "Protocol"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:116
|
||||
msgid "Hostname or IP"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:117
|
||||
msgid "TCP port"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:118
|
||||
msgid "Enable TLS"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:119 freeposte/admin/templates/fetch/list.html:21
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/confirm.html:4
|
||||
msgid "Confirm action"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/confirm.html:12
|
||||
#, python-format
|
||||
msgid "You are about to %(action)s. Please confirm your action."
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/login.html:6
|
||||
msgid "Your account"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/login.html:21
|
||||
msgid "to access the administration tools"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/services.html:4
|
||||
#: freeposte/admin/templates/sidebar.html:40
|
||||
msgid "Services status"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/services.html:11
|
||||
msgid "Service"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/fetch/list.html:23
|
||||
#: freeposte/admin/templates/services.html:12
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/services.html:13
|
||||
msgid "PID"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/services.html:14
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/services.html:15
|
||||
msgid "Started"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/services.html:16
|
||||
msgid "Last update"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/sidebar.html:5
|
||||
msgid "My account"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/sidebar.html:8
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/sidebar.html:18
|
||||
msgid "Auto-forward"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/sidebar.html:23
|
||||
msgid "Auto-reply"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/fetch/list.html:4
|
||||
#: freeposte/admin/templates/sidebar.html:28
|
||||
msgid "Fetched accounts"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/sidebar.html:33
|
||||
msgid "Sign out"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/sidebar.html:36
|
||||
msgid "Administration"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/sidebar.html:45
|
||||
msgid "Administrators"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/sidebar.html:52
|
||||
msgid "Mail domains"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/sidebar.html:59
|
||||
msgid "Help"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/working.html:4
|
||||
msgid "We are still working on this feature!"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/admin/create.html:4
|
||||
msgid "Add a global administrator"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/admin/list.html:4
|
||||
msgid "Global administrators"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/admin/list.html:9
|
||||
msgid "Add administrator"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/admin/list.html:17
|
||||
#: freeposte/admin/templates/alias/list.html:19
|
||||
#: freeposte/admin/templates/domain/list.html:17
|
||||
#: freeposte/admin/templates/fetch/list.html:19
|
||||
#: freeposte/admin/templates/manager/list.html:19
|
||||
msgid "Actions"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/admin/list.html:18
|
||||
#: freeposte/admin/templates/alias/list.html:20
|
||||
#: freeposte/admin/templates/manager/list.html:20
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/admin/list.html:23
|
||||
#: freeposte/admin/templates/alias/list.html:30
|
||||
#: freeposte/admin/templates/domain/list.html:32
|
||||
#: freeposte/admin/templates/fetch/list.html:31
|
||||
#: freeposte/admin/templates/manager/list.html:25
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/alias/create.html:4
|
||||
msgid "Create alias"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/alias/edit.html:4
|
||||
msgid "Edit alias"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/alias/list.html:4
|
||||
msgid "Alias list"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/alias/list.html:12
|
||||
msgid "Add alias"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/alias/list.html:23
|
||||
#: freeposte/admin/templates/domain/list.html:23
|
||||
#: freeposte/admin/templates/fetch/list.html:24
|
||||
msgid "Created"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/alias/list.html:24
|
||||
#: freeposte/admin/templates/domain/list.html:24
|
||||
#: freeposte/admin/templates/fetch/list.html:25
|
||||
msgid "Last edit"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/alias/list.html:29
|
||||
#: freeposte/admin/templates/domain/list.html:31
|
||||
#: freeposte/admin/templates/fetch/list.html:30
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/create.html:4
|
||||
#: freeposte/admin/templates/domain/list.html:9
|
||||
msgid "New domain"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/details.html:4
|
||||
msgid "Domain details"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/details.html:13
|
||||
msgid "Regenerate keys"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/details.html:25
|
||||
msgid "DNS MX entry"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/details.html:29
|
||||
msgid "DNS SPF entries"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/details.html:36
|
||||
msgid "DKIM public key"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/details.html:40
|
||||
msgid "DNS DKIM entry"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/details.html:44
|
||||
msgid "DNS DMARC entry"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/edit.html:4
|
||||
msgid "Edit domain"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/list.html:4
|
||||
msgid "Domain list"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/list.html:18
|
||||
msgid "Manage"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/list.html:20
|
||||
msgid "Mailbox count"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/list.html:21
|
||||
msgid "Alias count"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/list.html:29
|
||||
msgid "Details"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/list.html:36
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/list.html:37
|
||||
msgid "Aliases"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/list.html:38
|
||||
msgid "Managers"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/fetch/create.html:4
|
||||
msgid "Add a fetched account"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/fetch/edit.html:4
|
||||
msgid "Update a fetched account"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/fetch/list.html:12
|
||||
msgid "Add an account"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/fetch/list.html:20
|
||||
msgid "Endpoint"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/fetch/list.html:22
|
||||
msgid "Last check"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/manager/create.html:4
|
||||
msgid "Add a manager"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/manager/list.html:4
|
||||
msgid "Manager list"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/manager/list.html:12
|
||||
msgid "Add manager"
|
||||
msgstr ""
|
||||
|
436
admin/freeposte/translations/fr/LC_MESSAGES/messages.po
Normal file
436
admin/freeposte/translations/fr/LC_MESSAGES/messages.po
Normal file
@ -0,0 +1,436 @@
|
||||
# French translations for PROJECT.
|
||||
# Copyright (C) 2016 ORGANIZATION
|
||||
# This file is distributed under the same license as the PROJECT project.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2016.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PROJECT VERSION\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2016-10-02 17:33+0200\n"
|
||||
"PO-Revision-Date: 2016-10-02 16:32+0200\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: fr\n"
|
||||
"Language-Team: fr <LL@li.org>\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 2.3.4\n"
|
||||
|
||||
#: freeposte/admin/forms.py:32
|
||||
msgid "Invalid email address."
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:36
|
||||
msgid "Confirm"
|
||||
msgstr "Confirmer"
|
||||
|
||||
#: freeposte/admin/forms.py:40 freeposte/admin/forms.py:54
|
||||
msgid "E-mail"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:41 freeposte/admin/forms.py:55
|
||||
#: freeposte/admin/forms.py:72 freeposte/admin/forms.py:120
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:42 freeposte/admin/templates/login.html:9
|
||||
#: freeposte/admin/templates/login.html:17
|
||||
msgid "Sign in"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:46 freeposte/admin/templates/domain/details.html:21
|
||||
#: freeposte/admin/templates/domain/list.html:19
|
||||
msgid "Domain name"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:47
|
||||
msgid "Maximum user count"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:48
|
||||
msgid "Maximum alias count"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:49 freeposte/admin/forms.py:60
|
||||
#: freeposte/admin/forms.py:98 freeposte/admin/templates/alias/list.html:22
|
||||
#: freeposte/admin/templates/domain/list.html:22
|
||||
msgid "Comment"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:50 freeposte/admin/forms.py:99
|
||||
msgid "Create"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:56
|
||||
msgid "Confirm password"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:57
|
||||
msgid "Quota"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:58
|
||||
msgid "Allow IMAP access"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:59
|
||||
msgid "Allow POP3 access"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:61
|
||||
msgid "Save"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:65
|
||||
msgid "Displayed name"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:66
|
||||
msgid "Enable spam filter"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:67
|
||||
msgid "Spam filter threshold"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:68
|
||||
msgid "Save settings"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:73
|
||||
msgid "Password check"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:74 freeposte/admin/templates/sidebar.html:13
|
||||
msgid "Update password"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:78
|
||||
msgid "Enable forwarding"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:80 freeposte/admin/forms.py:97
|
||||
#: freeposte/admin/templates/alias/list.html:21
|
||||
msgid "Destination"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:82 freeposte/admin/forms.py:90
|
||||
msgid "Update"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:86
|
||||
msgid "Enable automatic reply"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:87
|
||||
msgid "Reply subject"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:88
|
||||
msgid "Reply body"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:94
|
||||
msgid "Alias"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:96
|
||||
msgid "Use SQL LIKE Syntax (e.g. for catch-all aliases)"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:103
|
||||
msgid "Admin email"
|
||||
msgstr "Email de l'administrateur"
|
||||
|
||||
#: freeposte/admin/forms.py:104 freeposte/admin/forms.py:109
|
||||
#: freeposte/admin/forms.py:121
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:108
|
||||
msgid "Manager email"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:113
|
||||
msgid "Protocol"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:116
|
||||
msgid "Hostname or IP"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:117
|
||||
msgid "TCP port"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:118
|
||||
msgid "Enable TLS"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:119 freeposte/admin/templates/fetch/list.html:21
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/confirm.html:4
|
||||
msgid "Confirm action"
|
||||
msgstr "Confirmer"
|
||||
|
||||
#: freeposte/admin/templates/confirm.html:12
|
||||
#, python-format
|
||||
msgid "You are about to %(action)s. Please confirm your action."
|
||||
msgstr "Vous allez %(action)s. Merci de confirmer votre action."
|
||||
|
||||
#: freeposte/admin/templates/login.html:6
|
||||
msgid "Your account"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/login.html:21
|
||||
msgid "to access the administration tools"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/services.html:4
|
||||
#: freeposte/admin/templates/sidebar.html:40
|
||||
msgid "Services status"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/services.html:11
|
||||
msgid "Service"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/fetch/list.html:23
|
||||
#: freeposte/admin/templates/services.html:12
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/services.html:13
|
||||
msgid "PID"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/services.html:14
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/services.html:15
|
||||
msgid "Started"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/services.html:16
|
||||
msgid "Last update"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/sidebar.html:5
|
||||
msgid "My account"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/sidebar.html:8
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/sidebar.html:18
|
||||
msgid "Auto-forward"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/sidebar.html:23
|
||||
msgid "Auto-reply"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/fetch/list.html:4
|
||||
#: freeposte/admin/templates/sidebar.html:28
|
||||
msgid "Fetched accounts"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/sidebar.html:33
|
||||
msgid "Sign out"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/sidebar.html:36
|
||||
msgid "Administration"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/sidebar.html:45
|
||||
msgid "Administrators"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/sidebar.html:52
|
||||
msgid "Mail domains"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/sidebar.html:59
|
||||
msgid "Help"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/working.html:4
|
||||
msgid "We are still working on this feature!"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/admin/create.html:4
|
||||
msgid "Add a global administrator"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/admin/list.html:4
|
||||
msgid "Global administrators"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/admin/list.html:9
|
||||
msgid "Add administrator"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/admin/list.html:17
|
||||
#: freeposte/admin/templates/alias/list.html:19
|
||||
#: freeposte/admin/templates/domain/list.html:17
|
||||
#: freeposte/admin/templates/fetch/list.html:19
|
||||
#: freeposte/admin/templates/manager/list.html:19
|
||||
msgid "Actions"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/admin/list.html:18
|
||||
#: freeposte/admin/templates/alias/list.html:20
|
||||
#: freeposte/admin/templates/manager/list.html:20
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/admin/list.html:23
|
||||
#: freeposte/admin/templates/alias/list.html:30
|
||||
#: freeposte/admin/templates/domain/list.html:32
|
||||
#: freeposte/admin/templates/fetch/list.html:31
|
||||
#: freeposte/admin/templates/manager/list.html:25
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/alias/create.html:4
|
||||
msgid "Create alias"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/alias/edit.html:4
|
||||
msgid "Edit alias"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/alias/list.html:4
|
||||
msgid "Alias list"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/alias/list.html:12
|
||||
msgid "Add alias"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/alias/list.html:23
|
||||
#: freeposte/admin/templates/domain/list.html:23
|
||||
#: freeposte/admin/templates/fetch/list.html:24
|
||||
msgid "Created"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/alias/list.html:24
|
||||
#: freeposte/admin/templates/domain/list.html:24
|
||||
#: freeposte/admin/templates/fetch/list.html:25
|
||||
msgid "Last edit"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/alias/list.html:29
|
||||
#: freeposte/admin/templates/domain/list.html:31
|
||||
#: freeposte/admin/templates/fetch/list.html:30
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/create.html:4
|
||||
#: freeposte/admin/templates/domain/list.html:9
|
||||
msgid "New domain"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/details.html:4
|
||||
msgid "Domain details"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/details.html:13
|
||||
msgid "Regenerate keys"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/details.html:25
|
||||
msgid "DNS MX entry"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/details.html:29
|
||||
msgid "DNS SPF entries"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/details.html:36
|
||||
msgid "DKIM public key"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/details.html:40
|
||||
msgid "DNS DKIM entry"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/details.html:44
|
||||
msgid "DNS DMARC entry"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/edit.html:4
|
||||
msgid "Edit domain"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/list.html:4
|
||||
msgid "Domain list"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/list.html:18
|
||||
msgid "Manage"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/list.html:20
|
||||
msgid "Mailbox count"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/list.html:21
|
||||
msgid "Alias count"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/list.html:29
|
||||
msgid "Details"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/list.html:36
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/list.html:37
|
||||
msgid "Aliases"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/list.html:38
|
||||
msgid "Managers"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/fetch/create.html:4
|
||||
msgid "Add a fetched account"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/fetch/edit.html:4
|
||||
msgid "Update a fetched account"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/fetch/list.html:12
|
||||
msgid "Add an account"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/fetch/list.html:20
|
||||
msgid "Endpoint"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/fetch/list.html:22
|
||||
msgid "Last check"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/manager/create.html:4
|
||||
msgid "Add a manager"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/manager/list.html:4
|
||||
msgid "Manager list"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/manager/list.html:12
|
||||
msgid "Add manager"
|
||||
msgstr ""
|
||||
|
435
admin/messages.pot
Normal file
435
admin/messages.pot
Normal file
@ -0,0 +1,435 @@
|
||||
# Translations template for PROJECT.
|
||||
# Copyright (C) 2016 ORGANIZATION
|
||||
# This file is distributed under the same license as the PROJECT project.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2016.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PROJECT VERSION\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2016-10-02 17:33+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 2.3.4\n"
|
||||
|
||||
#: freeposte/admin/forms.py:32
|
||||
msgid "Invalid email address."
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:36
|
||||
msgid "Confirm"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:40 freeposte/admin/forms.py:54
|
||||
msgid "E-mail"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:41 freeposte/admin/forms.py:55
|
||||
#: freeposte/admin/forms.py:72 freeposte/admin/forms.py:120
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:42 freeposte/admin/templates/login.html:9
|
||||
#: freeposte/admin/templates/login.html:17
|
||||
msgid "Sign in"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:46 freeposte/admin/templates/domain/details.html:21
|
||||
#: freeposte/admin/templates/domain/list.html:19
|
||||
msgid "Domain name"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:47
|
||||
msgid "Maximum user count"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:48
|
||||
msgid "Maximum alias count"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:49 freeposte/admin/forms.py:60
|
||||
#: freeposte/admin/forms.py:98 freeposte/admin/templates/alias/list.html:22
|
||||
#: freeposte/admin/templates/domain/list.html:22
|
||||
msgid "Comment"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:50 freeposte/admin/forms.py:99
|
||||
msgid "Create"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:56
|
||||
msgid "Confirm password"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:57
|
||||
msgid "Quota"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:58
|
||||
msgid "Allow IMAP access"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:59
|
||||
msgid "Allow POP3 access"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:61
|
||||
msgid "Save"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:65
|
||||
msgid "Displayed name"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:66
|
||||
msgid "Enable spam filter"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:67
|
||||
msgid "Spam filter threshold"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:68
|
||||
msgid "Save settings"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:73
|
||||
msgid "Password check"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:74 freeposte/admin/templates/sidebar.html:13
|
||||
msgid "Update password"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:78
|
||||
msgid "Enable forwarding"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:80 freeposte/admin/forms.py:97
|
||||
#: freeposte/admin/templates/alias/list.html:21
|
||||
msgid "Destination"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:82 freeposte/admin/forms.py:90
|
||||
msgid "Update"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:86
|
||||
msgid "Enable automatic reply"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:87
|
||||
msgid "Reply subject"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:88
|
||||
msgid "Reply body"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:94
|
||||
msgid "Alias"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:96
|
||||
msgid "Use SQL LIKE Syntax (e.g. for catch-all aliases)"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:103
|
||||
msgid "Admin email"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:104 freeposte/admin/forms.py:109
|
||||
#: freeposte/admin/forms.py:121
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:108
|
||||
msgid "Manager email"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:113
|
||||
msgid "Protocol"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:116
|
||||
msgid "Hostname or IP"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:117
|
||||
msgid "TCP port"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:118
|
||||
msgid "Enable TLS"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/forms.py:119 freeposte/admin/templates/fetch/list.html:21
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/confirm.html:4
|
||||
msgid "Confirm action"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/confirm.html:12
|
||||
#, python-format
|
||||
msgid "You are about to %(action)s. Please confirm your action."
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/login.html:6
|
||||
msgid "Your account"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/login.html:21
|
||||
msgid "to access the administration tools"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/services.html:4
|
||||
#: freeposte/admin/templates/sidebar.html:40
|
||||
msgid "Services status"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/services.html:11
|
||||
msgid "Service"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/fetch/list.html:23
|
||||
#: freeposte/admin/templates/services.html:12
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/services.html:13
|
||||
msgid "PID"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/services.html:14
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/services.html:15
|
||||
msgid "Started"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/services.html:16
|
||||
msgid "Last update"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/sidebar.html:5
|
||||
msgid "My account"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/sidebar.html:8
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/sidebar.html:18
|
||||
msgid "Auto-forward"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/sidebar.html:23
|
||||
msgid "Auto-reply"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/fetch/list.html:4
|
||||
#: freeposte/admin/templates/sidebar.html:28
|
||||
msgid "Fetched accounts"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/sidebar.html:33
|
||||
msgid "Sign out"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/sidebar.html:36
|
||||
msgid "Administration"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/sidebar.html:45
|
||||
msgid "Administrators"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/sidebar.html:52
|
||||
msgid "Mail domains"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/sidebar.html:59
|
||||
msgid "Help"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/working.html:4
|
||||
msgid "We are still working on this feature!"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/admin/create.html:4
|
||||
msgid "Add a global administrator"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/admin/list.html:4
|
||||
msgid "Global administrators"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/admin/list.html:9
|
||||
msgid "Add administrator"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/admin/list.html:17
|
||||
#: freeposte/admin/templates/alias/list.html:19
|
||||
#: freeposte/admin/templates/domain/list.html:17
|
||||
#: freeposte/admin/templates/fetch/list.html:19
|
||||
#: freeposte/admin/templates/manager/list.html:19
|
||||
msgid "Actions"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/admin/list.html:18
|
||||
#: freeposte/admin/templates/alias/list.html:20
|
||||
#: freeposte/admin/templates/manager/list.html:20
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/admin/list.html:23
|
||||
#: freeposte/admin/templates/alias/list.html:30
|
||||
#: freeposte/admin/templates/domain/list.html:32
|
||||
#: freeposte/admin/templates/fetch/list.html:31
|
||||
#: freeposte/admin/templates/manager/list.html:25
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/alias/create.html:4
|
||||
msgid "Create alias"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/alias/edit.html:4
|
||||
msgid "Edit alias"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/alias/list.html:4
|
||||
msgid "Alias list"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/alias/list.html:12
|
||||
msgid "Add alias"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/alias/list.html:23
|
||||
#: freeposte/admin/templates/domain/list.html:23
|
||||
#: freeposte/admin/templates/fetch/list.html:24
|
||||
msgid "Created"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/alias/list.html:24
|
||||
#: freeposte/admin/templates/domain/list.html:24
|
||||
#: freeposte/admin/templates/fetch/list.html:25
|
||||
msgid "Last edit"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/alias/list.html:29
|
||||
#: freeposte/admin/templates/domain/list.html:31
|
||||
#: freeposte/admin/templates/fetch/list.html:30
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/create.html:4
|
||||
#: freeposte/admin/templates/domain/list.html:9
|
||||
msgid "New domain"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/details.html:4
|
||||
msgid "Domain details"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/details.html:13
|
||||
msgid "Regenerate keys"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/details.html:25
|
||||
msgid "DNS MX entry"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/details.html:29
|
||||
msgid "DNS SPF entries"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/details.html:36
|
||||
msgid "DKIM public key"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/details.html:40
|
||||
msgid "DNS DKIM entry"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/details.html:44
|
||||
msgid "DNS DMARC entry"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/edit.html:4
|
||||
msgid "Edit domain"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/list.html:4
|
||||
msgid "Domain list"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/list.html:18
|
||||
msgid "Manage"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/list.html:20
|
||||
msgid "Mailbox count"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/list.html:21
|
||||
msgid "Alias count"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/list.html:29
|
||||
msgid "Details"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/list.html:36
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/list.html:37
|
||||
msgid "Aliases"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/domain/list.html:38
|
||||
msgid "Managers"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/fetch/create.html:4
|
||||
msgid "Add a fetched account"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/fetch/edit.html:4
|
||||
msgid "Update a fetched account"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/fetch/list.html:12
|
||||
msgid "Add an account"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/fetch/list.html:20
|
||||
msgid "Endpoint"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/fetch/list.html:22
|
||||
msgid "Last check"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/manager/create.html:4
|
||||
msgid "Add a manager"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/manager/list.html:4
|
||||
msgid "Manager list"
|
||||
msgstr ""
|
||||
|
||||
#: freeposte/admin/templates/manager/list.html:12
|
||||
msgid "Add manager"
|
||||
msgstr ""
|
||||
|
@ -2,9 +2,10 @@ Flask
|
||||
Flask-Login
|
||||
Flask-SQLAlchemy
|
||||
Flask-bootstrap
|
||||
Flask-Babel
|
||||
Flask-migrate
|
||||
Flask-script
|
||||
flask_wtf
|
||||
Flask-wtf
|
||||
WTForms-Components
|
||||
PyOpenSSL
|
||||
passlib
|
||||
|
Loading…
x
Reference in New Issue
Block a user