Compare commits

..

1 Commits

Author SHA1 Message Date
Matthew Wild
fda822e9d9 Initial implementation of /policies page 2022-03-21 15:51:58 +00:00
34 changed files with 1780 additions and 3097 deletions

View File

@@ -50,29 +50,6 @@ jobs:
run: |
python -m flake8 snikket_web
translation-check:
runs-on: ubuntu-latest
name: 'lint: i18n'
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: '3.9'
- name: Install
run: |
set -euo pipefail
pip install flask-babel
- name: Linting
run: |
sed -ri '/^"POT-Creation-Date: /d' snikket_web/translations/messages.pot
git add snikket_web/translations/messages.pot
make extract_translations
sed -ri '/^"POT-Creation-Date: /d' snikket_web/translations/messages.pot
git diff --exit-code --color -- snikket_web/translations/messages.pot
build:
runs-on: ubuntu-latest

View File

@@ -1,3 +1,4 @@
[python: snikket_web/**.py]
[jinja2: snikket_web/templates/**.html]
[jinja2: snikket_web/templates/**.j2]
extensions=jinja2.ext.autoescape,jinja2.ext.with_

View File

@@ -1,11 +1,8 @@
#!/bin/sh
export SNIKKET_WEB_DOMAIN="$SNIKKET_DOMAIN"
if [ -n "${SNIKKET_SITE_NAME:-}" ]; then
export SNIKKET_WEB_SITE_NAME="$SNIKKET_SITE_NAME"
fi
export SNIKKET_TWEAK_PORTAL_INTERNAL_HTTP_INTERFACE="${SNIKKET_TWEAK_PORTAL_INTERNAL_HTTP_INTERFACE-127.0.0.1}"
export SNIKKET_TWEAK_PORTAL_INTERNAL_HTTP_PORT="${SNIKKET_TWEAK_PORTAL_INTERNAL_HTTP_PORT-5765}"
exec hypercorn -b "${SNIKKET_TWEAK_PORTAL_INTERNAL_HTTP_INTERFACE}:${SNIKKET_TWEAK_PORTAL_INTERNAL_HTTP_PORT}" --access-logfile=- --log-file=- 'snikket_web:create_app()'
exec hypercorn -b "${SNIKKET_TWEAK_PORTAL_INTERNAL_HTTP_INTERFACE}:${SNIKKET_TWEAK_PORTAL_INTERNAL_HTTP_PORT}" 'snikket_web:create_app()'

View File

@@ -1,9 +1,9 @@
aiohttp~=3.6
quart~=0.17,<0.18
flask-wtf~=1.0
hsluv~=5.0
quart~=0.11,<0.15
flask-wtf~=0.14
hsluv~=0.0.2
flask-babel~=1.0
email-validator~=1.1
environ-config~=20.0
wtforms~=3.0
wtforms~=2.3
typing-extensions

View File

@@ -18,8 +18,6 @@ from quart import (
jsonify,
)
import werkzeug.exceptions
import environ
from . import colour, infra
@@ -42,7 +40,7 @@ async def proc() -> typing.Dict[str, typing.Any]:
try:
user_info = await infra.client.get_user_info()
except (aiohttp.ClientError, werkzeug.exceptions.HTTPException):
except (aiohttp.ClientError, quart.exceptions.HTTPException):
user_info = {}
return {
@@ -107,16 +105,16 @@ async def backend_error_handler(exc: Exception) -> quart.Response:
async def generic_http_error(
exc: werkzeug.exceptions.HTTPException,
exc: quart.exceptions.HTTPException,
) -> quart.Response:
return quart.Response(
await render_template(
"generic_http_error.html",
status=exc.code,
status=exc.status_code,
description=exc.description,
name=exc.name,
),
status=exc.code,
status=exc.status_code,
)
@@ -147,19 +145,14 @@ class AppConfig:
site_name = environ.var("")
avatar_cache_ttl = environ.var(1800, converter=int)
languages = environ.var([
# Keep `en` as the first language, because it is used as a fallback
# if the language negotiation cannot find another match. It is more
# likely that users are able to read english (or find a suitable
# online translator) than, for instance, danish.
"en",
"da",
"de",
"en",
"fr",
"id",
"it",
"pl",
"sv",
"zh_Hans_CN",
], converter=autosplit)
apple_store_url = environ.var(
"https://apps.apple.com/us/app/snikket/id1545164189",
@@ -170,6 +163,9 @@ class AppConfig:
# tools may also very well override it.
max_avatar_size = environ.var(1024*1024, converter=int)
show_metrics = environ.bool_var(True)
retention_days = environ.var(7, converter=int, name="SNIKKET_RETENTION_DAYS")
operator_name = environ.var(None, name="SNIKKET_OPERATOR_NAME")
provider_name = environ.var(None, name="SNIKKET_PROVIDER_NAME")
_UPPER_CASE = "".join(map(chr, range(ord("A"), ord("Z")+1)))
@@ -202,23 +198,26 @@ def create_app() -> quart.Quart:
app.config["APPLE_STORE_URL"] = config.apple_store_url
app.config["MAX_AVATAR_SIZE"] = config.max_avatar_size
app.config["SHOW_METRICS"] = config.show_metrics
app.config["RETENTION_DAYS"] = config.retention_days
app.config["OPERATOR_NAME"] = config.operator_name
app.config["PROVIDER_NAME"] = config.provider_name
app.context_processor(proc)
app.register_error_handler(
aiohttp.ClientConnectorError,
backend_error_handler,
backend_error_handler, # type:ignore
)
app.register_error_handler(
werkzeug.exceptions.HTTPException,
quart.exceptions.HTTPException,
generic_http_error, # type:ignore
)
app.register_error_handler(
Exception,
generic_error_handler,
generic_error_handler, # type:ignore
)
@app.route("/")
async def index() -> werkzeug.Response:
async def index() -> quart.Response:
if infra.client.has_session:
return redirect(url_for('user.index'))

View File

@@ -7,11 +7,10 @@ from datetime import datetime
import aiohttp
import werkzeug.exceptions
import quart.flask_patch
import wtforms
import wtforms.fields.html5
from quart import (
Blueprint,
@@ -93,7 +92,7 @@ class EditUserForm(BaseForm):
@bp.route("/user/<localpart>/", methods=["GET", "POST"])
@client.require_admin_session()
async def edit_user(localpart: str) -> typing.Union[werkzeug.Response, str]:
async def edit_user(localpart: str) -> typing.Union[quart.Response, str]:
target_user_info = await client.get_user_by_localpart(localpart)
form = EditUserForm()
@@ -148,7 +147,7 @@ class DeleteUserForm(BaseForm):
@bp.route("/user/<localpart>/delete", methods=["GET", "POST"])
@client.require_admin_session()
async def delete_user(localpart: str) -> typing.Union[str, werkzeug.Response]:
async def delete_user(localpart: str) -> typing.Union[str, quart.Response]:
target_user_info = await client.get_user_by_localpart(localpart)
form = DeleteUserForm()
if form.validate_on_submit():
@@ -187,7 +186,7 @@ async def debug_user(localpart: str) -> typing.Union[str, quart.Response]:
@client.require_admin_session()
async def user_password_reset_link(
id_: str,
) -> typing.Union[str, werkzeug.Response]:
) -> typing.Union[str, quart.Response]:
invite_info = await client.get_invite_by_id(
id_,
)
@@ -279,7 +278,7 @@ class InvitePost(BaseForm):
@bp.route("/invitations", methods=["GET", "POST"])
@client.require_admin_session()
async def invitations() -> typing.Union[str, werkzeug.Response]:
async def invitations() -> typing.Union[str, quart.Response]:
invites = sorted(
(
invite
@@ -325,7 +324,7 @@ class InviteForm(BaseForm):
@bp.route("/invitation/-/new", methods=["POST"])
@client.require_admin_session()
async def create_invite() -> typing.Union[str, werkzeug.Response]:
async def create_invite() -> typing.Union[str, quart.Response]:
form = InvitePost()
circles = await client.list_groups()
form.circles.choices = [
@@ -353,7 +352,7 @@ async def create_invite() -> typing.Union[str, werkzeug.Response]:
@bp.route("/invitation/<id_>", methods=["GET", "POST"])
@client.require_admin_session()
async def edit_invite(id_: str) -> typing.Union[str, werkzeug.Response]:
async def edit_invite(id_: str) -> typing.Union[str, quart.Response]:
try:
invite_info = await client.get_invite_by_id(id_)
except aiohttp.ClientResponseError as exc:
@@ -419,7 +418,7 @@ async def circles() -> str:
@bp.route("/circle/-/new", methods=["POST"])
@client.require_admin_session()
async def create_circle() -> typing.Union[str, werkzeug.Response]:
async def create_circle() -> typing.Union[str, quart.Response]:
create_form = CirclePost()
if create_form.validate_on_submit():
circle = await client.create_group(
@@ -465,7 +464,7 @@ class EditCircleForm(BaseForm):
@bp.route("/circle/<id_>", methods=["GET", "POST"])
@client.require_admin_session()
async def edit_circle(id_: str) -> typing.Union[str, werkzeug.Response]:
async def edit_circle(id_: str) -> typing.Union[str, quart.Response]:
async with client.authenticated_session() as session:
try:
circle = await client.get_group_by_id(
@@ -627,7 +626,7 @@ class AnnouncementForm(BaseForm):
@bp.route("/system/", methods=["GET", "POST"])
@client.require_admin_session()
async def system() -> typing.Union[str, werkzeug.Response]:
async def system() -> typing.Union[str, quart.Response]:
form = AnnouncementForm()
if form.validate_on_submit():
@@ -658,7 +657,7 @@ async def system() -> typing.Union[str, werkzeug.Response]:
now = time.time()
try:
prosody_metrics = await client.get_system_metrics()
except werkzeug.exceptions.NotFound:
except quart.exceptions.NotFound:
# server does not offer the endpoint for whatever reason -- ignore
prosody_metrics = {}

View File

@@ -8,7 +8,6 @@ import quart.flask_patch # noqa:F401
from quart import (
current_app,
request,
g,
)
import flask_babel
@@ -35,7 +34,6 @@ BYTE_UNIT_SCALE_MAP = [
@babel.localeselector # type:ignore
def selected_locale() -> str:
g.language_header_accessed = True
selected = request.accept_languages.best_match(
current_app.config['LANGUAGES']
) or current_app.config['LANGUAGES'][0]
@@ -70,12 +68,6 @@ def format_bytes(n: float) -> str:
return "{}{}".format(n, unit)
def add_vary_language_header(resp: quart.Response) -> quart.Response:
if getattr(g, "language_header_accessed", False):
resp.vary.add("Accept-Language")
return resp
def init_templating(app: quart.Quart) -> None:
app.template_filter("repr")(repr)
app.template_filter("format_datetime")(flask_babel.format_datetime)
@@ -86,7 +78,6 @@ def init_templating(app: quart.Quart) -> None:
app.template_filter("format_bytes")(format_bytes)
app.template_filter("flatten")(flatten)
app.template_filter("circle_name")(circle_name)
app.after_request(add_vary_language_header)
def generate_error_id() -> str:

View File

@@ -15,8 +15,6 @@ from quart import (
session as http_session,
)
import werkzeug
import wtforms
from flask_babel import lazy_gettext as _l, gettext
@@ -48,14 +46,14 @@ def apple_store_badge() -> str:
@bp.context_processor
def context() -> typing.Dict[str, typing.Any]:
def context() -> typing.Mapping[str, typing.Any]:
return {
"apple_store_badge": apple_store_badge,
}
@bp.route("/<id_>")
async def view_old(id_: str) -> werkzeug.Response:
async def view_old(id_: str) -> quart.Response:
return redirect(url_for(".view", id_=id_))
@@ -104,7 +102,7 @@ async def view(id_: str) -> typing.Union[quart.Response,
return quart.Response(
body,
headers={
"Link": "<{}>; rel=\"alternate\"".format(invite.xmpp_uri),
"Link": "<{}> rel=\"alternate\"".format(invite.xmpp_uri),
}
)
@@ -133,7 +131,7 @@ class RegisterForm(BaseForm):
@bp.route("/<id_>/register", methods=["GET", "POST"])
async def register(id_: str) -> typing.Union[str, werkzeug.Response]:
async def register(id_: str) -> typing.Union[str, quart.Response]:
try:
invite = await client.get_public_invite_by_id(id_)
except aiohttp.ClientResponseError as exc:
@@ -201,7 +199,7 @@ class ResetForm(BaseForm):
@bp.route("/<id_>/reset", methods=["GET", "POST"])
async def reset(id_: str) -> typing.Union[str, werkzeug.Response]:
async def reset(id_: str) -> typing.Union[str, quart.Response]:
try:
invite = await client.get_public_invite_by_id(id_)
except aiohttp.ClientResponseError as exc:
@@ -302,5 +300,5 @@ async def reset_success() -> str:
@bp.route("/-")
async def index() -> werkzeug.Response:
async def index() -> quart.Response:
return redirect(url_for("index"))

View File

@@ -18,8 +18,6 @@ from quart import (
flash,
)
import werkzeug.exceptions
import babel
import wtforms
@@ -34,7 +32,7 @@ bp = quart.Blueprint("main", __name__)
class LoginForm(BaseForm):
address = wtforms.StringField(
address = wtforms.TextField(
_l("Address"),
validators=[wtforms.validators.InputRequired()],
)
@@ -50,7 +48,7 @@ class LoginForm(BaseForm):
@bp.route("/-")
async def index() -> werkzeug.Response:
async def index() -> quart.Response:
return redirect(url_for("index"))
@@ -58,7 +56,7 @@ ERR_CREDENTIALS_INVALID = _l("Invalid username or password.")
@bp.route("/login", methods=["GET", "POST"])
async def login() -> typing.Union[str, werkzeug.Response]:
async def login() -> typing.Union[str, quart.Response]:
if client.has_session and (await client.test_session()):
return redirect(url_for('user.index'))
@@ -78,7 +76,7 @@ async def login() -> typing.Union[str, werkzeug.Response]:
password = form.password.data
try:
await client.login(jid, password)
except werkzeug.exceptions.Unauthorized:
except quart.exceptions.Unauthorized:
form.password.errors.append(ERR_CREDENTIALS_INVALID)
else:
await flash(
@@ -93,30 +91,34 @@ async def login() -> typing.Union[str, werkzeug.Response]:
@bp.route("/meta/about.html")
async def about() -> str:
version = None
core_versions = {}
extra_versions = {}
if current_app.debug or client.is_admin_session:
version = _version.version
try:
core_versions["Prosody"] = await client.get_server_version()
except werkzeug.exceptions.Unauthorized:
core_versions["Prosody"] = "unknown"
if current_app.debug:
extra_versions["Quart"] = quart.__version__
extra_versions["aiohttp"] = aiohttp.__version__
extra_versions["babel"] = babel.__version__
extra_versions["wtforms"] = wtforms.__version__
extra_versions["flask-wtf"] = flask_wtf.__version__
try:
extra_versions["Prosody"] = await client.get_server_version()
except werkzeug.exceptions.Unauthorized:
except quart.exceptions.Unauthorized:
extra_versions["Prosody"] = "unknown"
return await render_template(
"about.html",
version=version,
extra_versions=extra_versions,
core_versions=core_versions,
)
@bp.route("/policies")
async def policies() -> str:
return await render_template(
"policies.html",
snikket_domain=current_app.config["SNIKKET_DOMAIN"],
retention_days=current_app.config["RETENTION_DAYS"],
operator_name=current_app.config["OPERATOR_NAME"],
provider_name=current_app.config["PROVIDER_NAME"],
)

View File

@@ -19,9 +19,7 @@ from quart import (
current_app, _app_ctx_stack, session as http_session, abort, redirect,
url_for,
)
import quart
import werkzeug.exceptions
import quart.exceptions
from . import xmpputil
from .xmpputil import split_jid
@@ -388,16 +386,16 @@ class ProsodyClient:
) -> typing.Callable[
[typing.Callable[..., typing.Awaitable[T]]],
typing.Callable[..., typing.Awaitable[
typing.Union[T, quart.Response, werkzeug.Response]]]]:
typing.Union[T, quart.Response]]]]:
def decorator(
f: typing.Callable[..., typing.Awaitable[T]],
) -> typing.Callable[..., typing.Awaitable[
typing.Union[T, quart.Response, werkzeug.Response]]]:
typing.Union[T, quart.Response]]]:
@functools.wraps(f)
async def wrapped(
*args: typing.Any,
**kwargs: typing.Any,
) -> typing.Union[T, quart.Response, werkzeug.Response]:
) -> typing.Union[T, quart.Response]:
if not self.has_session or not (await self.test_session()):
redirect_to_value = redirect_to
if redirect_to_value is not False:
@@ -417,17 +415,17 @@ class ProsodyClient:
) -> typing.Callable[
[typing.Callable[..., typing.Awaitable[T]]],
typing.Callable[..., typing.Awaitable[
typing.Union[T, quart.Response, werkzeug.Response]]]]:
typing.Union[T, quart.Response]]]]:
def decorator(
f: typing.Callable[..., typing.Awaitable[T]],
) -> typing.Callable[..., typing.Awaitable[
typing.Union[T, quart.Response, werkzeug.Response]]]:
typing.Union[T, quart.Response]]]:
@functools.wraps(f)
@self.require_session(redirect_to=redirect_to)
async def wrapped(
*args: typing.Any,
**kwargs: typing.Any,
) -> typing.Union[T, quart.Response, werkzeug.Response]:
) -> typing.Union[T, quart.Response]:
if not self.is_admin_session:
raise abort(403, "This is not for you.")
@@ -494,7 +492,7 @@ class ProsodyClient:
session=session,
)
avatar_hash = avatar_info["sha1"]
except werkzeug.exceptions.HTTPException:
except quart.exceptions.HTTPException:
avatar_hash = None
return {
@@ -646,7 +644,7 @@ class ProsodyClient:
new_access_model,
)
))
except werkzeug.exceptions.NotFound:
except quart.exceptions.NotFound:
if ignore_not_found:
return
raise
@@ -776,7 +774,7 @@ class ProsodyClient:
session: aiohttp.ClientSession,
) -> str:
access_models = filter(
lambda x: not isinstance(x, werkzeug.exceptions.NotFound),
lambda x: not isinstance(x, quart.exceptions.NotFound),
await asyncio.gather(
self.get_avatar_access_model(session=session),
self.get_nickname_access_model(session=session),

View File

@@ -80,6 +80,60 @@ img.fdroid {
height: $w-l3;
}
.tabbox {
display: flex;
flex-direction: column;
margin: $w-l1 0;
> nav.tabs {
display: flex;
flex-direction: row;
> a {
display: inline-block;
padding: $w-s2;
border-top-left-radius: $w-s4;
border-top-right-radius: $w-s4;
&, &:visited {
color: inherit;
text-decoration: underline;
text-decoration-color: $accent-500;
}
&:hover {
background: $accent-900;
border-color: $accent-800;
color: black;
}
&.active {
text-decoration: none;
background: linear-gradient(0deg, $accent-600, $accent-700);
color: $accent-200;
&:hover, &:focus {
background: linear-gradient(0deg, $accent-700, $accent-800);
}
&:active {
background: $accent-600;
}
}
}
}
> .tab-pane {
display: none;
padding: 0 $w-0;
background: $accent-900;
&.active {
display: block;
}
}
}
.qr {
margin: $w-l1 0;
display: flex;

View File

@@ -17,12 +17,9 @@
<h3>{% trans %}Trademarks{% endtrans %}</h3>
<p>{% trans trademarks_url="https://snikket.org/about/trademarks/" %}“Snikket” and the parrot logo are trademarks of Snikket Community Interest Company. For more information about the trademarks, visit the <a href="{{ trademarks_url }}">Snikket Trademarks information page</a>.{% endtrans %}
<h3>{% trans %}Software Versions{% endtrans %}</h3>
<pre>Domain: {{ config["SNIKKET_DOMAIN"] }}
Web Portal{% if version %} ({{ version }}){% endif %}
{%- if core_versions -%}
{% for name, version in core_versions.items() %}
{{ name }} ({{ version }}){% endfor %}
{%- endif -%}
<pre>Snikket Server
Domain: {{ config["SNIKKET_DOMAIN"] }}
Snikket Web Portal{% if version %} ({{ version }}){% endif %}
{%- if extra_versions -%}
{% for name, version in extra_versions.items() %}
{{ name }} ({{ version }}){% endfor %}

View File

@@ -56,7 +56,29 @@
{%- endcall -%}
</header>
<p>{% trans %}You can transfer this invite to your mobile device by scanning a code with your camera. You can use either a QR scanner app or the Snikket app itself.{% endtrans %}</p>
<div id="qr-invite-page" data-qrdata="{{ url_for(".view", id_=invite_id, _external=True, _scheme="https") }}" class="qr"></div>
<div class="tabbox">
{#- -#}
<nav class="tabs" role="tablist">
{#- -#}
<a href="#qr-info-url" class="active" role="tab" aria-controls="qr-info-url" aria-selected="true" onclick="select_tab(this); return false;">{% trans %}Using a QR code scanner{% endtrans %}</a>
{#- -#}
<a href="#qr-info-uri" role="tab" aria-controls="qr-info-uri" aria-selected="false" onclick="select_tab(this); return false;">{% trans %}Using the Snikket app{% endtrans %}</a>
{#- -#}
</nav>
{#- -#}
<div id="qr-info-url" class="tab-pane active">
<p>{% trans %}Use a <em>QR code</em> scanner on your mobile device to scan the code below:{% endtrans %}</p>
<div id="qr-invite-page" data-qrdata="{{ url_for(".view", id_=invite_id, _external=True, _scheme="https") }}" class="qr"></div>
</div>
{#- -#}
<div id="qr-info-uri" class="tab-pane">
<img class="float-right" id="tutorial-scan" aria-hidden="true" alt="" src="{{ url_for("static", filename="img/tutorial-scan.png") }}">
<p>{% trans %}Install the Snikket app on your mobile device, open it, and tap the 'Scan' button at the top.{% endtrans %}</p>
<p>{% trans %}Your camera will turn on. Point it at the square code below until it is within the highlighted square on your screen, and wait until the app recognises it.{% endtrans %}</p>
<div id="qr-uri" data-qrdata="{{ invite.xmpp_uri }}" class="qr"></div>
</div>
{#- -#}
</div>
{#- -#}
{%- call standard_button("close", "#", onclick="close_modal(this.parentNode.parentNode); return false;", class="primary") -%}
{% trans %}Close{% endtrans %}

View File

@@ -0,0 +1,131 @@
{% extends "base.html" %}
{% from "library.j2" import standard_button %}
{% block head_lead %}
<title>{% trans %}Service Policies{% endtrans %}</title>
{% endblock %}
{% block body %}
<main>
<div class="box el-2">
<h1>{% trans %}Service Policies{% endtrans %}</h1>
<p>{% trans %}Here you will find the policies and legal notices that govern your use of the {{ snikket_domain }} communication service.{% endtrans %}</p>
<p>{% trans %}If you do not agree to these policies, or are below the minimum age required to understand and consent to
these terms, you must not use this service.{% endtrans %}</p>
<p>{% trans %}This page contains the following policies:{% endtrans %}</p>
<ul>
<li><strong><a href="#tos">{% trans %}Terms of Service{% endtrans %}</a></strong> {% trans %}The terms describe the acceptable use of our service, what we expect from you and what you can expect from us.{% endtrans %}</li>
<li><strong><a href="#privacy">{% trans %}Privacy Policy{% endtrans %}</a></strong> {% trans %}The what, why and how we handle your personal data here on {{ snikket_domain }}.{% endtrans %}</li>
</ul>
<h2 id="tos">{% trans %}Terms of Service{% endtrans %}</h2>
<h3>{% trans %}1. Introduction{% endtrans %}</h3>
<p>{% trans %}Snikket is a privacy-oriented communication and messaging system that is designed to give you freedom of choice, privacy, and control over your communication and your data.{% endtrans %}</p>
<p>{% trans %}The Snikket software allows anyone to set up their own online communication service, and connect it to other services in the network. There is a global network of Snikket services online run by independent operators. When you read about the "Service" in this document, it refers to this particular Snikket messaging and communication service available at the internet address <em>{{ snikket_domain }}</em>.{% endtrans %}</p>
{%- if operator_name and provider_name -%}
<p>{% trans %}The Service is operated by <em>{{ operator_name }}</em> (us, the "Operator"), using facilities provided by <em>{{ provider_name }}</em>.{% endtrans %}</p>
{%- elif operator_name -%}
<p>{% trans %}The Service is operated by <em>{{ operator_name }}</em> (us, the "Operator").{% endtrans %}</p>
{%- else -%}
<p>{% trans %}The Service is operated privately by us (the "Operator").{% endtrans %}</p>
{%- endif -%}
<p>{% trans %}The Service is using software developed by <em>Snikket Community Interest Company</em> and community contributors (collectively "the Developers"). The Developers are not associated with this Service, and they are not responsible for its reliability, security, maintenance, messages it sends, content it hosts, or the actions and activities of the Operator and users of the Service.{% endtrans %}</p>
<p>{% trans %}"Snikket" and the parrot logo are trademarks of Snikket Community Interest Company.{% endtrans %}</p>
<h3>{% trans %}2. Your Data{% endtrans %}</h3>
<p>{% trans %}Certain data that you provide to us may be stored on your behalf to provide you with a secure, reliable and pleasant communication experience. You can request a copy of your data from the Operator at any time, and you can close your account if you no longer wish to use our service. For more information about the data we store, how long we store it for, and the purposes we store it for, please see the <a href="#privacy">Privacy Policy</a>.{% endtrans %}</p>
<p><strong>{% trans %}Legal basis for data processing.{% endtrans %}</strong> {% trans %}We process your data on the basis of Legitimate Interest. This means that we process your data only as necessary to deliver the Service, and in a manner that you understand and expect. This Legitimate Interest pertains to providing you with a secure communication service through which you may exchange messages, files and other data with other users and services. The processing of user data we undertake is necessary to provide this service.{% endtrans %}</p>
<p><strong>{% trans %}Third parties.{% endtrans %}</strong> {% trans %}Note well that, according to the nature of an open communication network, certain data you exchange with others (including messages and files) in the course of using the Service may be shared with, and possibly stored by, other users and their service operators on the basis of Legitimate Interest or any other applicable legal basis. We have no control over such copies of the data.{% endtrans %}</p>
<h3>{% trans %}3. Third-party services{% endtrans %}</h3>
<p><strong>{% trans %}Communication with third-party services.{% endtrans %}</strong> {% trans %}This Service is part of a global messaging network facilitated by standard technologies such as XMPP. In a similar fashion to the email and phone networks, this network allows people to communicate with each other even if they are using different services managed by different operators. When you communicate with users and groups that reside on other services, certain data may necessarily be exchanged with those services for the purposes of facilitating your communication. This includes your username, profile (e.g. display name and picture), messages and files that you send to the users and groups on those services.{% endtrans %}</p>
<p><strong>{% trans %}Third-party policies.{% endtrans %}</strong> {% trans %}Our Service may allow you to access, use, or interact with third-party websites, apps, content, and other products and services. When you use third-party services, their terms and privacy policies govern your use of those services.{% endtrans %}</p>
<p><strong>{% trans %}Right to be forgotten.{% endtrans %}</strong> {% trans %}Your copy of your data on {{ snikket_domain }} will be erased upon your request to us. You may also make such requests to the operators of third-party services you have communicated with, however these services are not under our control and we cannot guarantee they will forget your data. Such services can be located anywhere in the world, and are subject to local laws and regulations.{% endtrans %}</p>
<h3>{% trans %}4. Acceptable use{% endtrans %}</h3>
<p><strong>{% trans %}Legal and acceptable purposes.{% endtrans %}</strong> {% trans %}You agree to access and use the Service only for legal, authorized, and acceptable purposes. You will not use (or assist others in using) our Service in ways that: (a) violate or infringe the rights of the Operator, users, or others, including privacy, publicity, intellectual property, or other proprietary rights; (b) involve sending illegal or impermissible communications such as unsolicited bulk communications (e.g. spam).{% endtrans %}</p>
<p><strong>{% trans %}Encryption.{% endtrans %}</strong> {% trans %}In the event that you wish to use encrypted communications within the Services, it is your responsibility to ensure this is permitted in under the laws and regulations applicable to you based on where and how you use the Services.{% endtrans %}</p>
<h3>{% trans %}5. Availability of Services{% endtrans %}</h3>
<p><strong>{% trans %}General availability{% endtrans %}</strong> {% trans %}Our Services may be interrupted, including for maintenance, upgrades, or network or equipment failures. We may discontinue some or all of our Services, including certain features and the support for certain devices and platforms, at any time.{% endtrans %}</p>
<p><strong>{% trans %}Termination of access.{% endtrans %}</strong> {% trans %}We may remove your access to the Service at any time, at our sole discretion.{% endtrans %}</p>
<p><strong>{% trans %}Emergency services inaccessibility.{% endtrans %}</strong> {% trans %}The Communication Service is not to be used to make calls to any emergency services. Therefore you must arrange for other communications such as though a mobile phone or otherwise to enable you to contact any emergency services. We disclaim any liability relating to the inability to use the Communication Services in this way.{% endtrans %}</p>
<hr/>
<h2 id="privacy">{% trans %}Privacy Policy{% endtrans %}</h2>
<h3 id="what-information-does-a-snikket-service-collect">{% trans %}What information does a Snikket service collect?{% endtrans %}</h3>
<h4 id="basic-account-information">{% trans %}Basic account information{% endtrans %}</h4>
<p>{% trans %}When you create an account on this service, your username will be stored, along with a hashed version of your password.{% endtrans %}</p>
<p>{% trans %}You may additionally provide a profile picture (avatar) and display name. These will be shared with other users on the network, so they are able to identify you. You can control visibility of this information in the profile section of the {{ snikket_domain }} website.{% endtrans %}</p>
<p>{% trans %}Contacts that you add within the app will be stored in your contact list on the {{ snikket_domain }} server. This is so that the server can identify who you have permitted to view your online status, profile and other information, and to synchronize your Snikket contacts if you have multiple apps or devices.{% endtrans %}</p>
<h4 id="messages">{% trans %}Messages{% endtrans %}</h4>
<p>{% trans %}When you send or receive a message on Snikket, we store this temporarily in your personal &ldquo;message archive&rdquo; on {{ snikket_domain }}. The purpose of your message archive is to enable an app you use with your account to &ldquo;catch up&rdquo; on recent conversations. This allows Snikket to:{% endtrans %}</p>
<ul>
<li>{% trans %}ensure delivery of messages even if you are temporarily offline or
experiencing connectivity issues, and{% endtrans %}</li>
<li>{% trans %}allow synchronization of messages across multiple devices and apps
that you may use.{% endtrans %}</li>
</ul>
<p>{% trans %}The data stored for each entry in the message archive is:{% endtrans %}</p>
<ul>
<li>{% trans %}A unique identifier for the message{% endtrans %}</li>
<li>{% trans %}The time and date that the message was sent/received{% endtrans %}</li>
<li>{% trans %}The sender and recipient of the message{% endtrans %}</li>
<li>{% trans %}The message contents (encrypted according to your app&rsquo;s settings){% endtrans %}</li>
</ul>
<p>{% trans %}Entries in the message archive are stored for a minimum of {{ retention_days }} days. The server will routinely erase all entries after they have been in the archive for this amount of time.{% endtrans %}</p>
<p>{% trans %}We encourage the use of encryption of your message contents, as is the default within the Snikket app.{% endtrans %}</p>
<h4 id="uploaded-files">{% trans %}Uploaded files{% endtrans %}</h4>
<p>{% trans %}You may also use the server to upload files (including images and videos) within your conversations. These files will remain on the server for a minimum of {{ retention_days }} days. This allows your contacts time to retrieve the file, even if they are offline. Similarly to message archives, the server will routinely erase files beyond this age.{% endtrans %}</p>
<p>{% trans %}Uploaded files are assigned a long random identifier, included in the link to the file. This ensures your files can only be viewed by people you share the link with.{% endtrans %}</p>
<p>{% trans %}The server will store the following information for every shared file:{% endtrans %}</p>
<ul>
<li>{% trans %}A unique identifier{% endtrans %}</li>
<li>{% trans %}The time and date that the file was uploaded{% endtrans %}</li>
<li>{% trans %}The file name{% endtrans %}</li>
<li>{% trans %}The file size{% endtrans %}</li>
<li>{% trans %}The file type (as reported by the app){% endtrans %}</li>
<li>{% trans %}The file contents (encrypted according to your app&rsquo;s settings){% endtrans %}</li>
</ul>
<p>{% trans %}The Snikket app will automatically encrypt file contents when sharing a file within an encrypted conversation.{% endtrans %}</p>
<p>{% trans %}Once you share a file with a contact, understand that the contact may store a copy of the file on their device that is beyond our control and may remain even after the file is removed from {{ snikket_domain }}.{% endtrans %}</p>
<h4 id="access-and-network-information">{% trans %}Access and network information{% endtrans %}</h4>
<p>{% trans %}The Snikket server may record the time and general location from which you connect to your account or perform certain security-related actions, such as changing your password.{% endtrans %}</p>
<p>{% trans %}This is to help identify unauthorized access to your account, and detect when your account becomes inactive for administrative purposes (for example, so that it may be erased when no longer needed).{% endtrans %}</p>
<h4 id="cookies">{% trans %}Cookies{% endtrans %}</h4>
<p>{% trans %}When you access your account through the {{ snikket_domain }} website, one or more small pieces of data known as &ldquo;cookies&rdquo; may be stored in your web browser. These essential cookies allow us to securely identify your browser as you move between different pages on {{ snikket_domain }}, and therefore protect your account from unauthorized access. The cookies are not shared with third-parties or used for tracking, advertising or any such purposes.{% endtrans %}</p>
</div>
</main>
{% endblock %}

View File

@@ -11,8 +11,6 @@
{% call render_errors(form) %}{% endcall %}
<div class="f-bbox">
{%- call standard_button("back", url_for('.index'), class="tertiary") %}{% trans %}Back{% endtrans %}{% endcall -%}
<form method="POST">
{{ form.csrf_token }}
{%- call form_button("download", form.action_export, class="primary") %}{% endcall -%}

View File

@@ -7,295 +7,291 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-06-07 22:31+0200\n"
"PO-Revision-Date: 2022-05-30 14:01+0000\n"
"Last-Translator: Daniel Holmgaard <fovatis@tutanota.com>\n"
"Language-Team: Danish <http://i18n.sotecware.net/projects/snikket/web-portal/"
"da/>\n"
"POT-Creation-Date: 2022-01-17 17:27+0100\n"
"PO-Revision-Date: 2021-04-02 19:01+0000\n"
"Last-Translator: Daniel Holmgaard <annoncer@protonmail.com>\n"
"Language-Team: Danish <https://i18n.sotecware.net/projects/snikket/web-"
"portal/da/>\n"
"Language: da\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.8.1\n"
"X-Generator: Weblate 4.5.1\n"
"Generated-By: Babel 2.9.0\n"
#: snikket_web/admin.py:69 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/admin.py:68 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_edit_circle.html:59
#: snikket_web/templates/admin_users.html:8
msgid "Login name"
msgstr "Login-navn"
#: snikket_web/admin.py:73 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/admin.py:72 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_edit_circle.html:60
#: snikket_web/templates/admin_users.html:9 snikket_web/user.py:63
msgid "Display name"
msgstr "Kaldenavn"
#: snikket_web/admin.py:77 snikket_web/templates/admin_edit_user.html:32
#: snikket_web/admin.py:76 snikket_web/templates/admin_edit_user.html:32
msgid "Access Level"
msgstr "Adgangsniveau"
#: snikket_web/admin.py:79
#: snikket_web/admin.py:78
msgid "Limited"
msgstr "Begrænset"
#: snikket_web/admin.py:80
#: snikket_web/admin.py:79
msgid "Normal user"
msgstr "Normal bruger"
#: snikket_web/admin.py:81
#: snikket_web/admin.py:80
msgid "Administrator"
msgstr "Administrator"
#: snikket_web/admin.py:86
#: snikket_web/admin.py:85
msgid "Update user"
msgstr "Opdater bruger"
#: snikket_web/admin.py:90
#: snikket_web/admin.py:89
msgid "Create password reset link"
msgstr "Opret link til nulstilling af adgangskode"
#: snikket_web/admin.py:108
#: snikket_web/admin.py:107
msgid "Password reset link created"
msgstr "Link til nulstilling af adgangskode oprettet"
#: snikket_web/admin.py:123
#: snikket_web/admin.py:122
msgid "User information updated."
msgstr "Brugerinformation opdateret."
#: snikket_web/admin.py:145
#: snikket_web/admin.py:144
msgid "Delete user permanently"
msgstr "Slet bruger permanent"
#: snikket_web/admin.py:158
#: snikket_web/admin.py:157
msgid "User deleted"
msgstr "Bruger slettet"
#: snikket_web/admin.py:196
#: snikket_web/admin.py:195
msgid "Password reset link not found"
msgstr "Link til nulstilling af adgangskode ikke fundet"
#: snikket_web/admin.py:208
#: snikket_web/admin.py:207
msgid "Password reset link deleted"
msgstr "Link til nulstilling af adgangskode slettet"
#: snikket_web/admin.py:228
#: snikket_web/admin.py:227
msgid "Invite to circle"
msgstr "Inviter til cirkel"
#: snikket_web/admin.py:234
#: snikket_web/admin.py:233
msgid "At least one circle must be selected"
msgstr "Mindst en cirkel skal vælges"
#: snikket_web/admin.py:239
#: snikket_web/admin.py:238
msgid "Valid for"
msgstr "Gyldig for"
#: snikket_web/admin.py:241
#: snikket_web/admin.py:240
msgid "One hour"
msgstr "En time"
#: snikket_web/admin.py:242
#: snikket_web/admin.py:241
msgid "Twelve hours"
msgstr "Tolv timer"
#: snikket_web/admin.py:243
#: snikket_web/admin.py:242
msgid "One day"
msgstr "En dag"
#: snikket_web/admin.py:244
#: snikket_web/admin.py:243
msgid "One week"
msgstr "En uge"
#: snikket_web/admin.py:245
#: snikket_web/admin.py:244
msgid "Four weeks"
msgstr "Fire uger"
#: snikket_web/admin.py:251 snikket_web/templates/admin_edit_invite.html:17
#: snikket_web/admin.py:250 snikket_web/templates/admin_edit_invite.html:17
msgid "Invitation type"
msgstr "Invitationstype"
#: snikket_web/admin.py:253 snikket_web/templates/library.j2:116
#: snikket_web/admin.py:252 snikket_web/templates/library.j2:116
msgid "Individual"
msgstr "Individuel"
#: snikket_web/admin.py:254 snikket_web/templates/library.j2:114
#: snikket_web/admin.py:253 snikket_web/templates/library.j2:114
msgid "Group"
msgstr "Gruppe"
#: snikket_web/admin.py:260
#: snikket_web/admin.py:259
msgid "New invitation link"
msgstr "Ny invitationslink"
#: snikket_web/admin.py:322
#: snikket_web/admin.py:321
msgid "Revoke"
msgstr "Tilbagekald"
#: snikket_web/admin.py:346
#: snikket_web/admin.py:345
msgid "Invitation created"
msgstr "Invitation oprettet"
#: snikket_web/admin.py:362
#: snikket_web/admin.py:361
msgid "No such invitation exists"
msgstr "Denne invitation findes ikke"
#: snikket_web/admin.py:377
#: snikket_web/admin.py:376
msgid "Invitation revoked"
msgstr "Invitation tilbagekaldt"
#: snikket_web/admin.py:394 snikket_web/admin.py:442
#: snikket_web/admin.py:393 snikket_web/admin.py:441
msgid "Name"
msgstr "Navn"
#: snikket_web/admin.py:399 snikket_web/templates/admin_circles.html:47
#: snikket_web/admin.py:398 snikket_web/templates/admin_circles.html:47
msgid "Create circle"
msgstr "Opret cirkel"
#: snikket_web/admin.py:429
#: snikket_web/admin.py:428
msgid "Circle created"
msgstr "Cirkel oprettet"
#: snikket_web/admin.py:447
#: snikket_web/admin.py:446
msgid "Select user"
msgstr "Vælg bruger"
#: snikket_web/admin.py:452
#: snikket_web/admin.py:451
msgid "Update circle"
msgstr "Opdater cirkel"
#: snikket_web/admin.py:456
#: snikket_web/admin.py:455
msgid "Delete circle permanently"
msgstr "Slet cirkel permanent"
#: snikket_web/admin.py:462
#: snikket_web/admin.py:461
msgid "Add user"
msgstr "Tilføj bruger"
#: snikket_web/admin.py:478
#: snikket_web/admin.py:477
msgid "No such circle exists"
msgstr "Denne cirkel findes ikke"
#: snikket_web/admin.py:515
#: snikket_web/admin.py:514
msgid "Circle data updated"
msgstr "Cirkel-data opdateret"
#: snikket_web/admin.py:521
#: snikket_web/admin.py:520
msgid "Circle deleted"
msgstr "Cirkel slettet"
#: snikket_web/admin.py:532
#: snikket_web/admin.py:531
msgid "User added to circle"
msgstr "Bruger tilføjet til cirkel"
#: snikket_web/admin.py:541
#: snikket_web/admin.py:540
msgid "User removed from circle"
msgstr "Bruger fjernet fra cirkel"
#: snikket_web/admin.py:610
#: snikket_web/admin.py:609
msgid "Message contents"
msgstr "Meddelelsens indhold"
msgstr ""
#: snikket_web/admin.py:616
#: snikket_web/admin.py:615
msgid "Only send to online users"
msgstr "Send kun til online brugere"
msgstr ""
#: snikket_web/admin.py:620
#: snikket_web/admin.py:619
msgid "Post to all users"
msgstr "Send til alle brugere"
msgstr ""
#: snikket_web/admin.py:624
#: snikket_web/admin.py:623
msgid "Send preview to yourself"
msgstr "Send forhåndsvisning til dig selv"
msgstr ""
#: snikket_web/admin.py:646
#: snikket_web/admin.py:645
msgid "Announcement sent!"
msgstr "Bekendgørelse sendt!"
msgstr ""
#: snikket_web/infra.py:53
#: snikket_web/infra.py:51
msgid "Main"
msgstr "Hoved"
#: snikket_web/invite.py:35
#: snikket_web/invite.py:33
msgid ""
"The account data you tried to import is too large to upload. Please contact "
"your Snikket operator."
msgstr ""
"De kontodata, du forsøgte at importere, er for store til at uploade. Kontakt "
"din Snikket-operatør."
#: snikket_web/invite.py:114
#: snikket_web/invite.py:112
msgid "Username"
msgstr "Brugernavn"
#: snikket_web/invite.py:118 snikket_web/invite.py:186 snikket_web/main.py:43
#: snikket_web/invite.py:116 snikket_web/invite.py:184 snikket_web/main.py:41
msgid "Password"
msgstr "Adgangskode"
#: snikket_web/invite.py:122 snikket_web/invite.py:190
#: snikket_web/invite.py:120 snikket_web/invite.py:188
msgid "Confirm password"
msgstr "Bekræft adgangskode"
#: snikket_web/invite.py:126 snikket_web/invite.py:194
#: snikket_web/invite.py:124 snikket_web/invite.py:192
msgid "The passwords must match."
msgstr "Adgangskoderne skal matche."
#: snikket_web/invite.py:131
#: snikket_web/invite.py:129
msgid "Create account"
msgstr "Opret konto"
#: snikket_web/invite.py:158
#: snikket_web/invite.py:156
msgid "That username is already taken."
msgstr "Det brugernavn er allerede taget."
#: snikket_web/invite.py:162 snikket_web/invite.py:227
#: snikket_web/invite.py:160 snikket_web/invite.py:225
msgid "Registration was declined for unknown reasons."
msgstr "Registrering blev afvist af ukendte årsager."
#: snikket_web/invite.py:166
#: snikket_web/invite.py:164
msgid "The username is not valid."
msgstr "Brugernavnet er ikke gyldigt."
#: snikket_web/invite.py:199 snikket_web/templates/user_home.html:32
#: snikket_web/invite.py:197 snikket_web/templates/user_home.html:32
#: snikket_web/templates/user_passwd.html:29
msgid "Change password"
msgstr "Ændr adgangskode"
#: snikket_web/invite.py:246
#: snikket_web/invite.py:244
msgid "Account data file"
msgstr "Kontodatafil"
msgstr ""
#: snikket_web/invite.py:250
#: snikket_web/invite.py:248
msgid "Import data"
msgstr "Importer data"
msgstr ""
#: snikket_web/invite.py:271
#: snikket_web/invite.py:269
#, python-format
msgid ""
"The account data you tried to import is in an unknown format. Please upload "
"an XML file in XEP-0227 format (provided format: %(mimetype)s)."
msgstr ""
"De kontodata, du forsøgte at importere, er i et ukendt format. Upload en XML-"
"fil i XEP-0227-format (forudsat format: %(mimetype)s)."
#: snikket_web/invite.py:291 snikket_web/templates/unauth.html:18
#: snikket_web/invite.py:289 snikket_web/templates/unauth.html:18
#: snikket_web/user.py:178
msgid "Error"
msgstr "Fejl"
#: snikket_web/main.py:38
#: snikket_web/main.py:36
msgid "Address"
msgstr "Adresse"
#: snikket_web/main.py:48
#: snikket_web/main.py:46
msgid "Sign in"
msgstr "Log ind"
#: snikket_web/main.py:57
#: snikket_web/main.py:55
msgid "Invalid username or password."
msgstr "Ugyldigt brugernavn eller adgangskode."
#: snikket_web/main.py:85
#: snikket_web/main.py:83
msgid "Login successful!"
msgstr "Login lykkedes!"
@@ -345,11 +341,11 @@ msgstr "Opdater profil"
#: snikket_web/user.py:82
msgid "Account data"
msgstr "Kontodata"
msgstr ""
#: snikket_web/user.py:86
msgid "Upload"
msgstr "Upload"
msgstr ""
#: snikket_web/user.py:111
msgid "Incorrect password."
@@ -373,11 +369,11 @@ msgstr "Profil opdateret"
#: snikket_web/user.py:184
msgid "Export"
msgstr "Exporter"
msgstr ""
#: snikket_web/user.py:202
msgid "You currently have no account data to export."
msgstr "Du har i øjeblikket ingen kontodata at eksportere."
msgstr ""
#: snikket_web/templates/_footer.html:4
#, python-format
@@ -469,7 +465,7 @@ msgstr ""
msgid "Software Versions"
msgstr "Software versioner"
#: snikket_web/templates/about.html:32
#: snikket_web/templates/about.html:29
msgid "Back to the main page"
msgstr "Tilbage til hovedsiden"
@@ -615,7 +611,6 @@ msgstr ""
#: snikket_web/templates/admin_delete_user.html:19
#: snikket_web/templates/admin_reset_user_password.html:25
#: snikket_web/templates/user_logout.html:10
#: snikket_web/templates/user_manage_data.html:14
#: snikket_web/templates/user_passwd.html:27
#: snikket_web/templates/user_profile.html:32
msgid "Back"
@@ -667,7 +662,7 @@ msgstr "Cirkel medlemmer"
#: snikket_web/templates/admin_edit_circle.html:71
msgid "The user has been deleted from the server."
msgstr "Brugeren er blevet slettet fra serveren."
msgstr ""
#: snikket_web/templates/admin_edit_circle.html:71
#: snikket_web/templates/library.j2:108
@@ -881,21 +876,22 @@ msgstr "Håndter invitationer"
#: snikket_web/templates/admin_home.html:35
msgid "System health"
msgstr "Systemets sundhed"
msgstr ""
#: snikket_web/templates/admin_home.html:38
msgid "View the server status or send a broadcast message to all users."
msgstr ""
"Vis serverstatus, eller send en udsendelsesmeddelelse til alle brugere."
#: snikket_web/templates/admin_home.html:40
msgid "Send a broadcast message to all users."
msgstr "Send en udsendelsesmeddelelse til alle brugere."
msgstr ""
#: snikket_web/templates/admin_home.html:43
#: snikket_web/templates/admin_system.html:4
#, fuzzy
#| msgid "Manage users"
msgid "Manage system"
msgstr "Håndter system"
msgstr "Håndter brugere"
#: snikket_web/templates/admin_home.html:48
msgid "Go back to your user's web portal page."
@@ -956,11 +952,11 @@ msgstr "Ødelæg link"
#: snikket_web/templates/admin_system.html:6
msgid "Overall system status"
msgstr "Samlet systemstatus"
msgstr ""
#: snikket_web/templates/admin_system.html:9
msgid "System load (5 minute average)"
msgstr "Systembelastning (5 minutters gennemsnit)"
msgstr ""
#: snikket_web/templates/admin_system.html:14
#: snikket_web/templates/admin_system.html:22
@@ -971,11 +967,11 @@ msgstr "Systembelastning (5 minutters gennemsnit)"
#: snikket_web/templates/admin_system.html:76
#: snikket_web/templates/admin_system.html:84
msgid "unknown"
msgstr "ukendt"
msgstr ""
#: snikket_web/templates/admin_system.html:17
msgid "Memory use"
msgstr "Forbrug af hukommelse"
msgstr ""
#: snikket_web/templates/admin_system.html:20
#, python-format
@@ -983,56 +979,54 @@ msgid ""
"%(percentage_global)s of %(mem_available)s. Of that, Snikket uses "
"%(percentage_snikket)s."
msgstr ""
"%(percentage_global)s af %(mem_available)s. Der af bruger Snikket "
"%(percentage_snikket)s."
#: snikket_web/templates/admin_system.html:27
msgid "Web portal status"
msgstr "Webportalens status"
msgstr ""
#: snikket_web/templates/admin_system.html:30
#: snikket_web/templates/admin_system.html:53
msgid "Version"
msgstr "Version"
msgstr ""
#: snikket_web/templates/admin_system.html:31
#: snikket_web/templates/admin_system.html:54
msgid "View all versions"
msgstr "Vis alle versioner"
msgstr ""
#: snikket_web/templates/admin_system.html:32
#: snikket_web/templates/admin_system.html:55
msgid "Average CPU use"
msgstr "Gennemsnitlig CPU-forbrug"
msgstr ""
#: snikket_web/templates/admin_system.html:40
#: snikket_web/templates/admin_system.html:63
msgid "Current memory use"
msgstr "Nuværende hukommelsesbrug"
msgstr ""
#: snikket_web/templates/admin_system.html:50
#, fuzzy
#| msgid "Snikket Web Portal"
msgid "Snikket server status"
msgstr "Snikket server status"
msgstr "Snikket Webportal"
#: snikket_web/templates/admin_system.html:71
msgid "Storage used by shared files"
msgstr "Lagerplads, der bruges af delte filer"
msgstr ""
#: snikket_web/templates/admin_system.html:79
msgid "Connected devices"
msgstr "Forbundet enheder"
msgstr ""
#: snikket_web/templates/admin_system.html:90
msgid "Broadcast message"
msgstr "Send besked"
msgstr ""
#: snikket_web/templates/admin_system.html:92
msgid ""
"This form allows you to send a message to all users currently online on your "
"Snikket server. Use it wisely."
msgstr ""
"Denne formular giver dig mulighed for at sende en besked til alle brugere, "
"der i øjeblikket er online på din Snikket-server. Brug den med omtanke."
#: snikket_web/templates/admin_users.html:19
msgid "The user is an administrator."
@@ -1142,8 +1136,8 @@ msgstr "App allerede installeret?"
#: snikket_web/templates/invite_register.html:16
#: snikket_web/templates/invite_reset_view.html:21
#: snikket_web/templates/invite_view.html:41
#: snikket_web/templates/invite_view.html:84
#: snikket_web/templates/invite_view.html:112
#: snikket_web/templates/invite_view.html:106
#: snikket_web/templates/invite_view.html:134
msgid "Open the app"
msgstr "Åben appen"
@@ -1244,6 +1238,7 @@ msgstr ""
"Skan-knappen øverst."
#: snikket_web/templates/invite_reset_view.html:26
#: snikket_web/templates/invite_view.html:77
msgid ""
"Your camera will turn on. Point it at the square code below until it is "
"within the highlighted square on your screen, and wait until the app "
@@ -1305,20 +1300,22 @@ msgid ""
"You can now safely close this page, or log in to the web portal to <a href="
"\"%(login_url)s\">manage your account</a>."
msgstr ""
"Du kan nu trygt lukke denne side eller logge ind på webportalen for at <a "
"href=\"%(login_url)s\">administrere din konto</a>."
#: snikket_web/templates/invite_success.html:21
#, fuzzy
#| msgid "Operation successful"
msgid "Import successful"
msgstr "Importering lykkes"
msgstr "Operation lykkes"
#: snikket_web/templates/invite_success.html:22
msgid "Congratulations! Your account data has been successfully imported."
msgstr "Tillykke! Dine kontodata er blevet importeret."
msgstr ""
#: snikket_web/templates/invite_success.html:26
#, fuzzy
#| msgid "Using the Snikket app"
msgid "Moving to Snikket?"
msgstr "Flytte til Snikket?"
msgstr "Bruger Snikket appen"
#: snikket_web/templates/invite_success.html:27
msgid ""
@@ -1327,14 +1324,10 @@ msgid ""
"information, etc.) from your previous account. When you have exported the "
"data from your previous account, upload it using the form below."
msgstr ""
"Hvis du flytter fra en anden Snikket-platform eller en anden XMPP-kompatibel "
"tjeneste, kan du eventuelt importere dataene (kontakter, profiloplysninger "
"osv.) fra din tidligere konto. Når du har eksporteret dataene fra din "
"tidligere konto, skal du uploade dem ved hjælp af nedenstående formular."
#: snikket_web/templates/invite_success.html:30
msgid "Upload account data"
msgstr "Upload kontodata"
msgstr ""
#: snikket_web/templates/invite_view.html:6
#, python-format
@@ -1381,7 +1374,7 @@ msgid "Get it on Google Play"
msgstr "Få den i Google Play"
#: snikket_web/templates/invite_view.html:30
#: snikket_web/templates/invite_view.html:80
#: snikket_web/templates/invite_view.html:102
msgid "Download on the App Store"
msgstr "Download i App Store"
@@ -1417,11 +1410,11 @@ msgid "Scan invite code"
msgstr "Skan invitationskode"
#: snikket_web/templates/invite_view.html:55
#: snikket_web/templates/invite_view.html:62
#: snikket_web/templates/invite_view.html:74
#: snikket_web/templates/invite_view.html:90
#: snikket_web/templates/invite_view.html:102
#: snikket_web/templates/invite_view.html:118
#: snikket_web/templates/invite_view.html:84
#: snikket_web/templates/invite_view.html:96
#: snikket_web/templates/invite_view.html:112
#: snikket_web/templates/invite_view.html:124
#: snikket_web/templates/invite_view.html:140
msgid "Close"
msgstr "Luk"
@@ -1434,11 +1427,34 @@ msgstr ""
"med dit kamera. Du kan bruge enten en QR-skanner-app eller selve Snikket-"
"appen."
#: snikket_web/templates/invite_view.html:71
#: snikket_web/templates/invite_view.html:63
msgid "Using a QR code scanner"
msgstr "Bruger en QR kode skanner"
#: snikket_web/templates/invite_view.html:65
msgid "Using the Snikket app"
msgstr "Bruger Snikket appen"
#: snikket_web/templates/invite_view.html:70
msgid ""
"Use a <em>QR code</em> scanner on your mobile device to scan the code below:"
msgstr ""
"Brug en <em>QR code</em> skanner på din mobilenhed for at skanne "
"nedenstående kode:"
#: snikket_web/templates/invite_view.html:76
msgid ""
"Install the Snikket app on your mobile device, open it, and tap the 'Scan' "
"button at the top."
msgstr ""
"Installer Snikket-appen på din mobilenhed, åbn den, og tryk på knappen "
"'Skan' øverst."
#: snikket_web/templates/invite_view.html:93
msgid "Install on iOS"
msgstr "Installer på iOS"
#: snikket_web/templates/invite_view.html:77
#: snikket_web/templates/invite_view.html:99
msgid ""
"After downloading Snikket from the App Store, you have to return to this "
"invite link and tap on \"Open the app\" to proceed."
@@ -1446,12 +1462,12 @@ msgstr ""
"Efter download af Snikket fra App Store, skal du vende tilbage til dette "
"invitationslink og trykke på \"Åbn appen\" for at fortsætte."
#: snikket_web/templates/invite_view.html:79
#: snikket_web/templates/invite_view.html:101
msgid "First download Snikket from the App Store using the button below:"
msgstr "Download først Snikket fra App Store ved hjælp af nedenstående knap:"
#: snikket_web/templates/invite_view.html:81
#: snikket_web/templates/invite_view.html:109
#: snikket_web/templates/invite_view.html:103
#: snikket_web/templates/invite_view.html:131
msgid ""
"After the installation is complete, you can return to this page and tap the "
"\"Open the app\" button to continue with the setup:"
@@ -1459,12 +1475,12 @@ msgstr ""
"Når installationen er afsluttet, kan du vende tilbage til denne side og "
"trykke på knappen \"Åbn appen\" for at fortsætte med opsætningen:"
#: snikket_web/templates/invite_view.html:99
#: snikket_web/templates/invite_view.html:108
#: snikket_web/templates/invite_view.html:121
#: snikket_web/templates/invite_view.html:130
msgid "Install via F-Droid"
msgstr "Installer via F-droid"
#: snikket_web/templates/invite_view.html:105
#: snikket_web/templates/invite_view.html:127
msgid ""
"After installing Snikket via F-Droid, you have to return to this invite link "
"and tap on \"Open the app\" to proceed."
@@ -1472,7 +1488,7 @@ msgstr ""
"Efter installation af Snikket via F-Droid, skal du vende tilbage til dette "
"invitationslink og trykke på \"Åbn appen\" for at fortsætte."
#: snikket_web/templates/invite_view.html:107
#: snikket_web/templates/invite_view.html:129
msgid "First install Snikket from F-Droid using the button below:"
msgstr "Installer først Snikket fra F-Droid ved hjælp af knappen nedenfor:"
@@ -1542,8 +1558,10 @@ msgstr "Rediger profil"
#: snikket_web/templates/user_home.html:33
#: snikket_web/templates/user_manage_data.html:4
#, fuzzy
#| msgid "Manage users"
msgid "Manage your data"
msgstr "Håndter dine data"
msgstr "Håndter brugere"
#: snikket_web/templates/user_home.html:39
msgid "Your Snikket"
@@ -1570,16 +1588,16 @@ msgstr ""
"af de forbundne enheder."
#: snikket_web/templates/user_manage_data.html:8
#, fuzzy
#| msgid "Your account"
msgid "Export account"
msgstr "Eksporter konto"
msgstr "Din konto"
#: snikket_web/templates/user_manage_data.html:9
msgid ""
"Download your account data as a file for backup purposes or to move your "
"account to another service."
msgstr ""
"Download dine kontodata som en fil til sikkerhedskopieringsformål eller for "
"at flytte din konto til en anden tjeneste."
#: snikket_web/templates/user_passwd.html:5
msgid "Change your password"
@@ -1623,26 +1641,6 @@ msgstr ""
"Denne sektion tillader dig at kontrollere, hvem der kan se din profil "
"informationer, så som avatar og kaldenavn."
#~ msgid "Using a QR code scanner"
#~ msgstr "Bruger en QR kode skanner"
#~ msgid "Using the Snikket app"
#~ msgstr "Bruger Snikket appen"
#~ msgid ""
#~ "Use a <em>QR code</em> scanner on your mobile device to scan the code "
#~ "below:"
#~ msgstr ""
#~ "Brug en <em>QR code</em> skanner på din mobilenhed for at skanne "
#~ "nedenstående kode:"
#~ msgid ""
#~ "Install the Snikket app on your mobile device, open it, and tap the "
#~ "'Scan' button at the top."
#~ msgstr ""
#~ "Installer Snikket-appen på din mobilenhed, åbn den, og tryk på knappen "
#~ "'Skan' øverst."
#~ msgid "Create password reset link for %(user_name)s"
#~ msgstr "Opret link til nulstilling af adgangskode til %(user_name)s"

View File

@@ -6,8 +6,8 @@
msgid ""
msgstr ""
"Project-Id-Version: SnikketWeb 0.1.0\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-06-07 22:31+0200\n"
"Report-Msgid-Bugs-To: translations@snikket.org\n"
"POT-Creation-Date: 2022-01-17 17:27+0100\n"
"PO-Revision-Date: 2022-01-18 14:59+0000\n"
"Last-Translator: Jonas Schäfer <jonas@zombofant.net>\n"
"Language-Team: German <http://i18n.sotecware.net/projects/snikket/web-portal/"
@@ -20,255 +20,255 @@ msgstr ""
"X-Generator: Weblate 4.8.1\n"
"Generated-By: Babel 2.9.0\n"
#: snikket_web/admin.py:69 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/admin.py:68 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_edit_circle.html:59
#: snikket_web/templates/admin_users.html:8
msgid "Login name"
msgstr "Anmeldename"
#: snikket_web/admin.py:73 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/admin.py:72 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_edit_circle.html:60
#: snikket_web/templates/admin_users.html:9 snikket_web/user.py:63
msgid "Display name"
msgstr "Anzeigename"
#: snikket_web/admin.py:77 snikket_web/templates/admin_edit_user.html:32
#: snikket_web/admin.py:76 snikket_web/templates/admin_edit_user.html:32
msgid "Access Level"
msgstr "Berechtigungen"
#: snikket_web/admin.py:79
#: snikket_web/admin.py:78
msgid "Limited"
msgstr "Eingeschränkt"
#: snikket_web/admin.py:80
#: snikket_web/admin.py:79
msgid "Normal user"
msgstr "Normaler Benutzer"
#: snikket_web/admin.py:81
#: snikket_web/admin.py:80
msgid "Administrator"
msgstr "Administrator"
#: snikket_web/admin.py:86
#: snikket_web/admin.py:85
msgid "Update user"
msgstr "Benutzer ändern"
#: snikket_web/admin.py:90
#: snikket_web/admin.py:89
msgid "Create password reset link"
msgstr "Passwort-Link erzeugen"
#: snikket_web/admin.py:108
#: snikket_web/admin.py:107
msgid "Password reset link created"
msgstr "Link zum Zurücksetzen des Passwortes erzeugt"
#: snikket_web/admin.py:123
#: snikket_web/admin.py:122
msgid "User information updated."
msgstr "Benutzerinformationen gespeichert."
#: snikket_web/admin.py:145
#: snikket_web/admin.py:144
msgid "Delete user permanently"
msgstr "Benutzer endgültig löschen"
#: snikket_web/admin.py:158
#: snikket_web/admin.py:157
msgid "User deleted"
msgstr "Benutzer gelöscht"
#: snikket_web/admin.py:196
#: snikket_web/admin.py:195
msgid "Password reset link not found"
msgstr "Link zum Zurücksetzen des Passwortes nicht gefunden"
#: snikket_web/admin.py:208
#: snikket_web/admin.py:207
msgid "Password reset link deleted"
msgstr "Link gelöscht"
#: snikket_web/admin.py:228
#: snikket_web/admin.py:227
msgid "Invite to circle"
msgstr "In Gemeinschaft einladen"
#: snikket_web/admin.py:234
#: snikket_web/admin.py:233
msgid "At least one circle must be selected"
msgstr "Mindestens eine Gemeinschaft muss ausgewählt sein"
#: snikket_web/admin.py:239
#: snikket_web/admin.py:238
msgid "Valid for"
msgstr "Gültig für"
#: snikket_web/admin.py:241
#: snikket_web/admin.py:240
msgid "One hour"
msgstr "Eine Stunde"
#: snikket_web/admin.py:242
#: snikket_web/admin.py:241
msgid "Twelve hours"
msgstr "Zwölf Stunden"
#: snikket_web/admin.py:243
#: snikket_web/admin.py:242
msgid "One day"
msgstr "Ein Tag"
#: snikket_web/admin.py:244
#: snikket_web/admin.py:243
msgid "One week"
msgstr "Eine Woche"
#: snikket_web/admin.py:245
#: snikket_web/admin.py:244
msgid "Four weeks"
msgstr "Vier Wochen"
#: snikket_web/admin.py:251 snikket_web/templates/admin_edit_invite.html:17
#: snikket_web/admin.py:250 snikket_web/templates/admin_edit_invite.html:17
msgid "Invitation type"
msgstr "Art der Einladung"
#: snikket_web/admin.py:253 snikket_web/templates/library.j2:116
#: snikket_web/admin.py:252 snikket_web/templates/library.j2:116
msgid "Individual"
msgstr "Einzelperson"
#: snikket_web/admin.py:254 snikket_web/templates/library.j2:114
#: snikket_web/admin.py:253 snikket_web/templates/library.j2:114
msgid "Group"
msgstr "Gruppe"
#: snikket_web/admin.py:260
#: snikket_web/admin.py:259
msgid "New invitation link"
msgstr "Neuer Einladungslink"
#: snikket_web/admin.py:322
#: snikket_web/admin.py:321
msgid "Revoke"
msgstr "Löschen"
#: snikket_web/admin.py:346
#: snikket_web/admin.py:345
msgid "Invitation created"
msgstr "Einladung angelegt"
#: snikket_web/admin.py:362
#: snikket_web/admin.py:361
msgid "No such invitation exists"
msgstr "Diese Einladung existiert nicht"
#: snikket_web/admin.py:377
#: snikket_web/admin.py:376
msgid "Invitation revoked"
msgstr "Einladung gelöscht"
#: snikket_web/admin.py:394 snikket_web/admin.py:442
#: snikket_web/admin.py:393 snikket_web/admin.py:441
msgid "Name"
msgstr "Name"
#: snikket_web/admin.py:399 snikket_web/templates/admin_circles.html:47
#: snikket_web/admin.py:398 snikket_web/templates/admin_circles.html:47
msgid "Create circle"
msgstr "Gemeinschaft gründen"
#: snikket_web/admin.py:429
#: snikket_web/admin.py:428
msgid "Circle created"
msgstr "Gemeinschaft gegründet"
#: snikket_web/admin.py:447
#: snikket_web/admin.py:446
msgid "Select user"
msgstr "Benutzer auswählen"
#: snikket_web/admin.py:452
#: snikket_web/admin.py:451
msgid "Update circle"
msgstr "Gemeinschaft ändern"
#: snikket_web/admin.py:456
#: snikket_web/admin.py:455
msgid "Delete circle permanently"
msgstr "Gemeinschaft endgültig löschen"
#: snikket_web/admin.py:462
#: snikket_web/admin.py:461
msgid "Add user"
msgstr "Benutzer hinzufügen"
#: snikket_web/admin.py:478
#: snikket_web/admin.py:477
msgid "No such circle exists"
msgstr "Diese Gemeinschaft existiert nicht"
#: snikket_web/admin.py:515
#: snikket_web/admin.py:514
msgid "Circle data updated"
msgstr "Gemeinschaftsdaten aktualisiert"
#: snikket_web/admin.py:521
#: snikket_web/admin.py:520
msgid "Circle deleted"
msgstr "Gemeinschaft gelöscht"
#: snikket_web/admin.py:532
#: snikket_web/admin.py:531
msgid "User added to circle"
msgstr "Benutzer zur Gemeinschaft hinzugefügt"
#: snikket_web/admin.py:541
#: snikket_web/admin.py:540
msgid "User removed from circle"
msgstr "Benutzer aus der Gemeinschaft entfernt"
#: snikket_web/admin.py:610
#: snikket_web/admin.py:609
msgid "Message contents"
msgstr "Nachrichteninhalt"
#: snikket_web/admin.py:616
#: snikket_web/admin.py:615
msgid "Only send to online users"
msgstr "Nur an verbundene Benutzer senden"
#: snikket_web/admin.py:620
#: snikket_web/admin.py:619
msgid "Post to all users"
msgstr "An alle Benutzer senden"
#: snikket_web/admin.py:624
#: snikket_web/admin.py:623
msgid "Send preview to yourself"
msgstr "Vorschau an dich selbst senden"
#: snikket_web/admin.py:646
#: snikket_web/admin.py:645
msgid "Announcement sent!"
msgstr "Ankündigung verschickt!"
#: snikket_web/infra.py:53
#: snikket_web/infra.py:51
msgid "Main"
msgstr "Kern"
#: snikket_web/invite.py:35
#: snikket_web/invite.py:33
msgid ""
"The account data you tried to import is too large to upload. Please contact "
"your Snikket operator."
msgstr ""
"Der Kontoexport ist zu groß. Bitte kontaktiere deinen Snikket-Betreiber."
#: snikket_web/invite.py:114
#: snikket_web/invite.py:112
msgid "Username"
msgstr "Benutzername"
#: snikket_web/invite.py:118 snikket_web/invite.py:186 snikket_web/main.py:43
#: snikket_web/invite.py:116 snikket_web/invite.py:184 snikket_web/main.py:41
msgid "Password"
msgstr "Passwort"
#: snikket_web/invite.py:122 snikket_web/invite.py:190
#: snikket_web/invite.py:120 snikket_web/invite.py:188
msgid "Confirm password"
msgstr "Passwort (Bestätigung)"
#: snikket_web/invite.py:126 snikket_web/invite.py:194
#: snikket_web/invite.py:124 snikket_web/invite.py:192
msgid "The passwords must match."
msgstr "Die Passwörter müssen übereinstimmen."
#: snikket_web/invite.py:131
#: snikket_web/invite.py:129
msgid "Create account"
msgstr "Konto anlegen"
#: snikket_web/invite.py:158
#: snikket_web/invite.py:156
msgid "That username is already taken."
msgstr "Dieser Benutzername ist bereits belegt."
#: snikket_web/invite.py:162 snikket_web/invite.py:227
#: snikket_web/invite.py:160 snikket_web/invite.py:225
msgid "Registration was declined for unknown reasons."
msgstr "Die Registrierung wurde aus unbekannten Gründen abgelehnt."
#: snikket_web/invite.py:166
#: snikket_web/invite.py:164
msgid "The username is not valid."
msgstr "Der Benutzername ist ungültig."
#: snikket_web/invite.py:199 snikket_web/templates/user_home.html:32
#: snikket_web/invite.py:197 snikket_web/templates/user_home.html:32
#: snikket_web/templates/user_passwd.html:29
msgid "Change password"
msgstr "Passwort ändern"
#: snikket_web/invite.py:246
#: snikket_web/invite.py:244
msgid "Account data file"
msgstr "Kontoexportdatei"
#: snikket_web/invite.py:250
#: snikket_web/invite.py:248
msgid "Import data"
msgstr "Daten importieren"
#: snikket_web/invite.py:271
#: snikket_web/invite.py:269
#, python-format
msgid ""
"The account data you tried to import is in an unknown format. Please upload "
@@ -277,24 +277,24 @@ msgstr ""
"Der Kontoexport ist in einem unbekannten Format. Es können nur XML-Dateien "
"im XEP-0227-Format verarbeitet werden (erhaltenes Format: %(mimetype)s)."
#: snikket_web/invite.py:291 snikket_web/templates/unauth.html:18
#: snikket_web/invite.py:289 snikket_web/templates/unauth.html:18
#: snikket_web/user.py:178
msgid "Error"
msgstr "Fehler"
#: snikket_web/main.py:38
#: snikket_web/main.py:36
msgid "Address"
msgstr "Adresse"
#: snikket_web/main.py:48
#: snikket_web/main.py:46
msgid "Sign in"
msgstr "Anmelden"
#: snikket_web/main.py:57
#: snikket_web/main.py:55
msgid "Invalid username or password."
msgstr "Benutzername oder Passwort falsch."
#: snikket_web/main.py:85
#: snikket_web/main.py:83
msgid "Login successful!"
msgstr "Anmeldung erfolgreich!"
@@ -469,7 +469,7 @@ msgstr ""
msgid "Software Versions"
msgstr "Softwareversionen"
#: snikket_web/templates/about.html:32
#: snikket_web/templates/about.html:29
msgid "Back to the main page"
msgstr "Zurück zur Hauptseite"
@@ -616,7 +616,6 @@ msgstr ""
#: snikket_web/templates/admin_delete_user.html:19
#: snikket_web/templates/admin_reset_user_password.html:25
#: snikket_web/templates/user_logout.html:10
#: snikket_web/templates/user_manage_data.html:14
#: snikket_web/templates/user_passwd.html:27
#: snikket_web/templates/user_profile.html:32
msgid "Back"
@@ -1154,8 +1153,8 @@ msgstr "App schon installiert?"
#: snikket_web/templates/invite_register.html:16
#: snikket_web/templates/invite_reset_view.html:21
#: snikket_web/templates/invite_view.html:41
#: snikket_web/templates/invite_view.html:84
#: snikket_web/templates/invite_view.html:112
#: snikket_web/templates/invite_view.html:106
#: snikket_web/templates/invite_view.html:134
msgid "Open the app"
msgstr "App öffnen"
@@ -1257,6 +1256,7 @@ msgstr ""
"Das geht mit Hilfe des Scan-Knopfes in der oberen Leiste."
#: snikket_web/templates/invite_reset_view.html:26
#: snikket_web/templates/invite_view.html:77
msgid ""
"Your camera will turn on. Point it at the square code below until it is "
"within the highlighted square on your screen, and wait until the app "
@@ -1344,10 +1344,10 @@ msgid ""
"data from your previous account, upload it using the form below."
msgstr ""
"Wenn du dabei bist, dein Konto von einer anderen Snikket-Instanz oder XMPP-"
"kompatiblen Dienst umzuziehen, kannst du optional deine Kontodaten "
"(Kontakte, Profilinformationen etc.) von deinem vorherigen Konto "
"importieren. Wenn du die Daten von deinem alten Konto exportiert hast, lade "
"sie mit dem untenstehenden Formular hoch."
"kompatiblen Dienst umzuziehen, kannst du optional deine Kontodaten ("
"Kontakte, Profilinformationen etc.) von deinem vorherigen Konto importieren. "
"Wenn du die Daten von deinem alten Konto exportiert hast, lade sie mit dem "
"untenstehenden Formular hoch."
#: snikket_web/templates/invite_success.html:30
msgid "Upload account data"
@@ -1399,7 +1399,7 @@ msgid "Get it on Google Play"
msgstr "Von Google Play installieren"
#: snikket_web/templates/invite_view.html:30
#: snikket_web/templates/invite_view.html:80
#: snikket_web/templates/invite_view.html:102
msgid "Download on the App Store"
msgstr "Laden im App Store"
@@ -1437,11 +1437,11 @@ msgid "Scan invite code"
msgstr "Einladungscode scannen"
#: snikket_web/templates/invite_view.html:55
#: snikket_web/templates/invite_view.html:62
#: snikket_web/templates/invite_view.html:74
#: snikket_web/templates/invite_view.html:90
#: snikket_web/templates/invite_view.html:102
#: snikket_web/templates/invite_view.html:118
#: snikket_web/templates/invite_view.html:84
#: snikket_web/templates/invite_view.html:96
#: snikket_web/templates/invite_view.html:112
#: snikket_web/templates/invite_view.html:124
#: snikket_web/templates/invite_view.html:140
msgid "Close"
msgstr "Schließen"
@@ -1454,11 +1454,34 @@ msgstr ""
"untenstehenden Code mit deiner Kamera scannst. Dafür kannst du entweder "
"einen normalen QR-Scanner nehmen oder die Snikket-App selbst."
#: snikket_web/templates/invite_view.html:71
#: snikket_web/templates/invite_view.html:63
msgid "Using a QR code scanner"
msgstr "Mit einem QR-Code-Scanner"
#: snikket_web/templates/invite_view.html:65
msgid "Using the Snikket app"
msgstr "Mit der Snikket-App"
#: snikket_web/templates/invite_view.html:70
msgid ""
"Use a <em>QR code</em> scanner on your mobile device to scan the code below:"
msgstr ""
"Benutze einen <em>QR-Code</em>-Scanner auf deinem mobilen Gerät um den "
"untenstehenden Code zu scannen:"
#: snikket_web/templates/invite_view.html:76
msgid ""
"Install the Snikket app on your mobile device, open it, and tap the 'Scan' "
"button at the top."
msgstr ""
"Installiere die Snikket-App auf deinem mobilen Gerät, öffne sie und tippe "
"dann auf den 'Scan'-Knopf in der oberen Leiste."
#: snikket_web/templates/invite_view.html:93
msgid "Install on iOS"
msgstr "Installation auf iOS"
#: snikket_web/templates/invite_view.html:77
#: snikket_web/templates/invite_view.html:99
msgid ""
"After downloading Snikket from the App Store, you have to return to this "
"invite link and tap on \"Open the app\" to proceed."
@@ -1466,14 +1489,14 @@ msgstr ""
"Nachdem du Snikket vom App Store heruntergeladen hast musst du zu diesem "
"Einladungslink zurückkehren und \"App öffnen\" antippen um fortzufahren."
#: snikket_web/templates/invite_view.html:79
#: snikket_web/templates/invite_view.html:101
msgid "First download Snikket from the App Store using the button below:"
msgstr ""
"Lade zunächst Snikket aus dem App Store herunter indem du den folgenden "
"Button benutzt:"
#: snikket_web/templates/invite_view.html:81
#: snikket_web/templates/invite_view.html:109
#: snikket_web/templates/invite_view.html:103
#: snikket_web/templates/invite_view.html:131
msgid ""
"After the installation is complete, you can return to this page and tap the "
"\"Open the app\" button to continue with the setup:"
@@ -1482,12 +1505,12 @@ msgstr ""
"zurückkehren und unten auf \"App öffnen\" tippen um die Einrichtung "
"abzuschließen:"
#: snikket_web/templates/invite_view.html:99
#: snikket_web/templates/invite_view.html:108
#: snikket_web/templates/invite_view.html:121
#: snikket_web/templates/invite_view.html:130
msgid "Install via F-Droid"
msgstr "Installation über F-Droid"
#: snikket_web/templates/invite_view.html:105
#: snikket_web/templates/invite_view.html:127
msgid ""
"After installing Snikket via F-Droid, you have to return to this invite link "
"and tap on \"Open the app\" to proceed."
@@ -1495,7 +1518,7 @@ msgstr ""
"Nachdem du Snikket über F-Droid installiert hast, musst du auf diese Seite "
"zurückkehren und \"App öffnen\" antippen um fortzufahren."
#: snikket_web/templates/invite_view.html:107
#: snikket_web/templates/invite_view.html:129
msgid "First install Snikket from F-Droid using the button below:"
msgstr "Installiere Snikket zunächst aus F-Droid mit dem folgenden Button:"
@@ -1648,26 +1671,6 @@ msgstr ""
"Hier kannst du einstellen, wer deine Profilinformationen, wie Bild oder "
"Anzeigename einsehen kann."
#~ msgid "Using a QR code scanner"
#~ msgstr "Mit einem QR-Code-Scanner"
#~ msgid "Using the Snikket app"
#~ msgstr "Mit der Snikket-App"
#~ msgid ""
#~ "Use a <em>QR code</em> scanner on your mobile device to scan the code "
#~ "below:"
#~ msgstr ""
#~ "Benutze einen <em>QR-Code</em>-Scanner auf deinem mobilen Gerät um den "
#~ "untenstehenden Code zu scannen:"
#~ msgid ""
#~ "Install the Snikket app on your mobile device, open it, and tap the "
#~ "'Scan' button at the top."
#~ msgstr ""
#~ "Installiere die Snikket-App auf deinem mobilen Gerät, öffne sie und tippe "
#~ "dann auf den 'Scan'-Knopf in der oberen Leiste."
#~ msgid "Create password reset link for %(user_name)s"
#~ msgstr "Link zum Zurücksetzen des Passwortes von %(user_name)s erzeugen"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-06-07 22:31+0200\n"
"POT-Creation-Date: 2022-01-17 17:27+0100\n"
"PO-Revision-Date: 2021-06-19 15:01+0000\n"
"Last-Translator: Jonas Schäfer <jonas@zombofant.net>\n"
"Language-Team: English <https://i18n.sotecware.net/projects/snikket/web-"
@@ -20,320 +20,320 @@ msgstr ""
"X-Generator: Weblate 4.5.1\n"
"Generated-By: Babel 2.9.0\n"
#: snikket_web/admin.py:69 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/admin.py:68 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_edit_circle.html:59
#: snikket_web/templates/admin_users.html:8
msgid "Login name"
msgstr "Login name"
#: snikket_web/admin.py:73 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/admin.py:72 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_edit_circle.html:60
#: snikket_web/templates/admin_users.html:9 snikket_web/user.py:63
msgid "Display name"
msgstr "Display name"
#: snikket_web/admin.py:77 snikket_web/templates/admin_edit_user.html:32
#: snikket_web/admin.py:76 snikket_web/templates/admin_edit_user.html:32
msgid "Access Level"
msgstr ""
#: snikket_web/admin.py:79
#: snikket_web/admin.py:78
msgid "Limited"
msgstr ""
#: snikket_web/admin.py:80
#: snikket_web/admin.py:79
msgid "Normal user"
msgstr ""
#: snikket_web/admin.py:81
#: snikket_web/admin.py:80
#, fuzzy
#| msgid "Admin area"
msgid "Administrator"
msgstr "Admin area"
#: snikket_web/admin.py:86
#: snikket_web/admin.py:85
#, fuzzy
#| msgid "Update circle"
msgid "Update user"
msgstr "Update circle"
#: snikket_web/admin.py:90
#: snikket_web/admin.py:89
#, fuzzy
#| msgid "Create password reset links or delete users."
msgid "Create password reset link"
msgstr "Create password reset links or delete users."
#: snikket_web/admin.py:108
#: snikket_web/admin.py:107
#, fuzzy
#| msgid "Password reset link for %(user_name)s"
msgid "Password reset link created"
msgstr "Password reset link for %(user_name)s"
#: snikket_web/admin.py:123
#: snikket_web/admin.py:122
#, fuzzy
#| msgid "User information"
msgid "User information updated."
msgstr "User information"
#: snikket_web/admin.py:145
#: snikket_web/admin.py:144
msgid "Delete user permanently"
msgstr "Delete user permanently"
#: snikket_web/admin.py:158
#: snikket_web/admin.py:157
#, fuzzy
#| msgid "deleted"
msgid "User deleted"
msgstr "deleted"
#: snikket_web/admin.py:196
#: snikket_web/admin.py:195
#, fuzzy
#| msgid "Password reset link for %(user_name)s"
msgid "Password reset link not found"
msgstr "Password reset link for %(user_name)s"
#: snikket_web/admin.py:208
#: snikket_web/admin.py:207
#, fuzzy
#| msgid "Create password reset links or delete users."
msgid "Password reset link deleted"
msgstr "Create password reset links or delete users."
#: snikket_web/admin.py:228
#: snikket_web/admin.py:227
msgid "Invite to circle"
msgstr "Invite to circle"
#: snikket_web/admin.py:234
#: snikket_web/admin.py:233
msgid "At least one circle must be selected"
msgstr "At least one circle must be selected"
#: snikket_web/admin.py:239
#: snikket_web/admin.py:238
msgid "Valid for"
msgstr "Valid for"
#: snikket_web/admin.py:241
#: snikket_web/admin.py:240
msgid "One hour"
msgstr "One hour"
#: snikket_web/admin.py:242
#: snikket_web/admin.py:241
msgid "Twelve hours"
msgstr "Twelve hours"
#: snikket_web/admin.py:243
#: snikket_web/admin.py:242
msgid "One day"
msgstr "One day"
#: snikket_web/admin.py:244
#: snikket_web/admin.py:243
msgid "One week"
msgstr "One week"
#: snikket_web/admin.py:245
#: snikket_web/admin.py:244
msgid "Four weeks"
msgstr "Four weeks"
#: snikket_web/admin.py:251 snikket_web/templates/admin_edit_invite.html:17
#: snikket_web/admin.py:250 snikket_web/templates/admin_edit_invite.html:17
msgid "Invitation type"
msgstr "Invitation type"
#: snikket_web/admin.py:253 snikket_web/templates/library.j2:116
#: snikket_web/admin.py:252 snikket_web/templates/library.j2:116
msgid "Individual"
msgstr "Individual"
#: snikket_web/admin.py:254 snikket_web/templates/library.j2:114
#: snikket_web/admin.py:253 snikket_web/templates/library.j2:114
msgid "Group"
msgstr "Group"
#: snikket_web/admin.py:260
#: snikket_web/admin.py:259
msgid "New invitation link"
msgstr "New invitation link"
#: snikket_web/admin.py:322
#: snikket_web/admin.py:321
msgid "Revoke"
msgstr "Revoke"
#: snikket_web/admin.py:346
#: snikket_web/admin.py:345
#, fuzzy
#| msgid "Invitation type"
msgid "Invitation created"
msgstr "Invitation type"
#: snikket_web/admin.py:362
#: snikket_web/admin.py:361
#, fuzzy
#| msgid "New invitation link"
msgid "No such invitation exists"
msgstr "New invitation link"
#: snikket_web/admin.py:377
#: snikket_web/admin.py:376
#, fuzzy
#| msgid "Invitation type"
msgid "Invitation revoked"
msgstr "Invitation type"
#: snikket_web/admin.py:394 snikket_web/admin.py:442
#: snikket_web/admin.py:393 snikket_web/admin.py:441
msgid "Name"
msgstr "Name"
#: snikket_web/admin.py:399 snikket_web/templates/admin_circles.html:47
#: snikket_web/admin.py:398 snikket_web/templates/admin_circles.html:47
msgid "Create circle"
msgstr "Create circle"
#: snikket_web/admin.py:429
#: snikket_web/admin.py:428
#, fuzzy
#| msgid "Circle name"
msgid "Circle created"
msgstr "Circle name"
#: snikket_web/admin.py:447
#: snikket_web/admin.py:446
msgid "Select user"
msgstr "Select user"
#: snikket_web/admin.py:452
#: snikket_web/admin.py:451
msgid "Update circle"
msgstr "Update circle"
#: snikket_web/admin.py:456
#: snikket_web/admin.py:455
msgid "Delete circle permanently"
msgstr "Delete circle permanently"
#: snikket_web/admin.py:462
#: snikket_web/admin.py:461
msgid "Add user"
msgstr "Add user"
#: snikket_web/admin.py:478
#: snikket_web/admin.py:477
#, fuzzy
#| msgid "No circles"
msgid "No such circle exists"
msgstr "No circles"
#: snikket_web/admin.py:515
#: snikket_web/admin.py:514
#, fuzzy
#| msgid "Circle name"
msgid "Circle data updated"
msgstr "Circle name"
#: snikket_web/admin.py:521
#: snikket_web/admin.py:520
#, fuzzy
#| msgid "deleted"
msgid "Circle deleted"
msgstr "deleted"
#: snikket_web/admin.py:532
#: snikket_web/admin.py:531
#, fuzzy
#| msgid "Invite to circle"
msgid "User added to circle"
msgstr "Invite to circle"
#: snikket_web/admin.py:541
#: snikket_web/admin.py:540
#, fuzzy
#| msgid "Remove user %(username)s from circle"
msgid "User removed from circle"
msgstr "Remove user %(username)s from circle"
#: snikket_web/admin.py:610
#: snikket_web/admin.py:609
msgid "Message contents"
msgstr ""
#: snikket_web/admin.py:616
#: snikket_web/admin.py:615
msgid "Only send to online users"
msgstr ""
#: snikket_web/admin.py:620
#: snikket_web/admin.py:619
msgid "Post to all users"
msgstr ""
#: snikket_web/admin.py:624
#: snikket_web/admin.py:623
msgid "Send preview to yourself"
msgstr ""
#: snikket_web/admin.py:646
#: snikket_web/admin.py:645
msgid "Announcement sent!"
msgstr ""
#: snikket_web/infra.py:53
#: snikket_web/infra.py:51
msgid "Main"
msgstr "Main"
#: snikket_web/invite.py:35
#: snikket_web/invite.py:33
msgid ""
"The account data you tried to import is too large to upload. Please contact "
"your Snikket operator."
msgstr ""
#: snikket_web/invite.py:114
#: snikket_web/invite.py:112
msgid "Username"
msgstr "Username"
#: snikket_web/invite.py:118 snikket_web/invite.py:186 snikket_web/main.py:43
#: snikket_web/invite.py:116 snikket_web/invite.py:184 snikket_web/main.py:41
msgid "Password"
msgstr "Password"
#: snikket_web/invite.py:122 snikket_web/invite.py:190
#: snikket_web/invite.py:120 snikket_web/invite.py:188
msgid "Confirm password"
msgstr "Confirm password"
#: snikket_web/invite.py:126 snikket_web/invite.py:194
#: snikket_web/invite.py:124 snikket_web/invite.py:192
#, fuzzy
#| msgid "The passwords must match"
msgid "The passwords must match."
msgstr "The passwords must match"
#: snikket_web/invite.py:131
#: snikket_web/invite.py:129
msgid "Create account"
msgstr "Create account"
#: snikket_web/invite.py:158
#: snikket_web/invite.py:156
#, fuzzy
#| msgid "That username is already taken"
msgid "That username is already taken."
msgstr "That username is already taken"
#: snikket_web/invite.py:162 snikket_web/invite.py:227
#: snikket_web/invite.py:160 snikket_web/invite.py:225
#, fuzzy
#| msgid "Registration was declined for unknown reasons"
msgid "Registration was declined for unknown reasons."
msgstr "Registration was declined for unknown reasons"
#: snikket_web/invite.py:166
#: snikket_web/invite.py:164
#, fuzzy
#| msgid "The username is not valid"
msgid "The username is not valid."
msgstr "The username is not valid"
#: snikket_web/invite.py:199 snikket_web/templates/user_home.html:32
#: snikket_web/invite.py:197 snikket_web/templates/user_home.html:32
#: snikket_web/templates/user_passwd.html:29
msgid "Change password"
msgstr "Change password"
#: snikket_web/invite.py:246
#: snikket_web/invite.py:244
msgid "Account data file"
msgstr ""
#: snikket_web/invite.py:250
#: snikket_web/invite.py:248
msgid "Import data"
msgstr ""
#: snikket_web/invite.py:271
#: snikket_web/invite.py:269
#, python-format
msgid ""
"The account data you tried to import is in an unknown format. Please upload "
"an XML file in XEP-0227 format (provided format: %(mimetype)s)."
msgstr ""
#: snikket_web/invite.py:291 snikket_web/templates/unauth.html:18
#: snikket_web/invite.py:289 snikket_web/templates/unauth.html:18
#: snikket_web/user.py:178
msgid "Error"
msgstr ""
#: snikket_web/main.py:38
#: snikket_web/main.py:36
msgid "Address"
msgstr "Address"
#: snikket_web/main.py:48
#: snikket_web/main.py:46
msgid "Sign in"
msgstr "Sign in"
#: snikket_web/main.py:57
#: snikket_web/main.py:55
msgid "Invalid username or password."
msgstr "Invalid username or password."
#: snikket_web/main.py:85
#: snikket_web/main.py:83
msgid "Login successful!"
msgstr ""
@@ -509,7 +509,7 @@ msgstr ""
msgid "Software Versions"
msgstr "Software Versions"
#: snikket_web/templates/about.html:32
#: snikket_web/templates/about.html:29
msgid "Back to the main page"
msgstr "Back to the main page"
@@ -656,7 +656,6 @@ msgstr ""
#: snikket_web/templates/admin_delete_user.html:19
#: snikket_web/templates/admin_reset_user_password.html:25
#: snikket_web/templates/user_logout.html:10
#: snikket_web/templates/user_manage_data.html:14
#: snikket_web/templates/user_passwd.html:27
#: snikket_web/templates/user_profile.html:32
msgid "Back"
@@ -1191,8 +1190,8 @@ msgstr "App already installed?"
#: snikket_web/templates/invite_register.html:16
#: snikket_web/templates/invite_reset_view.html:21
#: snikket_web/templates/invite_view.html:41
#: snikket_web/templates/invite_view.html:84
#: snikket_web/templates/invite_view.html:112
#: snikket_web/templates/invite_view.html:106
#: snikket_web/templates/invite_view.html:134
msgid "Open the app"
msgstr "Open the app"
@@ -1290,6 +1289,7 @@ msgstr ""
"Scan button at the top."
#: snikket_web/templates/invite_reset_view.html:26
#: snikket_web/templates/invite_view.html:77
msgid ""
"Your camera will turn on. Point it at the square code below until it is "
"within the highlighted square on your screen, and wait until the app "
@@ -1426,7 +1426,7 @@ msgid "Get it on Google Play"
msgstr "Get it on Google Play"
#: snikket_web/templates/invite_view.html:30
#: snikket_web/templates/invite_view.html:80
#: snikket_web/templates/invite_view.html:102
msgid "Download on the App Store"
msgstr "Download on the App Store"
@@ -1462,11 +1462,11 @@ msgid "Scan invite code"
msgstr "Scan invite code"
#: snikket_web/templates/invite_view.html:55
#: snikket_web/templates/invite_view.html:62
#: snikket_web/templates/invite_view.html:74
#: snikket_web/templates/invite_view.html:90
#: snikket_web/templates/invite_view.html:102
#: snikket_web/templates/invite_view.html:118
#: snikket_web/templates/invite_view.html:84
#: snikket_web/templates/invite_view.html:96
#: snikket_web/templates/invite_view.html:112
#: snikket_web/templates/invite_view.html:124
#: snikket_web/templates/invite_view.html:140
msgid "Close"
msgstr "Close"
@@ -1478,39 +1478,61 @@ msgstr ""
"You can transfer this invite to your mobile device by scanning a code with "
"your camera. You can use either a QR scanner app or the Snikket app itself."
#: snikket_web/templates/invite_view.html:71
#: snikket_web/templates/invite_view.html:63
msgid "Using a QR code scanner"
msgstr "Using a QR code scanner"
#: snikket_web/templates/invite_view.html:65
msgid "Using the Snikket app"
msgstr "Using the Snikket app"
#: snikket_web/templates/invite_view.html:70
msgid ""
"Use a <em>QR code</em> scanner on your mobile device to scan the code below:"
msgstr ""
"Use a <em>QR code</em> scanner on your mobile device to scan the code below:"
#: snikket_web/templates/invite_view.html:76
msgid ""
"Install the Snikket app on your mobile device, open it, and tap the 'Scan' "
"button at the top."
msgstr ""
"Install the Snikket app on your mobile device, open it, and tap the 'Scan' "
"button at the top."
#: snikket_web/templates/invite_view.html:93
msgid "Install on iOS"
msgstr ""
#: snikket_web/templates/invite_view.html:77
#: snikket_web/templates/invite_view.html:99
msgid ""
"After downloading Snikket from the App Store, you have to return to this "
"invite link and tap on \"Open the app\" to proceed."
msgstr ""
#: snikket_web/templates/invite_view.html:79
#: snikket_web/templates/invite_view.html:101
msgid "First download Snikket from the App Store using the button below:"
msgstr ""
#: snikket_web/templates/invite_view.html:81
#: snikket_web/templates/invite_view.html:109
#: snikket_web/templates/invite_view.html:103
#: snikket_web/templates/invite_view.html:131
msgid ""
"After the installation is complete, you can return to this page and tap the "
"\"Open the app\" button to continue with the setup:"
msgstr ""
#: snikket_web/templates/invite_view.html:99
#: snikket_web/templates/invite_view.html:108
#: snikket_web/templates/invite_view.html:121
#: snikket_web/templates/invite_view.html:130
msgid "Install via F-Droid"
msgstr ""
#: snikket_web/templates/invite_view.html:105
#: snikket_web/templates/invite_view.html:127
msgid ""
"After installing Snikket via F-Droid, you have to return to this invite link "
"and tap on \"Open the app\" to proceed."
msgstr ""
#: snikket_web/templates/invite_view.html:107
#: snikket_web/templates/invite_view.html:129
msgid "First install Snikket from F-Droid using the button below:"
msgstr ""
@@ -1661,26 +1683,6 @@ msgstr ""
"This section allows you to control who can see your profile information, "
"like avatar and nickname."
#~ msgid "Using a QR code scanner"
#~ msgstr "Using a QR code scanner"
#~ msgid "Using the Snikket app"
#~ msgstr "Using the Snikket app"
#~ msgid ""
#~ "Use a <em>QR code</em> scanner on your mobile device to scan the code "
#~ "below:"
#~ msgstr ""
#~ "Use a <em>QR code</em> scanner on your mobile device to scan the code "
#~ "below:"
#~ msgid ""
#~ "Install the Snikket app on your mobile device, open it, and tap the "
#~ "'Scan' button at the top."
#~ msgstr ""
#~ "Install the Snikket app on your mobile device, open it, and tap the "
#~ "'Scan' button at the top."
#~ msgid "Create password reset link for %(user_name)s"
#~ msgstr "Create password reset link for %(user_name)s"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-06-07 22:31+0200\n"
"POT-Creation-Date: 2022-01-17 17:27+0100\n"
"PO-Revision-Date: 2021-06-19 15:01+0000\n"
"Last-Translator: Jonas Schäfer <jonas@zombofant.net>\n"
"Language-Team: English (United Kingdom) <https://i18n.sotecware.net/projects/"
@@ -20,322 +20,322 @@ msgstr ""
"X-Generator: Weblate 4.5.1\n"
"Generated-By: Babel 2.9.0\n"
#: snikket_web/admin.py:69 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/admin.py:68 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_edit_circle.html:59
#: snikket_web/templates/admin_users.html:8
msgid "Login name"
msgstr "Login name"
#: snikket_web/admin.py:73 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/admin.py:72 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_edit_circle.html:60
#: snikket_web/templates/admin_users.html:9 snikket_web/user.py:63
msgid "Display name"
msgstr "Display name"
#: snikket_web/admin.py:77 snikket_web/templates/admin_edit_user.html:32
#: snikket_web/admin.py:76 snikket_web/templates/admin_edit_user.html:32
msgid "Access Level"
msgstr ""
#: snikket_web/admin.py:79
#: snikket_web/admin.py:78
msgid "Limited"
msgstr ""
#: snikket_web/admin.py:80
#: snikket_web/admin.py:79
msgid "Normal user"
msgstr ""
#: snikket_web/admin.py:81
#: snikket_web/admin.py:80
#, fuzzy
#| msgid "Admin dashboard"
msgid "Administrator"
msgstr "Admin dashboard"
#: snikket_web/admin.py:86
#: snikket_web/admin.py:85
#, fuzzy
#| msgid "Create circle"
msgid "Update user"
msgstr "Create circle"
#: snikket_web/admin.py:90
#: snikket_web/admin.py:89
#, fuzzy
#| msgid "Create password reset links or delete users."
msgid "Create password reset link"
msgstr "Create password reset links or delete users."
#: snikket_web/admin.py:108
#: snikket_web/admin.py:107
#, fuzzy
#| msgid "Password reset link for %(user_name)s"
msgid "Password reset link created"
msgstr "Password reset link for %(user_name)s"
#: snikket_web/admin.py:123
#: snikket_web/admin.py:122
#, fuzzy
#| msgid "User information"
msgid "User information updated."
msgstr "User information"
#: snikket_web/admin.py:145
#: snikket_web/admin.py:144
msgid "Delete user permanently"
msgstr "Delete user permanently"
#: snikket_web/admin.py:158
#: snikket_web/admin.py:157
#, fuzzy
#| msgid "deleted"
msgid "User deleted"
msgstr "deleted"
#: snikket_web/admin.py:196
#: snikket_web/admin.py:195
#, fuzzy
#| msgid "Password reset link for %(user_name)s"
msgid "Password reset link not found"
msgstr "Password reset link for %(user_name)s"
#: snikket_web/admin.py:208
#: snikket_web/admin.py:207
#, fuzzy
#| msgid "Create password reset links or delete users."
msgid "Password reset link deleted"
msgstr "Create password reset links or delete users."
#: snikket_web/admin.py:228
#: snikket_web/admin.py:227
msgid "Invite to circle"
msgstr "Invite to circle"
#: snikket_web/admin.py:234
#: snikket_web/admin.py:233
msgid "At least one circle must be selected"
msgstr "At least one circle must be selected"
#: snikket_web/admin.py:239
#: snikket_web/admin.py:238
msgid "Valid for"
msgstr "Valid for"
#: snikket_web/admin.py:241
#: snikket_web/admin.py:240
msgid "One hour"
msgstr "One hour"
#: snikket_web/admin.py:242
#: snikket_web/admin.py:241
msgid "Twelve hours"
msgstr "Twelve hours"
#: snikket_web/admin.py:243
#: snikket_web/admin.py:242
msgid "One day"
msgstr "One day"
#: snikket_web/admin.py:244
#: snikket_web/admin.py:243
msgid "One week"
msgstr "One week"
#: snikket_web/admin.py:245
#: snikket_web/admin.py:244
msgid "Four weeks"
msgstr "Four weeks"
#: snikket_web/admin.py:251 snikket_web/templates/admin_edit_invite.html:17
#: snikket_web/admin.py:250 snikket_web/templates/admin_edit_invite.html:17
msgid "Invitation type"
msgstr "Invitation type"
#: snikket_web/admin.py:253 snikket_web/templates/library.j2:116
#: snikket_web/admin.py:252 snikket_web/templates/library.j2:116
msgid "Individual"
msgstr ""
#: snikket_web/admin.py:254 snikket_web/templates/library.j2:114
#: snikket_web/admin.py:253 snikket_web/templates/library.j2:114
msgid "Group"
msgstr ""
#: snikket_web/admin.py:260
#: snikket_web/admin.py:259
msgid "New invitation link"
msgstr "New invitation link"
#: snikket_web/admin.py:322
#: snikket_web/admin.py:321
msgid "Revoke"
msgstr "Revoke"
#: snikket_web/admin.py:346
#: snikket_web/admin.py:345
#, fuzzy
#| msgid "Invitation type"
msgid "Invitation created"
msgstr "Invitation type"
#: snikket_web/admin.py:362
#: snikket_web/admin.py:361
#, fuzzy
#| msgid "New invitation link"
msgid "No such invitation exists"
msgstr "New invitation link"
#: snikket_web/admin.py:377
#: snikket_web/admin.py:376
#, fuzzy
#| msgid "Invitation type"
msgid "Invitation revoked"
msgstr "Invitation type"
#: snikket_web/admin.py:394 snikket_web/admin.py:442
#: snikket_web/admin.py:393 snikket_web/admin.py:441
msgid "Name"
msgstr "Name"
#: snikket_web/admin.py:399 snikket_web/templates/admin_circles.html:47
#: snikket_web/admin.py:398 snikket_web/templates/admin_circles.html:47
msgid "Create circle"
msgstr "Create circle"
#: snikket_web/admin.py:429
#: snikket_web/admin.py:428
#, fuzzy
#| msgid "Circle name"
msgid "Circle created"
msgstr "Circle name"
#: snikket_web/admin.py:447
#: snikket_web/admin.py:446
msgid "Select user"
msgstr "Select user"
#: snikket_web/admin.py:452
#: snikket_web/admin.py:451
#, fuzzy
#| msgid "Create circle"
msgid "Update circle"
msgstr "Create circle"
#: snikket_web/admin.py:456
#: snikket_web/admin.py:455
msgid "Delete circle permanently"
msgstr "Delete circle permanently"
#: snikket_web/admin.py:462
#: snikket_web/admin.py:461
msgid "Add user"
msgstr "Add user"
#: snikket_web/admin.py:478
#: snikket_web/admin.py:477
#, fuzzy
#| msgid "No circles"
msgid "No such circle exists"
msgstr "No circles"
#: snikket_web/admin.py:515
#: snikket_web/admin.py:514
#, fuzzy
#| msgid "Circle name"
msgid "Circle data updated"
msgstr "Circle name"
#: snikket_web/admin.py:521
#: snikket_web/admin.py:520
#, fuzzy
#| msgid "deleted"
msgid "Circle deleted"
msgstr "deleted"
#: snikket_web/admin.py:532
#: snikket_web/admin.py:531
#, fuzzy
#| msgid "Invite to circle"
msgid "User added to circle"
msgstr "Invite to circle"
#: snikket_web/admin.py:541
#: snikket_web/admin.py:540
#, fuzzy
#| msgid "Remove user %(username)s from circle"
msgid "User removed from circle"
msgstr "Remove user %(username)s from circle"
#: snikket_web/admin.py:610
#: snikket_web/admin.py:609
msgid "Message contents"
msgstr ""
#: snikket_web/admin.py:616
#: snikket_web/admin.py:615
msgid "Only send to online users"
msgstr ""
#: snikket_web/admin.py:620
#: snikket_web/admin.py:619
msgid "Post to all users"
msgstr ""
#: snikket_web/admin.py:624
#: snikket_web/admin.py:623
msgid "Send preview to yourself"
msgstr ""
#: snikket_web/admin.py:646
#: snikket_web/admin.py:645
msgid "Announcement sent!"
msgstr ""
#: snikket_web/infra.py:53
#: snikket_web/infra.py:51
msgid "Main"
msgstr "Main"
#: snikket_web/invite.py:35
#: snikket_web/invite.py:33
msgid ""
"The account data you tried to import is too large to upload. Please contact "
"your Snikket operator."
msgstr ""
#: snikket_web/invite.py:114
#: snikket_web/invite.py:112
msgid "Username"
msgstr ""
#: snikket_web/invite.py:118 snikket_web/invite.py:186 snikket_web/main.py:43
#: snikket_web/invite.py:116 snikket_web/invite.py:184 snikket_web/main.py:41
msgid "Password"
msgstr "Password"
#: snikket_web/invite.py:122 snikket_web/invite.py:190
#: snikket_web/invite.py:120 snikket_web/invite.py:188
#, fuzzy
#| msgid "Confirm new password"
msgid "Confirm password"
msgstr "Confirm new password"
#: snikket_web/invite.py:126 snikket_web/invite.py:194
#: snikket_web/invite.py:124 snikket_web/invite.py:192
#, fuzzy
#| msgid "The passwords must match"
msgid "The passwords must match."
msgstr "The passwords must match"
#: snikket_web/invite.py:131
#: snikket_web/invite.py:129
#, fuzzy
#| msgid "Create circle"
msgid "Create account"
msgstr "Create circle"
#: snikket_web/invite.py:158
#: snikket_web/invite.py:156
msgid "That username is already taken."
msgstr ""
#: snikket_web/invite.py:162 snikket_web/invite.py:227
#: snikket_web/invite.py:160 snikket_web/invite.py:225
msgid "Registration was declined for unknown reasons."
msgstr ""
#: snikket_web/invite.py:166
#: snikket_web/invite.py:164
msgid "The username is not valid."
msgstr ""
#: snikket_web/invite.py:199 snikket_web/templates/user_home.html:32
#: snikket_web/invite.py:197 snikket_web/templates/user_home.html:32
#: snikket_web/templates/user_passwd.html:29
msgid "Change password"
msgstr "Change password"
#: snikket_web/invite.py:246
#: snikket_web/invite.py:244
msgid "Account data file"
msgstr ""
#: snikket_web/invite.py:250
#: snikket_web/invite.py:248
msgid "Import data"
msgstr ""
#: snikket_web/invite.py:271
#: snikket_web/invite.py:269
#, python-format
msgid ""
"The account data you tried to import is in an unknown format. Please upload "
"an XML file in XEP-0227 format (provided format: %(mimetype)s)."
msgstr ""
#: snikket_web/invite.py:291 snikket_web/templates/unauth.html:18
#: snikket_web/invite.py:289 snikket_web/templates/unauth.html:18
#: snikket_web/user.py:178
msgid "Error"
msgstr ""
#: snikket_web/main.py:38
#: snikket_web/main.py:36
msgid "Address"
msgstr "Address"
#: snikket_web/main.py:48
#: snikket_web/main.py:46
msgid "Sign in"
msgstr "Sign in"
#: snikket_web/main.py:57
#: snikket_web/main.py:55
#, fuzzy
#| msgid "Invalid user name or password."
msgid "Invalid username or password."
msgstr "Invalid user name or password."
#: snikket_web/main.py:85
#: snikket_web/main.py:83
msgid "Login successful!"
msgstr ""
@@ -511,7 +511,7 @@ msgstr ""
msgid "Software Versions"
msgstr "Software Versions"
#: snikket_web/templates/about.html:32
#: snikket_web/templates/about.html:29
msgid "Back to the main page"
msgstr "Back to the main page"
@@ -653,7 +653,6 @@ msgstr ""
#: snikket_web/templates/admin_delete_user.html:19
#: snikket_web/templates/admin_reset_user_password.html:25
#: snikket_web/templates/user_logout.html:10
#: snikket_web/templates/user_manage_data.html:14
#: snikket_web/templates/user_passwd.html:27
#: snikket_web/templates/user_profile.html:32
msgid "Back"
@@ -1196,8 +1195,8 @@ msgstr ""
#: snikket_web/templates/invite_register.html:16
#: snikket_web/templates/invite_reset_view.html:21
#: snikket_web/templates/invite_view.html:41
#: snikket_web/templates/invite_view.html:84
#: snikket_web/templates/invite_view.html:112
#: snikket_web/templates/invite_view.html:106
#: snikket_web/templates/invite_view.html:134
msgid "Open the app"
msgstr ""
@@ -1294,6 +1293,7 @@ msgid ""
msgstr ""
#: snikket_web/templates/invite_reset_view.html:26
#: snikket_web/templates/invite_view.html:77
msgid ""
"Your camera will turn on. Point it at the square code below until it is "
"within the highlighted square on your screen, and wait until the app "
@@ -1418,7 +1418,7 @@ msgid "Get it on Google Play"
msgstr ""
#: snikket_web/templates/invite_view.html:30
#: snikket_web/templates/invite_view.html:80
#: snikket_web/templates/invite_view.html:102
msgid "Download on the App Store"
msgstr ""
@@ -1451,11 +1451,11 @@ msgid "Scan invite code"
msgstr "Show invite details"
#: snikket_web/templates/invite_view.html:55
#: snikket_web/templates/invite_view.html:62
#: snikket_web/templates/invite_view.html:74
#: snikket_web/templates/invite_view.html:90
#: snikket_web/templates/invite_view.html:102
#: snikket_web/templates/invite_view.html:118
#: snikket_web/templates/invite_view.html:84
#: snikket_web/templates/invite_view.html:96
#: snikket_web/templates/invite_view.html:112
#: snikket_web/templates/invite_view.html:124
#: snikket_web/templates/invite_view.html:140
msgid "Close"
msgstr ""
@@ -1465,39 +1465,58 @@ msgid ""
"your camera. You can use either a QR scanner app or the Snikket app itself."
msgstr ""
#: snikket_web/templates/invite_view.html:71
#: snikket_web/templates/invite_view.html:63
msgid "Using a QR code scanner"
msgstr ""
#: snikket_web/templates/invite_view.html:65
msgid "Using the Snikket app"
msgstr ""
#: snikket_web/templates/invite_view.html:70
msgid ""
"Use a <em>QR code</em> scanner on your mobile device to scan the code below:"
msgstr ""
#: snikket_web/templates/invite_view.html:76
msgid ""
"Install the Snikket app on your mobile device, open it, and tap the 'Scan' "
"button at the top."
msgstr ""
#: snikket_web/templates/invite_view.html:93
msgid "Install on iOS"
msgstr ""
#: snikket_web/templates/invite_view.html:77
#: snikket_web/templates/invite_view.html:99
msgid ""
"After downloading Snikket from the App Store, you have to return to this "
"invite link and tap on \"Open the app\" to proceed."
msgstr ""
#: snikket_web/templates/invite_view.html:79
#: snikket_web/templates/invite_view.html:101
msgid "First download Snikket from the App Store using the button below:"
msgstr ""
#: snikket_web/templates/invite_view.html:81
#: snikket_web/templates/invite_view.html:109
#: snikket_web/templates/invite_view.html:103
#: snikket_web/templates/invite_view.html:131
msgid ""
"After the installation is complete, you can return to this page and tap the "
"\"Open the app\" button to continue with the setup:"
msgstr ""
#: snikket_web/templates/invite_view.html:99
#: snikket_web/templates/invite_view.html:108
#: snikket_web/templates/invite_view.html:121
#: snikket_web/templates/invite_view.html:130
msgid "Install via F-Droid"
msgstr ""
#: snikket_web/templates/invite_view.html:105
#: snikket_web/templates/invite_view.html:127
msgid ""
"After installing Snikket via F-Droid, you have to return to this invite link "
"and tap on \"Open the app\" to proceed."
msgstr ""
#: snikket_web/templates/invite_view.html:107
#: snikket_web/templates/invite_view.html:129
msgid "First install Snikket from F-Droid using the button below:"
msgstr ""

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-06-07 22:31+0200\n"
"POT-Creation-Date: 2022-01-17 17:27+0100\n"
"PO-Revision-Date: 2021-03-31 13:00+0000\n"
"Last-Translator: Tilman Jiménez <tilman.jimenez@tu-dortmund.de>\n"
"Language-Team: Spanish (Mexico) <https://i18n.sotecware.net/projects/snikket/"
@@ -20,308 +20,308 @@ msgstr ""
"X-Generator: Weblate 4.5.1\n"
"Generated-By: Babel 2.9.0\n"
#: snikket_web/admin.py:69 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/admin.py:68 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_edit_circle.html:59
#: snikket_web/templates/admin_users.html:8
msgid "Login name"
msgstr "Nombre de ingreso del usuario"
#: snikket_web/admin.py:73 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/admin.py:72 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_edit_circle.html:60
#: snikket_web/templates/admin_users.html:9 snikket_web/user.py:63
msgid "Display name"
msgstr "Nombre mostrado"
#: snikket_web/admin.py:77 snikket_web/templates/admin_edit_user.html:32
#: snikket_web/admin.py:76 snikket_web/templates/admin_edit_user.html:32
msgid "Access Level"
msgstr "Nivel de acceso"
#: snikket_web/admin.py:79
#: snikket_web/admin.py:78
msgid "Limited"
msgstr "Limitado"
#: snikket_web/admin.py:80
#: snikket_web/admin.py:79
msgid "Normal user"
msgstr "Usuario normal"
#: snikket_web/admin.py:81
#: snikket_web/admin.py:80
#, fuzzy
#| msgid "Admin area"
msgid "Administrator"
msgstr "Administración"
#: snikket_web/admin.py:86
#: snikket_web/admin.py:85
msgid "Update user"
msgstr "Actualizar usuario"
#: snikket_web/admin.py:90
#: snikket_web/admin.py:89
#, fuzzy
#| msgid "Current password"
msgid "Create password reset link"
msgstr "Contraseña actual"
#: snikket_web/admin.py:108
#: snikket_web/admin.py:107
msgid "Password reset link created"
msgstr "Un enlace para restablecer la contraseña ha sido creado"
#: snikket_web/admin.py:123
#: snikket_web/admin.py:122
#, fuzzy
#| msgid "Circle information"
msgid "User information updated."
msgstr "Información del círculo"
#: snikket_web/admin.py:145
#: snikket_web/admin.py:144
msgid "Delete user permanently"
msgstr "Eliminar usuario permanentemente"
#: snikket_web/admin.py:158
#: snikket_web/admin.py:157
msgid "User deleted"
msgstr "Usuario eliminado"
#: snikket_web/admin.py:196
#: snikket_web/admin.py:195
msgid "Password reset link not found"
msgstr "No hemos encontrado un enlace para restablecer la contraseña"
#: snikket_web/admin.py:208
#: snikket_web/admin.py:207
msgid "Password reset link deleted"
msgstr "Enlace para restablecer la contraseña eliminado"
#: snikket_web/admin.py:228
#: snikket_web/admin.py:227
msgid "Invite to circle"
msgstr "Invitar al círculo"
#: snikket_web/admin.py:234
#: snikket_web/admin.py:233
msgid "At least one circle must be selected"
msgstr "Seleccione al menos un círculo"
#: snikket_web/admin.py:239
#: snikket_web/admin.py:238
msgid "Valid for"
msgstr "Válido por"
#: snikket_web/admin.py:241
#: snikket_web/admin.py:240
msgid "One hour"
msgstr "Una hora"
#: snikket_web/admin.py:242
#: snikket_web/admin.py:241
msgid "Twelve hours"
msgstr "Doce horas"
#: snikket_web/admin.py:243
#: snikket_web/admin.py:242
msgid "One day"
msgstr "Un día"
#: snikket_web/admin.py:244
#: snikket_web/admin.py:243
msgid "One week"
msgstr "Una semana"
#: snikket_web/admin.py:245
#: snikket_web/admin.py:244
msgid "Four weeks"
msgstr "Cuatro semanas"
#: snikket_web/admin.py:251 snikket_web/templates/admin_edit_invite.html:17
#: snikket_web/admin.py:250 snikket_web/templates/admin_edit_invite.html:17
msgid "Invitation type"
msgstr "Tipo de invitación"
#: snikket_web/admin.py:253 snikket_web/templates/library.j2:116
#: snikket_web/admin.py:252 snikket_web/templates/library.j2:116
msgid "Individual"
msgstr "Individual"
#: snikket_web/admin.py:254 snikket_web/templates/library.j2:114
#: snikket_web/admin.py:253 snikket_web/templates/library.j2:114
msgid "Group"
msgstr "Grupo"
#: snikket_web/admin.py:260
#: snikket_web/admin.py:259
msgid "New invitation link"
msgstr "Nuevo enlace de invitación"
#: snikket_web/admin.py:322
#: snikket_web/admin.py:321
msgid "Revoke"
msgstr "Revocar/Eliminar"
#: snikket_web/admin.py:346
#: snikket_web/admin.py:345
#, fuzzy
#| msgid "Invitation type"
msgid "Invitation created"
msgstr "Tipo de invitación"
#: snikket_web/admin.py:362
#: snikket_web/admin.py:361
#, fuzzy
#| msgid "New invitation link"
msgid "No such invitation exists"
msgstr "Nuevo enlace de invitación"
#: snikket_web/admin.py:377
#: snikket_web/admin.py:376
#, fuzzy
#| msgid "Invitation type"
msgid "Invitation revoked"
msgstr "Tipo de invitación"
#: snikket_web/admin.py:394 snikket_web/admin.py:442
#: snikket_web/admin.py:393 snikket_web/admin.py:441
msgid "Name"
msgstr "Nombre"
#: snikket_web/admin.py:399 snikket_web/templates/admin_circles.html:47
#: snikket_web/admin.py:398 snikket_web/templates/admin_circles.html:47
msgid "Create circle"
msgstr "Crear círculo"
#: snikket_web/admin.py:429
#: snikket_web/admin.py:428
#, fuzzy
#| msgid "Circle name"
msgid "Circle created"
msgstr "Nombre del círculo"
#: snikket_web/admin.py:447
#: snikket_web/admin.py:446
msgid "Select user"
msgstr "Seleccionar usuario"
#: snikket_web/admin.py:452
#: snikket_web/admin.py:451
msgid "Update circle"
msgstr "Actualizar círculo"
#: snikket_web/admin.py:456
#: snikket_web/admin.py:455
msgid "Delete circle permanently"
msgstr "Eliminar círculo permanentemente"
#: snikket_web/admin.py:462
#: snikket_web/admin.py:461
msgid "Add user"
msgstr "Añadir usuario"
#: snikket_web/admin.py:478
#: snikket_web/admin.py:477
#, fuzzy
#| msgid "No circles"
msgid "No such circle exists"
msgstr "No hay círculos"
#: snikket_web/admin.py:515
#: snikket_web/admin.py:514
#, fuzzy
#| msgid "Circle name"
msgid "Circle data updated"
msgstr "Nombre del círculo"
#: snikket_web/admin.py:521
#: snikket_web/admin.py:520
#, fuzzy
#| msgid "Circle members"
msgid "Circle deleted"
msgstr "Miembros del círculo"
#: snikket_web/admin.py:532
#: snikket_web/admin.py:531
#, fuzzy
#| msgid "Invite to circle"
msgid "User added to circle"
msgstr "Invitar al círculo"
#: snikket_web/admin.py:541
#: snikket_web/admin.py:540
msgid "User removed from circle"
msgstr ""
#: snikket_web/admin.py:610
#: snikket_web/admin.py:609
msgid "Message contents"
msgstr ""
#: snikket_web/admin.py:616
#: snikket_web/admin.py:615
msgid "Only send to online users"
msgstr ""
#: snikket_web/admin.py:620
#: snikket_web/admin.py:619
msgid "Post to all users"
msgstr ""
#: snikket_web/admin.py:624
#: snikket_web/admin.py:623
msgid "Send preview to yourself"
msgstr ""
#: snikket_web/admin.py:646
#: snikket_web/admin.py:645
msgid "Announcement sent!"
msgstr ""
#: snikket_web/infra.py:53
#: snikket_web/infra.py:51
msgid "Main"
msgstr "Principal"
#: snikket_web/invite.py:35
#: snikket_web/invite.py:33
msgid ""
"The account data you tried to import is too large to upload. Please contact "
"your Snikket operator."
msgstr ""
#: snikket_web/invite.py:114
#: snikket_web/invite.py:112
msgid "Username"
msgstr "Usuario"
#: snikket_web/invite.py:118 snikket_web/invite.py:186 snikket_web/main.py:43
#: snikket_web/invite.py:116 snikket_web/invite.py:184 snikket_web/main.py:41
msgid "Password"
msgstr "Contraseña"
#: snikket_web/invite.py:122 snikket_web/invite.py:190
#: snikket_web/invite.py:120 snikket_web/invite.py:188
msgid "Confirm password"
msgstr "Confirmar contraseña"
#: snikket_web/invite.py:126 snikket_web/invite.py:194
#: snikket_web/invite.py:124 snikket_web/invite.py:192
#, fuzzy
#| msgid "The passwords must match"
msgid "The passwords must match."
msgstr "Las contraseñas deben ser las mismas"
#: snikket_web/invite.py:131
#: snikket_web/invite.py:129
msgid "Create account"
msgstr "Crear cuenta"
#: snikket_web/invite.py:158
#: snikket_web/invite.py:156
#, fuzzy
#| msgid "That username is already taken"
msgid "That username is already taken."
msgstr "Ese nombre de usuario ya está siendo utilizado"
#: snikket_web/invite.py:162 snikket_web/invite.py:227
#: snikket_web/invite.py:160 snikket_web/invite.py:225
#, fuzzy
#| msgid "Registration was declined for unknown reasons"
msgid "Registration was declined for unknown reasons."
msgstr "El registro ha sido declinado por razones no identificadas"
#: snikket_web/invite.py:166
#: snikket_web/invite.py:164
#, fuzzy
#| msgid "The username is not valid"
msgid "The username is not valid."
msgstr "El nombre de usuario no es válido"
#: snikket_web/invite.py:199 snikket_web/templates/user_home.html:32
#: snikket_web/invite.py:197 snikket_web/templates/user_home.html:32
#: snikket_web/templates/user_passwd.html:29
msgid "Change password"
msgstr "Cambiar contraseña"
#: snikket_web/invite.py:246
#: snikket_web/invite.py:244
msgid "Account data file"
msgstr ""
#: snikket_web/invite.py:250
#: snikket_web/invite.py:248
msgid "Import data"
msgstr ""
#: snikket_web/invite.py:271
#: snikket_web/invite.py:269
#, python-format
msgid ""
"The account data you tried to import is in an unknown format. Please upload "
"an XML file in XEP-0227 format (provided format: %(mimetype)s)."
msgstr ""
#: snikket_web/invite.py:291 snikket_web/templates/unauth.html:18
#: snikket_web/invite.py:289 snikket_web/templates/unauth.html:18
#: snikket_web/user.py:178
msgid "Error"
msgstr ""
#: snikket_web/main.py:38
#: snikket_web/main.py:36
msgid "Address"
msgstr "Dirección"
#: snikket_web/main.py:48
#: snikket_web/main.py:46
msgid "Sign in"
msgstr "Ingresar"
#: snikket_web/main.py:57
#: snikket_web/main.py:55
msgid "Invalid username or password."
msgstr "Nombre de usuario o contraseña no válidos."
#: snikket_web/main.py:85
#: snikket_web/main.py:83
msgid "Login successful!"
msgstr ""
@@ -488,7 +488,7 @@ msgstr ""
msgid "Software Versions"
msgstr ""
#: snikket_web/templates/about.html:32
#: snikket_web/templates/about.html:29
msgid "Back to the main page"
msgstr "Regresar a la página principal"
@@ -635,7 +635,6 @@ msgstr ""
#: snikket_web/templates/admin_delete_user.html:19
#: snikket_web/templates/admin_reset_user_password.html:25
#: snikket_web/templates/user_logout.html:10
#: snikket_web/templates/user_manage_data.html:14
#: snikket_web/templates/user_passwd.html:27
#: snikket_web/templates/user_profile.html:32
msgid "Back"
@@ -1163,8 +1162,8 @@ msgstr ""
#: snikket_web/templates/invite_register.html:16
#: snikket_web/templates/invite_reset_view.html:21
#: snikket_web/templates/invite_view.html:41
#: snikket_web/templates/invite_view.html:84
#: snikket_web/templates/invite_view.html:112
#: snikket_web/templates/invite_view.html:106
#: snikket_web/templates/invite_view.html:134
msgid "Open the app"
msgstr ""
@@ -1253,6 +1252,7 @@ msgid ""
msgstr ""
#: snikket_web/templates/invite_reset_view.html:26
#: snikket_web/templates/invite_view.html:77
msgid ""
"Your camera will turn on. Point it at the square code below until it is "
"within the highlighted square on your screen, and wait until the app "
@@ -1373,7 +1373,7 @@ msgid "Get it on Google Play"
msgstr ""
#: snikket_web/templates/invite_view.html:30
#: snikket_web/templates/invite_view.html:80
#: snikket_web/templates/invite_view.html:102
msgid "Download on the App Store"
msgstr ""
@@ -1404,11 +1404,11 @@ msgid "Scan invite code"
msgstr ""
#: snikket_web/templates/invite_view.html:55
#: snikket_web/templates/invite_view.html:62
#: snikket_web/templates/invite_view.html:74
#: snikket_web/templates/invite_view.html:90
#: snikket_web/templates/invite_view.html:102
#: snikket_web/templates/invite_view.html:118
#: snikket_web/templates/invite_view.html:84
#: snikket_web/templates/invite_view.html:96
#: snikket_web/templates/invite_view.html:112
#: snikket_web/templates/invite_view.html:124
#: snikket_web/templates/invite_view.html:140
msgid "Close"
msgstr ""
@@ -1418,39 +1418,58 @@ msgid ""
"your camera. You can use either a QR scanner app or the Snikket app itself."
msgstr ""
#: snikket_web/templates/invite_view.html:71
#: snikket_web/templates/invite_view.html:63
msgid "Using a QR code scanner"
msgstr ""
#: snikket_web/templates/invite_view.html:65
msgid "Using the Snikket app"
msgstr ""
#: snikket_web/templates/invite_view.html:70
msgid ""
"Use a <em>QR code</em> scanner on your mobile device to scan the code below:"
msgstr ""
#: snikket_web/templates/invite_view.html:76
msgid ""
"Install the Snikket app on your mobile device, open it, and tap the 'Scan' "
"button at the top."
msgstr ""
#: snikket_web/templates/invite_view.html:93
msgid "Install on iOS"
msgstr ""
#: snikket_web/templates/invite_view.html:77
#: snikket_web/templates/invite_view.html:99
msgid ""
"After downloading Snikket from the App Store, you have to return to this "
"invite link and tap on \"Open the app\" to proceed."
msgstr ""
#: snikket_web/templates/invite_view.html:79
#: snikket_web/templates/invite_view.html:101
msgid "First download Snikket from the App Store using the button below:"
msgstr ""
#: snikket_web/templates/invite_view.html:81
#: snikket_web/templates/invite_view.html:109
#: snikket_web/templates/invite_view.html:103
#: snikket_web/templates/invite_view.html:131
msgid ""
"After the installation is complete, you can return to this page and tap the "
"\"Open the app\" button to continue with the setup:"
msgstr ""
#: snikket_web/templates/invite_view.html:99
#: snikket_web/templates/invite_view.html:108
#: snikket_web/templates/invite_view.html:121
#: snikket_web/templates/invite_view.html:130
msgid "Install via F-Droid"
msgstr ""
#: snikket_web/templates/invite_view.html:105
#: snikket_web/templates/invite_view.html:127
msgid ""
"After installing Snikket via F-Droid, you have to return to this invite link "
"and tap on \"Open the app\" to proceed."
msgstr ""
#: snikket_web/templates/invite_view.html:107
#: snikket_web/templates/invite_view.html:129
msgid "First install Snikket from F-Droid using the button below:"
msgstr ""

View File

@@ -7,296 +7,291 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-06-07 22:31+0200\n"
"PO-Revision-Date: 2022-04-11 13:00+0000\n"
"Last-Translator: David Baraniak <admin@chipmnk.dev>\n"
"Language-Team: French <http://i18n.sotecware.net/projects/snikket/web-portal/"
"fr/>\n"
"POT-Creation-Date: 2022-01-17 17:27+0100\n"
"PO-Revision-Date: 2021-06-19 15:01+0000\n"
"Last-Translator: Link Mauve <linkmauve@linkmauve.fr>\n"
"Language-Team: French <https://i18n.sotecware.net/projects/snikket/web-"
"portal/fr/>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.8.1\n"
"X-Generator: Weblate 4.5.1\n"
"Generated-By: Babel 2.9.0\n"
#: snikket_web/admin.py:69 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/admin.py:68 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_edit_circle.html:59
#: snikket_web/templates/admin_users.html:8
msgid "Login name"
msgstr "Identifiant"
#: snikket_web/admin.py:73 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/admin.py:72 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_edit_circle.html:60
#: snikket_web/templates/admin_users.html:9 snikket_web/user.py:63
msgid "Display name"
msgstr "Nom à afficher"
#: snikket_web/admin.py:77 snikket_web/templates/admin_edit_user.html:32
#: snikket_web/admin.py:76 snikket_web/templates/admin_edit_user.html:32
msgid "Access Level"
msgstr "Niveau daccès"
#: snikket_web/admin.py:79
#: snikket_web/admin.py:78
msgid "Limited"
msgstr "Limité"
#: snikket_web/admin.py:80
#: snikket_web/admin.py:79
msgid "Normal user"
msgstr "Utilisateur normal"
#: snikket_web/admin.py:81
#: snikket_web/admin.py:80
msgid "Administrator"
msgstr "Administrateur"
#: snikket_web/admin.py:86
#: snikket_web/admin.py:85
msgid "Update user"
msgstr "Modifier lutilisateur"
#: snikket_web/admin.py:90
#: snikket_web/admin.py:89
msgid "Create password reset link"
msgstr "Créer le lien de réinitialisation de mot de passe"
#: snikket_web/admin.py:108
#: snikket_web/admin.py:107
msgid "Password reset link created"
msgstr "Lien de réinitialisation du mot de passe créé"
#: snikket_web/admin.py:123
#: snikket_web/admin.py:122
msgid "User information updated."
msgstr "Informations de lutilisateur mises à jour."
#: snikket_web/admin.py:145
#: snikket_web/admin.py:144
msgid "Delete user permanently"
msgstr "Désinscrire définitivement lutilisateur"
#: snikket_web/admin.py:158
#: snikket_web/admin.py:157
msgid "User deleted"
msgstr "Utilisateur supprimé"
#: snikket_web/admin.py:196
#: snikket_web/admin.py:195
msgid "Password reset link not found"
msgstr "Lien de réinitialisation du mot de passe introuvable"
#: snikket_web/admin.py:208
#: snikket_web/admin.py:207
msgid "Password reset link deleted"
msgstr "Liens de réinitialisation de mot de passe supprimé"
#: snikket_web/admin.py:228
#: snikket_web/admin.py:227
msgid "Invite to circle"
msgstr "Inviter dans le cercle"
#: snikket_web/admin.py:234
#: snikket_web/admin.py:233
msgid "At least one circle must be selected"
msgstr "Au moins un cercle doit être sélectionné"
#: snikket_web/admin.py:239
#: snikket_web/admin.py:238
msgid "Valid for"
msgstr "Valide pour"
#: snikket_web/admin.py:241
#: snikket_web/admin.py:240
msgid "One hour"
msgstr "Une heure"
#: snikket_web/admin.py:242
#: snikket_web/admin.py:241
msgid "Twelve hours"
msgstr "Douze heures"
#: snikket_web/admin.py:243
#: snikket_web/admin.py:242
msgid "One day"
msgstr "Une journée"
#: snikket_web/admin.py:244
#: snikket_web/admin.py:243
msgid "One week"
msgstr "Une semaine"
#: snikket_web/admin.py:245
#: snikket_web/admin.py:244
msgid "Four weeks"
msgstr "Quatre semaines"
#: snikket_web/admin.py:251 snikket_web/templates/admin_edit_invite.html:17
#: snikket_web/admin.py:250 snikket_web/templates/admin_edit_invite.html:17
msgid "Invitation type"
msgstr "Type dinvitation"
#: snikket_web/admin.py:253 snikket_web/templates/library.j2:116
#: snikket_web/admin.py:252 snikket_web/templates/library.j2:116
msgid "Individual"
msgstr "Individuelle"
#: snikket_web/admin.py:254 snikket_web/templates/library.j2:114
#: snikket_web/admin.py:253 snikket_web/templates/library.j2:114
msgid "Group"
msgstr "Groupe"
#: snikket_web/admin.py:260
#: snikket_web/admin.py:259
msgid "New invitation link"
msgstr "Nouveau lien dinvitation"
#: snikket_web/admin.py:322
#: snikket_web/admin.py:321
msgid "Revoke"
msgstr "Révoquer"
#: snikket_web/admin.py:346
#: snikket_web/admin.py:345
msgid "Invitation created"
msgstr "Invitation créée"
#: snikket_web/admin.py:362
#: snikket_web/admin.py:361
msgid "No such invitation exists"
msgstr "Cette invitation nexiste pas"
#: snikket_web/admin.py:377
#: snikket_web/admin.py:376
msgid "Invitation revoked"
msgstr "Invitation révoquée"
#: snikket_web/admin.py:394 snikket_web/admin.py:442
#: snikket_web/admin.py:393 snikket_web/admin.py:441
msgid "Name"
msgstr "Nom"
#: snikket_web/admin.py:399 snikket_web/templates/admin_circles.html:47
#: snikket_web/admin.py:398 snikket_web/templates/admin_circles.html:47
msgid "Create circle"
msgstr "Créer un cercle"
#: snikket_web/admin.py:429
#: snikket_web/admin.py:428
msgid "Circle created"
msgstr "Cercle créé"
#: snikket_web/admin.py:447
#: snikket_web/admin.py:446
msgid "Select user"
msgstr "Sélectionner un utilisateur"
#: snikket_web/admin.py:452
#: snikket_web/admin.py:451
msgid "Update circle"
msgstr "Mettre à jour le cercle"
#: snikket_web/admin.py:456
#: snikket_web/admin.py:455
msgid "Delete circle permanently"
msgstr "Supprimer le cercle définitivement"
#: snikket_web/admin.py:462
#: snikket_web/admin.py:461
msgid "Add user"
msgstr "Ajouter un utilisateur"
#: snikket_web/admin.py:478
#: snikket_web/admin.py:477
msgid "No such circle exists"
msgstr "Ce cercle nexiste pas"
#: snikket_web/admin.py:515
#: snikket_web/admin.py:514
msgid "Circle data updated"
msgstr "Données du cercle mises à jour"
#: snikket_web/admin.py:521
#: snikket_web/admin.py:520
msgid "Circle deleted"
msgstr "Cercle supprimé"
#: snikket_web/admin.py:532
#: snikket_web/admin.py:531
msgid "User added to circle"
msgstr "Utilisateur ajouté à ce cercle"
#: snikket_web/admin.py:541
#: snikket_web/admin.py:540
msgid "User removed from circle"
msgstr "Utilisateur retiré du cercle"
#: snikket_web/admin.py:610
#: snikket_web/admin.py:609
msgid "Message contents"
msgstr "Contenu du message"
#: snikket_web/admin.py:616
#: snikket_web/admin.py:615
msgid "Only send to online users"
msgstr "Envoyer uniquement aux utilisateurs connectés"
#: snikket_web/admin.py:620
#: snikket_web/admin.py:619
msgid "Post to all users"
msgstr "Envoyer aux utilisateurs"
#: snikket_web/admin.py:624
#: snikket_web/admin.py:623
msgid "Send preview to yourself"
msgstr "Envoyer une prévisualisation à vous-mêmes"
#: snikket_web/admin.py:646
#: snikket_web/admin.py:645
msgid "Announcement sent!"
msgstr "Annonce envoyée!"
#: snikket_web/infra.py:53
#: snikket_web/infra.py:51
msgid "Main"
msgstr "Principal"
#: snikket_web/invite.py:35
#: snikket_web/invite.py:33
msgid ""
"The account data you tried to import is too large to upload. Please contact "
"your Snikket operator."
msgstr ""
"Les données du compte que vous avez essayé d'importer sont trop volumineuses "
"pour être téléchargées. Veuillez contacter votre opérateur Snikket."
#: snikket_web/invite.py:114
#: snikket_web/invite.py:112
msgid "Username"
msgstr "Nom dutilisateur"
#: snikket_web/invite.py:118 snikket_web/invite.py:186 snikket_web/main.py:43
#: snikket_web/invite.py:116 snikket_web/invite.py:184 snikket_web/main.py:41
msgid "Password"
msgstr "Mot de passe"
#: snikket_web/invite.py:122 snikket_web/invite.py:190
#: snikket_web/invite.py:120 snikket_web/invite.py:188
msgid "Confirm password"
msgstr "Confirmer le mot de passe"
#: snikket_web/invite.py:126 snikket_web/invite.py:194
#: snikket_web/invite.py:124 snikket_web/invite.py:192
msgid "The passwords must match."
msgstr "Les mots de passe doivent être identiques."
#: snikket_web/invite.py:131
#: snikket_web/invite.py:129
msgid "Create account"
msgstr "Créer un compte"
#: snikket_web/invite.py:158
#: snikket_web/invite.py:156
msgid "That username is already taken."
msgstr "Ce nom dutilisateur est déjà utilisé."
#: snikket_web/invite.py:162 snikket_web/invite.py:227
#: snikket_web/invite.py:160 snikket_web/invite.py:225
msgid "Registration was declined for unknown reasons."
msgstr "Lenregistrement a été refusé pour des raisons inconnues."
#: snikket_web/invite.py:166
#: snikket_web/invite.py:164
msgid "The username is not valid."
msgstr "Le nom dutilisateur nest pas valide."
#: snikket_web/invite.py:199 snikket_web/templates/user_home.html:32
#: snikket_web/invite.py:197 snikket_web/templates/user_home.html:32
#: snikket_web/templates/user_passwd.html:29
msgid "Change password"
msgstr "Changer de mot de passe"
#: snikket_web/invite.py:246
#: snikket_web/invite.py:244
msgid "Account data file"
msgstr "Fichier de données du compte"
msgstr ""
#: snikket_web/invite.py:250
#: snikket_web/invite.py:248
msgid "Import data"
msgstr "Importer les données"
msgstr ""
#: snikket_web/invite.py:271
#: snikket_web/invite.py:269
#, python-format
msgid ""
"The account data you tried to import is in an unknown format. Please upload "
"an XML file in XEP-0227 format (provided format: %(mimetype)s)."
msgstr ""
"Les données du compte que vous avez essayé d'importer sont dans un format "
"inconnu. Veuillez télécharger un fichier XML au format XEP-0227 (format "
"fourni : %(mimetype)s)."
#: snikket_web/invite.py:291 snikket_web/templates/unauth.html:18
#: snikket_web/invite.py:289 snikket_web/templates/unauth.html:18
#: snikket_web/user.py:178
msgid "Error"
msgstr "Erreur"
#: snikket_web/main.py:38
#: snikket_web/main.py:36
msgid "Address"
msgstr "Adresse"
#: snikket_web/main.py:48
#: snikket_web/main.py:46
msgid "Sign in"
msgstr "Sidentifier"
#: snikket_web/main.py:57
#: snikket_web/main.py:55
msgid "Invalid username or password."
msgstr "Nom dutilisateur ou mot de passe incorrect."
#: snikket_web/main.py:85
#: snikket_web/main.py:83
msgid "Login successful!"
msgstr "Connexion réussie!"
@@ -346,11 +341,11 @@ msgstr "Mettre à jour le profil"
#: snikket_web/user.py:82
msgid "Account data"
msgstr "Données du compte"
msgstr ""
#: snikket_web/user.py:86
msgid "Upload"
msgstr "Télécharger"
msgstr ""
#: snikket_web/user.py:111
msgid "Incorrect password."
@@ -374,11 +369,11 @@ msgstr "Profil mis à jour"
#: snikket_web/user.py:184
msgid "Export"
msgstr "Exporter"
msgstr ""
#: snikket_web/user.py:202
msgid "You currently have no account data to export."
msgstr "Vous n'avez actuellement aucune donnée de compte à exporter."
msgstr ""
#: snikket_web/templates/_footer.html:4
#, python-format
@@ -470,7 +465,7 @@ msgstr ""
msgid "Software Versions"
msgstr "Version des logiciels"
#: snikket_web/templates/about.html:32
#: snikket_web/templates/about.html:29
msgid "Back to the main page"
msgstr "Retour à la page principale"
@@ -617,7 +612,6 @@ msgstr ""
#: snikket_web/templates/admin_delete_user.html:19
#: snikket_web/templates/admin_reset_user_password.html:25
#: snikket_web/templates/user_logout.html:10
#: snikket_web/templates/user_manage_data.html:14
#: snikket_web/templates/user_passwd.html:27
#: snikket_web/templates/user_profile.html:32
msgid "Back"
@@ -1020,7 +1014,7 @@ msgstr "Statut du serveur Snikket"
#: snikket_web/templates/admin_system.html:71
msgid "Storage used by shared files"
msgstr "Stockage utilisé par les fichiers partagés"
msgstr ""
#: snikket_web/templates/admin_system.html:79
msgid "Connected devices"
@@ -1149,8 +1143,8 @@ msgstr "Lapplication est déjà installée?"
#: snikket_web/templates/invite_register.html:16
#: snikket_web/templates/invite_reset_view.html:21
#: snikket_web/templates/invite_view.html:41
#: snikket_web/templates/invite_view.html:84
#: snikket_web/templates/invite_view.html:112
#: snikket_web/templates/invite_view.html:106
#: snikket_web/templates/invite_view.html:134
msgid "Open the app"
msgstr "Ouvrir lapplication"
@@ -1253,6 +1247,7 @@ msgstr ""
"utilisant le bouton Scan tout en haut."
#: snikket_web/templates/invite_reset_view.html:26
#: snikket_web/templates/invite_view.html:77
msgid ""
"Your camera will turn on. Point it at the square code below until it is "
"within the highlighted square on your screen, and wait until the app "
@@ -1319,22 +1314,22 @@ msgid ""
"You can now safely close this page, or log in to the web portal to <a href="
"\"%(login_url)s\">manage your account</a>."
msgstr ""
"Vous pouvez maintenant fermer cette page en toute sécurité, ou vous "
"connecter au portail web pour <a href=\"%(login_url)s\">gérer votre compte</"
"a>."
#: snikket_web/templates/invite_success.html:21
#, fuzzy
#| msgid "Operation successful"
msgid "Import successful"
msgstr "Importation réussie"
msgstr "Opération réussie"
#: snikket_web/templates/invite_success.html:22
msgid "Congratulations! Your account data has been successfully imported."
msgstr ""
"Félicitations ! Les données de votre compte ont été importées avec succès."
#: snikket_web/templates/invite_success.html:26
#, fuzzy
#| msgid "Using the Snikket app"
msgid "Moving to Snikket?"
msgstr "Nouveau utilisateur Snikket ?"
msgstr "En utilisant lapplication Snikket"
#: snikket_web/templates/invite_success.html:27
msgid ""
@@ -1343,15 +1338,10 @@ msgid ""
"information, etc.) from your previous account. When you have exported the "
"data from your previous account, upload it using the form below."
msgstr ""
"Si vous passez d'une autre instance de Snikket ou d'un autre service "
"compatible XMPP, vous pouvez éventuellement importer les données (contacts, "
"informations de profil, etc.) de votre ancien compte. Lorsque vous avez "
"exporté les données de votre ancien compte, téléchargez-les en utilisant le "
"formulaire ci-dessous."
#: snikket_web/templates/invite_success.html:30
msgid "Upload account data"
msgstr "Télécharger les données du compte"
msgstr ""
#: snikket_web/templates/invite_view.html:6
#, python-format
@@ -1400,15 +1390,16 @@ msgid "Get it on Google Play"
msgstr "Obtenez-la sur Google Play"
#: snikket_web/templates/invite_view.html:30
#: snikket_web/templates/invite_view.html:80
#: snikket_web/templates/invite_view.html:102
msgid "Download on the App Store"
msgstr "Télécharger sur lApp Store"
#: snikket_web/templates/invite_view.html:32
msgid "Get it on F-Droid"
msgstr "Obtenez-le sur F-Droid"
msgstr ""
#: snikket_web/templates/invite_view.html:35
#, fuzzy
msgid "Send to mobile device"
msgstr "Envoyer vers l'appareil"
@@ -1438,11 +1429,11 @@ msgid "Scan invite code"
msgstr "Scanner le code dinvitation"
#: snikket_web/templates/invite_view.html:55
#: snikket_web/templates/invite_view.html:62
#: snikket_web/templates/invite_view.html:74
#: snikket_web/templates/invite_view.html:90
#: snikket_web/templates/invite_view.html:102
#: snikket_web/templates/invite_view.html:118
#: snikket_web/templates/invite_view.html:84
#: snikket_web/templates/invite_view.html:96
#: snikket_web/templates/invite_view.html:112
#: snikket_web/templates/invite_view.html:124
#: snikket_web/templates/invite_view.html:140
msgid "Close"
msgstr "Fermer"
@@ -1455,51 +1446,64 @@ msgstr ""
"scannant un code avec votre appareil photo. Vous pouvez utiliser soit une "
"application de scanner de QR code, soit lapplication Snikket elle-même."
#: snikket_web/templates/invite_view.html:71
#: snikket_web/templates/invite_view.html:63
msgid "Using a QR code scanner"
msgstr "En utilisant un scanner de QR code"
#: snikket_web/templates/invite_view.html:65
msgid "Using the Snikket app"
msgstr "En utilisant lapplication Snikket"
#: snikket_web/templates/invite_view.html:70
msgid ""
"Use a <em>QR code</em> scanner on your mobile device to scan the code below:"
msgstr ""
"Utilisez un scanner de <em>QR code</em> sur votre appareil mobile pour "
"scanner le code ci-dessous:"
#: snikket_web/templates/invite_view.html:76
msgid ""
"Install the Snikket app on your mobile device, open it, and tap the 'Scan' "
"button at the top."
msgstr ""
"Installez lapplication Snikket sur votre appareil mobile, ouvrez-la et "
"appuyez sur le bouton «Scan» en haut."
#: snikket_web/templates/invite_view.html:93
msgid "Install on iOS"
msgstr "Installer sur iOS"
#: snikket_web/templates/invite_view.html:77
#: snikket_web/templates/invite_view.html:99
msgid ""
"After downloading Snikket from the App Store, you have to return to this "
"invite link and tap on \"Open the app\" to proceed."
msgstr ""
"Après avoir téléchargé Snikket depuis l'App Store, vous devez revenir à ce "
"lien d'invitation et cliquer sur \"Ouvrir l'application\" pour continuer."
#: snikket_web/templates/invite_view.html:79
#: snikket_web/templates/invite_view.html:101
msgid "First download Snikket from the App Store using the button below:"
msgstr ""
"Téléchargez d'abord Snikket depuis l'App Store en utilisant le bouton ci-"
"dessous :"
#: snikket_web/templates/invite_view.html:81
#: snikket_web/templates/invite_view.html:109
#: snikket_web/templates/invite_view.html:103
#: snikket_web/templates/invite_view.html:131
msgid ""
"After the installation is complete, you can return to this page and tap the "
"\"Open the app\" button to continue with the setup:"
msgstr ""
"Une fois l'installation terminée, vous pouvez revenir à cette page et "
"appuyer sur le bouton \"Ouvrir l'application\" pour poursuivre la "
"configuration :"
#: snikket_web/templates/invite_view.html:99
#: snikket_web/templates/invite_view.html:108
#: snikket_web/templates/invite_view.html:121
#: snikket_web/templates/invite_view.html:130
msgid "Install via F-Droid"
msgstr "Installer via F-Droid"
#: snikket_web/templates/invite_view.html:105
#: snikket_web/templates/invite_view.html:127
msgid ""
"After installing Snikket via F-Droid, you have to return to this invite link "
"and tap on \"Open the app\" to proceed."
msgstr ""
"Après avoir installé Snikket via F-Droid, vous devez revenir à ce lien "
"d'invitation et appuyer sur \"Ouvrir l'application\" pour continuer."
#: snikket_web/templates/invite_view.html:107
#: snikket_web/templates/invite_view.html:129
msgid "First install Snikket from F-Droid using the button below:"
msgstr ""
"Installez d'abord Snikket depuis F-Droid en utilisant le bouton ci-dessous :"
#: snikket_web/templates/library.j2:18
msgid "Copy link"
@@ -1566,8 +1570,10 @@ msgstr "Éditer votre profil"
#: snikket_web/templates/user_home.html:33
#: snikket_web/templates/user_manage_data.html:4
#, fuzzy
#| msgid "Manage users"
msgid "Manage your data"
msgstr "Gérer vos données"
msgstr "Gérer les utilisateurs"
#: snikket_web/templates/user_home.html:39
msgid "Your Snikket"
@@ -1595,16 +1601,16 @@ msgstr ""
"autres appareils connectés."
#: snikket_web/templates/user_manage_data.html:8
#, fuzzy
#| msgid "Your account"
msgid "Export account"
msgstr "Exportation du compte"
msgstr "Votre compte"
#: snikket_web/templates/user_manage_data.html:9
msgid ""
"Download your account data as a file for backup purposes or to move your "
"account to another service."
msgstr ""
"Téléchargez les données de votre compte sous forme d'un fichier à des fins "
"de sauvegarde ou pour transférer votre compte vers un autre service."
#: snikket_web/templates/user_passwd.html:5
msgid "Change your password"
@@ -1648,26 +1654,6 @@ msgstr ""
"Cette section permet de configurer qui peut voir votre profil, comme par "
"exemple votre avatar et votre pseudonyme."
#~ msgid "Using a QR code scanner"
#~ msgstr "En utilisant un scanner de QR code"
#~ msgid "Using the Snikket app"
#~ msgstr "En utilisant lapplication Snikket"
#~ msgid ""
#~ "Use a <em>QR code</em> scanner on your mobile device to scan the code "
#~ "below:"
#~ msgstr ""
#~ "Utilisez un scanner de <em>QR code</em> sur votre appareil mobile pour "
#~ "scanner le code ci-dessous:"
#~ msgid ""
#~ "Install the Snikket app on your mobile device, open it, and tap the "
#~ "'Scan' button at the top."
#~ msgstr ""
#~ "Installez lapplication Snikket sur votre appareil mobile, ouvrez-la et "
#~ "appuyez sur le bouton «Scan» en haut."
#~ msgid "Create password reset link for %(user_name)s"
#~ msgstr "Crée un lien de réinitialisation de mot de passe pour %(user_name)s"

View File

@@ -6,12 +6,12 @@
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-06-07 22:31+0200\n"
"Report-Msgid-Bugs-To: translations@snikket.org\n"
"POT-Creation-Date: 2022-01-17 17:27+0100\n"
"PO-Revision-Date: 2022-01-18 14:59+0000\n"
"Last-Translator: uira <inboxriau@andriana.id>\n"
"Language-Team: Indonesian <http://i18n.sotecware.net/projects/snikket/web-"
"portal/id/>\n"
"Language-Team: Indonesian <http://i18n.sotecware.net/projects/snikket/"
"web-portal/id/>\n"
"Language: id\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -20,203 +20,203 @@ msgstr ""
"X-Generator: Weblate 4.8.1\n"
"Generated-By: Babel 2.9.0\n"
#: snikket_web/admin.py:69 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/admin.py:68 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_edit_circle.html:59
#: snikket_web/templates/admin_users.html:8
msgid "Login name"
msgstr "Nama login"
#: snikket_web/admin.py:73 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/admin.py:72 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_edit_circle.html:60
#: snikket_web/templates/admin_users.html:9 snikket_web/user.py:63
msgid "Display name"
msgstr "Nama tampilan"
#: snikket_web/admin.py:77 snikket_web/templates/admin_edit_user.html:32
#: snikket_web/admin.py:76 snikket_web/templates/admin_edit_user.html:32
msgid "Access Level"
msgstr "Level akses"
#: snikket_web/admin.py:79
#: snikket_web/admin.py:78
msgid "Limited"
msgstr "Terbatas"
#: snikket_web/admin.py:80
#: snikket_web/admin.py:79
msgid "Normal user"
msgstr "Pengguna normal"
#: snikket_web/admin.py:81
#: snikket_web/admin.py:80
msgid "Administrator"
msgstr "Administrator"
#: snikket_web/admin.py:86
#: snikket_web/admin.py:85
msgid "Update user"
msgstr "Memperbarui pengguna"
#: snikket_web/admin.py:90
#: snikket_web/admin.py:89
msgid "Create password reset link"
msgstr "Buat tautan setel ulang kata sandi"
#: snikket_web/admin.py:108
#: snikket_web/admin.py:107
msgid "Password reset link created"
msgstr "Tautan setel ulang kata sandi dibuat"
#: snikket_web/admin.py:123
#: snikket_web/admin.py:122
msgid "User information updated."
msgstr "Informasi pengguna diperbarui."
#: snikket_web/admin.py:145
#: snikket_web/admin.py:144
msgid "Delete user permanently"
msgstr "Hapus permanen pengguna"
#: snikket_web/admin.py:158
#: snikket_web/admin.py:157
msgid "User deleted"
msgstr "Pengguna dihapus"
#: snikket_web/admin.py:196
#: snikket_web/admin.py:195
msgid "Password reset link not found"
msgstr "Tautan setel ulang kata sandi tidak ditemukan"
#: snikket_web/admin.py:208
#: snikket_web/admin.py:207
msgid "Password reset link deleted"
msgstr "Tautan setel ulang kata sandi dihapus"
#: snikket_web/admin.py:228
#: snikket_web/admin.py:227
msgid "Invite to circle"
msgstr "Undang masuk kelompok"
#: snikket_web/admin.py:234
#: snikket_web/admin.py:233
msgid "At least one circle must be selected"
msgstr "Minimal satu kelompok harus dipilih"
#: snikket_web/admin.py:239
#: snikket_web/admin.py:238
msgid "Valid for"
msgstr "Valid selama"
#: snikket_web/admin.py:241
#: snikket_web/admin.py:240
msgid "One hour"
msgstr "Satu jam"
#: snikket_web/admin.py:242
#: snikket_web/admin.py:241
msgid "Twelve hours"
msgstr "Dua belas jam"
#: snikket_web/admin.py:243
#: snikket_web/admin.py:242
msgid "One day"
msgstr "Satu hari"
#: snikket_web/admin.py:244
#: snikket_web/admin.py:243
msgid "One week"
msgstr "Satu minggu"
#: snikket_web/admin.py:245
#: snikket_web/admin.py:244
msgid "Four weeks"
msgstr "Empat minggu"
#: snikket_web/admin.py:251 snikket_web/templates/admin_edit_invite.html:17
#: snikket_web/admin.py:250 snikket_web/templates/admin_edit_invite.html:17
msgid "Invitation type"
msgstr "Jenis undangan"
#: snikket_web/admin.py:253 snikket_web/templates/library.j2:116
#: snikket_web/admin.py:252 snikket_web/templates/library.j2:116
msgid "Individual"
msgstr "Individu"
#: snikket_web/admin.py:254 snikket_web/templates/library.j2:114
#: snikket_web/admin.py:253 snikket_web/templates/library.j2:114
msgid "Group"
msgstr "Grup"
#: snikket_web/admin.py:260
#: snikket_web/admin.py:259
msgid "New invitation link"
msgstr "Tautan undangan baru"
#: snikket_web/admin.py:322
#: snikket_web/admin.py:321
msgid "Revoke"
msgstr "Batalkan"
#: snikket_web/admin.py:346
#: snikket_web/admin.py:345
msgid "Invitation created"
msgstr "Undangan dibuat"
#: snikket_web/admin.py:362
#: snikket_web/admin.py:361
msgid "No such invitation exists"
msgstr "Undangan tidak tersedia"
#: snikket_web/admin.py:377
#: snikket_web/admin.py:376
msgid "Invitation revoked"
msgstr "Undangan dibatalkan"
#: snikket_web/admin.py:394 snikket_web/admin.py:442
#: snikket_web/admin.py:393 snikket_web/admin.py:441
msgid "Name"
msgstr "Nama"
#: snikket_web/admin.py:399 snikket_web/templates/admin_circles.html:47
#: snikket_web/admin.py:398 snikket_web/templates/admin_circles.html:47
msgid "Create circle"
msgstr "Buat kelompok"
#: snikket_web/admin.py:429
#: snikket_web/admin.py:428
msgid "Circle created"
msgstr "Kelompok dibuat"
#: snikket_web/admin.py:447
#: snikket_web/admin.py:446
msgid "Select user"
msgstr "Pilih pengguna"
#: snikket_web/admin.py:452
#: snikket_web/admin.py:451
msgid "Update circle"
msgstr "Memperbarui kelompok"
#: snikket_web/admin.py:456
#: snikket_web/admin.py:455
msgid "Delete circle permanently"
msgstr "Hapus kelompok secara permanen"
#: snikket_web/admin.py:462
#: snikket_web/admin.py:461
msgid "Add user"
msgstr "Tambah pengguna"
#: snikket_web/admin.py:478
#: snikket_web/admin.py:477
msgid "No such circle exists"
msgstr "Kelompok tersebut tidak ada"
#: snikket_web/admin.py:515
#: snikket_web/admin.py:514
msgid "Circle data updated"
msgstr "Data kelompok diperbarui"
#: snikket_web/admin.py:521
#: snikket_web/admin.py:520
msgid "Circle deleted"
msgstr "Kelompok dihapus"
#: snikket_web/admin.py:532
#: snikket_web/admin.py:531
msgid "User added to circle"
msgstr "Pengguna ditambahkan ke kelompok"
#: snikket_web/admin.py:541
#: snikket_web/admin.py:540
msgid "User removed from circle"
msgstr "Pengguna dihapus dari kelompok"
#: snikket_web/admin.py:610
#: snikket_web/admin.py:609
msgid "Message contents"
msgstr "Isi pesan"
#: snikket_web/admin.py:616
#: snikket_web/admin.py:615
msgid "Only send to online users"
msgstr "Hanya kirim ke pengguna online"
#: snikket_web/admin.py:620
#: snikket_web/admin.py:619
msgid "Post to all users"
msgstr "Kirim ke semua pengguna"
#: snikket_web/admin.py:624
#: snikket_web/admin.py:623
msgid "Send preview to yourself"
msgstr "Kirim pratinjau ke diri sendiri"
#: snikket_web/admin.py:646
#: snikket_web/admin.py:645
msgid "Announcement sent!"
msgstr "Pengumuman terkirim!"
#: snikket_web/infra.py:53
#: snikket_web/infra.py:51
msgid "Main"
msgstr "Utama"
#: snikket_web/invite.py:35
#: snikket_web/invite.py:33
msgid ""
"The account data you tried to import is too large to upload. Please contact "
"your Snikket operator."
@@ -224,52 +224,52 @@ msgstr ""
"Data akun yang coba diimpor terlalu besar untuk diunggah. Silakan hubungi "
"operator Snikket Anda."
#: snikket_web/invite.py:114
#: snikket_web/invite.py:112
msgid "Username"
msgstr "Nama pengguna"
#: snikket_web/invite.py:118 snikket_web/invite.py:186 snikket_web/main.py:43
#: snikket_web/invite.py:116 snikket_web/invite.py:184 snikket_web/main.py:41
msgid "Password"
msgstr "Kata sandi"
#: snikket_web/invite.py:122 snikket_web/invite.py:190
#: snikket_web/invite.py:120 snikket_web/invite.py:188
msgid "Confirm password"
msgstr "Konfirmasi kata sandi"
#: snikket_web/invite.py:126 snikket_web/invite.py:194
#: snikket_web/invite.py:124 snikket_web/invite.py:192
msgid "The passwords must match."
msgstr "Kata sandi harus cocok."
#: snikket_web/invite.py:131
#: snikket_web/invite.py:129
msgid "Create account"
msgstr "Buat akun"
#: snikket_web/invite.py:158
#: snikket_web/invite.py:156
msgid "That username is already taken."
msgstr "Nama pengguna itu sudah dipakai."
#: snikket_web/invite.py:162 snikket_web/invite.py:227
#: snikket_web/invite.py:160 snikket_web/invite.py:225
msgid "Registration was declined for unknown reasons."
msgstr "Pendaftaran ditolak karena alasan yang tidak diketahui."
#: snikket_web/invite.py:166
#: snikket_web/invite.py:164
msgid "The username is not valid."
msgstr "Nama pengguna tidak valid."
#: snikket_web/invite.py:199 snikket_web/templates/user_home.html:32
#: snikket_web/invite.py:197 snikket_web/templates/user_home.html:32
#: snikket_web/templates/user_passwd.html:29
msgid "Change password"
msgstr "Ganti kata sandi"
#: snikket_web/invite.py:246
#: snikket_web/invite.py:244
msgid "Account data file"
msgstr "File data akun"
#: snikket_web/invite.py:250
#: snikket_web/invite.py:248
msgid "Import data"
msgstr "Impor data"
#: snikket_web/invite.py:271
#: snikket_web/invite.py:269
#, python-format
msgid ""
"The account data you tried to import is in an unknown format. Please upload "
@@ -278,24 +278,24 @@ msgstr ""
"Data akun yang coba diimpor dalam format yang tidak dikenal. Harap unggah "
"file XML dalam format XEP-0227 (format yang disediakan: %(mimetype)s)."
#: snikket_web/invite.py:291 snikket_web/templates/unauth.html:18
#: snikket_web/invite.py:289 snikket_web/templates/unauth.html:18
#: snikket_web/user.py:178
msgid "Error"
msgstr "Kesalahan"
#: snikket_web/main.py:38
#: snikket_web/main.py:36
msgid "Address"
msgstr "Alamat"
#: snikket_web/main.py:48
#: snikket_web/main.py:46
msgid "Sign in"
msgstr "Masuk"
#: snikket_web/main.py:57
#: snikket_web/main.py:55
msgid "Invalid username or password."
msgstr "Nama pengguna atau kata sandi salah."
#: snikket_web/main.py:85
#: snikket_web/main.py:83
msgid "Login successful!"
msgstr "Login berhasil!"
@@ -471,7 +471,7 @@ msgstr ""
msgid "Software Versions"
msgstr "Versi perangkat lunak"
#: snikket_web/templates/about.html:32
#: snikket_web/templates/about.html:29
msgid "Back to the main page"
msgstr "Kembali ke halaman depan"
@@ -618,7 +618,6 @@ msgstr ""
#: snikket_web/templates/admin_delete_user.html:19
#: snikket_web/templates/admin_reset_user_password.html:25
#: snikket_web/templates/user_logout.html:10
#: snikket_web/templates/user_manage_data.html:14
#: snikket_web/templates/user_passwd.html:27
#: snikket_web/templates/user_profile.html:32
msgid "Back"
@@ -1148,8 +1147,8 @@ msgstr "Aplikasi sudah dipasang?"
#: snikket_web/templates/invite_register.html:16
#: snikket_web/templates/invite_reset_view.html:21
#: snikket_web/templates/invite_view.html:41
#: snikket_web/templates/invite_view.html:84
#: snikket_web/templates/invite_view.html:112
#: snikket_web/templates/invite_view.html:106
#: snikket_web/templates/invite_view.html:134
msgid "Open the app"
msgstr "Buka aplikasi"
@@ -1251,6 +1250,7 @@ msgstr ""
"tombol Pindai di bagian atas."
#: snikket_web/templates/invite_reset_view.html:26
#: snikket_web/templates/invite_view.html:77
msgid ""
"Your camera will turn on. Point it at the square code below until it is "
"within the highlighted square on your screen, and wait until the app "
@@ -1389,7 +1389,7 @@ msgid "Get it on Google Play"
msgstr "Dapatkan di Google Play"
#: snikket_web/templates/invite_view.html:30
#: snikket_web/templates/invite_view.html:80
#: snikket_web/templates/invite_view.html:102
msgid "Download on the App Store"
msgstr "Unduh di App Store"
@@ -1425,11 +1425,11 @@ msgid "Scan invite code"
msgstr "Pindai kode undangan"
#: snikket_web/templates/invite_view.html:55
#: snikket_web/templates/invite_view.html:62
#: snikket_web/templates/invite_view.html:74
#: snikket_web/templates/invite_view.html:90
#: snikket_web/templates/invite_view.html:102
#: snikket_web/templates/invite_view.html:118
#: snikket_web/templates/invite_view.html:84
#: snikket_web/templates/invite_view.html:96
#: snikket_web/templates/invite_view.html:112
#: snikket_web/templates/invite_view.html:124
#: snikket_web/templates/invite_view.html:140
msgid "Close"
msgstr "Tutup"
@@ -1442,11 +1442,34 @@ msgstr ""
"kode dengan kamera. Anda dapat menggunakan aplikasi pemindai QR atau "
"aplikasi Snikket."
#: snikket_web/templates/invite_view.html:71
#: snikket_web/templates/invite_view.html:63
msgid "Using a QR code scanner"
msgstr "Menggunakan pemindai kode QR"
#: snikket_web/templates/invite_view.html:65
msgid "Using the Snikket app"
msgstr "Menggunakan Snikket"
#: snikket_web/templates/invite_view.html:70
msgid ""
"Use a <em>QR code</em> scanner on your mobile device to scan the code below:"
msgstr ""
"Gunakan pemindai <em>kode QR</em> di perangkat seluler Anda untuk memindai "
"kode di bawah:"
#: snikket_web/templates/invite_view.html:76
msgid ""
"Install the Snikket app on your mobile device, open it, and tap the 'Scan' "
"button at the top."
msgstr ""
"Instal aplikasi Snikket di perangkat seluler Anda, buka, dan ketuk tombol "
"'Pindai'."
#: snikket_web/templates/invite_view.html:93
msgid "Install on iOS"
msgstr "Pasang di iOS"
#: snikket_web/templates/invite_view.html:77
#: snikket_web/templates/invite_view.html:99
msgid ""
"After downloading Snikket from the App Store, you have to return to this "
"invite link and tap on \"Open the app\" to proceed."
@@ -1454,12 +1477,12 @@ msgstr ""
"Setelah mengunduh Snikket dari App Store, Anda harus kembali ke tautan "
"undangan ini dan klik \"Buka aplikasi\" untuk melanjutkan."
#: snikket_web/templates/invite_view.html:79
#: snikket_web/templates/invite_view.html:101
msgid "First download Snikket from the App Store using the button below:"
msgstr "Pertama, unduh Snikket dari App Store menggunakan tombol di bawah ini:"
#: snikket_web/templates/invite_view.html:81
#: snikket_web/templates/invite_view.html:109
#: snikket_web/templates/invite_view.html:103
#: snikket_web/templates/invite_view.html:131
msgid ""
"After the installation is complete, you can return to this page and tap the "
"\"Open the app\" button to continue with the setup:"
@@ -1467,12 +1490,12 @@ msgstr ""
"Setelah instalasi selesai, Anda dapat kembali ke halaman ini dan mengetuk "
"tombol \"Buka aplikasi\" untuk melanjutkan pemasangan:"
#: snikket_web/templates/invite_view.html:99
#: snikket_web/templates/invite_view.html:108
#: snikket_web/templates/invite_view.html:121
#: snikket_web/templates/invite_view.html:130
msgid "Install via F-Droid"
msgstr "Install melalui F-Droid"
#: snikket_web/templates/invite_view.html:105
#: snikket_web/templates/invite_view.html:127
msgid ""
"After installing Snikket via F-Droid, you have to return to this invite link "
"and tap on \"Open the app\" to proceed."
@@ -1480,7 +1503,7 @@ msgstr ""
"Setelah menginstal Snikket melalui F-Droid, Anda harus kembali ke tautan "
"undangan ini dan ketuk \"Buka aplikasi\" untuk melanjutkan."
#: snikket_web/templates/invite_view.html:107
#: snikket_web/templates/invite_view.html:129
msgid "First install Snikket from F-Droid using the button below:"
msgstr "Pertama install Snikket dari F-Droid menggunakan tombol di bawah ini:"
@@ -1630,26 +1653,6 @@ msgstr ""
"Bagian ini memungkinkan Anda untuk mengontrol siapa yang bisa melihat profil "
"Anda, seperti avatar dan nama panggilan."
#~ msgid "Using a QR code scanner"
#~ msgstr "Menggunakan pemindai kode QR"
#~ msgid "Using the Snikket app"
#~ msgstr "Menggunakan Snikket"
#~ msgid ""
#~ "Use a <em>QR code</em> scanner on your mobile device to scan the code "
#~ "below:"
#~ msgstr ""
#~ "Gunakan pemindai <em>kode QR</em> di perangkat seluler Anda untuk "
#~ "memindai kode di bawah:"
#~ msgid ""
#~ "Install the Snikket app on your mobile device, open it, and tap the "
#~ "'Scan' button at the top."
#~ msgstr ""
#~ "Instal aplikasi Snikket di perangkat seluler Anda, buka, dan ketuk tombol "
#~ "'Pindai'."
#~ msgid "Create password reset link for %(user_name)s"
#~ msgstr "Buat tautan setel ulang kata sandi untuk %(user_name)s"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-06-07 22:31+0200\n"
"POT-Creation-Date: 2022-01-17 17:27+0100\n"
"PO-Revision-Date: 2021-05-19 15:12+0000\n"
"Last-Translator: Roberto Resoli <roberto@resolutions.it>\n"
"Language-Team: Italian <https://i18n.sotecware.net/projects/snikket/web-"
@@ -20,278 +20,278 @@ msgstr ""
"X-Generator: Weblate 4.5.1\n"
"Generated-By: Babel 2.9.0\n"
#: snikket_web/admin.py:69 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/admin.py:68 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_edit_circle.html:59
#: snikket_web/templates/admin_users.html:8
msgid "Login name"
msgstr "Nome utente"
#: snikket_web/admin.py:73 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/admin.py:72 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_edit_circle.html:60
#: snikket_web/templates/admin_users.html:9 snikket_web/user.py:63
msgid "Display name"
msgstr "Nome visualizzato"
#: snikket_web/admin.py:77 snikket_web/templates/admin_edit_user.html:32
#: snikket_web/admin.py:76 snikket_web/templates/admin_edit_user.html:32
msgid "Access Level"
msgstr "Livello di accesso"
#: snikket_web/admin.py:79
#: snikket_web/admin.py:78
msgid "Limited"
msgstr "Limitato"
#: snikket_web/admin.py:80
#: snikket_web/admin.py:79
msgid "Normal user"
msgstr "Utente normale"
#: snikket_web/admin.py:81
#: snikket_web/admin.py:80
msgid "Administrator"
msgstr "Amministratore"
#: snikket_web/admin.py:86
#: snikket_web/admin.py:85
msgid "Update user"
msgstr "Aggiorna utente"
#: snikket_web/admin.py:90
#: snikket_web/admin.py:89
msgid "Create password reset link"
msgstr "Crea collegamento per reimpostare la password"
#: snikket_web/admin.py:108
#: snikket_web/admin.py:107
msgid "Password reset link created"
msgstr "Creato collegamento per reimpostare la password"
#: snikket_web/admin.py:123
#: snikket_web/admin.py:122
msgid "User information updated."
msgstr "Informazioni utente aggiornate."
#: snikket_web/admin.py:145
#: snikket_web/admin.py:144
msgid "Delete user permanently"
msgstr "Elimina definitivamente l'utente"
#: snikket_web/admin.py:158
#: snikket_web/admin.py:157
msgid "User deleted"
msgstr "Utente rimosso"
#: snikket_web/admin.py:196
#: snikket_web/admin.py:195
msgid "Password reset link not found"
msgstr "Collegamento per reimpostare la password non trovato"
#: snikket_web/admin.py:208
#: snikket_web/admin.py:207
msgid "Password reset link deleted"
msgstr "Eliminato collegamento per reimpostare la password"
#: snikket_web/admin.py:228
#: snikket_web/admin.py:227
msgid "Invite to circle"
msgstr "Invita nella cerchia"
#: snikket_web/admin.py:234
#: snikket_web/admin.py:233
msgid "At least one circle must be selected"
msgstr "Devi selezionare almeno una cerchia"
#: snikket_web/admin.py:239
#: snikket_web/admin.py:238
msgid "Valid for"
msgstr "Valido per"
#: snikket_web/admin.py:241
#: snikket_web/admin.py:240
msgid "One hour"
msgstr "Un'ora"
#: snikket_web/admin.py:242
#: snikket_web/admin.py:241
msgid "Twelve hours"
msgstr "Dodici ore"
#: snikket_web/admin.py:243
#: snikket_web/admin.py:242
msgid "One day"
msgstr "Un giorno"
#: snikket_web/admin.py:244
#: snikket_web/admin.py:243
msgid "One week"
msgstr "Una settimana"
#: snikket_web/admin.py:245
#: snikket_web/admin.py:244
msgid "Four weeks"
msgstr "Quattro settimane"
#: snikket_web/admin.py:251 snikket_web/templates/admin_edit_invite.html:17
#: snikket_web/admin.py:250 snikket_web/templates/admin_edit_invite.html:17
msgid "Invitation type"
msgstr "Tipo di invito"
#: snikket_web/admin.py:253 snikket_web/templates/library.j2:116
#: snikket_web/admin.py:252 snikket_web/templates/library.j2:116
msgid "Individual"
msgstr "Individuale"
#: snikket_web/admin.py:254 snikket_web/templates/library.j2:114
#: snikket_web/admin.py:253 snikket_web/templates/library.j2:114
msgid "Group"
msgstr "Gruppo"
#: snikket_web/admin.py:260
#: snikket_web/admin.py:259
msgid "New invitation link"
msgstr "Nuovo collegamento di invito"
#: snikket_web/admin.py:322
#: snikket_web/admin.py:321
msgid "Revoke"
msgstr "Revoca"
#: snikket_web/admin.py:346
#: snikket_web/admin.py:345
msgid "Invitation created"
msgstr "Invito creato"
#: snikket_web/admin.py:362
#: snikket_web/admin.py:361
msgid "No such invitation exists"
msgstr "Questo invito non esiste"
#: snikket_web/admin.py:377
#: snikket_web/admin.py:376
msgid "Invitation revoked"
msgstr "Invito revocato"
#: snikket_web/admin.py:394 snikket_web/admin.py:442
#: snikket_web/admin.py:393 snikket_web/admin.py:441
msgid "Name"
msgstr "Nome"
#: snikket_web/admin.py:399 snikket_web/templates/admin_circles.html:47
#: snikket_web/admin.py:398 snikket_web/templates/admin_circles.html:47
msgid "Create circle"
msgstr "Crea cerchia"
#: snikket_web/admin.py:429
#: snikket_web/admin.py:428
msgid "Circle created"
msgstr "Cerchia creata"
#: snikket_web/admin.py:447
#: snikket_web/admin.py:446
msgid "Select user"
msgstr "Seleziona utente"
#: snikket_web/admin.py:452
#: snikket_web/admin.py:451
msgid "Update circle"
msgstr "Modifica cerchia"
#: snikket_web/admin.py:456
#: snikket_web/admin.py:455
msgid "Delete circle permanently"
msgstr "Elimina cerchia definitivamente"
#: snikket_web/admin.py:462
#: snikket_web/admin.py:461
msgid "Add user"
msgstr "Aggiungi utente"
#: snikket_web/admin.py:478
#: snikket_web/admin.py:477
msgid "No such circle exists"
msgstr "Questa cerchia non esiste"
#: snikket_web/admin.py:515
#: snikket_web/admin.py:514
msgid "Circle data updated"
msgstr "Dati della cerchia aggiornati"
#: snikket_web/admin.py:521
#: snikket_web/admin.py:520
msgid "Circle deleted"
msgstr "Cerchia eliminata"
#: snikket_web/admin.py:532
#: snikket_web/admin.py:531
msgid "User added to circle"
msgstr "Utente aggiunto alla cerchia"
#: snikket_web/admin.py:541
#: snikket_web/admin.py:540
msgid "User removed from circle"
msgstr "Utente rimosso dalla cerchia"
#: snikket_web/admin.py:610
#: snikket_web/admin.py:609
msgid "Message contents"
msgstr ""
#: snikket_web/admin.py:616
#: snikket_web/admin.py:615
msgid "Only send to online users"
msgstr ""
#: snikket_web/admin.py:620
#: snikket_web/admin.py:619
msgid "Post to all users"
msgstr ""
#: snikket_web/admin.py:624
#: snikket_web/admin.py:623
msgid "Send preview to yourself"
msgstr ""
#: snikket_web/admin.py:646
#: snikket_web/admin.py:645
msgid "Announcement sent!"
msgstr ""
#: snikket_web/infra.py:53
#: snikket_web/infra.py:51
msgid "Main"
msgstr "Principale"
#: snikket_web/invite.py:35
#: snikket_web/invite.py:33
msgid ""
"The account data you tried to import is too large to upload. Please contact "
"your Snikket operator."
msgstr ""
#: snikket_web/invite.py:114
#: snikket_web/invite.py:112
msgid "Username"
msgstr "Nome utente"
#: snikket_web/invite.py:118 snikket_web/invite.py:186 snikket_web/main.py:43
#: snikket_web/invite.py:116 snikket_web/invite.py:184 snikket_web/main.py:41
msgid "Password"
msgstr "Password"
#: snikket_web/invite.py:122 snikket_web/invite.py:190
#: snikket_web/invite.py:120 snikket_web/invite.py:188
msgid "Confirm password"
msgstr "Conferma password"
#: snikket_web/invite.py:126 snikket_web/invite.py:194
#: snikket_web/invite.py:124 snikket_web/invite.py:192
msgid "The passwords must match."
msgstr "Le password devono essere identiche."
#: snikket_web/invite.py:131
#: snikket_web/invite.py:129
msgid "Create account"
msgstr "Crea utenza"
#: snikket_web/invite.py:158
#: snikket_web/invite.py:156
msgid "That username is already taken."
msgstr "Nome utente già in uso."
#: snikket_web/invite.py:162 snikket_web/invite.py:227
#: snikket_web/invite.py:160 snikket_web/invite.py:225
msgid "Registration was declined for unknown reasons."
msgstr "Registrazione rifiutata per motivi sconosciuti."
#: snikket_web/invite.py:166
#: snikket_web/invite.py:164
msgid "The username is not valid."
msgstr "Nome utente non valido."
#: snikket_web/invite.py:199 snikket_web/templates/user_home.html:32
#: snikket_web/invite.py:197 snikket_web/templates/user_home.html:32
#: snikket_web/templates/user_passwd.html:29
msgid "Change password"
msgstr "Cambia password"
#: snikket_web/invite.py:246
#: snikket_web/invite.py:244
msgid "Account data file"
msgstr ""
#: snikket_web/invite.py:250
#: snikket_web/invite.py:248
msgid "Import data"
msgstr ""
#: snikket_web/invite.py:271
#: snikket_web/invite.py:269
#, python-format
msgid ""
"The account data you tried to import is in an unknown format. Please upload "
"an XML file in XEP-0227 format (provided format: %(mimetype)s)."
msgstr ""
#: snikket_web/invite.py:291 snikket_web/templates/unauth.html:18
#: snikket_web/invite.py:289 snikket_web/templates/unauth.html:18
#: snikket_web/user.py:178
msgid "Error"
msgstr "Errore"
#: snikket_web/main.py:38
#: snikket_web/main.py:36
msgid "Address"
msgstr "Indirizzo"
#: snikket_web/main.py:48
#: snikket_web/main.py:46
msgid "Sign in"
msgstr "Accedi"
#: snikket_web/main.py:57
#: snikket_web/main.py:55
msgid "Invalid username or password."
msgstr "Nome utente o password non validi."
#: snikket_web/main.py:85
#: snikket_web/main.py:83
msgid "Login successful!"
msgstr "Accesso riuscito!"
@@ -466,7 +466,7 @@ msgstr ""
msgid "Software Versions"
msgstr "Versioni dei programmi"
#: snikket_web/templates/about.html:32
#: snikket_web/templates/about.html:29
msgid "Back to the main page"
msgstr "Torna alla pagina principale"
@@ -613,7 +613,6 @@ msgstr ""
#: snikket_web/templates/admin_delete_user.html:19
#: snikket_web/templates/admin_reset_user_password.html:25
#: snikket_web/templates/user_logout.html:10
#: snikket_web/templates/user_manage_data.html:14
#: snikket_web/templates/user_passwd.html:27
#: snikket_web/templates/user_profile.html:32
msgid "Back"
@@ -1143,8 +1142,8 @@ msgstr "Applicazione già installata?"
#: snikket_web/templates/invite_register.html:16
#: snikket_web/templates/invite_reset_view.html:21
#: snikket_web/templates/invite_view.html:41
#: snikket_web/templates/invite_view.html:84
#: snikket_web/templates/invite_view.html:112
#: snikket_web/templates/invite_view.html:106
#: snikket_web/templates/invite_view.html:134
msgid "Open the app"
msgstr "Apri l'applicazione"
@@ -1246,6 +1245,7 @@ msgstr ""
"Snikket utilizzando il pulsante di scansione in alto."
#: snikket_web/templates/invite_reset_view.html:26
#: snikket_web/templates/invite_view.html:77
msgid ""
"Your camera will turn on. Point it at the square code below until it is "
"within the highlighted square on your screen, and wait until the app "
@@ -1385,7 +1385,7 @@ msgid "Get it on Google Play"
msgstr "Scarica da Google Play"
#: snikket_web/templates/invite_view.html:30
#: snikket_web/templates/invite_view.html:80
#: snikket_web/templates/invite_view.html:102
msgid "Download on the App Store"
msgstr "Scarica dall'App Store"
@@ -1422,11 +1422,11 @@ msgid "Scan invite code"
msgstr "Scansiona il codice di invito"
#: snikket_web/templates/invite_view.html:55
#: snikket_web/templates/invite_view.html:62
#: snikket_web/templates/invite_view.html:74
#: snikket_web/templates/invite_view.html:90
#: snikket_web/templates/invite_view.html:102
#: snikket_web/templates/invite_view.html:118
#: snikket_web/templates/invite_view.html:84
#: snikket_web/templates/invite_view.html:96
#: snikket_web/templates/invite_view.html:112
#: snikket_web/templates/invite_view.html:124
#: snikket_web/templates/invite_view.html:140
msgid "Close"
msgstr "Chiudi"
@@ -1439,11 +1439,34 @@ msgstr ""
"con la fotocamera. Puoi usare un lettore di codici QR o l'applicazione "
"Snikket stessa."
#: snikket_web/templates/invite_view.html:71
#: snikket_web/templates/invite_view.html:63
msgid "Using a QR code scanner"
msgstr "Usa un lettore di codici QR"
#: snikket_web/templates/invite_view.html:65
msgid "Using the Snikket app"
msgstr "Usa l'applicazione Snikket"
#: snikket_web/templates/invite_view.html:70
msgid ""
"Use a <em>QR code</em> scanner on your mobile device to scan the code below:"
msgstr ""
"Usa un lettore di <em>codici QR</em> sul tuo dispositivo mobile per "
"scansionare il seguente codice:"
#: snikket_web/templates/invite_view.html:76
msgid ""
"Install the Snikket app on your mobile device, open it, and tap the 'Scan' "
"button at the top."
msgstr ""
"Installa l'applicazione Snikket sul tuo dispositivo mobile, aprila e poi "
"premi il pulsante di scansione in alto."
#: snikket_web/templates/invite_view.html:93
msgid "Install on iOS"
msgstr "Installa su iOS"
#: snikket_web/templates/invite_view.html:77
#: snikket_web/templates/invite_view.html:99
msgid ""
"After downloading Snikket from the App Store, you have to return to this "
"invite link and tap on \"Open the app\" to proceed."
@@ -1451,14 +1474,14 @@ msgstr ""
"Dopo aver scaricato Snikket dall'App Store, devi tornare a questo link di "
"invito e toccare \"Apri nell'app\" per procedere."
#: snikket_web/templates/invite_view.html:79
#: snikket_web/templates/invite_view.html:101
msgid "First download Snikket from the App Store using the button below:"
msgstr ""
"Per prima cosa, scarica Snikket dall'App Store utilizzando il pulsante qui "
"sotto:"
#: snikket_web/templates/invite_view.html:81
#: snikket_web/templates/invite_view.html:109
#: snikket_web/templates/invite_view.html:103
#: snikket_web/templates/invite_view.html:131
msgid ""
"After the installation is complete, you can return to this page and tap the "
"\"Open the app\" button to continue with the setup:"
@@ -1466,12 +1489,12 @@ msgstr ""
"Dopo che l'installazione è completa, puoi tornare a questa pagina e toccare "
"il pulsante \"Apri nell'app\" per continuare con la configurazione:"
#: snikket_web/templates/invite_view.html:99
#: snikket_web/templates/invite_view.html:108
#: snikket_web/templates/invite_view.html:121
#: snikket_web/templates/invite_view.html:130
msgid "Install via F-Droid"
msgstr "Installa da F-Droid"
#: snikket_web/templates/invite_view.html:105
#: snikket_web/templates/invite_view.html:127
msgid ""
"After installing Snikket via F-Droid, you have to return to this invite link "
"and tap on \"Open the app\" to proceed."
@@ -1479,7 +1502,7 @@ msgstr ""
"Dopo aver installato Snikket da F-Droid, devi tornare a questo link di "
"invito e toccare su \"Apri nell'app\" per procedere."
#: snikket_web/templates/invite_view.html:107
#: snikket_web/templates/invite_view.html:129
msgid "First install Snikket from F-Droid using the button below:"
msgstr ""
"Per prima cosa installa Snikket da F-Droid utilizzando il pulsante qui sotto:"
@@ -1635,26 +1658,6 @@ msgstr ""
"Questa sezione ti permette di controllare chi può visualizzare i dettagli "
"del tuo profilo, come ad esempio l'avatar o il soprannome."
#~ msgid "Using a QR code scanner"
#~ msgstr "Usa un lettore di codici QR"
#~ msgid "Using the Snikket app"
#~ msgstr "Usa l'applicazione Snikket"
#~ msgid ""
#~ "Use a <em>QR code</em> scanner on your mobile device to scan the code "
#~ "below:"
#~ msgstr ""
#~ "Usa un lettore di <em>codici QR</em> sul tuo dispositivo mobile per "
#~ "scansionare il seguente codice:"
#~ msgid ""
#~ "Install the Snikket app on your mobile device, open it, and tap the "
#~ "'Scan' button at the top."
#~ msgstr ""
#~ "Installa l'applicazione Snikket sul tuo dispositivo mobile, aprila e poi "
#~ "premi il pulsante di scansione in alto."
#~ msgid "Create password reset link for %(user_name)s"
#~ msgstr "Crea collegamento per reimpostare la password di %(user_name)s"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-06-07 22:31+0200\n"
"POT-Creation-Date: 2022-01-17 17:27+0100\n"
"PO-Revision-Date: 2021-01-28 17:55+0000\n"
"Last-Translator: pep <pep@bouah.net>\n"
"Language-Team: Japanese <https://i18n.sotecware.net/projects/snikket/web-"
@@ -20,318 +20,318 @@ msgstr ""
"X-Generator: Weblate 4.4.2\n"
"Generated-By: Babel 2.9.0\n"
#: snikket_web/admin.py:69 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/admin.py:68 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_edit_circle.html:59
#: snikket_web/templates/admin_users.html:8
msgid "Login name"
msgstr "ロゲイン名"
#: snikket_web/admin.py:73 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/admin.py:72 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_edit_circle.html:60
#: snikket_web/templates/admin_users.html:9 snikket_web/user.py:63
msgid "Display name"
msgstr "表示名"
#: snikket_web/admin.py:77 snikket_web/templates/admin_edit_user.html:32
#: snikket_web/admin.py:76 snikket_web/templates/admin_edit_user.html:32
msgid "Access Level"
msgstr ""
#: snikket_web/admin.py:79
#: snikket_web/admin.py:78
msgid "Limited"
msgstr ""
#: snikket_web/admin.py:80
#: snikket_web/admin.py:79
msgid "Normal user"
msgstr ""
#: snikket_web/admin.py:81
#: snikket_web/admin.py:80
#, fuzzy
#| msgid "Admin area"
msgid "Administrator"
msgstr "管理"
#: snikket_web/admin.py:86
#: snikket_web/admin.py:85
#, fuzzy
#| msgid "Update circle"
msgid "Update user"
msgstr "サークルを更新"
#: snikket_web/admin.py:90
#: snikket_web/admin.py:89
#, fuzzy
#| msgid "Password reset link for %(user_name)s"
msgid "Create password reset link"
msgstr "%(user_name)s のパスワード再設定リンク"
#: snikket_web/admin.py:108
#: snikket_web/admin.py:107
#, fuzzy
#| msgid "Password reset link for %(user_name)s"
msgid "Password reset link created"
msgstr "%(user_name)s のパスワード再設定リンク"
#: snikket_web/admin.py:123
#: snikket_web/admin.py:122
#, fuzzy
#| msgid "User information"
msgid "User information updated."
msgstr "ユーザー詳細"
#: snikket_web/admin.py:145
#: snikket_web/admin.py:144
msgid "Delete user permanently"
msgstr "ユーザーを削除する"
#: snikket_web/admin.py:158
#: snikket_web/admin.py:157
msgid "User deleted"
msgstr ""
#: snikket_web/admin.py:196
#: snikket_web/admin.py:195
#, fuzzy
#| msgid "Password reset link for %(user_name)s"
msgid "Password reset link not found"
msgstr "%(user_name)s のパスワード再設定リンク"
#: snikket_web/admin.py:208
#: snikket_web/admin.py:207
#, fuzzy
#| msgid "Password reset link for %(user_name)s"
msgid "Password reset link deleted"
msgstr "%(user_name)s のパスワード再設定リンク"
#: snikket_web/admin.py:228
#: snikket_web/admin.py:227
msgid "Invite to circle"
msgstr "サークルに紹介する"
#: snikket_web/admin.py:234
#: snikket_web/admin.py:233
msgid "At least one circle must be selected"
msgstr "サークルを選択してください"
#: snikket_web/admin.py:239
#: snikket_web/admin.py:238
msgid "Valid for"
msgstr "有効期限"
#: snikket_web/admin.py:241
#: snikket_web/admin.py:240
msgid "One hour"
msgstr "一時間"
#: snikket_web/admin.py:242
#: snikket_web/admin.py:241
msgid "Twelve hours"
msgstr "12時間"
#: snikket_web/admin.py:243
#: snikket_web/admin.py:242
msgid "One day"
msgstr "一日"
#: snikket_web/admin.py:244
#: snikket_web/admin.py:243
msgid "One week"
msgstr "一週間"
#: snikket_web/admin.py:245
#: snikket_web/admin.py:244
msgid "Four weeks"
msgstr "4週間"
#: snikket_web/admin.py:251 snikket_web/templates/admin_edit_invite.html:17
#: snikket_web/admin.py:250 snikket_web/templates/admin_edit_invite.html:17
msgid "Invitation type"
msgstr "紹介の種類"
#: snikket_web/admin.py:253 snikket_web/templates/library.j2:116
#: snikket_web/admin.py:252 snikket_web/templates/library.j2:116
msgid "Individual"
msgstr "一回"
#: snikket_web/admin.py:254 snikket_web/templates/library.j2:114
#: snikket_web/admin.py:253 snikket_web/templates/library.j2:114
msgid "Group"
msgstr "複数回"
#: snikket_web/admin.py:260
#: snikket_web/admin.py:259
msgid "New invitation link"
msgstr "新しい紹介状"
#: snikket_web/admin.py:322
#: snikket_web/admin.py:321
msgid "Revoke"
msgstr "取り消す"
#: snikket_web/admin.py:346
#: snikket_web/admin.py:345
#, fuzzy
#| msgid "Invitation type"
msgid "Invitation created"
msgstr "紹介の種類"
#: snikket_web/admin.py:362
#: snikket_web/admin.py:361
#, fuzzy
#| msgid "New invitation link"
msgid "No such invitation exists"
msgstr "新しい紹介状"
#: snikket_web/admin.py:377
#: snikket_web/admin.py:376
#, fuzzy
#| msgid "Invitation type"
msgid "Invitation revoked"
msgstr "紹介の種類"
#: snikket_web/admin.py:394 snikket_web/admin.py:442
#: snikket_web/admin.py:393 snikket_web/admin.py:441
msgid "Name"
msgstr "名"
#: snikket_web/admin.py:399 snikket_web/templates/admin_circles.html:47
#: snikket_web/admin.py:398 snikket_web/templates/admin_circles.html:47
msgid "Create circle"
msgstr "サークルを作成"
#: snikket_web/admin.py:429
#: snikket_web/admin.py:428
#, fuzzy
#| msgid "Circle name"
msgid "Circle created"
msgstr "サークル名"
#: snikket_web/admin.py:447
#: snikket_web/admin.py:446
msgid "Select user"
msgstr "ユーザー選択"
#: snikket_web/admin.py:452
#: snikket_web/admin.py:451
msgid "Update circle"
msgstr "サークルを更新"
#: snikket_web/admin.py:456
#: snikket_web/admin.py:455
msgid "Delete circle permanently"
msgstr "サークルを削除"
#: snikket_web/admin.py:462
#: snikket_web/admin.py:461
msgid "Add user"
msgstr "ユーザーを追加する"
#: snikket_web/admin.py:478
#: snikket_web/admin.py:477
#, fuzzy
#| msgid "No circles"
msgid "No such circle exists"
msgstr "なし"
#: snikket_web/admin.py:515
#: snikket_web/admin.py:514
#, fuzzy
#| msgid "Circle name"
msgid "Circle data updated"
msgstr "サークル名"
#: snikket_web/admin.py:521
#: snikket_web/admin.py:520
#, fuzzy
#| msgid "Circle members"
msgid "Circle deleted"
msgstr "サークル会員"
#: snikket_web/admin.py:532
#: snikket_web/admin.py:531
#, fuzzy
#| msgid "Invite to circle"
msgid "User added to circle"
msgstr "サークルに紹介する"
#: snikket_web/admin.py:541
#: snikket_web/admin.py:540
#, fuzzy
#| msgid "Remove user %(username)s from circle"
msgid "User removed from circle"
msgstr "%(username)s をサークルから外す"
#: snikket_web/admin.py:610
#: snikket_web/admin.py:609
msgid "Message contents"
msgstr ""
#: snikket_web/admin.py:616
#: snikket_web/admin.py:615
msgid "Only send to online users"
msgstr ""
#: snikket_web/admin.py:620
#: snikket_web/admin.py:619
msgid "Post to all users"
msgstr ""
#: snikket_web/admin.py:624
#: snikket_web/admin.py:623
msgid "Send preview to yourself"
msgstr ""
#: snikket_web/admin.py:646
#: snikket_web/admin.py:645
msgid "Announcement sent!"
msgstr ""
#: snikket_web/infra.py:53
#: snikket_web/infra.py:51
msgid "Main"
msgstr "第一サークル"
#: snikket_web/invite.py:35
#: snikket_web/invite.py:33
msgid ""
"The account data you tried to import is too large to upload. Please contact "
"your Snikket operator."
msgstr ""
#: snikket_web/invite.py:114
#: snikket_web/invite.py:112
msgid "Username"
msgstr "ユーザー名"
#: snikket_web/invite.py:118 snikket_web/invite.py:186 snikket_web/main.py:43
#: snikket_web/invite.py:116 snikket_web/invite.py:184 snikket_web/main.py:41
msgid "Password"
msgstr "パスワード"
#: snikket_web/invite.py:122 snikket_web/invite.py:190
#: snikket_web/invite.py:120 snikket_web/invite.py:188
msgid "Confirm password"
msgstr "確認用パスワード"
#: snikket_web/invite.py:126 snikket_web/invite.py:194
#: snikket_web/invite.py:124 snikket_web/invite.py:192
#, fuzzy
#| msgid "The passwords must match"
msgid "The passwords must match."
msgstr "確認用パスワードが一致しません"
#: snikket_web/invite.py:131
#: snikket_web/invite.py:129
msgid "Create account"
msgstr "アカウント作成"
#: snikket_web/invite.py:158
#: snikket_web/invite.py:156
#, fuzzy
#| msgid "That username is already taken"
msgid "That username is already taken."
msgstr "このユーザー名は存在しています"
#: snikket_web/invite.py:162 snikket_web/invite.py:227
#: snikket_web/invite.py:160 snikket_web/invite.py:225
#, fuzzy
#| msgid "Registration was declined for unknown reasons"
msgid "Registration was declined for unknown reasons."
msgstr "理由不明の登録エラー"
#: snikket_web/invite.py:166
#: snikket_web/invite.py:164
#, fuzzy
#| msgid "The username is not valid"
msgid "The username is not valid."
msgstr "ユーザー名が不正"
#: snikket_web/invite.py:199 snikket_web/templates/user_home.html:32
#: snikket_web/invite.py:197 snikket_web/templates/user_home.html:32
#: snikket_web/templates/user_passwd.html:29
msgid "Change password"
msgstr "パスワード変更"
#: snikket_web/invite.py:246
#: snikket_web/invite.py:244
msgid "Account data file"
msgstr ""
#: snikket_web/invite.py:250
#: snikket_web/invite.py:248
msgid "Import data"
msgstr ""
#: snikket_web/invite.py:271
#: snikket_web/invite.py:269
#, python-format
msgid ""
"The account data you tried to import is in an unknown format. Please upload "
"an XML file in XEP-0227 format (provided format: %(mimetype)s)."
msgstr ""
#: snikket_web/invite.py:291 snikket_web/templates/unauth.html:18
#: snikket_web/invite.py:289 snikket_web/templates/unauth.html:18
#: snikket_web/user.py:178
msgid "Error"
msgstr ""
#: snikket_web/main.py:38
#: snikket_web/main.py:36
msgid "Address"
msgstr "アドレス"
#: snikket_web/main.py:48
#: snikket_web/main.py:46
msgid "Sign in"
msgstr "サインイン"
#: snikket_web/main.py:57
#: snikket_web/main.py:55
msgid "Invalid username or password."
msgstr "ユーザー名またはパスワードが不正。"
#: snikket_web/main.py:85
#: snikket_web/main.py:83
msgid "Login successful!"
msgstr ""
@@ -498,7 +498,7 @@ msgstr ""
msgid "Software Versions"
msgstr "ソフトウェアバーション"
#: snikket_web/templates/about.html:32
#: snikket_web/templates/about.html:29
msgid "Back to the main page"
msgstr "戻る"
@@ -635,7 +635,6 @@ msgstr ""
#: snikket_web/templates/admin_delete_user.html:19
#: snikket_web/templates/admin_reset_user_password.html:25
#: snikket_web/templates/user_logout.html:10
#: snikket_web/templates/user_manage_data.html:14
#: snikket_web/templates/user_passwd.html:27
#: snikket_web/templates/user_profile.html:32
msgid "Back"
@@ -1168,8 +1167,8 @@ msgstr ""
#: snikket_web/templates/invite_register.html:16
#: snikket_web/templates/invite_reset_view.html:21
#: snikket_web/templates/invite_view.html:41
#: snikket_web/templates/invite_view.html:84
#: snikket_web/templates/invite_view.html:112
#: snikket_web/templates/invite_view.html:106
#: snikket_web/templates/invite_view.html:134
msgid "Open the app"
msgstr ""
@@ -1266,6 +1265,7 @@ msgid ""
msgstr ""
#: snikket_web/templates/invite_reset_view.html:26
#: snikket_web/templates/invite_view.html:77
msgid ""
"Your camera will turn on. Point it at the square code below until it is "
"within the highlighted square on your screen, and wait until the app "
@@ -1391,7 +1391,7 @@ msgid "Get it on Google Play"
msgstr ""
#: snikket_web/templates/invite_view.html:30
#: snikket_web/templates/invite_view.html:80
#: snikket_web/templates/invite_view.html:102
msgid "Download on the App Store"
msgstr ""
@@ -1422,11 +1422,11 @@ msgid "Scan invite code"
msgstr "紹介状をスキャン"
#: snikket_web/templates/invite_view.html:55
#: snikket_web/templates/invite_view.html:62
#: snikket_web/templates/invite_view.html:74
#: snikket_web/templates/invite_view.html:90
#: snikket_web/templates/invite_view.html:102
#: snikket_web/templates/invite_view.html:118
#: snikket_web/templates/invite_view.html:84
#: snikket_web/templates/invite_view.html:96
#: snikket_web/templates/invite_view.html:112
#: snikket_web/templates/invite_view.html:124
#: snikket_web/templates/invite_view.html:140
msgid "Close"
msgstr "閉める"
@@ -1436,39 +1436,58 @@ msgid ""
"your camera. You can use either a QR scanner app or the Snikket app itself."
msgstr ""
#: snikket_web/templates/invite_view.html:71
#: snikket_web/templates/invite_view.html:63
msgid "Using a QR code scanner"
msgstr ""
#: snikket_web/templates/invite_view.html:65
msgid "Using the Snikket app"
msgstr ""
#: snikket_web/templates/invite_view.html:70
msgid ""
"Use a <em>QR code</em> scanner on your mobile device to scan the code below:"
msgstr ""
#: snikket_web/templates/invite_view.html:76
msgid ""
"Install the Snikket app on your mobile device, open it, and tap the 'Scan' "
"button at the top."
msgstr ""
#: snikket_web/templates/invite_view.html:93
msgid "Install on iOS"
msgstr ""
#: snikket_web/templates/invite_view.html:77
#: snikket_web/templates/invite_view.html:99
msgid ""
"After downloading Snikket from the App Store, you have to return to this "
"invite link and tap on \"Open the app\" to proceed."
msgstr ""
#: snikket_web/templates/invite_view.html:79
#: snikket_web/templates/invite_view.html:101
msgid "First download Snikket from the App Store using the button below:"
msgstr ""
#: snikket_web/templates/invite_view.html:81
#: snikket_web/templates/invite_view.html:109
#: snikket_web/templates/invite_view.html:103
#: snikket_web/templates/invite_view.html:131
msgid ""
"After the installation is complete, you can return to this page and tap the "
"\"Open the app\" button to continue with the setup:"
msgstr ""
#: snikket_web/templates/invite_view.html:99
#: snikket_web/templates/invite_view.html:108
#: snikket_web/templates/invite_view.html:121
#: snikket_web/templates/invite_view.html:130
msgid "Install via F-Droid"
msgstr ""
#: snikket_web/templates/invite_view.html:105
#: snikket_web/templates/invite_view.html:127
msgid ""
"After installing Snikket via F-Droid, you have to return to this invite link "
"and tap on \"Open the app\" to proceed."
msgstr ""
#: snikket_web/templates/invite_view.html:107
#: snikket_web/templates/invite_view.html:129
msgid "First install Snikket from F-Droid using the button below:"
msgstr ""

View File

@@ -1,294 +1,294 @@
# Translations template for PROJECT.
# Copyright (C) 2023 ORGANIZATION
# Copyright (C) 2022 ORGANIZATION
# This file is distributed under the same license as the PROJECT project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-03-28 19:16+0200\n"
"POT-Creation-Date: 2022-01-17 17:27+0100\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.12.1\n"
"Generated-By: Babel 2.9.1\n"
#: snikket_web/admin.py:69 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/admin.py:68 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_edit_circle.html:59
#: snikket_web/templates/admin_users.html:8
msgid "Login name"
msgstr ""
#: snikket_web/admin.py:73 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/admin.py:72 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_edit_circle.html:60
#: snikket_web/templates/admin_users.html:9 snikket_web/user.py:63
msgid "Display name"
msgstr ""
#: snikket_web/admin.py:77 snikket_web/templates/admin_edit_user.html:32
#: snikket_web/admin.py:76 snikket_web/templates/admin_edit_user.html:32
msgid "Access Level"
msgstr ""
#: snikket_web/admin.py:79
#: snikket_web/admin.py:78
msgid "Limited"
msgstr ""
#: snikket_web/admin.py:80
#: snikket_web/admin.py:79
msgid "Normal user"
msgstr ""
#: snikket_web/admin.py:81
#: snikket_web/admin.py:80
msgid "Administrator"
msgstr ""
#: snikket_web/admin.py:86
#: snikket_web/admin.py:85
msgid "Update user"
msgstr ""
#: snikket_web/admin.py:90
#: snikket_web/admin.py:89
msgid "Create password reset link"
msgstr ""
#: snikket_web/admin.py:108
#: snikket_web/admin.py:107
msgid "Password reset link created"
msgstr ""
#: snikket_web/admin.py:123
#: snikket_web/admin.py:122
msgid "User information updated."
msgstr ""
#: snikket_web/admin.py:145
#: snikket_web/admin.py:144
msgid "Delete user permanently"
msgstr ""
#: snikket_web/admin.py:158
#: snikket_web/admin.py:157
msgid "User deleted"
msgstr ""
#: snikket_web/admin.py:196
#: snikket_web/admin.py:195
msgid "Password reset link not found"
msgstr ""
#: snikket_web/admin.py:208
#: snikket_web/admin.py:207
msgid "Password reset link deleted"
msgstr ""
#: snikket_web/admin.py:228
#: snikket_web/admin.py:227
msgid "Invite to circle"
msgstr ""
#: snikket_web/admin.py:234
#: snikket_web/admin.py:233
msgid "At least one circle must be selected"
msgstr ""
#: snikket_web/admin.py:239
#: snikket_web/admin.py:238
msgid "Valid for"
msgstr ""
#: snikket_web/admin.py:241
#: snikket_web/admin.py:240
msgid "One hour"
msgstr ""
#: snikket_web/admin.py:242
#: snikket_web/admin.py:241
msgid "Twelve hours"
msgstr ""
#: snikket_web/admin.py:243
#: snikket_web/admin.py:242
msgid "One day"
msgstr ""
#: snikket_web/admin.py:244
#: snikket_web/admin.py:243
msgid "One week"
msgstr ""
#: snikket_web/admin.py:245
#: snikket_web/admin.py:244
msgid "Four weeks"
msgstr ""
#: snikket_web/admin.py:251 snikket_web/templates/admin_edit_invite.html:17
#: snikket_web/admin.py:250 snikket_web/templates/admin_edit_invite.html:17
msgid "Invitation type"
msgstr ""
#: snikket_web/admin.py:253 snikket_web/templates/library.j2:116
#: snikket_web/admin.py:252 snikket_web/templates/library.j2:116
msgid "Individual"
msgstr ""
#: snikket_web/admin.py:254 snikket_web/templates/library.j2:114
#: snikket_web/admin.py:253 snikket_web/templates/library.j2:114
msgid "Group"
msgstr ""
#: snikket_web/admin.py:260
#: snikket_web/admin.py:259
msgid "New invitation link"
msgstr ""
#: snikket_web/admin.py:322
#: snikket_web/admin.py:321
msgid "Revoke"
msgstr ""
#: snikket_web/admin.py:346
#: snikket_web/admin.py:345
msgid "Invitation created"
msgstr ""
#: snikket_web/admin.py:362
#: snikket_web/admin.py:361
msgid "No such invitation exists"
msgstr ""
#: snikket_web/admin.py:377
#: snikket_web/admin.py:376
msgid "Invitation revoked"
msgstr ""
#: snikket_web/admin.py:394 snikket_web/admin.py:442
#: snikket_web/admin.py:393 snikket_web/admin.py:441
msgid "Name"
msgstr ""
#: snikket_web/admin.py:399 snikket_web/templates/admin_circles.html:47
#: snikket_web/admin.py:398 snikket_web/templates/admin_circles.html:47
msgid "Create circle"
msgstr ""
#: snikket_web/admin.py:429
#: snikket_web/admin.py:428
msgid "Circle created"
msgstr ""
#: snikket_web/admin.py:447
#: snikket_web/admin.py:446
msgid "Select user"
msgstr ""
#: snikket_web/admin.py:452
#: snikket_web/admin.py:451
msgid "Update circle"
msgstr ""
#: snikket_web/admin.py:456
#: snikket_web/admin.py:455
msgid "Delete circle permanently"
msgstr ""
#: snikket_web/admin.py:462
#: snikket_web/admin.py:461
msgid "Add user"
msgstr ""
#: snikket_web/admin.py:478
#: snikket_web/admin.py:477
msgid "No such circle exists"
msgstr ""
#: snikket_web/admin.py:515
#: snikket_web/admin.py:514
msgid "Circle data updated"
msgstr ""
#: snikket_web/admin.py:521
#: snikket_web/admin.py:520
msgid "Circle deleted"
msgstr ""
#: snikket_web/admin.py:532
#: snikket_web/admin.py:531
msgid "User added to circle"
msgstr ""
#: snikket_web/admin.py:541
#: snikket_web/admin.py:540
msgid "User removed from circle"
msgstr ""
#: snikket_web/admin.py:610
#: snikket_web/admin.py:609
msgid "Message contents"
msgstr ""
#: snikket_web/admin.py:616
#: snikket_web/admin.py:615
msgid "Only send to online users"
msgstr ""
#: snikket_web/admin.py:620
#: snikket_web/admin.py:619
msgid "Post to all users"
msgstr ""
#: snikket_web/admin.py:624
#: snikket_web/admin.py:623
msgid "Send preview to yourself"
msgstr ""
#: snikket_web/admin.py:646
#: snikket_web/admin.py:645
msgid "Announcement sent!"
msgstr ""
#: snikket_web/infra.py:53
#: snikket_web/infra.py:51
msgid "Main"
msgstr ""
#: snikket_web/invite.py:35
#: snikket_web/invite.py:33
msgid ""
"The account data you tried to import is too large to upload. Please "
"contact your Snikket operator."
msgstr ""
#: snikket_web/invite.py:114
#: snikket_web/invite.py:112
msgid "Username"
msgstr ""
#: snikket_web/invite.py:118 snikket_web/invite.py:186 snikket_web/main.py:43
#: snikket_web/invite.py:116 snikket_web/invite.py:184 snikket_web/main.py:41
msgid "Password"
msgstr ""
#: snikket_web/invite.py:122 snikket_web/invite.py:190
#: snikket_web/invite.py:120 snikket_web/invite.py:188
msgid "Confirm password"
msgstr ""
#: snikket_web/invite.py:126 snikket_web/invite.py:194
#: snikket_web/invite.py:124 snikket_web/invite.py:192
msgid "The passwords must match."
msgstr ""
#: snikket_web/invite.py:131
#: snikket_web/invite.py:129
msgid "Create account"
msgstr ""
#: snikket_web/invite.py:158
#: snikket_web/invite.py:156
msgid "That username is already taken."
msgstr ""
#: snikket_web/invite.py:162 snikket_web/invite.py:227
#: snikket_web/invite.py:160 snikket_web/invite.py:225
msgid "Registration was declined for unknown reasons."
msgstr ""
#: snikket_web/invite.py:166
#: snikket_web/invite.py:164
msgid "The username is not valid."
msgstr ""
#: snikket_web/invite.py:199 snikket_web/templates/user_home.html:32
#: snikket_web/invite.py:197 snikket_web/templates/user_home.html:32
#: snikket_web/templates/user_passwd.html:29
msgid "Change password"
msgstr ""
#: snikket_web/invite.py:246
#: snikket_web/invite.py:244
msgid "Account data file"
msgstr ""
#: snikket_web/invite.py:250
#: snikket_web/invite.py:248
msgid "Import data"
msgstr ""
#: snikket_web/invite.py:271
#: snikket_web/invite.py:269
#, python-format
msgid ""
"The account data you tried to import is in an unknown format. Please "
"upload an XML file in XEP-0227 format (provided format: %(mimetype)s)."
msgstr ""
#: snikket_web/invite.py:291 snikket_web/templates/unauth.html:18
#: snikket_web/invite.py:289 snikket_web/templates/unauth.html:18
#: snikket_web/user.py:178
msgid "Error"
msgstr ""
#: snikket_web/main.py:38
#: snikket_web/main.py:36
msgid "Address"
msgstr ""
#: snikket_web/main.py:48
#: snikket_web/main.py:46
msgid "Sign in"
msgstr ""
#: snikket_web/main.py:57
#: snikket_web/main.py:55
msgid "Invalid username or password."
msgstr ""
#: snikket_web/main.py:85
#: snikket_web/main.py:83
msgid "Login successful!"
msgstr ""
@@ -445,7 +445,7 @@ msgstr ""
msgid "Software Versions"
msgstr ""
#: snikket_web/templates/about.html:32
#: snikket_web/templates/about.html:29
msgid "Back to the main page"
msgstr ""
@@ -580,7 +580,6 @@ msgstr ""
#: snikket_web/templates/admin_delete_user.html:19
#: snikket_web/templates/admin_reset_user_password.html:25
#: snikket_web/templates/user_logout.html:10
#: snikket_web/templates/user_manage_data.html:14
#: snikket_web/templates/user_passwd.html:27
#: snikket_web/templates/user_profile.html:32
msgid "Back"
@@ -1079,8 +1078,8 @@ msgstr ""
#: snikket_web/templates/invite_register.html:16
#: snikket_web/templates/invite_reset_view.html:21
#: snikket_web/templates/invite_view.html:41
#: snikket_web/templates/invite_view.html:84
#: snikket_web/templates/invite_view.html:112
#: snikket_web/templates/invite_view.html:106
#: snikket_web/templates/invite_view.html:134
msgid "Open the app"
msgstr ""
@@ -1170,6 +1169,7 @@ msgid ""
msgstr ""
#: snikket_web/templates/invite_reset_view.html:26
#: snikket_web/templates/invite_view.html:77
msgid ""
"Your camera will turn on. Point it at the square code below until it is "
"within the highlighted square on your screen, and wait until the app "
@@ -1288,7 +1288,7 @@ msgid "Get it on Google Play"
msgstr ""
#: snikket_web/templates/invite_view.html:30
#: snikket_web/templates/invite_view.html:80
#: snikket_web/templates/invite_view.html:102
msgid "Download on the App Store"
msgstr ""
@@ -1319,11 +1319,11 @@ msgid "Scan invite code"
msgstr ""
#: snikket_web/templates/invite_view.html:55
#: snikket_web/templates/invite_view.html:62
#: snikket_web/templates/invite_view.html:74
#: snikket_web/templates/invite_view.html:90
#: snikket_web/templates/invite_view.html:102
#: snikket_web/templates/invite_view.html:118
#: snikket_web/templates/invite_view.html:84
#: snikket_web/templates/invite_view.html:96
#: snikket_web/templates/invite_view.html:112
#: snikket_web/templates/invite_view.html:124
#: snikket_web/templates/invite_view.html:140
msgid "Close"
msgstr ""
@@ -1334,39 +1334,59 @@ msgid ""
"itself."
msgstr ""
#: snikket_web/templates/invite_view.html:71
#: snikket_web/templates/invite_view.html:63
msgid "Using a QR code scanner"
msgstr ""
#: snikket_web/templates/invite_view.html:65
msgid "Using the Snikket app"
msgstr ""
#: snikket_web/templates/invite_view.html:70
msgid ""
"Use a <em>QR code</em> scanner on your mobile device to scan the code "
"below:"
msgstr ""
#: snikket_web/templates/invite_view.html:76
msgid ""
"Install the Snikket app on your mobile device, open it, and tap the "
"'Scan' button at the top."
msgstr ""
#: snikket_web/templates/invite_view.html:93
msgid "Install on iOS"
msgstr ""
#: snikket_web/templates/invite_view.html:77
#: snikket_web/templates/invite_view.html:99
msgid ""
"After downloading Snikket from the App Store, you have to return to this "
"invite link and tap on \"Open the app\" to proceed."
msgstr ""
#: snikket_web/templates/invite_view.html:79
#: snikket_web/templates/invite_view.html:101
msgid "First download Snikket from the App Store using the button below:"
msgstr ""
#: snikket_web/templates/invite_view.html:81
#: snikket_web/templates/invite_view.html:109
#: snikket_web/templates/invite_view.html:103
#: snikket_web/templates/invite_view.html:131
msgid ""
"After the installation is complete, you can return to this page and tap "
"the \"Open the app\" button to continue with the setup:"
msgstr ""
#: snikket_web/templates/invite_view.html:99
#: snikket_web/templates/invite_view.html:108
#: snikket_web/templates/invite_view.html:121
#: snikket_web/templates/invite_view.html:130
msgid "Install via F-Droid"
msgstr ""
#: snikket_web/templates/invite_view.html:105
#: snikket_web/templates/invite_view.html:127
msgid ""
"After installing Snikket via F-Droid, you have to return to this invite "
"link and tap on \"Open the app\" to proceed."
msgstr ""
#: snikket_web/templates/invite_view.html:107
#: snikket_web/templates/invite_view.html:129
msgid "First install Snikket from F-Droid using the button below:"
msgstr ""

View File

@@ -6,8 +6,8 @@
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-06-07 22:31+0200\n"
"Report-Msgid-Bugs-To: translations@snikket.org\n"
"POT-Creation-Date: 2022-01-17 17:27+0100\n"
"PO-Revision-Date: 2022-01-21 15:00+0000\n"
"Last-Translator: misiek <migelazur@mailbox.org>\n"
"Language-Team: Polish <http://i18n.sotecware.net/projects/snikket/web-portal/"
@@ -21,203 +21,203 @@ msgstr ""
"X-Generator: Weblate 4.8.1\n"
"Generated-By: Babel 2.9.0\n"
#: snikket_web/admin.py:69 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/admin.py:68 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_edit_circle.html:59
#: snikket_web/templates/admin_users.html:8
msgid "Login name"
msgstr "Login"
#: snikket_web/admin.py:73 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/admin.py:72 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_edit_circle.html:60
#: snikket_web/templates/admin_users.html:9 snikket_web/user.py:63
msgid "Display name"
msgstr "Nazwa wyświetlana"
#: snikket_web/admin.py:77 snikket_web/templates/admin_edit_user.html:32
#: snikket_web/admin.py:76 snikket_web/templates/admin_edit_user.html:32
msgid "Access Level"
msgstr "Poziom dostępu"
#: snikket_web/admin.py:79
#: snikket_web/admin.py:78
msgid "Limited"
msgstr "Ograniczony"
#: snikket_web/admin.py:80
#: snikket_web/admin.py:79
msgid "Normal user"
msgstr "Zwykły użytkownik"
#: snikket_web/admin.py:81
#: snikket_web/admin.py:80
msgid "Administrator"
msgstr "Administrator"
#: snikket_web/admin.py:86
#: snikket_web/admin.py:85
msgid "Update user"
msgstr "Zapisz ustawienia użytkownika"
#: snikket_web/admin.py:90
#: snikket_web/admin.py:89
msgid "Create password reset link"
msgstr "Stwórz link do zresetowania hasła"
#: snikket_web/admin.py:108
#: snikket_web/admin.py:107
msgid "Password reset link created"
msgstr "Utworzono link resetowania hasła"
#: snikket_web/admin.py:123
#: snikket_web/admin.py:122
msgid "User information updated."
msgstr "Zaktualizowano informacje o użytkowniku."
#: snikket_web/admin.py:145
#: snikket_web/admin.py:144
msgid "Delete user permanently"
msgstr "Usuń użytkownika bezpowrotnie"
#: snikket_web/admin.py:158
#: snikket_web/admin.py:157
msgid "User deleted"
msgstr "Użytkownik został usunięty"
#: snikket_web/admin.py:196
#: snikket_web/admin.py:195
msgid "Password reset link not found"
msgstr "Nie znaleziono linku do zresetowania hasła"
#: snikket_web/admin.py:208
#: snikket_web/admin.py:207
msgid "Password reset link deleted"
msgstr "Usunięto link resetowania hasła"
#: snikket_web/admin.py:228
#: snikket_web/admin.py:227
msgid "Invite to circle"
msgstr "Zaproś do kręgu"
#: snikket_web/admin.py:234
#: snikket_web/admin.py:233
msgid "At least one circle must be selected"
msgstr "Należy wybrać przynajmniej jeden krąg"
#: snikket_web/admin.py:239
#: snikket_web/admin.py:238
msgid "Valid for"
msgstr "Ważne przez"
#: snikket_web/admin.py:241
#: snikket_web/admin.py:240
msgid "One hour"
msgstr "Godzinę"
#: snikket_web/admin.py:242
#: snikket_web/admin.py:241
msgid "Twelve hours"
msgstr "Dwanaście godzin"
#: snikket_web/admin.py:243
#: snikket_web/admin.py:242
msgid "One day"
msgstr "Dzień"
#: snikket_web/admin.py:244
#: snikket_web/admin.py:243
msgid "One week"
msgstr "Tydzień"
#: snikket_web/admin.py:245
#: snikket_web/admin.py:244
msgid "Four weeks"
msgstr "Cztery tygodnie"
#: snikket_web/admin.py:251 snikket_web/templates/admin_edit_invite.html:17
#: snikket_web/admin.py:250 snikket_web/templates/admin_edit_invite.html:17
msgid "Invitation type"
msgstr "Typ zaproszenia"
#: snikket_web/admin.py:253 snikket_web/templates/library.j2:116
#: snikket_web/admin.py:252 snikket_web/templates/library.j2:116
msgid "Individual"
msgstr "Indywidualne"
#: snikket_web/admin.py:254 snikket_web/templates/library.j2:114
#: snikket_web/admin.py:253 snikket_web/templates/library.j2:114
msgid "Group"
msgstr "Grupowe"
#: snikket_web/admin.py:260
#: snikket_web/admin.py:259
msgid "New invitation link"
msgstr "Nowy link z zaproszeniem"
#: snikket_web/admin.py:322
#: snikket_web/admin.py:321
msgid "Revoke"
msgstr "Unieważnij"
#: snikket_web/admin.py:346
#: snikket_web/admin.py:345
msgid "Invitation created"
msgstr "Utworzono zaproszenie"
#: snikket_web/admin.py:362
#: snikket_web/admin.py:361
msgid "No such invitation exists"
msgstr "Takie zaproszenie nie istnieje"
#: snikket_web/admin.py:377
#: snikket_web/admin.py:376
msgid "Invitation revoked"
msgstr "Unieważniono zaproszenie"
#: snikket_web/admin.py:394 snikket_web/admin.py:442
#: snikket_web/admin.py:393 snikket_web/admin.py:441
msgid "Name"
msgstr "Nazwa"
#: snikket_web/admin.py:399 snikket_web/templates/admin_circles.html:47
#: snikket_web/admin.py:398 snikket_web/templates/admin_circles.html:47
msgid "Create circle"
msgstr "Utwórz krąg"
#: snikket_web/admin.py:429
#: snikket_web/admin.py:428
msgid "Circle created"
msgstr "Utworzono krąg"
#: snikket_web/admin.py:447
#: snikket_web/admin.py:446
msgid "Select user"
msgstr "Wybierz użytkownika"
#: snikket_web/admin.py:452
#: snikket_web/admin.py:451
msgid "Update circle"
msgstr "Zaktualizuj ustawienia kręgu"
#: snikket_web/admin.py:456
#: snikket_web/admin.py:455
msgid "Delete circle permanently"
msgstr "Usuń krąg bezpowrotnie"
#: snikket_web/admin.py:462
#: snikket_web/admin.py:461
msgid "Add user"
msgstr "Dodaj użytkownika"
#: snikket_web/admin.py:478
#: snikket_web/admin.py:477
msgid "No such circle exists"
msgstr "Taki krąg nie istnieje"
#: snikket_web/admin.py:515
#: snikket_web/admin.py:514
msgid "Circle data updated"
msgstr "Zaktualizowano dane kręgu"
#: snikket_web/admin.py:521
#: snikket_web/admin.py:520
msgid "Circle deleted"
msgstr "Krąg został usunięty"
#: snikket_web/admin.py:532
#: snikket_web/admin.py:531
msgid "User added to circle"
msgstr "Dodano użytkownika do kręgu"
#: snikket_web/admin.py:541
#: snikket_web/admin.py:540
msgid "User removed from circle"
msgstr "Usunięto użytkownika z kręgu"
#: snikket_web/admin.py:610
#: snikket_web/admin.py:609
msgid "Message contents"
msgstr "Treść wiadomości"
#: snikket_web/admin.py:616
#: snikket_web/admin.py:615
msgid "Only send to online users"
msgstr "Wyślij jedynie do użytkowników online"
#: snikket_web/admin.py:620
#: snikket_web/admin.py:619
msgid "Post to all users"
msgstr "Wyślij do wszystkich użytkowników"
#: snikket_web/admin.py:624
#: snikket_web/admin.py:623
msgid "Send preview to yourself"
msgstr "Prześlij do siebie podgląd wiadomości"
#: snikket_web/admin.py:646
#: snikket_web/admin.py:645
msgid "Announcement sent!"
msgstr "Komunikat wysłany!"
#: snikket_web/infra.py:53
#: snikket_web/infra.py:51
msgid "Main"
msgstr "Główny"
#: snikket_web/invite.py:35
#: snikket_web/invite.py:33
msgid ""
"The account data you tried to import is too large to upload. Please contact "
"your Snikket operator."
@@ -225,52 +225,52 @@ msgstr ""
"Plik z danymi konta, które próbujesz zaimportować, jest zbyt duży. "
"Skontaktuj się z administratorem twojego serwera Snikket."
#: snikket_web/invite.py:114
#: snikket_web/invite.py:112
msgid "Username"
msgstr "Nazwa użytkownika"
#: snikket_web/invite.py:118 snikket_web/invite.py:186 snikket_web/main.py:43
#: snikket_web/invite.py:116 snikket_web/invite.py:184 snikket_web/main.py:41
msgid "Password"
msgstr "Hasło"
#: snikket_web/invite.py:122 snikket_web/invite.py:190
#: snikket_web/invite.py:120 snikket_web/invite.py:188
msgid "Confirm password"
msgstr "Potwierdź hasło"
#: snikket_web/invite.py:126 snikket_web/invite.py:194
#: snikket_web/invite.py:124 snikket_web/invite.py:192
msgid "The passwords must match."
msgstr "Hasła muszą się zgadzać."
#: snikket_web/invite.py:131
#: snikket_web/invite.py:129
msgid "Create account"
msgstr "Utwórz konto"
#: snikket_web/invite.py:158
#: snikket_web/invite.py:156
msgid "That username is already taken."
msgstr "Ta nazwa użytkownika jest już zajęta."
#: snikket_web/invite.py:162 snikket_web/invite.py:227
#: snikket_web/invite.py:160 snikket_web/invite.py:225
msgid "Registration was declined for unknown reasons."
msgstr "Z nieznanych przyczyn rejestracja została odrzucona."
#: snikket_web/invite.py:166
#: snikket_web/invite.py:164
msgid "The username is not valid."
msgstr "Ta nazwa użytkownika jest nieprawidłowa."
#: snikket_web/invite.py:199 snikket_web/templates/user_home.html:32
#: snikket_web/invite.py:197 snikket_web/templates/user_home.html:32
#: snikket_web/templates/user_passwd.html:29
msgid "Change password"
msgstr "Zmień hasło"
#: snikket_web/invite.py:246
#: snikket_web/invite.py:244
msgid "Account data file"
msgstr "Plik z danymi konta"
#: snikket_web/invite.py:250
#: snikket_web/invite.py:248
msgid "Import data"
msgstr "Importuj dane"
#: snikket_web/invite.py:271
#: snikket_web/invite.py:269
#, python-format
msgid ""
"The account data you tried to import is in an unknown format. Please upload "
@@ -279,24 +279,24 @@ msgstr ""
"Dane konta, które próbujesz zaimportować, mają nieznany format. Proszę "
"wybrać plik w formacie XML zgodnym z XEP-0227 (podany format: %(mimetype)s)."
#: snikket_web/invite.py:291 snikket_web/templates/unauth.html:18
#: snikket_web/invite.py:289 snikket_web/templates/unauth.html:18
#: snikket_web/user.py:178
msgid "Error"
msgstr "Błąd"
#: snikket_web/main.py:38
#: snikket_web/main.py:36
msgid "Address"
msgstr "Adres"
#: snikket_web/main.py:48
#: snikket_web/main.py:46
msgid "Sign in"
msgstr "Zaloguj się"
#: snikket_web/main.py:57
#: snikket_web/main.py:55
msgid "Invalid username or password."
msgstr "Nieprawidłowa nazwa użytkownika lub hasło."
#: snikket_web/main.py:85
#: snikket_web/main.py:83
msgid "Login successful!"
msgstr "Zalogowano się pomyślnie!"
@@ -471,7 +471,7 @@ msgstr ""
msgid "Software Versions"
msgstr "Wersje oprogramowania"
#: snikket_web/templates/about.html:32
#: snikket_web/templates/about.html:29
msgid "Back to the main page"
msgstr "Wróć do strony głównej"
@@ -618,7 +618,6 @@ msgstr ""
#: snikket_web/templates/admin_delete_user.html:19
#: snikket_web/templates/admin_reset_user_password.html:25
#: snikket_web/templates/user_logout.html:10
#: snikket_web/templates/user_manage_data.html:14
#: snikket_web/templates/user_passwd.html:27
#: snikket_web/templates/user_profile.html:32
msgid "Back"
@@ -1152,8 +1151,8 @@ msgstr "Aplikacja jest już zainstalowana?"
#: snikket_web/templates/invite_register.html:16
#: snikket_web/templates/invite_reset_view.html:21
#: snikket_web/templates/invite_view.html:41
#: snikket_web/templates/invite_view.html:84
#: snikket_web/templates/invite_view.html:112
#: snikket_web/templates/invite_view.html:106
#: snikket_web/templates/invite_view.html:134
msgid "Open the app"
msgstr "Otwórz aplikację"
@@ -1255,6 +1254,7 @@ msgstr ""
"przycisku Skanowania, który znajduje się u góry."
#: snikket_web/templates/invite_reset_view.html:26
#: snikket_web/templates/invite_view.html:77
msgid ""
"Your camera will turn on. Point it at the square code below until it is "
"within the highlighted square on your screen, and wait until the app "
@@ -1319,8 +1319,8 @@ msgid ""
"\"%(login_url)s\">manage your account</a>."
msgstr ""
"Możesz bezpiecznie zamknąć tę stronę lub zalogować się do Portalu "
"Użytkownika Snikket, aby <a href=\"%(login_url)s\">zarządzać swoim kontem</"
"a>."
"Użytkownika Snikket, aby <a href=\"%(login_url)s\">zarządzać swoim "
"kontem</a>."
#: snikket_web/templates/invite_success.html:21
msgid "Import successful"
@@ -1398,7 +1398,7 @@ msgid "Get it on Google Play"
msgstr "Pobierz w Google Play"
#: snikket_web/templates/invite_view.html:30
#: snikket_web/templates/invite_view.html:80
#: snikket_web/templates/invite_view.html:102
msgid "Download on the App Store"
msgstr "Pobierz w App Store"
@@ -1435,11 +1435,11 @@ msgid "Scan invite code"
msgstr "Zeskanuj kod zaproszenia"
#: snikket_web/templates/invite_view.html:55
#: snikket_web/templates/invite_view.html:62
#: snikket_web/templates/invite_view.html:74
#: snikket_web/templates/invite_view.html:90
#: snikket_web/templates/invite_view.html:102
#: snikket_web/templates/invite_view.html:118
#: snikket_web/templates/invite_view.html:84
#: snikket_web/templates/invite_view.html:96
#: snikket_web/templates/invite_view.html:112
#: snikket_web/templates/invite_view.html:124
#: snikket_web/templates/invite_view.html:140
msgid "Close"
msgstr "Zamknij"
@@ -1452,11 +1452,34 @@ msgstr ""
"poniższy kod aparatem. Możesz również skorzystać ze skanera kodów QR lub "
"samej aplikacji Snikket."
#: snikket_web/templates/invite_view.html:71
#: snikket_web/templates/invite_view.html:63
msgid "Using a QR code scanner"
msgstr "Używając skanera kodów QR"
#: snikket_web/templates/invite_view.html:65
msgid "Using the Snikket app"
msgstr "Używając aplikacji Snikket"
#: snikket_web/templates/invite_view.html:70
msgid ""
"Use a <em>QR code</em> scanner on your mobile device to scan the code below:"
msgstr ""
"Użyj skanera <em>kodów QR</em> na swoim urządzeniu mobilnym, by zeskanować "
"poniższy kod:"
#: snikket_web/templates/invite_view.html:76
msgid ""
"Install the Snikket app on your mobile device, open it, and tap the 'Scan' "
"button at the top."
msgstr ""
"Zainstaluj aplikację Snikket na swoim urządzeniu mobilnym, otwórz ją, "
"następnie wciśnij przycisk \"Skanuj\" u góry."
#: snikket_web/templates/invite_view.html:93
msgid "Install on iOS"
msgstr "Zainstaluj na iOS"
#: snikket_web/templates/invite_view.html:77
#: snikket_web/templates/invite_view.html:99
msgid ""
"After downloading Snikket from the App Store, you have to return to this "
"invite link and tap on \"Open the app\" to proceed."
@@ -1464,14 +1487,14 @@ msgstr ""
"Po pobraniu aplikacji Snikket z App Store musisz wrócić do tego linku z "
"zaproszeniem, następnie kliknąć \"Otwórz aplikację\", aby kontynuować."
#: snikket_web/templates/invite_view.html:79
#: snikket_web/templates/invite_view.html:101
msgid "First download Snikket from the App Store using the button below:"
msgstr ""
"Najpierw pobierz aplikację Snikket z App Store za pomocą poniższego "
"przycisku:"
#: snikket_web/templates/invite_view.html:81
#: snikket_web/templates/invite_view.html:109
#: snikket_web/templates/invite_view.html:103
#: snikket_web/templates/invite_view.html:131
msgid ""
"After the installation is complete, you can return to this page and tap the "
"\"Open the app\" button to continue with the setup:"
@@ -1479,12 +1502,12 @@ msgstr ""
"Po zakończeniu instalacji możesz wrócić do tej strony i kliknąć przycisk "
"\"Otwórz aplikację\", aby kontynuować:"
#: snikket_web/templates/invite_view.html:99
#: snikket_web/templates/invite_view.html:108
#: snikket_web/templates/invite_view.html:121
#: snikket_web/templates/invite_view.html:130
msgid "Install via F-Droid"
msgstr "Zainstaluj przez F-Droid"
#: snikket_web/templates/invite_view.html:105
#: snikket_web/templates/invite_view.html:127
msgid ""
"After installing Snikket via F-Droid, you have to return to this invite link "
"and tap on \"Open the app\" to proceed."
@@ -1493,7 +1516,7 @@ msgstr ""
"linku z zaproszeniem, następnie kliknąć \"Otwórz aplikację\", aby "
"kontynuować."
#: snikket_web/templates/invite_view.html:107
#: snikket_web/templates/invite_view.html:129
msgid "First install Snikket from F-Droid using the button below:"
msgstr ""
"Najpierw zainstaluj aplikację Snikket z F-Droid, korzystając z poniższego "
@@ -1646,26 +1669,6 @@ msgstr ""
"Ta sekcja pozwoli ci na zarządzenie widocznością informacji o twoim profilu "
"przez innych, jak awatar lub pseudonim."
#~ msgid "Using a QR code scanner"
#~ msgstr "Używając skanera kodów QR"
#~ msgid "Using the Snikket app"
#~ msgstr "Używając aplikacji Snikket"
#~ msgid ""
#~ "Use a <em>QR code</em> scanner on your mobile device to scan the code "
#~ "below:"
#~ msgstr ""
#~ "Użyj skanera <em>kodów QR</em> na swoim urządzeniu mobilnym, by "
#~ "zeskanować poniższy kod:"
#~ msgid ""
#~ "Install the Snikket app on your mobile device, open it, and tap the "
#~ "'Scan' button at the top."
#~ msgstr ""
#~ "Zainstaluj aplikację Snikket na swoim urządzeniu mobilnym, otwórz ją, "
#~ "następnie wciśnij przycisk \"Skanuj\" u góry."
#~ msgid "Create password reset link for %(user_name)s"
#~ msgstr "Utwórz link resetowania hasła dla %(user_name)s"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-06-07 22:31+0200\n"
"POT-Creation-Date: 2022-01-17 17:27+0100\n"
"PO-Revision-Date: 2021-03-12 23:04+0000\n"
"Last-Translator: GodGoldfish <godgoldfish@pm.me>\n"
"Language-Team: Russian <https://i18n.sotecware.net/projects/snikket/web-"
@@ -21,296 +21,296 @@ msgstr ""
"X-Generator: Weblate 4.5.1\n"
"Generated-By: Babel 2.9.0\n"
#: snikket_web/admin.py:69 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/admin.py:68 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_edit_circle.html:59
#: snikket_web/templates/admin_users.html:8
msgid "Login name"
msgstr "Логин"
#: snikket_web/admin.py:73 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/admin.py:72 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_edit_circle.html:60
#: snikket_web/templates/admin_users.html:9 snikket_web/user.py:63
msgid "Display name"
msgstr "Отображаемое имя"
#: snikket_web/admin.py:77 snikket_web/templates/admin_edit_user.html:32
#: snikket_web/admin.py:76 snikket_web/templates/admin_edit_user.html:32
msgid "Access Level"
msgstr ""
#: snikket_web/admin.py:79
#: snikket_web/admin.py:78
msgid "Limited"
msgstr ""
#: snikket_web/admin.py:80
#: snikket_web/admin.py:79
msgid "Normal user"
msgstr ""
#: snikket_web/admin.py:81
#: snikket_web/admin.py:80
#, fuzzy
#| msgid "Admin area"
msgid "Administrator"
msgstr "Административная зона"
#: snikket_web/admin.py:86
#: snikket_web/admin.py:85
#, fuzzy
#| msgid "Update circle"
msgid "Update user"
msgstr "Обновить крук"
#: snikket_web/admin.py:90
#: snikket_web/admin.py:89
#, fuzzy
#| msgid "Create password reset links or delete users."
msgid "Create password reset link"
msgstr "Создайте ссылки для сброса пароля или удалите пользователей."
#: snikket_web/admin.py:108
#: snikket_web/admin.py:107
msgid "Password reset link created"
msgstr "Ссылка на сброс пароля для %(user_name)s"
#: snikket_web/admin.py:123
#: snikket_web/admin.py:122
#, fuzzy
#| msgid "Circle information"
msgid "User information updated."
msgstr "Информация о круге"
#: snikket_web/admin.py:145
#: snikket_web/admin.py:144
msgid "Delete user permanently"
msgstr "Удалить пользователя навсегда"
#: snikket_web/admin.py:158
#: snikket_web/admin.py:157
msgid "User deleted"
msgstr "удалённый"
#: snikket_web/admin.py:196
#: snikket_web/admin.py:195
#, fuzzy
#| msgid "Password reset link created"
msgid "Password reset link not found"
msgstr "Ссылка на сброс пароля для %(user_name)s"
#: snikket_web/admin.py:208
#: snikket_web/admin.py:207
msgid "Password reset link deleted"
msgstr "Создайте ссылки для сброса пароля или удалите пользователей"
#: snikket_web/admin.py:228
#: snikket_web/admin.py:227
msgid "Invite to circle"
msgstr "Пригласить в круг"
#: snikket_web/admin.py:234
#: snikket_web/admin.py:233
msgid "At least one circle must be selected"
msgstr "Необходимо выбрать хотя бы один круг"
#: snikket_web/admin.py:239
#: snikket_web/admin.py:238
msgid "Valid for"
msgstr "Действителен в течении"
#: snikket_web/admin.py:241
#: snikket_web/admin.py:240
msgid "One hour"
msgstr "Один час"
#: snikket_web/admin.py:242
#: snikket_web/admin.py:241
msgid "Twelve hours"
msgstr "Двенадцать часов"
#: snikket_web/admin.py:243
#: snikket_web/admin.py:242
msgid "One day"
msgstr "Один день"
#: snikket_web/admin.py:244
#: snikket_web/admin.py:243
msgid "One week"
msgstr "Одна неделя"
#: snikket_web/admin.py:245
#: snikket_web/admin.py:244
msgid "Four weeks"
msgstr "Четыре недели"
#: snikket_web/admin.py:251 snikket_web/templates/admin_edit_invite.html:17
#: snikket_web/admin.py:250 snikket_web/templates/admin_edit_invite.html:17
msgid "Invitation type"
msgstr "Вид приглашения"
#: snikket_web/admin.py:253 snikket_web/templates/library.j2:116
#: snikket_web/admin.py:252 snikket_web/templates/library.j2:116
msgid "Individual"
msgstr "Индивидуальный"
#: snikket_web/admin.py:254 snikket_web/templates/library.j2:114
#: snikket_web/admin.py:253 snikket_web/templates/library.j2:114
msgid "Group"
msgstr "Группа"
#: snikket_web/admin.py:260
#: snikket_web/admin.py:259
msgid "New invitation link"
msgstr "Новая ссылка на приглашение"
#: snikket_web/admin.py:322
#: snikket_web/admin.py:321
msgid "Revoke"
msgstr "Aннулировать"
#: snikket_web/admin.py:346
#: snikket_web/admin.py:345
msgid "Invitation created"
msgstr "Вид приглашения"
#: snikket_web/admin.py:362
#: snikket_web/admin.py:361
msgid "No such invitation exists"
msgstr "Новая ссылка на приглашение"
#: snikket_web/admin.py:377
#: snikket_web/admin.py:376
msgid "Invitation revoked"
msgstr "Вид приглашения"
#: snikket_web/admin.py:394 snikket_web/admin.py:442
#: snikket_web/admin.py:393 snikket_web/admin.py:441
msgid "Name"
msgstr "Имя"
#: snikket_web/admin.py:399 snikket_web/templates/admin_circles.html:47
#: snikket_web/admin.py:398 snikket_web/templates/admin_circles.html:47
msgid "Create circle"
msgstr "Создать крук"
#: snikket_web/admin.py:429
#: snikket_web/admin.py:428
msgid "Circle created"
msgstr "Имя круга"
#: snikket_web/admin.py:447
#: snikket_web/admin.py:446
msgid "Select user"
msgstr "Выврать пользователя"
#: snikket_web/admin.py:452
#: snikket_web/admin.py:451
msgid "Update circle"
msgstr "Обновить крук"
#: snikket_web/admin.py:456
#: snikket_web/admin.py:455
msgid "Delete circle permanently"
msgstr "Удалить круг навсегда"
#: snikket_web/admin.py:462
#: snikket_web/admin.py:461
msgid "Add user"
msgstr "Добавить пользователя"
#: snikket_web/admin.py:478
#: snikket_web/admin.py:477
msgid "No such circle exists"
msgstr "Нет кругов"
#: snikket_web/admin.py:515
#: snikket_web/admin.py:514
msgid "Circle data updated"
msgstr "Имя круга"
#: snikket_web/admin.py:521
#: snikket_web/admin.py:520
msgid "Circle deleted"
msgstr "удалённый"
#: snikket_web/admin.py:532
#: snikket_web/admin.py:531
msgid "User added to circle"
msgstr "Пригласить в круг"
#: snikket_web/admin.py:541
#: snikket_web/admin.py:540
msgid "User removed from circle"
msgstr "Удалить пользователя %(username)s из круга"
#: snikket_web/admin.py:610
#: snikket_web/admin.py:609
msgid "Message contents"
msgstr ""
#: snikket_web/admin.py:616
#: snikket_web/admin.py:615
msgid "Only send to online users"
msgstr ""
#: snikket_web/admin.py:620
#: snikket_web/admin.py:619
msgid "Post to all users"
msgstr ""
#: snikket_web/admin.py:624
#: snikket_web/admin.py:623
msgid "Send preview to yourself"
msgstr ""
#: snikket_web/admin.py:646
#: snikket_web/admin.py:645
msgid "Announcement sent!"
msgstr ""
#: snikket_web/infra.py:53
#: snikket_web/infra.py:51
msgid "Main"
msgstr "Основное"
#: snikket_web/invite.py:35
#: snikket_web/invite.py:33
msgid ""
"The account data you tried to import is too large to upload. Please contact "
"your Snikket operator."
msgstr ""
#: snikket_web/invite.py:114
#: snikket_web/invite.py:112
msgid "Username"
msgstr "Имя пользователя"
#: snikket_web/invite.py:118 snikket_web/invite.py:186 snikket_web/main.py:43
#: snikket_web/invite.py:116 snikket_web/invite.py:184 snikket_web/main.py:41
msgid "Password"
msgstr "Пароль"
#: snikket_web/invite.py:122 snikket_web/invite.py:190
#: snikket_web/invite.py:120 snikket_web/invite.py:188
msgid "Confirm password"
msgstr "Повторите пароль"
#: snikket_web/invite.py:126 snikket_web/invite.py:194
#: snikket_web/invite.py:124 snikket_web/invite.py:192
#, fuzzy
#| msgid "The passwords must match"
msgid "The passwords must match."
msgstr "Паролт должны совпадать"
#: snikket_web/invite.py:131
#: snikket_web/invite.py:129
msgid "Create account"
msgstr "Создать аккунт"
#: snikket_web/invite.py:158
#: snikket_web/invite.py:156
#, fuzzy
#| msgid "That username is already taken"
msgid "That username is already taken."
msgstr "Это имя пользователя уже используется"
#: snikket_web/invite.py:162 snikket_web/invite.py:227
#: snikket_web/invite.py:160 snikket_web/invite.py:225
#, fuzzy
#| msgid "Registration was declined for unknown reasons"
msgid "Registration was declined for unknown reasons."
msgstr "Регистрация была отклонена по неизвестным причинам"
#: snikket_web/invite.py:166
#: snikket_web/invite.py:164
#, fuzzy
#| msgid "The username is not valid"
msgid "The username is not valid."
msgstr "Имя пользователя недействительно"
#: snikket_web/invite.py:199 snikket_web/templates/user_home.html:32
#: snikket_web/invite.py:197 snikket_web/templates/user_home.html:32
#: snikket_web/templates/user_passwd.html:29
msgid "Change password"
msgstr "Изменить пароль"
#: snikket_web/invite.py:246
#: snikket_web/invite.py:244
msgid "Account data file"
msgstr ""
#: snikket_web/invite.py:250
#: snikket_web/invite.py:248
msgid "Import data"
msgstr ""
#: snikket_web/invite.py:271
#: snikket_web/invite.py:269
#, python-format
msgid ""
"The account data you tried to import is in an unknown format. Please upload "
"an XML file in XEP-0227 format (provided format: %(mimetype)s)."
msgstr ""
#: snikket_web/invite.py:291 snikket_web/templates/unauth.html:18
#: snikket_web/invite.py:289 snikket_web/templates/unauth.html:18
#: snikket_web/user.py:178
msgid "Error"
msgstr "Ошибка"
#: snikket_web/main.py:38
#: snikket_web/main.py:36
msgid "Address"
msgstr "Адрес"
#: snikket_web/main.py:48
#: snikket_web/main.py:46
msgid "Sign in"
msgstr "Войти"
#: snikket_web/main.py:57
#: snikket_web/main.py:55
msgid "Invalid username or password."
msgstr "Неверное имя пользователя или пароль."
#: snikket_web/main.py:85
#: snikket_web/main.py:83
msgid "Login successful!"
msgstr "Войти успешно!"
@@ -488,7 +488,7 @@ msgstr ""
msgid "Software Versions"
msgstr "Версии программного обеспечения"
#: snikket_web/templates/about.html:32
#: snikket_web/templates/about.html:29
msgid "Back to the main page"
msgstr "Назад на главную страницу"
@@ -635,7 +635,6 @@ msgstr ""
#: snikket_web/templates/admin_delete_user.html:19
#: snikket_web/templates/admin_reset_user_password.html:25
#: snikket_web/templates/user_logout.html:10
#: snikket_web/templates/user_manage_data.html:14
#: snikket_web/templates/user_passwd.html:27
#: snikket_web/templates/user_profile.html:32
msgid "Back"
@@ -1172,8 +1171,8 @@ msgstr "Приложение уже установлено?"
#: snikket_web/templates/invite_register.html:16
#: snikket_web/templates/invite_reset_view.html:21
#: snikket_web/templates/invite_view.html:41
#: snikket_web/templates/invite_view.html:84
#: snikket_web/templates/invite_view.html:112
#: snikket_web/templates/invite_view.html:106
#: snikket_web/templates/invite_view.html:134
msgid "Open the app"
msgstr "Откройте приложение"
@@ -1276,6 +1275,7 @@ msgstr ""
"помощью приложения Snikket App, используя кнопку Сканировать в верхней части."
#: snikket_web/templates/invite_reset_view.html:26
#: snikket_web/templates/invite_view.html:77
msgid ""
"Your camera will turn on. Point it at the square code below until it is "
"within the highlighted square on your screen, and wait until the app "
@@ -1414,7 +1414,7 @@ msgid "Get it on Google Play"
msgstr "Получить его в Гугл Игры"
#: snikket_web/templates/invite_view.html:30
#: snikket_web/templates/invite_view.html:80
#: snikket_web/templates/invite_view.html:102
msgid "Download on the App Store"
msgstr "Скачать в Магазин Приложений"
@@ -1451,11 +1451,11 @@ msgid "Scan invite code"
msgstr "Сканировать код приглашения"
#: snikket_web/templates/invite_view.html:55
#: snikket_web/templates/invite_view.html:62
#: snikket_web/templates/invite_view.html:74
#: snikket_web/templates/invite_view.html:90
#: snikket_web/templates/invite_view.html:102
#: snikket_web/templates/invite_view.html:118
#: snikket_web/templates/invite_view.html:84
#: snikket_web/templates/invite_view.html:96
#: snikket_web/templates/invite_view.html:112
#: snikket_web/templates/invite_view.html:124
#: snikket_web/templates/invite_view.html:140
msgid "Close"
msgstr "близко"
@@ -1468,39 +1468,62 @@ msgstr ""
"отсканировав код с помощью камеры. Вы можете использовать как приложение QR-"
"сканера, так и само приложение Сниккет."
#: snikket_web/templates/invite_view.html:71
#: snikket_web/templates/invite_view.html:63
msgid "Using a QR code scanner"
msgstr "Используя сканер QR-кода"
#: snikket_web/templates/invite_view.html:65
msgid "Using the Snikket app"
msgstr "Использование приложения Сниккет"
#: snikket_web/templates/invite_view.html:70
msgid ""
"Use a <em>QR code</em> scanner on your mobile device to scan the code below:"
msgstr ""
"Используйте сканер <em>QR-кода</em> на вашем мобильном устройстве для "
"сканирования кода, приведенного ниже:"
#: snikket_web/templates/invite_view.html:76
msgid ""
"Install the Snikket app on your mobile device, open it, and tap the 'Scan' "
"button at the top."
msgstr ""
"Установите приложение Сниккет на мобильное устройство, откройте его и "
"нажмите кнопку 'Сканировать' сверху."
#: snikket_web/templates/invite_view.html:93
msgid "Install on iOS"
msgstr ""
#: snikket_web/templates/invite_view.html:77
#: snikket_web/templates/invite_view.html:99
msgid ""
"After downloading Snikket from the App Store, you have to return to this "
"invite link and tap on \"Open the app\" to proceed."
msgstr ""
#: snikket_web/templates/invite_view.html:79
#: snikket_web/templates/invite_view.html:101
msgid "First download Snikket from the App Store using the button below:"
msgstr ""
#: snikket_web/templates/invite_view.html:81
#: snikket_web/templates/invite_view.html:109
#: snikket_web/templates/invite_view.html:103
#: snikket_web/templates/invite_view.html:131
msgid ""
"After the installation is complete, you can return to this page and tap the "
"\"Open the app\" button to continue with the setup:"
msgstr ""
#: snikket_web/templates/invite_view.html:99
#: snikket_web/templates/invite_view.html:108
#: snikket_web/templates/invite_view.html:121
#: snikket_web/templates/invite_view.html:130
msgid "Install via F-Droid"
msgstr ""
#: snikket_web/templates/invite_view.html:105
#: snikket_web/templates/invite_view.html:127
msgid ""
"After installing Snikket via F-Droid, you have to return to this invite link "
"and tap on \"Open the app\" to proceed."
msgstr ""
#: snikket_web/templates/invite_view.html:107
#: snikket_web/templates/invite_view.html:129
msgid "First install Snikket from F-Droid using the button below:"
msgstr ""
@@ -1656,26 +1679,6 @@ msgstr ""
"Этот раздел позволяет вам контролировать, кто может видеть информацию вашего "
"профиля, например, аватар и ник."
#~ msgid "Using a QR code scanner"
#~ msgstr "Используя сканер QR-кода"
#~ msgid "Using the Snikket app"
#~ msgstr "Использование приложения Сниккет"
#~ msgid ""
#~ "Use a <em>QR code</em> scanner on your mobile device to scan the code "
#~ "below:"
#~ msgstr ""
#~ "Используйте сканер <em>QR-кода</em> на вашем мобильном устройстве для "
#~ "сканирования кода, приведенного ниже:"
#~ msgid ""
#~ "Install the Snikket app on your mobile device, open it, and tap the "
#~ "'Scan' button at the top."
#~ msgstr ""
#~ "Установите приложение Сниккет на мобильное устройство, откройте его и "
#~ "нажмите кнопку 'Сканировать' сверху."
#~ msgid "Create password reset link for %(user_name)s"
#~ msgstr "Создать ссылку сброса пароля для %(user_name)s"

View File

@@ -6,12 +6,12 @@
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-06-07 22:31+0200\n"
"Report-Msgid-Bugs-To: translations@snikket.org\n"
"POT-Creation-Date: 2022-01-17 17:27+0100\n"
"PO-Revision-Date: 2022-01-18 09:21+0000\n"
"Last-Translator: Kim Alvefur <zash@zash.se>\n"
"Language-Team: Swedish <http://i18n.sotecware.net/projects/snikket/web-"
"portal/sv/>\n"
"Language-Team: Swedish <http://i18n.sotecware.net/projects/snikket/"
"web-portal/sv/>\n"
"Language: sv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -20,203 +20,203 @@ msgstr ""
"X-Generator: Weblate 4.8.1\n"
"Generated-By: Babel 2.9.0\n"
#: snikket_web/admin.py:69 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/admin.py:68 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_edit_circle.html:59
#: snikket_web/templates/admin_users.html:8
msgid "Login name"
msgstr "Inloggningsnamn"
#: snikket_web/admin.py:73 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/admin.py:72 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_edit_circle.html:60
#: snikket_web/templates/admin_users.html:9 snikket_web/user.py:63
msgid "Display name"
msgstr "Visningsnamn"
#: snikket_web/admin.py:77 snikket_web/templates/admin_edit_user.html:32
#: snikket_web/admin.py:76 snikket_web/templates/admin_edit_user.html:32
msgid "Access Level"
msgstr "Användarnivåer"
#: snikket_web/admin.py:79
#: snikket_web/admin.py:78
msgid "Limited"
msgstr "Begränsad"
#: snikket_web/admin.py:80
#: snikket_web/admin.py:79
msgid "Normal user"
msgstr "Vanlig användare"
#: snikket_web/admin.py:81
#: snikket_web/admin.py:80
msgid "Administrator"
msgstr "Administratör"
#: snikket_web/admin.py:86
#: snikket_web/admin.py:85
msgid "Update user"
msgstr "Uppdatera användare"
#: snikket_web/admin.py:90
#: snikket_web/admin.py:89
msgid "Create password reset link"
msgstr "Skapa länk för återställning av lösenord"
#: snikket_web/admin.py:108
#: snikket_web/admin.py:107
msgid "Password reset link created"
msgstr "Skapade länk för att återställa lösenord"
#: snikket_web/admin.py:123
#: snikket_web/admin.py:122
msgid "User information updated."
msgstr "Användarinformation uppdaterad."
#: snikket_web/admin.py:145
#: snikket_web/admin.py:144
msgid "Delete user permanently"
msgstr "Radera användare permanent"
#: snikket_web/admin.py:158
#: snikket_web/admin.py:157
msgid "User deleted"
msgstr "Användare raderad"
#: snikket_web/admin.py:196
#: snikket_web/admin.py:195
msgid "Password reset link not found"
msgstr "Länk för återställning av lösenord hittades inte"
#: snikket_web/admin.py:208
#: snikket_web/admin.py:207
msgid "Password reset link deleted"
msgstr "Länk för återställning av lösenord raderad"
#: snikket_web/admin.py:228
#: snikket_web/admin.py:227
msgid "Invite to circle"
msgstr "Bjud in till krets"
#: snikket_web/admin.py:234
#: snikket_web/admin.py:233
msgid "At least one circle must be selected"
msgstr "Minst en krets behöver väljas"
#: snikket_web/admin.py:239
#: snikket_web/admin.py:238
msgid "Valid for"
msgstr "Giltig i"
#: snikket_web/admin.py:241
#: snikket_web/admin.py:240
msgid "One hour"
msgstr "En timme"
#: snikket_web/admin.py:242
#: snikket_web/admin.py:241
msgid "Twelve hours"
msgstr "Tolv timmar"
#: snikket_web/admin.py:243
#: snikket_web/admin.py:242
msgid "One day"
msgstr "En dag"
#: snikket_web/admin.py:244
#: snikket_web/admin.py:243
msgid "One week"
msgstr "En vecka"
#: snikket_web/admin.py:245
#: snikket_web/admin.py:244
msgid "Four weeks"
msgstr "Fyra veckor"
#: snikket_web/admin.py:251 snikket_web/templates/admin_edit_invite.html:17
#: snikket_web/admin.py:250 snikket_web/templates/admin_edit_invite.html:17
msgid "Invitation type"
msgstr "Typ av inbjudan"
#: snikket_web/admin.py:253 snikket_web/templates/library.j2:116
#: snikket_web/admin.py:252 snikket_web/templates/library.j2:116
msgid "Individual"
msgstr "Individuell"
#: snikket_web/admin.py:254 snikket_web/templates/library.j2:114
#: snikket_web/admin.py:253 snikket_web/templates/library.j2:114
msgid "Group"
msgstr "Grupp"
#: snikket_web/admin.py:260
#: snikket_web/admin.py:259
msgid "New invitation link"
msgstr "Ny inbjudanslänk"
#: snikket_web/admin.py:322
#: snikket_web/admin.py:321
msgid "Revoke"
msgstr "Återkalla"
#: snikket_web/admin.py:346
#: snikket_web/admin.py:345
msgid "Invitation created"
msgstr "Inbjudan skapad"
#: snikket_web/admin.py:362
#: snikket_web/admin.py:361
msgid "No such invitation exists"
msgstr "Inbjudanslänken finns inte"
#: snikket_web/admin.py:377
#: snikket_web/admin.py:376
msgid "Invitation revoked"
msgstr "Inbjudan återkallad"
#: snikket_web/admin.py:394 snikket_web/admin.py:442
#: snikket_web/admin.py:393 snikket_web/admin.py:441
msgid "Name"
msgstr "Namn"
#: snikket_web/admin.py:399 snikket_web/templates/admin_circles.html:47
#: snikket_web/admin.py:398 snikket_web/templates/admin_circles.html:47
msgid "Create circle"
msgstr "Skapa krets"
#: snikket_web/admin.py:429
#: snikket_web/admin.py:428
msgid "Circle created"
msgstr "Krets skapad"
#: snikket_web/admin.py:447
#: snikket_web/admin.py:446
msgid "Select user"
msgstr "Välj användare"
#: snikket_web/admin.py:452
#: snikket_web/admin.py:451
msgid "Update circle"
msgstr "Uppdatera krets"
#: snikket_web/admin.py:456
#: snikket_web/admin.py:455
msgid "Delete circle permanently"
msgstr "Radera krets permanent"
#: snikket_web/admin.py:462
#: snikket_web/admin.py:461
msgid "Add user"
msgstr "Lägg till användare"
#: snikket_web/admin.py:478
#: snikket_web/admin.py:477
msgid "No such circle exists"
msgstr "Kretsen finns inte"
#: snikket_web/admin.py:515
#: snikket_web/admin.py:514
msgid "Circle data updated"
msgstr "Kretsen uppdaterades"
#: snikket_web/admin.py:521
#: snikket_web/admin.py:520
msgid "Circle deleted"
msgstr "Krets raderad"
#: snikket_web/admin.py:532
#: snikket_web/admin.py:531
msgid "User added to circle"
msgstr "Användare tillagd i krets"
#: snikket_web/admin.py:541
#: snikket_web/admin.py:540
msgid "User removed from circle"
msgstr "Användaren %(username)s borttagen från krets"
#: snikket_web/admin.py:610
#: snikket_web/admin.py:609
msgid "Message contents"
msgstr "Meddelandeinnehåll"
#: snikket_web/admin.py:616
#: snikket_web/admin.py:615
msgid "Only send to online users"
msgstr "Skicka bara till användare som är online"
#: snikket_web/admin.py:620
#: snikket_web/admin.py:619
msgid "Post to all users"
msgstr "Skicka till alla användare"
#: snikket_web/admin.py:624
#: snikket_web/admin.py:623
msgid "Send preview to yourself"
msgstr "Skicka förhandsvisning till dig själv"
#: snikket_web/admin.py:646
#: snikket_web/admin.py:645
msgid "Announcement sent!"
msgstr "Tillkännagivande skickat!"
#: snikket_web/infra.py:53
#: snikket_web/infra.py:51
msgid "Main"
msgstr "Allmän"
#: snikket_web/invite.py:35
#: snikket_web/invite.py:33
msgid ""
"The account data you tried to import is too large to upload. Please contact "
"your Snikket operator."
@@ -224,52 +224,52 @@ msgstr ""
"Kontot du försökte importera är för stort för att ladda upp. Vänligen "
"kontakta din Snikket-operatör."
#: snikket_web/invite.py:114
#: snikket_web/invite.py:112
msgid "Username"
msgstr "Användarnamn"
#: snikket_web/invite.py:118 snikket_web/invite.py:186 snikket_web/main.py:43
#: snikket_web/invite.py:116 snikket_web/invite.py:184 snikket_web/main.py:41
msgid "Password"
msgstr "Lösenord"
#: snikket_web/invite.py:122 snikket_web/invite.py:190
#: snikket_web/invite.py:120 snikket_web/invite.py:188
msgid "Confirm password"
msgstr "Bekräfta lösenord"
#: snikket_web/invite.py:126 snikket_web/invite.py:194
#: snikket_web/invite.py:124 snikket_web/invite.py:192
msgid "The passwords must match."
msgstr "Lösenorden måste vara identiska."
#: snikket_web/invite.py:131
#: snikket_web/invite.py:129
msgid "Create account"
msgstr "Skapa konto"
#: snikket_web/invite.py:158
#: snikket_web/invite.py:156
msgid "That username is already taken."
msgstr "Det användarnamnet är redan taget."
#: snikket_web/invite.py:162 snikket_web/invite.py:227
#: snikket_web/invite.py:160 snikket_web/invite.py:225
msgid "Registration was declined for unknown reasons."
msgstr "Registreringen nekades av okänd anledning."
#: snikket_web/invite.py:166
#: snikket_web/invite.py:164
msgid "The username is not valid."
msgstr "Användarnamnet är ogiltigt."
#: snikket_web/invite.py:199 snikket_web/templates/user_home.html:32
#: snikket_web/invite.py:197 snikket_web/templates/user_home.html:32
#: snikket_web/templates/user_passwd.html:29
msgid "Change password"
msgstr "Ändra lösenord"
#: snikket_web/invite.py:246
#: snikket_web/invite.py:244
msgid "Account data file"
msgstr "Kontodatafil"
#: snikket_web/invite.py:250
#: snikket_web/invite.py:248
msgid "Import data"
msgstr "Importera data"
#: snikket_web/invite.py:271
#: snikket_web/invite.py:269
#, python-format
msgid ""
"The account data you tried to import is in an unknown format. Please upload "
@@ -278,24 +278,24 @@ msgstr ""
"Kontot du försökte importera är i ett okänt format. Vänligen ladda upp en "
"XML-fil i XEP-0227-format (angivet format: %(mimetype)s)."
#: snikket_web/invite.py:291 snikket_web/templates/unauth.html:18
#: snikket_web/invite.py:289 snikket_web/templates/unauth.html:18
#: snikket_web/user.py:178
msgid "Error"
msgstr "Fel"
#: snikket_web/main.py:38
#: snikket_web/main.py:36
msgid "Address"
msgstr "Adress"
#: snikket_web/main.py:48
#: snikket_web/main.py:46
msgid "Sign in"
msgstr "Logga in"
#: snikket_web/main.py:57
#: snikket_web/main.py:55
msgid "Invalid username or password."
msgstr "Ogiltigt användarnamn eller lösenord."
#: snikket_web/main.py:85
#: snikket_web/main.py:83
msgid "Login successful!"
msgstr "Inloggning lyckades!"
@@ -469,7 +469,7 @@ msgstr ""
msgid "Software Versions"
msgstr "Mjukvaruversioner"
#: snikket_web/templates/about.html:32
#: snikket_web/templates/about.html:29
msgid "Back to the main page"
msgstr "Tillbaka till huvudsidan"
@@ -615,7 +615,6 @@ msgstr ""
#: snikket_web/templates/admin_delete_user.html:19
#: snikket_web/templates/admin_reset_user_password.html:25
#: snikket_web/templates/user_logout.html:10
#: snikket_web/templates/user_manage_data.html:14
#: snikket_web/templates/user_passwd.html:27
#: snikket_web/templates/user_profile.html:32
msgid "Back"
@@ -1141,8 +1140,8 @@ msgstr "Appen redan installerad?"
#: snikket_web/templates/invite_register.html:16
#: snikket_web/templates/invite_reset_view.html:21
#: snikket_web/templates/invite_view.html:41
#: snikket_web/templates/invite_view.html:84
#: snikket_web/templates/invite_view.html:112
#: snikket_web/templates/invite_view.html:106
#: snikket_web/templates/invite_view.html:134
msgid "Open the app"
msgstr "Öppna appen"
@@ -1241,6 +1240,7 @@ msgstr ""
"Scanna-knappen överst."
#: snikket_web/templates/invite_reset_view.html:26
#: snikket_web/templates/invite_view.html:77
msgid ""
"Your camera will turn on. Point it at the square code below until it is "
"within the highlighted square on your screen, and wait until the app "
@@ -1377,7 +1377,7 @@ msgid "Get it on Google Play"
msgstr "Hämta den på Google Play"
#: snikket_web/templates/invite_view.html:30
#: snikket_web/templates/invite_view.html:80
#: snikket_web/templates/invite_view.html:102
msgid "Download on the App Store"
msgstr "Hämta på App Store"
@@ -1413,11 +1413,11 @@ msgid "Scan invite code"
msgstr "Scanna inbjudningskoden"
#: snikket_web/templates/invite_view.html:55
#: snikket_web/templates/invite_view.html:62
#: snikket_web/templates/invite_view.html:74
#: snikket_web/templates/invite_view.html:90
#: snikket_web/templates/invite_view.html:102
#: snikket_web/templates/invite_view.html:118
#: snikket_web/templates/invite_view.html:84
#: snikket_web/templates/invite_view.html:96
#: snikket_web/templates/invite_view.html:112
#: snikket_web/templates/invite_view.html:124
#: snikket_web/templates/invite_view.html:140
msgid "Close"
msgstr "Stäng"
@@ -1430,11 +1430,33 @@ msgstr ""
"koden med din kamera. Du kan antingen använda en app för att scanna QR-koder "
"eller Snikket-appen själv."
#: snikket_web/templates/invite_view.html:71
#: snikket_web/templates/invite_view.html:63
msgid "Using a QR code scanner"
msgstr "Med en QR-kodsläsare"
#: snikket_web/templates/invite_view.html:65
msgid "Using the Snikket app"
msgstr "Med Snikket-appen"
#: snikket_web/templates/invite_view.html:70
msgid ""
"Use a <em>QR code</em> scanner on your mobile device to scan the code below:"
msgstr ""
"Scanna koden nedan med en <em>QR-kods</em> scanner på din mobila enhet:"
#: snikket_web/templates/invite_view.html:76
msgid ""
"Install the Snikket app on your mobile device, open it, and tap the 'Scan' "
"button at the top."
msgstr ""
"Installera Snikket-appen på din mobila enhet, öppna den, och tryck på "
"'Scanna'-knappen överst."
#: snikket_web/templates/invite_view.html:93
msgid "Install on iOS"
msgstr "Installera på iOS"
#: snikket_web/templates/invite_view.html:77
#: snikket_web/templates/invite_view.html:99
msgid ""
"After downloading Snikket from the App Store, you have to return to this "
"invite link and tap on \"Open the app\" to proceed."
@@ -1442,12 +1464,12 @@ msgstr ""
"Efter att ha laddat ner Snikket från App Store behöver du komma tillbaka "
"till den här inbjudan och klicka på \"Öppna appen\" för att fortsätta."
#: snikket_web/templates/invite_view.html:79
#: snikket_web/templates/invite_view.html:101
msgid "First download Snikket from the App Store using the button below:"
msgstr "Ladda först ner Snikket från App Store med knappen nedan:"
#: snikket_web/templates/invite_view.html:81
#: snikket_web/templates/invite_view.html:109
#: snikket_web/templates/invite_view.html:103
#: snikket_web/templates/invite_view.html:131
msgid ""
"After the installation is complete, you can return to this page and tap the "
"\"Open the app\" button to continue with the setup:"
@@ -1455,12 +1477,12 @@ msgstr ""
"Efter att installationen är färdig behöver du komma tillbaka till den här "
"inbjudan och klicka på \"Öppna appen\" för att fortsätta:"
#: snikket_web/templates/invite_view.html:99
#: snikket_web/templates/invite_view.html:108
#: snikket_web/templates/invite_view.html:121
#: snikket_web/templates/invite_view.html:130
msgid "Install via F-Droid"
msgstr "Installera via F-Droid"
#: snikket_web/templates/invite_view.html:105
#: snikket_web/templates/invite_view.html:127
msgid ""
"After installing Snikket via F-Droid, you have to return to this invite link "
"and tap on \"Open the app\" to proceed."
@@ -1468,7 +1490,7 @@ msgstr ""
"Efter att ha installerat Snikket via F-Droid behöver du komma tillbaka till "
"den här inbjudan och klicka på \"Öppna appen\" för att fortsätta."
#: snikket_web/templates/invite_view.html:107
#: snikket_web/templates/invite_view.html:129
msgid "First install Snikket from F-Droid using the button below:"
msgstr "Installera först Snikket från F-Droid med knappen nedan:"
@@ -1619,25 +1641,6 @@ msgstr ""
"Den här avdelningen låter dig hantera vilka som kan se din profil, såsom din "
"profilbild och visningsnamn."
#~ msgid "Using a QR code scanner"
#~ msgstr "Med en QR-kodsläsare"
#~ msgid "Using the Snikket app"
#~ msgstr "Med Snikket-appen"
#~ msgid ""
#~ "Use a <em>QR code</em> scanner on your mobile device to scan the code "
#~ "below:"
#~ msgstr ""
#~ "Scanna koden nedan med en <em>QR-kods</em> scanner på din mobila enhet:"
#~ msgid ""
#~ "Install the Snikket app on your mobile device, open it, and tap the "
#~ "'Scan' button at the top."
#~ msgstr ""
#~ "Installera Snikket-appen på din mobila enhet, öppna den, och tryck på "
#~ "'Scanna'-knappen överst."
#~ msgid "Create password reset link for %(user_name)s"
#~ msgstr "Skapa länk för att återställa lösenord för %(user_name)s"

File diff suppressed because it is too large Load Diff

View File

@@ -13,7 +13,7 @@ from quart import (
flash,
current_app,
)
import werkzeug.exceptions
import quart.exceptions
import wtforms
@@ -59,7 +59,7 @@ _ACCESS_MODEL_CHOICES = [
class ProfileForm(BaseForm):
nickname = wtforms.StringField(
nickname = wtforms.TextField(
_l("Display name"),
)
@@ -96,7 +96,7 @@ async def index() -> str:
@bp.route('/passwd', methods=["GET", "POST"])
@client.require_session()
async def change_pw() -> typing.Union[str, werkzeug.Response]:
async def change_pw() -> typing.Union[str, quart.Response]:
form = ChangePasswordForm()
if form.validate_on_submit():
try:
@@ -104,8 +104,8 @@ async def change_pw() -> typing.Union[str, werkzeug.Response]:
form.current_password.data,
form.new_password.data,
)
except (werkzeug.exceptions.Unauthorized,
werkzeug.exceptions.Forbidden):
except (quart.exceptions.Unauthorized,
quart.exceptions.Forbidden):
# server refused current password, set an appropriate error
form.current_password.errors.append(
_("Incorrect password."),
@@ -128,7 +128,7 @@ EAVATARTOOBIG = _l(
@bp.route("/profile", methods=["GET", "POST"])
@client.require_session()
async def profile() -> typing.Union[str, werkzeug.Response]:
async def profile() -> typing.Union[str, quart.Response]:
max_avatar_size = current_app.config["MAX_AVATAR_SIZE"]
form = ProfileForm()
@@ -221,7 +221,7 @@ async def manage_data() -> typing.Union[str, quart.Response]:
@bp.route("/logout", methods=["GET", "POST"])
@client.require_session()
async def logout() -> typing.Union[werkzeug.Response, str]:
async def logout() -> typing.Union[quart.Response, str]:
form = LogoutForm()
if form.validate_on_submit():
await client.logout()

View File

@@ -4,7 +4,7 @@ import typing
import xml.etree.ElementTree as ET
from quart import abort
import werkzeug.exceptions
import quart.exceptions
TAG_XMPP_ERROR = "error"
@@ -239,7 +239,7 @@ def extract_pubsub_item_get_reply(
) -> typing.Optional[ET.Element]:
try:
pubsub = extract_iq_reply(iq_tree, TAG_PUBSUB)
except werkzeug.exceptions.NotFound:
except quart.exceptions.NotFound:
return None
if pubsub is None: