Compare commits

...

42 Commits

Author SHA1 Message Date
Jonas Schäfer
b40a625283 admin: allow disabling display of metrics
This is useful in situations where the admins of the Snikket
server (i.e. those who care for the docker containers) are not the
same people as the people who are admins of the Snikket service
(i.e. those who care for the users).
2021-05-27 17:59:40 +02:00
Jonas Schäfer
8a293985ca Implement system status panel
This offers system metrics and a way to send a broadcast
message to all online or registered users.

Requires prosody-modules cade5dac1003.
2021-05-27 17:21:58 +02:00
Jonas Schäfer
13b2a76c3d Fix mypy errors introduced in b007afc901 2021-05-27 16:33:46 +02:00
Jonas Schäfer
28e01c336d Do not install quart 0.15
As we saw in b007afc901, we cannot
use that version right now.
2021-05-25 18:56:15 +02:00
Jonas Schäfer
5fb0b91178 Bumping version number to 0.2.1 2021-05-22 11:11:50 +02:00
Jonas Schäfer
b007afc901 Revert "Upgrade to quart 0.15"
This reverts commit 486596f89f.
It was discovered that multipart/form-data forms do not work
correctly with Quart 0.15. The upgrade to Quart 0.15 was rushed
and not tested correctly, which I apologize for.

See-Also: https://github.com/pgjones/quart/issues/126
2021-05-22 11:11:16 +02:00
Matthew Wild
7f02746f63 admin: Re-disable 'limited' role (accidentally uncommented in c58ce8450) 2021-05-19 21:59:16 +01:00
Roberto Resoli
f2788aeb36 Translated using Weblate (Italian)
Currently translated at 100.0% (279 of 279 strings)

Translation: Snikket/Web Portal
Translate-URL: https://i18n.sotecware.net/projects/snikket/web-portal/it/
2021-05-19 15:12:20 +00:00
misiek
536a05b0eb Translated using Weblate (Polish)
Currently translated at 100.0% (279 of 279 strings)

Translation: Snikket/Web Portal
Translate-URL: https://i18n.sotecware.net/projects/snikket/web-portal/pl/
2021-05-19 15:12:20 +00:00
uira
e0226d47e3 Translated using Weblate (Indonesian)
Currently translated at 100.0% (279 of 279 strings)

Translation: Snikket/Web Portal
Translate-URL: https://i18n.sotecware.net/projects/snikket/web-portal/id/
2021-05-19 15:12:20 +00:00
misiek
0fe10a44ce Translated using Weblate (Polish)
Currently translated at 100.0% (279 of 279 strings)

Translation: Snikket/Web Portal
Translate-URL: https://i18n.sotecware.net/projects/snikket/web-portal/pl/
2021-05-18 13:29:00 +00:00
Jonas Schäfer
e892d81815 Translated using Weblate (German)
Currently translated at 100.0% (279 of 279 strings)

Translation: Snikket/Web Portal
Translate-URL: https://i18n.sotecware.net/projects/snikket/web-portal/de/
2021-05-18 13:29:00 +00:00
Jonas Schäfer
c58ce8450f Fix type annotations after bumping dependencies 2021-05-18 14:33:06 +02:00
Jonas Schäfer
03573d1f05 Explicitly pass mod_rest JSON as JSON
Otherwise, it can get passed as x-www-form-urlencoded, which
Prosody understandably does not quite like.
2021-05-18 12:35:46 +02:00
Jonas Schäfer
486596f89f Upgrade to quart 0.15 2021-05-18 12:35:31 +02:00
Jonas Schäfer
425b4d4295 Fix dysfunctional password reset button 2021-05-18 12:20:45 +02:00
misiek
87de808046 Translated using Weblate (Polish)
Currently translated at 97.8% (273 of 279 strings)

Translation: Snikket/Web Portal
Translate-URL: https://i18n.sotecware.net/projects/snikket/web-portal/pl/
2021-04-23 20:00:57 +00:00
misiek
05455ac743 Translated using Weblate (Polish)
Currently translated at 96.0% (268 of 279 strings)

Translation: Snikket/Web Portal
Translate-URL: https://i18n.sotecware.net/projects/snikket/web-portal/pl/
2021-04-05 19:01:04 +00:00
Daniel Holmgaard
1e926714cb Translated using Weblate (Danish)
Currently translated at 100.0% (279 of 279 strings)

Translation: Snikket/Web Portal
Translate-URL: https://i18n.sotecware.net/projects/snikket/web-portal/da/
2021-04-02 19:01:03 +00:00
Tilman Jiménez
e1602f3140 Translated using Weblate (Spanish (Mexico))
Currently translated at 49.1% (137 of 279 strings)

Translation: Snikket/Web Portal
Translate-URL: https://i18n.sotecware.net/projects/snikket/web-portal/es_MX/
2021-03-31 13:00:53 +00:00
uira
2e89973263 Translated using Weblate (Indonesian)
Currently translated at 99.2% (277 of 279 strings)

Translation: Snikket/Web Portal
Translate-URL: https://i18n.sotecware.net/projects/snikket/web-portal/id/
2021-03-29 08:00:48 +00:00
Kim Alvefur
a6f1361ddd Translated using Weblate (Swedish)
Currently translated at 100.0% (279 of 279 strings)

Translation: Snikket/Web Portal
Translate-URL: https://i18n.sotecware.net/projects/snikket/web-portal/sv/
2021-03-27 00:01:12 +00:00
Weblate
552a3bbd41 Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: Snikket/Web Portal
Translate-URL: https://i18n.sotecware.net/projects/snikket/web-portal/
2021-03-25 16:35:52 +00:00
misiek
3f2de1e5bf Translated using Weblate (Polish)
Currently translated at 97.6% (248 of 254 strings)

Translation: Snikket/Web Portal
Translate-URL: https://i18n.sotecware.net/projects/snikket/web-portal/pl/
2021-03-25 16:35:49 +00:00
Jonas Schäfer
059a10f475 Merge pull request #76 from snikket-im/feature/roles
"Edit user" flow, role management
2021-03-25 17:35:42 +01:00
Jonas Schäfer
a48abacf1d Disable restricted role for now
It is not implemented in snikket-server yet, so we don’t want to
put anything misleading out there.
2021-03-25 17:32:03 +01:00
Jonas Schäfer
ea7ed7c030 Add support for roles
Requires patches to prosody trunk which have been submitted
already (2021-03-22) which introduce the set_roles function on
usermanager.

Fixes #42.
2021-03-25 17:31:56 +01:00
Jonas Schäfer
cca899bd8c Create "Edit user" form
This aggregates the user actions behind a single "edit" button on
the list view, making it less crammed. It also offers the
functionality of actually editing the user, mind.

Also in preparation for #42.

Requires https://hg.prosody.im/prosody-modules/rev/5bc706c2db8f.
2021-03-25 17:31:49 +01:00
Jonas Schäfer
359e6b4ce2 Use tertiary style for "back" buttons
This allows us to have two levels of emphasis for the actual
form buttons and is also in line with the global "Log out"
navigational button.
2021-03-25 17:31:43 +01:00
Jonas Schäfer
6650dd2046 Capitalize App Store in the invite for consistency 2021-03-25 17:28:36 +01:00
Jonas Schäfer
97b4a7be0f Merge pull request #77 from Zash/mod_rest-version-change
Update for switch to datamapper in mod_rest
2021-03-24 09:10:22 +01:00
Kim Alvefur
329916e200 Update for switch to datamapper in mod_rest
mod_rest after the switch to the new util.datamapper in
https://hg.prosody.im/prosody-modules/rev/073f5397c1d2 does not accept
boolean True as value for the xep-0092 'version' field. An empty object
is equivalent and compatible with both previous and future versions.
2021-03-23 21:38:34 +01:00
Kim Alvefur
3571b8909b Translated using Weblate (Swedish)
Currently translated at 100.0% (254 of 254 strings)

Translation: Snikket/Web Portal
Translate-URL: https://i18n.sotecware.net/projects/snikket/web-portal/sv/
2021-03-23 15:00:36 +00:00
Jonas Schäfer
c6c01b82f5 Merge pull request #74 from snikket-im/feature/invite-from-users-list
Render invite form below user list
2021-03-22 15:30:56 +01:00
Weblate
c4b575f091 Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: Snikket/Web Portal
Translate-URL: https://i18n.sotecware.net/projects/snikket/web-portal/
2021-03-22 14:09:01 +00:00
Jonas Schäfer
fdb55568ec Change problematic "Back" buttons
Fixes #39.
2021-03-22 15:08:33 +01:00
Jonas Schäfer
a9a651be09 Render invite form below user list
Fixes #73.
2021-03-22 15:03:18 +01:00
Kim Alvefur
d2069289b0 Translated using Weblate (Swedish)
Currently translated at 100.0% (252 of 252 strings)

Translation: Snikket/Web Portal
Translate-URL: https://i18n.sotecware.net/projects/snikket/web-portal/sv/
2021-03-21 16:31:20 +00:00
Link Mauve
552b5d2940 Translated using Weblate (French)
Currently translated at 96.8% (244 of 252 strings)

Translation: Snikket/Web Portal
Translate-URL: https://i18n.sotecware.net/projects/snikket/web-portal/fr/
2021-03-21 16:31:19 +00:00
Jonas Schäfer
b0f9ae5d57 Translated using Weblate (German)
Currently translated at 100.0% (252 of 252 strings)

Translation: Snikket/Web Portal
Translate-URL: https://i18n.sotecware.net/projects/snikket/web-portal/de/
2021-03-21 16:31:19 +00:00
Weblate
dd4a012612 Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: Snikket/Web Portal
Translate-URL: https://i18n.sotecware.net/projects/snikket/web-portal/
2021-03-20 15:59:19 +00:00
Jonas Schäfer
e7aa0a2c45 Fix more dotless strings 2021-03-20 16:44:44 +01:00
45 changed files with 5047 additions and 1964 deletions

View File

@@ -1,5 +1,5 @@
aiohttp~=3.6
quart~=0.11
quart~=0.11,<0.15
flask-wtf~=0.14
hsluv~=0.0.2
flask-babel~=1.0

View File

@@ -160,6 +160,7 @@ class AppConfig:
# Future versions may change this default, and the standard deployment
# tools may also very well override it.
max_avatar_size = environ.var(1024*1024, converter=int)
show_metrics = environ.bool_var(True)
_UPPER_CASE = "".join(map(chr, range(ord("A"), ord("Z")+1)))
@@ -191,6 +192,7 @@ def create_app() -> quart.Quart:
app.config["AVATAR_CACHE_TTL"] = config.avatar_cache_ttl
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.context_processor(proc)
app.register_error_handler(

View File

@@ -1,4 +1,4 @@
version_info = (0, 1, 2, "a0")
version_info = (0, 2, 1, None)
version = (
".".join(map(str, version_info[:3])) +
(f"-{version_info[3]}" if version_info[3] else "")

View File

@@ -1,4 +1,6 @@
import json
import resource
import time
import typing
from datetime import datetime
@@ -18,11 +20,12 @@ from quart import (
request,
abort,
flash,
current_app,
)
from flask_babel import lazy_gettext as _l, _
from . import prosodyclient
from . import prosodyclient, _version
from .infra import client, circle_name, BaseForm
bp = Blueprint("admin", __name__, url_prefix="/admin")
@@ -31,11 +34,14 @@ bp = Blueprint("admin", __name__, url_prefix="/admin")
@bp.route("/")
@client.require_admin_session()
async def index() -> str:
return await render_template("admin_home.html")
show_metrics = current_app.config["SHOW_METRICS"]
return await render_template(
"admin_home.html",
show_metrics=show_metrics,
)
class PasswordResetLinkPost(BaseForm):
action_create = wtforms.StringField()
action_revoke = wtforms.StringField()
@@ -46,11 +52,95 @@ async def users() -> str:
await client.list_users(),
key=lambda x: x.localpart
)
invite_form = InvitePost()
await invite_form.init_choices()
reset_form = PasswordResetLinkPost()
return await render_template(
"admin_users.html",
users=users,
reset_form=reset_form,
invite_form=invite_form,
)
_LIMITED_ROLE_NAME = _("Limited")
class EditUserForm(BaseForm):
localpart = wtforms.StringField(
_l("Login name"),
)
display_name = wtforms.StringField(
_l("Display name"),
)
role = wtforms.RadioField(
_l("Access Level"),
choices=[
# NOTE: enable this only after something has been done which
# actually enforces the described restrictions :).
# ("prosody:restricted", _LIMITED_ROLE_NAME),
("prosody:normal", _l("Normal user")),
("prosody:admin", _l("Administrator")),
],
)
action_save = wtforms.SubmitField(
_l("Update user"),
)
action_create_reset = wtforms.SubmitField(
_l("Create password reset link"),
)
@bp.route("/user/<localpart>/", methods=["GET", "POST"])
@client.require_admin_session()
async def edit_user(localpart: str) -> typing.Union[quart.Response, str]:
target_user_info = await client.get_user_by_localpart(localpart)
form = EditUserForm()
if form.validate_on_submit():
if form.action_create_reset.data:
target_user_info = await client.get_user_by_localpart(localpart)
reset_link = await client.create_password_reset_invite(
localpart=localpart,
ttl=86400,
)
await flash(
_("Password reset link created"),
"success",
)
return redirect(url_for(
".user_password_reset_link",
id_=reset_link.id_,
))
await client.update_user(
localpart,
display_name=form.display_name.data,
roles=[form.role.data],
)
await flash(
_("User information updated."),
"success",
)
return redirect(url_for(".edit_user", localpart=localpart))
elif request.method == "GET":
form.localpart.data = target_user_info.localpart
form.display_name.data = target_user_info.display_name
if target_user_info.roles:
form.role.data = target_user_info.roles[0]
else:
form.role.data = "prosody:normal"
return await render_template(
"admin_edit_user.html",
target_user=target_user_info,
form=form,
)
@@ -97,36 +187,38 @@ async def debug_user(localpart: str) -> typing.Union[str, quart.Response]:
)
@bp.route("/users/password-reset/-", methods=["POST"])
@bp.route("/users/password-reset/<id_>", methods=["GET", "POST"])
@client.require_admin_session()
async def create_password_reset_link() -> typing.Union[str, quart.Response]:
form = PasswordResetLinkPost()
if not form.validate_on_submit():
abort(400)
if form.action_create.data:
localpart = form.action_create.data
target_user_info = await client.get_user_by_localpart(localpart)
reset_link = await client.create_password_reset_invite(
localpart=localpart,
ttl=86400,
)
async def user_password_reset_link(
id_: str,
) -> typing.Union[str, quart.Response]:
invite_info = await client.get_invite_by_id(
id_,
)
if invite_info.jid is None:
await flash(
_("Password reset link created"),
"success",
)
elif form.action_revoke.data:
await client.delete_invite(form.action_revoke.data)
await flash(
_("Password reset link deleted"),
"success",
_("Password reset link not found"),
"alert",
)
return redirect(url_for(".users"))
localpart = prosodyclient.split_jid(invite_info.jid)[0]
form = PasswordResetLinkPost()
if form.validate_on_submit():
if form.action_revoke.data:
await client.delete_invite(id_)
await flash(
_("Password reset link deleted"),
"success",
)
return redirect(url_for(".edit_user", localpart=localpart))
abort(400)
return await render_template(
"admin_reset_user_password.html",
target_user=target_user_info,
reset_link=reset_link,
localpart=localpart,
reset_link=invite_info,
form=form,
)
@@ -465,3 +557,148 @@ async def edit_circle(id_: str) -> typing.Union[str, quart.Response]:
circle_members=circle_members,
invite_form=invite_form,
)
_CPU_EPOCH = time.process_time()
_MONOTONIC_EPOCH = time.monotonic()
def get_system_stats() -> typing.MutableMapping[
str,
typing.Optional[typing.Union[int, float]]]:
pagesize = resource.getpagesize()
my_rss: typing.Optional[int] = None
try:
with open("/proc/self/statm") as f:
stats = f.read().split()
my_rss = int(stats[1]) * pagesize
except (ValueError, IndexError, TypeError, OSError):
pass
my_cpu = (
(time.process_time() - _CPU_EPOCH) /
(time.monotonic() - _MONOTONIC_EPOCH)
)
mem_total, mem_available = None, None
load5: typing.Optional[float] = None
try:
with open("/proc/loadavg") as f:
stats = f.read().split()
load5 = float(stats[1])
except (ValueError, IndexError, TypeError, OSError):
pass
try:
with open("/proc/meminfo") as f:
for line in f:
if line.startswith("MemTotal"):
mem_total = int(line.split()[1]) * 1024
elif line.startswith("MemAvailable"):
mem_available = int(line.split()[1]) * 1024
if mem_total is not None and mem_available is not None:
break
except (ValueError, TypeError, IndexError, OSError):
pass
return {
"portal_rss": my_rss,
"portal_cpu": my_cpu,
"load5": load5,
"mem_total": mem_total,
"mem_available": mem_available,
}
class AnnouncementForm(BaseForm):
text = wtforms.StringField(
_("Message contents"),
widget=wtforms.widgets.TextArea(),
validators=[wtforms.validators.DataRequired()],
)
online_only = wtforms.BooleanField(
_("Only send to online users"),
)
action_post_all = wtforms.SubmitField(
_("Post to all users"),
)
action_send_preview = wtforms.SubmitField(
_("Send preview to yourself"),
)
@bp.route("/system/", methods=["GET", "POST"])
@client.require_admin_session()
async def system() -> typing.Union[str, quart.Response]:
form = AnnouncementForm()
if form.validate_on_submit():
recipients = "self"
if form.action_post_all.data:
if form.online_only.data:
recipients = "online"
else:
recipients = "all"
await client.post_announcement(
form.text.data,
recipients=recipients,
)
await flash(
_("Announcement sent!"),
"success",
)
if recipients != "self":
# redirect only if not previewing
return redirect(url_for(".system"))
version = None
now = None
show_metrics = current_app.config["SHOW_METRICS"]
if show_metrics:
version = await client.get_server_version()
now = time.time()
try:
prosody_metrics = await client.get_system_metrics()
except quart.exceptions.NotFound:
# server does not offer the endpoint for whatever reason -- ignore
prosody_metrics = {}
metrics = get_system_stats()
try:
prosody_cpu_metrics = prosody_metrics["cpu"]
except KeyError:
pass
else:
metrics["prosody_cpu"] = (prosody_cpu_metrics["value"] /
(now - prosody_cpu_metrics["since"]))
try:
metrics["prosody_rss"] = prosody_metrics["memory"]
except KeyError:
pass
try:
metrics["prosody_devices"] = prosody_metrics["c2s"]
except KeyError:
pass
for k in list(metrics.keys()):
if metrics[k] is None:
# so that defaulting in jinja works
del metrics[k]
else:
metrics = {}
return await render_template(
"admin_system.html",
metrics=metrics,
version=_version.version,
prosody_version=version,
form=form,
show_metrics=show_metrics,
)

View File

@@ -1,5 +1,6 @@
import base64
import itertools
import math
import secrets
import typing
@@ -22,11 +23,20 @@ client.default_login_redirect = "main.login"
babel = flask_babel.Babel()
BYTE_UNIT_SCALE_MAP = [
"B",
"kiB",
"MiB",
"GiB",
"TiB",
]
@babel.localeselector # type:ignore
def selected_locale() -> str:
selected = request.accept_languages.best_match(
current_app.config['LANGUAGES']
)
) or current_app.config['LANGUAGES'][0]
return selected
@@ -42,12 +52,27 @@ def circle_name(c: typing.Any) -> str:
return c.name
def format_bytes(n: float) -> str:
scale = math.floor(math.log(n, 1024))
try:
unit = BYTE_UNIT_SCALE_MAP[scale]
factor = 1024**scale
except ValueError:
unit = "TiB"
factor = 1024**4
if factor > 1:
return "{:.1f}{}".format(n / factor, unit)
return "{}{}".format(n, unit)
def init_templating(app: quart.Quart) -> None:
app.template_filter("repr")(repr)
app.template_filter("format_datetime")(flask_babel.format_datetime)
app.template_filter("format_date")(flask_babel.format_date)
app.template_filter("format_time")(flask_babel.format_time)
app.template_filter("format_timedelta")(flask_babel.format_timedelta)
app.template_filter("format_percent")(flask_babel.format_percent)
app.template_filter("format_bytes")(format_bytes)
app.template_filter("flatten")(flatten)
app.template_filter("circle_name")(circle_name)

View File

@@ -115,7 +115,7 @@ class RegisterForm(BaseForm):
validators=[wtforms.validators.InputRequired(),
wtforms.validators.EqualTo(
"password",
_l("The passwords must match")
_l("The passwords must match.")
)]
)
@@ -182,7 +182,7 @@ class ResetForm(BaseForm):
validators=[wtforms.validators.InputRequired(),
wtforms.validators.EqualTo(
"password",
_l("The passwords must match")
_l("The passwords must match.")
)]
)

View File

@@ -123,6 +123,7 @@ def repad(s: str) -> str:
@bp.route("/avatar/<from_>/<code>")
async def avatar(from_: str, code: str) -> quart.Response:
etag: typing.Optional[str]
try:
etag = request.headers["if-none-match"]
except KeyError:

View File

@@ -44,6 +44,15 @@ class AdminUserInfo:
display_name: typing.Optional[str]
email: typing.Optional[str]
phone: typing.Optional[str]
roles: typing.Optional[typing.List[str]]
@property
def has_admin_role(self) -> bool:
return bool(self.roles and "prosody:admin" in self.roles)
@property
def has_restricted_role(self) -> bool:
return bool(self.roles and "prosody:restricted" in self.roles)
@classmethod
def from_api_response(
@@ -55,6 +64,7 @@ class AdminUserInfo:
display_name=data.get("display_name") or None,
email=data.get("email") or None,
phone=data.get("phone") or None,
roles=data.get("roles"),
)
@@ -500,7 +510,7 @@ class ProsodyClient:
"to": self.session_address,
}
async with session.post(self._rest_endpoint, data=req) as resp:
async with session.post(self._rest_endpoint, json=req) as resp:
return resp.status == 200
@autosession
@@ -509,11 +519,11 @@ class ProsodyClient:
req = {
"kind": "iq",
"type": "get",
"version": True,
"version": {},
"to": domain,
}
async with session.post(self._rest_endpoint, data=req) as resp:
async with session.post(self._rest_endpoint, json=req) as resp:
if resp.status != 200:
return "unknwn"
try:
@@ -858,6 +868,29 @@ class ProsodyClient:
self._raise_error_from_response(resp)
return AdminUserInfo.from_api_response(await resp.json())
@autosession
async def update_user(
self,
localpart: str,
*,
display_name: typing.Optional[str],
roles: typing.Optional[typing.Collection[str]],
session: aiohttp.ClientSession,
) -> None:
payload: typing.Dict[str, typing.Any] = {
"username": localpart,
}
if display_name is not None:
payload["display_name"] = display_name
if roles is not None:
payload["roles"] = list(roles)
async with session.put(
self._admin_v1_endpoint("/users/{}".format(localpart)),
json=payload,
) as resp:
self._raise_error_from_response(resp)
@autosession
async def get_user_debug_info(
self,
@@ -1142,3 +1175,41 @@ class ProsodyClient:
json=payload) as resp:
resp.raise_for_status()
return (await resp.json())["jid"]
@autosession
async def get_system_metrics(
self,
*,
session: aiohttp.ClientSession) -> typing.Mapping:
async with session.get(
self._admin_v1_endpoint("/server/metrics"),
) as resp:
if resp.status == 404:
return {}
self._raise_error_from_response(resp)
resp.raise_for_status()
return await resp.json()
@autosession
async def post_announcement(
self,
body: str,
recipients: str,
*,
session: aiohttp.ClientSession) -> None:
recipients_payload: typing.Union[str, typing.Sequence[str]]
if recipients == "self":
recipients_payload = [self.session_address]
else:
recipients_payload = recipients
payload = {
"recipients": recipients_payload,
"body": body,
}
async with session.post(
self._admin_v1_endpoint("/server/announcement"),
json=payload) as resp:
self._raise_error_from_response(resp)
resp.raise_for_status()

View File

@@ -354,6 +354,15 @@ div.form.layout-expanded {
display: block;
}
.radio-button-ext > label > p {
margin-left: 1.75rem;
margin-top: 0;
}
.radio-button-ext > label .icon {
margin-left: 0.25em;
}
div.select-wrap {
display: block;
border-bottom: $w-s4 solid $primary-500;

View File

@@ -37,6 +37,11 @@ licensed under the terms of the Apache 2.0 License -->
<path d="M0 0h24v24H0V0z" fill="none" />
<path d="M10.79 16.29c.39.39 1.02.39 1.41 0l3.59-3.59c.39-.39.39-1.02 0-1.41L12.2 7.7c-.39-.39-1.02-.39-1.41 0-.39.39-.39 1.02 0 1.41L12.67 11H4c-.55 0-1 .45-1 1s.45 1 1 1h8.67l-1.88 1.88c-.39.39-.38 1.03 0 1.41zM19 3H5c-1.11 0-2 .9-2 2v3c0 .55.45 1 1 1s1-.45 1-1V6c0-.55.45-1 1-1h12c.55 0 1 .45 1 1v12c0 .55-.45 1-1 1H6c-.55 0-1-.45-1-1v-2c0-.55-.45-1-1-1s-1 .45-1 1v3c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z" />
</symbol>
<!-- from: action/lock/materialiconsround/24px.svg -->
<symbol id="icon-lock" viewBox="0 0 24 24">
<g fill="none"><path d="M0 0h24v24H0V0z" /><path d="M0 0h24v24H0V0z" opacity=".87" /></g>
<path d="M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM9 8V6c0-1.66 1.34-3 3-3s3 1.34 3 3v2H9z" />
</symbol>
<!-- from: communication/qr_code/materialiconsround/24px.svg -->
<symbol id="icon-qrcode" viewBox="0 0 24 24">
<g><rect fill="none" height="24" width="24" /><rect fill="none" height="24" width="24" /></g>
@@ -47,6 +52,12 @@ licensed under the terms of the Apache 2.0 License -->
<path d="M0 0h24v24H0V0z" fill="none" />
<path d="M12.65 10C11.7 7.31 8.9 5.5 5.77 6.12c-2.29.46-4.15 2.29-4.63 4.58C.32 14.57 3.26 18 7 18c2.61 0 4.83-1.67 5.65-4H17v2c0 1.1.9 2 2 2s2-.9 2-2v-2c1.1 0 2-.9 2-2s-.9-2-2-2h-8.35zM7 14c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z" />
</symbol>
<!-- from: communication/rss_feed/materialiconsround/24px.svg -->
<symbol id="icon-broadcast" viewBox="0 0 24 24">
<path d="M0 0h24v24H0V0z" fill="none" />
<circle cx="6.18" cy="17.82" r="2.18" />
<path d="M5.59 10.23c-.84-.14-1.59.55-1.59 1.4 0 .71.53 1.28 1.23 1.4 2.92.51 5.22 2.82 5.74 5.74.12.7.69 1.23 1.4 1.23.85 0 1.54-.75 1.41-1.59-.68-4.2-3.99-7.51-8.19-8.18zm-.03-5.71C4.73 4.43 4 5.1 4 5.93c0 .73.55 1.33 1.27 1.4 6.01.6 10.79 5.38 11.39 11.39.07.73.67 1.28 1.4 1.28.84 0 1.5-.73 1.42-1.56-.73-7.34-6.57-13.19-13.92-13.92z" />
</symbol>
<!-- from: content/add_circle_outline/materialiconsround/24px.svg -->
<symbol id="icon-add" viewBox="0 0 24 24">
<path d="M0 0h24v24H0V0z" fill="none" />
@@ -72,6 +83,11 @@ licensed under the terms of the Apache 2.0 License -->
<path d="M0 0h24v24H0V0z" fill="none" />
<path d="M21.94 11.23C21.57 8.76 19.32 7 16.82 7h-2.87c-.52 0-.95.43-.95.95s.43.95.95.95h2.9c1.6 0 3.04 1.14 3.22 2.73.17 1.43-.64 2.69-1.85 3.22l1.4 1.4c1.63-1.02 2.64-2.91 2.32-5.02zM4.12 3.56c-.39-.39-1.02-.39-1.41 0s-.39 1.02 0 1.41l2.4 2.4c-1.94.8-3.27 2.77-3.09 5.04C2.23 15.05 4.59 17 7.23 17h2.82c.52 0 .95-.43.95-.95s-.43-.95-.95-.95H7.16c-1.63 0-3.1-1.19-3.25-2.82-.15-1.72 1.11-3.17 2.75-3.35l2.1 2.1c-.43.09-.76.46-.76.92v.1c0 .52.43.95.95.95h1.78L13 15.27V17h1.73l3.3 3.3c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L4.12 3.56zM16 11.95c0-.52-.43-.95-.95-.95h-.66l1.49 1.49c.07-.13.12-.28.12-.44v-.1z" />
</symbol>
<!-- from: content/send/materialiconsround/24px.svg -->
<symbol id="icon-send" viewBox="0 0 24 24">
<path d="M0 0h24v24H0V0z" fill="none" />
<path d="M3.4 20.4l17.45-7.48c.81-.35.81-1.49 0-1.84L3.4 3.6c-.66-.29-1.39.2-1.39.91L2 9.12c0 .5.37.93.87.99L17 12 2.87 13.88c-.5.07-.87.5-.87 1l.01 4.61c0 .71.73 1.2 1.39.91z" />
</symbol>
<!-- from: navigation/arrow_back/materialiconsround/24px.svg -->
<symbol id="icon-back" viewBox="0 0 24 24">
<path d="M0 0h24v24H0V0z" fill="none" />
@@ -137,4 +153,9 @@ licensed under the terms of the Apache 2.0 License -->
<path d="M0 0h24v24H0V0z" fill="none" />
<path d="M17 7h-3c-.55 0-1 .45-1 1s.45 1 1 1h3c1.65 0 3 1.35 3 3s-1.35 3-3 3h-3c-.55 0-1 .45-1 1s.45 1 1 1h3c2.76 0 5-2.24 5-5s-2.24-5-5-5zm-9 5c0 .55.45 1 1 1h6c.55 0 1-.45 1-1s-.45-1-1-1H9c-.55 0-1 .45-1 1zm2 3H7c-1.65 0-3-1.35-3-3s1.35-3 3-3h3c.55 0 1-.45 1-1s-.45-1-1-1H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h3c.55 0 1-.45 1-1s-.45-1-1-1z" />
</symbol>
<!-- from: content/insights/materialiconsround/24px.svg -->
<symbol id="icon-insights" viewBox="0 0 24 24">
<g><rect fill="none" height="24" width="24" /><rect fill="none" height="24" width="24" /></g>
<g><g><path d="M21,8c-1.45,0-2.26,1.44-1.93,2.51l-3.55,3.56c-0.3-0.09-0.74-0.09-1.04,0l-2.55-2.55C12.27,10.45,11.46,9,10,9 c-1.45,0-2.27,1.44-1.93,2.52l-4.56,4.55C2.44,15.74,1,16.55,1,18c0,1.1,0.9,2,2,2c1.45,0,2.26-1.44,1.93-2.51l4.55-4.56 c0.3,0.09,0.74,0.09,1.04,0l2.55,2.55C12.73,16.55,13.54,18,15,18c1.45,0,2.27-1.44,1.93-2.52l3.56-3.55 C21.56,12.26,23,11.45,23,10C23,8.9,22.1,8,21,8z" /><polygon points="15,9 15.94,6.93 18,6 15.94,5.07 15,3 14.08,5.07 12,6 14.08,6.93" /><polygon points="3.5,11 4,9 6,8.5 4,8 3.5,6 3,8 1,8.5 3,9" /></g></g>
</symbol>
</defs></svg>

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -16,7 +16,7 @@
<p>{% trans %}The user and their data will be deleted irrevocably, permanently and immediately upon pushing the below button. <strong>There is no way back!</strong>{% endtrans %}</p>
{% endcall %}
<div class="f-bbox">
{%- call standard_button("back", url_for(".index"), class="secondary") %}{% trans %}Back{% endtrans %}{% endcall -%}
{%- call standard_button("back", url_for(".edit_user", localpart=target_user.localpart), class="tertiary") %}{% trans %}Back{% endtrans %}{% endcall -%}
{%- call form_button("delete", form.action_delete, class="primary danger") %}{% endcall -%}
</div>
</form></div>

View File

@@ -40,8 +40,8 @@
{%- endif -%}
</div>
<div class="f-bbox">
{%- call standard_button("back", url_for(".circles"), class="secondary") -%}
{% trans %}Back{% endtrans %}
{%- call standard_button("back", url_for(".circles"), class="tertiary") -%}
{% trans %}Return to circle list{% endtrans %}
{%- endcall -%}
{%- call form_button("done", form.action_save, class="primary") %}{% endcall -%}
</div>

View File

@@ -44,10 +44,10 @@
<dd>{{ invite.created_at | format_date }}</dd>
</dl>
<div class="f-bbox">
{%- call form_button("remove_link", form.action_revoke, class="secondary danger") %}{% endcall -%}
{%- call standard_button("back", url_for(".invitations"), class="primary") %}
{% trans %}Back{% endtrans %}
{%- call standard_button("back", url_for(".invitations"), class="tertiary") %}
{% trans %}Return to invitation list{% endtrans %}
{%- endcall %}
{%- call form_button("remove_link", form.action_revoke, class="primary danger") %}{% endcall -%}
</div>
</div>
</form>

View File

@@ -0,0 +1,78 @@
{% extends "admin_app.html" %}
{% from "library.j2" import box, form_button, standard_button, icon %}
{% macro access_level_description(role, caller=None) %}
{%- if role == "prosody:restricted" -%}
{% trans %}Limited users can interact with users on the same Snikket service and be members of circles.{% endtrans %}
{%- elif role == "prosody:normal" -%}
{% trans %}Like limited users and can also interact with users on other Snikket services.{% endtrans %}
{%- elif role == "prosody:admin" -%}
{% trans %}Like normal users and can access the admin panel in the web portal.{% endtrans %}
{%- endif -%}
{% endmacro %}
{% macro access_level_icon(role, caller=None) %}
{%- if role == "prosody:restricted" -%}
{% call icon("lock") %}{% endcall %}
{%- elif role == "prosody:admin" -%}
{% call icon("admin") %}{% endcall %}
{%- endif -%}
{% endmacro %}
{% block content %}
<h1>{% trans user_name=target_user.localpart %}Edit user {{ user_name }}{% endtrans %}</h1>
<form method="POST">{{ form.csrf_token }}<div class="form layout-expanded">
<h2 class="form-title">{% trans %}Edit user{% endtrans %}</h2>
<div class="f-ebox">
{{ form.localpart.label }}
{{ form.localpart(readonly="readonly") }}
<p class="form-desc weak">{% trans %}The login name cannot be changed.{% endtrans %}</p>
</div>
<div class="f-ebox">
{{ form.display_name.label }}
{{ form.display_name }}
</div>
<h3 class="form-title">{% trans %}Access Level{% endtrans %}</h3>
<p class="form-descr weak">{% trans %}The access level of a user determines what interactions are allowed for them on your Snikket service.{% endtrans %}</p>
<div class="f-ebox">
<fieldset>{#- -#}
<legend class="a11y-only">{{ form.role.label.text }}</legend>
{%- for level in form.role -%}
<div class="radio-button-ext">
{{ level }}<label for="{{ level.id }}">
{%- trans title=level.label.text, icon=access_level_icon(level.data), description=access_level_description(level.data) -%}
<strong>{{ title }}{{ icon }}</strong><p>{{ description }}</p>
{%- endtrans -%}
</label>
</div>
{%- endfor -%}
</fieldset>
</div>
<div class="f-bbox">
{%- call standard_button("back", url_for(".users"), class="tertiary") -%}
{%- trans -%}Return to user list{%- endtrans -%}
{%- endcall -%}
{%- call standard_button("delete", url_for(".delete_user", localpart=target_user.localpart), class="secondary") -%}
{%- trans -%}Delete user{%- endtrans -%}
{%- endcall -%}
{%- call form_button("done", form.action_save, class="primary") %}{% endcall -%}
</div>
</div>
<h2>{% trans %}Further actions{% endtrans %}</h2>
<div class="form layout-expanded">
<h2 class="form-title">{% trans %}Reset password{% endtrans %}</h2>
{{ form.csrf_token }}
<p class="form-desc">
{% trans %}If the user has lost their password, you can use the button below to create a special link which allows to change the password of the account, once.{% endtrans %}
</p>
<div class="f-bbox">
{%- call form_button("passwd", form.action_create_reset, class="primary") -%}{%- endcall -%}
</div>
<h2 class="form-title">{% trans %}Debug information{% endtrans %}</h2>
<p class="form-desc">
{% trans %}In some cases, extended information about the user account and the connected devices is necessary to troubleshoot issues. The button below reveals this (sensitive) information.{% endtrans %}
</p>
<div class="f-bbox">
{%- call standard_button("bug_report", url_for(".debug_user", localpart=target_user.localpart), class="primary") -%}
{%- trans -%}Show debug information{%- endtrans -%}
{%- endcall -%}
</div>
</div></form>
{% endblock %}

View File

@@ -31,6 +31,18 @@
<div>{% call standard_button("link", url_for(".invitations"), class="primary") %}{% trans %}Manage invitations{% endtrans %}{% endcall %}</div>
{#- -#}
</li>
<li>
<h2>{% trans %}System health{% endtrans %}</h2>
{#- -#}
{%- if show_metrics -%}
<p>{% trans %}View the server status or send a broadcast message to all users.{% endtrans %}</p>
{%- else -%}
<p>{% trans %}Send a broadcast message to all users.{% endtrans %}</p>
{%- endif -%}
{#- -#}
<div>{% call standard_button("insights", url_for(".system"), class="primary") %}{% trans %}Manage system{% endtrans %}{% endcall %}</div>
{#- -#}
</li>
<li>
{#- -#}
<p>{% trans %}Go back to your user's web portal page.{% endtrans %}</p>

View File

@@ -9,7 +9,7 @@
<form method="POST">
{{- form.csrf_token -}}
<div class="form layout-expanded">
<h2 class="form-title">{% trans user_name=target_user.localpart %}Password reset link for {{ user_name }}{% endtrans %}</h2>
<h2 class="form-title">{% trans user_name=localpart %}Password reset link for {{ user_name }}{% endtrans %}</h2>
<p class="form-desc">{% trans %}The following link will allow the user to reset their password on their device, once.{% endtrans %}</p>
<dd>
<dt>{% trans %}Valid until{% endtrans %}</dt>
@@ -21,7 +21,7 @@
{%- call custom_form_button("remove_link", form.action_revoke.name, reset_link.id_, class="secondary danger") -%}
{% trans %}Destroy link{% endtrans %}
{%- endcall -%}
{%- call standard_button("back", url_for(".users"), class="primary") -%}
{%- call standard_button("back", url_for(".edit_user", localpart=localpart), class="primary") -%}
{% trans %}Back{% endtrans %}
{%- endcall -%}
</div>

View File

@@ -0,0 +1,97 @@
{% extends "admin_app.html" %}
{% from "library.j2" import form_button %}
{% block content %}
<h1>{% trans %}Manage system{% endtrans %}</h1>
{% if show_metrics %}
<h2>{% trans %}Overall system status{% endtrans %}</h2>
<div class="elevated el-2">
<dl>
<dt>{% trans %}System load (5 minute average){% endtrans %}</dt>
<dd>
{%- if metrics.load5 -%}
{{ metrics.load5 }}
{%- else -%}
<em>{% trans %}unknown{% endtrans %}</em>
{%- endif -%}
</dd>
<dt>{% trans %}Memory use{% endtrans %}</dt>
<dd>
{%- if metrics.mem_total and metrics.mem_available -%}
{% trans percentage_global=((1 - (metrics.mem_available / metrics.mem_total)) | format_percent), percentage_snikket=((((metrics.prosody_rss | default(0)) + (metrics.portal_rss | default(0))) / metrics.mem_total) | format_percent), mem_available=(metrics.mem_total | format_bytes) %}{{ percentage_global }} of {{ mem_available }}. Of that, Snikket uses {{ percentage_snikket }}.{% endtrans %}
{%- else -%}
<em>{% trans %}unknown{% endtrans %}</em>
{%- endif -%}
</dd>
</dl>
</div>
<h2>{% trans %}Web portal status{% endtrans %}</h2>
<div class="elevated el-2">
<dl>
<dt>{% trans %}Version{% endtrans %}</dt>
<dd>{{ version }} <a href="{{ url_for("main.about") }}">{% trans %}View all versions{% endtrans %}</a></dd>
<dt>{% trans %}Average CPU use{% endtrans %}</dt>
<dd>
{%- if metrics.portal_cpu -%}
{{ metrics.portal_cpu | format_percent }}
{%- else -%}
<em>{% trans %}unknown{% endtrans %}</em>
{%- endif -%}
</dd>
<dt>{% trans %}Current memory use{% endtrans %}</dt>
<dd>
{%- if metrics.portal_rss -%}
{{ metrics.portal_rss | format_bytes }}
{%- else -%}
<em>{% trans %}unknown{% endtrans %}</em>
{%- endif -%}
</dd>
</dl>
</div>
<h2>{% trans %}Snikket server status{% endtrans %}</h2>
<div class="elevated el-2">
<dl>
<dt>{% trans %}Version{% endtrans %}</dt>
<dd>{{ prosody_version }} <a href="{{ url_for("main.about") }}">{% trans %}View all versions{% endtrans %}</a></dd>
<dt>{% trans %}Average CPU use{% endtrans %}</dt>
<dd>
{%- if metrics.prosody_cpu -%}
{{ metrics.prosody_cpu | format_percent }}
{%- else -%}
<em>{% trans %}unknown{% endtrans %}</em>
{%- endif -%}
</dd>
<dt>{% trans %}Current memory use{% endtrans %}</dt>
<dd>
{%- if metrics.prosody_rss -%}
{{ metrics.prosody_rss | format_bytes }}
{%- else -%}
<em>{% trans %}unknown{% endtrans %}</em>
{%- endif -%}
</dd>
<dt>{% trans %}Connected devices{% endtrans %}</dt>
<dd>
{%- if metrics.prosody_devices | default(None) is not none -%}
{{ metrics.prosody_devices }}
{%- else -%}
<em>{% trans %}unknown{% endtrans %}</em>
{%- endif -%}
</dd>
</dl>
</div>
{% endif %}
<h2>{% trans %}Broadcast message{% endtrans %}</h2>
<form method="POST">{{ form.csrf_token }}<div class="form layout-expanded">
<p class="form-desc">{% trans %}This form allows you to send a message to all users currently online on your Snikket server. Use it wisely.{% endtrans %}</p>
<div class="f-ebox">
{{ form.text.label }}
{{ form.text }}
</div>
<div class="f-ebox">
{{ form.online_only }}{{ form.online_only.label }}
</div>
<div class="f-bbox">
{%- call form_button("send", form.action_send_preview, class="primary") -%}{%- endcall -%}
{%- call form_button("broadcast", form.action_post_all, class="secondary accent") -%}{%- endcall -%}
</div>
</div></form>
{% endblock %}

View File

@@ -1,9 +1,7 @@
{% extends "admin_app.html" %}
{% from "library.j2" import action_button, value_or_hint, custom_form_button %}
{% from "library.j2" import action_button, icon, value_or_hint, custom_form_button %}
{% block content %}
<h1>{% trans %}Manage users{% endtrans %}</h1>
<form method="POST" action="{{ url_for(".create_password_reset_link") }}">
{{- reset_form.csrf_token -}}
<div class="elevated el-2"><table>
<thead>
<tr>
@@ -15,17 +13,19 @@
<tbody>
{% for user in users %}
<tr>
<td>{{ user.localpart }}</td>
<td>
{{- user.localpart -}}
{%- if user.has_admin_role -%}
<span class="with-tooltip above" data-tooltip="{% trans %}The user is an administrator.{% endtrans %}">{% call icon("admin") %}{% trans %} (Administrator){% endtrans %}{% endcall %}</span>
{%- endif -%}
{%- if user.has_restricted_role -%}
<span class="with-tooltip above" data-tooltip="{% trans %}The user is restricted.{% endtrans %}">{% call icon("lock") %}{% trans %} (Restricted){% endtrans %}{% endcall %}</span>
{%- endif -%}
</td>
<td>{% call value_or_hint(user.display_name) %}{% endcall %}</td>
<td class="nowrap">
{%- call action_button("delete", url_for(".delete_user", localpart=user.localpart), class="secondary") -%}
{% trans user_name=user.localpart %}Delete user {{ user_name }}{% endtrans %}
{%- endcall -%}
{%- call action_button("bug_report", url_for(".debug_user", localpart=user.localpart), class="secondary") -%}
{% trans user_name=user.localpart %}Show debug information for {{ user_name }}{% endtrans %}
{%- endcall -%}
{%- call custom_form_button("passwd", reset_form.action_create.name, user.localpart, class="secondary", slim=True) -%}
{% trans user_name=user.localpart %}Create password reset link for {{ user_name }}{% endtrans %}
{%- call action_button("edit", url_for(".edit_user", localpart=user.localpart), class="primary") -%}
{% trans user_name=user.localpart %}Edit user {{ user_name }}{% endtrans %}
{%- endcall -%}
</form>
</td>
@@ -33,5 +33,5 @@
{% endfor %}
</tbody>
</table></div>
</form>
{%- include "admin_create_invite_form.html" -%}
{% endblock %}

View File

@@ -96,9 +96,9 @@
{% trans %}Close{% endtrans %}
{%- endcall -%}
</header>
<p>{% trans %}After downloading Snikket from the app store, you have to return to this invite link and tap on "Open the app" to proceed.{% endtrans %}</p>
<p>{% trans %}After downloading Snikket from the App Store, you have to return to this invite link and tap on "Open the app" to proceed.{% endtrans %}</p>
<ol>
<li><p>{% trans %}First download Snikket from the app store using the button below:{% endtrans %}</p>
<li><p>{% trans %}First download Snikket from the App Store using the button below:{% endtrans %}</p>
<p><a href="{{ apple_store_url }}"><img alt='{% trans %}Download on the App Store{% endtrans %}' src="{{ apple_store_badge() }}" class="apple"></a></p>
<li><p>{% trans %}After the installation is complete, you can return to this page and tap the "Open the app" button to continue with the setup:{% endtrans %}</p>
<p>

View File

@@ -6,7 +6,7 @@
<p class="form-desc">{% trans %}Click below to log yourself out of the web portal. This does not affect any other connected devices.{% endtrans %}</p>
{{ form.csrf_token }}
<div class="f-bbox">
{%- call standard_button("back", url_for("user.index"), class="secondary") -%}
{%- call standard_button("back", url_for("user.index"), class="tertiary") -%}
{% trans %}Back{% endtrans %}
{%- endcall -%}
{%- call form_button("logout", form.action_signout, class="primary") %}{% endcall -%}

View File

@@ -24,7 +24,7 @@
<p>{% trans %}After changing your password, you will have to enter the new password on all of your devices.{% endtrans %}</p>
</div>
<div class="f-bbox">
{%- call standard_button("back", url_for('.index'), class="secondary") %}{% trans %}Back{% endtrans %}{% endcall -%}
{%- call standard_button("back", url_for('.index'), class="tertiary") %}{% trans %}Back{% endtrans %}{% endcall -%}
{%- call custom_form_button("passwd", "", "", class="primary") -%}
{% trans %}Change password{% endtrans %}
{%- endcall -%}

View File

@@ -29,7 +29,7 @@
</fieldset>
</div>
<div class="f-bbox">
{%- call standard_button("back", url_for('.index'), class="secondary") %}{% trans %}Back{% endtrans %}{% endcall -%}
{%- call standard_button("back", url_for('.index'), class="tertiary") %}{% trans %}Back{% endtrans %}{% endcall -%}
{%- call form_button("done", form.action_save, class="primary") %}{% endcall -%}
</div>
<script type="text/javascript">

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: SnikketWeb 0.1.0\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2021-02-23 07:55+0100\n"
"PO-Revision-Date: 2021-02-25 16:02+0000\n"
"POT-Creation-Date: 2021-03-25 17:32+0100\n"
"PO-Revision-Date: 2021-05-18 13:28+0000\n"
"Last-Translator: Jonas Schäfer <jonas@zombofant.net>\n"
"Language-Team: German <https://i18n.sotecware.net/projects/snikket/"
"web-portal/de/>\n"
@@ -17,255 +17,304 @@ msgstr ""
"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.4.2\n"
"X-Generator: Weblate 4.5.1\n"
"Generated-By: Babel 2.9.0\n"
#: snikket_web/admin.py:60
msgid "Delete user permanently"
msgstr "Benutzer endgültig löschen"
#: snikket_web/admin.py:59
msgid "Limited"
msgstr "Eingeschränkt"
#: snikket_web/admin.py:73
msgid "User deleted"
msgstr "Benutzer gelöscht"
#: snikket_web/admin.py:64 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_users.html:8
msgid "Login name"
msgstr "Anmeldename"
#: snikket_web/admin.py:116
#: snikket_web/admin.py:68 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:9 snikket_web/user.py:61
msgid "Display name"
msgstr "Anzeigename"
#: snikket_web/admin.py:72 snikket_web/templates/admin_edit_user.html:33
msgid "Access Level"
msgstr "Berechtigungen"
#: snikket_web/admin.py:77
msgid "Normal user"
msgstr "Normaler Benutzer"
#: snikket_web/admin.py:78
msgid "Administrator"
msgstr "Administrator"
#: snikket_web/admin.py:83
msgid "Update user"
msgstr "Benutzer ändern"
#: snikket_web/admin.py:87
msgid "Create password reset link"
msgstr "Passwort-Link erzeugen"
#: snikket_web/admin.py:105
msgid "Password reset link created"
msgstr "Link zum Zurücksetzen des Passwortes erzeugt"
#: snikket_web/admin.py:122
#: snikket_web/admin.py:120
msgid "User information updated."
msgstr "Benutzerinformationen gespeichert."
#: snikket_web/admin.py:142
msgid "Delete user permanently"
msgstr "Benutzer endgültig löschen"
#: snikket_web/admin.py:155
msgid "User deleted"
msgstr "Benutzer gelöscht"
#: snikket_web/admin.py:193
msgid "Password reset link not found"
msgstr "Link zum Zurücksetzen des Passwortes nicht gefunden"
#: snikket_web/admin.py:205
msgid "Password reset link deleted"
msgstr "Link gelöscht"
#: snikket_web/admin.py:141
#: snikket_web/admin.py:225
msgid "Invite to circle"
msgstr "In Gemeinschaft einladen"
#: snikket_web/admin.py:147
#: snikket_web/admin.py:231
msgid "At least one circle must be selected"
msgstr "Mindestens eine Gemeinschaft muss ausgewählt sein"
#: snikket_web/admin.py:152
#: snikket_web/admin.py:236
msgid "Valid for"
msgstr "Gültig für"
#: snikket_web/admin.py:154
#: snikket_web/admin.py:238
msgid "One hour"
msgstr "Eine Stunde"
#: snikket_web/admin.py:155
#: snikket_web/admin.py:239
msgid "Twelve hours"
msgstr "Zwölf Stunden"
#: snikket_web/admin.py:156
#: snikket_web/admin.py:240
msgid "One day"
msgstr "Ein Tag"
#: snikket_web/admin.py:157
#: snikket_web/admin.py:241
msgid "One week"
msgstr "Eine Woche"
#: snikket_web/admin.py:158
#: snikket_web/admin.py:242
msgid "Four weeks"
msgstr "Vier Wochen"
#: snikket_web/admin.py:164 snikket_web/templates/admin_edit_invite.html:17
#: snikket_web/admin.py:248 snikket_web/templates/admin_edit_invite.html:17
msgid "Invitation type"
msgstr "Art der Einladung"
#: snikket_web/admin.py:166 snikket_web/templates/library.j2:116
#: snikket_web/admin.py:250 snikket_web/templates/library.j2:116
msgid "Individual"
msgstr "Einzelperson"
#: snikket_web/admin.py:167 snikket_web/templates/library.j2:114
#: snikket_web/admin.py:251 snikket_web/templates/library.j2:114
msgid "Group"
msgstr "Gruppe"
#: snikket_web/admin.py:173
#: snikket_web/admin.py:257
msgid "New invitation link"
msgstr "Neuer Einladungslink"
#: snikket_web/admin.py:235
#: snikket_web/admin.py:319
msgid "Revoke"
msgstr "Löschen"
#: snikket_web/admin.py:259
#: snikket_web/admin.py:343
msgid "Invitation created"
msgstr "Einladung angelegt"
#: snikket_web/admin.py:275
#: snikket_web/admin.py:359
msgid "No such invitation exists"
msgstr "Diese Einladung existiert nicht"
#: snikket_web/admin.py:290
#: snikket_web/admin.py:374
msgid "Invitation revoked"
msgstr "Einladung gelöscht"
#: snikket_web/admin.py:307 snikket_web/admin.py:355
#: snikket_web/admin.py:391 snikket_web/admin.py:439
msgid "Name"
msgstr "Name"
#: snikket_web/admin.py:312 snikket_web/templates/admin_circles.html:47
#: snikket_web/admin.py:396 snikket_web/templates/admin_circles.html:47
msgid "Create circle"
msgstr "Gemeinschaft gründen"
#: snikket_web/admin.py:342
#: snikket_web/admin.py:426
msgid "Circle created"
msgstr "Gemeinschaft gegründet"
#: snikket_web/admin.py:360
#: snikket_web/admin.py:444
msgid "Select user"
msgstr "Benutzer auswählen"
#: snikket_web/admin.py:365
#: snikket_web/admin.py:449
msgid "Update circle"
msgstr "Gemeinschaft ändern"
#: snikket_web/admin.py:369
#: snikket_web/admin.py:453
msgid "Delete circle permanently"
msgstr "Gemeinschaft endgültig löschen"
#: snikket_web/admin.py:375
#: snikket_web/admin.py:459
msgid "Add user"
msgstr "Benutzer hinzufügen"
#: snikket_web/admin.py:391
#: snikket_web/admin.py:475
msgid "No such circle exists"
msgstr "Diese Gemeinschaft existiert nicht"
#: snikket_web/admin.py:428
#: snikket_web/admin.py:512
msgid "Circle data updated"
msgstr "Gemeinschaftsdaten aktualisiert"
#: snikket_web/admin.py:434
#: snikket_web/admin.py:518
msgid "Circle deleted"
msgstr "Gemeinschaft gelöscht"
#: snikket_web/admin.py:445
#: snikket_web/admin.py:529
msgid "User added to circle"
msgstr "Benutzer zur Gemeinschaft hinzugefügt"
#: snikket_web/admin.py:454
#: snikket_web/admin.py:538
msgid "User removed from circle"
msgstr "Benutzer aus der Gemeinschaft entfernt"
#: snikket_web/infra.py:40
#: snikket_web/infra.py:41
msgid "Main"
msgstr "Kern"
#: snikket_web/invite.py:104
#: snikket_web/invite.py:106
msgid "Username"
msgstr "Benutzername"
#: snikket_web/invite.py:108 snikket_web/invite.py:175 snikket_web/main.py:42
#: snikket_web/invite.py:110 snikket_web/invite.py:177 snikket_web/main.py:41
msgid "Password"
msgstr "Passwort"
#: snikket_web/invite.py:112 snikket_web/invite.py:179
#: snikket_web/invite.py:114 snikket_web/invite.py:181
msgid "Confirm password"
msgstr "Passwort (Bestätigung)"
#: snikket_web/invite.py:116 snikket_web/invite.py:183
msgid "The passwords must match"
msgstr "Die Passwörter müssen übereinstimmen"
#: snikket_web/invite.py:118 snikket_web/invite.py:185
msgid "The passwords must match."
msgstr "Die Passwörter müssen übereinstimmen."
#: snikket_web/invite.py:121
#: snikket_web/invite.py:123
msgid "Create account"
msgstr "Konto anlegen"
#: snikket_web/invite.py:148
msgid "That username is already taken"
msgstr "Dieser Benutzername ist bereits belegt"
#: snikket_web/invite.py:150
msgid "That username is already taken."
msgstr "Dieser Benutzername ist bereits belegt."
#: snikket_web/invite.py:152 snikket_web/invite.py:216
msgid "Registration was declined for unknown reasons"
msgstr "Die Registrierung wurde aus unbekannten Gründen abgelehnt"
#: snikket_web/invite.py:154 snikket_web/invite.py:218
msgid "Registration was declined for unknown reasons."
msgstr "Die Registrierung wurde aus unbekannten Gründen abgelehnt."
#: snikket_web/invite.py:156
msgid "The username is not valid"
msgstr "Der Benutzername ist ungültig"
#: snikket_web/invite.py:158
msgid "The username is not valid."
msgstr "Der Benutzername ist ungültig."
#: snikket_web/invite.py:188 snikket_web/templates/user_home.html:32
#: snikket_web/invite.py:190 snikket_web/templates/user_home.html:32
#: snikket_web/templates/user_passwd.html:29
msgid "Change password"
msgstr "Passwort ändern"
#: snikket_web/main.py:37
#: snikket_web/main.py:36
msgid "Address"
msgstr "Adresse"
#: snikket_web/main.py:47
#: snikket_web/main.py:46
msgid "Sign in"
msgstr "Anmelden"
#: snikket_web/main.py:56
#: snikket_web/main.py:55
msgid "Invalid username or password."
msgstr "Benutzername oder Passwort falsch."
#: snikket_web/main.py:84
#: snikket_web/main.py:83
msgid "Login successful!"
msgstr "Anmeldung erfolgreich!"
#: snikket_web/user.py:28
#: snikket_web/user.py:27
msgid "Current password"
msgstr "Aktuelles Passwort"
#: snikket_web/user.py:33
#: snikket_web/user.py:32
msgid "New password"
msgstr "Neues Passwort"
#: snikket_web/user.py:38
#: snikket_web/user.py:37
msgid "Confirm new password"
msgstr "Neues Passwort (Bestätigung)"
#: snikket_web/user.py:42
msgid "The new passwords must match"
msgstr "Die neuen Passwörter müssen übereinstimmen"
#: snikket_web/user.py:41
msgid "The new passwords must match."
msgstr "Die neuen Passwörter müssen übereinstimmen."
#: snikket_web/user.py:49
#: snikket_web/user.py:48
msgid "Sign out"
msgstr "Abmelden"
#: snikket_web/user.py:54
#: snikket_web/user.py:53
msgid "Nobody"
msgstr "Niemand"
#: snikket_web/user.py:55
#: snikket_web/user.py:54
msgid "Friends only"
msgstr "Nur Freunde"
#: snikket_web/user.py:56
#: snikket_web/user.py:55
msgid "Everyone"
msgstr "Jeder"
#: snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:11 snikket_web/user.py:62
msgid "Display name"
msgstr "Anzeigename"
#: snikket_web/user.py:66
#: snikket_web/user.py:65
msgid "Avatar"
msgstr "Bild"
#: snikket_web/user.py:70
#: snikket_web/user.py:69
msgid "Profile visibility"
msgstr "Profilsichtbarkeit"
#: snikket_web/user.py:75
#: snikket_web/user.py:74
msgid "Update profile"
msgstr "Profil bearbeiten"
#: snikket_web/user.py:100
msgid "Incorrect password"
msgstr "Ungültiges Passwort"
#: snikket_web/user.py:99
msgid "Incorrect password."
msgstr "Ungültiges Passwort."
#: snikket_web/user.py:104
#: snikket_web/user.py:103
msgid "Password changed"
msgstr "Passwort geändert"
#: snikket_web/user.py:146
#: snikket_web/user.py:111
msgid ""
"The chosen avatar is too big. To be able to upload larger avatars, please "
"use the app."
msgstr ""
"Das gewählte Profilbild ist zu groß. Benutze die App um größere Bilder "
"hochladen zu können."
#: snikket_web/user.py:159
msgid "Profile updated"
msgstr "Profil gespeichert"
#: snikket_web/templates/unauth.html:18 snikket_web/user.py:167
msgid "Error"
msgstr "Fehler"
#: snikket_web/templates/_footer.html:4
#, python-format
msgid "A <a href=\"%(about_url)s\">Snikket</a> service"
@@ -398,7 +447,7 @@ msgstr "Mitglieder"
#: snikket_web/templates/admin_circles.html:15
#: snikket_web/templates/admin_invites.html:24
#: snikket_web/templates/admin_users.html:12
#: snikket_web/templates/admin_users.html:10
msgid "Actions"
msgstr "Aktionen"
@@ -473,12 +522,12 @@ msgid "Copy complete output"
msgstr "Komplette Ausgabe kopieren"
#: snikket_web/templates/admin_delete_user.html:4
#: snikket_web/templates/admin_users.html:22
#, python-format
msgid "Delete user %(user_name)s"
msgstr "Benutzer %(user_name)s löschen"
#: snikket_web/templates/admin_delete_user.html:6
#: snikket_web/templates/admin_edit_user.html:54
msgid "Delete user"
msgstr "Benutzer löschen"
@@ -486,11 +535,6 @@ msgstr "Benutzer löschen"
msgid "Are you sure you want to delete the following user?"
msgstr "Bist du sicher dass du den folgenden Benutzer löschen willst?"
#: snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_users.html:10
msgid "Login name"
msgstr "Anmeldename"
#: snikket_web/templates/admin_delete_user.html:15
msgid "Danger"
msgstr "Gefahr"
@@ -506,12 +550,10 @@ msgstr ""
"keinen Weg zurück!</strong>"
#: snikket_web/templates/admin_delete_user.html:19
#: snikket_web/templates/admin_edit_circle.html:44
#: snikket_web/templates/admin_edit_invite.html:49
#: snikket_web/templates/admin_reset_user_password.html:25
#: snikket_web/templates/user_logout.html:10
#: snikket_web/templates/user_passwd.html:27
#: snikket_web/templates/user_profile.html:28
#: snikket_web/templates/user_profile.html:32
msgid "Back"
msgstr "Zurück"
@@ -545,6 +587,10 @@ msgstr "Gemeinschaftsinformationen"
msgid "This circle has no group chat associated."
msgstr "Diese Gemeinschaft hat keinen zugehörigen Gruppenchat."
#: snikket_web/templates/admin_edit_circle.html:44
msgid "Return to circle list"
msgstr "Zurück zur Gemeinschaftsliste"
#: snikket_web/templates/admin_edit_circle.html:48
msgid "Delete circle"
msgstr "Gemeinschaft löschen"
@@ -634,6 +680,99 @@ msgstr "Der Benutzer wird als Kontakt von %(peer_jid)s hinzugefügt."
msgid "Created"
msgstr "Erzeugt"
#: snikket_web/templates/admin_edit_invite.html:48
msgid "Return to invitation list"
msgstr "Zurück zur Einladungsliste"
#: snikket_web/templates/admin_edit_user.html:5
msgid ""
"Limited users can interact with users on the same Snikket service and be "
"members of circles."
msgstr ""
"Eingeschränkte Benutzer können mit anderen Benutzern auf dem selben Snikket-"
"Server interagieren und Mitglieder in Gemeinschaften sein."
#: snikket_web/templates/admin_edit_user.html:7
msgid ""
"Like limited users and can also interact with users on other Snikket "
"services."
msgstr ""
"Wie eingeschränkte Benutzer, zusätzlich können normale Benutzer auch mit "
"Benutzern auf anderen Snikket-Servern interagieren."
#: snikket_web/templates/admin_edit_user.html:9
msgid "Like normal users and can access the admin panel in the web portal."
msgstr ""
"Wie normale Benutzer, zusätzlich können Administratoren auf den Adminbereich "
"zugreifen."
#: snikket_web/templates/admin_edit_user.html:20
#: snikket_web/templates/admin_users.html:28
#, python-format
msgid "Edit user %(user_name)s"
msgstr "Benutzer %(user_name)s bearbeiten"
#: snikket_web/templates/admin_edit_user.html:23
msgid "Edit user"
msgstr "Benutzer bearbeiten"
#: snikket_web/templates/admin_edit_user.html:27
msgid "The login name cannot be changed."
msgstr "Der Anmeldename kann nicht geändert werden."
#: snikket_web/templates/admin_edit_user.html:34
msgid ""
"The access level of a user determines what interactions are allowed for them "
"on your Snikket service."
msgstr ""
"Die Berechtigungen von Benutzern bestimmen, welche Interaktionen ihnen auf "
"deinem Snikket-Server erlaubt sind."
#: snikket_web/templates/admin_edit_user.html:41
#, python-format
msgid "<strong>%(title)s%(icon)s</strong><p>%(description)s</p>"
msgstr "<strong>%(title)s%(icon)s</strong><p>%(description)s</p>"
#: snikket_web/templates/admin_edit_user.html:51
msgid "Return to user list"
msgstr "Zurück zur Benutzerliste"
#: snikket_web/templates/admin_edit_user.html:59
msgid "Further actions"
msgstr "Weitere Aktionen"
#: snikket_web/templates/admin_edit_user.html:61
msgid "Reset password"
msgstr "Passwort zurücksetzen"
#: snikket_web/templates/admin_edit_user.html:64
msgid ""
"If the user has lost their password, you can use the button below to create "
"a special link which allows to change the password of the account, once."
msgstr ""
"Wenn ein Benutzer das Passwort verloren oder vergessen hat, kannst du den "
"folgenden Button verwenden um einen Link zu erzeugen. Dieser Link erlaubt es "
"einmalig, das Passwort des Kontos zu ändern."
#: snikket_web/templates/admin_edit_user.html:69
msgid "Debug information"
msgstr "Informationen zur Fehlerbehebung"
#: snikket_web/templates/admin_edit_user.html:71
msgid ""
"In some cases, extended information about the user account and the connected "
"devices is necessary to troubleshoot issues. The button below reveals this "
"(sensitive) information."
msgstr ""
"In seltenen Fällen kann es vorkommen, dass weiterführende Informationen über "
"das Benutzerkonto sowie die verbundenen Geräte erforderlich sind um ein "
"Problem zu beheben. Der folgende Button zeigt diese (teilweise vertraulichen)"
" Informationen an."
#: snikket_web/templates/admin_edit_user.html:75
msgid "Show debug information"
msgstr "Debugging-Informationen anzeigen"
#: snikket_web/templates/admin_home.html:4
msgid "Welcome to the admin panel!"
msgstr "Willkommen im Adminbereich!"
@@ -731,15 +870,21 @@ msgstr ""
msgid "Destroy link"
msgstr "Link zerstören"
#: snikket_web/templates/admin_users.html:25
#, python-format
msgid "Show debug information for %(user_name)s"
msgstr "Debugging-Informationen für %(user_name)s anzeigen"
#: snikket_web/templates/admin_users.html:19
msgid "The user is an administrator."
msgstr "Der Benutzer ist ein Administrator."
#: snikket_web/templates/admin_users.html:28
#, python-format
msgid "Create password reset link for %(user_name)s"
msgstr "Link zum Zurücksetzen des Passwortes von %(user_name)s erzeugen"
#: snikket_web/templates/admin_users.html:19
msgid " (Administrator)"
msgstr " (Administrator)"
#: snikket_web/templates/admin_users.html:22
msgid "The user is restricted."
msgstr "Dieser Benutzer ist eingeschränkt."
#: snikket_web/templates/admin_users.html:22
msgid " (Restricted)"
msgstr " (Eingeschränkt)"
#: snikket_web/templates/app.html:4
msgid "Snikket Web Portal"
@@ -830,18 +975,20 @@ msgstr ""
"innerhalb der App zu machen. Das geht, indem du den folgenden Knopf drückst:"
#: snikket_web/templates/invite_register.html:14
#: snikket_web/templates/invite_view.html:38
#: snikket_web/templates/invite_view.html:39
msgid "App already installed?"
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:40
#: snikket_web/templates/invite_view.html:41
#: snikket_web/templates/invite_view.html:106
#: snikket_web/templates/invite_view.html:134
msgid "Open the app"
msgstr "App öffnen"
#: snikket_web/templates/invite_register.html:18
#: snikket_web/templates/invite_view.html:42
#: snikket_web/templates/invite_view.html:43
msgid "This button works only if you have the app installed already!"
msgstr "Dieser Knopf funktioniert nur, wenn du die App schon installiert hast!"
@@ -939,7 +1086,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:76
#: 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 "
@@ -955,7 +1102,7 @@ msgstr ""
"Du wirst dann aufgefordert, ein neues Passwort für deinen Account einzugeben."
#: snikket_web/templates/invite_reset_view.html:29
#: snikket_web/templates/invite_view.html:44
#: snikket_web/templates/invite_view.html:45
msgid "Alternatives"
msgstr "Alternativen"
@@ -1044,14 +1191,19 @@ msgid "Get it on Google Play"
msgstr "Von Google Play installieren"
#: snikket_web/templates/invite_view.html:30
#: snikket_web/templates/invite_view.html:102
msgid "Download on the App Store"
msgstr "Laden im App Store"
#: snikket_web/templates/invite_view.html:34
#: snikket_web/templates/invite_view.html:32
msgid "Get it on F-Droid"
msgstr "Hole die App von F-Droid"
#: snikket_web/templates/invite_view.html:35
msgid "Send to mobile device"
msgstr "An mobiles Gerät übertragen"
#: snikket_web/templates/invite_view.html:37
#: snikket_web/templates/invite_view.html:38
msgid ""
"After installation the app should automatically open and prompt you to "
"create an account. If not, simply click the button below."
@@ -1060,7 +1212,7 @@ msgstr ""
"ein Benutzerkonto anzulegen. Falls nicht, tippe einfach auf die folgende "
"Schaltfläche."
#: snikket_web/templates/invite_view.html:45
#: snikket_web/templates/invite_view.html:46
#, python-format
msgid ""
"You can connect to Snikket using any XMPP-compatible software. If the button "
@@ -1072,16 +1224,20 @@ msgstr ""
"dass du <a href=\"%(register_url)s\">manuell ein Benutzerkonto anlegen</a> "
"musst."
#: snikket_web/templates/invite_view.html:51
#: snikket_web/templates/invite_view.html:52
msgid "Scan invite code"
msgstr "Einladungscode scannen"
#: snikket_web/templates/invite_view.html:54
#: snikket_web/templates/invite_view.html:83
#: snikket_web/templates/invite_view.html:55
#: 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"
#: snikket_web/templates/invite_view.html:57
#: snikket_web/templates/invite_view.html:58
msgid ""
"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."
@@ -1090,22 +1246,22 @@ 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:62
#: 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:64
#: snikket_web/templates/invite_view.html:65
msgid "Using the Snikket app"
msgstr "Mit der Snikket-App"
#: snikket_web/templates/invite_view.html:69
#: 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:75
#: 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."
@@ -1113,6 +1269,51 @@ 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: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 ""
"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: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: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 ""
"Nachdem die Installation abgeschlossen ist kannst du zu dieser Seite "
"zurückkehren und unten auf \"App öffnen\" tippen um die Einrichtung "
"abzuschließen:"
#: 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: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 ""
"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:129
msgid "First install Snikket from F-Droid using the button below:"
msgstr "Installiere Snikket zunächst aus F-Droid mit dem folgenden Button:"
#: snikket_web/templates/library.j2:18
msgid "Copy link"
msgstr "Link kopieren"
@@ -1146,15 +1347,11 @@ msgid "Enter your Snikket address and password to manage your account."
msgstr ""
"Gib deine Snikket-Adresse und -Passwort ein um dein Konto zu verwalten."
#: snikket_web/templates/login.html:18
msgid "Login failed"
msgstr "Anmeldung fehlgeschlagen"
#: snikket_web/templates/login.html:23
#: snikket_web/templates/login.html:19
msgid "Incorrect address"
msgstr "Ungültige Adresse"
#: snikket_web/templates/login.html:24
#: snikket_web/templates/login.html:20
#, python-format
msgid ""
"This Snikket service only hosts addresses ending in <em>@%(snikket_domain)s</"
@@ -1167,10 +1364,6 @@ msgstr ""
msgid "Operation successful"
msgstr "Aktion erfolgreich"
#: snikket_web/templates/unauth.html:18
msgid "Error"
msgstr "Fehler"
#: snikket_web/templates/user_home.html:9
msgid "Welcome!"
msgstr "Willkommen!"
@@ -1247,11 +1440,11 @@ msgstr "Dein Profil bearbeiten"
msgid "Profile"
msgstr "Profil"
#: snikket_web/templates/user_profile.html:19
#: snikket_web/templates/user_profile.html:23
msgid "Visibility"
msgstr "Sichtbarkeit"
#: snikket_web/templates/user_profile.html:20
#: snikket_web/templates/user_profile.html:24
msgid ""
"This section allows you to control who can see your profile information, "
"like avatar and nickname."
@@ -1259,27 +1452,15 @@ msgstr ""
"Hier kannst du einstellen, wer deine Profilinformationen, wie Bild oder "
"Anzeigename einsehen kann."
#~ msgid "Create password reset link for %(user_name)s"
#~ msgstr "Link zum Zurücksetzen des Passwortes von %(user_name)s erzeugen"
#~ msgid "Login failed"
#~ msgstr "Anmeldung fehlgeschlagen"
#~ msgid "Not on mobile?"
#~ msgstr "Nicht am Smartphone?"
#~ msgid "Edit user %(user_name)s"
#~ msgstr "Benutzer %(user_name)s bearbeiten"
#~ msgid "User information"
#~ msgstr "Benutzerinformationen"
#~ msgid ""
#~ "If the user has forgotten their password, use the below button to create "
#~ "a password reset link. The password reset link can be used once to change "
#~ "the password of the account. Transmit the link to the user via a secure "
#~ "channel."
#~ msgstr ""
#~ "Wenn ein Benutzer das Passwort vergessen hat, kannst du den folgenden "
#~ "Button benutzen um einen Link zum Zurücksetzen des Passworts zu erzeugen. "
#~ "Dieser Link kann dann ein einziges Mal verwendet werden um das Passwort "
#~ "des Kontos zu ändern. Lasse den Link dem Benutzer auf einem sicheren "
#~ "Übertragungsweg zukommen."
#~ msgid "No users left"
#~ msgstr "Keine Benutzer übrig"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2021-02-23 07:55+0100\n"
"POT-Creation-Date: 2021-03-25 17:32+0100\n"
"PO-Revision-Date: 2021-02-02 21:01+0000\n"
"Last-Translator: Jonas Schäfer <jonas@zombofant.net>\n"
"Language-Team: English <https://i18n.sotecware.net/projects/snikket/web-"
@@ -20,280 +20,349 @@ msgstr ""
"X-Generator: Weblate 4.4.2\n"
"Generated-By: Babel 2.9.0\n"
#: snikket_web/admin.py:60
msgid "Delete user permanently"
msgstr "Delete user permanently"
#: snikket_web/admin.py:59
msgid "Limited"
msgstr ""
#: snikket_web/admin.py:73
#: snikket_web/admin.py:64 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_users.html:8
msgid "Login name"
msgstr "Login name"
#: snikket_web/admin.py:68 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:9 snikket_web/user.py:61
msgid "Display name"
msgstr "Display name"
#: snikket_web/admin.py:72 snikket_web/templates/admin_edit_user.html:33
msgid "Access Level"
msgstr ""
#: snikket_web/admin.py:77
msgid "Normal user"
msgstr ""
#: snikket_web/admin.py:78
#, fuzzy
#| msgid "deleted"
msgid "User deleted"
msgstr "deleted"
#| msgid "Admin area"
msgid "Administrator"
msgstr "Admin area"
#: snikket_web/admin.py:116
#: snikket_web/admin.py:83
#, fuzzy
#| msgid "Update circle"
msgid "Update user"
msgstr "Update circle"
#: snikket_web/admin.py:87
#, 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:105
#, 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:122
#: snikket_web/admin.py:120
#, fuzzy
#| msgid "User information"
msgid "User information updated."
msgstr "User information"
#: snikket_web/admin.py:142
msgid "Delete user permanently"
msgstr "Delete user permanently"
#: snikket_web/admin.py:155
#, fuzzy
#| msgid "deleted"
msgid "User deleted"
msgstr "deleted"
#: snikket_web/admin.py:193
#, 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:205
#, 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:141
#: snikket_web/admin.py:225
msgid "Invite to circle"
msgstr "Invite to circle"
#: snikket_web/admin.py:147
#: snikket_web/admin.py:231
msgid "At least one circle must be selected"
msgstr "At least one circle must be selected"
#: snikket_web/admin.py:152
#: snikket_web/admin.py:236
msgid "Valid for"
msgstr "Valid for"
#: snikket_web/admin.py:154
#: snikket_web/admin.py:238
msgid "One hour"
msgstr "One hour"
#: snikket_web/admin.py:155
#: snikket_web/admin.py:239
msgid "Twelve hours"
msgstr "Twelve hours"
#: snikket_web/admin.py:156
#: snikket_web/admin.py:240
msgid "One day"
msgstr "One day"
#: snikket_web/admin.py:157
#: snikket_web/admin.py:241
msgid "One week"
msgstr "One week"
#: snikket_web/admin.py:158
#: snikket_web/admin.py:242
msgid "Four weeks"
msgstr "Four weeks"
#: snikket_web/admin.py:164 snikket_web/templates/admin_edit_invite.html:17
#: snikket_web/admin.py:248 snikket_web/templates/admin_edit_invite.html:17
msgid "Invitation type"
msgstr "Invitation type"
#: snikket_web/admin.py:166 snikket_web/templates/library.j2:116
#: snikket_web/admin.py:250 snikket_web/templates/library.j2:116
msgid "Individual"
msgstr "Individual"
#: snikket_web/admin.py:167 snikket_web/templates/library.j2:114
#: snikket_web/admin.py:251 snikket_web/templates/library.j2:114
msgid "Group"
msgstr "Group"
#: snikket_web/admin.py:173
#: snikket_web/admin.py:257
msgid "New invitation link"
msgstr "New invitation link"
#: snikket_web/admin.py:235
#: snikket_web/admin.py:319
msgid "Revoke"
msgstr "Revoke"
#: snikket_web/admin.py:259
#: snikket_web/admin.py:343
#, fuzzy
#| msgid "Invitation type"
msgid "Invitation created"
msgstr "Invitation type"
#: snikket_web/admin.py:275
#: snikket_web/admin.py:359
#, fuzzy
#| msgid "New invitation link"
msgid "No such invitation exists"
msgstr "New invitation link"
#: snikket_web/admin.py:290
#: snikket_web/admin.py:374
#, fuzzy
#| msgid "Invitation type"
msgid "Invitation revoked"
msgstr "Invitation type"
#: snikket_web/admin.py:307 snikket_web/admin.py:355
#: snikket_web/admin.py:391 snikket_web/admin.py:439
msgid "Name"
msgstr "Name"
#: snikket_web/admin.py:312 snikket_web/templates/admin_circles.html:47
#: snikket_web/admin.py:396 snikket_web/templates/admin_circles.html:47
msgid "Create circle"
msgstr "Create circle"
#: snikket_web/admin.py:342
#: snikket_web/admin.py:426
#, fuzzy
#| msgid "Circle name"
msgid "Circle created"
msgstr "Circle name"
#: snikket_web/admin.py:360
#: snikket_web/admin.py:444
msgid "Select user"
msgstr "Select user"
#: snikket_web/admin.py:365
#: snikket_web/admin.py:449
msgid "Update circle"
msgstr "Update circle"
#: snikket_web/admin.py:369
#: snikket_web/admin.py:453
msgid "Delete circle permanently"
msgstr "Delete circle permanently"
#: snikket_web/admin.py:375
#: snikket_web/admin.py:459
msgid "Add user"
msgstr "Add user"
#: snikket_web/admin.py:391
#: snikket_web/admin.py:475
#, fuzzy
#| msgid "No circles"
msgid "No such circle exists"
msgstr "No circles"
#: snikket_web/admin.py:428
#: snikket_web/admin.py:512
#, fuzzy
#| msgid "Circle name"
msgid "Circle data updated"
msgstr "Circle name"
#: snikket_web/admin.py:434
#: snikket_web/admin.py:518
#, fuzzy
#| msgid "deleted"
msgid "Circle deleted"
msgstr "deleted"
#: snikket_web/admin.py:445
#: snikket_web/admin.py:529
#, fuzzy
#| msgid "Invite to circle"
msgid "User added to circle"
msgstr "Invite to circle"
#: snikket_web/admin.py:454
#: snikket_web/admin.py:538
#, fuzzy
#| msgid "Remove user %(username)s from circle"
msgid "User removed from circle"
msgstr "Remove user %(username)s from circle"
#: snikket_web/infra.py:40
#: snikket_web/infra.py:41
msgid "Main"
msgstr "Main"
#: snikket_web/invite.py:104
#: snikket_web/invite.py:106
msgid "Username"
msgstr "Username"
#: snikket_web/invite.py:108 snikket_web/invite.py:175 snikket_web/main.py:42
#: snikket_web/invite.py:110 snikket_web/invite.py:177 snikket_web/main.py:41
msgid "Password"
msgstr "Password"
#: snikket_web/invite.py:112 snikket_web/invite.py:179
#: snikket_web/invite.py:114 snikket_web/invite.py:181
msgid "Confirm password"
msgstr "Confirm password"
#: snikket_web/invite.py:116 snikket_web/invite.py:183
msgid "The passwords must match"
#: snikket_web/invite.py:118 snikket_web/invite.py:185
#, fuzzy
#| msgid "The passwords must match"
msgid "The passwords must match."
msgstr "The passwords must match"
#: snikket_web/invite.py:121
#: snikket_web/invite.py:123
msgid "Create account"
msgstr "Create account"
#: snikket_web/invite.py:148
msgid "That username is already taken"
#: snikket_web/invite.py:150
#, fuzzy
#| msgid "That username is already taken"
msgid "That username is already taken."
msgstr "That username is already taken"
#: snikket_web/invite.py:152 snikket_web/invite.py:216
msgid "Registration was declined for unknown reasons"
#: snikket_web/invite.py:154 snikket_web/invite.py:218
#, 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:156
msgid "The username is not valid"
#: snikket_web/invite.py:158
#, fuzzy
#| msgid "The username is not valid"
msgid "The username is not valid."
msgstr "The username is not valid"
#: snikket_web/invite.py:188 snikket_web/templates/user_home.html:32
#: snikket_web/invite.py:190 snikket_web/templates/user_home.html:32
#: snikket_web/templates/user_passwd.html:29
msgid "Change password"
msgstr "Change password"
#: snikket_web/main.py:37
#: snikket_web/main.py:36
msgid "Address"
msgstr "Address"
#: snikket_web/main.py:47
#: snikket_web/main.py:46
msgid "Sign in"
msgstr "Sign in"
#: snikket_web/main.py:56
#: snikket_web/main.py:55
msgid "Invalid username or password."
msgstr "Invalid username or password."
#: snikket_web/main.py:84
#: snikket_web/main.py:83
msgid "Login successful!"
msgstr ""
#: snikket_web/user.py:28
#: snikket_web/user.py:27
msgid "Current password"
msgstr "Current password"
#: snikket_web/user.py:33
#: snikket_web/user.py:32
msgid "New password"
msgstr "New password"
#: snikket_web/user.py:38
#: snikket_web/user.py:37
msgid "Confirm new password"
msgstr "Confirm new password"
#: snikket_web/user.py:42
msgid "The new passwords must match"
#: snikket_web/user.py:41
#, fuzzy
#| msgid "The new passwords must match"
msgid "The new passwords must match."
msgstr "The new passwords must match"
#: snikket_web/user.py:49
#: snikket_web/user.py:48
msgid "Sign out"
msgstr "Sign out"
#: snikket_web/user.py:54
#: snikket_web/user.py:53
msgid "Nobody"
msgstr "Nobody"
#: snikket_web/user.py:55
#: snikket_web/user.py:54
msgid "Friends only"
msgstr "Friends only"
#: snikket_web/user.py:56
#: snikket_web/user.py:55
msgid "Everyone"
msgstr "Everyone"
#: snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:11 snikket_web/user.py:62
msgid "Display name"
msgstr "Display name"
#: snikket_web/user.py:66
#: snikket_web/user.py:65
msgid "Avatar"
msgstr "Avatar"
#: snikket_web/user.py:70
#: snikket_web/user.py:69
msgid "Profile visibility"
msgstr "Profile visibility"
#: snikket_web/user.py:75
#: snikket_web/user.py:74
msgid "Update profile"
msgstr "Update profile"
#: snikket_web/user.py:100
msgid "Incorrect password"
#: snikket_web/user.py:99
#, fuzzy
#| msgid "Incorrect password"
msgid "Incorrect password."
msgstr "Incorrect password"
#: snikket_web/user.py:104
#: snikket_web/user.py:103
#, fuzzy
#| msgid "Password change failed"
msgid "Password changed"
msgstr "Password change failed"
#: snikket_web/user.py:146
#: snikket_web/user.py:111
msgid ""
"The chosen avatar is too big. To be able to upload larger avatars, please "
"use the app."
msgstr ""
#: snikket_web/user.py:159
#, fuzzy
#| msgid "Profile"
msgid "Profile updated"
msgstr "Profile"
#: snikket_web/templates/unauth.html:18 snikket_web/user.py:167
msgid "Error"
msgstr ""
#: snikket_web/templates/_footer.html:4
#, python-format
msgid "A <a href=\"%(about_url)s\">Snikket</a> service"
@@ -421,7 +490,7 @@ msgstr "Members"
#: snikket_web/templates/admin_circles.html:15
#: snikket_web/templates/admin_invites.html:24
#: snikket_web/templates/admin_users.html:12
#: snikket_web/templates/admin_users.html:10
msgid "Actions"
msgstr "Actions"
@@ -496,12 +565,12 @@ msgid "Copy complete output"
msgstr "Copy complete output"
#: snikket_web/templates/admin_delete_user.html:4
#: snikket_web/templates/admin_users.html:22
#, python-format
msgid "Delete user %(user_name)s"
msgstr "Delete user %(user_name)s"
#: snikket_web/templates/admin_delete_user.html:6
#: snikket_web/templates/admin_edit_user.html:54
msgid "Delete user"
msgstr "Delete user"
@@ -509,11 +578,6 @@ msgstr "Delete user"
msgid "Are you sure you want to delete the following user?"
msgstr "Are you sure you want to delete the following user?"
#: snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_users.html:10
msgid "Login name"
msgstr "Login name"
#: snikket_web/templates/admin_delete_user.html:15
msgid "Danger"
msgstr "Danger"
@@ -529,12 +593,10 @@ msgstr ""
"strong>"
#: snikket_web/templates/admin_delete_user.html:19
#: snikket_web/templates/admin_edit_circle.html:44
#: snikket_web/templates/admin_edit_invite.html:49
#: snikket_web/templates/admin_reset_user_password.html:25
#: snikket_web/templates/user_logout.html:10
#: snikket_web/templates/user_passwd.html:27
#: snikket_web/templates/user_profile.html:28
#: snikket_web/templates/user_profile.html:32
msgid "Back"
msgstr "Back"
@@ -566,6 +628,10 @@ msgstr "Circle information"
msgid "This circle has no group chat associated."
msgstr "This circle has no group chat associated."
#: snikket_web/templates/admin_edit_circle.html:44
msgid "Return to circle list"
msgstr ""
#: snikket_web/templates/admin_edit_circle.html:48
msgid "Delete circle"
msgstr "Delete circle"
@@ -650,6 +716,105 @@ msgstr "The user will get added as contact of %(peer_jid)s."
msgid "Created"
msgstr "Created"
#: snikket_web/templates/admin_edit_invite.html:48
#, fuzzy
#| msgid "New invitation link"
msgid "Return to invitation list"
msgstr "New invitation link"
#: snikket_web/templates/admin_edit_user.html:5
msgid ""
"Limited users can interact with users on the same Snikket service and be "
"members of circles."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:7
msgid ""
"Like limited users and can also interact with users on other Snikket "
"services."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:9
msgid "Like normal users and can access the admin panel in the web portal."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:20
#: snikket_web/templates/admin_users.html:28
#, python-format
msgid "Edit user %(user_name)s"
msgstr "Edit user %(user_name)s"
#: snikket_web/templates/admin_edit_user.html:23
#, fuzzy
#| msgid "Add user"
msgid "Edit user"
msgstr "Add user"
#: snikket_web/templates/admin_edit_user.html:27
msgid "The login name cannot be changed."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:34
msgid ""
"The access level of a user determines what interactions are allowed for them "
"on your Snikket service."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:41
#, python-format
msgid "<strong>%(title)s%(icon)s</strong><p>%(description)s</p>"
msgstr ""
#: snikket_web/templates/admin_edit_user.html:51
#, fuzzy
#| msgid "New invitation link"
msgid "Return to user list"
msgstr "New invitation link"
#: snikket_web/templates/admin_edit_user.html:59
msgid "Further actions"
msgstr ""
#: snikket_web/templates/admin_edit_user.html:61
#, fuzzy
#| msgid "Reset your password"
msgid "Reset password"
msgstr "Reset your password"
#: snikket_web/templates/admin_edit_user.html:64
#, fuzzy
#| msgid ""
#| "If the user has forgotten their password, use the below button to create "
#| "a password reset link. The password reset link can be used once to change "
#| "the password of the account. Transmit the link to the user via a secure "
#| "channel."
msgid ""
"If the user has lost their password, you can use the button below to create "
"a special link which allows to change the password of the account, once."
msgstr ""
"If the user has forgotten their password, use the below button to create a "
"password reset link. The password reset link can be used once to change the "
"password of the account. Transmit the link to the user via a secure channel."
#: snikket_web/templates/admin_edit_user.html:69
#, fuzzy
#| msgid "User information"
msgid "Debug information"
msgstr "User information"
#: snikket_web/templates/admin_edit_user.html:71
msgid ""
"In some cases, extended information about the user account and the connected "
"devices is necessary to troubleshoot issues. The button below reveals this "
"(sensitive) information."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:75
#, fuzzy
#| msgid "Show debug information for %(user_name)s"
msgid "Show debug information"
msgstr "Show debug information for %(user_name)s"
#: snikket_web/templates/admin_home.html:4
msgid "Welcome to the admin panel!"
msgstr "Welcome to the admin panel!"
@@ -746,15 +911,25 @@ msgstr ""
msgid "Destroy link"
msgstr "Destroy link"
#: snikket_web/templates/admin_users.html:25
#, python-format
msgid "Show debug information for %(user_name)s"
msgstr "Show debug information for %(user_name)s"
#: snikket_web/templates/admin_users.html:19
#, fuzzy
#| msgid "The username is not valid"
msgid "The user is an administrator."
msgstr "The username is not valid"
#: snikket_web/templates/admin_users.html:28
#, python-format
msgid "Create password reset link for %(user_name)s"
msgstr "Create password reset link for %(user_name)s"
#: snikket_web/templates/admin_users.html:19
msgid " (Administrator)"
msgstr ""
#: snikket_web/templates/admin_users.html:22
#, fuzzy
#| msgid "The username is not valid"
msgid "The user is restricted."
msgstr "The username is not valid"
#: snikket_web/templates/admin_users.html:22
msgid " (Restricted)"
msgstr ""
#: snikket_web/templates/app.html:4
msgid "Snikket Web Portal"
@@ -841,18 +1016,20 @@ msgstr ""
"inside the app by clicking on the button below:"
#: snikket_web/templates/invite_register.html:14
#: snikket_web/templates/invite_view.html:38
#: snikket_web/templates/invite_view.html:39
msgid "App already installed?"
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:40
#: snikket_web/templates/invite_view.html:41
#: snikket_web/templates/invite_view.html:106
#: snikket_web/templates/invite_view.html:134
msgid "Open the app"
msgstr "Open the app"
#: snikket_web/templates/invite_register.html:18
#: snikket_web/templates/invite_view.html:42
#: snikket_web/templates/invite_view.html:43
msgid "This button works only if you have the app installed already!"
msgstr "This button works only if you have the app installed already!"
@@ -946,7 +1123,7 @@ msgstr ""
"Scan button at the top."
#: snikket_web/templates/invite_reset_view.html:26
#: snikket_web/templates/invite_view.html:76
#: 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 "
@@ -961,7 +1138,7 @@ msgid "You will then be prompted to enter a new password for your account."
msgstr "You will then be prompted to enter a new password for your account."
#: snikket_web/templates/invite_reset_view.html:29
#: snikket_web/templates/invite_view.html:44
#: snikket_web/templates/invite_view.html:45
msgid "Alternatives"
msgstr "Alternatives"
@@ -1048,14 +1225,19 @@ 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:102
msgid "Download on the App Store"
msgstr "Download on the App Store"
#: snikket_web/templates/invite_view.html:34
#: snikket_web/templates/invite_view.html:32
msgid "Get it on F-Droid"
msgstr ""
#: snikket_web/templates/invite_view.html:35
msgid "Send to mobile device"
msgstr ""
#: snikket_web/templates/invite_view.html:37
#: snikket_web/templates/invite_view.html:38
msgid ""
"After installation the app should automatically open and prompt you to "
"create an account. If not, simply click the button below."
@@ -1063,7 +1245,7 @@ msgstr ""
"After installation the app should automatically open and prompt you to "
"create an account. If not, simply click the button below."
#: snikket_web/templates/invite_view.html:45
#: snikket_web/templates/invite_view.html:46
#, python-format
msgid ""
"You can connect to Snikket using any XMPP-compatible software. If the button "
@@ -1074,16 +1256,20 @@ msgstr ""
"above does not work with your app, you may need to <a href=\"%(register_url)s"
"\">register an account manually</a>."
#: snikket_web/templates/invite_view.html:51
#: snikket_web/templates/invite_view.html:52
msgid "Scan invite code"
msgstr "Scan invite code"
#: snikket_web/templates/invite_view.html:54
#: snikket_web/templates/invite_view.html:83
#: snikket_web/templates/invite_view.html:55
#: 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"
#: snikket_web/templates/invite_view.html:57
#: snikket_web/templates/invite_view.html:58
msgid ""
"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."
@@ -1091,21 +1277,21 @@ 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:62
#: 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:64
#: snikket_web/templates/invite_view.html:65
msgid "Using the Snikket app"
msgstr "Using the Snikket app"
#: snikket_web/templates/invite_view.html:69
#: 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:75
#: 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."
@@ -1113,6 +1299,42 @@ 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: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:101
msgid "First download Snikket from the App Store using the button below:"
msgstr ""
#: 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:121
#: snikket_web/templates/invite_view.html:130
msgid "Install via F-Droid"
msgstr ""
#: 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:129
msgid "First install Snikket from F-Droid using the button below:"
msgstr ""
#: snikket_web/templates/library.j2:18
msgid "Copy link"
msgstr "Copy link"
@@ -1141,17 +1363,13 @@ msgstr "Snikket Login"
msgid "Enter your Snikket address and password to manage your account."
msgstr "Enter your Snikket address and password to manage your account."
#: snikket_web/templates/login.html:18
msgid "Login failed"
msgstr "Login failed"
#: snikket_web/templates/login.html:23
#: snikket_web/templates/login.html:19
#, fuzzy
#| msgid "Incorrect password"
msgid "Incorrect address"
msgstr "Incorrect password"
#: snikket_web/templates/login.html:24
#: snikket_web/templates/login.html:20
#, python-format
msgid ""
"This Snikket service only hosts addresses ending in <em>@%(snikket_domain)s</"
@@ -1162,10 +1380,6 @@ msgstr ""
msgid "Operation successful"
msgstr ""
#: snikket_web/templates/unauth.html:18
msgid "Error"
msgstr ""
#: snikket_web/templates/user_home.html:9
msgid "Welcome!"
msgstr "Welcome!"
@@ -1241,11 +1455,11 @@ msgstr "Update your profile"
msgid "Profile"
msgstr "Profile"
#: snikket_web/templates/user_profile.html:19
#: snikket_web/templates/user_profile.html:23
msgid "Visibility"
msgstr "Visibility"
#: snikket_web/templates/user_profile.html:20
#: snikket_web/templates/user_profile.html:24
msgid ""
"This section allows you to control who can see your profile information, "
"like avatar and nickname."
@@ -1253,26 +1467,15 @@ msgstr ""
"This section allows you to control who can see your profile information, "
"like avatar and nickname."
#~ msgid "Create password reset link for %(user_name)s"
#~ msgstr "Create password reset link for %(user_name)s"
#~ msgid "Login failed"
#~ msgstr "Login failed"
#~ msgid "Not on mobile?"
#~ msgstr "Not on mobile?"
#~ msgid "Edit user %(user_name)s"
#~ msgstr "Edit user %(user_name)s"
#~ msgid "User information"
#~ msgstr "User information"
#~ msgid ""
#~ "If the user has forgotten their password, use the below button to create "
#~ "a password reset link. The password reset link can be used once to change "
#~ "the password of the account. Transmit the link to the user via a secure "
#~ "channel."
#~ msgstr ""
#~ "If the user has forgotten their password, use the below button to create "
#~ "a password reset link. The password reset link can be used once to change "
#~ "the password of the account. Transmit the link to the user via a secure "
#~ "channel."
#~ msgid "No users left"
#~ msgstr "No users left"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2021-02-23 07:55+0100\n"
"POT-Creation-Date: 2021-03-25 17:32+0100\n"
"PO-Revision-Date: 2021-02-02 21:01+0000\n"
"Last-Translator: riccio <unriccio@email.it>\n"
"Language-Team: English (United Kingdom) <https://i18n.sotecware.net/projects/"
@@ -20,288 +20,351 @@ msgstr ""
"X-Generator: Weblate 4.4.2\n"
"Generated-By: Babel 2.9.0\n"
#: snikket_web/admin.py:60
msgid "Delete user permanently"
msgstr "Delete user permanently"
#: snikket_web/admin.py:59
msgid "Limited"
msgstr ""
#: snikket_web/admin.py:73
#: snikket_web/admin.py:64 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_users.html:8
msgid "Login name"
msgstr "Login name"
#: snikket_web/admin.py:68 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:9 snikket_web/user.py:61
msgid "Display name"
msgstr "Display name"
#: snikket_web/admin.py:72 snikket_web/templates/admin_edit_user.html:33
msgid "Access Level"
msgstr ""
#: snikket_web/admin.py:77
msgid "Normal user"
msgstr ""
#: snikket_web/admin.py:78
#, fuzzy
#| msgid "deleted"
msgid "User deleted"
msgstr "deleted"
#| msgid "Admin dashboard"
msgid "Administrator"
msgstr "Admin dashboard"
#: snikket_web/admin.py:116
#: snikket_web/admin.py:83
#, fuzzy
#| msgid "Create circle"
msgid "Update user"
msgstr "Create circle"
#: snikket_web/admin.py:87
#, 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:105
#, 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:122
#: snikket_web/admin.py:120
#, fuzzy
#| msgid "User information"
msgid "User information updated."
msgstr "User information"
#: snikket_web/admin.py:142
msgid "Delete user permanently"
msgstr "Delete user permanently"
#: snikket_web/admin.py:155
#, fuzzy
#| msgid "deleted"
msgid "User deleted"
msgstr "deleted"
#: snikket_web/admin.py:193
#, 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:205
#, 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:141
#: snikket_web/admin.py:225
msgid "Invite to circle"
msgstr "Invite to circle"
#: snikket_web/admin.py:147
#: snikket_web/admin.py:231
msgid "At least one circle must be selected"
msgstr "At least one circle must be selected"
#: snikket_web/admin.py:152
#: snikket_web/admin.py:236
msgid "Valid for"
msgstr "Valid for"
#: snikket_web/admin.py:154
#: snikket_web/admin.py:238
msgid "One hour"
msgstr "One hour"
#: snikket_web/admin.py:155
#: snikket_web/admin.py:239
msgid "Twelve hours"
msgstr "Twelve hours"
#: snikket_web/admin.py:156
#: snikket_web/admin.py:240
msgid "One day"
msgstr "One day"
#: snikket_web/admin.py:157
#: snikket_web/admin.py:241
msgid "One week"
msgstr "One week"
#: snikket_web/admin.py:158
#: snikket_web/admin.py:242
msgid "Four weeks"
msgstr "Four weeks"
#: snikket_web/admin.py:164 snikket_web/templates/admin_edit_invite.html:17
#: snikket_web/admin.py:248 snikket_web/templates/admin_edit_invite.html:17
msgid "Invitation type"
msgstr "Invitation type"
#: snikket_web/admin.py:166 snikket_web/templates/library.j2:116
#: snikket_web/admin.py:250 snikket_web/templates/library.j2:116
msgid "Individual"
msgstr ""
#: snikket_web/admin.py:167 snikket_web/templates/library.j2:114
#: snikket_web/admin.py:251 snikket_web/templates/library.j2:114
msgid "Group"
msgstr ""
#: snikket_web/admin.py:173
#: snikket_web/admin.py:257
msgid "New invitation link"
msgstr "New invitation link"
#: snikket_web/admin.py:235
#: snikket_web/admin.py:319
msgid "Revoke"
msgstr "Revoke"
#: snikket_web/admin.py:259
#: snikket_web/admin.py:343
#, fuzzy
#| msgid "Invitation type"
msgid "Invitation created"
msgstr "Invitation type"
#: snikket_web/admin.py:275
#: snikket_web/admin.py:359
#, fuzzy
#| msgid "New invitation link"
msgid "No such invitation exists"
msgstr "New invitation link"
#: snikket_web/admin.py:290
#: snikket_web/admin.py:374
#, fuzzy
#| msgid "Invitation type"
msgid "Invitation revoked"
msgstr "Invitation type"
#: snikket_web/admin.py:307 snikket_web/admin.py:355
#: snikket_web/admin.py:391 snikket_web/admin.py:439
msgid "Name"
msgstr "Name"
#: snikket_web/admin.py:312 snikket_web/templates/admin_circles.html:47
#: snikket_web/admin.py:396 snikket_web/templates/admin_circles.html:47
msgid "Create circle"
msgstr "Create circle"
#: snikket_web/admin.py:342
#: snikket_web/admin.py:426
#, fuzzy
#| msgid "Circle name"
msgid "Circle created"
msgstr "Circle name"
#: snikket_web/admin.py:360
#: snikket_web/admin.py:444
msgid "Select user"
msgstr "Select user"
#: snikket_web/admin.py:365
#: snikket_web/admin.py:449
#, fuzzy
#| msgid "Create circle"
msgid "Update circle"
msgstr "Create circle"
#: snikket_web/admin.py:369
#: snikket_web/admin.py:453
msgid "Delete circle permanently"
msgstr "Delete circle permanently"
#: snikket_web/admin.py:375
#: snikket_web/admin.py:459
msgid "Add user"
msgstr "Add user"
#: snikket_web/admin.py:391
#: snikket_web/admin.py:475
#, fuzzy
#| msgid "No circles"
msgid "No such circle exists"
msgstr "No circles"
#: snikket_web/admin.py:428
#: snikket_web/admin.py:512
#, fuzzy
#| msgid "Circle name"
msgid "Circle data updated"
msgstr "Circle name"
#: snikket_web/admin.py:434
#: snikket_web/admin.py:518
#, fuzzy
#| msgid "deleted"
msgid "Circle deleted"
msgstr "deleted"
#: snikket_web/admin.py:445
#: snikket_web/admin.py:529
#, fuzzy
#| msgid "Invite to circle"
msgid "User added to circle"
msgstr "Invite to circle"
#: snikket_web/admin.py:454
#: snikket_web/admin.py:538
#, fuzzy
#| msgid "Remove user %(username)s from circle"
msgid "User removed from circle"
msgstr "Remove user %(username)s from circle"
#: snikket_web/infra.py:40
#: snikket_web/infra.py:41
msgid "Main"
msgstr "Main"
#: snikket_web/invite.py:104
#: snikket_web/invite.py:106
msgid "Username"
msgstr ""
#: snikket_web/invite.py:108 snikket_web/invite.py:175 snikket_web/main.py:42
#: snikket_web/invite.py:110 snikket_web/invite.py:177 snikket_web/main.py:41
msgid "Password"
msgstr "Password"
#: snikket_web/invite.py:112 snikket_web/invite.py:179
#: snikket_web/invite.py:114 snikket_web/invite.py:181
#, fuzzy
#| msgid "Confirm new password"
msgid "Confirm password"
msgstr "Confirm new password"
#: snikket_web/invite.py:116 snikket_web/invite.py:183
msgid "The passwords must match"
#: snikket_web/invite.py:118 snikket_web/invite.py:185
#, fuzzy
#| msgid "The passwords must match"
msgid "The passwords must match."
msgstr "The passwords must match"
#: snikket_web/invite.py:121
#: snikket_web/invite.py:123
#, fuzzy
#| msgid "Create circle"
msgid "Create account"
msgstr "Create circle"
#: snikket_web/invite.py:148
msgid "That username is already taken"
#: snikket_web/invite.py:150
msgid "That username is already taken."
msgstr ""
#: snikket_web/invite.py:152 snikket_web/invite.py:216
msgid "Registration was declined for unknown reasons"
#: snikket_web/invite.py:154 snikket_web/invite.py:218
msgid "Registration was declined for unknown reasons."
msgstr ""
#: snikket_web/invite.py:156
msgid "The username is not valid"
#: snikket_web/invite.py:158
msgid "The username is not valid."
msgstr ""
#: snikket_web/invite.py:188 snikket_web/templates/user_home.html:32
#: snikket_web/invite.py:190 snikket_web/templates/user_home.html:32
#: snikket_web/templates/user_passwd.html:29
msgid "Change password"
msgstr "Change password"
#: snikket_web/main.py:37
#: snikket_web/main.py:36
msgid "Address"
msgstr "Address"
#: snikket_web/main.py:47
#: snikket_web/main.py:46
msgid "Sign in"
msgstr "Sign in"
#: snikket_web/main.py:56
#: 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:84
#: snikket_web/main.py:83
msgid "Login successful!"
msgstr ""
#: snikket_web/user.py:28
#: snikket_web/user.py:27
msgid "Current password"
msgstr "Current password"
#: snikket_web/user.py:33
#: snikket_web/user.py:32
msgid "New password"
msgstr "New password"
#: snikket_web/user.py:38
#: snikket_web/user.py:37
msgid "Confirm new password"
msgstr "Confirm new password"
#: snikket_web/user.py:42
msgid "The new passwords must match"
#: snikket_web/user.py:41
#, fuzzy
#| msgid "The new passwords must match"
msgid "The new passwords must match."
msgstr "The new passwords must match"
#: snikket_web/user.py:49
#: snikket_web/user.py:48
msgid "Sign out"
msgstr "Sign out"
#: snikket_web/user.py:54
#: snikket_web/user.py:53
msgid "Nobody"
msgstr "Nobody"
#: snikket_web/user.py:55
#: snikket_web/user.py:54
msgid "Friends only"
msgstr "Friends only"
#: snikket_web/user.py:56
#: snikket_web/user.py:55
msgid "Everyone"
msgstr "Everyone"
#: snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:11 snikket_web/user.py:62
msgid "Display name"
msgstr "Display name"
#: snikket_web/user.py:66
#: snikket_web/user.py:65
msgid "Avatar"
msgstr "Avatar"
#: snikket_web/user.py:70
#: snikket_web/user.py:69
msgid "Profile visibility"
msgstr "Profile visibility"
#: snikket_web/user.py:75
#: snikket_web/user.py:74
msgid "Update profile"
msgstr "Update profile"
#: snikket_web/user.py:100
msgid "Incorrect password"
#: snikket_web/user.py:99
#, fuzzy
#| msgid "Incorrect password"
msgid "Incorrect password."
msgstr "Incorrect password"
#: snikket_web/user.py:104
#: snikket_web/user.py:103
#, fuzzy
#| msgid "Password change failed"
msgid "Password changed"
msgstr "Password change failed"
#: snikket_web/user.py:146
#: snikket_web/user.py:111
msgid ""
"The chosen avatar is too big. To be able to upload larger avatars, please "
"use the app."
msgstr ""
#: snikket_web/user.py:159
#, fuzzy
#| msgid "Profile"
msgid "Profile updated"
msgstr "Profile"
#: snikket_web/templates/unauth.html:18 snikket_web/user.py:167
msgid "Error"
msgstr ""
#: snikket_web/templates/_footer.html:4
#, python-format
msgid "A <a href=\"%(about_url)s\">Snikket</a> service"
@@ -426,7 +489,7 @@ msgstr "Members"
#: snikket_web/templates/admin_circles.html:15
#: snikket_web/templates/admin_invites.html:24
#: snikket_web/templates/admin_users.html:12
#: snikket_web/templates/admin_users.html:10
msgid "Actions"
msgstr "Actions"
@@ -502,12 +565,12 @@ msgid "Copy complete output"
msgstr "Copy complete output"
#: snikket_web/templates/admin_delete_user.html:4
#: snikket_web/templates/admin_users.html:22
#, python-format
msgid "Delete user %(user_name)s"
msgstr "Delete user %(user_name)s"
#: snikket_web/templates/admin_delete_user.html:6
#: snikket_web/templates/admin_edit_user.html:54
msgid "Delete user"
msgstr "Delete user"
@@ -515,11 +578,6 @@ msgstr "Delete user"
msgid "Are you sure you want to delete the following user?"
msgstr "Are you sure you want to delete the following user?"
#: snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_users.html:10
msgid "Login name"
msgstr "Login name"
#: snikket_web/templates/admin_delete_user.html:15
msgid "Danger"
msgstr "Danger"
@@ -532,12 +590,10 @@ msgid ""
msgstr ""
#: snikket_web/templates/admin_delete_user.html:19
#: snikket_web/templates/admin_edit_circle.html:44
#: snikket_web/templates/admin_edit_invite.html:49
#: snikket_web/templates/admin_reset_user_password.html:25
#: snikket_web/templates/user_logout.html:10
#: snikket_web/templates/user_passwd.html:27
#: snikket_web/templates/user_profile.html:28
#: snikket_web/templates/user_profile.html:32
msgid "Back"
msgstr "Back"
@@ -573,6 +629,10 @@ msgstr "Circle information"
msgid "This circle has no group chat associated."
msgstr ""
#: snikket_web/templates/admin_edit_circle.html:44
msgid "Return to circle list"
msgstr ""
#: snikket_web/templates/admin_edit_circle.html:48
msgid "Delete circle"
msgstr "Delete circle"
@@ -657,6 +717,105 @@ msgstr ""
msgid "Created"
msgstr "Created"
#: snikket_web/templates/admin_edit_invite.html:48
#, fuzzy
#| msgid "New invitation link"
msgid "Return to invitation list"
msgstr "New invitation link"
#: snikket_web/templates/admin_edit_user.html:5
msgid ""
"Limited users can interact with users on the same Snikket service and be "
"members of circles."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:7
msgid ""
"Like limited users and can also interact with users on other Snikket "
"services."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:9
msgid "Like normal users and can access the admin panel in the web portal."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:20
#: snikket_web/templates/admin_users.html:28
#, python-format
msgid "Edit user %(user_name)s"
msgstr "Edit user %(user_name)s"
#: snikket_web/templates/admin_edit_user.html:23
#, fuzzy
#| msgid "Add user"
msgid "Edit user"
msgstr "Add user"
#: snikket_web/templates/admin_edit_user.html:27
msgid "The login name cannot be changed."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:34
msgid ""
"The access level of a user determines what interactions are allowed for them "
"on your Snikket service."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:41
#, python-format
msgid "<strong>%(title)s%(icon)s</strong><p>%(description)s</p>"
msgstr ""
#: snikket_web/templates/admin_edit_user.html:51
#, fuzzy
#| msgid "New invitation link"
msgid "Return to user list"
msgstr "New invitation link"
#: snikket_web/templates/admin_edit_user.html:59
msgid "Further actions"
msgstr ""
#: snikket_web/templates/admin_edit_user.html:61
#, fuzzy
#| msgid "Change your password"
msgid "Reset password"
msgstr "Change your password"
#: snikket_web/templates/admin_edit_user.html:64
#, fuzzy
#| msgid ""
#| "If the user has forgotten their password, use the below button to create "
#| "a password reset link. The password reset link can be used once to change "
#| "the password of the account. Transmit the link to the user via a secure "
#| "channel."
msgid ""
"If the user has lost their password, you can use the button below to create "
"a special link which allows to change the password of the account, once."
msgstr ""
"If the user has forgotten their password, use the below button to create a "
"password reset link. The password reset link can be used once to change the "
"password of the account. Transmit the link to the user via a secure channel."
#: snikket_web/templates/admin_edit_user.html:69
#, fuzzy
#| msgid "User information"
msgid "Debug information"
msgstr "User information"
#: snikket_web/templates/admin_edit_user.html:71
msgid ""
"In some cases, extended information about the user account and the connected "
"devices is necessary to troubleshoot issues. The button below reveals this "
"(sensitive) information."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:75
#, fuzzy
#| msgid "Show debug information for %(user_name)s"
msgid "Show debug information"
msgstr "Show debug information for %(user_name)s"
#: snikket_web/templates/admin_home.html:4
#, fuzzy
#| msgid "Welcome to the administration dashboard!"
@@ -761,15 +920,21 @@ msgstr ""
msgid "Destroy link"
msgstr "Destroy link"
#: snikket_web/templates/admin_users.html:25
#, python-format
msgid "Show debug information for %(user_name)s"
msgstr "Show debug information for %(user_name)s"
#: snikket_web/templates/admin_users.html:19
msgid "The user is an administrator."
msgstr ""
#: snikket_web/templates/admin_users.html:28
#, python-format
msgid "Create password reset link for %(user_name)s"
msgstr "Create password reset link for %(user_name)s"
#: snikket_web/templates/admin_users.html:19
msgid " (Administrator)"
msgstr ""
#: snikket_web/templates/admin_users.html:22
msgid "The user is restricted."
msgstr ""
#: snikket_web/templates/admin_users.html:22
msgid " (Restricted)"
msgstr ""
#: snikket_web/templates/app.html:4
msgid "Snikket Web Portal"
@@ -856,18 +1021,20 @@ msgid ""
msgstr ""
#: snikket_web/templates/invite_register.html:14
#: snikket_web/templates/invite_view.html:38
#: snikket_web/templates/invite_view.html:39
msgid "App already installed?"
msgstr ""
#: snikket_web/templates/invite_register.html:16
#: snikket_web/templates/invite_reset_view.html:21
#: snikket_web/templates/invite_view.html:40
#: snikket_web/templates/invite_view.html:41
#: snikket_web/templates/invite_view.html:106
#: snikket_web/templates/invite_view.html:134
msgid "Open the app"
msgstr ""
#: snikket_web/templates/invite_register.html:18
#: snikket_web/templates/invite_view.html:42
#: snikket_web/templates/invite_view.html:43
msgid "This button works only if you have the app installed already!"
msgstr ""
@@ -960,7 +1127,7 @@ msgid ""
msgstr ""
#: snikket_web/templates/invite_reset_view.html:26
#: snikket_web/templates/invite_view.html:76
#: 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 "
@@ -972,7 +1139,7 @@ msgid "You will then be prompted to enter a new password for your account."
msgstr ""
#: snikket_web/templates/invite_reset_view.html:29
#: snikket_web/templates/invite_view.html:44
#: snikket_web/templates/invite_view.html:45
msgid "Alternatives"
msgstr ""
@@ -1050,20 +1217,25 @@ msgid "Get it on Google Play"
msgstr ""
#: snikket_web/templates/invite_view.html:30
#: snikket_web/templates/invite_view.html:102
msgid "Download on the App Store"
msgstr ""
#: snikket_web/templates/invite_view.html:34
#: snikket_web/templates/invite_view.html:32
msgid "Get it on F-Droid"
msgstr ""
#: snikket_web/templates/invite_view.html:35
msgid "Send to mobile device"
msgstr ""
#: snikket_web/templates/invite_view.html:37
#: snikket_web/templates/invite_view.html:38
msgid ""
"After installation the app should automatically open and prompt you to "
"create an account. If not, simply click the button below."
msgstr ""
#: snikket_web/templates/invite_view.html:45
#: snikket_web/templates/invite_view.html:46
#, python-format
msgid ""
"You can connect to Snikket using any XMPP-compatible software. If the button "
@@ -1071,42 +1243,82 @@ msgid ""
"\">register an account manually</a>."
msgstr ""
#: snikket_web/templates/invite_view.html:51
#: snikket_web/templates/invite_view.html:52
#, fuzzy
#| msgid "Show invite details"
msgid "Scan invite code"
msgstr "Show invite details"
#: snikket_web/templates/invite_view.html:54
#: snikket_web/templates/invite_view.html:83
#: snikket_web/templates/invite_view.html:55
#: 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 ""
#: snikket_web/templates/invite_view.html:57
#: snikket_web/templates/invite_view.html:58
msgid ""
"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."
msgstr ""
#: snikket_web/templates/invite_view.html:62
#: snikket_web/templates/invite_view.html:63
msgid "Using a QR code scanner"
msgstr ""
#: snikket_web/templates/invite_view.html:64
#: snikket_web/templates/invite_view.html:65
msgid "Using the Snikket app"
msgstr ""
#: snikket_web/templates/invite_view.html:69
#: 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:75
#: 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: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:101
msgid "First download Snikket from the App Store using the button below:"
msgstr ""
#: 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:121
#: snikket_web/templates/invite_view.html:130
msgid "Install via F-Droid"
msgstr ""
#: 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:129
msgid "First install Snikket from F-Droid using the button below:"
msgstr ""
#: snikket_web/templates/library.j2:18
msgid "Copy link"
msgstr "Copy link"
@@ -1139,17 +1351,13 @@ msgstr "Snikket Login"
msgid "Enter your Snikket address and password to manage your account."
msgstr "Enter your Snikket address and password to manage your account."
#: snikket_web/templates/login.html:18
msgid "Login failed"
msgstr "Login failed"
#: snikket_web/templates/login.html:23
#: snikket_web/templates/login.html:19
#, fuzzy
#| msgid "Incorrect password"
msgid "Incorrect address"
msgstr "Incorrect password"
#: snikket_web/templates/login.html:24
#: snikket_web/templates/login.html:20
#, python-format
msgid ""
"This Snikket service only hosts addresses ending in <em>@%(snikket_domain)s</"
@@ -1160,10 +1368,6 @@ msgstr ""
msgid "Operation successful"
msgstr ""
#: snikket_web/templates/unauth.html:18
msgid "Error"
msgstr ""
#: snikket_web/templates/user_home.html:9
msgid "Welcome!"
msgstr "Welcome!"
@@ -1253,11 +1457,11 @@ msgstr "Update profile"
msgid "Profile"
msgstr "Profile"
#: snikket_web/templates/user_profile.html:19
#: snikket_web/templates/user_profile.html:23
msgid "Visibility"
msgstr "Visibility"
#: snikket_web/templates/user_profile.html:20
#: snikket_web/templates/user_profile.html:24
msgid ""
"This section allows you to control who can see your profile information, "
"like avatar and nickname."
@@ -1265,22 +1469,11 @@ msgstr ""
"This section allows you to control who can see your profile information, "
"like avatar and nickname."
#~ msgid "Edit user %(user_name)s"
#~ msgstr "Edit user %(user_name)s"
#~ msgid "Create password reset link for %(user_name)s"
#~ msgstr "Create password reset link for %(user_name)s"
#~ msgid "User information"
#~ msgstr "User information"
#~ msgid ""
#~ "If the user has forgotten their password, use the below button to create "
#~ "a password reset link. The password reset link can be used once to change "
#~ "the password of the account. Transmit the link to the user via a secure "
#~ "channel."
#~ msgstr ""
#~ "If the user has forgotten their password, use the below button to create "
#~ "a password reset link. The password reset link can be used once to change "
#~ "the password of the account. Transmit the link to the user via a secure "
#~ "channel."
#~ msgid "Login failed"
#~ msgstr "Login failed"
#~ msgid "No users left"
#~ msgstr "No users left"

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -7,11 +7,11 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2021-02-23 07:55+0100\n"
"PO-Revision-Date: 2021-03-12 23:04+0000\n"
"Last-Translator: GodGoldfish <godgoldfish@pm.me>\n"
"Language-Team: French <https://i18n.sotecware.net/projects/snikket/"
"web-portal/fr/>\n"
"POT-Creation-Date: 2021-03-25 17:32+0100\n"
"PO-Revision-Date: 2021-03-21 16:31+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"
@@ -20,282 +20,312 @@ msgstr ""
"X-Generator: Weblate 4.5.1\n"
"Generated-By: Babel 2.9.0\n"
#: snikket_web/admin.py:60
#: snikket_web/admin.py:59
msgid "Limited"
msgstr ""
#: snikket_web/admin.py:64 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_users.html:8
msgid "Login name"
msgstr "Identifiant"
#: snikket_web/admin.py:68 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:9 snikket_web/user.py:61
msgid "Display name"
msgstr "Nom à afficher"
#: snikket_web/admin.py:72 snikket_web/templates/admin_edit_user.html:33
msgid "Access Level"
msgstr ""
#: snikket_web/admin.py:77
msgid "Normal user"
msgstr ""
#: snikket_web/admin.py:78
#, fuzzy
#| msgid "Admin area"
msgid "Administrator"
msgstr "Zone dadministration"
#: snikket_web/admin.py:83
#, fuzzy
#| msgid "Update circle"
msgid "Update user"
msgstr "Mettre à jour le cercle"
#: snikket_web/admin.py:87
#, fuzzy
#| msgid "Create password reset links or delete users."
msgid "Create password reset link"
msgstr ""
"Créer des liens de réinitialisation de mot de passe ou supprimer des "
"utilisateurs."
#: snikket_web/admin.py:105
msgid "Password reset link created"
msgstr "Lien de réinitialisation du mot de passe créé"
#: snikket_web/admin.py:120
#, fuzzy
#| msgid "User information"
msgid "User information updated."
msgstr "Informations de lutilisateur"
#: snikket_web/admin.py:142
msgid "Delete user permanently"
msgstr "Désinscrire définitivement lutilisateur"
#: snikket_web/admin.py:73
#, fuzzy
#| msgid "deleted"
#: snikket_web/admin.py:155
msgid "User deleted"
msgstr "supprimé"
msgstr "Utilisateur supprimé"
#: snikket_web/admin.py:116
#: snikket_web/admin.py:193
#, fuzzy
#| msgid "Password reset link for %(user_name)s"
msgid "Password reset link created"
msgstr "Lien de réinitialisation du mot de passe de %(user_name)s"
#| msgid "Password reset link created"
msgid "Password reset link not found"
msgstr "Lien de réinitialisation du mot de passe créé"
#: snikket_web/admin.py:122
#, fuzzy
#| msgid "Create password reset links or delete users."
#: snikket_web/admin.py:205
msgid "Password reset link deleted"
msgstr ""
"Créer des liens de réinitialisation de mot de passe ou supprimer des "
"utilisateurs"
msgstr "Liens de réinitialisation de mot de passe supprimé"
#: snikket_web/admin.py:141
#: snikket_web/admin.py:225
msgid "Invite to circle"
msgstr "Inviter dans le cercle"
#: snikket_web/admin.py:147
#: snikket_web/admin.py:231
msgid "At least one circle must be selected"
msgstr "Au moins un cercle doit être sélectionné"
#: snikket_web/admin.py:152
#: snikket_web/admin.py:236
msgid "Valid for"
msgstr "Valide pour"
#: snikket_web/admin.py:154
#: snikket_web/admin.py:238
msgid "One hour"
msgstr "Une heure"
#: snikket_web/admin.py:155
#: snikket_web/admin.py:239
msgid "Twelve hours"
msgstr "Douze heures"
#: snikket_web/admin.py:156
#: snikket_web/admin.py:240
msgid "One day"
msgstr "Une journée"
#: snikket_web/admin.py:157
#: snikket_web/admin.py:241
msgid "One week"
msgstr "Une semaine"
#: snikket_web/admin.py:158
#: snikket_web/admin.py:242
msgid "Four weeks"
msgstr "Quatre semaines"
#: snikket_web/admin.py:164 snikket_web/templates/admin_edit_invite.html:17
#: snikket_web/admin.py:248 snikket_web/templates/admin_edit_invite.html:17
msgid "Invitation type"
msgstr "Type dinvitation"
#: snikket_web/admin.py:166 snikket_web/templates/library.j2:116
#: snikket_web/admin.py:250 snikket_web/templates/library.j2:116
msgid "Individual"
msgstr "Individuelle"
#: snikket_web/admin.py:167 snikket_web/templates/library.j2:114
#: snikket_web/admin.py:251 snikket_web/templates/library.j2:114
msgid "Group"
msgstr "Groupe"
#: snikket_web/admin.py:173
#: snikket_web/admin.py:257
msgid "New invitation link"
msgstr "Nouveau lien dinvitation"
#: snikket_web/admin.py:235
#: snikket_web/admin.py:319
msgid "Revoke"
msgstr "Révoquer"
#: snikket_web/admin.py:259
#, fuzzy
#| msgid "Invitation type"
#: snikket_web/admin.py:343
msgid "Invitation created"
msgstr "Type dinvitation"
msgstr "Invitation créée"
#: snikket_web/admin.py:275
#, fuzzy
#| msgid "New invitation link"
#: snikket_web/admin.py:359
msgid "No such invitation exists"
msgstr "Nouveau lien dinvitation"
msgstr "Cette invitation nexiste pas"
#: snikket_web/admin.py:290
#, fuzzy
#| msgid "Invitation type"
#: snikket_web/admin.py:374
msgid "Invitation revoked"
msgstr "Type dinvitation"
msgstr "Invitation révoquée"
#: snikket_web/admin.py:307 snikket_web/admin.py:355
#: snikket_web/admin.py:391 snikket_web/admin.py:439
msgid "Name"
msgstr "Nom"
#: snikket_web/admin.py:312 snikket_web/templates/admin_circles.html:47
#: snikket_web/admin.py:396 snikket_web/templates/admin_circles.html:47
msgid "Create circle"
msgstr "Créer un cercle"
#: snikket_web/admin.py:342
#, fuzzy
#| msgid "Circle name"
#: snikket_web/admin.py:426
msgid "Circle created"
msgstr "Nom du cercle"
msgstr "Cercle créé"
#: snikket_web/admin.py:360
#: snikket_web/admin.py:444
msgid "Select user"
msgstr "Sélectionner un utilisateur"
#: snikket_web/admin.py:365
#: snikket_web/admin.py:449
msgid "Update circle"
msgstr "Mettre à jour le cercle"
#: snikket_web/admin.py:369
#: snikket_web/admin.py:453
msgid "Delete circle permanently"
msgstr "Supprimer le cercle définitivement"
#: snikket_web/admin.py:375
#: snikket_web/admin.py:459
msgid "Add user"
msgstr "Ajouter un utilisateur"
#: snikket_web/admin.py:391
#, fuzzy
#| msgid "No circles"
#: snikket_web/admin.py:475
msgid "No such circle exists"
msgstr "Aucun cercle"
msgstr "Ce cercle nexiste pas"
#: snikket_web/admin.py:428
#, fuzzy
#| msgid "Circle name"
#: snikket_web/admin.py:512
msgid "Circle data updated"
msgstr "Nom du cercle"
msgstr "Données du cercle mises à jour"
#: snikket_web/admin.py:434
#, fuzzy
#| msgid "deleted"
#: snikket_web/admin.py:518
msgid "Circle deleted"
msgstr "supprimé"
msgstr "Cercle supprimé"
#: snikket_web/admin.py:445
#, fuzzy
#| msgid "Invite to circle"
#: snikket_web/admin.py:529
msgid "User added to circle"
msgstr "Inviter dans le cercle"
msgstr "Utilisateur ajouté à ce cercle"
#: snikket_web/admin.py:454
#, fuzzy
#| msgid "Remove user %(username)s from circle"
#: snikket_web/admin.py:538
msgid "User removed from circle"
msgstr "Retirer lutilisateur %(username)s du cercle"
msgstr "Utilisateur retiré du cercle"
#: snikket_web/infra.py:40
#: snikket_web/infra.py:41
msgid "Main"
msgstr "Principal"
#: snikket_web/invite.py:104
#: snikket_web/invite.py:106
msgid "Username"
msgstr "Nom dutilisateur"
#: snikket_web/invite.py:108 snikket_web/invite.py:175 snikket_web/main.py:42
#: snikket_web/invite.py:110 snikket_web/invite.py:177 snikket_web/main.py:41
msgid "Password"
msgstr "Mot de passe"
#: snikket_web/invite.py:112 snikket_web/invite.py:179
#: snikket_web/invite.py:114 snikket_web/invite.py:181
msgid "Confirm password"
msgstr "Confirmer le mot de passe"
#: snikket_web/invite.py:116 snikket_web/invite.py:183
msgid "The passwords must match"
msgstr "Les mots de passe doivent être identiques"
#: snikket_web/invite.py:118 snikket_web/invite.py:185
msgid "The passwords must match."
msgstr "Les mots de passe doivent être identiques."
#: snikket_web/invite.py:121
#: snikket_web/invite.py:123
msgid "Create account"
msgstr "Créer un compte"
#: snikket_web/invite.py:148
msgid "That username is already taken"
msgstr "Ce nom dutilisateur est déjà utilisé"
#: snikket_web/invite.py:150
msgid "That username is already taken."
msgstr "Ce nom dutilisateur est déjà utilisé."
#: snikket_web/invite.py:152 snikket_web/invite.py:216
msgid "Registration was declined for unknown reasons"
msgstr "Lenregistrement a été refusé pour des raisons inconnues"
#: snikket_web/invite.py:154 snikket_web/invite.py:218
msgid "Registration was declined for unknown reasons."
msgstr "Lenregistrement a été refusé pour des raisons inconnues."
#: snikket_web/invite.py:156
msgid "The username is not valid"
msgstr "Le nom dutilisateur nest pas valide"
#: snikket_web/invite.py:158
msgid "The username is not valid."
msgstr "Le nom dutilisateur nest pas valide."
#: snikket_web/invite.py:188 snikket_web/templates/user_home.html:32
#: snikket_web/invite.py:190 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/main.py:37
#: snikket_web/main.py:36
msgid "Address"
msgstr "Adresse"
#: snikket_web/main.py:47
#: snikket_web/main.py:46
msgid "Sign in"
msgstr "Sidentifier"
#: snikket_web/main.py:56
#: snikket_web/main.py:55
msgid "Invalid username or password."
msgstr "Nom dutilisateur ou mot de passe incorrect."
#: snikket_web/main.py:84
#, fuzzy
#: snikket_web/main.py:83
msgid "Login successful!"
msgstr "Connexion réussite !"
msgstr "Connexion réussie!"
#: snikket_web/user.py:28
#: snikket_web/user.py:27
msgid "Current password"
msgstr "Mot de passe actuel"
#: snikket_web/user.py:33
#: snikket_web/user.py:32
msgid "New password"
msgstr "Nouveau mot de passe"
#: snikket_web/user.py:38
#: snikket_web/user.py:37
msgid "Confirm new password"
msgstr "Confirmer le nouveau mot de passe"
#: snikket_web/user.py:42
msgid "The new passwords must match"
msgstr "Les nouveaux mots de passe doivent être identiques"
#: snikket_web/user.py:41
msgid "The new passwords must match."
msgstr "Les nouveaux mots de passe doivent être identiques."
#: snikket_web/user.py:49
#: snikket_web/user.py:48
msgid "Sign out"
msgstr "Se déconnecter"
#: snikket_web/user.py:54
#: snikket_web/user.py:53
msgid "Nobody"
msgstr "Personne"
#: snikket_web/user.py:55
#: snikket_web/user.py:54
msgid "Friends only"
msgstr "Amis seulement"
#: snikket_web/user.py:56
#: snikket_web/user.py:55
msgid "Everyone"
msgstr "Tout le monde"
#: snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:11 snikket_web/user.py:62
msgid "Display name"
msgstr "Nom à afficher"
#: snikket_web/user.py:66
#: snikket_web/user.py:65
msgid "Avatar"
msgstr "Avatar"
#: snikket_web/user.py:70
#: snikket_web/user.py:69
msgid "Profile visibility"
msgstr "Visibilité du profil"
#: snikket_web/user.py:75
#: snikket_web/user.py:74
msgid "Update profile"
msgstr "Mettre à jour le profil"
#: snikket_web/user.py:100
msgid "Incorrect password"
msgstr "Mot de passe incorrect"
#: snikket_web/user.py:99
msgid "Incorrect password."
msgstr "Mot de passe incorrect."
#: snikket_web/user.py:104
#, fuzzy
#| msgid "Password reset"
#: snikket_web/user.py:103
msgid "Password changed"
msgstr "Réinitialisation de mot de passe"
msgstr "Mot de passe changé"
#: snikket_web/user.py:146
#, fuzzy
#| msgid "Profile"
#: snikket_web/user.py:111
msgid ""
"The chosen avatar is too big. To be able to upload larger avatars, please "
"use the app."
msgstr ""
"Lavatar choisi est trop gros. Pour utiliser un avatar aussi large, veuillez "
"utiliser lapplication."
#: snikket_web/user.py:159
msgid "Profile updated"
msgstr "Profil"
msgstr "Profil mis à jour"
#: snikket_web/templates/unauth.html:18 snikket_web/user.py:167
msgid "Error"
msgstr "Erreur"
#: snikket_web/templates/_footer.html:4
#, python-format
@@ -303,12 +333,11 @@ msgid "A <a href=\"%(about_url)s\">Snikket</a> service"
msgstr "Un service <a href=\"%(about_url)s\">Snikket</a>"
#: snikket_web/templates/_footer.html:6
#, fuzzy
msgid ""
"“Snikket” and the parrot logo are trademarks of Snikket Community Interest "
"Company."
msgstr ""
"\"Snikket\" et le logo de perroquet sont des marques de la Snikket Community "
"« Snikket » et le logo perroquet sont des marques de la Snikket Community "
"Interest Company."
#: snikket_web/templates/about.html:4 snikket_web/templates/about.html:9
@@ -370,20 +399,19 @@ msgstr ""
"termes de la <a href=\"%(apache20_url)s\">licence Apache 2.0 </a>."
#: snikket_web/templates/about.html:17
#, fuzzy
msgid "Trademarks"
msgstr "Marques"
#: snikket_web/templates/about.html:18
#, fuzzy, python-format
#, python-format
msgid ""
"“Snikket” and the parrot logo are trademarks of Snikket Community Interest "
"Company. For more information about the trademarks, visit the <a href="
"\"%(trademarks_url)s\">Snikket Trademarks information page</a>."
msgstr ""
"\"Snikket\" et le logo de perroquet sont des marques de la Snikket Community "
"Interest Company. Pour plus d'informations sur la marque, visitez le site <a "
"href=\"%(trademarks_url)s\"> page d'information Snikket Trademarks</a>."
"« Snikket » et le logo perroquet sont des marques de la Snikket Community "
"Interest Company. Pour plus dinformations sur la marque, visitez la <a href="
"\"%(trademarks_url)s\"> page dinformation sur les marques Snikket</a>."
#: snikket_web/templates/about.html:19
msgid "Software Versions"
@@ -430,7 +458,7 @@ msgstr "Membres"
#: snikket_web/templates/admin_circles.html:15
#: snikket_web/templates/admin_invites.html:24
#: snikket_web/templates/admin_users.html:12
#: snikket_web/templates/admin_users.html:10
msgid "Actions"
msgstr "Actions"
@@ -505,12 +533,12 @@ msgid "Copy complete output"
msgstr "Copier le journal entier"
#: snikket_web/templates/admin_delete_user.html:4
#: snikket_web/templates/admin_users.html:22
#, python-format
msgid "Delete user %(user_name)s"
msgstr "Désinscrire lutilisateur %(user_name)s"
#: snikket_web/templates/admin_delete_user.html:6
#: snikket_web/templates/admin_edit_user.html:54
msgid "Delete user"
msgstr "Désinscrire un utilisateur"
@@ -518,11 +546,6 @@ msgstr "Désinscrire un utilisateur"
msgid "Are you sure you want to delete the following user?"
msgstr "Êtes-vous certain(e) de vouloir désinscrire lutilisateur suivant?"
#: snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_users.html:10
msgid "Login name"
msgstr "Identifiant"
#: snikket_web/templates/admin_delete_user.html:15
msgid "Danger"
msgstr "Danger"
@@ -538,12 +561,10 @@ msgstr ""
"impossible de revenir en arrière!</strong>"
#: snikket_web/templates/admin_delete_user.html:19
#: snikket_web/templates/admin_edit_circle.html:44
#: snikket_web/templates/admin_edit_invite.html:49
#: snikket_web/templates/admin_reset_user_password.html:25
#: snikket_web/templates/user_logout.html:10
#: snikket_web/templates/user_passwd.html:27
#: snikket_web/templates/user_profile.html:28
#: snikket_web/templates/user_profile.html:32
msgid "Back"
msgstr "Retour"
@@ -576,6 +597,10 @@ msgstr "Information sur le cercle"
msgid "This circle has no group chat associated."
msgstr "Ce cercle na pas de conversation de groupe associée."
#: snikket_web/templates/admin_edit_circle.html:44
msgid "Return to circle list"
msgstr ""
#: snikket_web/templates/admin_edit_circle.html:48
msgid "Delete circle"
msgstr "Supprimer le cercle"
@@ -661,6 +686,106 @@ msgstr "Lutilisateur sera ajouté en tant que contact de %(peer_jid)s."
msgid "Created"
msgstr "Créé le"
#: snikket_web/templates/admin_edit_invite.html:48
#, fuzzy
#| msgid "New invitation link"
msgid "Return to invitation list"
msgstr "Nouveau lien dinvitation"
#: snikket_web/templates/admin_edit_user.html:5
msgid ""
"Limited users can interact with users on the same Snikket service and be "
"members of circles."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:7
msgid ""
"Like limited users and can also interact with users on other Snikket "
"services."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:9
msgid "Like normal users and can access the admin panel in the web portal."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:20
#: snikket_web/templates/admin_users.html:28
#, python-format
msgid "Edit user %(user_name)s"
msgstr "Modifier lutilisateur %(user_name)s"
#: snikket_web/templates/admin_edit_user.html:23
#, fuzzy
#| msgid "Add user"
msgid "Edit user"
msgstr "Ajouter un utilisateur"
#: snikket_web/templates/admin_edit_user.html:27
msgid "The login name cannot be changed."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:34
msgid ""
"The access level of a user determines what interactions are allowed for them "
"on your Snikket service."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:41
#, python-format
msgid "<strong>%(title)s%(icon)s</strong><p>%(description)s</p>"
msgstr ""
#: snikket_web/templates/admin_edit_user.html:51
#, fuzzy
#| msgid "New invitation link"
msgid "Return to user list"
msgstr "Nouveau lien dinvitation"
#: snikket_web/templates/admin_edit_user.html:59
msgid "Further actions"
msgstr ""
#: snikket_web/templates/admin_edit_user.html:61
#, fuzzy
#| msgid "Reset your password"
msgid "Reset password"
msgstr "Réinitialiser votre mot de passe"
#: snikket_web/templates/admin_edit_user.html:64
#, fuzzy
#| msgid ""
#| "If the user has forgotten their password, use the below button to create "
#| "a password reset link. The password reset link can be used once to change "
#| "the password of the account. Transmit the link to the user via a secure "
#| "channel."
msgid ""
"If the user has lost their password, you can use the button below to create "
"a special link which allows to change the password of the account, once."
msgstr ""
"Si lutilisateur a oublié son mot de passe, utilisez le bouton ci-dessous "
"pour créer un lien de réinitialisation du mot de passe. Ce lien peut-être "
"utilisé une fois pour changer le mot de passe du compte. Assurez-vous de "
"communiquer le lien de façon sécurisée."
#: snikket_web/templates/admin_edit_user.html:69
#, fuzzy
#| msgid "User information"
msgid "Debug information"
msgstr "Informations de lutilisateur"
#: snikket_web/templates/admin_edit_user.html:71
msgid ""
"In some cases, extended information about the user account and the connected "
"devices is necessary to troubleshoot issues. The button below reveals this "
"(sensitive) information."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:75
#, fuzzy
#| msgid "Show debug information for %(user_name)s"
msgid "Show debug information"
msgstr "Afficher les informations de débogage pour %(user_name)s"
#: snikket_web/templates/admin_home.html:4
msgid "Welcome to the admin panel!"
msgstr "Bienvenue sur votre panneau dadministration!"
@@ -760,15 +885,25 @@ msgstr ""
msgid "Destroy link"
msgstr "Supprimer le lien"
#: snikket_web/templates/admin_users.html:25
#, python-format
msgid "Show debug information for %(user_name)s"
msgstr "Afficher les informations de débogage pour %(user_name)s"
#: snikket_web/templates/admin_users.html:19
#, fuzzy
#| msgid "The username is not valid."
msgid "The user is an administrator."
msgstr "Le nom dutilisateur nest pas valide."
#: snikket_web/templates/admin_users.html:28
#, python-format
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"
#: snikket_web/templates/admin_users.html:19
msgid " (Administrator)"
msgstr ""
#: snikket_web/templates/admin_users.html:22
#, fuzzy
#| msgid "The username is not valid."
msgid "The user is restricted."
msgstr "Le nom dutilisateur nest pas valide."
#: snikket_web/templates/admin_users.html:22
msgid " (Restricted)"
msgstr ""
#: snikket_web/templates/app.html:4
msgid "Snikket Web Portal"
@@ -858,18 +993,20 @@ msgstr ""
"création de compte dans lapplication en cliquant sur le bouton ci-dessous:"
#: snikket_web/templates/invite_register.html:14
#: snikket_web/templates/invite_view.html:38
#: snikket_web/templates/invite_view.html:39
msgid "App already installed?"
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:40
#: snikket_web/templates/invite_view.html:41
#: snikket_web/templates/invite_view.html:106
#: snikket_web/templates/invite_view.html:134
msgid "Open the app"
msgstr "Ouvrir lapplication"
#: snikket_web/templates/invite_register.html:18
#: snikket_web/templates/invite_view.html:42
#: snikket_web/templates/invite_view.html:43
msgid "This button works only if you have the app installed already!"
msgstr "Ce bouton ne fonctionne que si vous avez déjà installé lapplication!"
@@ -968,7 +1105,7 @@ msgstr ""
"utilisant le bouton Scan tout en haut."
#: snikket_web/templates/invite_reset_view.html:26
#: snikket_web/templates/invite_view.html:76
#: 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 "
@@ -985,7 +1122,7 @@ msgstr ""
"compte."
#: snikket_web/templates/invite_reset_view.html:29
#: snikket_web/templates/invite_view.html:44
#: snikket_web/templates/invite_view.html:45
msgid "Alternatives"
msgstr "Alternatives"
@@ -1076,15 +1213,20 @@ 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:102
msgid "Download on the App Store"
msgstr "Télécharger sur lApp Store"
#: snikket_web/templates/invite_view.html:34
#: snikket_web/templates/invite_view.html:32
msgid "Get it on F-Droid"
msgstr ""
#: snikket_web/templates/invite_view.html:35
#, fuzzy
msgid "Send to mobile device"
msgstr "Envoyer vers l'appareil"
#: snikket_web/templates/invite_view.html:37
#: snikket_web/templates/invite_view.html:38
msgid ""
"After installation the app should automatically open and prompt you to "
"create an account. If not, simply click the button below."
@@ -1093,7 +1235,7 @@ msgstr ""
"inviter à créer un compte. Si ce nest pas le cas, il suffit de cliquer sur "
"le bouton ci-dessous."
#: snikket_web/templates/invite_view.html:45
#: snikket_web/templates/invite_view.html:46
#, python-format
msgid ""
"You can connect to Snikket using any XMPP-compatible software. If the button "
@@ -1105,16 +1247,20 @@ msgstr ""
"application, vous devrez peut-être <a href=\"%(register_url)s\">enregistrer "
"un compte manuellement</a>."
#: snikket_web/templates/invite_view.html:51
#: snikket_web/templates/invite_view.html:52
msgid "Scan invite code"
msgstr "Scanner le code dinvitation"
#: snikket_web/templates/invite_view.html:54
#: snikket_web/templates/invite_view.html:83
#: snikket_web/templates/invite_view.html:55
#: 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"
#: snikket_web/templates/invite_view.html:57
#: snikket_web/templates/invite_view.html:58
msgid ""
"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."
@@ -1123,22 +1269,22 @@ 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:62
#: 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:64
#: snikket_web/templates/invite_view.html:65
msgid "Using the Snikket app"
msgstr "En utilisant lapplication Snikket"
#: snikket_web/templates/invite_view.html:69
#: 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:75
#: 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."
@@ -1146,6 +1292,42 @@ 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: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:101
msgid "First download Snikket from the App Store using the button below:"
msgstr ""
#: 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:121
#: snikket_web/templates/invite_view.html:130
msgid "Install via F-Droid"
msgstr "Installer via F-Droid"
#: 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:129
msgid "First install Snikket from F-Droid using the button below:"
msgstr ""
#: snikket_web/templates/library.j2:18
msgid "Copy link"
msgstr "Copier le lien"
@@ -1175,34 +1357,22 @@ msgstr "Connexion à Snikket"
msgid "Enter your Snikket address and password to manage your account."
msgstr "Entrez votre adresse et mot de passe Snikket pour gérer votre compte."
#: snikket_web/templates/login.html:18
msgid "Login failed"
msgstr "Échec didentification"
#: snikket_web/templates/login.html:23
#, fuzzy
#| msgid "Incorrect password"
#: snikket_web/templates/login.html:19
msgid "Incorrect address"
msgstr "Mot de passe incorrect"
msgstr "Adresse incorrecte"
#: snikket_web/templates/login.html:24
#, fuzzy, python-format
#: snikket_web/templates/login.html:20
#, python-format
msgid ""
"This Snikket service only hosts addresses ending in <em>@%(snikket_domain)s</"
"em>. Your password was not sent."
msgstr ""
"Le service Snikket n'héberge que les adresses se terminant par "
"<em>@%(snikket_domain)s</em>. Votre mot de passe n'a pas été envoyé."
"Ce service Snikket nhéberge que les adresses se terminant par <em>@"
"%(snikket_domain)s</em>. Votre mot de passe na pas été envoyé."
#: snikket_web/templates/unauth.html:16
#, fuzzy
msgid "Operation successful"
msgstr "Opération réussite"
#: snikket_web/templates/unauth.html:18
#, fuzzy
msgid "Error"
msgstr "Erreur"
msgstr "Opération réussie"
#: snikket_web/templates/user_home.html:9
msgid "Welcome!"
@@ -1280,11 +1450,11 @@ msgstr "Mettre à jour votre profil"
msgid "Profile"
msgstr "Profil"
#: snikket_web/templates/user_profile.html:19
#: snikket_web/templates/user_profile.html:23
msgid "Visibility"
msgstr "Visibilité"
#: snikket_web/templates/user_profile.html:20
#: snikket_web/templates/user_profile.html:24
msgid ""
"This section allows you to control who can see your profile information, "
"like avatar and nickname."
@@ -1292,26 +1462,15 @@ msgstr ""
"Cette section permet de configurer qui peut voir votre profil, comme par "
"exemple votre avatar et votre pseudonyme."
#~ 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"
#~ msgid "Login failed"
#~ msgstr "Échec didentification"
#~ msgid "Not on mobile?"
#~ msgstr "Pas sur mobile?"
#~ msgid "Edit user %(user_name)s"
#~ msgstr "Modifier lutilisateur %(user_name)s"
#~ msgid "User information"
#~ msgstr "Informations de lutilisateur"
#~ msgid ""
#~ "If the user has forgotten their password, use the below button to create "
#~ "a password reset link. The password reset link can be used once to change "
#~ "the password of the account. Transmit the link to the user via a secure "
#~ "channel."
#~ msgstr ""
#~ "Si lutilisateur a oublié son mot de passe, utilisez le bouton ci-dessous "
#~ "pour créer un lien de réinitialisation du mot de passe. Ce lien peut-être "
#~ "utilisé une fois pour changer le mot de passe du compte. Assurez-vous de "
#~ "communiquer le lien de façon sécurisée."
#~ msgid "<label for=\"link-field\">Link</label>"
#~ msgstr "<label for=\"link-field\">Lien</label>"

Binary file not shown.

View File

@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2021-02-23 07:55+0100\n"
"PO-Revision-Date: 2021-02-25 16:02+0000\n"
"POT-Creation-Date: 2021-03-25 17:32+0100\n"
"PO-Revision-Date: 2021-05-19 15:12+0000\n"
"Last-Translator: uira <inboxriau@andriana.id>\n"
"Language-Team: Indonesian <https://i18n.sotecware.net/projects/snikket/"
"web-portal/id/>\n"
@@ -17,255 +17,304 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 4.4.2\n"
"X-Generator: Weblate 4.5.1\n"
"Generated-By: Babel 2.9.0\n"
#: snikket_web/admin.py:60
msgid "Delete user permanently"
msgstr "Hapus permanen pengguna"
#: snikket_web/admin.py:59
msgid "Limited"
msgstr "Terbatas"
#: snikket_web/admin.py:73
msgid "User deleted"
msgstr "Pengguna dihapus"
#: snikket_web/admin.py:64 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_users.html:8
msgid "Login name"
msgstr "Nama login"
#: snikket_web/admin.py:116
#: snikket_web/admin.py:68 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:9 snikket_web/user.py:61
msgid "Display name"
msgstr "Nama tampilan"
#: snikket_web/admin.py:72 snikket_web/templates/admin_edit_user.html:33
msgid "Access Level"
msgstr "Level akses"
#: snikket_web/admin.py:77
msgid "Normal user"
msgstr "Pengguna normal"
#: snikket_web/admin.py:78
msgid "Administrator"
msgstr "Administrator"
#: snikket_web/admin.py:83
msgid "Update user"
msgstr "Memperbarui pengguna"
#: snikket_web/admin.py:87
msgid "Create password reset link"
msgstr "Buat tautan setel ulang kata sandi"
#: snikket_web/admin.py:105
msgid "Password reset link created"
msgstr "Tautan setel ulang kata sandi dibuat"
#: snikket_web/admin.py:122
#: snikket_web/admin.py:120
msgid "User information updated."
msgstr "Informasi pengguna diperbarui."
#: snikket_web/admin.py:142
msgid "Delete user permanently"
msgstr "Hapus permanen pengguna"
#: snikket_web/admin.py:155
msgid "User deleted"
msgstr "Pengguna dihapus"
#: snikket_web/admin.py:193
msgid "Password reset link not found"
msgstr "Tautan setel ulang kata sandi tidak ditemukan"
#: snikket_web/admin.py:205
msgid "Password reset link deleted"
msgstr "Tautan setel ulang kata sandi dihapus"
#: snikket_web/admin.py:141
#: snikket_web/admin.py:225
msgid "Invite to circle"
msgstr "Undang masuk kelompok"
#: snikket_web/admin.py:147
#: snikket_web/admin.py:231
msgid "At least one circle must be selected"
msgstr "Minimal satu kelompok harus dipilih"
#: snikket_web/admin.py:152
#: snikket_web/admin.py:236
msgid "Valid for"
msgstr "Valid selama"
#: snikket_web/admin.py:154
#: snikket_web/admin.py:238
msgid "One hour"
msgstr "Satu jam"
#: snikket_web/admin.py:155
#: snikket_web/admin.py:239
msgid "Twelve hours"
msgstr "Dua belas jam"
#: snikket_web/admin.py:156
#: snikket_web/admin.py:240
msgid "One day"
msgstr "Satu hari"
#: snikket_web/admin.py:157
#: snikket_web/admin.py:241
msgid "One week"
msgstr "Satu minggu"
#: snikket_web/admin.py:158
#: snikket_web/admin.py:242
msgid "Four weeks"
msgstr "Empat minggu"
#: snikket_web/admin.py:164 snikket_web/templates/admin_edit_invite.html:17
#: snikket_web/admin.py:248 snikket_web/templates/admin_edit_invite.html:17
msgid "Invitation type"
msgstr "Jenis undangan"
#: snikket_web/admin.py:166 snikket_web/templates/library.j2:116
#: snikket_web/admin.py:250 snikket_web/templates/library.j2:116
msgid "Individual"
msgstr "Individu"
#: snikket_web/admin.py:167 snikket_web/templates/library.j2:114
#: snikket_web/admin.py:251 snikket_web/templates/library.j2:114
msgid "Group"
msgstr "Grup"
#: snikket_web/admin.py:173
#: snikket_web/admin.py:257
msgid "New invitation link"
msgstr "Tautan undangan baru"
#: snikket_web/admin.py:235
#: snikket_web/admin.py:319
msgid "Revoke"
msgstr "Batalkan"
#: snikket_web/admin.py:259
#: snikket_web/admin.py:343
msgid "Invitation created"
msgstr "Undangan dibuat"
#: snikket_web/admin.py:275
#: snikket_web/admin.py:359
msgid "No such invitation exists"
msgstr "Undangan tidak tersedia"
#: snikket_web/admin.py:290
#: snikket_web/admin.py:374
msgid "Invitation revoked"
msgstr "Undangan dibatalkan"
#: snikket_web/admin.py:307 snikket_web/admin.py:355
#: snikket_web/admin.py:391 snikket_web/admin.py:439
msgid "Name"
msgstr "Nama"
#: snikket_web/admin.py:312 snikket_web/templates/admin_circles.html:47
#: snikket_web/admin.py:396 snikket_web/templates/admin_circles.html:47
msgid "Create circle"
msgstr "Buat kelompok"
#: snikket_web/admin.py:342
#: snikket_web/admin.py:426
msgid "Circle created"
msgstr "Kelompok dibuat"
#: snikket_web/admin.py:360
#: snikket_web/admin.py:444
msgid "Select user"
msgstr "Pilih pengguna"
#: snikket_web/admin.py:365
#: snikket_web/admin.py:449
msgid "Update circle"
msgstr "Memperbarui kelompok"
#: snikket_web/admin.py:369
#: snikket_web/admin.py:453
msgid "Delete circle permanently"
msgstr "Hapus kelompok secara permanen"
#: snikket_web/admin.py:375
#: snikket_web/admin.py:459
msgid "Add user"
msgstr "Tambah pengguna"
#: snikket_web/admin.py:391
#: snikket_web/admin.py:475
msgid "No such circle exists"
msgstr "Kelompok tersebut tidak ada"
#: snikket_web/admin.py:428
#: snikket_web/admin.py:512
msgid "Circle data updated"
msgstr "Data kelompok diperbarui"
#: snikket_web/admin.py:434
#: snikket_web/admin.py:518
msgid "Circle deleted"
msgstr "Kelompok dihapus"
#: snikket_web/admin.py:445
#: snikket_web/admin.py:529
msgid "User added to circle"
msgstr "Pengguna ditambahkan ke kelompok"
#: snikket_web/admin.py:454
#: snikket_web/admin.py:538
msgid "User removed from circle"
msgstr "Pengguna dihapus dari kelompok"
#: snikket_web/infra.py:40
#: snikket_web/infra.py:41
msgid "Main"
msgstr "Utama"
#: snikket_web/invite.py:104
#: snikket_web/invite.py:106
msgid "Username"
msgstr "Nama pengguna"
#: snikket_web/invite.py:108 snikket_web/invite.py:175 snikket_web/main.py:42
#: snikket_web/invite.py:110 snikket_web/invite.py:177 snikket_web/main.py:41
msgid "Password"
msgstr "Kata sandi"
#: snikket_web/invite.py:112 snikket_web/invite.py:179
#: snikket_web/invite.py:114 snikket_web/invite.py:181
msgid "Confirm password"
msgstr "Konfirmasi kata sandi"
#: snikket_web/invite.py:116 snikket_web/invite.py:183
msgid "The passwords must match"
msgstr "Kata sandi harus cocok"
#: snikket_web/invite.py:118 snikket_web/invite.py:185
msgid "The passwords must match."
msgstr "Kata sandi harus cocok."
#: snikket_web/invite.py:121
#: snikket_web/invite.py:123
msgid "Create account"
msgstr "Buat akun"
#: snikket_web/invite.py:148
msgid "That username is already taken"
msgstr "Nama pengguna itu sudah dipakai"
#: snikket_web/invite.py:150
msgid "That username is already taken."
msgstr "Nama pengguna itu sudah dipakai."
#: snikket_web/invite.py:152 snikket_web/invite.py:216
msgid "Registration was declined for unknown reasons"
msgstr "Pendaftaran ditolak karena alasan yang tidak diketahui"
#: snikket_web/invite.py:154 snikket_web/invite.py:218
msgid "Registration was declined for unknown reasons."
msgstr "Pendaftaran ditolak karena alasan yang tidak diketahui."
#: snikket_web/invite.py:156
msgid "The username is not valid"
msgstr "Nama pengguna tidak valid"
#: snikket_web/invite.py:158
msgid "The username is not valid."
msgstr "Nama pengguna tidak valid."
#: snikket_web/invite.py:188 snikket_web/templates/user_home.html:32
#: snikket_web/invite.py:190 snikket_web/templates/user_home.html:32
#: snikket_web/templates/user_passwd.html:29
msgid "Change password"
msgstr "Ganti kata sandi"
#: snikket_web/main.py:37
#: snikket_web/main.py:36
msgid "Address"
msgstr "Alamat"
#: snikket_web/main.py:47
#: snikket_web/main.py:46
msgid "Sign in"
msgstr "Masuk"
#: snikket_web/main.py:56
#: snikket_web/main.py:55
msgid "Invalid username or password."
msgstr "Nama pengguna atau kata sandi salah."
#: snikket_web/main.py:84
#: snikket_web/main.py:83
msgid "Login successful!"
msgstr "Login berhasil!"
#: snikket_web/user.py:28
#: snikket_web/user.py:27
msgid "Current password"
msgstr "Kata sandi sekarang"
#: snikket_web/user.py:33
#: snikket_web/user.py:32
msgid "New password"
msgstr "Kata sandi baru"
#: snikket_web/user.py:38
#: snikket_web/user.py:37
msgid "Confirm new password"
msgstr "Konfirmasi kata sandi"
#: snikket_web/user.py:42
msgid "The new passwords must match"
msgstr "Kata sandi baru harus cocok"
#: snikket_web/user.py:41
msgid "The new passwords must match."
msgstr "Kata sandi baru harus cocok."
#: snikket_web/user.py:49
#: snikket_web/user.py:48
msgid "Sign out"
msgstr "Keluar"
#: snikket_web/user.py:54
#: snikket_web/user.py:53
msgid "Nobody"
msgstr "Tak seorangpun"
#: snikket_web/user.py:55
#: snikket_web/user.py:54
msgid "Friends only"
msgstr "Hanya teman"
#: snikket_web/user.py:56
#: snikket_web/user.py:55
msgid "Everyone"
msgstr "Semua orang"
#: snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:11 snikket_web/user.py:62
msgid "Display name"
msgstr "Nama tampilan"
#: snikket_web/user.py:66
#: snikket_web/user.py:65
msgid "Avatar"
msgstr "Gambar profil"
#: snikket_web/user.py:70
#: snikket_web/user.py:69
msgid "Profile visibility"
msgstr "Visibilitas profil"
#: snikket_web/user.py:75
#: snikket_web/user.py:74
msgid "Update profile"
msgstr "Perbarui profil"
#: snikket_web/user.py:100
msgid "Incorrect password"
msgstr "Kata sandi salah"
#: snikket_web/user.py:99
msgid "Incorrect password."
msgstr "Kata sandi salah."
#: snikket_web/user.py:104
#: snikket_web/user.py:103
msgid "Password changed"
msgstr "Kata sandi diganti"
#: snikket_web/user.py:146
#: snikket_web/user.py:111
msgid ""
"The chosen avatar is too big. To be able to upload larger avatars, please "
"use the app."
msgstr ""
"Avatar yang dipilih terlalu besar. Untuk dapat mengunggah avatar yang lebih "
"besar, sila gunakan aplikasi."
#: snikket_web/user.py:159
msgid "Profile updated"
msgstr "Profil diperbarui"
#: snikket_web/templates/unauth.html:18 snikket_web/user.py:167
msgid "Error"
msgstr "Kesalahan"
#: snikket_web/templates/_footer.html:4
#, python-format
msgid "A <a href=\"%(about_url)s\">Snikket</a> service"
@@ -399,7 +448,7 @@ msgstr "Anggota"
#: snikket_web/templates/admin_circles.html:15
#: snikket_web/templates/admin_invites.html:24
#: snikket_web/templates/admin_users.html:12
#: snikket_web/templates/admin_users.html:10
msgid "Actions"
msgstr "Tindakan"
@@ -474,12 +523,12 @@ msgid "Copy complete output"
msgstr "Salin keluaran lengkap"
#: snikket_web/templates/admin_delete_user.html:4
#: snikket_web/templates/admin_users.html:22
#, python-format
msgid "Delete user %(user_name)s"
msgstr "Hapus pengguna %(user_name)s"
#: snikket_web/templates/admin_delete_user.html:6
#: snikket_web/templates/admin_edit_user.html:54
msgid "Delete user"
msgstr "Hapus pengguna"
@@ -487,11 +536,6 @@ msgstr "Hapus pengguna"
msgid "Are you sure you want to delete the following user?"
msgstr "Apakah anda yakin mau menghapus pengguna tersebut?"
#: snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_users.html:10
msgid "Login name"
msgstr "Nama login"
#: snikket_web/templates/admin_delete_user.html:15
msgid "Danger"
msgstr "Berbahaya"
@@ -507,12 +551,10 @@ msgstr ""
"strong>"
#: snikket_web/templates/admin_delete_user.html:19
#: snikket_web/templates/admin_edit_circle.html:44
#: snikket_web/templates/admin_edit_invite.html:49
#: snikket_web/templates/admin_reset_user_password.html:25
#: snikket_web/templates/user_logout.html:10
#: snikket_web/templates/user_passwd.html:27
#: snikket_web/templates/user_profile.html:28
#: snikket_web/templates/user_profile.html:32
msgid "Back"
msgstr "Kembali"
@@ -545,6 +587,10 @@ msgstr "Informasi kelompok"
msgid "This circle has no group chat associated."
msgstr "Kelompok ini tidak memiliki percakapan grup."
#: snikket_web/templates/admin_edit_circle.html:44
msgid "Return to circle list"
msgstr "Kembali ke daftar circle"
#: snikket_web/templates/admin_edit_circle.html:48
msgid "Delete circle"
msgstr "Hapus kelompok"
@@ -634,6 +680,96 @@ msgstr "Pengguna akan ditambahkan ke kontak %(peer_jid)s."
msgid "Created"
msgstr "Dibuat"
#: snikket_web/templates/admin_edit_invite.html:48
msgid "Return to invitation list"
msgstr "Kembali ke daftar undangan"
#: snikket_web/templates/admin_edit_user.html:5
msgid ""
"Limited users can interact with users on the same Snikket service and be "
"members of circles."
msgstr ""
"Pengguna terbatas dapat berinteraksi dengan pengguna di layanan Snikket yang "
"sama dan menjadi anggota kelompok."
#: snikket_web/templates/admin_edit_user.html:7
msgid ""
"Like limited users and can also interact with users on other Snikket "
"services."
msgstr ""
"Seperti pengguna terbatas dan juga dapat berinteraksi dengan pengguna di "
"layanan Snikket lain."
#: snikket_web/templates/admin_edit_user.html:9
msgid "Like normal users and can access the admin panel in the web portal."
msgstr "Seperti pengguna biasa dan dapat mengakses panel admin di portal web."
#: snikket_web/templates/admin_edit_user.html:20
#: snikket_web/templates/admin_users.html:28
#, python-format
msgid "Edit user %(user_name)s"
msgstr "Edit pengguna %(user_name)s"
#: snikket_web/templates/admin_edit_user.html:23
msgid "Edit user"
msgstr "Edit pengguna"
#: snikket_web/templates/admin_edit_user.html:27
msgid "The login name cannot be changed."
msgstr "Nama login tidak dapat diganti."
#: snikket_web/templates/admin_edit_user.html:34
msgid ""
"The access level of a user determines what interactions are allowed for them "
"on your Snikket service."
msgstr ""
"Level akses pengguna menentukan interaksi apa yang diizinkan untuk mereka di "
"layanan Snikket Anda."
#: snikket_web/templates/admin_edit_user.html:41
#, python-format
msgid "<strong>%(title)s%(icon)s</strong><p>%(description)s</p>"
msgstr "<strong>%(title)s%(icon)s</strong><p>%(description)s</p>"
#: snikket_web/templates/admin_edit_user.html:51
msgid "Return to user list"
msgstr "Kembali ke daftar pengguna"
#: snikket_web/templates/admin_edit_user.html:59
msgid "Further actions"
msgstr "Tindakan lanjutan"
#: snikket_web/templates/admin_edit_user.html:61
msgid "Reset password"
msgstr "Setel kata sandi"
#: snikket_web/templates/admin_edit_user.html:64
msgid ""
"If the user has lost their password, you can use the button below to create "
"a special link which allows to change the password of the account, once."
msgstr ""
"Jika pengguna lupa kata sandi, Anda dapat menggunakan tombol di bawah ini "
"untuk membuat tautan khusus yang memungkinkan untuk mengubah kata sandi "
"akun, sekali."
#: snikket_web/templates/admin_edit_user.html:69
msgid "Debug information"
msgstr "Informasi debug"
#: snikket_web/templates/admin_edit_user.html:71
msgid ""
"In some cases, extended information about the user account and the connected "
"devices is necessary to troubleshoot issues. The button below reveals this "
"(sensitive) information."
msgstr ""
"Dalam beberapa kasus, informasi tambahan tentang akun pengguna dan perangkat "
"yang terhubung diperlukan untuk memecahkan masalah. Tombol di bawah "
"mengungkapkan informasi (sensitif) ini."
#: snikket_web/templates/admin_edit_user.html:75
msgid "Show debug information"
msgstr "Tampilkan informasi debug"
#: snikket_web/templates/admin_home.html:4
msgid "Welcome to the admin panel!"
msgstr "Selamat datang di panel administrator!"
@@ -730,15 +866,21 @@ msgstr ""
msgid "Destroy link"
msgstr "Hancurkan tautan"
#: snikket_web/templates/admin_users.html:25
#, python-format
msgid "Show debug information for %(user_name)s"
msgstr "Lihat informasi debug untuk %(user_name)s"
#: snikket_web/templates/admin_users.html:19
msgid "The user is an administrator."
msgstr "Pengguna adalah administrator."
#: snikket_web/templates/admin_users.html:28
#, python-format
msgid "Create password reset link for %(user_name)s"
msgstr "Buat tautan setel ulang kata sandi untuk %(user_name)s"
#: snikket_web/templates/admin_users.html:19
msgid " (Administrator)"
msgstr " (Admin)"
#: snikket_web/templates/admin_users.html:22
msgid "The user is restricted."
msgstr "Pengguna terbatas."
#: snikket_web/templates/admin_users.html:22
msgid " (Restricted)"
msgstr " (Terbatas)"
#: snikket_web/templates/app.html:4
msgid "Snikket Web Portal"
@@ -827,18 +969,20 @@ msgstr ""
"menggunakan aplikasi dengan mengklik tombol di bawah ini:"
#: snikket_web/templates/invite_register.html:14
#: snikket_web/templates/invite_view.html:38
#: snikket_web/templates/invite_view.html:39
msgid "App already installed?"
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:40
#: snikket_web/templates/invite_view.html:41
#: snikket_web/templates/invite_view.html:106
#: snikket_web/templates/invite_view.html:134
msgid "Open the app"
msgstr "Buka aplikasi"
#: snikket_web/templates/invite_register.html:18
#: snikket_web/templates/invite_view.html:42
#: snikket_web/templates/invite_view.html:43
msgid "This button works only if you have the app installed already!"
msgstr "Tombol ini hanya berfungsi jika Anda sudah memasang aplikasinya!"
@@ -936,7 +1080,7 @@ msgstr ""
"tombol Pindai di bagian atas."
#: snikket_web/templates/invite_reset_view.html:26
#: snikket_web/templates/invite_view.html:76
#: 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 "
@@ -951,7 +1095,7 @@ msgid "You will then be prompted to enter a new password for your account."
msgstr "Anda akan diminta untuk memasukkan kata sandi baru untuk akun Anda."
#: snikket_web/templates/invite_reset_view.html:29
#: snikket_web/templates/invite_view.html:44
#: snikket_web/templates/invite_view.html:45
msgid "Alternatives"
msgstr "Alternatif"
@@ -1037,14 +1181,19 @@ msgid "Get it on Google Play"
msgstr "Dapatkan di Google Play"
#: snikket_web/templates/invite_view.html:30
#: snikket_web/templates/invite_view.html:102
msgid "Download on the App Store"
msgstr "Unduh di App Store"
#: snikket_web/templates/invite_view.html:34
#: snikket_web/templates/invite_view.html:32
msgid "Get it on F-Droid"
msgstr "Dapatkan di F-Droid"
#: snikket_web/templates/invite_view.html:35
msgid "Send to mobile device"
msgstr "Dikirim ke telepon seluler"
#: snikket_web/templates/invite_view.html:37
#: snikket_web/templates/invite_view.html:38
msgid ""
"After installation the app should automatically open and prompt you to "
"create an account. If not, simply click the button below."
@@ -1052,7 +1201,7 @@ msgstr ""
"Setelah instalasi, aplikasi akan terbuka otomatis dan meminta Anda untuk "
"membuat akun. Jika tidak, cukup klik tombol di bawah."
#: snikket_web/templates/invite_view.html:45
#: snikket_web/templates/invite_view.html:46
#, python-format
msgid ""
"You can connect to Snikket using any XMPP-compatible software. If the button "
@@ -1063,16 +1212,20 @@ msgstr ""
"XMPP. Jika tombol di atas tidak berfungsi dengan aplikasi, Anda mungkin "
"perlu <a href=\"%(register_url)s\">mendaftarkan akun secara manual</a>."
#: snikket_web/templates/invite_view.html:51
#: snikket_web/templates/invite_view.html:52
msgid "Scan invite code"
msgstr "Pindai kode undangan"
#: snikket_web/templates/invite_view.html:54
#: snikket_web/templates/invite_view.html:83
#: snikket_web/templates/invite_view.html:55
#: 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"
#: snikket_web/templates/invite_view.html:57
#: snikket_web/templates/invite_view.html:58
msgid ""
"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."
@@ -1081,22 +1234,22 @@ msgstr ""
"kode dengan kamera. Anda dapat menggunakan aplikasi pemindai QR atau "
"aplikasi Snikket."
#: snikket_web/templates/invite_view.html:62
#: snikket_web/templates/invite_view.html:63
msgid "Using a QR code scanner"
msgstr "Menggunakan pemindai kode QR"
#: snikket_web/templates/invite_view.html:64
#: snikket_web/templates/invite_view.html:65
msgid "Using the Snikket app"
msgstr "Menggunakan Snikket"
#: snikket_web/templates/invite_view.html:69
#: 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:75
#: 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."
@@ -1104,6 +1257,48 @@ 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: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 ""
"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: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: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 ""
"Setelah instalasi selesai, Anda dapat kembali ke halaman ini dan mengetuk "
"tombol \"Buka aplikasi\" untuk melanjutkan pemasangan:"
#: 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: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 ""
"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:129
msgid "First install Snikket from F-Droid using the button below:"
msgstr "Pertama install Snikket dari F-Droid menggunakan tombol di bawah ini:"
#: snikket_web/templates/library.j2:18
msgid "Copy link"
msgstr "Salin tautan"
@@ -1133,31 +1328,23 @@ msgstr "Login Snikket"
msgid "Enter your Snikket address and password to manage your account."
msgstr "Ketik alamat Snikket dan kata sandinya untuk mengelola akun anda."
#: snikket_web/templates/login.html:18
msgid "Login failed"
msgstr "Percobaan masuk gagal"
#: snikket_web/templates/login.html:23
#: snikket_web/templates/login.html:19
msgid "Incorrect address"
msgstr "Alamat salah"
#: snikket_web/templates/login.html:24
#: snikket_web/templates/login.html:20
#, python-format
msgid ""
"This Snikket service only hosts addresses ending in <em>@%(snikket_domain)s</"
"em>. Your password was not sent."
msgstr ""
"Layanan Snikket ini hanya menghosting alamat yang diakhiri dengan "
"<em>@%(snikket_domain)s</em>. Kata sandi Anda tidak terkirim."
"Layanan Snikket ini hanya menghosting alamat yang diakhiri dengan <em>@"
"%(snikket_domain)s</em>. Kata sandi Anda tidak terkirim."
#: snikket_web/templates/unauth.html:16
msgid "Operation successful"
msgstr "Operasi berhasil"
#: snikket_web/templates/unauth.html:18
msgid "Error"
msgstr "Kesalahan"
#: snikket_web/templates/user_home.html:9
msgid "Welcome!"
msgstr "Selamat datang!"
@@ -1233,11 +1420,11 @@ msgstr "Perbarui profil anda"
msgid "Profile"
msgstr "Profil"
#: snikket_web/templates/user_profile.html:19
#: snikket_web/templates/user_profile.html:23
msgid "Visibility"
msgstr "Visibilitas"
#: snikket_web/templates/user_profile.html:20
#: snikket_web/templates/user_profile.html:24
msgid ""
"This section allows you to control who can see your profile information, "
"like avatar and nickname."
@@ -1245,26 +1432,15 @@ msgstr ""
"Bagian ini memungkinkan Anda untuk mengontrol siapa yang bisa melihat profil "
"Anda, seperti avatar dan nama panggilan."
#~ msgid "Create password reset link for %(user_name)s"
#~ msgstr "Buat tautan setel ulang kata sandi untuk %(user_name)s"
#~ msgid "Login failed"
#~ msgstr "Percobaan masuk gagal"
#~ msgid "Not on mobile?"
#~ msgstr "Bukan di ponsel?"
#~ msgid "Edit user %(user_name)s"
#~ msgstr "Edit pengguna %(user_name)s"
#~ msgid "User information"
#~ msgstr "Informasi pengguna"
#~ msgid ""
#~ "If the user has forgotten their password, use the below button to create "
#~ "a password reset link. The password reset link can be used once to change "
#~ "the password of the account. Transmit the link to the user via a secure "
#~ "channel."
#~ msgstr ""
#~ "Jika pengguna lupa kata sandi, gunakan tombol di bawah untuk membuat "
#~ "tautan setel ulang kata sandi. Tautan pengaturan ulang kata sandi dapat "
#~ "digunakan satu kali untuk mengubah kata sandi akun. Kirimkan link ke "
#~ "pengguna melalui saluran aman."
#~ msgid "<label for=\"link-field\">Link</label>"
#~ msgstr "<label for=\"link-field\">Tautan</label>"

Binary file not shown.

View File

@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2021-02-23 07:55+0100\n"
"PO-Revision-Date: 2021-02-25 16:02+0000\n"
"POT-Creation-Date: 2021-03-25 17:32+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-portal/it/>\n"
@@ -17,255 +17,304 @@ msgstr ""
"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.4.2\n"
"X-Generator: Weblate 4.5.1\n"
"Generated-By: Babel 2.9.0\n"
#: snikket_web/admin.py:60
msgid "Delete user permanently"
msgstr "Elimina definitivamente l'utente"
#: snikket_web/admin.py:59
msgid "Limited"
msgstr "Limitato"
#: snikket_web/admin.py:73
msgid "User deleted"
msgstr "Utente rimosso"
#: snikket_web/admin.py:64 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_users.html:8
msgid "Login name"
msgstr "Nome utente"
#: snikket_web/admin.py:116
#: snikket_web/admin.py:68 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:9 snikket_web/user.py:61
msgid "Display name"
msgstr "Nome visualizzato"
#: snikket_web/admin.py:72 snikket_web/templates/admin_edit_user.html:33
msgid "Access Level"
msgstr "Livello di accesso"
#: snikket_web/admin.py:77
msgid "Normal user"
msgstr "Utente normale"
#: snikket_web/admin.py:78
msgid "Administrator"
msgstr "Amministratore"
#: snikket_web/admin.py:83
msgid "Update user"
msgstr "Aggiorna utente"
#: snikket_web/admin.py:87
msgid "Create password reset link"
msgstr "Crea collegamento per reimpostare la password"
#: snikket_web/admin.py:105
msgid "Password reset link created"
msgstr "Creato collegamento per reimpostare la password"
#: snikket_web/admin.py:122
#: snikket_web/admin.py:120
msgid "User information updated."
msgstr "Informazioni utente aggiornate."
#: snikket_web/admin.py:142
msgid "Delete user permanently"
msgstr "Elimina definitivamente l'utente"
#: snikket_web/admin.py:155
msgid "User deleted"
msgstr "Utente rimosso"
#: snikket_web/admin.py:193
msgid "Password reset link not found"
msgstr "Collegamento per reimpostare la password non trovato"
#: snikket_web/admin.py:205
msgid "Password reset link deleted"
msgstr "Eliminato collegamento per reimpostare la password"
#: snikket_web/admin.py:141
#: snikket_web/admin.py:225
msgid "Invite to circle"
msgstr "Invita nella cerchia"
#: snikket_web/admin.py:147
#: snikket_web/admin.py:231
msgid "At least one circle must be selected"
msgstr "Devi selezionare almeno una cerchia"
#: snikket_web/admin.py:152
#: snikket_web/admin.py:236
msgid "Valid for"
msgstr "Valido per"
#: snikket_web/admin.py:154
#: snikket_web/admin.py:238
msgid "One hour"
msgstr "Un'ora"
#: snikket_web/admin.py:155
#: snikket_web/admin.py:239
msgid "Twelve hours"
msgstr "Dodici ore"
#: snikket_web/admin.py:156
#: snikket_web/admin.py:240
msgid "One day"
msgstr "Un giorno"
#: snikket_web/admin.py:157
#: snikket_web/admin.py:241
msgid "One week"
msgstr "Una settimana"
#: snikket_web/admin.py:158
#: snikket_web/admin.py:242
msgid "Four weeks"
msgstr "Quattro settimane"
#: snikket_web/admin.py:164 snikket_web/templates/admin_edit_invite.html:17
#: snikket_web/admin.py:248 snikket_web/templates/admin_edit_invite.html:17
msgid "Invitation type"
msgstr "Tipo di invito"
#: snikket_web/admin.py:166 snikket_web/templates/library.j2:116
#: snikket_web/admin.py:250 snikket_web/templates/library.j2:116
msgid "Individual"
msgstr "Individuale"
#: snikket_web/admin.py:167 snikket_web/templates/library.j2:114
#: snikket_web/admin.py:251 snikket_web/templates/library.j2:114
msgid "Group"
msgstr "Gruppo"
#: snikket_web/admin.py:173
#: snikket_web/admin.py:257
msgid "New invitation link"
msgstr "Nuovo collegamento di invito"
#: snikket_web/admin.py:235
#: snikket_web/admin.py:319
msgid "Revoke"
msgstr "Revoca"
#: snikket_web/admin.py:259
#: snikket_web/admin.py:343
msgid "Invitation created"
msgstr "Invito creato"
#: snikket_web/admin.py:275
#: snikket_web/admin.py:359
msgid "No such invitation exists"
msgstr "Questo invito non esiste"
#: snikket_web/admin.py:290
#: snikket_web/admin.py:374
msgid "Invitation revoked"
msgstr "Invito revocato"
#: snikket_web/admin.py:307 snikket_web/admin.py:355
#: snikket_web/admin.py:391 snikket_web/admin.py:439
msgid "Name"
msgstr "Nome"
#: snikket_web/admin.py:312 snikket_web/templates/admin_circles.html:47
#: snikket_web/admin.py:396 snikket_web/templates/admin_circles.html:47
msgid "Create circle"
msgstr "Crea cerchia"
#: snikket_web/admin.py:342
#: snikket_web/admin.py:426
msgid "Circle created"
msgstr "Cerchia creata"
#: snikket_web/admin.py:360
#: snikket_web/admin.py:444
msgid "Select user"
msgstr "Seleziona utente"
#: snikket_web/admin.py:365
#: snikket_web/admin.py:449
msgid "Update circle"
msgstr "Modifica cerchia"
#: snikket_web/admin.py:369
#: snikket_web/admin.py:453
msgid "Delete circle permanently"
msgstr "Elimina cerchia definitivamente"
#: snikket_web/admin.py:375
#: snikket_web/admin.py:459
msgid "Add user"
msgstr "Aggiungi utente"
#: snikket_web/admin.py:391
#: snikket_web/admin.py:475
msgid "No such circle exists"
msgstr "Questa cerchia non esiste"
#: snikket_web/admin.py:428
#: snikket_web/admin.py:512
msgid "Circle data updated"
msgstr "Dati della cerchia aggiornati"
#: snikket_web/admin.py:434
#: snikket_web/admin.py:518
msgid "Circle deleted"
msgstr "Cerchia eliminata"
#: snikket_web/admin.py:445
#: snikket_web/admin.py:529
msgid "User added to circle"
msgstr "Utente aggiunto alla cerchia"
#: snikket_web/admin.py:454
#: snikket_web/admin.py:538
msgid "User removed from circle"
msgstr "Utente rimosso dalla cerchia"
#: snikket_web/infra.py:40
#: snikket_web/infra.py:41
msgid "Main"
msgstr "Principale"
#: snikket_web/invite.py:104
#: snikket_web/invite.py:106
msgid "Username"
msgstr "Nome utente"
#: snikket_web/invite.py:108 snikket_web/invite.py:175 snikket_web/main.py:42
#: snikket_web/invite.py:110 snikket_web/invite.py:177 snikket_web/main.py:41
msgid "Password"
msgstr "Password"
#: snikket_web/invite.py:112 snikket_web/invite.py:179
#: snikket_web/invite.py:114 snikket_web/invite.py:181
msgid "Confirm password"
msgstr "Conferma password"
#: snikket_web/invite.py:116 snikket_web/invite.py:183
msgid "The passwords must match"
msgstr "Le password devono essere identiche"
#: snikket_web/invite.py:118 snikket_web/invite.py:185
msgid "The passwords must match."
msgstr "Le password devono essere identiche."
#: snikket_web/invite.py:121
#: snikket_web/invite.py:123
msgid "Create account"
msgstr "Crea utenza"
#: snikket_web/invite.py:148
msgid "That username is already taken"
msgstr "Nome utente già in uso"
#: snikket_web/invite.py:150
msgid "That username is already taken."
msgstr "Nome utente già in uso."
#: snikket_web/invite.py:152 snikket_web/invite.py:216
msgid "Registration was declined for unknown reasons"
msgstr "Registrazione rifiutata per motivi sconosciuti"
#: snikket_web/invite.py:154 snikket_web/invite.py:218
msgid "Registration was declined for unknown reasons."
msgstr "Registrazione rifiutata per motivi sconosciuti."
#: snikket_web/invite.py:156
msgid "The username is not valid"
msgstr "Nome utente non valido"
#: snikket_web/invite.py:158
msgid "The username is not valid."
msgstr "Nome utente non valido."
#: snikket_web/invite.py:188 snikket_web/templates/user_home.html:32
#: snikket_web/invite.py:190 snikket_web/templates/user_home.html:32
#: snikket_web/templates/user_passwd.html:29
msgid "Change password"
msgstr "Cambia password"
#: snikket_web/main.py:37
#: snikket_web/main.py:36
msgid "Address"
msgstr "Indirizzo"
#: snikket_web/main.py:47
#: snikket_web/main.py:46
msgid "Sign in"
msgstr "Accedi"
#: snikket_web/main.py:56
#: snikket_web/main.py:55
msgid "Invalid username or password."
msgstr "Nome utente o password non validi."
#: snikket_web/main.py:84
#: snikket_web/main.py:83
msgid "Login successful!"
msgstr "Accesso riuscito!"
#: snikket_web/user.py:28
#: snikket_web/user.py:27
msgid "Current password"
msgstr "Password attuale"
#: snikket_web/user.py:33
#: snikket_web/user.py:32
msgid "New password"
msgstr "Nuova password"
#: snikket_web/user.py:38
#: snikket_web/user.py:37
msgid "Confirm new password"
msgstr "Conferma nuova password"
#: snikket_web/user.py:42
msgid "The new passwords must match"
msgstr "Le nuove password devono essere identiche"
#: snikket_web/user.py:41
msgid "The new passwords must match."
msgstr "Le nuove password devono essere identiche."
#: snikket_web/user.py:49
#: snikket_web/user.py:48
msgid "Sign out"
msgstr "Esci"
#: snikket_web/user.py:54
#: snikket_web/user.py:53
msgid "Nobody"
msgstr "Nessuno"
#: snikket_web/user.py:55
#: snikket_web/user.py:54
msgid "Friends only"
msgstr "Solo amici"
#: snikket_web/user.py:56
#: snikket_web/user.py:55
msgid "Everyone"
msgstr "Chiunque"
#: snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:11 snikket_web/user.py:62
msgid "Display name"
msgstr "Nome visualizzato"
#: snikket_web/user.py:66
#: snikket_web/user.py:65
msgid "Avatar"
msgstr "Avatar"
#: snikket_web/user.py:70
#: snikket_web/user.py:69
msgid "Profile visibility"
msgstr "Visibilità del profilo"
#: snikket_web/user.py:75
#: snikket_web/user.py:74
msgid "Update profile"
msgstr "Modifica profilo"
#: snikket_web/user.py:100
msgid "Incorrect password"
msgstr "Password errata"
#: snikket_web/user.py:99
msgid "Incorrect password."
msgstr "Password errata."
#: snikket_web/user.py:104
#: snikket_web/user.py:103
msgid "Password changed"
msgstr "Password cambiata"
#: snikket_web/user.py:146
#: snikket_web/user.py:111
msgid ""
"The chosen avatar is too big. To be able to upload larger avatars, please "
"use the app."
msgstr ""
"L'avatar scelto è troppo grande. Per utilizzare un avatar così grande, "
"utilizzate l'app."
#: snikket_web/user.py:159
msgid "Profile updated"
msgstr "Profilo aggiornato"
#: snikket_web/templates/unauth.html:18 snikket_web/user.py:167
msgid "Error"
msgstr "Errore"
#: snikket_web/templates/_footer.html:4
#, python-format
msgid "A <a href=\"%(about_url)s\">Snikket</a> service"
@@ -350,8 +399,8 @@ msgid ""
"\"%(trademarks_url)s\">Snikket Trademarks information page</a>."
msgstr ""
"\"Snikket\" e il logo del pappagallo sono marchi di Snikket Community "
"Interest Company. Per maggiori informazioni sui marchi, visita la <a href=\""
"%(trademarks_url)s\">pagina informativa sui marchi Snikket</a>."
"Interest Company. Per maggiori informazioni sui marchi, visita la <a href="
"\"%(trademarks_url)s\">pagina informativa sui marchi Snikket</a>."
#: snikket_web/templates/about.html:19
msgid "Software Versions"
@@ -398,7 +447,7 @@ msgstr "Membri"
#: snikket_web/templates/admin_circles.html:15
#: snikket_web/templates/admin_invites.html:24
#: snikket_web/templates/admin_users.html:12
#: snikket_web/templates/admin_users.html:10
msgid "Actions"
msgstr "Azioni"
@@ -473,12 +522,12 @@ msgid "Copy complete output"
msgstr "Copia l'intero output"
#: snikket_web/templates/admin_delete_user.html:4
#: snikket_web/templates/admin_users.html:22
#, python-format
msgid "Delete user %(user_name)s"
msgstr "Elimina utente %(user_name)s"
#: snikket_web/templates/admin_delete_user.html:6
#: snikket_web/templates/admin_edit_user.html:54
msgid "Delete user"
msgstr "Elimina utente"
@@ -486,11 +535,6 @@ msgstr "Elimina utente"
msgid "Are you sure you want to delete the following user?"
msgstr "Sei sicura/o di volere eliminare il seguente utente?"
#: snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_users.html:10
msgid "Login name"
msgstr "Nome utente"
#: snikket_web/templates/admin_delete_user.html:15
msgid "Danger"
msgstr "Pericolo"
@@ -506,12 +550,10 @@ msgstr ""
"sarà possibile tornare sui propri passi!</strong>"
#: snikket_web/templates/admin_delete_user.html:19
#: snikket_web/templates/admin_edit_circle.html:44
#: snikket_web/templates/admin_edit_invite.html:49
#: snikket_web/templates/admin_reset_user_password.html:25
#: snikket_web/templates/user_logout.html:10
#: snikket_web/templates/user_passwd.html:27
#: snikket_web/templates/user_profile.html:28
#: snikket_web/templates/user_profile.html:32
msgid "Back"
msgstr "Indietro"
@@ -545,6 +587,10 @@ msgstr "Informazioni cerchia"
msgid "This circle has no group chat associated."
msgstr "Questa cerchia non è collegata ad una chat di gruppo."
#: snikket_web/templates/admin_edit_circle.html:44
msgid "Return to circle list"
msgstr "Ritorna alle lista delle cerchie"
#: snikket_web/templates/admin_edit_circle.html:48
msgid "Delete circle"
msgstr "Elimina cerchia"
@@ -631,6 +677,98 @@ msgstr "L'utente verrà aggiunto come contatto di %(peer_jid)s."
msgid "Created"
msgstr "Creato"
#: snikket_web/templates/admin_edit_invite.html:48
msgid "Return to invitation list"
msgstr "Ritorna alla lista degli inviti"
#: snikket_web/templates/admin_edit_user.html:5
msgid ""
"Limited users can interact with users on the same Snikket service and be "
"members of circles."
msgstr ""
"Gli utenti limitati possono interagire con utenti sullo stesso servizio "
"Snikket ed essere membri di cerchie."
#: snikket_web/templates/admin_edit_user.html:7
msgid ""
"Like limited users and can also interact with users on other Snikket "
"services."
msgstr ""
"Come gli utenti limitati, e possono anche interagire con utenti di altri "
"servizi Snikket."
#: snikket_web/templates/admin_edit_user.html:9
msgid "Like normal users and can access the admin panel in the web portal."
msgstr ""
"Come gli utenti normali e possono accedere al pannello amministrativo del "
"portale web."
#: snikket_web/templates/admin_edit_user.html:20
#: snikket_web/templates/admin_users.html:28
#, python-format
msgid "Edit user %(user_name)s"
msgstr "Modifica utente %(user_name)s"
#: snikket_web/templates/admin_edit_user.html:23
msgid "Edit user"
msgstr "Modifica utente"
#: snikket_web/templates/admin_edit_user.html:27
msgid "The login name cannot be changed."
msgstr "Il nome di login non può essere cambiato."
#: snikket_web/templates/admin_edit_user.html:34
msgid ""
"The access level of a user determines what interactions are allowed for them "
"on your Snikket service."
msgstr ""
"Il livello di accesso di un utente determina quali interazioni gli sono "
"consentite sul tuo servizio Snikket."
#: snikket_web/templates/admin_edit_user.html:41
#, python-format
msgid "<strong>%(title)s%(icon)s</strong><p>%(description)s</p>"
msgstr "<strong>%(title)s%(icon)s</strong><p>%(description)s</p>"
#: snikket_web/templates/admin_edit_user.html:51
msgid "Return to user list"
msgstr "Ritorna alla lista utenti"
#: snikket_web/templates/admin_edit_user.html:59
msgid "Further actions"
msgstr "Azioni ulteriori"
#: snikket_web/templates/admin_edit_user.html:61
msgid "Reset password"
msgstr "Reimposta la password"
#: snikket_web/templates/admin_edit_user.html:64
msgid ""
"If the user has lost their password, you can use the button below to create "
"a special link which allows to change the password of the account, once."
msgstr ""
"Se l'utente ha perso la sua password, è possibile utilizzare il pulsante qui "
"sotto per creare un link speciale che permette di cambiare la password "
"dell'account, una sola volta."
#: snikket_web/templates/admin_edit_user.html:69
msgid "Debug information"
msgstr "Informazioni diagnostiche"
#: snikket_web/templates/admin_edit_user.html:71
msgid ""
"In some cases, extended information about the user account and the connected "
"devices is necessary to troubleshoot issues. The button below reveals this "
"(sensitive) information."
msgstr ""
"In alcuni casi, informazioni estese sull'account utente e sui dispositivi "
"collegati sono necessarie per risolvere i problemi. Il pulsante qui sotto "
"rivela queste informazioni (sensibili)."
#: snikket_web/templates/admin_edit_user.html:75
msgid "Show debug information"
msgstr "Mostra informazioni diagnostiche"
#: snikket_web/templates/admin_home.html:4
msgid "Welcome to the admin panel!"
msgstr "Benvenuta/o nel pannello amministrativo!"
@@ -727,15 +865,21 @@ msgstr ""
msgid "Destroy link"
msgstr "Elimina collegamento"
#: snikket_web/templates/admin_users.html:25
#, python-format
msgid "Show debug information for %(user_name)s"
msgstr "Mostra informazioni diagnostiche per %(user_name)s"
#: snikket_web/templates/admin_users.html:19
msgid "The user is an administrator."
msgstr "L'utente è un amministratore."
#: snikket_web/templates/admin_users.html:28
#, python-format
msgid "Create password reset link for %(user_name)s"
msgstr "Crea collegamento per reimpostare la password di %(user_name)s"
#: snikket_web/templates/admin_users.html:19
msgid " (Administrator)"
msgstr " (Amministratore)"
#: snikket_web/templates/admin_users.html:22
msgid "The user is restricted."
msgstr "L'utente è limitato."
#: snikket_web/templates/admin_users.html:22
msgid " (Restricted)"
msgstr " (Limitato)"
#: snikket_web/templates/app.html:4
msgid "Snikket Web Portal"
@@ -824,18 +968,20 @@ msgstr ""
"sottostante:"
#: snikket_web/templates/invite_register.html:14
#: snikket_web/templates/invite_view.html:38
#: snikket_web/templates/invite_view.html:39
msgid "App already installed?"
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:40
#: snikket_web/templates/invite_view.html:41
#: snikket_web/templates/invite_view.html:106
#: snikket_web/templates/invite_view.html:134
msgid "Open the app"
msgstr "Apri l'applicazione"
#: snikket_web/templates/invite_register.html:18
#: snikket_web/templates/invite_view.html:42
#: snikket_web/templates/invite_view.html:43
msgid "This button works only if you have the app installed already!"
msgstr ""
"Questo pulsante funziona soltanto se hai già installato l'applicazione!"
@@ -933,7 +1079,7 @@ msgstr ""
"Snikket utilizzando il pulsante di scansione in alto."
#: snikket_web/templates/invite_reset_view.html:26
#: snikket_web/templates/invite_view.html:76
#: 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 "
@@ -948,7 +1094,7 @@ msgid "You will then be prompted to enter a new password for your account."
msgstr "Ti verrà richiesto di inserire una nuova password per la tua utenza."
#: snikket_web/templates/invite_reset_view.html:29
#: snikket_web/templates/invite_view.html:44
#: snikket_web/templates/invite_view.html:45
msgid "Alternatives"
msgstr "Alternative"
@@ -1038,14 +1184,19 @@ msgid "Get it on Google Play"
msgstr "Scarica da Google Play"
#: snikket_web/templates/invite_view.html:30
#: snikket_web/templates/invite_view.html:102
msgid "Download on the App Store"
msgstr "Scarica dall'App Store"
#: snikket_web/templates/invite_view.html:34
#: snikket_web/templates/invite_view.html:32
msgid "Get it on F-Droid"
msgstr "Scaricalo da F-Droid"
#: snikket_web/templates/invite_view.html:35
msgid "Send to mobile device"
msgstr "Invia a dispositivo mobile"
#: snikket_web/templates/invite_view.html:37
#: snikket_web/templates/invite_view.html:38
msgid ""
"After installation the app should automatically open and prompt you to "
"create an account. If not, simply click the button below."
@@ -1054,7 +1205,7 @@ msgstr ""
"automaticamente chiedendo di creare un'utenza. Se non succede premi il "
"pulsante sottostante."
#: snikket_web/templates/invite_view.html:45
#: snikket_web/templates/invite_view.html:46
#, python-format
msgid ""
"You can connect to Snikket using any XMPP-compatible software. If the button "
@@ -1065,16 +1216,20 @@ msgstr ""
"il pulsante sopra non funziona potresti dover <a href=\"%(register_url)s"
"\">registrare l'utenza manualmente</a>."
#: snikket_web/templates/invite_view.html:51
#: snikket_web/templates/invite_view.html:52
msgid "Scan invite code"
msgstr "Scansiona il codice di invito"
#: snikket_web/templates/invite_view.html:54
#: snikket_web/templates/invite_view.html:83
#: snikket_web/templates/invite_view.html:55
#: 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"
#: snikket_web/templates/invite_view.html:57
#: snikket_web/templates/invite_view.html:58
msgid ""
"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."
@@ -1083,22 +1238,22 @@ msgstr ""
"con la fotocamera. Puoi usare un lettore di codici QR o l'applicazione "
"Snikket stessa."
#: snikket_web/templates/invite_view.html:62
#: 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:64
#: snikket_web/templates/invite_view.html:65
msgid "Using the Snikket app"
msgstr "Usa l'applicazione Snikket"
#: snikket_web/templates/invite_view.html:69
#: 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:75
#: 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."
@@ -1106,6 +1261,51 @@ 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: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 ""
"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: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: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 ""
"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:121
#: snikket_web/templates/invite_view.html:130
msgid "Install via F-Droid"
msgstr "Installa da F-Droid"
#: 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 ""
"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: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:"
#: snikket_web/templates/library.j2:18
msgid "Copy link"
msgstr "Copia collegamento"
@@ -1138,31 +1338,23 @@ msgid "Enter your Snikket address and password to manage your account."
msgstr ""
"Inserisci il tuo indirizzo Snikket e la password per gestire la tua utenza."
#: snikket_web/templates/login.html:18
msgid "Login failed"
msgstr "Accesso non riuscito"
#: snikket_web/templates/login.html:23
#: snikket_web/templates/login.html:19
msgid "Incorrect address"
msgstr "Indirizzo errato"
#: snikket_web/templates/login.html:24
#: snikket_web/templates/login.html:20
#, python-format
msgid ""
"This Snikket service only hosts addresses ending in <em>@%(snikket_domain)s</"
"em>. Your password was not sent."
msgstr ""
"Questo servizio Snikket ospita solo indirizzi che terminano in "
"<em>@%(snikket_domain)s</em>. La tua password non è stata inviata."
"Questo servizio Snikket ospita solo indirizzi che terminano in <em>@"
"%(snikket_domain)s</em>. La tua password non è stata inviata."
#: snikket_web/templates/unauth.html:16
msgid "Operation successful"
msgstr "Operazione completata"
#: snikket_web/templates/unauth.html:18
msgid "Error"
msgstr "Errore"
#: snikket_web/templates/user_home.html:9
msgid "Welcome!"
msgstr "Benvenuta/o!"
@@ -1238,11 +1430,11 @@ msgstr "Modifica il tuo profilo"
msgid "Profile"
msgstr "Profilo"
#: snikket_web/templates/user_profile.html:19
#: snikket_web/templates/user_profile.html:23
msgid "Visibility"
msgstr "Visibilità"
#: snikket_web/templates/user_profile.html:20
#: snikket_web/templates/user_profile.html:24
msgid ""
"This section allows you to control who can see your profile information, "
"like avatar and nickname."
@@ -1250,5 +1442,11 @@ msgstr ""
"Questa sezione ti permette di controllare chi può visualizzare i dettagli "
"del tuo profilo, come ad esempio l'avatar o il soprannome."
#~ msgid "Create password reset link for %(user_name)s"
#~ msgstr "Crea collegamento per reimpostare la password di %(user_name)s"
#~ msgid "Login failed"
#~ msgstr "Accesso non riuscito"
#~ msgid "Not on mobile?"
#~ msgstr "Nessun dispositivo mobile?"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2021-02-23 07:55+0100\n"
"POT-Creation-Date: 2021-03-25 17:32+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,278 +20,347 @@ msgstr ""
"X-Generator: Weblate 4.4.2\n"
"Generated-By: Babel 2.9.0\n"
#: snikket_web/admin.py:60
msgid "Delete user permanently"
msgstr "ユーザーを削除する"
#: snikket_web/admin.py:73
msgid "User deleted"
#: snikket_web/admin.py:59
msgid "Limited"
msgstr ""
#: snikket_web/admin.py:116
#: snikket_web/admin.py:64 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_users.html:8
msgid "Login name"
msgstr "ロゲイン名"
#: snikket_web/admin.py:68 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:9 snikket_web/user.py:61
msgid "Display name"
msgstr "表示名"
#: snikket_web/admin.py:72 snikket_web/templates/admin_edit_user.html:33
msgid "Access Level"
msgstr ""
#: snikket_web/admin.py:77
msgid "Normal user"
msgstr ""
#: snikket_web/admin.py:78
#, fuzzy
#| msgid "Admin area"
msgid "Administrator"
msgstr "管理"
#: snikket_web/admin.py:83
#, fuzzy
#| msgid "Update circle"
msgid "Update user"
msgstr "サークルを更新"
#: snikket_web/admin.py:87
#, fuzzy
#| msgid "Password reset link for %(user_name)s"
msgid "Create password reset link"
msgstr "%(user_name)s のパスワード再設定リンク"
#: snikket_web/admin.py:105
#, fuzzy
#| msgid "Password reset link for %(user_name)s"
msgid "Password reset link created"
msgstr "%(user_name)s のパスワード再設定リンク"
#: snikket_web/admin.py:122
#: snikket_web/admin.py:120
#, fuzzy
#| msgid "User information"
msgid "User information updated."
msgstr "ユーザー詳細"
#: snikket_web/admin.py:142
msgid "Delete user permanently"
msgstr "ユーザーを削除する"
#: snikket_web/admin.py:155
msgid "User deleted"
msgstr ""
#: snikket_web/admin.py:193
#, fuzzy
#| msgid "Password reset link for %(user_name)s"
msgid "Password reset link not found"
msgstr "%(user_name)s のパスワード再設定リンク"
#: snikket_web/admin.py:205
#, fuzzy
#| msgid "Password reset link for %(user_name)s"
msgid "Password reset link deleted"
msgstr "%(user_name)s のパスワード再設定リンク"
#: snikket_web/admin.py:141
#: snikket_web/admin.py:225
msgid "Invite to circle"
msgstr "サークルに紹介する"
#: snikket_web/admin.py:147
#: snikket_web/admin.py:231
msgid "At least one circle must be selected"
msgstr "サークルを選択してください"
#: snikket_web/admin.py:152
#: snikket_web/admin.py:236
msgid "Valid for"
msgstr "有効期限"
#: snikket_web/admin.py:154
#: snikket_web/admin.py:238
msgid "One hour"
msgstr "一時間"
#: snikket_web/admin.py:155
#: snikket_web/admin.py:239
msgid "Twelve hours"
msgstr "12時間"
#: snikket_web/admin.py:156
#: snikket_web/admin.py:240
msgid "One day"
msgstr "一日"
#: snikket_web/admin.py:157
#: snikket_web/admin.py:241
msgid "One week"
msgstr "一週間"
#: snikket_web/admin.py:158
#: snikket_web/admin.py:242
msgid "Four weeks"
msgstr "4週間"
#: snikket_web/admin.py:164 snikket_web/templates/admin_edit_invite.html:17
#: snikket_web/admin.py:248 snikket_web/templates/admin_edit_invite.html:17
msgid "Invitation type"
msgstr "紹介の種類"
#: snikket_web/admin.py:166 snikket_web/templates/library.j2:116
#: snikket_web/admin.py:250 snikket_web/templates/library.j2:116
msgid "Individual"
msgstr "一回"
#: snikket_web/admin.py:167 snikket_web/templates/library.j2:114
#: snikket_web/admin.py:251 snikket_web/templates/library.j2:114
msgid "Group"
msgstr "複数回"
#: snikket_web/admin.py:173
#: snikket_web/admin.py:257
msgid "New invitation link"
msgstr "新しい紹介状"
#: snikket_web/admin.py:235
#: snikket_web/admin.py:319
msgid "Revoke"
msgstr "取り消す"
#: snikket_web/admin.py:259
#: snikket_web/admin.py:343
#, fuzzy
#| msgid "Invitation type"
msgid "Invitation created"
msgstr "紹介の種類"
#: snikket_web/admin.py:275
#: snikket_web/admin.py:359
#, fuzzy
#| msgid "New invitation link"
msgid "No such invitation exists"
msgstr "新しい紹介状"
#: snikket_web/admin.py:290
#: snikket_web/admin.py:374
#, fuzzy
#| msgid "Invitation type"
msgid "Invitation revoked"
msgstr "紹介の種類"
#: snikket_web/admin.py:307 snikket_web/admin.py:355
#: snikket_web/admin.py:391 snikket_web/admin.py:439
msgid "Name"
msgstr "名"
#: snikket_web/admin.py:312 snikket_web/templates/admin_circles.html:47
#: snikket_web/admin.py:396 snikket_web/templates/admin_circles.html:47
msgid "Create circle"
msgstr "サークルを作成"
#: snikket_web/admin.py:342
#: snikket_web/admin.py:426
#, fuzzy
#| msgid "Circle name"
msgid "Circle created"
msgstr "サークル名"
#: snikket_web/admin.py:360
#: snikket_web/admin.py:444
msgid "Select user"
msgstr "ユーザー選択"
#: snikket_web/admin.py:365
#: snikket_web/admin.py:449
msgid "Update circle"
msgstr "サークルを更新"
#: snikket_web/admin.py:369
#: snikket_web/admin.py:453
msgid "Delete circle permanently"
msgstr "サークルを削除"
#: snikket_web/admin.py:375
#: snikket_web/admin.py:459
msgid "Add user"
msgstr "ユーザーを追加する"
#: snikket_web/admin.py:391
#: snikket_web/admin.py:475
#, fuzzy
#| msgid "No circles"
msgid "No such circle exists"
msgstr "なし"
#: snikket_web/admin.py:428
#: snikket_web/admin.py:512
#, fuzzy
#| msgid "Circle name"
msgid "Circle data updated"
msgstr "サークル名"
#: snikket_web/admin.py:434
#: snikket_web/admin.py:518
#, fuzzy
#| msgid "Circle members"
msgid "Circle deleted"
msgstr "サークル会員"
#: snikket_web/admin.py:445
#: snikket_web/admin.py:529
#, fuzzy
#| msgid "Invite to circle"
msgid "User added to circle"
msgstr "サークルに紹介する"
#: snikket_web/admin.py:454
#: snikket_web/admin.py:538
#, fuzzy
#| msgid "Remove user %(username)s from circle"
msgid "User removed from circle"
msgstr "%(username)s をサークルから外す"
#: snikket_web/infra.py:40
#: snikket_web/infra.py:41
msgid "Main"
msgstr "第一サークル"
#: snikket_web/invite.py:104
#: snikket_web/invite.py:106
msgid "Username"
msgstr "ユーザー名"
#: snikket_web/invite.py:108 snikket_web/invite.py:175 snikket_web/main.py:42
#: snikket_web/invite.py:110 snikket_web/invite.py:177 snikket_web/main.py:41
msgid "Password"
msgstr "パスワード"
#: snikket_web/invite.py:112 snikket_web/invite.py:179
#: snikket_web/invite.py:114 snikket_web/invite.py:181
msgid "Confirm password"
msgstr "確認用パスワード"
#: snikket_web/invite.py:116 snikket_web/invite.py:183
msgid "The passwords must match"
#: snikket_web/invite.py:118 snikket_web/invite.py:185
#, fuzzy
#| msgid "The passwords must match"
msgid "The passwords must match."
msgstr "確認用パスワードが一致しません"
#: snikket_web/invite.py:121
#: snikket_web/invite.py:123
msgid "Create account"
msgstr "アカウント作成"
#: snikket_web/invite.py:148
msgid "That username is already taken"
#: snikket_web/invite.py:150
#, fuzzy
#| msgid "That username is already taken"
msgid "That username is already taken."
msgstr "このユーザー名は存在しています"
#: snikket_web/invite.py:152 snikket_web/invite.py:216
msgid "Registration was declined for unknown reasons"
#: snikket_web/invite.py:154 snikket_web/invite.py:218
#, fuzzy
#| msgid "Registration was declined for unknown reasons"
msgid "Registration was declined for unknown reasons."
msgstr "理由不明の登録エラー"
#: snikket_web/invite.py:156
msgid "The username is not valid"
#: snikket_web/invite.py:158
#, fuzzy
#| msgid "The username is not valid"
msgid "The username is not valid."
msgstr "ユーザー名が不正"
#: snikket_web/invite.py:188 snikket_web/templates/user_home.html:32
#: snikket_web/invite.py:190 snikket_web/templates/user_home.html:32
#: snikket_web/templates/user_passwd.html:29
msgid "Change password"
msgstr "パスワード変更"
#: snikket_web/main.py:37
#: snikket_web/main.py:36
msgid "Address"
msgstr "アドレス"
#: snikket_web/main.py:47
#: snikket_web/main.py:46
msgid "Sign in"
msgstr "サインイン"
#: snikket_web/main.py:56
#: snikket_web/main.py:55
msgid "Invalid username or password."
msgstr "ユーザー名またはパスワードが不正。"
#: snikket_web/main.py:84
#: snikket_web/main.py:83
msgid "Login successful!"
msgstr ""
#: snikket_web/user.py:28
#: snikket_web/user.py:27
msgid "Current password"
msgstr "現在のパスワード"
#: snikket_web/user.py:33
#: snikket_web/user.py:32
msgid "New password"
msgstr "新しいパスワード"
#: snikket_web/user.py:38
#: snikket_web/user.py:37
msgid "Confirm new password"
msgstr "新しいパスワードの確認"
#: snikket_web/user.py:42
msgid "The new passwords must match"
#: snikket_web/user.py:41
#, fuzzy
#| msgid "The new passwords must match"
msgid "The new passwords must match."
msgstr "新しいパスワードが不一致"
#: snikket_web/user.py:49
#: snikket_web/user.py:48
msgid "Sign out"
msgstr "サインアウト"
#: snikket_web/user.py:54
#: snikket_web/user.py:53
msgid "Nobody"
msgstr ""
#: snikket_web/user.py:55
#: snikket_web/user.py:54
msgid "Friends only"
msgstr "コンタクト限定"
#: snikket_web/user.py:56
#: snikket_web/user.py:55
msgid "Everyone"
msgstr "全員"
#: snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:11 snikket_web/user.py:62
msgid "Display name"
msgstr "表示名"
#: snikket_web/user.py:66
#: snikket_web/user.py:65
msgid "Avatar"
msgstr "アバター"
#: snikket_web/user.py:70
#: snikket_web/user.py:69
msgid "Profile visibility"
msgstr ""
#: snikket_web/user.py:75
#: snikket_web/user.py:74
msgid "Update profile"
msgstr "プロファイル管理"
#: snikket_web/user.py:100
msgid "Incorrect password"
#: snikket_web/user.py:99
#, fuzzy
#| msgid "Incorrect password"
msgid "Incorrect password."
msgstr "パスワード不正"
#: snikket_web/user.py:104
#: snikket_web/user.py:103
#, fuzzy
#| msgid "Password reset"
msgid "Password changed"
msgstr "パスワード再設定"
#: snikket_web/user.py:146
#: snikket_web/user.py:111
msgid ""
"The chosen avatar is too big. To be able to upload larger avatars, please "
"use the app."
msgstr ""
#: snikket_web/user.py:159
#, fuzzy
#| msgid "Profile"
msgid "Profile updated"
msgstr "プロファイル"
#: snikket_web/templates/unauth.html:18 snikket_web/user.py:167
msgid "Error"
msgstr ""
#: snikket_web/templates/_footer.html:4
#, python-format
msgid "A <a href=\"%(about_url)s\">Snikket</a> service"
@@ -405,7 +474,7 @@ msgstr "サークル員"
#: snikket_web/templates/admin_circles.html:15
#: snikket_web/templates/admin_invites.html:24
#: snikket_web/templates/admin_users.html:12
#: snikket_web/templates/admin_users.html:10
msgid "Actions"
msgstr "操作"
@@ -476,12 +545,12 @@ msgid "Copy complete output"
msgstr ""
#: snikket_web/templates/admin_delete_user.html:4
#: snikket_web/templates/admin_users.html:22
#, python-format
msgid "Delete user %(user_name)s"
msgstr "%(user_name)s を削除"
#: snikket_web/templates/admin_delete_user.html:6
#: snikket_web/templates/admin_edit_user.html:54
msgid "Delete user"
msgstr "ユーザー削除"
@@ -489,11 +558,6 @@ msgstr "ユーザー削除"
msgid "Are you sure you want to delete the following user?"
msgstr "本当にこのユーザーを削除していいですか?"
#: snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_users.html:10
msgid "Login name"
msgstr "ロゲイン名"
#: snikket_web/templates/admin_delete_user.html:15
msgid "Danger"
msgstr "警告"
@@ -508,12 +572,10 @@ msgstr ""
"strong>"
#: snikket_web/templates/admin_delete_user.html:19
#: snikket_web/templates/admin_edit_circle.html:44
#: snikket_web/templates/admin_edit_invite.html:49
#: snikket_web/templates/admin_reset_user_password.html:25
#: snikket_web/templates/user_logout.html:10
#: snikket_web/templates/user_passwd.html:27
#: snikket_web/templates/user_profile.html:28
#: snikket_web/templates/user_profile.html:32
msgid "Back"
msgstr "戻る"
@@ -545,6 +607,10 @@ msgstr "詳細"
msgid "This circle has no group chat associated."
msgstr ""
#: snikket_web/templates/admin_edit_circle.html:44
msgid "Return to circle list"
msgstr ""
#: snikket_web/templates/admin_edit_circle.html:48
msgid "Delete circle"
msgstr "サークル削除"
@@ -628,6 +694,96 @@ msgstr ""
msgid "Created"
msgstr "作成時"
#: snikket_web/templates/admin_edit_invite.html:48
#, fuzzy
#| msgid "New invitation link"
msgid "Return to invitation list"
msgstr "新しい紹介状"
#: snikket_web/templates/admin_edit_user.html:5
msgid ""
"Limited users can interact with users on the same Snikket service and be "
"members of circles."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:7
msgid ""
"Like limited users and can also interact with users on other Snikket "
"services."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:9
msgid "Like normal users and can access the admin panel in the web portal."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:20
#: snikket_web/templates/admin_users.html:28
#, python-format
msgid "Edit user %(user_name)s"
msgstr "%(user_name)s を更新"
#: snikket_web/templates/admin_edit_user.html:23
#, fuzzy
#| msgid "Add user"
msgid "Edit user"
msgstr "ユーザーを追加する"
#: snikket_web/templates/admin_edit_user.html:27
msgid "The login name cannot be changed."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:34
msgid ""
"The access level of a user determines what interactions are allowed for them "
"on your Snikket service."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:41
#, python-format
msgid "<strong>%(title)s%(icon)s</strong><p>%(description)s</p>"
msgstr ""
#: snikket_web/templates/admin_edit_user.html:51
#, fuzzy
#| msgid "New invitation link"
msgid "Return to user list"
msgstr "新しい紹介状"
#: snikket_web/templates/admin_edit_user.html:59
msgid "Further actions"
msgstr ""
#: snikket_web/templates/admin_edit_user.html:61
#, fuzzy
#| msgid "Change your password"
msgid "Reset password"
msgstr "パスワード変更"
#: snikket_web/templates/admin_edit_user.html:64
msgid ""
"If the user has lost their password, you can use the button below to create "
"a special link which allows to change the password of the account, once."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:69
#, fuzzy
#| msgid "User information"
msgid "Debug information"
msgstr "ユーザー詳細"
#: snikket_web/templates/admin_edit_user.html:71
msgid ""
"In some cases, extended information about the user account and the connected "
"devices is necessary to troubleshoot issues. The button below reveals this "
"(sensitive) information."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:75
#, fuzzy
#| msgid "User information"
msgid "Show debug information"
msgstr "ユーザー詳細"
#: snikket_web/templates/admin_home.html:4
#, fuzzy
#| msgid "Back to the main page"
@@ -734,14 +890,24 @@ msgstr "このリンクはパスワードを一回きり再設定可能にする
msgid "Destroy link"
msgstr "リンク取り消す"
#: snikket_web/templates/admin_users.html:25
#, python-format
msgid "Show debug information for %(user_name)s"
#: snikket_web/templates/admin_users.html:19
#, fuzzy
#| msgid "The username is not valid"
msgid "The user is an administrator."
msgstr "ユーザー名が不正"
#: snikket_web/templates/admin_users.html:19
msgid " (Administrator)"
msgstr ""
#: snikket_web/templates/admin_users.html:28
#, python-format
msgid "Create password reset link for %(user_name)s"
#: snikket_web/templates/admin_users.html:22
#, fuzzy
#| msgid "The username is not valid"
msgid "The user is restricted."
msgstr "ユーザー名が不正"
#: snikket_web/templates/admin_users.html:22
msgid " (Restricted)"
msgstr ""
#: snikket_web/templates/app.html:4
@@ -827,18 +993,20 @@ msgid ""
msgstr ""
#: snikket_web/templates/invite_register.html:14
#: snikket_web/templates/invite_view.html:38
#: snikket_web/templates/invite_view.html:39
msgid "App already installed?"
msgstr ""
#: snikket_web/templates/invite_register.html:16
#: snikket_web/templates/invite_reset_view.html:21
#: snikket_web/templates/invite_view.html:40
#: snikket_web/templates/invite_view.html:41
#: snikket_web/templates/invite_view.html:106
#: snikket_web/templates/invite_view.html:134
msgid "Open the app"
msgstr ""
#: snikket_web/templates/invite_register.html:18
#: snikket_web/templates/invite_view.html:42
#: snikket_web/templates/invite_view.html:43
msgid "This button works only if you have the app installed already!"
msgstr ""
@@ -931,7 +1099,7 @@ msgid ""
msgstr ""
#: snikket_web/templates/invite_reset_view.html:26
#: snikket_web/templates/invite_view.html:76
#: 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 "
@@ -943,7 +1111,7 @@ msgid "You will then be prompted to enter a new password for your account."
msgstr ""
#: snikket_web/templates/invite_reset_view.html:29
#: snikket_web/templates/invite_view.html:44
#: snikket_web/templates/invite_view.html:45
msgid "Alternatives"
msgstr ""
@@ -1022,20 +1190,25 @@ msgid "Get it on Google Play"
msgstr ""
#: snikket_web/templates/invite_view.html:30
#: snikket_web/templates/invite_view.html:102
msgid "Download on the App Store"
msgstr ""
#: snikket_web/templates/invite_view.html:34
#: snikket_web/templates/invite_view.html:32
msgid "Get it on F-Droid"
msgstr ""
#: snikket_web/templates/invite_view.html:35
msgid "Send to mobile device"
msgstr ""
#: snikket_web/templates/invite_view.html:37
#: snikket_web/templates/invite_view.html:38
msgid ""
"After installation the app should automatically open and prompt you to "
"create an account. If not, simply click the button below."
msgstr ""
#: snikket_web/templates/invite_view.html:45
#: snikket_web/templates/invite_view.html:46
#, python-format
msgid ""
"You can connect to Snikket using any XMPP-compatible software. If the button "
@@ -1043,40 +1216,80 @@ msgid ""
"\">register an account manually</a>."
msgstr ""
#: snikket_web/templates/invite_view.html:51
#: snikket_web/templates/invite_view.html:52
msgid "Scan invite code"
msgstr "紹介状をスキャン"
#: snikket_web/templates/invite_view.html:54
#: snikket_web/templates/invite_view.html:83
#: snikket_web/templates/invite_view.html:55
#: 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 "閉める"
#: snikket_web/templates/invite_view.html:57
#: snikket_web/templates/invite_view.html:58
msgid ""
"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."
msgstr ""
#: snikket_web/templates/invite_view.html:62
#: snikket_web/templates/invite_view.html:63
msgid "Using a QR code scanner"
msgstr ""
#: snikket_web/templates/invite_view.html:64
#: snikket_web/templates/invite_view.html:65
msgid "Using the Snikket app"
msgstr ""
#: snikket_web/templates/invite_view.html:69
#: 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:75
#: 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: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:101
msgid "First download Snikket from the App Store using the button below:"
msgstr ""
#: 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:121
#: snikket_web/templates/invite_view.html:130
msgid "Install via F-Droid"
msgstr ""
#: 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:129
msgid "First install Snikket from F-Droid using the button below:"
msgstr ""
#: snikket_web/templates/library.j2:18
msgid "Copy link"
msgstr "リンクをコピーする"
@@ -1105,17 +1318,13 @@ msgstr "Snikket ログイン"
msgid "Enter your Snikket address and password to manage your account."
msgstr ""
#: snikket_web/templates/login.html:18
msgid "Login failed"
msgstr ""
#: snikket_web/templates/login.html:23
#: snikket_web/templates/login.html:19
#, fuzzy
#| msgid "Incorrect password"
msgid "Incorrect address"
msgstr "パスワード不正"
#: snikket_web/templates/login.html:24
#: snikket_web/templates/login.html:20
#, python-format
msgid ""
"This Snikket service only hosts addresses ending in <em>@%(snikket_domain)s</"
@@ -1126,10 +1335,6 @@ msgstr ""
msgid "Operation successful"
msgstr ""
#: snikket_web/templates/unauth.html:18
msgid "Error"
msgstr ""
#: snikket_web/templates/user_home.html:9
msgid "Welcome!"
msgstr "ようこそ!"
@@ -1210,22 +1415,16 @@ msgstr "プロファイル管理"
msgid "Profile"
msgstr "プロファイル"
#: snikket_web/templates/user_profile.html:19
#: snikket_web/templates/user_profile.html:23
msgid "Visibility"
msgstr ""
#: snikket_web/templates/user_profile.html:20
#: snikket_web/templates/user_profile.html:24
msgid ""
"This section allows you to control who can see your profile information, "
"like avatar and nickname."
msgstr ""
#~ msgid "Edit user %(user_name)s"
#~ msgstr "%(user_name)s を更新"
#~ msgid "User information"
#~ msgstr "ユーザー詳細"
#~ msgid "This circle cannot be modified"
#~ msgstr "このサークルの更新ができません"

View File

@@ -8,144 +8,206 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2021-03-20 16:27+0100\n"
"POT-Creation-Date: 2021-05-27 17:59+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.9.0\n"
"Generated-By: Babel 2.9.1\n"
#: snikket_web/admin.py:59
msgid "Delete user permanently"
#: snikket_web/admin.py:66
msgid "Limited"
msgstr ""
#: snikket_web/admin.py:72
msgid "User deleted"
#: snikket_web/admin.py:71 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_users.html:8
msgid "Login name"
msgstr ""
#: snikket_web/admin.py:115
#: snikket_web/admin.py:75 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:9 snikket_web/user.py:61
msgid "Display name"
msgstr ""
#: snikket_web/admin.py:79 snikket_web/templates/admin_edit_user.html:32
msgid "Access Level"
msgstr ""
#: snikket_web/admin.py:84
msgid "Normal user"
msgstr ""
#: snikket_web/admin.py:85
msgid "Administrator"
msgstr ""
#: snikket_web/admin.py:90
msgid "Update user"
msgstr ""
#: snikket_web/admin.py:94
msgid "Create password reset link"
msgstr ""
#: snikket_web/admin.py:112
msgid "Password reset link created"
msgstr ""
#: snikket_web/admin.py:121
#: snikket_web/admin.py:127
msgid "User information updated."
msgstr ""
#: snikket_web/admin.py:149
msgid "Delete user permanently"
msgstr ""
#: snikket_web/admin.py:162
msgid "User deleted"
msgstr ""
#: snikket_web/admin.py:200
msgid "Password reset link not found"
msgstr ""
#: snikket_web/admin.py:212
msgid "Password reset link deleted"
msgstr ""
#: snikket_web/admin.py:140
#: snikket_web/admin.py:232
msgid "Invite to circle"
msgstr ""
#: snikket_web/admin.py:146
#: snikket_web/admin.py:238
msgid "At least one circle must be selected"
msgstr ""
#: snikket_web/admin.py:151
#: snikket_web/admin.py:243
msgid "Valid for"
msgstr ""
#: snikket_web/admin.py:153
#: snikket_web/admin.py:245
msgid "One hour"
msgstr ""
#: snikket_web/admin.py:154
#: snikket_web/admin.py:246
msgid "Twelve hours"
msgstr ""
#: snikket_web/admin.py:155
#: snikket_web/admin.py:247
msgid "One day"
msgstr ""
#: snikket_web/admin.py:156
#: snikket_web/admin.py:248
msgid "One week"
msgstr ""
#: snikket_web/admin.py:157
#: snikket_web/admin.py:249
msgid "Four weeks"
msgstr ""
#: snikket_web/admin.py:163 snikket_web/templates/admin_edit_invite.html:17
#: snikket_web/admin.py:255 snikket_web/templates/admin_edit_invite.html:17
msgid "Invitation type"
msgstr ""
#: snikket_web/admin.py:165 snikket_web/templates/library.j2:116
#: snikket_web/admin.py:257 snikket_web/templates/library.j2:116
msgid "Individual"
msgstr ""
#: snikket_web/admin.py:166 snikket_web/templates/library.j2:114
#: snikket_web/admin.py:258 snikket_web/templates/library.j2:114
msgid "Group"
msgstr ""
#: snikket_web/admin.py:172
#: snikket_web/admin.py:264
msgid "New invitation link"
msgstr ""
#: snikket_web/admin.py:234
#: snikket_web/admin.py:326
msgid "Revoke"
msgstr ""
#: snikket_web/admin.py:258
#: snikket_web/admin.py:350
msgid "Invitation created"
msgstr ""
#: snikket_web/admin.py:274
#: snikket_web/admin.py:366
msgid "No such invitation exists"
msgstr ""
#: snikket_web/admin.py:289
#: snikket_web/admin.py:381
msgid "Invitation revoked"
msgstr ""
#: snikket_web/admin.py:306 snikket_web/admin.py:354
#: snikket_web/admin.py:398 snikket_web/admin.py:446
msgid "Name"
msgstr ""
#: snikket_web/admin.py:311 snikket_web/templates/admin_circles.html:47
#: snikket_web/admin.py:403 snikket_web/templates/admin_circles.html:47
msgid "Create circle"
msgstr ""
#: snikket_web/admin.py:341
#: snikket_web/admin.py:433
msgid "Circle created"
msgstr ""
#: snikket_web/admin.py:359
#: snikket_web/admin.py:451
msgid "Select user"
msgstr ""
#: snikket_web/admin.py:364
#: snikket_web/admin.py:456
msgid "Update circle"
msgstr ""
#: snikket_web/admin.py:368
#: snikket_web/admin.py:460
msgid "Delete circle permanently"
msgstr ""
#: snikket_web/admin.py:374
#: snikket_web/admin.py:466
msgid "Add user"
msgstr ""
#: snikket_web/admin.py:390
#: snikket_web/admin.py:482
msgid "No such circle exists"
msgstr ""
#: snikket_web/admin.py:427
#: snikket_web/admin.py:519
msgid "Circle data updated"
msgstr ""
#: snikket_web/admin.py:433
#: snikket_web/admin.py:525
msgid "Circle deleted"
msgstr ""
#: snikket_web/admin.py:444
#: snikket_web/admin.py:536
msgid "User added to circle"
msgstr ""
#: snikket_web/admin.py:453
#: snikket_web/admin.py:545
msgid "User removed from circle"
msgstr ""
#: snikket_web/infra.py:41
#: snikket_web/admin.py:616
msgid "Message contents"
msgstr ""
#: snikket_web/admin.py:622
msgid "Only send to online users"
msgstr ""
#: snikket_web/admin.py:626
msgid "Post to all users"
msgstr ""
#: snikket_web/admin.py:630
msgid "Send preview to yourself"
msgstr ""
#: snikket_web/admin.py:652
msgid "Announcement sent!"
msgstr ""
#: snikket_web/infra.py:51
msgid "Main"
msgstr ""
@@ -162,7 +224,7 @@ msgid "Confirm password"
msgstr ""
#: snikket_web/invite.py:118 snikket_web/invite.py:185
msgid "The passwords must match"
msgid "The passwords must match."
msgstr ""
#: snikket_web/invite.py:123
@@ -215,7 +277,7 @@ msgid "Confirm new password"
msgstr ""
#: snikket_web/user.py:41
msgid "The new passwords must match"
msgid "The new passwords must match."
msgstr ""
#: snikket_web/user.py:48
@@ -234,11 +296,6 @@ msgstr ""
msgid "Everyone"
msgstr ""
#: snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:11 snikket_web/user.py:61
msgid "Display name"
msgstr ""
#: snikket_web/user.py:65
msgid "Avatar"
msgstr ""
@@ -384,7 +441,7 @@ msgstr ""
#: snikket_web/templates/admin_circles.html:15
#: snikket_web/templates/admin_invites.html:24
#: snikket_web/templates/admin_users.html:12
#: snikket_web/templates/admin_users.html:10
msgid "Actions"
msgstr ""
@@ -455,12 +512,12 @@ msgid "Copy complete output"
msgstr ""
#: snikket_web/templates/admin_delete_user.html:4
#: snikket_web/templates/admin_users.html:22
#, python-format
msgid "Delete user %(user_name)s"
msgstr ""
#: snikket_web/templates/admin_delete_user.html:6
#: snikket_web/templates/admin_edit_user.html:53
msgid "Delete user"
msgstr ""
@@ -468,11 +525,6 @@ msgstr ""
msgid "Are you sure you want to delete the following user?"
msgstr ""
#: snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_users.html:10
msgid "Login name"
msgstr ""
#: snikket_web/templates/admin_delete_user.html:15
msgid "Danger"
msgstr ""
@@ -485,8 +537,6 @@ msgid ""
msgstr ""
#: snikket_web/templates/admin_delete_user.html:19
#: snikket_web/templates/admin_edit_circle.html:44
#: snikket_web/templates/admin_edit_invite.html:49
#: snikket_web/templates/admin_reset_user_password.html:25
#: snikket_web/templates/user_logout.html:10
#: snikket_web/templates/user_passwd.html:27
@@ -522,6 +572,10 @@ msgstr ""
msgid "This circle has no group chat associated."
msgstr ""
#: snikket_web/templates/admin_edit_circle.html:44
msgid "Return to circle list"
msgstr ""
#: snikket_web/templates/admin_edit_circle.html:48
msgid "Delete circle"
msgstr ""
@@ -604,6 +658,85 @@ msgstr ""
msgid "Created"
msgstr ""
#: snikket_web/templates/admin_edit_invite.html:48
msgid "Return to invitation list"
msgstr ""
#: snikket_web/templates/admin_edit_user.html:5
msgid ""
"Limited users can interact with users on the same Snikket service and be "
"members of circles."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:7
msgid ""
"Like limited users and can also interact with users on other Snikket "
"services."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:9
msgid "Like normal users and can access the admin panel in the web portal."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:20
#: snikket_web/templates/admin_users.html:28
#, python-format
msgid "Edit user %(user_name)s"
msgstr ""
#: snikket_web/templates/admin_edit_user.html:22
msgid "Edit user"
msgstr ""
#: snikket_web/templates/admin_edit_user.html:26
msgid "The login name cannot be changed."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:33
msgid ""
"The access level of a user determines what interactions are allowed for "
"them on your Snikket service."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:40
#, python-format
msgid "<strong>%(title)s%(icon)s</strong><p>%(description)s</p>"
msgstr ""
#: snikket_web/templates/admin_edit_user.html:50
msgid "Return to user list"
msgstr ""
#: snikket_web/templates/admin_edit_user.html:58
msgid "Further actions"
msgstr ""
#: snikket_web/templates/admin_edit_user.html:60
msgid "Reset password"
msgstr ""
#: snikket_web/templates/admin_edit_user.html:63
msgid ""
"If the user has lost their password, you can use the button below to "
"create a special link which allows to change the password of the account,"
" once."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:68
msgid "Debug information"
msgstr ""
#: snikket_web/templates/admin_edit_user.html:70
msgid ""
"In some cases, extended information about the user account and the "
"connected devices is necessary to troubleshoot issues. The button below "
"reveals this (sensitive) information."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:74
msgid "Show debug information"
msgstr ""
#: snikket_web/templates/admin_home.html:4
msgid "Welcome to the admin panel!"
msgstr ""
@@ -643,11 +776,28 @@ msgstr ""
msgid "Manage invitations"
msgstr ""
#: snikket_web/templates/admin_home.html:36
msgid "Go back to your user's web portal page."
#: snikket_web/templates/admin_home.html:35
msgid "System health"
msgstr ""
#: snikket_web/templates/admin_home.html:38
msgid "View the server status or send a broadcast message to all users."
msgstr ""
#: snikket_web/templates/admin_home.html:40
msgid "Send a broadcast message to all users."
msgstr ""
#: snikket_web/templates/admin_home.html:43
#: snikket_web/templates/admin_system.html:4
msgid "Manage system"
msgstr ""
#: snikket_web/templates/admin_home.html:48
msgid "Go back to your user's web portal page."
msgstr ""
#: snikket_web/templates/admin_home.html:50
msgid "Exit admin panel"
msgstr ""
@@ -698,14 +848,91 @@ msgstr ""
msgid "Destroy link"
msgstr ""
#: snikket_web/templates/admin_users.html:25
#, python-format
msgid "Show debug information for %(user_name)s"
#: snikket_web/templates/admin_system.html:6
msgid "Overall system status"
msgstr ""
#: snikket_web/templates/admin_users.html:28
#: snikket_web/templates/admin_system.html:9
msgid "System load (5 minute average)"
msgstr ""
#: snikket_web/templates/admin_system.html:14
#: snikket_web/templates/admin_system.html:22
#: snikket_web/templates/admin_system.html:37
#: snikket_web/templates/admin_system.html:45
#: snikket_web/templates/admin_system.html:60
#: snikket_web/templates/admin_system.html:68
#: snikket_web/templates/admin_system.html:76
msgid "unknown"
msgstr ""
#: snikket_web/templates/admin_system.html:17
msgid "Memory use"
msgstr ""
#: snikket_web/templates/admin_system.html:20
#, python-format
msgid "Create password reset link for %(user_name)s"
msgid ""
"%(percentage_global)s of %(mem_available)s. Of that, Snikket uses "
"%(percentage_snikket)s."
msgstr ""
#: snikket_web/templates/admin_system.html:27
msgid "Web portal status"
msgstr ""
#: snikket_web/templates/admin_system.html:30
#: snikket_web/templates/admin_system.html:53
msgid "Version"
msgstr ""
#: snikket_web/templates/admin_system.html:31
#: snikket_web/templates/admin_system.html:54
msgid "View all versions"
msgstr ""
#: snikket_web/templates/admin_system.html:32
#: snikket_web/templates/admin_system.html:55
msgid "Average CPU use"
msgstr ""
#: snikket_web/templates/admin_system.html:40
#: snikket_web/templates/admin_system.html:63
msgid "Current memory use"
msgstr ""
#: snikket_web/templates/admin_system.html:50
msgid "Snikket server status"
msgstr ""
#: snikket_web/templates/admin_system.html:71
msgid "Connected devices"
msgstr ""
#: snikket_web/templates/admin_system.html:82
msgid "Broadcast message"
msgstr ""
#: snikket_web/templates/admin_system.html:84
msgid ""
"This form allows you to send a message to all users currently online on "
"your Snikket server. Use it wisely."
msgstr ""
#: snikket_web/templates/admin_users.html:19
msgid "The user is an administrator."
msgstr ""
#: snikket_web/templates/admin_users.html:19
msgid " (Administrator)"
msgstr ""
#: snikket_web/templates/admin_users.html:22
msgid "The user is restricted."
msgstr ""
#: snikket_web/templates/admin_users.html:22
msgid " (Restricted)"
msgstr ""
#: snikket_web/templates/app.html:4
@@ -1048,12 +1275,12 @@ msgstr ""
#: snikket_web/templates/invite_view.html:99
msgid ""
"After downloading Snikket from the app store, you have to return to this "
"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:101
msgid "First download Snikket from the app store using the button below:"
msgid "First download Snikket from the App Store using the button below:"
msgstr ""
#: snikket_web/templates/invite_view.html:103

Binary file not shown.

View File

@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2021-02-23 07:55+0100\n"
"PO-Revision-Date: 2021-02-25 16:02+0000\n"
"POT-Creation-Date: 2021-03-25 17:32+0100\n"
"PO-Revision-Date: 2021-05-19 15:12+0000\n"
"Last-Translator: misiek <migelazur@mailbox.org>\n"
"Language-Team: Polish <https://i18n.sotecware.net/projects/snikket/"
"web-portal/pl/>\n"
@@ -18,255 +18,304 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 4.4.2\n"
"X-Generator: Weblate 4.5.1\n"
"Generated-By: Babel 2.9.0\n"
#: snikket_web/admin.py:60
msgid "Delete user permanently"
msgstr "Usuń użytkownika bezpowrotnie"
#: snikket_web/admin.py:59
msgid "Limited"
msgstr "Ograniczony"
#: snikket_web/admin.py:73
msgid "User deleted"
msgstr "Użytkownik został usunięty"
#: snikket_web/admin.py:64 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_users.html:8
msgid "Login name"
msgstr "Login"
#: snikket_web/admin.py:116
#: snikket_web/admin.py:68 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:9 snikket_web/user.py:61
msgid "Display name"
msgstr "Nazwa wyświetlana"
#: snikket_web/admin.py:72 snikket_web/templates/admin_edit_user.html:33
msgid "Access Level"
msgstr "Poziom dostępu"
#: snikket_web/admin.py:77
msgid "Normal user"
msgstr "Zwykły użytkownik"
#: snikket_web/admin.py:78
msgid "Administrator"
msgstr "Administrator"
#: snikket_web/admin.py:83
msgid "Update user"
msgstr "Zapisz ustawienia użytkownika"
#: snikket_web/admin.py:87
msgid "Create password reset link"
msgstr "Stwórz link do zresetowania hasła"
#: snikket_web/admin.py:105
msgid "Password reset link created"
msgstr "Utworzono link resetowania hasła"
#: snikket_web/admin.py:122
#: snikket_web/admin.py:120
msgid "User information updated."
msgstr "Zaktualizowano informacje o użytkowniku."
#: snikket_web/admin.py:142
msgid "Delete user permanently"
msgstr "Usuń użytkownika bezpowrotnie"
#: snikket_web/admin.py:155
msgid "User deleted"
msgstr "Użytkownik został usunięty"
#: snikket_web/admin.py:193
msgid "Password reset link not found"
msgstr "Nie znaleziono linku do zresetowania hasła"
#: snikket_web/admin.py:205
msgid "Password reset link deleted"
msgstr "Usunięto link resetowania hasła"
#: snikket_web/admin.py:141
#: snikket_web/admin.py:225
msgid "Invite to circle"
msgstr "Zaproś do kręgu"
#: snikket_web/admin.py:147
#: snikket_web/admin.py:231
msgid "At least one circle must be selected"
msgstr "Należy wybrać przynajmniej jeden krąg"
#: snikket_web/admin.py:152
#: snikket_web/admin.py:236
msgid "Valid for"
msgstr "Ważne przez"
#: snikket_web/admin.py:154
#: snikket_web/admin.py:238
msgid "One hour"
msgstr "Godzinę"
#: snikket_web/admin.py:155
#: snikket_web/admin.py:239
msgid "Twelve hours"
msgstr "Dwanaście godzin"
#: snikket_web/admin.py:156
#: snikket_web/admin.py:240
msgid "One day"
msgstr "Dzień"
#: snikket_web/admin.py:157
#: snikket_web/admin.py:241
msgid "One week"
msgstr "Tydzień"
#: snikket_web/admin.py:158
#: snikket_web/admin.py:242
msgid "Four weeks"
msgstr "Cztery tygodnie"
#: snikket_web/admin.py:164 snikket_web/templates/admin_edit_invite.html:17
#: snikket_web/admin.py:248 snikket_web/templates/admin_edit_invite.html:17
msgid "Invitation type"
msgstr "Typ zaproszenia"
#: snikket_web/admin.py:166 snikket_web/templates/library.j2:116
#: snikket_web/admin.py:250 snikket_web/templates/library.j2:116
msgid "Individual"
msgstr "Indywidualne"
#: snikket_web/admin.py:167 snikket_web/templates/library.j2:114
#: snikket_web/admin.py:251 snikket_web/templates/library.j2:114
msgid "Group"
msgstr "Grupowe"
#: snikket_web/admin.py:173
#: snikket_web/admin.py:257
msgid "New invitation link"
msgstr "Nowy link z zaproszeniem"
#: snikket_web/admin.py:235
#: snikket_web/admin.py:319
msgid "Revoke"
msgstr "Unieważnij"
#: snikket_web/admin.py:259
#: snikket_web/admin.py:343
msgid "Invitation created"
msgstr "Utworzono zaproszenie"
#: snikket_web/admin.py:275
#: snikket_web/admin.py:359
msgid "No such invitation exists"
msgstr "Takie zaproszenie nie istnieje"
#: snikket_web/admin.py:290
#: snikket_web/admin.py:374
msgid "Invitation revoked"
msgstr "Unieważniono zaproszenie"
#: snikket_web/admin.py:307 snikket_web/admin.py:355
#: snikket_web/admin.py:391 snikket_web/admin.py:439
msgid "Name"
msgstr "Nazwa"
#: snikket_web/admin.py:312 snikket_web/templates/admin_circles.html:47
#: snikket_web/admin.py:396 snikket_web/templates/admin_circles.html:47
msgid "Create circle"
msgstr "Utwórz krąg"
#: snikket_web/admin.py:342
#: snikket_web/admin.py:426
msgid "Circle created"
msgstr "Utworzono krąg"
#: snikket_web/admin.py:360
#: snikket_web/admin.py:444
msgid "Select user"
msgstr "Wybierz użytkownika"
#: snikket_web/admin.py:365
#: snikket_web/admin.py:449
msgid "Update circle"
msgstr "Zaktualizuj ustawienia kręgu"
#: snikket_web/admin.py:369
#: snikket_web/admin.py:453
msgid "Delete circle permanently"
msgstr "Usuń krąg bezpowrotnie"
#: snikket_web/admin.py:375
#: snikket_web/admin.py:459
msgid "Add user"
msgstr "Dodaj użytkownika"
#: snikket_web/admin.py:391
#: snikket_web/admin.py:475
msgid "No such circle exists"
msgstr "Taki krąg nie istnieje"
#: snikket_web/admin.py:428
#: snikket_web/admin.py:512
msgid "Circle data updated"
msgstr "Zaktualizowano dane kręgu"
#: snikket_web/admin.py:434
#: snikket_web/admin.py:518
msgid "Circle deleted"
msgstr "Krąg został usunięty"
#: snikket_web/admin.py:445
#: snikket_web/admin.py:529
msgid "User added to circle"
msgstr "Dodano użytkownika do kręgu"
#: snikket_web/admin.py:454
#: snikket_web/admin.py:538
msgid "User removed from circle"
msgstr "Usunięto użytkownika z kręgu"
#: snikket_web/infra.py:40
#: snikket_web/infra.py:41
msgid "Main"
msgstr "Główny"
#: snikket_web/invite.py:104
#: snikket_web/invite.py:106
msgid "Username"
msgstr "Nazwa użytkownika"
#: snikket_web/invite.py:108 snikket_web/invite.py:175 snikket_web/main.py:42
#: snikket_web/invite.py:110 snikket_web/invite.py:177 snikket_web/main.py:41
msgid "Password"
msgstr "Hasło"
#: snikket_web/invite.py:112 snikket_web/invite.py:179
#: snikket_web/invite.py:114 snikket_web/invite.py:181
msgid "Confirm password"
msgstr "Potwierdź hasło"
#: snikket_web/invite.py:116 snikket_web/invite.py:183
msgid "The passwords must match"
msgstr "Hasła muszą się zgadzać"
#: snikket_web/invite.py:118 snikket_web/invite.py:185
msgid "The passwords must match."
msgstr "Hasła muszą się zgadzać."
#: snikket_web/invite.py:121
#: snikket_web/invite.py:123
msgid "Create account"
msgstr "Utwórz konto"
#: snikket_web/invite.py:148
msgid "That username is already taken"
msgstr "Ta nazwa użytkownika jest już zajęta"
#: snikket_web/invite.py:150
msgid "That username is already taken."
msgstr "Ta nazwa użytkownika jest już zajęta."
#: snikket_web/invite.py:152 snikket_web/invite.py:216
msgid "Registration was declined for unknown reasons"
msgstr "Z nieznanych przyczyn rejestracja została odrzucona"
#: snikket_web/invite.py:154 snikket_web/invite.py:218
msgid "Registration was declined for unknown reasons."
msgstr "Z nieznanych przyczyn rejestracja została odrzucona."
#: snikket_web/invite.py:156
msgid "The username is not valid"
msgstr "Ta nazwa użytkownika jest nieprawidłowa"
#: snikket_web/invite.py:158
msgid "The username is not valid."
msgstr "Ta nazwa użytkownika jest nieprawidłowa."
#: snikket_web/invite.py:188 snikket_web/templates/user_home.html:32
#: snikket_web/invite.py:190 snikket_web/templates/user_home.html:32
#: snikket_web/templates/user_passwd.html:29
msgid "Change password"
msgstr "Zmień hasło"
#: snikket_web/main.py:37
#: snikket_web/main.py:36
msgid "Address"
msgstr "Adres"
#: snikket_web/main.py:47
#: snikket_web/main.py:46
msgid "Sign in"
msgstr "Zaloguj się"
#: snikket_web/main.py:56
#: snikket_web/main.py:55
msgid "Invalid username or password."
msgstr "Nieprawidłowa nazwa użytkownika lub hasło."
#: snikket_web/main.py:84
#: snikket_web/main.py:83
msgid "Login successful!"
msgstr "Zalogowano się pomyślnie!"
#: snikket_web/user.py:28
#: snikket_web/user.py:27
msgid "Current password"
msgstr "Obecne hasło"
#: snikket_web/user.py:33
#: snikket_web/user.py:32
msgid "New password"
msgstr "Nowe hasło"
#: snikket_web/user.py:38
#: snikket_web/user.py:37
msgid "Confirm new password"
msgstr "Potwierdź nowe hasło"
#: snikket_web/user.py:42
msgid "The new passwords must match"
msgstr "Nowe hasła muszą się zgadzać"
#: snikket_web/user.py:41
msgid "The new passwords must match."
msgstr "Nowe hasła muszą się zgadzać."
#: snikket_web/user.py:49
#: snikket_web/user.py:48
msgid "Sign out"
msgstr "Wyloguj się"
#: snikket_web/user.py:54
#: snikket_web/user.py:53
msgid "Nobody"
msgstr "Nikt"
#: snikket_web/user.py:55
#: snikket_web/user.py:54
msgid "Friends only"
msgstr "Tylko znajomi"
#: snikket_web/user.py:56
#: snikket_web/user.py:55
msgid "Everyone"
msgstr "Wszyscy"
#: snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:11 snikket_web/user.py:62
msgid "Display name"
msgstr "Nazwa wyświetlana"
#: snikket_web/user.py:66
#: snikket_web/user.py:65
msgid "Avatar"
msgstr "Awatar"
#: snikket_web/user.py:70
#: snikket_web/user.py:69
msgid "Profile visibility"
msgstr "Widoczność profilu"
#: snikket_web/user.py:75
#: snikket_web/user.py:74
msgid "Update profile"
msgstr "Zaktualizuj profil"
#: snikket_web/user.py:100
msgid "Incorrect password"
msgstr "Nieprawidłowe hasło"
#: snikket_web/user.py:99
msgid "Incorrect password."
msgstr "Nieprawidłowe hasło."
#: snikket_web/user.py:104
#: snikket_web/user.py:103
msgid "Password changed"
msgstr "Hasło zostało zmienione"
#: snikket_web/user.py:146
#: snikket_web/user.py:111
msgid ""
"The chosen avatar is too big. To be able to upload larger avatars, please "
"use the app."
msgstr ""
"Wybrany awatar jest zbyt duży. Awatary o większych rozmiarach możesz ustawić "
"korzystając z aplikacji."
#: snikket_web/user.py:159
msgid "Profile updated"
msgstr "Zaktualizowano profil"
#: snikket_web/templates/unauth.html:18 snikket_web/user.py:167
msgid "Error"
msgstr "Błąd"
#: snikket_web/templates/_footer.html:4
#, python-format
msgid "A <a href=\"%(about_url)s\">Snikket</a> service"
@@ -300,7 +349,7 @@ msgstr "O tej usłudze"
#: snikket_web/templates/about.html:12
#, python-format
msgid "This is the Snikket service <em>%(site_name)s</em>."
msgstr "To serwer Snikket: <em>%(site_name)s</em>."
msgstr "Ten serwer Snikket to: <em>%(site_name)s</em>."
#: snikket_web/templates/about.html:13
msgid "Licenses"
@@ -351,8 +400,8 @@ msgid ""
"\"%(trademarks_url)s\">Snikket Trademarks information page</a>."
msgstr ""
"\"Snikket\" oraz logo papugi są znakami firmowymi Snikket Community Interest "
"Company. Więcej informacji o oznaczeniach znajdziesz na <a href=\""
"%(trademarks_url)s\">stronie o znakach firmowych Snikket</a>."
"Company. Więcej informacji o oznaczeniach znajdziesz na <a href="
"\"%(trademarks_url)s\">stronie o znakach firmowych Snikket</a>."
#: snikket_web/templates/about.html:19
msgid "Software Versions"
@@ -399,7 +448,7 @@ msgstr "Członkowie"
#: snikket_web/templates/admin_circles.html:15
#: snikket_web/templates/admin_invites.html:24
#: snikket_web/templates/admin_users.html:12
#: snikket_web/templates/admin_users.html:10
msgid "Actions"
msgstr "Akcje"
@@ -474,12 +523,12 @@ msgid "Copy complete output"
msgstr "Skopiuj całą zawartość"
#: snikket_web/templates/admin_delete_user.html:4
#: snikket_web/templates/admin_users.html:22
#, python-format
msgid "Delete user %(user_name)s"
msgstr "Usuń użytkownika %(user_name)s"
#: snikket_web/templates/admin_delete_user.html:6
#: snikket_web/templates/admin_edit_user.html:54
msgid "Delete user"
msgstr "Usuń użytkownika"
@@ -487,11 +536,6 @@ msgstr "Usuń użytkownika"
msgid "Are you sure you want to delete the following user?"
msgstr "Czy na pewno chcesz usunąć tego użytkownika?"
#: snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_users.html:10
msgid "Login name"
msgstr "Login"
#: snikket_web/templates/admin_delete_user.html:15
msgid "Danger"
msgstr "Uwaga"
@@ -507,12 +551,10 @@ msgstr ""
"cofnąć!</strong>"
#: snikket_web/templates/admin_delete_user.html:19
#: snikket_web/templates/admin_edit_circle.html:44
#: snikket_web/templates/admin_edit_invite.html:49
#: snikket_web/templates/admin_reset_user_password.html:25
#: snikket_web/templates/user_logout.html:10
#: snikket_web/templates/user_passwd.html:27
#: snikket_web/templates/user_profile.html:28
#: snikket_web/templates/user_profile.html:32
msgid "Back"
msgstr "Wstecz"
@@ -546,6 +588,10 @@ msgstr "Informacje o kręgu"
msgid "This circle has no group chat associated."
msgstr "Ten krąg nie jest powiązany z żadnym czatem grupowym."
#: snikket_web/templates/admin_edit_circle.html:44
msgid "Return to circle list"
msgstr "Wróć do listy kręgów"
#: snikket_web/templates/admin_edit_circle.html:48
msgid "Delete circle"
msgstr "Usuń krąg"
@@ -633,6 +679,98 @@ msgstr "Użytkownik zostanie dodany jako kontakt %(peer_jid)s."
msgid "Created"
msgstr "Utworzono"
#: snikket_web/templates/admin_edit_invite.html:48
msgid "Return to invitation list"
msgstr "Wróć do listy zaproszeń"
#: snikket_web/templates/admin_edit_user.html:5
msgid ""
"Limited users can interact with users on the same Snikket service and be "
"members of circles."
msgstr ""
"Użytkownicy z ograniczonym dostępem mogą wchodzić w interakcje z innymi "
"użytkownikami na tym samym serwerze Snikket oraz być członkami kręgów."
#: snikket_web/templates/admin_edit_user.html:7
msgid ""
"Like limited users and can also interact with users on other Snikket "
"services."
msgstr ""
"Jak użytkownicy z ograniczonym dostępem, ale dodatkowo mogą wchodzić w "
"interakcje z użytkownikami innych serwerów Snikket."
#: snikket_web/templates/admin_edit_user.html:9
msgid "Like normal users and can access the admin panel in the web portal."
msgstr ""
"Jak zwykli użytkownicy, ale dodatkowo mają dostęp do panelu "
"administracyjnego w portalu użytkownika Snikket."
#: snikket_web/templates/admin_edit_user.html:20
#: snikket_web/templates/admin_users.html:28
#, python-format
msgid "Edit user %(user_name)s"
msgstr "Edytuj użytkownika %(user_name)s"
#: snikket_web/templates/admin_edit_user.html:23
msgid "Edit user"
msgstr "Edytuj użytkownika"
#: snikket_web/templates/admin_edit_user.html:27
msgid "The login name cannot be changed."
msgstr "Login nie może zostać zmieniony."
#: snikket_web/templates/admin_edit_user.html:34
msgid ""
"The access level of a user determines what interactions are allowed for them "
"on your Snikket service."
msgstr ""
"Poziom dostępu użytkownika określa, jakie interakcje są dla niego dozwolone "
"na Twoim serwerze Snikket."
#: snikket_web/templates/admin_edit_user.html:41
#, python-format
msgid "<strong>%(title)s%(icon)s</strong><p>%(description)s</p>"
msgstr "<strong>%(title)s%(icon)s</strong><p>%(description)s</p>"
#: snikket_web/templates/admin_edit_user.html:51
msgid "Return to user list"
msgstr "Wróć do listy użytkowników"
#: snikket_web/templates/admin_edit_user.html:59
msgid "Further actions"
msgstr "Dodatkowe funkcje"
#: snikket_web/templates/admin_edit_user.html:61
msgid "Reset password"
msgstr "Resetowanie hasła"
#: snikket_web/templates/admin_edit_user.html:64
msgid ""
"If the user has lost their password, you can use the button below to create "
"a special link which allows to change the password of the account, once."
msgstr ""
"Jeśli użytkownik utraci swoje hasło, za pomocą poniższego przycisku "
"wygenerujesz dla niego link do jego zresetowania. Odnośnik pozwoli na "
"jednorazową zmianę hasła na nowe."
#: snikket_web/templates/admin_edit_user.html:69
msgid "Debug information"
msgstr "Informacje debugowania"
#: snikket_web/templates/admin_edit_user.html:71
msgid ""
"In some cases, extended information about the user account and the connected "
"devices is necessary to troubleshoot issues. The button below reveals this "
"(sensitive) information."
msgstr ""
"W niektórych przypadkach do rozwiązania problemu wymagane są dodatkowe "
"informacje o użytkowniku oraz podłączonych urządzeniach. Poniższy przycisk "
"ujawni te (wrażliwe) informacje."
#: snikket_web/templates/admin_edit_user.html:75
msgid "Show debug information"
msgstr "Pokaż informacje debugowania"
#: snikket_web/templates/admin_home.html:4
msgid "Welcome to the admin panel!"
msgstr "Witaj w panelu administracyjnym!"
@@ -729,15 +867,21 @@ msgstr ""
msgid "Destroy link"
msgstr "Zniszcz link"
#: snikket_web/templates/admin_users.html:25
#, python-format
msgid "Show debug information for %(user_name)s"
msgstr "Pokaż informacje debugowania dla %(user_name)s"
#: snikket_web/templates/admin_users.html:19
msgid "The user is an administrator."
msgstr "Użytkownik jest administratorem."
#: snikket_web/templates/admin_users.html:28
#, python-format
msgid "Create password reset link for %(user_name)s"
msgstr "Utwórz link resetowania hasła dla %(user_name)s"
#: snikket_web/templates/admin_users.html:19
msgid " (Administrator)"
msgstr " (Administrator)"
#: snikket_web/templates/admin_users.html:22
msgid "The user is restricted."
msgstr "Użytkownik ma konto z ograniczonym dostępem."
#: snikket_web/templates/admin_users.html:22
msgid " (Restricted)"
msgstr " (Ograniczony)"
#: snikket_web/templates/app.html:4
msgid "Snikket Web Portal"
@@ -828,18 +972,20 @@ msgstr ""
"zaprowadzi cię tam poniższy przycisk:"
#: snikket_web/templates/invite_register.html:14
#: snikket_web/templates/invite_view.html:38
#: snikket_web/templates/invite_view.html:39
msgid "App already installed?"
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:40
#: snikket_web/templates/invite_view.html:41
#: snikket_web/templates/invite_view.html:106
#: snikket_web/templates/invite_view.html:134
msgid "Open the app"
msgstr "Otwórz aplikację"
#: snikket_web/templates/invite_register.html:18
#: snikket_web/templates/invite_view.html:42
#: snikket_web/templates/invite_view.html:43
msgid "This button works only if you have the app installed already!"
msgstr ""
"Ten przycisk zadziała wyłącznie, jeśli masz już zainstalowaną aplikację!"
@@ -937,7 +1083,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:76
#: 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 "
@@ -953,7 +1099,7 @@ msgstr ""
"Zostaniesz wtedy poproszony o wprowadzenie nowego hasła dla twojego konta."
#: snikket_web/templates/invite_reset_view.html:29
#: snikket_web/templates/invite_view.html:44
#: snikket_web/templates/invite_view.html:45
msgid "Alternatives"
msgstr "Inne możliwości"
@@ -1043,14 +1189,19 @@ msgid "Get it on Google Play"
msgstr "Pobierz w Google Play"
#: snikket_web/templates/invite_view.html:30
#: snikket_web/templates/invite_view.html:102
msgid "Download on the App Store"
msgstr "Pobierz w App Store"
#: snikket_web/templates/invite_view.html:34
#: snikket_web/templates/invite_view.html:32
msgid "Get it on F-Droid"
msgstr "Pobierz z F-Droid"
#: snikket_web/templates/invite_view.html:35
msgid "Send to mobile device"
msgstr "Wyślij na urządzenie mobilne"
#: snikket_web/templates/invite_view.html:37
#: snikket_web/templates/invite_view.html:38
msgid ""
"After installation the app should automatically open and prompt you to "
"create an account. If not, simply click the button below."
@@ -1058,7 +1209,7 @@ msgstr ""
"Po instalacji aplikacja powinna uruchomić się automatycznie i poprosić o "
"utworzenie konta. Jeśli nie, wciśnij poniższy przycisk."
#: snikket_web/templates/invite_view.html:45
#: snikket_web/templates/invite_view.html:46
#, python-format
msgid ""
"You can connect to Snikket using any XMPP-compatible software. If the button "
@@ -1070,16 +1221,20 @@ msgstr ""
"twoją aplikacją, konieczne może być <a href=\"%(register_url)s\">ręczne "
"zarejestrowanie konta</a>."
#: snikket_web/templates/invite_view.html:51
#: snikket_web/templates/invite_view.html:52
msgid "Scan invite code"
msgstr "Zeskanuj kod zaproszenia"
#: snikket_web/templates/invite_view.html:54
#: snikket_web/templates/invite_view.html:83
#: snikket_web/templates/invite_view.html:55
#: 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"
#: snikket_web/templates/invite_view.html:57
#: snikket_web/templates/invite_view.html:58
msgid ""
"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."
@@ -1088,22 +1243,22 @@ 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:62
#: 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:64
#: snikket_web/templates/invite_view.html:65
msgid "Using the Snikket app"
msgstr "Używając aplikacji Snikket"
#: snikket_web/templates/invite_view.html:69
#: 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:75
#: 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."
@@ -1111,6 +1266,53 @@ 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: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 ""
"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: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: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 ""
"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:121
#: snikket_web/templates/invite_view.html:130
msgid "Install via F-Droid"
msgstr "Zainstaluj przez F-Droid"
#: 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 ""
"Po zainstalowaniu aplikacji Snikket przez F-Droid, możesz wrócić do tego "
"linku z zaproszeniem, następnie kliknąć \"Otwórz aplikację\", aby "
"kontynuować."
#: 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 "
"przycisku:"
#: snikket_web/templates/library.j2:18
msgid "Copy link"
msgstr "Skopiuj link"
@@ -1142,31 +1344,23 @@ msgstr "Snikket - Logowanie"
msgid "Enter your Snikket address and password to manage your account."
msgstr "Wprowadź swój adres Snikket oraz hasło, aby zarządzać kontem."
#: snikket_web/templates/login.html:18
msgid "Login failed"
msgstr "Logowanie nie powiodło się"
#: snikket_web/templates/login.html:23
#: snikket_web/templates/login.html:19
msgid "Incorrect address"
msgstr "Adres nieprawidłowy"
#: snikket_web/templates/login.html:24
#: snikket_web/templates/login.html:20
#, python-format
msgid ""
"This Snikket service only hosts addresses ending in <em>@%(snikket_domain)s</"
"em>. Your password was not sent."
msgstr ""
"Ten serwer Snikket obsługuje jedynie adresy kończące się na "
"<em>@%(snikket_domain)s</em>. Twoje hasło nie zostało wysłane."
"Ten serwer Snikket obsługuje jedynie adresy kończące się na <em>@"
"%(snikket_domain)s</em>. Twoje hasło nie zostało wysłane."
#: snikket_web/templates/unauth.html:16
msgid "Operation successful"
msgstr "Operacja zakończona sukcesem"
#: snikket_web/templates/unauth.html:18
msgid "Error"
msgstr "Błąd"
#: snikket_web/templates/user_home.html:9
msgid "Welcome!"
msgstr "Witaj!"
@@ -1241,11 +1435,11 @@ msgstr "Zaktualizuj swój profil"
msgid "Profile"
msgstr "Profil"
#: snikket_web/templates/user_profile.html:19
#: snikket_web/templates/user_profile.html:23
msgid "Visibility"
msgstr "Widoczność"
#: snikket_web/templates/user_profile.html:20
#: snikket_web/templates/user_profile.html:24
msgid ""
"This section allows you to control who can see your profile information, "
"like avatar and nickname."
@@ -1253,26 +1447,15 @@ msgstr ""
"Ta sekcja pozwoli ci na zarządzenie widocznością informacji o twoim profilu "
"przez innych, jak awatar lub pseudonim."
#~ msgid "Create password reset link for %(user_name)s"
#~ msgstr "Utwórz link resetowania hasła dla %(user_name)s"
#~ msgid "Login failed"
#~ msgstr "Logowanie nie powiodło się"
#~ msgid "Not on mobile?"
#~ msgstr "Nie korzystasz obecnie ze smartfona?"
#~ msgid "Edit user %(user_name)s"
#~ msgstr "Edytuj użytkownika %(user_name)s"
#~ msgid "User information"
#~ msgstr "Informacje o użytkowniku"
#~ msgid ""
#~ "If the user has forgotten their password, use the below button to create "
#~ "a password reset link. The password reset link can be used once to change "
#~ "the password of the account. Transmit the link to the user via a secure "
#~ "channel."
#~ msgstr ""
#~ "Jeśli użytkownik zapomni swojego hasła, za pomocą poniższego przycisku "
#~ "wygenerujesz dla niego link do zresetowania hasła. Link może być "
#~ "wykorzystany jednorazowo do jego zmiany. Prześlij go do użytkownika za "
#~ "pomocą bezpiecznej formy kontaktu."
#~ msgid "<label for=\"link-field\">Link</label>"
#~ msgstr "<label for=\"link-field\">Link</label>"

View File

@@ -7,11 +7,11 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2021-02-23 07:55+0100\n"
"POT-Creation-Date: 2021-03-25 17:32+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-portal/ru/>\n"
"Language-Team: Russian <https://i18n.sotecware.net/projects/snikket/web-"
"portal/ru/>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -21,252 +21,321 @@ msgstr ""
"X-Generator: Weblate 4.5.1\n"
"Generated-By: Babel 2.9.0\n"
#: snikket_web/admin.py:60
msgid "Delete user permanently"
msgstr "Удалить пользователя навсегда"
#: snikket_web/admin.py:59
msgid "Limited"
msgstr ""
#: snikket_web/admin.py:73
msgid "User deleted"
msgstr "удалённый"
#: snikket_web/admin.py:64 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_users.html:8
msgid "Login name"
msgstr "Логин"
#: snikket_web/admin.py:116
#: snikket_web/admin.py:68 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:9 snikket_web/user.py:61
msgid "Display name"
msgstr "Отображаемое имя"
#: snikket_web/admin.py:72 snikket_web/templates/admin_edit_user.html:33
msgid "Access Level"
msgstr ""
#: snikket_web/admin.py:77
msgid "Normal user"
msgstr ""
#: snikket_web/admin.py:78
#, fuzzy
#| msgid "Admin area"
msgid "Administrator"
msgstr "Административная зона"
#: snikket_web/admin.py:83
#, fuzzy
#| msgid "Update circle"
msgid "Update user"
msgstr "Обновить крук"
#: snikket_web/admin.py:87
#, fuzzy
#| msgid "Create password reset links or delete users."
msgid "Create password reset link"
msgstr "Создайте ссылки для сброса пароля или удалите пользователей."
#: snikket_web/admin.py:105
msgid "Password reset link created"
msgstr "Ссылка на сброс пароля для %(user_name)s"
#: snikket_web/admin.py:122
#: snikket_web/admin.py:120
#, fuzzy
#| msgid "Circle information"
msgid "User information updated."
msgstr "Информация о круге"
#: snikket_web/admin.py:142
msgid "Delete user permanently"
msgstr "Удалить пользователя навсегда"
#: snikket_web/admin.py:155
msgid "User deleted"
msgstr "удалённый"
#: snikket_web/admin.py:193
#, fuzzy
#| msgid "Password reset link created"
msgid "Password reset link not found"
msgstr "Ссылка на сброс пароля для %(user_name)s"
#: snikket_web/admin.py:205
msgid "Password reset link deleted"
msgstr "Создайте ссылки для сброса пароля или удалите пользователей"
#: snikket_web/admin.py:141
#: snikket_web/admin.py:225
msgid "Invite to circle"
msgstr "Пригласить в круг"
#: snikket_web/admin.py:147
#: snikket_web/admin.py:231
msgid "At least one circle must be selected"
msgstr "Необходимо выбрать хотя бы один круг"
#: snikket_web/admin.py:152
#: snikket_web/admin.py:236
msgid "Valid for"
msgstr "Действителен в течении"
#: snikket_web/admin.py:154
#: snikket_web/admin.py:238
msgid "One hour"
msgstr "Один час"
#: snikket_web/admin.py:155
#: snikket_web/admin.py:239
msgid "Twelve hours"
msgstr "Двенадцать часов"
#: snikket_web/admin.py:156
#: snikket_web/admin.py:240
msgid "One day"
msgstr "Один день"
#: snikket_web/admin.py:157
#: snikket_web/admin.py:241
msgid "One week"
msgstr "Одна неделя"
#: snikket_web/admin.py:158
#: snikket_web/admin.py:242
msgid "Four weeks"
msgstr "Четыре недели"
#: snikket_web/admin.py:164 snikket_web/templates/admin_edit_invite.html:17
#: snikket_web/admin.py:248 snikket_web/templates/admin_edit_invite.html:17
msgid "Invitation type"
msgstr "Вид приглашения"
#: snikket_web/admin.py:166 snikket_web/templates/library.j2:116
#: snikket_web/admin.py:250 snikket_web/templates/library.j2:116
msgid "Individual"
msgstr "Индивидуальный"
#: snikket_web/admin.py:167 snikket_web/templates/library.j2:114
#: snikket_web/admin.py:251 snikket_web/templates/library.j2:114
msgid "Group"
msgstr "Группа"
#: snikket_web/admin.py:173
#: snikket_web/admin.py:257
msgid "New invitation link"
msgstr "Новая ссылка на приглашение"
#: snikket_web/admin.py:235
#: snikket_web/admin.py:319
msgid "Revoke"
msgstr "Aннулировать"
#: snikket_web/admin.py:259
#: snikket_web/admin.py:343
msgid "Invitation created"
msgstr "Вид приглашения"
#: snikket_web/admin.py:275
#: snikket_web/admin.py:359
msgid "No such invitation exists"
msgstr "Новая ссылка на приглашение"
#: snikket_web/admin.py:290
#: snikket_web/admin.py:374
msgid "Invitation revoked"
msgstr "Вид приглашения"
#: snikket_web/admin.py:307 snikket_web/admin.py:355
#: snikket_web/admin.py:391 snikket_web/admin.py:439
msgid "Name"
msgstr "Имя"
#: snikket_web/admin.py:312 snikket_web/templates/admin_circles.html:47
#: snikket_web/admin.py:396 snikket_web/templates/admin_circles.html:47
msgid "Create circle"
msgstr "Создать крук"
#: snikket_web/admin.py:342
#: snikket_web/admin.py:426
msgid "Circle created"
msgstr "Имя круга"
#: snikket_web/admin.py:360
#: snikket_web/admin.py:444
msgid "Select user"
msgstr "Выврать пользователя"
#: snikket_web/admin.py:365
#: snikket_web/admin.py:449
msgid "Update circle"
msgstr "Обновить крук"
#: snikket_web/admin.py:369
#: snikket_web/admin.py:453
msgid "Delete circle permanently"
msgstr "Удалить круг навсегда"
#: snikket_web/admin.py:375
#: snikket_web/admin.py:459
msgid "Add user"
msgstr "Добавить пользователя"
#: snikket_web/admin.py:391
#: snikket_web/admin.py:475
msgid "No such circle exists"
msgstr "Нет кругов"
#: snikket_web/admin.py:428
#: snikket_web/admin.py:512
msgid "Circle data updated"
msgstr "Имя круга"
#: snikket_web/admin.py:434
#: snikket_web/admin.py:518
msgid "Circle deleted"
msgstr "удалённый"
#: snikket_web/admin.py:445
#: snikket_web/admin.py:529
msgid "User added to circle"
msgstr "Пригласить в круг"
#: snikket_web/admin.py:454
#: snikket_web/admin.py:538
msgid "User removed from circle"
msgstr "Удалить пользователя %(username)s из круга"
#: snikket_web/infra.py:40
#: snikket_web/infra.py:41
msgid "Main"
msgstr "Основное"
#: snikket_web/invite.py:104
#: snikket_web/invite.py:106
msgid "Username"
msgstr "Имя пользователя"
#: snikket_web/invite.py:108 snikket_web/invite.py:175 snikket_web/main.py:42
#: snikket_web/invite.py:110 snikket_web/invite.py:177 snikket_web/main.py:41
msgid "Password"
msgstr "Пароль"
#: snikket_web/invite.py:112 snikket_web/invite.py:179
#: snikket_web/invite.py:114 snikket_web/invite.py:181
msgid "Confirm password"
msgstr "Повторите пароль"
#: snikket_web/invite.py:116 snikket_web/invite.py:183
msgid "The passwords must match"
#: snikket_web/invite.py:118 snikket_web/invite.py:185
#, fuzzy
#| msgid "The passwords must match"
msgid "The passwords must match."
msgstr "Паролт должны совпадать"
#: snikket_web/invite.py:121
#: snikket_web/invite.py:123
msgid "Create account"
msgstr "Создать аккунт"
#: snikket_web/invite.py:148
msgid "That username is already taken"
#: snikket_web/invite.py:150
#, fuzzy
#| msgid "That username is already taken"
msgid "That username is already taken."
msgstr "Это имя пользователя уже используется"
#: snikket_web/invite.py:152 snikket_web/invite.py:216
msgid "Registration was declined for unknown reasons"
#: snikket_web/invite.py:154 snikket_web/invite.py:218
#, fuzzy
#| msgid "Registration was declined for unknown reasons"
msgid "Registration was declined for unknown reasons."
msgstr "Регистрация была отклонена по неизвестным причинам"
#: snikket_web/invite.py:156
msgid "The username is not valid"
#: snikket_web/invite.py:158
#, fuzzy
#| msgid "The username is not valid"
msgid "The username is not valid."
msgstr "Имя пользователя недействительно"
#: snikket_web/invite.py:188 snikket_web/templates/user_home.html:32
#: snikket_web/invite.py:190 snikket_web/templates/user_home.html:32
#: snikket_web/templates/user_passwd.html:29
msgid "Change password"
msgstr "Изменить пароль"
#: snikket_web/main.py:37
#: snikket_web/main.py:36
msgid "Address"
msgstr "Адрес"
#: snikket_web/main.py:47
#: snikket_web/main.py:46
msgid "Sign in"
msgstr "Войти"
#: snikket_web/main.py:56
#: snikket_web/main.py:55
msgid "Invalid username or password."
msgstr "Неверное имя пользователя или пароль."
#: snikket_web/main.py:84
#: snikket_web/main.py:83
msgid "Login successful!"
msgstr "Войти успешно!"
#: snikket_web/user.py:28
#: snikket_web/user.py:27
msgid "Current password"
msgstr "Текущий пароль"
#: snikket_web/user.py:33
#: snikket_web/user.py:32
msgid "New password"
msgstr "Новый пароль"
#: snikket_web/user.py:38
#: snikket_web/user.py:37
msgid "Confirm new password"
msgstr "Подтвердить новый пароль"
#: snikket_web/user.py:42
msgid "The new passwords must match"
#: snikket_web/user.py:41
#, fuzzy
#| msgid "The new passwords must match"
msgid "The new passwords must match."
msgstr "Новые пароли должны совпадать"
#: snikket_web/user.py:49
#: snikket_web/user.py:48
msgid "Sign out"
msgstr "Выйти"
#: snikket_web/user.py:54
#: snikket_web/user.py:53
msgid "Nobody"
msgstr "Никто"
#: snikket_web/user.py:55
#: snikket_web/user.py:54
msgid "Friends only"
msgstr "Только друзья"
#: snikket_web/user.py:56
#: snikket_web/user.py:55
msgid "Everyone"
msgstr "Все"
#: snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:11 snikket_web/user.py:62
msgid "Display name"
msgstr "Отображаемое имя"
#: snikket_web/user.py:66
#: snikket_web/user.py:65
msgid "Avatar"
msgstr "Аватар"
#: snikket_web/user.py:70
#: snikket_web/user.py:69
msgid "Profile visibility"
msgstr "Видимость профиля"
#: snikket_web/user.py:75
#: snikket_web/user.py:74
msgid "Update profile"
msgstr "Обновить профиль"
#: snikket_web/user.py:100
msgid "Incorrect password"
#: snikket_web/user.py:99
#, fuzzy
#| msgid "Incorrect password"
msgid "Incorrect password."
msgstr "Неправильный пароль"
#: snikket_web/user.py:104
#: snikket_web/user.py:103
msgid "Password changed"
msgstr "Смена пароля"
#: snikket_web/user.py:146
#: snikket_web/user.py:111
msgid ""
"The chosen avatar is too big. To be able to upload larger avatars, please "
"use the app."
msgstr ""
#: snikket_web/user.py:159
msgid "Profile updated"
msgstr "Профиль"
#: snikket_web/templates/unauth.html:18 snikket_web/user.py:167
msgid "Error"
msgstr "Ошибка"
#: snikket_web/templates/_footer.html:4
#, python-format
msgid "A <a href=\"%(about_url)s\">Snikket</a> service"
@@ -314,9 +383,9 @@ msgid ""
"a>. The full terms of the license can be reviewed using the aforementioned "
"link."
msgstr ""
"Программное обеспечение веб-портала лицензировано на условиях <a href=\""
"%(agpl_url)s\">Афферо GNU Генеральная общественная лицензия, версия 3.0 или "
"более поздняя</a>. Полные условия лицензии могут быть просмотрены по "
"Программное обеспечение веб-портала лицензировано на условиях <a href="
"\"%(agpl_url)s\">Афферо GNU Генеральная общественная лицензия, версия 3.0 "
"или более поздняя</a>. Полные условия лицензии могут быть просмотрены по "
"вышеуказанной ссылке."
#: snikket_web/templates/about.html:15
@@ -325,8 +394,8 @@ msgid ""
"The source code of the web portal can be downloaded and viewed in <a href="
"\"%(source_url)s\">its GitHub repository</a>."
msgstr ""
"Исходный код веб-портала можно скачать и просмотреть по адресу <a href=\""
"%(source_url)s\">это репозиторий GitHub</a>."
"Исходный код веб-портала можно скачать и просмотреть по адресу <a href="
"\"%(source_url)s\">это репозиторий GitHub</a>."
#: snikket_web/templates/about.html:16
#, python-format
@@ -336,8 +405,8 @@ msgid ""
"\"%(apache20_url)s\">Apache 2.0 License</a>."
msgstr ""
"Иконки, используемые на веб-портале это <a href=\"%(source_url)s\">иконки "
"Материалов Google</a>, предоставленный Google на условиях <a href=\""
"%(apache20_url)s\">Лицензия Apache 2.0</a>."
"Материалов Google</a>, предоставленный Google на условиях <a href="
"\"%(apache20_url)s\">Лицензия Apache 2.0</a>."
#: snikket_web/templates/about.html:17
msgid "Trademarks"
@@ -400,7 +469,7 @@ msgstr "Участники"
#: snikket_web/templates/admin_circles.html:15
#: snikket_web/templates/admin_invites.html:24
#: snikket_web/templates/admin_users.html:12
#: snikket_web/templates/admin_users.html:10
msgid "Actions"
msgstr "Действия"
@@ -476,12 +545,12 @@ msgid "Copy complete output"
msgstr "Копировать полный вывод"
#: snikket_web/templates/admin_delete_user.html:4
#: snikket_web/templates/admin_users.html:22
#, python-format
msgid "Delete user %(user_name)s"
msgstr "Удалить пользователя %(user_name)s"
#: snikket_web/templates/admin_delete_user.html:6
#: snikket_web/templates/admin_edit_user.html:54
msgid "Delete user"
msgstr "Удалить пользователя"
@@ -489,11 +558,6 @@ msgstr "Удалить пользователя"
msgid "Are you sure you want to delete the following user?"
msgstr "Вы уверены, что хотите удалить следующего пользователя?"
#: snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_users.html:10
msgid "Login name"
msgstr "Логин"
#: snikket_web/templates/admin_delete_user.html:15
msgid "Danger"
msgstr "Опасность"
@@ -508,12 +572,10 @@ msgstr ""
"после нажатия нижней кнопки. <strong>Назад дороги нет!</strong>"
#: snikket_web/templates/admin_delete_user.html:19
#: snikket_web/templates/admin_edit_circle.html:44
#: snikket_web/templates/admin_edit_invite.html:49
#: snikket_web/templates/admin_reset_user_password.html:25
#: snikket_web/templates/user_logout.html:10
#: snikket_web/templates/user_passwd.html:27
#: snikket_web/templates/user_profile.html:28
#: snikket_web/templates/user_profile.html:32
msgid "Back"
msgstr "Вернуть"
@@ -546,6 +608,10 @@ msgstr "Информация о круге"
msgid "This circle has no group chat associated."
msgstr "С этим кругом не связан ни один групповой чат."
#: snikket_web/templates/admin_edit_circle.html:44
msgid "Return to circle list"
msgstr ""
#: snikket_web/templates/admin_edit_circle.html:48
msgid "Delete circle"
msgstr "Удалить круг"
@@ -633,6 +699,97 @@ msgstr "Пользователь будет добавлен как контак
msgid "Created"
msgstr "Создано"
#: snikket_web/templates/admin_edit_invite.html:48
#, fuzzy
#| msgid "New invitation link"
msgid "Return to invitation list"
msgstr "Новая ссылка на приглашение"
#: snikket_web/templates/admin_edit_user.html:5
msgid ""
"Limited users can interact with users on the same Snikket service and be "
"members of circles."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:7
msgid ""
"Like limited users and can also interact with users on other Snikket "
"services."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:9
msgid "Like normal users and can access the admin panel in the web portal."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:20
#: snikket_web/templates/admin_users.html:28
#, fuzzy, python-format
#| msgid "Delete user %(user_name)s"
msgid "Edit user %(user_name)s"
msgstr "Удалить пользователя %(user_name)s"
#: snikket_web/templates/admin_edit_user.html:23
#, fuzzy
#| msgid "Add user"
msgid "Edit user"
msgstr "Добавить пользователя"
#: snikket_web/templates/admin_edit_user.html:27
msgid "The login name cannot be changed."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:34
msgid ""
"The access level of a user determines what interactions are allowed for them "
"on your Snikket service."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:41
#, python-format
msgid "<strong>%(title)s%(icon)s</strong><p>%(description)s</p>"
msgstr ""
#: snikket_web/templates/admin_edit_user.html:51
#, fuzzy
#| msgid "New invitation link"
msgid "Return to user list"
msgstr "Новая ссылка на приглашение"
#: snikket_web/templates/admin_edit_user.html:59
msgid "Further actions"
msgstr ""
#: snikket_web/templates/admin_edit_user.html:61
#, fuzzy
#| msgid "Reset your password"
msgid "Reset password"
msgstr "Сброс пароля"
#: snikket_web/templates/admin_edit_user.html:64
msgid ""
"If the user has lost their password, you can use the button below to create "
"a special link which allows to change the password of the account, once."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:69
#, fuzzy
#| msgid "Circle information"
msgid "Debug information"
msgstr "Информация о круге"
#: snikket_web/templates/admin_edit_user.html:71
msgid ""
"In some cases, extended information about the user account and the connected "
"devices is necessary to troubleshoot issues. The button below reveals this "
"(sensitive) information."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:75
#, fuzzy
#| msgid "Show debug information for %(user_name)s"
msgid "Show debug information"
msgstr "Показать отладочную информацию для %(user_name)s"
#: snikket_web/templates/admin_home.html:4
msgid "Welcome to the admin panel!"
msgstr "Добро пожаловать в административную панель!"
@@ -731,15 +888,25 @@ msgstr ""
msgid "Destroy link"
msgstr "Удалить ссылку"
#: snikket_web/templates/admin_users.html:25
#, python-format
msgid "Show debug information for %(user_name)s"
msgstr "Показать отладочную информацию для %(user_name)s"
#: snikket_web/templates/admin_users.html:19
#, fuzzy
#| msgid "The username is not valid"
msgid "The user is an administrator."
msgstr "Имя пользователя недействительно"
#: snikket_web/templates/admin_users.html:28
#, python-format
msgid "Create password reset link for %(user_name)s"
msgstr "Создать ссылку сброса пароля для %(user_name)s"
#: snikket_web/templates/admin_users.html:19
msgid " (Administrator)"
msgstr ""
#: snikket_web/templates/admin_users.html:22
#, fuzzy
#| msgid "The username is not valid"
msgid "The user is restricted."
msgstr "Имя пользователя недействительно"
#: snikket_web/templates/admin_users.html:22
msgid " (Restricted)"
msgstr ""
#: snikket_web/templates/app.html:4
msgid "Snikket Web Portal"
@@ -810,8 +977,8 @@ msgstr "Зарегистрироваться на %(site_name)s"
#, python-format
msgid "%(site_name)s is using Snikket - a secure, privacy-friendly chat app."
msgstr ""
"%(site_name)s использует Snikket - безопасное, конфиденциальное "
"чат-приложение."
"%(site_name)s использует Snikket - безопасное, конфиденциальное чат-"
"приложение."
#: snikket_web/templates/invite_register.html:12
msgid "Create an account"
@@ -830,18 +997,20 @@ msgstr ""
"учетной записи внутри приложения, нажав на кнопку ниже:"
#: snikket_web/templates/invite_register.html:14
#: snikket_web/templates/invite_view.html:38
#: snikket_web/templates/invite_view.html:39
msgid "App already installed?"
msgstr "Приложение уже установлено?"
#: snikket_web/templates/invite_register.html:16
#: snikket_web/templates/invite_reset_view.html:21
#: snikket_web/templates/invite_view.html:40
#: snikket_web/templates/invite_view.html:41
#: snikket_web/templates/invite_view.html:106
#: snikket_web/templates/invite_view.html:134
msgid "Open the app"
msgstr "Откройте приложение"
#: snikket_web/templates/invite_register.html:18
#: snikket_web/templates/invite_view.html:42
#: snikket_web/templates/invite_view.html:43
msgid "This button works only if you have the app installed already!"
msgstr ""
"Эта кнопка работает только в том случае, если у вас уже установлено "
@@ -919,8 +1088,8 @@ msgid ""
"This page allows you to reset the password of your account, <strong>"
"%(account_jid)s</strong>, once."
msgstr ""
"Эта страница позволяет вам сбросить пароль вашей учетной записи, "
"<strong>%(account_jid)s</strong>, один раз."
"Эта страница позволяет вам сбросить пароль вашей учетной записи, <strong>"
"%(account_jid)s</strong>, один раз."
#: snikket_web/templates/invite_reset_view.html:17
msgid "Using the app"
@@ -940,7 +1109,7 @@ msgstr ""
"помощью приложения Snikket App, используя кнопку Сканировать в верхней части."
#: snikket_web/templates/invite_reset_view.html:26
#: snikket_web/templates/invite_view.html:76
#: 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 "
@@ -956,7 +1125,7 @@ msgstr ""
"Затем вам будет предложено ввести новый пароль для вашей учетной записи."
#: snikket_web/templates/invite_reset_view.html:29
#: snikket_web/templates/invite_view.html:44
#: snikket_web/templates/invite_view.html:45
msgid "Alternatives"
msgstr "Альтернативы"
@@ -1035,8 +1204,8 @@ msgid ""
"Install the Snikket App on your Android device (<a href=\"%(ios_info_url)s\" "
"rel=\"noopener noreferrer\" target=\"_blank\">iOS coming soon!</a>)."
msgstr ""
"Установите приложение Сниккет на ваше Android-устройство (<a href=\""
"%(ios_info_url)s\" rel=\"noopener noreferrer\" target=\"_blank\">iOS скоро "
"Установите приложение Сниккет на ваше Android-устройство (<a href="
"\"%(ios_info_url)s\" rel=\"noopener noreferrer\" target=\"_blank\">iOS скоро "
"будет!</a>)."
#: snikket_web/templates/invite_view.html:28
@@ -1044,14 +1213,19 @@ msgid "Get it on Google Play"
msgstr "Получить его в Гугл Игры"
#: snikket_web/templates/invite_view.html:30
#: snikket_web/templates/invite_view.html:102
msgid "Download on the App Store"
msgstr "Скачать в Магазин Приложений"
#: snikket_web/templates/invite_view.html:34
#: snikket_web/templates/invite_view.html:32
msgid "Get it on F-Droid"
msgstr ""
#: snikket_web/templates/invite_view.html:35
msgid "Send to mobile device"
msgstr "Отправить на мобильное устройство"
#: snikket_web/templates/invite_view.html:37
#: snikket_web/templates/invite_view.html:38
msgid ""
"After installation the app should automatically open and prompt you to "
"create an account. If not, simply click the button below."
@@ -1059,7 +1233,7 @@ msgstr ""
"После установки приложение должно автоматически открыться и предложить вам "
"создать учетную запись. Если нет, просто нажмите на кнопку ниже."
#: snikket_web/templates/invite_view.html:45
#: snikket_web/templates/invite_view.html:46
#, python-format
msgid ""
"You can connect to Snikket using any XMPP-compatible software. If the button "
@@ -1068,19 +1242,23 @@ msgid ""
msgstr ""
"Вы можете подключиться к Snikket с помощью любого XMPP-совместимого "
"программного обеспечения. Если вышеуказанная кнопка не работает с вашим "
"приложением, вам может понадобиться <a href=\"%(register_url)s\""
">зарегистрировать учетную запись вручную</a>."
"приложением, вам может понадобиться <a href=\"%(register_url)s"
"\">зарегистрировать учетную запись вручную</a>."
#: snikket_web/templates/invite_view.html:51
#: snikket_web/templates/invite_view.html:52
msgid "Scan invite code"
msgstr "Сканировать код приглашения"
#: snikket_web/templates/invite_view.html:54
#: snikket_web/templates/invite_view.html:83
#: snikket_web/templates/invite_view.html:55
#: 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 "близко"
#: snikket_web/templates/invite_view.html:57
#: snikket_web/templates/invite_view.html:58
msgid ""
"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."
@@ -1089,22 +1267,22 @@ msgstr ""
"отсканировав код с помощью камеры. Вы можете использовать как приложение QR-"
"сканера, так и само приложение Сниккет."
#: snikket_web/templates/invite_view.html:62
#: snikket_web/templates/invite_view.html:63
msgid "Using a QR code scanner"
msgstr "Используя сканер QR-кода"
#: snikket_web/templates/invite_view.html:64
#: snikket_web/templates/invite_view.html:65
msgid "Using the Snikket app"
msgstr "Использование приложения Сниккет"
#: snikket_web/templates/invite_view.html:69
#: 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:75
#: 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."
@@ -1112,6 +1290,42 @@ msgstr ""
"Установите приложение Сниккет на мобильное устройство, откройте его и "
"нажмите кнопку 'Сканировать' сверху."
#: snikket_web/templates/invite_view.html:93
msgid "Install on iOS"
msgstr ""
#: 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:101
msgid "First download Snikket from the App Store using the button below:"
msgstr ""
#: 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:121
#: snikket_web/templates/invite_view.html:130
msgid "Install via F-Droid"
msgstr ""
#: 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:129
msgid "First install Snikket from F-Droid using the button below:"
msgstr ""
#: snikket_web/templates/library.j2:18
msgid "Copy link"
msgstr "Ссылка на копирование"
@@ -1144,31 +1358,23 @@ msgstr "Логин Сниккетa"
msgid "Enter your Snikket address and password to manage your account."
msgstr "Введите адрес и пароль Сниккет для управления учетной записью."
#: snikket_web/templates/login.html:18
msgid "Login failed"
msgstr "Логин не удался"
#: snikket_web/templates/login.html:23
#: snikket_web/templates/login.html:19
msgid "Incorrect address"
msgstr "Неправильный пароль"
#: snikket_web/templates/login.html:24
#: snikket_web/templates/login.html:20
#, python-format
msgid ""
"This Snikket service only hosts addresses ending in <em>@%(snikket_domain)s</"
"em>. Your password was not sent."
msgstr ""
"Этот Сниккет сервис только размещает адреса, заканчивающиеся на "
"<em>@%(snikket_domain)s</em>. Ваш пароль не был отправлен."
"Этот Сниккет сервис только размещает адреса, заканчивающиеся на <em>@"
"%(snikket_domain)s</em>. Ваш пароль не был отправлен."
#: snikket_web/templates/unauth.html:16
msgid "Operation successful"
msgstr "Операция прошла успешно"
#: snikket_web/templates/unauth.html:18
msgid "Error"
msgstr "Ошибка"
#: snikket_web/templates/user_home.html:9
msgid "Welcome!"
msgstr "Добро пожаловать!"
@@ -1245,11 +1451,11 @@ msgstr "Обновить профиль"
msgid "Profile"
msgstr "Профиль"
#: snikket_web/templates/user_profile.html:19
#: snikket_web/templates/user_profile.html:23
msgid "Visibility"
msgstr "Видимость"
#: snikket_web/templates/user_profile.html:20
#: snikket_web/templates/user_profile.html:24
msgid ""
"This section allows you to control who can see your profile information, "
"like avatar and nickname."
@@ -1257,6 +1463,12 @@ msgstr ""
"Этот раздел позволяет вам контролировать, кто может видеть информацию вашего "
"профиля, например, аватар и ник."
#~ msgid "Create password reset link for %(user_name)s"
#~ msgstr "Создать ссылку сброса пароля для %(user_name)s"
#~ msgid "Login failed"
#~ msgstr "Логин не удался"
#, fuzzy
#~ msgid "Not on mobile?"
#~ msgstr "Не по мобильному?"

Binary file not shown.

View File

@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2021-02-23 07:55+0100\n"
"PO-Revision-Date: 2021-02-25 16:02+0000\n"
"POT-Creation-Date: 2021-03-25 17:32+0100\n"
"PO-Revision-Date: 2021-03-27 00:01+0000\n"
"Last-Translator: Kim Alvefur <zash@zash.se>\n"
"Language-Team: Swedish <https://i18n.sotecware.net/projects/snikket/"
"web-portal/sv/>\n"
@@ -17,255 +17,304 @@ msgstr ""
"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.4.2\n"
"X-Generator: Weblate 4.5.1\n"
"Generated-By: Babel 2.9.0\n"
#: snikket_web/admin.py:60
msgid "Delete user permanently"
msgstr "Radera användare permanent"
#: snikket_web/admin.py:59
msgid "Limited"
msgstr "Begränsad"
#: snikket_web/admin.py:73
msgid "User deleted"
msgstr "Användare raderad"
#: snikket_web/admin.py:64 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_users.html:8
msgid "Login name"
msgstr "Inloggningsnamn"
#: snikket_web/admin.py:116
#: snikket_web/admin.py:68 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:9 snikket_web/user.py:61
msgid "Display name"
msgstr "Visningsnamn"
#: snikket_web/admin.py:72 snikket_web/templates/admin_edit_user.html:33
msgid "Access Level"
msgstr "Användarnivåer"
#: snikket_web/admin.py:77
msgid "Normal user"
msgstr "Vanlig användare"
#: snikket_web/admin.py:78
msgid "Administrator"
msgstr "Administratör"
#: snikket_web/admin.py:83
msgid "Update user"
msgstr "Uppdatera användare"
#: snikket_web/admin.py:87
msgid "Create password reset link"
msgstr "Skapa länk för återställning av lösenord"
#: snikket_web/admin.py:105
msgid "Password reset link created"
msgstr "Skapade länk för att återställa lösenord"
#: snikket_web/admin.py:122
#: snikket_web/admin.py:120
msgid "User information updated."
msgstr "Användarinformation uppdaterad."
#: snikket_web/admin.py:142
msgid "Delete user permanently"
msgstr "Radera användare permanent"
#: snikket_web/admin.py:155
msgid "User deleted"
msgstr "Användare raderad"
#: snikket_web/admin.py:193
msgid "Password reset link not found"
msgstr "Länk för återställning av lösenord hittades inte"
#: snikket_web/admin.py:205
msgid "Password reset link deleted"
msgstr "Länk för återställning av lösenord raderad"
#: snikket_web/admin.py:141
#: snikket_web/admin.py:225
msgid "Invite to circle"
msgstr "Bjud in till krets"
#: snikket_web/admin.py:147
#: snikket_web/admin.py:231
msgid "At least one circle must be selected"
msgstr "Minst en krets behöver väljas"
#: snikket_web/admin.py:152
#: snikket_web/admin.py:236
msgid "Valid for"
msgstr "Giltig i"
#: snikket_web/admin.py:154
#: snikket_web/admin.py:238
msgid "One hour"
msgstr "En timme"
#: snikket_web/admin.py:155
#: snikket_web/admin.py:239
msgid "Twelve hours"
msgstr "Tolv timmar"
#: snikket_web/admin.py:156
#: snikket_web/admin.py:240
msgid "One day"
msgstr "En dag"
#: snikket_web/admin.py:157
#: snikket_web/admin.py:241
msgid "One week"
msgstr "En vecka"
#: snikket_web/admin.py:158
#: snikket_web/admin.py:242
msgid "Four weeks"
msgstr "Fyra veckor"
#: snikket_web/admin.py:164 snikket_web/templates/admin_edit_invite.html:17
#: snikket_web/admin.py:248 snikket_web/templates/admin_edit_invite.html:17
msgid "Invitation type"
msgstr "Typ av inbjudan"
#: snikket_web/admin.py:166 snikket_web/templates/library.j2:116
#: snikket_web/admin.py:250 snikket_web/templates/library.j2:116
msgid "Individual"
msgstr "Individuell"
#: snikket_web/admin.py:167 snikket_web/templates/library.j2:114
#: snikket_web/admin.py:251 snikket_web/templates/library.j2:114
msgid "Group"
msgstr "Grupp"
#: snikket_web/admin.py:173
#: snikket_web/admin.py:257
msgid "New invitation link"
msgstr "Ny inbjudanslänk"
#: snikket_web/admin.py:235
#: snikket_web/admin.py:319
msgid "Revoke"
msgstr "Återkalla"
#: snikket_web/admin.py:259
#: snikket_web/admin.py:343
msgid "Invitation created"
msgstr "Inbjudan skapad"
#: snikket_web/admin.py:275
#: snikket_web/admin.py:359
msgid "No such invitation exists"
msgstr "Inbjudanslänken finns inte"
#: snikket_web/admin.py:290
#: snikket_web/admin.py:374
msgid "Invitation revoked"
msgstr "Inbjudan återkallad"
#: snikket_web/admin.py:307 snikket_web/admin.py:355
#: snikket_web/admin.py:391 snikket_web/admin.py:439
msgid "Name"
msgstr "Namn"
#: snikket_web/admin.py:312 snikket_web/templates/admin_circles.html:47
#: snikket_web/admin.py:396 snikket_web/templates/admin_circles.html:47
msgid "Create circle"
msgstr "Skapa krets"
#: snikket_web/admin.py:342
#: snikket_web/admin.py:426
msgid "Circle created"
msgstr "Krets skapad"
#: snikket_web/admin.py:360
#: snikket_web/admin.py:444
msgid "Select user"
msgstr "Välj användare"
#: snikket_web/admin.py:365
#: snikket_web/admin.py:449
msgid "Update circle"
msgstr "Uppdatera krets"
#: snikket_web/admin.py:369
#: snikket_web/admin.py:453
msgid "Delete circle permanently"
msgstr "Radera krets permanent"
#: snikket_web/admin.py:375
#: snikket_web/admin.py:459
msgid "Add user"
msgstr "Lägg till användare"
#: snikket_web/admin.py:391
#: snikket_web/admin.py:475
msgid "No such circle exists"
msgstr "Kretsen finns inte"
#: snikket_web/admin.py:428
#: snikket_web/admin.py:512
msgid "Circle data updated"
msgstr "Kretsen uppdaterades"
#: snikket_web/admin.py:434
#: snikket_web/admin.py:518
msgid "Circle deleted"
msgstr "Krets raderad"
#: snikket_web/admin.py:445
#: snikket_web/admin.py:529
msgid "User added to circle"
msgstr "Användare tillagd i krets"
#: snikket_web/admin.py:454
#: snikket_web/admin.py:538
msgid "User removed from circle"
msgstr "Användaren %(username)s borttagen från krets"
#: snikket_web/infra.py:40
#: snikket_web/infra.py:41
msgid "Main"
msgstr "Allmän"
#: snikket_web/invite.py:104
#: snikket_web/invite.py:106
msgid "Username"
msgstr "Användarnamn"
#: snikket_web/invite.py:108 snikket_web/invite.py:175 snikket_web/main.py:42
#: snikket_web/invite.py:110 snikket_web/invite.py:177 snikket_web/main.py:41
msgid "Password"
msgstr "Lösenord"
#: snikket_web/invite.py:112 snikket_web/invite.py:179
#: snikket_web/invite.py:114 snikket_web/invite.py:181
msgid "Confirm password"
msgstr "Bekräfta lösenord"
#: snikket_web/invite.py:116 snikket_web/invite.py:183
msgid "The passwords must match"
msgstr "Lösenorden måste vara identiska"
#: snikket_web/invite.py:118 snikket_web/invite.py:185
msgid "The passwords must match."
msgstr "Lösenorden måste vara identiska."
#: snikket_web/invite.py:121
#: snikket_web/invite.py:123
msgid "Create account"
msgstr "Skapa konto"
#: snikket_web/invite.py:148
msgid "That username is already taken"
msgstr "Det användarnamnet är redan taget"
#: snikket_web/invite.py:150
msgid "That username is already taken."
msgstr "Det användarnamnet är redan taget."
#: snikket_web/invite.py:152 snikket_web/invite.py:216
msgid "Registration was declined for unknown reasons"
msgstr "Registreringen nekades av okänd anledning"
#: snikket_web/invite.py:154 snikket_web/invite.py:218
msgid "Registration was declined for unknown reasons."
msgstr "Registreringen nekades av okänd anledning."
#: snikket_web/invite.py:156
msgid "The username is not valid"
msgstr "Användarnamnet är ogiltigt"
#: snikket_web/invite.py:158
msgid "The username is not valid."
msgstr "Användarnamnet är ogiltigt."
#: snikket_web/invite.py:188 snikket_web/templates/user_home.html:32
#: snikket_web/invite.py:190 snikket_web/templates/user_home.html:32
#: snikket_web/templates/user_passwd.html:29
msgid "Change password"
msgstr "Ändra lösenord"
#: snikket_web/main.py:37
#: snikket_web/main.py:36
msgid "Address"
msgstr "Adress"
#: snikket_web/main.py:47
#: snikket_web/main.py:46
msgid "Sign in"
msgstr "Logga in"
#: snikket_web/main.py:56
#: snikket_web/main.py:55
msgid "Invalid username or password."
msgstr "Ogiltigt användarnamn eller lösenord."
#: snikket_web/main.py:84
#: snikket_web/main.py:83
msgid "Login successful!"
msgstr "Inloggning lyckades!"
#: snikket_web/user.py:28
#: snikket_web/user.py:27
msgid "Current password"
msgstr "Nuvarande lösenord"
#: snikket_web/user.py:33
#: snikket_web/user.py:32
msgid "New password"
msgstr "Nytt lösenord"
#: snikket_web/user.py:38
#: snikket_web/user.py:37
msgid "Confirm new password"
msgstr "Bekräfta nytt lösenord"
#: snikket_web/user.py:42
msgid "The new passwords must match"
msgstr "De nya lösenorden måste vara identiska"
#: snikket_web/user.py:41
msgid "The new passwords must match."
msgstr "De nya lösenorden måste vara identiska."
#: snikket_web/user.py:49
#: snikket_web/user.py:48
msgid "Sign out"
msgstr "Logga ut"
#: snikket_web/user.py:54
#: snikket_web/user.py:53
msgid "Nobody"
msgstr "Ingen"
#: snikket_web/user.py:55
#: snikket_web/user.py:54
msgid "Friends only"
msgstr "Endast vänner"
#: snikket_web/user.py:56
#: snikket_web/user.py:55
msgid "Everyone"
msgstr "Alla"
#: snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:11 snikket_web/user.py:62
msgid "Display name"
msgstr "Visningsnamn"
#: snikket_web/user.py:66
#: snikket_web/user.py:65
msgid "Avatar"
msgstr "Profilbild"
#: snikket_web/user.py:70
#: snikket_web/user.py:69
msgid "Profile visibility"
msgstr "Synlighet av profil"
#: snikket_web/user.py:75
#: snikket_web/user.py:74
msgid "Update profile"
msgstr "Uppdatera profil"
#: snikket_web/user.py:100
msgid "Incorrect password"
msgstr "Fel lösenord"
#: snikket_web/user.py:99
msgid "Incorrect password."
msgstr "Fel lösenord."
#: snikket_web/user.py:104
#: snikket_web/user.py:103
msgid "Password changed"
msgstr "Lösenord ändrat"
#: snikket_web/user.py:146
#: snikket_web/user.py:111
msgid ""
"The chosen avatar is too big. To be able to upload larger avatars, please "
"use the app."
msgstr ""
"Den valda profilbilden är för stor. Vänligen använd appen för att kunna "
"välja större bilder."
#: snikket_web/user.py:159
msgid "Profile updated"
msgstr "Profilen uppdaterad"
#: snikket_web/templates/unauth.html:18 snikket_web/user.py:167
msgid "Error"
msgstr "Fel"
#: snikket_web/templates/_footer.html:4
#, python-format
msgid "A <a href=\"%(about_url)s\">Snikket</a> service"
@@ -349,8 +398,8 @@ msgid ""
"\"%(trademarks_url)s\">Snikket Trademarks information page</a>."
msgstr ""
"“Snikket” och papegojloggan är varumärken tillhörande Snikket Community "
"Interest Company. För mer information om varumärkena, besök <a href=\""
"%(trademarks_url)s\">Snikkets sida om varumärken</a>."
"Interest Company. För mer information om varumärkena, besök <a href="
"\"%(trademarks_url)s\">Snikkets sida om varumärken</a>."
#: snikket_web/templates/about.html:19
msgid "Software Versions"
@@ -396,7 +445,7 @@ msgstr "Medlemmar"
#: snikket_web/templates/admin_circles.html:15
#: snikket_web/templates/admin_invites.html:24
#: snikket_web/templates/admin_users.html:12
#: snikket_web/templates/admin_users.html:10
msgid "Actions"
msgstr "Handlingar"
@@ -471,12 +520,12 @@ msgid "Copy complete output"
msgstr "Kopiera allt"
#: snikket_web/templates/admin_delete_user.html:4
#: snikket_web/templates/admin_users.html:22
#, python-format
msgid "Delete user %(user_name)s"
msgstr "Radera användaren %(user_name)s"
#: snikket_web/templates/admin_delete_user.html:6
#: snikket_web/templates/admin_edit_user.html:54
msgid "Delete user"
msgstr "Radera användare"
@@ -484,11 +533,6 @@ msgstr "Radera användare"
msgid "Are you sure you want to delete the following user?"
msgstr "Är du säker på att du vill radera denna användare?"
#: snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_users.html:10
msgid "Login name"
msgstr "Inloggningsnamn"
#: snikket_web/templates/admin_delete_user.html:15
msgid "Danger"
msgstr "Fara"
@@ -500,16 +544,14 @@ msgid ""
"strong>"
msgstr ""
"Om du trycker på knappen nedanför kommer användaren och deras data raderas "
"direkt, permanent och skoningslöst. <strong>Därefter finns ingen "
"återvändo!</strong>"
"direkt, permanent och skoningslöst. <strong>Därefter finns ingen återvändo!</"
"strong>"
#: snikket_web/templates/admin_delete_user.html:19
#: snikket_web/templates/admin_edit_circle.html:44
#: snikket_web/templates/admin_edit_invite.html:49
#: snikket_web/templates/admin_reset_user_password.html:25
#: snikket_web/templates/user_logout.html:10
#: snikket_web/templates/user_passwd.html:27
#: snikket_web/templates/user_profile.html:28
#: snikket_web/templates/user_profile.html:32
msgid "Back"
msgstr "Tillbaka"
@@ -541,6 +583,10 @@ msgstr "Om kretsen"
msgid "This circle has no group chat associated."
msgstr "Denna krets har ingen tillhörande gruppchatt."
#: snikket_web/templates/admin_edit_circle.html:44
msgid "Return to circle list"
msgstr "Tillbaka till cirkellistan"
#: snikket_web/templates/admin_edit_circle.html:48
msgid "Delete circle"
msgstr "Radera krets"
@@ -600,7 +646,8 @@ msgstr "Kretsar"
#: snikket_web/templates/admin_edit_invite.html:23
msgid ""
"Users joining via this invitation will be added to the following circles:"
msgstr "Användare som går med via denna inbjudan läggs till i följande kretsar:"
msgstr ""
"Användare som går med via denna inbjudan läggs till i följande kretsar:"
#: snikket_web/templates/admin_edit_invite.html:29
#: snikket_web/templates/admin_invites.html:23
@@ -626,6 +673,95 @@ msgstr "Användaren läggs till som kontakt för %(peer_jid)s."
msgid "Created"
msgstr "Skapad"
#: snikket_web/templates/admin_edit_invite.html:48
msgid "Return to invitation list"
msgstr "Tillbaka till inbjudningarna"
#: snikket_web/templates/admin_edit_user.html:5
msgid ""
"Limited users can interact with users on the same Snikket service and be "
"members of circles."
msgstr ""
"Begränsade användare kan interagera med andra användare på samma Snikket-"
"tjänst och vara medlemmar av kretsar."
#: snikket_web/templates/admin_edit_user.html:7
msgid ""
"Like limited users and can also interact with users on other Snikket "
"services."
msgstr ""
"Som begränsade användare samt kan även interagera med användare på andra "
"Snikket-tjänster."
#: snikket_web/templates/admin_edit_user.html:9
msgid "Like normal users and can access the admin panel in the web portal."
msgstr ""
"Som vanliga användare samt har även tillgång till administrationspanelen."
#: snikket_web/templates/admin_edit_user.html:20
#: snikket_web/templates/admin_users.html:28
#, python-format
msgid "Edit user %(user_name)s"
msgstr "Redigera användaren %(user_name)s"
#: snikket_web/templates/admin_edit_user.html:23
msgid "Edit user"
msgstr "Redigera användare"
#: snikket_web/templates/admin_edit_user.html:27
msgid "The login name cannot be changed."
msgstr "Inloggningsnamnet kan inte ändras."
#: snikket_web/templates/admin_edit_user.html:34
msgid ""
"The access level of a user determines what interactions are allowed for them "
"on your Snikket service."
msgstr ""
"Användarnivåer bestämmer vilka interaktioner är tillåtna för användare på "
"din Snikket-tjänst."
#: snikket_web/templates/admin_edit_user.html:41
#, python-format
msgid "<strong>%(title)s%(icon)s</strong><p>%(description)s</p>"
msgstr "<strong>%(title)s%(icon)s</strong><p>%(description)s</p>"
#: snikket_web/templates/admin_edit_user.html:51
msgid "Return to user list"
msgstr "Tillbaka till användarlistan"
#: snikket_web/templates/admin_edit_user.html:59
msgid "Further actions"
msgstr "Fler handlingar"
#: snikket_web/templates/admin_edit_user.html:61
msgid "Reset password"
msgstr "Återställ lösenord"
#: snikket_web/templates/admin_edit_user.html:64
msgid ""
"If the user has lost their password, you can use the button below to create "
"a special link which allows to change the password of the account, once."
msgstr ""
"Om användaren har tappat bort sitt lösenord så kan du använda knappen nedan "
"för att skapa en speciell engångslänk som låter dem ange ett nytt lösenord."
#: snikket_web/templates/admin_edit_user.html:69
msgid "Debug information"
msgstr "Felsökningsinformation"
#: snikket_web/templates/admin_edit_user.html:71
msgid ""
"In some cases, extended information about the user account and the connected "
"devices is necessary to troubleshoot issues. The button below reveals this "
"(sensitive) information."
msgstr ""
"Ibland behövs utökad information om användarkontot och anslutna enheter för "
"att felsöka problem. Knappen nedan visar denna (känsliga) information."
#: snikket_web/templates/admin_edit_user.html:75
msgid "Show debug information"
msgstr "Visa felsökningsinformation"
#: snikket_web/templates/admin_home.html:4
msgid "Welcome to the admin panel!"
msgstr "Välkommen till administrationspanelen!"
@@ -722,15 +858,21 @@ msgstr ""
msgid "Destroy link"
msgstr "Förstör länk"
#: snikket_web/templates/admin_users.html:25
#, python-format
msgid "Show debug information for %(user_name)s"
msgstr "Visa felsökningsinformation för %(user_name)s"
#: snikket_web/templates/admin_users.html:19
msgid "The user is an administrator."
msgstr "Användaren är en administratör."
#: snikket_web/templates/admin_users.html:28
#, python-format
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"
#: snikket_web/templates/admin_users.html:19
msgid " (Administrator)"
msgstr " (Administratör)"
#: snikket_web/templates/admin_users.html:22
msgid "The user is restricted."
msgstr "Begränsad användare."
#: snikket_web/templates/admin_users.html:22
msgid " (Restricted)"
msgstr " (Begränsad)"
#: snikket_web/templates/app.html:4
msgid "Snikket Web Portal"
@@ -820,18 +962,20 @@ msgstr ""
"klicka på knappen nedan:"
#: snikket_web/templates/invite_register.html:14
#: snikket_web/templates/invite_view.html:38
#: snikket_web/templates/invite_view.html:39
msgid "App already installed?"
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:40
#: snikket_web/templates/invite_view.html:41
#: snikket_web/templates/invite_view.html:106
#: snikket_web/templates/invite_view.html:134
msgid "Open the app"
msgstr "Öppna appen"
#: snikket_web/templates/invite_register.html:18
#: snikket_web/templates/invite_view.html:42
#: snikket_web/templates/invite_view.html:43
msgid "This button works only if you have the app installed already!"
msgstr "Den här knappen fungerar bara om du redan har appen installerad!"
@@ -926,7 +1070,7 @@ msgstr ""
"Scanna-knappen överst."
#: snikket_web/templates/invite_reset_view.html:26
#: snikket_web/templates/invite_view.html:76
#: 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 "
@@ -940,7 +1084,7 @@ msgid "You will then be prompted to enter a new password for your account."
msgstr "Du kommer bli ombedd att skriva in ett nytt lösenord för ditt konto."
#: snikket_web/templates/invite_reset_view.html:29
#: snikket_web/templates/invite_view.html:44
#: snikket_web/templates/invite_view.html:45
msgid "Alternatives"
msgstr "Alternativ"
@@ -1026,14 +1170,19 @@ 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:102
msgid "Download on the App Store"
msgstr "Hämta på App Store"
#: snikket_web/templates/invite_view.html:34
#: snikket_web/templates/invite_view.html:32
msgid "Get it on F-Droid"
msgstr "Hämta den på F-Droid"
#: snikket_web/templates/invite_view.html:35
msgid "Send to mobile device"
msgstr "Skicka till mobil"
#: snikket_web/templates/invite_view.html:37
#: snikket_web/templates/invite_view.html:38
msgid ""
"After installation the app should automatically open and prompt you to "
"create an account. If not, simply click the button below."
@@ -1041,7 +1190,7 @@ msgstr ""
"Efter installationen kommer appen automatiskt öppna och be dig skapa ett "
"konto. Om inte, klicka på knappen nedan."
#: snikket_web/templates/invite_view.html:45
#: snikket_web/templates/invite_view.html:46
#, python-format
msgid ""
"You can connect to Snikket using any XMPP-compatible software. If the button "
@@ -1052,16 +1201,20 @@ msgstr ""
"Om knappen ovan inte fungerar med din app så kan du behöva <a href="
"\"%(register_url)s\">registrera ett konto manuellt</a>."
#: snikket_web/templates/invite_view.html:51
#: snikket_web/templates/invite_view.html:52
msgid "Scan invite code"
msgstr "Scanna inbjudningskoden"
#: snikket_web/templates/invite_view.html:54
#: snikket_web/templates/invite_view.html:83
#: snikket_web/templates/invite_view.html:55
#: 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"
#: snikket_web/templates/invite_view.html:57
#: snikket_web/templates/invite_view.html:58
msgid ""
"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."
@@ -1070,21 +1223,21 @@ 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:62
#: 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:64
#: snikket_web/templates/invite_view.html:65
msgid "Using the Snikket app"
msgstr "Med Snikket-appen"
#: snikket_web/templates/invite_view.html:69
#: 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:75
#: 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."
@@ -1092,6 +1245,48 @@ 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: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 ""
"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: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: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 ""
"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:121
#: snikket_web/templates/invite_view.html:130
msgid "Install via F-Droid"
msgstr "Installera via F-Droid"
#: 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 ""
"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:129
msgid "First install Snikket from F-Droid using the button below:"
msgstr "Installera först Snikket från F-Droid med knappen nedan:"
#: snikket_web/templates/library.j2:18
msgid "Copy link"
msgstr "Kopiera länk"
@@ -1122,31 +1317,23 @@ msgstr "Snikket Inloggning"
msgid "Enter your Snikket address and password to manage your account."
msgstr "Ange din Snikket-adress och lösenord för att hantera ditt konto."
#: snikket_web/templates/login.html:18
msgid "Login failed"
msgstr "Inloggning misslyckades"
#: snikket_web/templates/login.html:23
#: snikket_web/templates/login.html:19
msgid "Incorrect address"
msgstr "Fel adress"
#: snikket_web/templates/login.html:24
#: snikket_web/templates/login.html:20
#, python-format
msgid ""
"This Snikket service only hosts addresses ending in <em>@%(snikket_domain)s</"
"em>. Your password was not sent."
msgstr ""
"Den här Snikket-tjänsten har bara adresser som slutar på "
"<em>@%(snikket_domain)s</em>. Ditt lösenord skickades inte."
"Den här Snikket-tjänsten har bara adresser som slutar på <em>@"
"%(snikket_domain)s</em>. Ditt lösenord skickades inte."
#: snikket_web/templates/unauth.html:16
msgid "Operation successful"
msgstr "Operationen lyckades"
#: snikket_web/templates/unauth.html:18
msgid "Error"
msgstr "Fel"
#: snikket_web/templates/user_home.html:9
msgid "Welcome!"
msgstr "Välkommen!"
@@ -1222,11 +1409,11 @@ msgstr "Uppdatera din profil"
msgid "Profile"
msgstr "Profil"
#: snikket_web/templates/user_profile.html:19
#: snikket_web/templates/user_profile.html:23
msgid "Visibility"
msgstr "Synlighet"
#: snikket_web/templates/user_profile.html:20
#: snikket_web/templates/user_profile.html:24
msgid ""
"This section allows you to control who can see your profile information, "
"like avatar and nickname."
@@ -1234,5 +1421,11 @@ msgstr ""
"Den här avdelningen låter dig hantera vilka som kan se din profil, såsom din "
"profilbild och visningsnamn."
#~ 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"
#~ msgid "Login failed"
#~ msgstr "Inloggning misslyckades"
#~ msgid "Not on mobile?"
#~ msgstr "Inte på mobilen?"

View File

@@ -38,7 +38,7 @@ class ChangePasswordForm(BaseForm):
validators=[wtforms.validators.InputRequired(),
wtforms.validators.EqualTo(
"new_password",
_l("The new passwords must match")
_l("The new passwords must match.")
)]
)

View File

@@ -5,13 +5,16 @@ action/delete:delete
action/logout:logout
action/login:login
action/exit_to_app:exit_to_app
action/lock:lock
communication/qr_code:qrcode
communication/vpn_key:passwd
communication/rss_feed:broadcast
content/add_circle_outline:add
content/add_link:create_link
content/remove_circle_outline:remove
content/content_copy:copy
content/link_off:remove_link
content/send:send
navigation/arrow_back:back
navigation/arrow_forward:forward
navigation/cancel:cancel
@@ -25,3 +28,4 @@ navigation/close:close
image/edit:edit
action/admin_panel_settings:admin
content/link:link
content/insights:insights