Compare commits

..

80 Commits

Author SHA1 Message Date
Jonas Schäfer
958b3365f7 Remove strange greeting copied over from user_home 2022-01-17 16:34:30 +01:00
Matthew Wild
05caf38d37 Use PUT method instead of POST, as expected by API 2022-01-17 16:33:46 +01:00
Matthew Wild
390ecded42 Include PEP data in export/import 2022-01-17 16:33:29 +01:00
Matthew Wild
f6395d4d9c Complete the implementation of data import 2022-01-17 16:33:00 +01:00
Matthew Wild
32179c72cd Add account data import UI on registration success page 2022-01-17 16:24:00 +01:00
Matthew Wild
3cb8185b1a prosodyclient: Add API to import XEP-0227 account data 2022-01-17 16:23:58 +01:00
Matthew Wild
481379d03f Switch to HTTP 204 to indicate no data to export
This is more robust, as it indicates the request was successfully
authenticated and processed, but that there is no data to export. This is
different from the URL not existing (which would also happen if the module was
unavailable, which should be a notable error instead).
2022-01-17 16:23:57 +01:00
Matthew Wild
275b302531 Add UI for exporting user account data 2022-01-17 16:23:56 +01:00
Matthew Wild
e18f727db0 prosodyclient: Add support for exporting a user's account data 2022-01-17 16:23:55 +01:00
Matthew Wild
f7429413cd Add more icons to the repertoire 2022-01-17 16:23:35 +01:00
Jonas Schäfer
aed9ad1cde Merge pull request #93 from Zash/debianbullseye
Dockerfile: Switch base image to Debian 11
2022-01-10 16:40:28 +01:00
Kim Alvefur
b545c137b1 Dockerfile: Switch base image to Debian 11 2022-01-10 16:27:38 +01:00
Matthew Wild
47642dc384 Merge pull request #108 from snikket-im/feature/multi-stage-dockerfile
Dockerfile: Split build into multiple stages
2022-01-10 14:21:57 +00:00
Jonas Schäfer
5d7183a0b8 Reinstate cache deletion in multi-stage build
Previously, the multi-stage build increased the image size by about 30
MiB (163MiB -> 191MiB). Dropping the caches reduces the image size down
to 159MiB, leading to a net improvement of 4 MiB.
2022-01-08 13:29:28 +01:00
Matthew Wild
c1cf6ab1e5 Dockerfile: Split build into multiple stages
Currently the Dockerfile has a single RUN directive with all the needed
commands in it. This optimizes for image size by not creating too many
"layers" (which are only additive). However it means the result that gets
cached can basically never be reused, because any change to the source code
will need to execute the whole RUN block again.

This commit switches to a docker "multi-stage" build, where we have a build
image that is separate from the final one that gets published. The build
image can be cached locally, and size is no longer a significant concern.

This approach allows the single RUN command to be split up into multiple RUN
commands that only execute when strictly needed (i.e. when their result
is not cached locally).

This drastically improves the build time when rebuilding the image after
a simple code change, because the build image doesn't have to install all
the apt packages, for example. This leads to a nicer developer experience
when using docker locally for development and testing.
2022-01-08 13:17:52 +01:00
Jonas Schäfer
aee53a2e1a Merge pull request #109 from snikket-im/feature/fix-mypy
Fix mypy false positives
2022-01-08 13:14:28 +01:00
Jonas Schäfer
3a81a0140b Revert "Fix spurious mypy error"
This reverts commit 28ff19c19c.
2022-01-08 13:12:30 +01:00
Jonas Schäfer
5b4d4ddd36 Fix some mypy regression 2022-01-08 13:12:30 +01:00
Jonas Schäfer
28ff19c19c Fix spurious mypy error
For whatever reason, it thinks that babel has no __version__ field, but
it in fact does.
2022-01-08 12:52:31 +01:00
uira
8e3837f704 Translated using Weblate (Indonesian)
Currently translated at 100.0% (303 of 303 strings)

Translation: Snikket/Web Portal
Translate-URL: http://i18n.sotecware.net/projects/snikket/web-portal/id/
2021-12-12 07:00:42 +00:00
Matthew Wild
98e7de3166 Merge pull request #104 from snikket-im/feature/enable-restricted-users
admin: Show restricted user role in the UI
2021-11-09 17:03:08 +00:00
Matthew Wild
61c71b2145 admin: Inline restricted user role name
It was a variable only for the benefit of translators while disabled.
2021-11-09 17:00:59 +00:00
Matthew Wild
6b35e9a259 admin: Show restricted user role in the UI 2021-11-09 16:40:50 +00:00
Matthew Wild
58c2112fec Merge pull request #102 from snikket-im/feature/pin-wtforms
Pin wtforms to 2.x
2021-11-09 10:48:18 +00:00
Jonas Schäfer
c856afee82 Pin wtforms to 2.x
wtforms 3.0 is incompatible with our code. A separate issue will be
filed to address the incompatibilities, but this should be enough to get
working images out of it.

With 3.x, we're seeing:

```
  File "/home/horazont/Projects/python/snikket-web-portal/snikket_web/main.py", line 35, in LoginForm
    address = wtforms.TextField(
AttributeError: module 'wtforms' has no attribute 'TextField'
```

and the portal fails to start.
2021-11-08 18:07:34 +01:00
Matthew Wild
c8356a8e9e Merge pull request #101 from snikket-im/feature/https-qr
Force invite QR code to HTTPS
2021-10-15 14:32:57 +01:00
Jonas Schäfer
0eb464f428 Force invite QR code to HTTPS
We could also do a thing with ProxyFix, but honestly, this should always
be HTTPS.
2021-10-15 15:21:22 +02:00
misiek
2a6ef3c8f1 Translated using Weblate (Polish)
Currently translated at 100.0% (303 of 303 strings)

Translation: Snikket/Web Portal
Translate-URL: http://i18n.sotecware.net/projects/snikket/web-portal/pl/
2021-09-03 15:00:35 +00:00
Matthew Wild
b5d148458a Merge pull request #98 from snikket-im/feature/apple
🎉 Finally set the URL for the App Store
2021-09-02 14:42:02 +01:00
Jonas Schäfer
261758b07a 🎉 Finally set the URL for the App Store
See-Also: https://snikket.org/blog/snikket-ios-public-release/
2021-08-31 17:03:21 +02:00
Jonas Schäfer
ff99c9488a Merge pull request #96 from Zash/invite_success_link
Link to main page after successful registration
2021-08-30 15:47:41 +02:00
Kim Alvefur
fe78631039 Link to main page after successful registration
Someone who registers via the web might also be interested in the web
portal.

Thanks to Jonas and Matthew for feedback on draft commit and help with
whatever this template syntax is.

Also no thanks to git for not actually having draft commits as a concept.
Mercurial is so much nicer to work with.
2021-08-29 15:10:02 +02:00
Kim Alvefur
12ddd288bf Translated using Weblate (Swedish)
Currently translated at 100.0% (303 of 303 strings)

Translation: Snikket/Web Portal
Translate-URL: http://i18n.sotecware.net/projects/snikket/web-portal/sv/
2021-08-01 14:00:44 +00:00
misiek
633fb0d084 Translated using Weblate (Polish)
Currently translated at 97.0% (294 of 303 strings)

Translation: Snikket/Web Portal
Translate-URL: http://i18n.sotecware.net/projects/snikket/web-portal/pl/
2021-08-01 14:00:44 +00:00
uira
f9690063bc Translated using Weblate (Indonesian)
Currently translated at 100.0% (303 of 303 strings)

Translation: Snikket/Web Portal
Translate-URL: https://i18n.sotecware.net/projects/snikket/web-portal/id/
2021-06-21 23:01:04 +00:00
Jonas Schäfer
65ed50acd3 Merge pull request #90 from snikket-im/hotfix/f-droid-button
Fix F-Droid installation button
2021-06-21 20:23:02 +02:00
Jonas Schäfer
aa04320d70 Fix F-Droid installation button
The button was broken because it was classified as popover, which
means that the JavaScript code will mess with it. In reality,
*that* button was supposed to point at the actual market:// URL.

So we just remove the class and associated data here to fix that.

Fixes #89.
2021-06-20 14:14:30 +02:00
Link Mauve
818d50a1bb Translated using Weblate (French)
Currently translated at 97.6% (296 of 303 strings)

Translation: Snikket/Web Portal
Translate-URL: https://i18n.sotecware.net/projects/snikket/web-portal/fr/
2021-06-19 15:01:05 +00:00
Jonas Schäfer
c7ba7985ea Translated using Weblate (English (United Kingdom))
Currently translated at 40.5% (123 of 303 strings)

Translation: Snikket/Web Portal
Translate-URL: https://i18n.sotecware.net/projects/snikket/web-portal/en_GB/
2021-06-19 15:01:05 +00:00
Jonas Schäfer
223d127364 Translated using Weblate (English)
Currently translated at 70.2% (213 of 303 strings)

Translation: Snikket/Web Portal
Translate-URL: https://i18n.sotecware.net/projects/snikket/web-portal/en/
2021-06-19 15:01:04 +00:00
Jonas Schäfer
3a2c4543c4 Translated using Weblate (German)
Currently translated at 100.0% (303 of 303 strings)

Translation: Snikket/Web Portal
Translate-URL: https://i18n.sotecware.net/projects/snikket/web-portal/de/
2021-06-19 15:01:04 +00:00
Weblate
c307f057b9 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-06-18 14:20:21 +00:00
Jonas Schäfer
243d5ba236 Merge pull request #86 from snikket-im/feature/show-deleted-circle-members
admin: Show deleted users in circle members
2021-06-18 16:20:18 +02:00
Jonas Schäfer
3d62efccfc admin: Show deleted users in circle members
This helps with removing those users from circles, to avoid them
popping up in peoples roster again.

Even though removal from a circle also only partially works
(roster entries are for instance not cleared), this helps with
ghost users reappearing all the time.
2021-06-18 16:18:22 +02:00
Jonas Schäfer
9d26e39025 Merge pull request #87 from snikket-im/feature/mypy-ci-fix
Install build requirements for mypy CI check
2021-06-18 16:18:12 +02:00
Jonas Schäfer
874f0447ba Install build requirements for mypy CI check
Otherwise, the toml type hints are missing which mypy does not
like.
2021-06-18 16:14:45 +02:00
Jonas Schäfer
0f2127a672 Bring happiness to mypy 2021-06-18 16:11:22 +02:00
Weblate
20d84e7dd1 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-06-18 14:05:55 +00:00
Jonas Schäfer
a02e66023c Fix missing extract_translations run 2021-06-18 16:05:38 +02:00
Jonas Schäfer
e7db9cc772 Fix untranslated table header in admin_edit_circle.html 2021-06-17 17:02:26 +02:00
Jonas Schäfer
e91fb45374 Merge pull request #85 from snikket-im/auto-versioning
Automatically determine version from build info or git
2021-05-31 17:51:59 +02:00
Matthew Wild
531565d55c Automatically determine version from build info or git 2021-05-31 11:20:39 +01:00
Kim Alvefur
c6307619f9 Translated using Weblate (Swedish)
Currently translated at 100.0% (302 of 302 strings)

Translation: Snikket/Web Portal
Translate-URL: https://i18n.sotecware.net/projects/snikket/web-portal/sv/
2021-05-28 21:00:56 +00:00
Weblate
da2668cbbc 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-05-27 18:31:31 +00:00
Link Mauve
765e3890b4 Translated using Weblate (French)
Currently translated at 97.4% (272 of 279 strings)

Translation: Snikket/Web Portal
Translate-URL: https://i18n.sotecware.net/projects/snikket/web-portal/fr/
2021-05-27 18:31:30 +00:00
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
46 changed files with 4934 additions and 1294 deletions

View File

@@ -27,6 +27,7 @@ jobs:
set -euo pipefail
pip install mypy
pip install -r requirements.txt
pip install -r build-requirements.txt
- name: Typecheck
run: |
python -m mypy --config mypy.ini -p snikket_web

View File

@@ -1,7 +1,13 @@
FROM debian:buster-slim
FROM debian:bullseye-slim AS build
ARG BUILD_SERIES=dev
ARG BUILD_ID=0
RUN set -eu; \
export DEBIAN_FRONTEND=noninteractive ; \
apt-get update ; \
apt-get install -y --no-install-recommends \
python3 python3-pip python3-setuptools python3-wheel \
libpython3-dev \
make build-essential \
netcat;
COPY requirements.txt /opt/snikket-web-portal/requirements.txt
COPY build-requirements.txt /opt/snikket-web-portal/build-requirements.txt
@@ -11,31 +17,42 @@ COPY babel.cfg /opt/snikket-web-portal/babel.cfg
WORKDIR /opt/snikket-web-portal
RUN set -eu; \
export DEBIAN_FRONTEND=noninteractive ; \
apt-get update ; \
apt-get install -y --no-install-recommends \
python3 python3-pip python3-setuptools python3-wheel \
libpython3-dev \
make build-essential \
netcat \
; \
pip3 install -r requirements.txt; \
RUN pip3 install -r requirements.txt; \
pip3 install -r build-requirements.txt; \
make; \
pip3 uninstall -yr build-requirements.txt; \
apt-get remove -y build-essential make libpython3-dev; \
apt-get autoremove -y; \
pip3 install hypercorn; \
rm -rf /root/.cache; \
apt-get clean ; rm -rf /var/lib/apt/lists
make;
FROM debian:bullseye-slim
ARG BUILD_SERIES=dev
ARG BUILD_ID=0
COPY docker/env.py /etc/snikket-web-portal/env.py
ENV SNIKKET_WEB_PYENV=/etc/snikket-web-portal/env.py
ENV SNIKKET_WEB_PROSODY_ENDPOINT=http://127.0.0.1:5280/
HEALTHCHECK CMD nc -zv ${SNIKKET_TWEAK_PORTAL_INTERNAL_HTTP_INTERFACE:-127.0.0.1} ${SNIKKET_TWEAK_PORTAL_INTERNAL_HTTP_PORT:-5765}
RUN set -eu; \
export DEBIAN_FRONTEND=noninteractive ; \
apt-get update ; \
apt-get install -y --no-install-recommends \
python3 python3-pip python3-setuptools python3-wheel; \
apt-get clean ; rm -rf /var/lib/apt/lists; \
pip3 install hypercorn; \
rm -rf /root/.cache;
WORKDIR /opt/snikket-web-portal
COPY requirements.txt /opt/snikket-web-portal/requirements.txt
RUN pip3 install -r requirements.txt; rm -rf /root/.cache;
COPY --from=build /opt/snikket-web-portal/snikket_web/ /opt/snikket-web-portal/snikket_web
COPY babel.cfg /opt/snikket-web-portal/babel.cfg
RUN echo "$BUILD_SERIES $BUILD_ID" > /opt/snikket-web-portal/.app_version
ADD docker/entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/bin/sh", "/entrypoint.sh"]

View File

@@ -1,3 +1,4 @@
pyscss~=1.3
mypy
python-dotenv~=0.15
types-toml

View File

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

View File

@@ -21,7 +21,7 @@ from quart import (
import environ
from . import colour, infra
from ._version import version, version_info # noqa:F401
from ._version import version # noqa:F401
async def proc() -> typing.Dict[str, typing.Any]:
@@ -154,12 +154,15 @@ class AppConfig:
"pl",
"sv",
], converter=autosplit)
apple_store_url = environ.var("")
apple_store_url = environ.var(
"https://apps.apple.com/us/app/snikket/id1545164189",
)
# Default limit of 1 MiB is what was discovered to be the effective limit
# in #67, hence we set that here for now.
# 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)))
@@ -172,7 +175,7 @@ def create_app() -> quart.Quart:
pass
else:
import runpy
init_vars = runpy.run_path(env_init) # type:ignore
init_vars = runpy.run_path(env_init)
for name, value in init_vars.items():
if not name:
continue
@@ -191,6 +194,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,5 +1,15 @@
version_info = (0, 1, 2, "a0")
version = (
".".join(map(str, version_info[:3])) +
(f"-{version_info[3]}" if version_info[3] else "")
)
import os
import subprocess
version = "(unknown)"
if os.path.exists(".app_version"):
with open(".app_version") as f:
version = f.read().strip()
elif os.path.exists(".git"):
try:
version = subprocess.check_output([
"git", "describe", "--always"
]).strip().decode("utf8")
except OSError:
version = "dev (unknown)"

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,7 +34,11 @@ 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):
@@ -56,9 +63,6 @@ async def users() -> str:
)
_LIMITED_ROLE_NAME = _("Limited")
class EditUserForm(BaseForm):
localpart = wtforms.StringField(
_l("Login name"),
@@ -71,9 +75,7 @@ class EditUserForm(BaseForm):
role = wtforms.RadioField(
_l("Access Level"),
choices=[
# NOTE: enable this only after something has been done which
# actually enforces the described restrictions :).
# ("prosody:restricted", _l("Limited")),
("prosody:restricted", _("Limited")),
("prosody:normal", _l("Normal user")),
("prosody:admin", _l("Administrator")),
],
@@ -478,21 +480,21 @@ async def edit_circle(id_: str) -> typing.Union[str, quart.Response]:
return redirect(url_for(".circles"))
raise
users = sorted(
await client.list_users(),
key=lambda x: x.localpart
)
users = {
user.localpart: user
for user in await client.list_users()
}
circle_members = [
user for user in users
if user.localpart in circle.members
(localpart, users.get(localpart))
for localpart in sorted(circle.members)
]
form = EditCircleForm()
form.user_to_add.choices = [
(user.localpart, user.localpart)
for user in users
if user.localpart not in circle.members
]
form.user_to_add.choices = sorted(
(localpart, localpart)
for localpart in users.keys()
if localpart not in circle.members
)
valid_users = [x[0] for x in form.user_to_add.choices]
invite_form = InvitePost()
@@ -550,3 +552,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

@@ -10,13 +10,14 @@ from quart import (
current_app,
render_template,
redirect,
request,
url_for,
session as http_session,
)
import wtforms
from flask_babel import lazy_gettext as _l
from flask_babel import lazy_gettext as _l, gettext
from .infra import client, selected_locale, BaseForm
@@ -26,6 +27,11 @@ bp = Blueprint("invite", __name__)
INVITE_SESSION_JID = "invite-session-jid"
MAX_IMPORT_DATA_SIZE = 5*1024*1024 # 5MB
SUPPORTED_IMPORT_TYPES = ["application/xml", "text/xml"]
EIMPORTTOOBIG = _l("The account data you tried to import is too large to"
"upload. Please contact your Snikket operator.")
# https://play.google.com/store/apps/details?id=org.snikket.android&referrer={uri|urlescape}&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1
@@ -163,6 +169,7 @@ async def register(id_: str) -> typing.Union[str, quart.Response]:
raise
else:
http_session[INVITE_SESSION_JID] = jid
await client.login(jid, form.password.data)
return redirect(url_for(".success"))
return await render_template(
@@ -232,11 +239,55 @@ async def reset(id_: str) -> typing.Union[str, quart.Response]:
)
class DataImportForm(BaseForm):
account_data_file = wtforms.FileField(
_l("Account data file")
)
action_import = wtforms.SubmitField(
_l("Import data")
)
@bp.route("/success", methods=["GET", "POST"])
@client.require_session()
async def success() -> str:
form = DataImportForm()
if form.validate_on_submit():
ok = True
file_info = (await request.files).get(form.account_data_file.name)
if file_info is not None:
mimetype = file_info.mimetype
data = file_info.stream.read()
if len(data) > MAX_IMPORT_DATA_SIZE:
form.account_data_file.errors.append(EIMPORTTOOBIG)
ok = False
elif mimetype not in SUPPORTED_IMPORT_TYPES:
form.account_data_file.errors.append(
# not breaking the line here to avoid extract
# translations failing (defensive)
gettext("The account data you tried to import is in an unknown format. Please upload an XML file in XEP-0227 format (provided format: %(mimetype)s).", mimetype=mimetype), # noqa:E501
)
ok = False
elif len(data) > 0:
await client.import_account_data(data)
if ok:
# Re-render success page, this time with no import option
return await render_template(
"invite_success.html",
jid=http_session.get(INVITE_SESSION_JID, ""),
migration_success=True,
)
return await render_template(
"invite_success.html",
jid=http_session.get(INVITE_SESSION_JID, ""),
migration_success=False,
form=form,
max_import_size=MAX_IMPORT_DATA_SIZE,
import_too_big_warning_header=_l("Error"),
import_too_big_warning=EIMPORTTOOBIG,
)

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

@@ -296,6 +296,9 @@ class ProsodyClient:
def _public_v1_endpoint(self, subpath: str) -> str:
return "{}/register_api{}".format(self._endpoint_base, subpath)
def _xep227_endpoint(self, subpath: str) -> str:
return "{}/xep227{}".format(self._endpoint_base, subpath)
async def _oauth2_bearer_token(self,
session: aiohttp.ClientSession,
jid: str,
@@ -510,7 +513,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
@@ -523,7 +526,7 @@ class ProsodyClient:
"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:
@@ -1121,6 +1124,34 @@ class ProsodyClient:
) as resp:
self._raise_error_from_response(resp)
@autosession
async def export_account_data(
self,
*,
session: aiohttp.ClientSession,
) -> typing.Optional[str]:
async with session.get(
self._xep227_endpoint("/export?stores=roster,vcard,pep,pep_data"), # noqa:E501
) as resp:
self._raise_error_from_response(resp)
if resp.status == 204:
return None
return await resp.text()
@autosession
async def import_account_data(
self,
user_xml: str,
*,
session: aiohttp.ClientSession,
) -> bool:
async with session.put(
self._xep227_endpoint("/import?stores=roster,vcard,pep,pep_data"), # noqa:E501
data=user_xml,
) as resp:
self._raise_error_from_response(resp)
return True
@autosession
async def revoke_token(
self,
@@ -1175,3 +1206,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

@@ -42,6 +42,11 @@ licensed under the terms of the Apache 2.0 License -->
<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/import_export/materialiconsround/24px.svg -->
<symbol id="icon-import_export" viewBox="0 0 24 24">
<path d="M0 0h24v24H0V0z" fill="none" />
<path d="M8.65 3.35L5.86 6.14c-.32.31-.1.85.35.85H8V13c0 .55.45 1 1 1s1-.45 1-1V6.99h1.79c.45 0 .67-.54.35-.85L9.35 3.35c-.19-.19-.51-.19-.7 0zM16 17.01V11c0-.55-.45-1-1-1s-1 .45-1 1v6.01h-1.79c-.45 0-.67.54-.35.85l2.79 2.78c.2.19.51.19.71 0l2.79-2.78c.32-.31.09-.85-.35-.85H16z" />
</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>
@@ -52,6 +57,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" />
@@ -77,6 +88,26 @@ 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: file/file_download/materialicons/24px.svg -->
<symbol id="icon-download" viewBox="0 0 24 24">
<path d="M0 0h24v24H0z" fill="none" />
<path d="M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z" />
</symbol>
<!-- from: file/file_upload/materialicons/24px.svg -->
<symbol id="icon-upload" viewBox="0 0 24 24">
<path d="M0 0h24v24H0z" fill="none" />
<path d="M9 16h6v-6h4l-7-7-7 7h4zm-4 2h14v2H5z" />
</symbol>
<!-- from: file/folder/materialiconsround/24px.svg -->
<symbol id="icon-folder" viewBox="0 0 24 24">
<path d="M0 0h24v24H0V0z" fill="none" />
<path d="M10.59 4.59C10.21 4.21 9.7 4 9.17 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-1.41-1.41z" />
</symbol>
<!-- from: navigation/arrow_back/materialiconsround/24px.svg -->
<symbol id="icon-back" viewBox="0 0 24 24">
<path d="M0 0h24v24H0V0z" fill="none" />
@@ -142,4 +173,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: 15 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -1,5 +1,5 @@
{% extends "admin_app.html" %}
{% from "library.j2" import form_button, standard_button, value_or_hint, custom_form_button, clipboard_button %}
{% from "library.j2" import form_button, standard_button, value_or_hint, custom_form_button, clipboard_button, icon %}
{% block head_lead %}
{{ super() }}
{% include "copy-snippet.html" %}
@@ -56,14 +56,21 @@
{%- if circle_members -%}
<div class="el-2 elevated"><table>
<thead>
<th>Login name</th>
<th class="collapsible">Display name</th>
<th>Actions</th>
<th>{% trans %}Login name{% endtrans %}</th>
<th class="collapsible">{% trans %}Display name{% endtrans %}</th>
<th>{% trans %}Actions{% endtrans %}</th>
</thead>
<tbody>
{%- for member in circle_members -%}
{%- for localpart, member in circle_members -%}
<tr>
<td>{{ member.localpart }}</td>
<td>
{%- if member -%}
{{ localpart }}
{%- else -%}
{{ localpart }}
<span class="with-tooltip above" data-tooltip="{% trans %}The user has been deleted from the server.{% endtrans %}"><em> ({% trans %}deleted{% endtrans %})</em></span>
{%- endif -%}
</td>
<td class="collapsible">{% call value_or_hint(member.display_name) %}{% endcall %}</td>
<td class="nowrap">
{%- call custom_form_button("remove_user", form.action_remove_user.name, member.localpart, class="primary danger", slim=True) -%}

View File

@@ -18,8 +18,7 @@
{% endmacro %}
{% block content %}
<h1>{% trans user_name=target_user.localpart %}Edit user {{ user_name }}{% endtrans %}</h1>
<div class="form layout-expanded"><form method="POST">
{{ form.csrf_token }}
<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 }}
@@ -55,9 +54,9 @@
{%- endcall -%}
{%- call form_button("done", form.action_save, class="primary") %}{% endcall -%}
</div>
</form></div>
</div>
<h2>{% trans %}Further actions{% endtrans %}</h2>
<div class="form layout-expanded"><form method="POST">
<div class="form layout-expanded">
<h2 class="form-title">{% trans %}Reset password{% endtrans %}</h2>
{{ form.csrf_token }}
<p class="form-desc">
@@ -75,5 +74,5 @@
{%- trans -%}Show debug information{%- endtrans -%}
{%- endcall -%}
</div>
</form></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

@@ -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,6 +1,6 @@
{% extends "invite.html" %}
{% set body_id = "invite" %}
{% from "library.j2" import form_button, clipboard_button %}
{% from "library.j2" import form_button, clipboard_button, render_errors %}
{% block head_lead %}
<title>{% trans site_name=config["SITE_NAME"] %}Successfully registered on {{ site_name }} | Snikket{% endtrans %}</title>
{%- include "copy-snippet.html" -%}
@@ -15,6 +15,47 @@
{% trans %}Copy address{% endtrans %}
{%- endcall -%}
<p>{% trans %}You can now set up your legacy XMPP client with the above address and the password you chose during registration.{% endtrans %}</p>
<p>{% trans %}You can now safely close this page.{% endtrans %}</p>
<p>{% trans login_url=url_for('main.login') %}You can now safely close this page, or log in to the web portal to <a href="{{ login_url }}">manage your account</a>.{% endtrans %}</p>
{% if migration_success %}
<h2>{% trans %}Import successful{% endtrans %}</h2>
<p>{% trans %}Congratulations! Your account data has been successfully imported.{% endtrans %}</p>
{% endif %}
{% if form %}
<h2>{% trans %}Moving to Snikket?{% endtrans %}</h2>
<p>{% trans %}If you are moving from a different Snikket instance or another XMPP-compatible service, you may optionally import the data (contacts, profile information, etc.) from your previous account. When you have exported the data from your previous account, upload it using the form below.{% endtrans %}</p>
<div class="form layout-expanded"><form method="POST" enctype="multipart/form-data">
<h3 class="form-title">{% trans %}Upload account data{% endtrans %}</h3>
{{ form.csrf_token }}
{% call render_errors(form) %}{% endcall %}
<div class="f-ebox">
{{ form.account_data_file.label }}
{{ form.account_data_file(accept="application/xml",
data_maxsize=max_import_size,
data_warning_header=import_too_big_warning_header,
data_maxsize_warning=import_too_big_warning) }}
</div>
<div class="f-bbox">
{%- call form_button("upload", form.action_import, class="secondary") %}{% endcall -%}
</div>
<script type="text/javascript">
document.getElementById("{{ form.account_data_file.id }}").onchange = function() {
var maxsize_s = this.dataset.maxsize;
var maxsize = parseInt(maxsize_s);
if (this.files[0].size > maxsize) {
var warning_header = this.dataset.warningHeader;
var warning_text = this.dataset.maxsizeWarning;
this.setCustomValidity(warning_text);
this.reportValidity();
this.value = null;
} else {
this.setCustomValidity("");
}
};
</script>
</form></div>
{% endif %}
</div>
{% endblock %}

View File

@@ -68,7 +68,7 @@
{#- -#}
<div id="qr-info-url" class="tab-pane active">
<p>{% trans %}Use a <em>QR code</em> scanner on your mobile device to scan the code below:{% endtrans %}</p>
<div id="qr-invite-page" data-qrdata="{{ url_for(".view", id_=invite_id, _external=True) }}" class="qr"></div>
<div id="qr-invite-page" data-qrdata="{{ url_for(".view", id_=invite_id, _external=True, _scheme="https") }}" class="qr"></div>
</div>
{#- -#}
<div id="qr-info-uri" class="tab-pane">
@@ -127,7 +127,7 @@
<p>{% trans %}After installing Snikket via F-Droid, you have to return to this invite link and tap on "Open the app" to proceed.{% endtrans %}</p>
<ol>
<li><p>{% trans %}First install Snikket from F-Droid using the button below:{% endtrans %}</p>
<p><a href="{{ f_droid_url }}" class="popover" data-popover-id="fdroid-popover"><img alt='{% trans %}Install via F-Droid{% endtrans %}' src='{{ url_for('static', filename='img/f-droid-badge.png') }}' class="fdroid"/></a></p></li>
<p><a href="{{ f_droid_url }}"><img alt='{% trans %}Install via F-Droid{% endtrans %}' src='{{ url_for('static', filename='img/f-droid-badge.png') }}' class="fdroid"/></a></p></li>
<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>
{%- call standard_button("exit_to_app", invite.xmpp_uri, class="primary") -%}

View File

@@ -30,6 +30,7 @@
<div>
<div>{% call standard_button("edit", url_for(".profile"), class="primary") %}{% trans %}Edit profile{% endtrans %}{% endcall %}</div>
<div>{% call standard_button("passwd", url_for(".change_pw"), class="secondary") %}{% trans %}Change password{% endtrans %}{% endcall %}</div>
<div>{% call standard_button("folder", url_for(".manage_data"), class="secondary") %}{% trans %}Manage your data{% endtrans %}{% endcall %}</div>
</div>
{#- -#}
</li>

View File

@@ -0,0 +1,22 @@
{% extends "app.html" %}
{% from "library.j2" import standard_button, form_button, render_errors, avatar with context %}
{% block content %}
<h1>{% trans %}Manage your data{% endtrans %}</h1>
<nav class="welcome">
<ul>
<li>
<h2>{% trans %}Export account{% endtrans %}</h2>
<p>{% trans %}Download your account data as a file for backup purposes or to move your account to another service.{% endtrans %}</p>
{% call render_errors(form) %}{% endcall %}
<div class="f-bbox">
<form method="POST">
{{ form.csrf_token }}
{%- call form_button("download", form.action_export, class="primary") %}{% endcall -%}
</form>
</div>
</li>
</ul>
</nav>
{% endblock %}

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-03-22 15:08+0100\n"
"PO-Revision-Date: 2021-03-10 19:03+0000\n"
"POT-Creation-Date: 2021-06-18 16:05+0200\n"
"PO-Revision-Date: 2021-04-02 19:01+0000\n"
"Last-Translator: Daniel Holmgaard <annoncer@protonmail.com>\n"
"Language-Team: Danish <https://i18n.sotecware.net/projects/snikket/web-"
"portal/da/>\n"
@@ -17,138 +17,202 @@ 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:59
msgid "Delete user permanently"
msgstr "Slet bruger permanent"
#: snikket_web/admin.py:66
msgid "Limited"
msgstr "Begrænset"
#: snikket_web/admin.py:72
msgid "User deleted"
msgstr "Bruger slettet"
#: snikket_web/admin.py:71 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_edit_circle.html:59
#: snikket_web/templates/admin_users.html:8
msgid "Login name"
msgstr "Login-navn"
#: snikket_web/admin.py:115
#: snikket_web/admin.py:75 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_edit_circle.html:60
#: snikket_web/templates/admin_users.html:9 snikket_web/user.py:61
msgid "Display name"
msgstr "Kaldenavn"
#: snikket_web/admin.py:79 snikket_web/templates/admin_edit_user.html:32
msgid "Access Level"
msgstr "Adgangsniveau"
#: snikket_web/admin.py:84
msgid "Normal user"
msgstr "Normal bruger"
#: snikket_web/admin.py:85
msgid "Administrator"
msgstr "Administrator"
#: snikket_web/admin.py:90
msgid "Update user"
msgstr "Opdater bruger"
#: snikket_web/admin.py:94
msgid "Create password reset link"
msgstr "Opret link til nulstilling af adgangskode"
#: snikket_web/admin.py:112
msgid "Password reset link created"
msgstr "Link til nulstilling af adgangskode oprettet"
#: snikket_web/admin.py:121
#: snikket_web/admin.py:127
msgid "User information updated."
msgstr "Brugerinformation opdateret."
#: snikket_web/admin.py:149
msgid "Delete user permanently"
msgstr "Slet bruger permanent"
#: snikket_web/admin.py:162
msgid "User deleted"
msgstr "Bruger slettet"
#: snikket_web/admin.py:200
msgid "Password reset link not found"
msgstr "Link til nulstilling af adgangskode ikke fundet"
#: snikket_web/admin.py:212
msgid "Password reset link deleted"
msgstr "Link til nulstilling af adgangskode slettet"
#: snikket_web/admin.py:140
#: snikket_web/admin.py:232
msgid "Invite to circle"
msgstr "Inviter til cirkel"
#: snikket_web/admin.py:146
#: snikket_web/admin.py:238
msgid "At least one circle must be selected"
msgstr "Mindst en cirkel skal vælges"
#: snikket_web/admin.py:151
#: snikket_web/admin.py:243
msgid "Valid for"
msgstr "Gyldig for"
#: snikket_web/admin.py:153
#: snikket_web/admin.py:245
msgid "One hour"
msgstr "En time"
#: snikket_web/admin.py:154
#: snikket_web/admin.py:246
msgid "Twelve hours"
msgstr "Tolv timer"
#: snikket_web/admin.py:155
#: snikket_web/admin.py:247
msgid "One day"
msgstr "En dag"
#: snikket_web/admin.py:156
#: snikket_web/admin.py:248
msgid "One week"
msgstr "En uge"
#: snikket_web/admin.py:157
#: snikket_web/admin.py:249
msgid "Four weeks"
msgstr "Fire uger"
#: 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 "Invitationstype"
#: 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 "Individuel"
#: 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 "Gruppe"
#: snikket_web/admin.py:172
#: snikket_web/admin.py:264
msgid "New invitation link"
msgstr "Ny invitationslink"
#: snikket_web/admin.py:234
#: snikket_web/admin.py:326
msgid "Revoke"
msgstr "Tilbagekald"
#: snikket_web/admin.py:258
#: snikket_web/admin.py:350
msgid "Invitation created"
msgstr "Invitation oprettet"
#: snikket_web/admin.py:274
#: snikket_web/admin.py:366
msgid "No such invitation exists"
msgstr "Denne invitation findes ikke"
#: snikket_web/admin.py:289
#: snikket_web/admin.py:381
msgid "Invitation revoked"
msgstr "Invitation tilbagekaldt"
#: snikket_web/admin.py:306 snikket_web/admin.py:354
#: snikket_web/admin.py:398 snikket_web/admin.py:446
msgid "Name"
msgstr "Navn"
#: 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 "Opret cirkel"
#: snikket_web/admin.py:341
#: snikket_web/admin.py:433
msgid "Circle created"
msgstr "Cirkel oprettet"
#: snikket_web/admin.py:359
#: snikket_web/admin.py:451
msgid "Select user"
msgstr "Vælg bruger"
#: snikket_web/admin.py:364
#: snikket_web/admin.py:456
msgid "Update circle"
msgstr "Opdater cirkel"
#: snikket_web/admin.py:368
#: snikket_web/admin.py:460
msgid "Delete circle permanently"
msgstr "Slet cirkel permanent"
#: snikket_web/admin.py:374
#: snikket_web/admin.py:466
msgid "Add user"
msgstr "Tilføj bruger"
#: snikket_web/admin.py:390
#: snikket_web/admin.py:482
msgid "No such circle exists"
msgstr "Denne cirkel findes ikke"
#: snikket_web/admin.py:427
#: snikket_web/admin.py:519
msgid "Circle data updated"
msgstr "Cirkel data opdateret"
msgstr "Cirkel-data opdateret"
#: snikket_web/admin.py:433
#: snikket_web/admin.py:525
msgid "Circle deleted"
msgstr "Cirkel slettet"
#: snikket_web/admin.py:444
#: snikket_web/admin.py:536
msgid "User added to circle"
msgstr "Bruger tilføjet til cirkel"
#: snikket_web/admin.py:453
#: snikket_web/admin.py:545
msgid "User removed from circle"
msgstr "Bruger fjernet fra cirkel"
#: 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 "Hoved"
@@ -165,32 +229,24 @@ msgid "Confirm password"
msgstr "Bekræft adgangskode"
#: snikket_web/invite.py:118 snikket_web/invite.py:185
#, fuzzy
#| msgid "The passwords must match"
msgid "The passwords must match."
msgstr "Adgangskoderne skal matche"
msgstr "Adgangskoderne skal matche."
#: snikket_web/invite.py:123
msgid "Create account"
msgstr "Opret konto"
#: snikket_web/invite.py:150
#, fuzzy
#| msgid "That username is already taken"
msgid "That username is already taken."
msgstr "Det brugernavn er allerede taget"
msgstr "Det brugernavn er allerede taget."
#: 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 "Registrering blev afvist af ukendte årsager"
msgstr "Registrering blev afvist af ukendte årsager."
#: snikket_web/invite.py:158
#, fuzzy
#| msgid "The username is not valid"
msgid "The username is not valid."
msgstr "Brugernavnet er ikke gyldigt"
msgstr "Brugernavnet er ikke gyldigt."
#: snikket_web/invite.py:190 snikket_web/templates/user_home.html:32
#: snikket_web/templates/user_passwd.html:29
@@ -226,10 +282,8 @@ msgid "Confirm new password"
msgstr "Bekræft ny adgangskode"
#: snikket_web/user.py:41
#, fuzzy
#| msgid "The new passwords must match"
msgid "The new passwords must match."
msgstr "Den nye adgangskode skal matche"
msgstr "Den nye adgangskode skal matche."
#: snikket_web/user.py:48
msgid "Sign out"
@@ -247,11 +301,6 @@ msgstr "Kun venner"
msgid "Everyone"
msgstr "Alle"
#: snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:11 snikket_web/user.py:61
msgid "Display name"
msgstr "Kaldenavn"
#: snikket_web/user.py:65
msgid "Avatar"
msgstr "Avatar"
@@ -265,10 +314,8 @@ msgid "Update profile"
msgstr "Opdater profil"
#: snikket_web/user.py:99
#, fuzzy
#| msgid "Incorrect password"
msgid "Incorrect password."
msgstr "Forkert adgangskode"
msgstr "Forkert adgangskode."
#: snikket_web/user.py:103
msgid "Password changed"
@@ -279,6 +326,8 @@ msgid ""
"The chosen avatar is too big. To be able to upload larger avatars, please "
"use the app."
msgstr ""
"Den valgte avatar er for stor. For at kunne uploade større avatarer skal du "
"bruge appen."
#: snikket_web/user.py:159
msgid "Profile updated"
@@ -418,8 +467,9 @@ msgid "Members"
msgstr "Medlemmer"
#: snikket_web/templates/admin_circles.html:15
#: snikket_web/templates/admin_edit_circle.html:61
#: snikket_web/templates/admin_invites.html:24
#: snikket_web/templates/admin_users.html:12
#: snikket_web/templates/admin_users.html:10
msgid "Actions"
msgstr "Handlinger"
@@ -494,12 +544,12 @@ msgid "Copy complete output"
msgstr "Kopier komplet 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 "Slet bruger %(user_name)s"
#: snikket_web/templates/admin_delete_user.html:6
#: snikket_web/templates/admin_edit_user.html:53
msgid "Delete user"
msgstr "Slet bruger"
@@ -507,11 +557,6 @@ msgstr "Slet bruger"
msgid "Are you sure you want to delete the following user?"
msgstr "Er du sikker på, at du vil slette følgende bruger?"
#: snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_users.html:10
msgid "Login name"
msgstr "Login-navn"
#: snikket_web/templates/admin_delete_user.html:15
msgid "Danger"
msgstr "Fare"
@@ -563,7 +608,7 @@ msgstr "Denne cirkel er ikke tilknyttet nogen gruppechat."
#: snikket_web/templates/admin_edit_circle.html:44
msgid "Return to circle list"
msgstr ""
msgstr "Retur til cirkeliste"
#: snikket_web/templates/admin_edit_circle.html:48
msgid "Delete circle"
@@ -577,28 +622,37 @@ msgstr "Sletning af en cirkel vil ikke slette brugere i cirklen."
msgid "Circle members"
msgstr "Cirkel medlemmer"
#: snikket_web/templates/admin_edit_circle.html:70
#: snikket_web/templates/admin_edit_circle.html:71
msgid "The user has been deleted from the server."
msgstr ""
#: snikket_web/templates/admin_edit_circle.html:71
#: snikket_web/templates/library.j2:108
msgid "deleted"
msgstr "Slettet"
#: snikket_web/templates/admin_edit_circle.html:77
#, python-format
msgid "Remove user %(username)s from circle"
msgstr "Fjern bruger %(username)s fra cirkel"
#: snikket_web/templates/admin_edit_circle.html:78
#: snikket_web/templates/admin_edit_circle.html:85
msgid "This circle currently has no members."
msgstr "Den nuværende cirkel har ingen medlemmer."
#: snikket_web/templates/admin_edit_circle.html:80
#: snikket_web/templates/admin_edit_circle.html:87
msgid "Invite more members"
msgstr "Inviter flere medlemmer"
#: snikket_web/templates/admin_edit_circle.html:83
#: snikket_web/templates/admin_edit_circle.html:90
msgid "Add existing user"
msgstr "Tilføj eksisterende bruger"
#: snikket_web/templates/admin_edit_circle.html:94
#: snikket_web/templates/admin_edit_circle.html:101
msgid "All users added"
msgstr "Alle brugere tilføjet"
#: snikket_web/templates/admin_edit_circle.html:95
#: snikket_web/templates/admin_edit_circle.html:102
msgid "All users on this service are already in this circle."
msgstr "Alle brugerne af denne tjeneste er allerede i denne cirkel."
@@ -651,11 +705,96 @@ msgstr "Denne bruger vil blive tilføjet som kontakt hos %(peer_jid)s."
msgid "Created"
msgstr "Oprettet"
#: snikket_web/templates/admin_edit_invite.html:49
#, fuzzy
#| msgid "New invitation link"
#: snikket_web/templates/admin_edit_invite.html:48
msgid "Return to invitation list"
msgstr "Ny invitationslink"
msgstr "Retur til invitationsliste"
#: 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ænset brugere kan interagere med brugere på den samme Snikket-tjeneste "
"og være medlemmer af cirkler."
#: 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ænset brugere og kan desuden også interagere med brugere på andre "
"Snikket-tjenester."
#: snikket_web/templates/admin_edit_user.html:9
msgid "Like normal users and can access the admin panel in the web portal."
msgstr ""
"Som normale brugere og kan desuden få adgang til adminpanelet i webportalen."
#: snikket_web/templates/admin_edit_user.html:20
#: snikket_web/templates/admin_users.html:28
#, python-format
msgid "Edit user %(user_name)s"
msgstr "Rediger bruger %(user_name)s"
#: snikket_web/templates/admin_edit_user.html:22
msgid "Edit user"
msgstr "Rediger bruger"
#: snikket_web/templates/admin_edit_user.html:26
msgid "The login name cannot be changed."
msgstr "Login-navnet kan ikke ændres."
#: 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 ""
"En brugers adgangsniveau bestemmer, hvilke interaktioner der er tilladt for "
"dem på din Snikket-tjeneste."
#: snikket_web/templates/admin_edit_user.html:40
#, 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:50
msgid "Return to user list"
msgstr "Retur til brugerliste"
#: snikket_web/templates/admin_edit_user.html:58
msgid "Further actions"
msgstr "Yderligere handlinger"
#: snikket_web/templates/admin_edit_user.html:60
msgid "Reset password"
msgstr "Nustil adgangskode"
#: 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 ""
"Hvis brugeren har mistet deres adgangskode, kan du bruge knappen nedenfor "
"til at oprette et specielt link, der giver mulighed for at ændre "
"adgangskoden til kontoen en gang."
#: snikket_web/templates/admin_edit_user.html:68
msgid "Debug information"
msgstr "Fejlretningsoplysninger"
#: 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 ""
"I nogle tilfælde er detaljeret oplysninger om brugerkontoen og de "
"tilsluttede enheder nødvendige for at foretage fejlfinding af problemer. "
"Knappen nedenfor afslører disse (følsomme) oplysninger."
#: snikket_web/templates/admin_edit_user.html:74
msgid "Show debug information"
msgstr "Vis fejlretningsoplysninger"
#: snikket_web/templates/admin_home.html:4
msgid "Welcome to the admin panel!"
@@ -697,11 +836,30 @@ msgstr "Opret, tilbagekald eller kopier invitationer."
msgid "Manage invitations"
msgstr "Håndter invitationer"
#: snikket_web/templates/admin_home.html:36
#: 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
#, fuzzy
#| msgid "Manage users"
msgid "Manage system"
msgstr "Håndter brugere"
#: snikket_web/templates/admin_home.html:48
msgid "Go back to your user's web portal page."
msgstr "Gå tilbage din brugers webportal side."
#: snikket_web/templates/admin_home.html:38
#: snikket_web/templates/admin_home.html:50
msgid "Exit admin panel"
msgstr "Afslut administrator panel"
@@ -754,15 +912,94 @@ msgstr ""
msgid "Destroy link"
msgstr "Ødelæg link"
#: snikket_web/templates/admin_users.html:25
#, python-format
msgid "Show debug information for %(user_name)s"
msgstr "Vis fejlretningsoplysninger 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"
msgstr "Opret link til nulstilling af adgangskode til %(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
#, fuzzy
#| msgid "Snikket Web Portal"
msgid "Snikket server status"
msgstr "Snikket Webportal"
#: 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 "Brugeren er administrator."
#: snikket_web/templates/admin_users.html:19
msgid " (Administrator)"
msgstr " (Administrator)"
#: snikket_web/templates/admin_users.html:22
msgid "The user is restricted."
msgstr "Brugeren er begrænset."
#: snikket_web/templates/admin_users.html:22
msgid " (Restricted)"
msgstr " (Begrænset)"
#: snikket_web/templates/app.html:4
msgid "Snikket Web Portal"
@@ -1066,7 +1303,7 @@ msgstr "Download i App Store"
#: snikket_web/templates/invite_view.html:32
msgid "Get it on F-Droid"
msgstr ""
msgstr "Få den på F-Droid"
#: snikket_web/templates/invite_view.html:35
msgid "Send to mobile device"
@@ -1138,17 +1375,19 @@ msgstr ""
#: snikket_web/templates/invite_view.html:93
msgid "Install on iOS"
msgstr ""
msgstr "Installer på iOS"
#: 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 ""
"Efter download af Snikket fra App Store, skal du vende tilbage til dette "
"invitationslink og trykke på \"Åbn appen\" for at fortsætte."
#: snikket_web/templates/invite_view.html:101
msgid "First download Snikket from the app store using the button below:"
msgstr ""
msgid "First download Snikket from the App Store using the button below:"
msgstr "Download først Snikket fra App Store ved hjælp af nedenstående knap:"
#: snikket_web/templates/invite_view.html:103
#: snikket_web/templates/invite_view.html:131
@@ -1156,21 +1395,25 @@ 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 ""
"Når installationen er afsluttet, kan du vende tilbage til denne side og "
"trykke på knappen \"Åbn appen\" for at fortsætte med opsætningen:"
#: snikket_web/templates/invite_view.html:121
#: snikket_web/templates/invite_view.html:130
msgid "Install via F-Droid"
msgstr ""
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 ""
"Efter installation af Snikket via F-Droid, skal du vende tilbage til dette "
"invitationslink og trykke på \"Åbn appen\" for at fortsætte."
#: snikket_web/templates/invite_view.html:129
msgid "First install Snikket from F-Droid using the button below:"
msgstr ""
msgstr "Installer først Snikket fra F-Droid ved hjælp af knappen nedenfor:"
#: snikket_web/templates/library.j2:18
msgid "Copy link"
@@ -1180,10 +1423,6 @@ msgstr "Kopier link"
msgid "Invalid input"
msgstr "Ugyldig input"
#: snikket_web/templates/library.j2:108
msgid "deleted"
msgstr "Slettet"
#: snikket_web/templates/library.j2:122
msgid "Can be used multiple times to create accounts on this Snikket service."
msgstr ""
@@ -1200,7 +1439,7 @@ msgstr "Snikket Login"
#: snikket_web/templates/login.html:14
msgid "Enter your Snikket address and password to manage your account."
msgstr "Indtast din Snikket adresse og adgangskode for håndter din konto."
msgstr "Indtast din Snikket adresse og adgangskode for at håndter din konto."
#: snikket_web/templates/login.html:19
msgid "Incorrect address"
@@ -1306,5 +1545,8 @@ msgstr ""
"Denne sektion tillader dig at kontrollere, hvem der kan se din profil "
"informationer, så som avatar og kaldenavn."
#~ msgid "Create password reset link for %(user_name)s"
#~ msgstr "Opret link til nulstilling af adgangskode til %(user_name)s"
#~ msgid "Login failed"
#~ msgstr "Log ind fejlede"

View File

@@ -7,11 +7,11 @@ msgid ""
msgstr ""
"Project-Id-Version: SnikketWeb 0.1.0\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2021-03-22 15:08+0100\n"
"PO-Revision-Date: 2021-03-21 16:31+0000\n"
"POT-Creation-Date: 2021-06-18 16:05+0200\n"
"PO-Revision-Date: 2021-06-19 15:01+0000\n"
"Last-Translator: Jonas Schäfer <jonas@zombofant.net>\n"
"Language-Team: German <https://i18n.sotecware.net/projects/snikket/web-"
"portal/de/>\n"
"Language-Team: German <https://i18n.sotecware.net/projects/snikket/"
"web-portal/de/>\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -20,135 +20,199 @@ msgstr ""
"X-Generator: Weblate 4.5.1\n"
"Generated-By: Babel 2.9.0\n"
#: snikket_web/admin.py:59
msgid "Delete user permanently"
msgstr "Benutzer endgültig löschen"
#: snikket_web/admin.py:66
msgid "Limited"
msgstr "Eingeschränkt"
#: snikket_web/admin.py:72
msgid "User deleted"
msgstr "Benutzer gelöscht"
#: snikket_web/admin.py:71 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_edit_circle.html:59
#: snikket_web/templates/admin_users.html:8
msgid "Login name"
msgstr "Anmeldename"
#: snikket_web/admin.py:115
#: snikket_web/admin.py:75 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_edit_circle.html:60
#: snikket_web/templates/admin_users.html:9 snikket_web/user.py:61
msgid "Display name"
msgstr "Anzeigename"
#: snikket_web/admin.py:79 snikket_web/templates/admin_edit_user.html:32
msgid "Access Level"
msgstr "Berechtigungen"
#: snikket_web/admin.py:84
msgid "Normal user"
msgstr "Normaler Benutzer"
#: snikket_web/admin.py:85
msgid "Administrator"
msgstr "Administrator"
#: snikket_web/admin.py:90
msgid "Update user"
msgstr "Benutzer ändern"
#: snikket_web/admin.py:94
msgid "Create password reset link"
msgstr "Passwort-Link erzeugen"
#: snikket_web/admin.py:112
msgid "Password reset link created"
msgstr "Link zum Zurücksetzen des Passwortes erzeugt"
#: snikket_web/admin.py:121
#: snikket_web/admin.py:127
msgid "User information updated."
msgstr "Benutzerinformationen gespeichert."
#: snikket_web/admin.py:149
msgid "Delete user permanently"
msgstr "Benutzer endgültig löschen"
#: snikket_web/admin.py:162
msgid "User deleted"
msgstr "Benutzer gelöscht"
#: snikket_web/admin.py:200
msgid "Password reset link not found"
msgstr "Link zum Zurücksetzen des Passwortes nicht gefunden"
#: snikket_web/admin.py:212
msgid "Password reset link deleted"
msgstr "Link gelöscht"
#: snikket_web/admin.py:140
#: snikket_web/admin.py:232
msgid "Invite to circle"
msgstr "In Gemeinschaft einladen"
#: snikket_web/admin.py:146
#: snikket_web/admin.py:238
msgid "At least one circle must be selected"
msgstr "Mindestens eine Gemeinschaft muss ausgewählt sein"
#: snikket_web/admin.py:151
#: snikket_web/admin.py:243
msgid "Valid for"
msgstr "Gültig für"
#: snikket_web/admin.py:153
#: snikket_web/admin.py:245
msgid "One hour"
msgstr "Eine Stunde"
#: snikket_web/admin.py:154
#: snikket_web/admin.py:246
msgid "Twelve hours"
msgstr "Zwölf Stunden"
#: snikket_web/admin.py:155
#: snikket_web/admin.py:247
msgid "One day"
msgstr "Ein Tag"
#: snikket_web/admin.py:156
#: snikket_web/admin.py:248
msgid "One week"
msgstr "Eine Woche"
#: snikket_web/admin.py:157
#: snikket_web/admin.py:249
msgid "Four weeks"
msgstr "Vier Wochen"
#: 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 "Art der Einladung"
#: 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 "Einzelperson"
#: 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 "Gruppe"
#: snikket_web/admin.py:172
#: snikket_web/admin.py:264
msgid "New invitation link"
msgstr "Neuer Einladungslink"
#: snikket_web/admin.py:234
#: snikket_web/admin.py:326
msgid "Revoke"
msgstr "Löschen"
#: snikket_web/admin.py:258
#: snikket_web/admin.py:350
msgid "Invitation created"
msgstr "Einladung angelegt"
#: snikket_web/admin.py:274
#: snikket_web/admin.py:366
msgid "No such invitation exists"
msgstr "Diese Einladung existiert nicht"
#: snikket_web/admin.py:289
#: snikket_web/admin.py:381
msgid "Invitation revoked"
msgstr "Einladung gelöscht"
#: snikket_web/admin.py:306 snikket_web/admin.py:354
#: snikket_web/admin.py:398 snikket_web/admin.py:446
msgid "Name"
msgstr "Name"
#: 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 "Gemeinschaft gründen"
#: snikket_web/admin.py:341
#: snikket_web/admin.py:433
msgid "Circle created"
msgstr "Gemeinschaft gegründet"
#: snikket_web/admin.py:359
#: snikket_web/admin.py:451
msgid "Select user"
msgstr "Benutzer auswählen"
#: snikket_web/admin.py:364
#: snikket_web/admin.py:456
msgid "Update circle"
msgstr "Gemeinschaft ändern"
#: snikket_web/admin.py:368
#: snikket_web/admin.py:460
msgid "Delete circle permanently"
msgstr "Gemeinschaft endgültig löschen"
#: snikket_web/admin.py:374
#: snikket_web/admin.py:466
msgid "Add user"
msgstr "Benutzer hinzufügen"
#: snikket_web/admin.py:390
#: snikket_web/admin.py:482
msgid "No such circle exists"
msgstr "Diese Gemeinschaft existiert nicht"
#: snikket_web/admin.py:427
#: snikket_web/admin.py:519
msgid "Circle data updated"
msgstr "Gemeinschaftsdaten aktualisiert"
#: snikket_web/admin.py:433
#: snikket_web/admin.py:525
msgid "Circle deleted"
msgstr "Gemeinschaft gelöscht"
#: snikket_web/admin.py:444
#: snikket_web/admin.py:536
msgid "User added to circle"
msgstr "Benutzer zur Gemeinschaft hinzugefügt"
#: snikket_web/admin.py:453
#: snikket_web/admin.py:545
msgid "User removed from circle"
msgstr "Benutzer aus der Gemeinschaft entfernt"
#: snikket_web/infra.py:41
#: snikket_web/admin.py:616
msgid "Message contents"
msgstr "Nachrichteninhalt"
#: snikket_web/admin.py:622
msgid "Only send to online users"
msgstr "Nur an verbundene Benutzer senden"
#: snikket_web/admin.py:626
msgid "Post to all users"
msgstr "An alle Benutzer senden"
#: snikket_web/admin.py:630
msgid "Send preview to yourself"
msgstr "Vorschau an dich selbst senden"
#: snikket_web/admin.py:652
msgid "Announcement sent!"
msgstr "Ankündigung verschickt!"
#: snikket_web/infra.py:51
msgid "Main"
msgstr "Kern"
@@ -237,11 +301,6 @@ msgstr "Nur Freunde"
msgid "Everyone"
msgstr "Jeder"
#: snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:11 snikket_web/user.py:61
msgid "Display name"
msgstr "Anzeigename"
#: snikket_web/user.py:65
msgid "Avatar"
msgstr "Bild"
@@ -409,8 +468,9 @@ msgid "Members"
msgstr "Mitglieder"
#: snikket_web/templates/admin_circles.html:15
#: snikket_web/templates/admin_edit_circle.html:61
#: 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"
@@ -485,12 +545,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:53
msgid "Delete user"
msgstr "Benutzer löschen"
@@ -498,11 +558,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"
@@ -557,7 +612,7 @@ msgstr "Diese Gemeinschaft hat keinen zugehörigen Gruppenchat."
#: snikket_web/templates/admin_edit_circle.html:44
msgid "Return to circle list"
msgstr ""
msgstr "Zurück zur Gemeinschaftsliste"
#: snikket_web/templates/admin_edit_circle.html:48
msgid "Delete circle"
@@ -573,28 +628,37 @@ msgstr ""
msgid "Circle members"
msgstr "Mitglieder der Gemeinschaft"
#: snikket_web/templates/admin_edit_circle.html:70
#: snikket_web/templates/admin_edit_circle.html:71
msgid "The user has been deleted from the server."
msgstr "Dieser Benutzer wurde von diesem Server gelöscht."
#: snikket_web/templates/admin_edit_circle.html:71
#: snikket_web/templates/library.j2:108
msgid "deleted"
msgstr "gelöscht"
#: snikket_web/templates/admin_edit_circle.html:77
#, python-format
msgid "Remove user %(username)s from circle"
msgstr "Benutzer %(username)s aus der Gemeinschaft entfernen"
#: snikket_web/templates/admin_edit_circle.html:78
#: snikket_web/templates/admin_edit_circle.html:85
msgid "This circle currently has no members."
msgstr "Diese Gemeinschaft hat derzeit keine Mitglieder."
#: snikket_web/templates/admin_edit_circle.html:80
#: snikket_web/templates/admin_edit_circle.html:87
msgid "Invite more members"
msgstr "Mehr Mitglieder einladen"
#: snikket_web/templates/admin_edit_circle.html:83
#: snikket_web/templates/admin_edit_circle.html:90
msgid "Add existing user"
msgstr "Bestehenden Benuzter hinzufügen"
#: snikket_web/templates/admin_edit_circle.html:94
#: snikket_web/templates/admin_edit_circle.html:101
msgid "All users added"
msgstr "Alle Benutzer hinzugefügt"
#: snikket_web/templates/admin_edit_circle.html:95
#: snikket_web/templates/admin_edit_circle.html:102
msgid "All users on this service are already in this circle."
msgstr "Alle Benutzer dieses Dienstes sind bereits in dieser Gemeinschaft."
@@ -648,11 +712,98 @@ msgstr "Der Benutzer wird als Kontakt von %(peer_jid)s hinzugefügt."
msgid "Created"
msgstr "Erzeugt"
#: snikket_web/templates/admin_edit_invite.html:49
#, fuzzy
#| msgid "New invitation link"
#: snikket_web/templates/admin_edit_invite.html:48
msgid "Return to invitation list"
msgstr "Neuer Einladungslink"
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:22
msgid "Edit user"
msgstr "Benutzer bearbeiten"
#: snikket_web/templates/admin_edit_user.html:26
msgid "The login name cannot be changed."
msgstr "Der Anmeldename kann nicht geändert werden."
#: 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 ""
"Die Berechtigungen von Benutzern bestimmen, welche Interaktionen ihnen auf "
"deinem Snikket-Server erlaubt sind."
#: snikket_web/templates/admin_edit_user.html:40
#, 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:50
msgid "Return to user list"
msgstr "Zurück zur Benutzerliste"
#: snikket_web/templates/admin_edit_user.html:58
msgid "Further actions"
msgstr "Weitere Aktionen"
#: snikket_web/templates/admin_edit_user.html:60
msgid "Reset password"
msgstr "Passwort zurücksetzen"
#: 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 ""
"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:68
msgid "Debug information"
msgstr "Informationen zur Fehlerbehebung"
#: 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 ""
"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:74
msgid "Show debug information"
msgstr "Debugging-Informationen anzeigen"
#: snikket_web/templates/admin_home.html:4
msgid "Welcome to the admin panel!"
@@ -694,11 +845,29 @@ msgstr "Erzeugen, Löschen oder Kopieren von Einladungen."
msgid "Manage invitations"
msgstr "Einladungen verwalten"
#: snikket_web/templates/admin_home.html:36
#: snikket_web/templates/admin_home.html:35
msgid "System health"
msgstr "Systemzustand"
#: snikket_web/templates/admin_home.html:38
msgid "View the server status or send a broadcast message to all users."
msgstr ""
"Einsehen des Serverzustands oder versenden einer Nachricht an alle Benutzer."
#: snikket_web/templates/admin_home.html:40
msgid "Send a broadcast message to all users."
msgstr "Nachricht an alle Benutzer versenden."
#: snikket_web/templates/admin_home.html:43
#: snikket_web/templates/admin_system.html:4
msgid "Manage system"
msgstr "System verwalten"
#: snikket_web/templates/admin_home.html:48
msgid "Go back to your user's web portal page."
msgstr "Zurück zur Startseite deines Benutzers."
#: snikket_web/templates/admin_home.html:38
#: snikket_web/templates/admin_home.html:50
msgid "Exit admin panel"
msgstr "Adminbereich verlassen"
@@ -751,15 +920,96 @@ 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_system.html:6
msgid "Overall system status"
msgstr "Gesamtzustand"
#: snikket_web/templates/admin_users.html:28
#: snikket_web/templates/admin_system.html:9
msgid "System load (5 minute average)"
msgstr "Systemlast (5-Minuten-Durchschnitt)"
#: 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 "unbekannt"
#: snikket_web/templates/admin_system.html:17
msgid "Memory use"
msgstr "Arbeitsspeicherverbrauch"
#: snikket_web/templates/admin_system.html:20
#, python-format
msgid "Create password reset link for %(user_name)s"
msgstr "Link zum Zurücksetzen des Passwortes von %(user_name)s erzeugen"
msgid ""
"%(percentage_global)s of %(mem_available)s. Of that, Snikket uses "
"%(percentage_snikket)s."
msgstr ""
"%(percentage_global)s von %(mem_available)s. Davon belegt Snikket "
"%(percentage_snikket)s."
#: snikket_web/templates/admin_system.html:27
msgid "Web portal status"
msgstr "Status des Webportals"
#: snikket_web/templates/admin_system.html:30
#: snikket_web/templates/admin_system.html:53
msgid "Version"
msgstr "Version"
#: snikket_web/templates/admin_system.html:31
#: snikket_web/templates/admin_system.html:54
msgid "View all versions"
msgstr "Alle Versionen anzeigen"
#: snikket_web/templates/admin_system.html:32
#: snikket_web/templates/admin_system.html:55
msgid "Average CPU use"
msgstr "Durchschnittlicher CPU-Verbrauch"
#: snikket_web/templates/admin_system.html:40
#: snikket_web/templates/admin_system.html:63
msgid "Current memory use"
msgstr "Aktuelle Speicherbelegung"
#: snikket_web/templates/admin_system.html:50
msgid "Snikket server status"
msgstr "Status des Snikket-Servers"
#: snikket_web/templates/admin_system.html:71
msgid "Connected devices"
msgstr "Verbundene Geräte"
#: snikket_web/templates/admin_system.html:82
msgid "Broadcast message"
msgstr "Nachricht an alle senden"
#: 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 ""
"Mit diesem Formular kannst du eine Nachricht an alle Benutzer schicken, die "
"zu deinem Snikket-Dienst gehören. Gebrauche es klug."
#: 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: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"
@@ -1045,7 +1295,7 @@ msgstr ""
#: snikket_web/templates/invite_view.html:20
msgid "Get started"
msgstr "Leg los!"
msgstr "Erste Schritte"
#: snikket_web/templates/invite_view.html:22
msgid "Install the Snikket App on your Android or iOS device."
@@ -1150,14 +1400,14 @@ 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 "
"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:"
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:"
@@ -1197,10 +1447,6 @@ msgstr "Link kopieren"
msgid "Invalid input"
msgstr "Ungültige Eingabe"
#: snikket_web/templates/library.j2:108
msgid "deleted"
msgstr "gelöscht"
#: snikket_web/templates/library.j2:122
msgid "Can be used multiple times to create accounts on this Snikket service."
msgstr ""
@@ -1327,30 +1573,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"

Binary file not shown.

View File

@@ -7,172 +7,246 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2021-03-22 15:08+0100\n"
"PO-Revision-Date: 2021-02-02 21:01+0000\n"
"POT-Creation-Date: 2021-06-18 16:05+0200\n"
"PO-Revision-Date: 2021-06-19 15:01+0000\n"
"Last-Translator: Jonas Schäfer <jonas@zombofant.net>\n"
"Language-Team: English <https://i18n.sotecware.net/projects/snikket/web-"
"portal/en/>\n"
"Language-Team: English <https://i18n.sotecware.net/projects/snikket/"
"web-portal/en/>\n"
"Language: en\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.4.2\n"
"X-Generator: Weblate 4.5.1\n"
"Generated-By: Babel 2.9.0\n"
#: snikket_web/admin.py:59
msgid "Delete user permanently"
msgstr "Delete user permanently"
#: snikket_web/admin.py:66
msgid "Limited"
msgstr ""
#: snikket_web/admin.py:72
#: snikket_web/admin.py:71 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_edit_circle.html:59
#: snikket_web/templates/admin_users.html:8
msgid "Login name"
msgstr "Login name"
#: snikket_web/admin.py:75 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_edit_circle.html:60
#: snikket_web/templates/admin_users.html:9 snikket_web/user.py:61
msgid "Display name"
msgstr "Display name"
#: 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
#, fuzzy
#| msgid "deleted"
msgid "User deleted"
msgstr "deleted"
#| msgid "Admin area"
msgid "Administrator"
msgstr "Admin area"
#: snikket_web/admin.py:115
#: snikket_web/admin.py:90
#, fuzzy
#| msgid "Update circle"
msgid "Update user"
msgstr "Update circle"
#: snikket_web/admin.py:94
#, 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:112
#, 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:121
#: snikket_web/admin.py:127
#, fuzzy
#| msgid "User information"
msgid "User information updated."
msgstr "User information"
#: snikket_web/admin.py:149
msgid "Delete user permanently"
msgstr "Delete user permanently"
#: snikket_web/admin.py:162
#, fuzzy
#| msgid "deleted"
msgid "User deleted"
msgstr "deleted"
#: snikket_web/admin.py:200
#, 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:212
#, 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:140
#: snikket_web/admin.py:232
msgid "Invite to circle"
msgstr "Invite to circle"
#: snikket_web/admin.py:146
#: snikket_web/admin.py:238
msgid "At least one circle must be selected"
msgstr "At least one circle must be selected"
#: snikket_web/admin.py:151
#: snikket_web/admin.py:243
msgid "Valid for"
msgstr "Valid for"
#: snikket_web/admin.py:153
#: snikket_web/admin.py:245
msgid "One hour"
msgstr "One hour"
#: snikket_web/admin.py:154
#: snikket_web/admin.py:246
msgid "Twelve hours"
msgstr "Twelve hours"
#: snikket_web/admin.py:155
#: snikket_web/admin.py:247
msgid "One day"
msgstr "One day"
#: snikket_web/admin.py:156
#: snikket_web/admin.py:248
msgid "One week"
msgstr "One week"
#: snikket_web/admin.py:157
#: snikket_web/admin.py:249
msgid "Four weeks"
msgstr "Four weeks"
#: 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 "Invitation type"
#: 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 "Individual"
#: 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 "Group"
#: snikket_web/admin.py:172
#: snikket_web/admin.py:264
msgid "New invitation link"
msgstr "New invitation link"
#: snikket_web/admin.py:234
#: snikket_web/admin.py:326
msgid "Revoke"
msgstr "Revoke"
#: snikket_web/admin.py:258
#: snikket_web/admin.py:350
#, fuzzy
#| msgid "Invitation type"
msgid "Invitation created"
msgstr "Invitation type"
#: snikket_web/admin.py:274
#: snikket_web/admin.py:366
#, fuzzy
#| msgid "New invitation link"
msgid "No such invitation exists"
msgstr "New invitation link"
#: snikket_web/admin.py:289
#: snikket_web/admin.py:381
#, fuzzy
#| msgid "Invitation type"
msgid "Invitation revoked"
msgstr "Invitation type"
#: snikket_web/admin.py:306 snikket_web/admin.py:354
#: snikket_web/admin.py:398 snikket_web/admin.py:446
msgid "Name"
msgstr "Name"
#: 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 "Create circle"
#: snikket_web/admin.py:341
#: snikket_web/admin.py:433
#, fuzzy
#| msgid "Circle name"
msgid "Circle created"
msgstr "Circle name"
#: snikket_web/admin.py:359
#: snikket_web/admin.py:451
msgid "Select user"
msgstr "Select user"
#: snikket_web/admin.py:364
#: snikket_web/admin.py:456
msgid "Update circle"
msgstr "Update circle"
#: snikket_web/admin.py:368
#: snikket_web/admin.py:460
msgid "Delete circle permanently"
msgstr "Delete circle permanently"
#: snikket_web/admin.py:374
#: snikket_web/admin.py:466
msgid "Add user"
msgstr "Add user"
#: snikket_web/admin.py:390
#: snikket_web/admin.py:482
#, fuzzy
#| msgid "No circles"
msgid "No such circle exists"
msgstr "No circles"
#: snikket_web/admin.py:427
#: snikket_web/admin.py:519
#, fuzzy
#| msgid "Circle name"
msgid "Circle data updated"
msgstr "Circle name"
#: snikket_web/admin.py:433
#: snikket_web/admin.py:525
#, fuzzy
#| msgid "deleted"
msgid "Circle deleted"
msgstr "deleted"
#: snikket_web/admin.py:444
#: snikket_web/admin.py:536
#, fuzzy
#| msgid "Invite to circle"
msgid "User added to circle"
msgstr "Invite to circle"
#: snikket_web/admin.py:453
#: snikket_web/admin.py:545
#, fuzzy
#| msgid "Remove user %(username)s from circle"
msgid "User removed from circle"
msgstr "Remove user %(username)s from circle"
#: 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 "Main"
@@ -271,11 +345,6 @@ msgstr "Friends only"
msgid "Everyone"
msgstr "Everyone"
#: snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:11 snikket_web/user.py:61
msgid "Display name"
msgstr "Display name"
#: snikket_web/user.py:65
msgid "Avatar"
msgstr "Avatar"
@@ -442,8 +511,9 @@ msgid "Members"
msgstr "Members"
#: snikket_web/templates/admin_circles.html:15
#: snikket_web/templates/admin_edit_circle.html:61
#: 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"
@@ -518,12 +588,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:53
msgid "Delete user"
msgstr "Delete user"
@@ -531,11 +601,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"
@@ -602,28 +667,37 @@ msgstr "Deleting a circle does not delete any users in the circle."
msgid "Circle members"
msgstr "Circle members"
#: snikket_web/templates/admin_edit_circle.html:70
#: snikket_web/templates/admin_edit_circle.html:71
msgid "The user has been deleted from the server."
msgstr ""
#: snikket_web/templates/admin_edit_circle.html:71
#: snikket_web/templates/library.j2:108
msgid "deleted"
msgstr "deleted"
#: snikket_web/templates/admin_edit_circle.html:77
#, python-format
msgid "Remove user %(username)s from circle"
msgstr "Remove user %(username)s from circle"
#: snikket_web/templates/admin_edit_circle.html:78
#: snikket_web/templates/admin_edit_circle.html:85
msgid "This circle currently has no members."
msgstr "This circle currently has no members."
#: snikket_web/templates/admin_edit_circle.html:80
#: snikket_web/templates/admin_edit_circle.html:87
msgid "Invite more members"
msgstr "Invite more members"
#: snikket_web/templates/admin_edit_circle.html:83
#: snikket_web/templates/admin_edit_circle.html:90
msgid "Add existing user"
msgstr "Add existing user"
#: snikket_web/templates/admin_edit_circle.html:94
#: snikket_web/templates/admin_edit_circle.html:101
msgid "All users added"
msgstr "All users added"
#: snikket_web/templates/admin_edit_circle.html:95
#: snikket_web/templates/admin_edit_circle.html:102
msgid "All users on this service are already in this circle."
msgstr "All users on this service are already in this circle."
@@ -674,12 +748,105 @@ msgstr "The user will get added as contact of %(peer_jid)s."
msgid "Created"
msgstr "Created"
#: snikket_web/templates/admin_edit_invite.html:49
#: 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:22
#, fuzzy
#| msgid "Add user"
msgid "Edit user"
msgstr "Add user"
#: 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
#, fuzzy
#| msgid "New invitation link"
msgid "Return to user list"
msgstr "New invitation link"
#: snikket_web/templates/admin_edit_user.html:58
msgid "Further actions"
msgstr ""
#: snikket_web/templates/admin_edit_user.html:60
#, fuzzy
#| msgid "Reset your password"
msgid "Reset password"
msgstr "Reset your password"
#: snikket_web/templates/admin_edit_user.html:63
#, 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:68
#, fuzzy
#| msgid "User information"
msgid "Debug information"
msgstr "User information"
#: 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
#, 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!"
@@ -719,11 +886,30 @@ msgstr "Create, revoke or copy invitations."
msgid "Manage invitations"
msgstr "Manage invitations"
#: snikket_web/templates/admin_home.html:36
#: 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
#, fuzzy
#| msgid "Manage users"
msgid "Manage system"
msgstr "Manage users"
#: snikket_web/templates/admin_home.html:48
msgid "Go back to your user's web portal page."
msgstr "Go back to your user's web portal page."
#: snikket_web/templates/admin_home.html:38
#: snikket_web/templates/admin_home.html:50
msgid "Exit admin panel"
msgstr "Exit admin panel"
@@ -776,15 +962,98 @@ 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_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 "System load (5-minute average)"
#: 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"
msgstr "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
#, fuzzy
#| msgid "Snikket Web Portal"
msgid "Snikket server status"
msgstr "Snikket Web Portal"
#: 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
#, 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: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"
@@ -1160,12 +1429,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
@@ -1198,10 +1467,6 @@ msgstr "Copy link"
msgid "Invalid input"
msgstr "Invalid input"
#: snikket_web/templates/library.j2:108
msgid "deleted"
msgstr "deleted"
#: snikket_web/templates/library.j2:122
msgid "Can be used multiple times to create accounts on this Snikket service."
msgstr "Can be used multiple times to create accounts on this Snikket service."
@@ -1322,29 +1587,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"

Binary file not shown.

View File

@@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2021-03-22 15:08+0100\n"
"PO-Revision-Date: 2021-02-02 21:01+0000\n"
"Last-Translator: riccio <unriccio@email.it>\n"
"POT-Creation-Date: 2021-06-18 16:05+0200\n"
"PO-Revision-Date: 2021-06-19 15:01+0000\n"
"Last-Translator: Jonas Schäfer <jonas@zombofant.net>\n"
"Language-Team: English (United Kingdom) <https://i18n.sotecware.net/projects/"
"snikket/web-portal/en_GB/>\n"
"Language: en_GB\n"
@@ -17,164 +17,238 @@ 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:59
msgid "Delete user permanently"
msgstr "Delete user permanently"
#: snikket_web/admin.py:66
msgid "Limited"
msgstr ""
#: snikket_web/admin.py:72
#: snikket_web/admin.py:71 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_edit_circle.html:59
#: snikket_web/templates/admin_users.html:8
msgid "Login name"
msgstr "Login name"
#: snikket_web/admin.py:75 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_edit_circle.html:60
#: snikket_web/templates/admin_users.html:9 snikket_web/user.py:61
msgid "Display name"
msgstr "Display name"
#: 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
#, fuzzy
#| msgid "deleted"
msgid "User deleted"
msgstr "deleted"
#| msgid "Admin dashboard"
msgid "Administrator"
msgstr "Admin dashboard"
#: snikket_web/admin.py:115
#: snikket_web/admin.py:90
#, fuzzy
#| msgid "Create circle"
msgid "Update user"
msgstr "Create circle"
#: snikket_web/admin.py:94
#, 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:112
#, 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:121
#: snikket_web/admin.py:127
#, fuzzy
#| msgid "User information"
msgid "User information updated."
msgstr "User information"
#: snikket_web/admin.py:149
msgid "Delete user permanently"
msgstr "Delete user permanently"
#: snikket_web/admin.py:162
#, fuzzy
#| msgid "deleted"
msgid "User deleted"
msgstr "deleted"
#: snikket_web/admin.py:200
#, 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:212
#, 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:140
#: snikket_web/admin.py:232
msgid "Invite to circle"
msgstr "Invite to circle"
#: snikket_web/admin.py:146
#: snikket_web/admin.py:238
msgid "At least one circle must be selected"
msgstr "At least one circle must be selected"
#: snikket_web/admin.py:151
#: snikket_web/admin.py:243
msgid "Valid for"
msgstr "Valid for"
#: snikket_web/admin.py:153
#: snikket_web/admin.py:245
msgid "One hour"
msgstr "One hour"
#: snikket_web/admin.py:154
#: snikket_web/admin.py:246
msgid "Twelve hours"
msgstr "Twelve hours"
#: snikket_web/admin.py:155
#: snikket_web/admin.py:247
msgid "One day"
msgstr "One day"
#: snikket_web/admin.py:156
#: snikket_web/admin.py:248
msgid "One week"
msgstr "One week"
#: snikket_web/admin.py:157
#: snikket_web/admin.py:249
msgid "Four weeks"
msgstr "Four weeks"
#: 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 "Invitation type"
#: 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 "New invitation link"
#: snikket_web/admin.py:234
#: snikket_web/admin.py:326
msgid "Revoke"
msgstr "Revoke"
#: snikket_web/admin.py:258
#: snikket_web/admin.py:350
#, fuzzy
#| msgid "Invitation type"
msgid "Invitation created"
msgstr "Invitation type"
#: snikket_web/admin.py:274
#: snikket_web/admin.py:366
#, fuzzy
#| msgid "New invitation link"
msgid "No such invitation exists"
msgstr "New invitation link"
#: snikket_web/admin.py:289
#: snikket_web/admin.py:381
#, fuzzy
#| msgid "Invitation type"
msgid "Invitation revoked"
msgstr "Invitation type"
#: snikket_web/admin.py:306 snikket_web/admin.py:354
#: snikket_web/admin.py:398 snikket_web/admin.py:446
msgid "Name"
msgstr "Name"
#: 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 "Create circle"
#: snikket_web/admin.py:341
#: snikket_web/admin.py:433
#, fuzzy
#| msgid "Circle name"
msgid "Circle created"
msgstr "Circle name"
#: snikket_web/admin.py:359
#: snikket_web/admin.py:451
msgid "Select user"
msgstr "Select user"
#: snikket_web/admin.py:364
#: snikket_web/admin.py:456
#, fuzzy
#| msgid "Create circle"
msgid "Update circle"
msgstr "Create circle"
#: snikket_web/admin.py:368
#: snikket_web/admin.py:460
msgid "Delete circle permanently"
msgstr "Delete circle permanently"
#: snikket_web/admin.py:374
#: snikket_web/admin.py:466
msgid "Add user"
msgstr "Add user"
#: snikket_web/admin.py:390
#: snikket_web/admin.py:482
#, fuzzy
#| msgid "No circles"
msgid "No such circle exists"
msgstr "No circles"
#: snikket_web/admin.py:427
#: snikket_web/admin.py:519
#, fuzzy
#| msgid "Circle name"
msgid "Circle data updated"
msgstr "Circle name"
#: snikket_web/admin.py:433
#: snikket_web/admin.py:525
#, fuzzy
#| msgid "deleted"
msgid "Circle deleted"
msgstr "deleted"
#: snikket_web/admin.py:444
#: snikket_web/admin.py:536
#, fuzzy
#| msgid "Invite to circle"
msgid "User added to circle"
msgstr "Invite to circle"
#: snikket_web/admin.py:453
#: snikket_web/admin.py:545
#, fuzzy
#| msgid "Remove user %(username)s from circle"
msgid "User removed from circle"
msgstr "Remove user %(username)s from circle"
#: 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 "Main"
@@ -273,11 +347,6 @@ msgstr "Friends only"
msgid "Everyone"
msgstr "Everyone"
#: snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:11 snikket_web/user.py:61
msgid "Display name"
msgstr "Display name"
#: snikket_web/user.py:65
msgid "Avatar"
msgstr "Avatar"
@@ -441,8 +510,9 @@ msgid "Members"
msgstr "Members"
#: snikket_web/templates/admin_circles.html:15
#: snikket_web/templates/admin_edit_circle.html:61
#: 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"
@@ -518,12 +588,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:53
msgid "Delete user"
msgstr "Delete user"
@@ -531,11 +601,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"
@@ -603,28 +668,37 @@ msgstr "Deleting a circle does not delete any users in the circle."
msgid "Circle members"
msgstr "Circle members"
#: snikket_web/templates/admin_edit_circle.html:70
#: snikket_web/templates/admin_edit_circle.html:71
msgid "The user has been deleted from the server."
msgstr ""
#: snikket_web/templates/admin_edit_circle.html:71
#: snikket_web/templates/library.j2:108
msgid "deleted"
msgstr "deleted"
#: snikket_web/templates/admin_edit_circle.html:77
#, python-format
msgid "Remove user %(username)s from circle"
msgstr "Remove user %(username)s from circle"
#: snikket_web/templates/admin_edit_circle.html:78
#: snikket_web/templates/admin_edit_circle.html:85
msgid "This circle currently has no members."
msgstr "This circle currently has no members."
#: snikket_web/templates/admin_edit_circle.html:80
#: snikket_web/templates/admin_edit_circle.html:87
msgid "Invite more members"
msgstr "Invite more members"
#: snikket_web/templates/admin_edit_circle.html:83
#: snikket_web/templates/admin_edit_circle.html:90
msgid "Add existing user"
msgstr "Add existing user"
#: snikket_web/templates/admin_edit_circle.html:94
#: snikket_web/templates/admin_edit_circle.html:101
msgid "All users added"
msgstr ""
#: snikket_web/templates/admin_edit_circle.html:95
#: snikket_web/templates/admin_edit_circle.html:102
msgid "All users on this service are already in this circle."
msgstr "All users on this service are already in this circle."
@@ -675,12 +749,105 @@ msgstr ""
msgid "Created"
msgstr "Created"
#: snikket_web/templates/admin_edit_invite.html:49
#: 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:22
#, fuzzy
#| msgid "Add user"
msgid "Edit user"
msgstr "Add user"
#: 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
#, fuzzy
#| msgid "New invitation link"
msgid "Return to user list"
msgstr "New invitation link"
#: snikket_web/templates/admin_edit_user.html:58
msgid "Further actions"
msgstr ""
#: snikket_web/templates/admin_edit_user.html:60
#, fuzzy
#| msgid "Change your password"
msgid "Reset password"
msgstr "Change your password"
#: snikket_web/templates/admin_edit_user.html:63
#, 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:68
#, fuzzy
#| msgid "User information"
msgid "Debug information"
msgstr "User information"
#: 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
#, 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!"
@@ -726,13 +893,32 @@ msgstr "Create, revoke or view invitations."
msgid "Manage invitations"
msgstr "Manage invitations"
#: snikket_web/templates/admin_home.html:36
#: 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
#, fuzzy
#| msgid "Manage users"
msgid "Manage system"
msgstr "Manage users"
#: snikket_web/templates/admin_home.html:48
#, fuzzy
#| msgid "Go back to your users web portal page."
msgid "Go back to your user's web portal page."
msgstr "Go back to your users web portal page."
#: snikket_web/templates/admin_home.html:38
#: snikket_web/templates/admin_home.html:50
msgid "Exit admin panel"
msgstr ""
@@ -785,15 +971,94 @@ 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_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 "System load (5-minute average)"
#: 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"
msgstr "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
#, fuzzy
#| msgid "Snikket Web Portal"
msgid "Snikket server status"
msgstr "Snikket Web Portal"
#: 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
msgid "Snikket Web Portal"
@@ -1148,12 +1413,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
@@ -1186,10 +1451,6 @@ msgstr "Copy link"
msgid "Invalid input"
msgstr "Invalid input"
#: snikket_web/templates/library.j2:108
msgid "deleted"
msgstr "deleted"
#: snikket_web/templates/library.j2:122
#, fuzzy
#| msgid "Manage users and invitations of this Snikket service."
@@ -1328,26 +1589,12 @@ 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 "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"

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-03-22 15:08+0100\n"
"PO-Revision-Date: 2021-02-10 17:01+0000\n"
"POT-Creation-Date: 2021-06-18 16:05+0200\n"
"PO-Revision-Date: 2021-03-31 13:00+0000\n"
"Last-Translator: Tilman Jiménez <tilman.jimenez@tu-dortmund.de>\n"
"Language-Team: Spanish (Mexico) <https://i18n.sotecware.net/projects/snikket/"
"web-portal/es_MX/>\n"
@@ -17,154 +17,224 @@ 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:59
#: snikket_web/admin.py:66
msgid "Limited"
msgstr "Limitado"
#: snikket_web/admin.py:71 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_edit_circle.html:59
#: snikket_web/templates/admin_users.html:8
msgid "Login name"
msgstr "Nombre de ingreso del usuario"
#: snikket_web/admin.py:75 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_edit_circle.html:60
#: snikket_web/templates/admin_users.html:9 snikket_web/user.py:61
msgid "Display name"
msgstr "Nombre mostrado"
#: snikket_web/admin.py:79 snikket_web/templates/admin_edit_user.html:32
msgid "Access Level"
msgstr "Nivel de acceso"
#: snikket_web/admin.py:84
msgid "Normal user"
msgstr "Usuario normal"
#: snikket_web/admin.py:85
#, fuzzy
#| msgid "Admin area"
msgid "Administrator"
msgstr "Administración"
#: snikket_web/admin.py:90
msgid "Update user"
msgstr "Actualizar usuario"
#: snikket_web/admin.py:94
#, fuzzy
#| msgid "Current password"
msgid "Create password reset link"
msgstr "Contraseña actual"
#: snikket_web/admin.py:112
msgid "Password reset link created"
msgstr "Un enlace para restablecer la contraseña ha sido creado"
#: snikket_web/admin.py:127
#, fuzzy
#| msgid "Circle information"
msgid "User information updated."
msgstr "Información del círculo"
#: snikket_web/admin.py:149
msgid "Delete user permanently"
msgstr "Eliminar usuario permanentemente"
#: snikket_web/admin.py:72
#: snikket_web/admin.py:162
msgid "User deleted"
msgstr ""
msgstr "Usuario eliminado"
#: snikket_web/admin.py:115
msgid "Password reset link created"
msgstr ""
#: snikket_web/admin.py:200
msgid "Password reset link not found"
msgstr "No hemos encontrado un enlace para restablecer la contraseña"
#: snikket_web/admin.py:121
#: snikket_web/admin.py:212
msgid "Password reset link deleted"
msgstr ""
msgstr "Enlace para restablecer la contraseña eliminado"
#: snikket_web/admin.py:140
#: snikket_web/admin.py:232
msgid "Invite to circle"
msgstr "Invitar al círculo"
#: snikket_web/admin.py:146
#: snikket_web/admin.py:238
msgid "At least one circle must be selected"
msgstr "Seleccione al menos un círculo"
#: snikket_web/admin.py:151
#: snikket_web/admin.py:243
msgid "Valid for"
msgstr "Válido por"
#: snikket_web/admin.py:153
#: snikket_web/admin.py:245
msgid "One hour"
msgstr "Una hora"
#: snikket_web/admin.py:154
#: snikket_web/admin.py:246
msgid "Twelve hours"
msgstr "Doce horas"
#: snikket_web/admin.py:155
#: snikket_web/admin.py:247
msgid "One day"
msgstr "Un día"
#: snikket_web/admin.py:156
#: snikket_web/admin.py:248
msgid "One week"
msgstr "Una semana"
#: snikket_web/admin.py:157
#: snikket_web/admin.py:249
msgid "Four weeks"
msgstr "Cuatro semanas"
#: 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 "Tipo de invitación"
#: 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 "Individual"
#: 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 "Grupo"
#: snikket_web/admin.py:172
#: snikket_web/admin.py:264
msgid "New invitation link"
msgstr "Nuevo enlace de invitación"
#: snikket_web/admin.py:234
#: snikket_web/admin.py:326
msgid "Revoke"
msgstr "Revocar/Eliminar"
#: snikket_web/admin.py:258
#: snikket_web/admin.py:350
#, fuzzy
#| msgid "Invitation type"
msgid "Invitation created"
msgstr "Tipo de invitación"
#: snikket_web/admin.py:274
#: snikket_web/admin.py:366
#, fuzzy
#| msgid "New invitation link"
msgid "No such invitation exists"
msgstr "Nuevo enlace de invitación"
#: snikket_web/admin.py:289
#: snikket_web/admin.py:381
#, fuzzy
#| msgid "Invitation type"
msgid "Invitation revoked"
msgstr "Tipo de invitación"
#: snikket_web/admin.py:306 snikket_web/admin.py:354
#: snikket_web/admin.py:398 snikket_web/admin.py:446
msgid "Name"
msgstr "Nombre"
#: 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 "Crear círculo"
#: snikket_web/admin.py:341
#: snikket_web/admin.py:433
#, fuzzy
#| msgid "Circle name"
msgid "Circle created"
msgstr "Nombre del círculo"
#: snikket_web/admin.py:359
#: snikket_web/admin.py:451
msgid "Select user"
msgstr "Seleccionar usuario"
#: snikket_web/admin.py:364
#: snikket_web/admin.py:456
msgid "Update circle"
msgstr "Actualizar círculo"
#: snikket_web/admin.py:368
#: snikket_web/admin.py:460
msgid "Delete circle permanently"
msgstr "Eliminar círculo permanentemente"
#: snikket_web/admin.py:374
#: snikket_web/admin.py:466
msgid "Add user"
msgstr "Añadir usuario"
#: snikket_web/admin.py:390
#: snikket_web/admin.py:482
#, fuzzy
#| msgid "No circles"
msgid "No such circle exists"
msgstr "No hay círculos"
#: snikket_web/admin.py:427
#: snikket_web/admin.py:519
#, fuzzy
#| msgid "Circle name"
msgid "Circle data updated"
msgstr "Nombre del círculo"
#: snikket_web/admin.py:433
#: snikket_web/admin.py:525
#, fuzzy
#| msgid "Circle members"
msgid "Circle deleted"
msgstr "Miembros del círculo"
#: snikket_web/admin.py:444
#: snikket_web/admin.py:536
#, fuzzy
#| msgid "Invite to circle"
msgid "User added to circle"
msgstr "Invitar al círculo"
#: 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 "Principal"
@@ -263,11 +333,6 @@ msgstr "Únicamente amigos"
msgid "Everyone"
msgstr "Todos"
#: 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 "Imagen de perfil"
@@ -396,7 +461,7 @@ msgstr "Administración"
#: snikket_web/templates/admin_circles.html:4
#: snikket_web/templates/admin_home.html:23
msgid "Manage circles"
msgstr ""
msgstr "Administrar círculos"
#: snikket_web/templates/admin_circles.html:5
msgid ""
@@ -425,8 +490,9 @@ msgid "Members"
msgstr "Miembros"
#: snikket_web/templates/admin_circles.html:15
#: snikket_web/templates/admin_edit_circle.html:61
#: snikket_web/templates/admin_invites.html:24
#: snikket_web/templates/admin_users.html:12
#: snikket_web/templates/admin_users.html:10
msgid "Actions"
msgstr "Acciones"
@@ -438,7 +504,7 @@ msgstr "Crear una invitación para el círculo %(circle_name)s"
#: snikket_web/templates/admin_circles.html:28
#, python-format
msgid "Manage members of %(circle_name)s"
msgstr ""
msgstr "Administrar miembros de %(circle_name)s"
#: snikket_web/templates/admin_circles.html:31
#: snikket_web/templates/admin_edit_circle.html:8
@@ -498,15 +564,15 @@ msgstr ""
#: snikket_web/templates/admin_debug_user.html:17
msgid "Copy complete output"
msgstr ""
msgstr "Copiar el todo el 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 "Eliminar al usuario %(user_name)s"
#: snikket_web/templates/admin_delete_user.html:6
#: snikket_web/templates/admin_edit_user.html:53
msgid "Delete user"
msgstr "Eliminar usuario"
@@ -514,11 +580,6 @@ msgstr "Eliminar usuario"
msgid "Are you sure you want to delete the following user?"
msgstr "¿Seguro que quieres eliminar al siguiente usuario?"
#: 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 "Peligro"
@@ -548,6 +609,8 @@ msgstr "Este es el círculo principal"
#: snikket_web/templates/admin_edit_circle.html:15
msgid "This circle is managed automatically and cannot be removed or renamed."
msgstr ""
"Este círculo es administrado automáticamente y no puede ser eliminado o "
"renombrado."
#: snikket_web/templates/admin_edit_circle.html:17
#: snikket_web/templates/admin_edit_circle.html:33
@@ -585,28 +648,37 @@ msgstr "Eliminar un círculo no elimina a los usuarios que le pertenecen."
msgid "Circle members"
msgstr "Miembros del círculo"
#: snikket_web/templates/admin_edit_circle.html:70
#, python-format
msgid "Remove user %(username)s from circle"
#: snikket_web/templates/admin_edit_circle.html:71
msgid "The user has been deleted from the server."
msgstr ""
#: snikket_web/templates/admin_edit_circle.html:78
#: snikket_web/templates/admin_edit_circle.html:71
#: snikket_web/templates/library.j2:108
msgid "deleted"
msgstr ""
#: snikket_web/templates/admin_edit_circle.html:77
#, python-format
msgid "Remove user %(username)s from circle"
msgstr "Remover al usuario %(username)s del círculo"
#: snikket_web/templates/admin_edit_circle.html:85
msgid "This circle currently has no members."
msgstr "Actualmente este círculo no tiene miembros."
#: snikket_web/templates/admin_edit_circle.html:80
#: snikket_web/templates/admin_edit_circle.html:87
msgid "Invite more members"
msgstr "Invitar a más miembros"
#: snikket_web/templates/admin_edit_circle.html:83
#: snikket_web/templates/admin_edit_circle.html:90
msgid "Add existing user"
msgstr "Añadir a un usuario existente"
#: snikket_web/templates/admin_edit_circle.html:94
#: snikket_web/templates/admin_edit_circle.html:101
msgid "All users added"
msgstr "Todos los usuarios han sido añadidos"
#: snikket_web/templates/admin_edit_circle.html:95
#: snikket_web/templates/admin_edit_circle.html:102
msgid "All users on this service are already in this circle."
msgstr "Todos los usuarios de este servicio ya están en este círculo."
@@ -639,81 +711,186 @@ msgstr ""
#: snikket_web/templates/admin_edit_invite.html:29
#: snikket_web/templates/admin_invites.html:23
msgid "Circle"
msgstr ""
msgstr "Círculo"
#: snikket_web/templates/admin_edit_invite.html:35
msgid "The user will not be added to any circle and will have no contacts."
msgstr ""
"Este usuario no va a ser añadido a ningún círculo y no tendrá contactos."
#: snikket_web/templates/admin_edit_invite.html:40
msgid "Contact"
msgstr ""
msgstr "Contacto"
#: snikket_web/templates/admin_edit_invite.html:41
#, python-format
msgid "The user will get added as contact of %(peer_jid)s."
msgstr ""
msgstr "El usuario será añadido como contacto de %(peer_jid)s."
#: snikket_web/templates/admin_edit_invite.html:43
msgid "Created"
msgstr ""
msgstr "Creado"
#: snikket_web/templates/admin_edit_invite.html:49
#: snikket_web/templates/admin_edit_invite.html:48
#, fuzzy
#| msgid "New invitation link"
msgid "Return to invitation list"
msgstr "Nuevo enlace de invitación"
#: 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 "Eliminar al usuario %(user_name)s"
#: snikket_web/templates/admin_edit_user.html:22
#, fuzzy
#| msgid "Add user"
msgid "Edit user"
msgstr "Añadir usuario"
#: 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
#, fuzzy
#| msgid "New invitation link"
msgid "Return to user list"
msgstr "Nuevo enlace de invitación"
#: snikket_web/templates/admin_edit_user.html:58
msgid "Further actions"
msgstr ""
#: snikket_web/templates/admin_edit_user.html:60
#, fuzzy
#| msgid "New password"
msgid "Reset password"
msgstr "Nueva contraseña"
#: 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
#, fuzzy
#| msgid "Circle information"
msgid "Debug information"
msgstr "Información del círculo"
#: 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
#, fuzzy
#| msgid "Circle information"
msgid "Show debug information"
msgstr "Información del círculo"
#: snikket_web/templates/admin_home.html:4
msgid "Welcome to the admin panel!"
msgstr ""
msgstr "¡Bienvenido al panel administrativo!"
#: snikket_web/templates/admin_home.html:5
#, python-format
msgid "At your service, %(user_name)s."
msgstr ""
msgstr "A tu servicio, %(user_name)s."
#: snikket_web/templates/admin_home.html:9
msgid "Users"
msgstr ""
msgstr "Usuarios"
#: snikket_web/templates/admin_home.html:11
msgid "Create password reset links or delete users."
msgstr ""
msgstr "Crea enlaces para restablecer la contraseña o elimina usuarios."
#: snikket_web/templates/admin_home.html:15
#: snikket_web/templates/admin_users.html:4
msgid "Manage users"
msgstr ""
msgstr "Administrar usuarios"
#: snikket_web/templates/admin_home.html:21
msgid "Create and manage social circles represented on your service."
msgstr ""
msgstr "Crea y administra círculos sociales en tu servicio."
#: snikket_web/templates/admin_home.html:27
msgid "Invitations"
msgstr ""
msgstr "Invitaciones"
#: snikket_web/templates/admin_home.html:29
msgid "Create, revoke or copy invitations."
msgstr ""
msgstr "Crea, revoca o copia invitaciones."
#: snikket_web/templates/admin_home.html:31
#: snikket_web/templates/admin_invites.html:8
msgid "Manage invitations"
msgstr ""
msgstr "Administrar invitaciones"
#: 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 "Exit admin panel"
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
#, fuzzy
#| msgid "Manage users"
msgid "Manage system"
msgstr "Administrar usuarios"
#: snikket_web/templates/admin_home.html:48
msgid "Go back to your user's web portal page."
msgstr "Regresa a la página de inicio de tu usuario."
#: snikket_web/templates/admin_home.html:50
msgid "Exit admin panel"
msgstr "Salir del panel administrativo"
#: snikket_web/templates/admin_invites.html:10
msgid "Pending invitations"
msgstr ""
msgstr "Invitaciones pendientes"
#: snikket_web/templates/admin_invites.html:21
msgid "Expires"
@@ -721,89 +898,175 @@ msgstr ""
#: snikket_web/templates/admin_invites.html:22
msgid "Type"
msgstr ""
msgstr "Tipo"
#: snikket_web/templates/admin_invites.html:43
msgid "Show invite details"
msgstr ""
msgstr "Mostrar detalles de la invitación"
#: snikket_web/templates/admin_invites.html:46
msgid "Copy invite link to clipboard"
msgstr ""
msgstr "Copiar enlace de invitación"
#: snikket_web/templates/admin_invites.html:49
msgid "Delete invitation"
msgstr ""
msgstr "Eliminar invitación"
#: snikket_web/templates/admin_invites.html:57
msgid "Currently, there are no pending invitations."
msgstr ""
msgstr "Actualmente no hay invitaciones pendientes."
#: snikket_web/templates/admin_reset_user_password.html:8
msgid "Password reset"
msgstr ""
msgstr "Restablecer contraseña"
#: snikket_web/templates/admin_reset_user_password.html:12
#, python-format
msgid "Password reset link for %(user_name)s"
msgstr ""
msgstr "Enlace para restablecer la contraseña de %(user_name)s"
#: snikket_web/templates/admin_reset_user_password.html:13
msgid ""
"The following link will allow the user to reset their password on their "
"device, once."
msgstr ""
"Este enlace le permitirá al usuario restablecer su contraseña una sola vez."
#: snikket_web/templates/admin_reset_user_password.html:22
msgid "Destroy link"
msgstr "Eliminar enlace"
#: snikket_web/templates/admin_system.html:6
msgid "Overall system status"
msgstr ""
#: snikket_web/templates/admin_users.html:25
#, python-format
msgid "Show debug information for %(user_name)s"
#: snikket_web/templates/admin_system.html:9
msgid "System load (5 minute average)"
msgstr ""
#: snikket_web/templates/admin_users.html:28
#: 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
#, fuzzy
#| msgid "Snikket Web Portal"
msgid "Snikket server status"
msgstr "Portal web de Snikket"
#: 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
#, fuzzy
#| msgid "The username is not valid"
msgid "The user is an administrator."
msgstr "El nombre de usuario no es válido"
#: 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 "El nombre de usuario no es válido"
#: snikket_web/templates/admin_users.html:22
msgid " (Restricted)"
msgstr ""
#: snikket_web/templates/app.html:4
msgid "Snikket Web Portal"
msgstr ""
msgstr "Portal web de Snikket"
#: snikket_web/templates/app.html:8
msgid "Log out"
msgstr ""
msgstr "Cerrar sesión"
#: snikket_web/templates/backend_error.html:3
#: snikket_web/templates/exception.html:3
#: snikket_web/templates/internal_error.html:3
msgid "Internal error"
msgstr ""
msgstr "Error interno"
#: snikket_web/templates/backend_error.html:4
msgid "The web portal was not able to communicate with the backend."
msgstr ""
msgstr "El portal web no pudo conectarse con el servidor."
#: snikket_web/templates/backend_error.html:5
#: snikket_web/templates/internal_error.html:5
msgid "Please try again later and/or inform your Snikket service admin."
msgstr ""
"Por favor intente más tarde y/o informe al administrador de su servicio "
"Snikket."
#: snikket_web/templates/generic_http_error.html:9
msgid "Go back to the main page"
msgstr ""
msgstr "Regresar a la página principal"
#: snikket_web/templates/internal_error.html:4
msgid "The web portal encountered an internal error."
msgstr ""
msgstr "El portal web tuvo un error interno."
#: snikket_web/templates/invite_invalid.html:5
#: snikket_web/templates/invite_view.html:13
#, python-format
msgid "Invite to %(site_name)s"
msgstr ""
msgstr "Invitación para %(site_name)s"
#: snikket_web/templates/invite_invalid.html:6
#: snikket_web/templates/invite_register.html:10
@@ -815,11 +1078,11 @@ msgstr ""
#: snikket_web/templates/invite_invalid.html:8
msgid "Invite expired"
msgstr ""
msgstr "La invitación ha expirado"
#: snikket_web/templates/invite_invalid.html:9
msgid "Sorry, it looks like this invitation link has expired!"
msgstr ""
msgstr "¡Disculpe, parece que esta invitación ha expirado!"
#: snikket_web/templates/invite_register.html:5
#, python-format
@@ -1105,12 +1368,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
@@ -1143,10 +1406,6 @@ msgstr ""
msgid "Invalid input"
msgstr ""
#: snikket_web/templates/library.j2:108
msgid "deleted"
msgstr ""
#: snikket_web/templates/library.j2:122
msgid "Can be used multiple times to create accounts on this Snikket service."
msgstr ""

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-03-22 15:08+0100\n"
"PO-Revision-Date: 2021-03-21 16:31+0000\n"
"POT-Creation-Date: 2021-06-18 16:05+0200\n"
"PO-Revision-Date: 2021-06-19 15:01+0000\n"
"Last-Translator: Link Mauve <linkmauve@linkmauve.fr>\n"
"Language-Team: French <https://i18n.sotecware.net/projects/snikket/web-"
"portal/fr/>\n"
"Language-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,135 +20,199 @@ msgstr ""
"X-Generator: Weblate 4.5.1\n"
"Generated-By: Babel 2.9.0\n"
#: snikket_web/admin.py:59
msgid "Delete user permanently"
msgstr "Désinscrire définitivement lutilisateur"
#: snikket_web/admin.py:66
msgid "Limited"
msgstr "Limité"
#: snikket_web/admin.py:72
msgid "User deleted"
msgstr "Utilisateur supprimé"
#: snikket_web/admin.py:71 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_edit_circle.html:59
#: snikket_web/templates/admin_users.html:8
msgid "Login name"
msgstr "Identifiant"
#: snikket_web/admin.py:115
#: snikket_web/admin.py:75 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_edit_circle.html:60
#: snikket_web/templates/admin_users.html:9 snikket_web/user.py:61
msgid "Display name"
msgstr "Nom à afficher"
#: snikket_web/admin.py:79 snikket_web/templates/admin_edit_user.html:32
msgid "Access Level"
msgstr "Niveau daccès"
#: snikket_web/admin.py:84
msgid "Normal user"
msgstr "Utilisateur normal"
#: snikket_web/admin.py:85
msgid "Administrator"
msgstr "Administrateur"
#: snikket_web/admin.py:90
msgid "Update user"
msgstr "Modifier lutilisateur"
#: snikket_web/admin.py:94
msgid "Create password reset link"
msgstr "Créer le lien de réinitialisation de mot de passe"
#: snikket_web/admin.py:112
msgid "Password reset link created"
msgstr "Lien de réinitialisation du mot de passe créé"
#: snikket_web/admin.py:121
#: snikket_web/admin.py:127
msgid "User information updated."
msgstr "Informations de lutilisateur mises à jour."
#: snikket_web/admin.py:149
msgid "Delete user permanently"
msgstr "Désinscrire définitivement lutilisateur"
#: snikket_web/admin.py:162
msgid "User deleted"
msgstr "Utilisateur supprimé"
#: snikket_web/admin.py:200
msgid "Password reset link not found"
msgstr "Lien de réinitialisation du mot de passe introuvable"
#: snikket_web/admin.py:212
msgid "Password reset link deleted"
msgstr "Liens de réinitialisation de mot de passe supprimé"
#: snikket_web/admin.py:140
#: snikket_web/admin.py:232
msgid "Invite to circle"
msgstr "Inviter dans le cercle"
#: snikket_web/admin.py:146
#: snikket_web/admin.py:238
msgid "At least one circle must be selected"
msgstr "Au moins un cercle doit être sélectionné"
#: snikket_web/admin.py:151
#: snikket_web/admin.py:243
msgid "Valid for"
msgstr "Valide pour"
#: snikket_web/admin.py:153
#: snikket_web/admin.py:245
msgid "One hour"
msgstr "Une heure"
#: snikket_web/admin.py:154
#: snikket_web/admin.py:246
msgid "Twelve hours"
msgstr "Douze heures"
#: snikket_web/admin.py:155
#: snikket_web/admin.py:247
msgid "One day"
msgstr "Une journée"
#: snikket_web/admin.py:156
#: snikket_web/admin.py:248
msgid "One week"
msgstr "Une semaine"
#: snikket_web/admin.py:157
#: snikket_web/admin.py:249
msgid "Four weeks"
msgstr "Quatre semaines"
#: 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 "Type dinvitation"
#: 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 "Individuelle"
#: 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 "Groupe"
#: snikket_web/admin.py:172
#: snikket_web/admin.py:264
msgid "New invitation link"
msgstr "Nouveau lien dinvitation"
#: snikket_web/admin.py:234
#: snikket_web/admin.py:326
msgid "Revoke"
msgstr "Révoquer"
#: snikket_web/admin.py:258
#: snikket_web/admin.py:350
msgid "Invitation created"
msgstr "Invitation créée"
#: snikket_web/admin.py:274
#: snikket_web/admin.py:366
msgid "No such invitation exists"
msgstr "Cette invitation nexiste pas"
#: snikket_web/admin.py:289
#: snikket_web/admin.py:381
msgid "Invitation revoked"
msgstr "Invitation révoquée"
#: snikket_web/admin.py:306 snikket_web/admin.py:354
#: snikket_web/admin.py:398 snikket_web/admin.py:446
msgid "Name"
msgstr "Nom"
#: 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 "Créer un cercle"
#: snikket_web/admin.py:341
#: snikket_web/admin.py:433
msgid "Circle created"
msgstr "Cercle créé"
#: snikket_web/admin.py:359
#: snikket_web/admin.py:451
msgid "Select user"
msgstr "Sélectionner un utilisateur"
#: snikket_web/admin.py:364
#: snikket_web/admin.py:456
msgid "Update circle"
msgstr "Mettre à jour le cercle"
#: snikket_web/admin.py:368
#: snikket_web/admin.py:460
msgid "Delete circle permanently"
msgstr "Supprimer le cercle définitivement"
#: snikket_web/admin.py:374
#: snikket_web/admin.py:466
msgid "Add user"
msgstr "Ajouter un utilisateur"
#: snikket_web/admin.py:390
#: snikket_web/admin.py:482
msgid "No such circle exists"
msgstr "Ce cercle nexiste pas"
#: snikket_web/admin.py:427
#: snikket_web/admin.py:519
msgid "Circle data updated"
msgstr "Données du cercle mises à jour"
#: snikket_web/admin.py:433
#: snikket_web/admin.py:525
msgid "Circle deleted"
msgstr "Cercle supprimé"
#: snikket_web/admin.py:444
#: snikket_web/admin.py:536
msgid "User added to circle"
msgstr "Utilisateur ajouté à ce cercle"
#: snikket_web/admin.py:453
#: snikket_web/admin.py:545
msgid "User removed from circle"
msgstr "Utilisateur retiré du cercle"
#: snikket_web/infra.py:41
#: snikket_web/admin.py:616
msgid "Message contents"
msgstr "Contenu du message"
#: snikket_web/admin.py:622
msgid "Only send to online users"
msgstr "Envoyer uniquement aux utilisateurs connectés"
#: snikket_web/admin.py:626
msgid "Post to all users"
msgstr "Envoyer aux utilisateurs"
#: snikket_web/admin.py:630
msgid "Send preview to yourself"
msgstr "Envoyer une prévisualisation à vous-mêmes"
#: snikket_web/admin.py:652
msgid "Announcement sent!"
msgstr "Annonce envoyée!"
#: snikket_web/infra.py:51
msgid "Main"
msgstr "Principal"
@@ -237,11 +301,6 @@ msgstr "Amis seulement"
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:61
msgid "Display name"
msgstr "Nom à afficher"
#: snikket_web/user.py:65
msgid "Avatar"
msgstr "Avatar"
@@ -408,8 +467,9 @@ msgid "Members"
msgstr "Membres"
#: snikket_web/templates/admin_circles.html:15
#: snikket_web/templates/admin_edit_circle.html:61
#: 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"
@@ -484,12 +544,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:53
msgid "Delete user"
msgstr "Désinscrire un utilisateur"
@@ -497,11 +557,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"
@@ -555,7 +610,7 @@ 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 ""
msgstr "Revenir à la liste des cercles"
#: snikket_web/templates/admin_edit_circle.html:48
msgid "Delete circle"
@@ -569,28 +624,37 @@ msgstr "Supprimer un cercle ne supprime aucun utilisateur dans le cercle."
msgid "Circle members"
msgstr "Membres du cercle"
#: snikket_web/templates/admin_edit_circle.html:70
#: snikket_web/templates/admin_edit_circle.html:71
msgid "The user has been deleted from the server."
msgstr "Cet utilisateur a été supprimé du serveur."
#: snikket_web/templates/admin_edit_circle.html:71
#: snikket_web/templates/library.j2:108
msgid "deleted"
msgstr "supprimé"
#: snikket_web/templates/admin_edit_circle.html:77
#, python-format
msgid "Remove user %(username)s from circle"
msgstr "Retirer lutilisateur %(username)s du cercle"
#: snikket_web/templates/admin_edit_circle.html:78
#: snikket_web/templates/admin_edit_circle.html:85
msgid "This circle currently has no members."
msgstr "Ce cercle na pas encore de membres."
#: snikket_web/templates/admin_edit_circle.html:80
#: snikket_web/templates/admin_edit_circle.html:87
msgid "Invite more members"
msgstr "Inviter dautres membres"
#: snikket_web/templates/admin_edit_circle.html:83
#: snikket_web/templates/admin_edit_circle.html:90
msgid "Add existing user"
msgstr "Ajouter un utilisateur existant"
#: snikket_web/templates/admin_edit_circle.html:94
#: snikket_web/templates/admin_edit_circle.html:101
msgid "All users added"
msgstr "Tous les utilisateurs ont été ajoutés"
#: snikket_web/templates/admin_edit_circle.html:95
#: snikket_web/templates/admin_edit_circle.html:102
msgid "All users on this service are already in this circle."
msgstr "Tous les utilisateurs de ce service sont déjà dans ce cercle."
@@ -642,11 +706,97 @@ msgstr "Lutilisateur sera ajouté en tant que contact de %(peer_jid)s."
msgid "Created"
msgstr "Créé le"
#: snikket_web/templates/admin_edit_invite.html:49
#, fuzzy
#| msgid "New invitation link"
#: snikket_web/templates/admin_edit_invite.html:48
msgid "Return to invitation list"
msgstr "Nouveau lien dinvitation"
msgstr "Revenir à la liste des invitations"
#: 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 ""
"Les utilisateurs limités ne peuvent interagir quavec les utilisateurs du "
"même service Snikket et faire partie de cercles."
#: snikket_web/templates/admin_edit_user.html:7
msgid ""
"Like limited users and can also interact with users on other Snikket "
"services."
msgstr ""
"Comme les utilisateurs limités, mais peuvent aussi interagir avec les "
"utilisateurs dautres services Snikket."
#: snikket_web/templates/admin_edit_user.html:9
msgid "Like normal users and can access the admin panel in the web portal."
msgstr ""
"Comme les utilisateurs normaux, mais peuvent accéder au panneau "
"dadministration dans le portail 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 "Modifier lutilisateur %(user_name)s"
#: snikket_web/templates/admin_edit_user.html:22
msgid "Edit user"
msgstr "Modifier lutilisateur"
#: snikket_web/templates/admin_edit_user.html:26
msgid "The login name cannot be changed."
msgstr "Le nom dutilisateur ne peut pas être changé."
#: 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 ""
"Le niveau daccès dun utilisateur détermine les interactions qui lui sont "
"permises sur votre service Snikket."
#: snikket_web/templates/admin_edit_user.html:40
#, 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:50
msgid "Return to user list"
msgstr "Revenir à la liste des utilisateurs"
#: snikket_web/templates/admin_edit_user.html:58
msgid "Further actions"
msgstr "Actions supplémentaires"
#: snikket_web/templates/admin_edit_user.html:60
msgid "Reset password"
msgstr "Réinitialiser le mot de passe"
#: 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 ""
"Si lutilisateur a perdu son mot de passe, vous pouvez utiliser le bouton ci-"
"dessous pour créer un lien spécial qui permet de changer le mot de passe de "
"son compte, une seule fois."
#: snikket_web/templates/admin_edit_user.html:68
msgid "Debug information"
msgstr "Informations de debug"
#: 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 ""
"Dans certains cas, des informations additionnelles sur le compte de "
"lutilisateur et les clients connectés sont nécessaires pour résoudre des "
"problèmes. Le bouton ci-dessous révèle ces informations sensibles."
#: snikket_web/templates/admin_edit_user.html:74
msgid "Show debug information"
msgstr "Afficher les informations de debug"
#: snikket_web/templates/admin_home.html:4
msgid "Welcome to the admin panel!"
@@ -689,11 +839,29 @@ msgstr "Créer, révoquer, ou copier des invitations."
msgid "Manage invitations"
msgstr "Gérer les invitations"
#: snikket_web/templates/admin_home.html:36
#: snikket_web/templates/admin_home.html:35
msgid "System health"
msgstr "Santé du système"
#: snikket_web/templates/admin_home.html:38
msgid "View the server status or send a broadcast message to all users."
msgstr ""
"Voir le statut du serveur, ou diffuser un message à tous les utilisateurs."
#: snikket_web/templates/admin_home.html:40
msgid "Send a broadcast message to all users."
msgstr "Diffuser un message aux utilisateurs."
#: snikket_web/templates/admin_home.html:43
#: snikket_web/templates/admin_system.html:4
msgid "Manage system"
msgstr "Gérer le système"
#: snikket_web/templates/admin_home.html:48
msgid "Go back to your user's web portal page."
msgstr "Retourner au portail web de votre utilisateur."
#: snikket_web/templates/admin_home.html:38
#: snikket_web/templates/admin_home.html:50
msgid "Exit admin panel"
msgstr "Quitter le panneau dadministration"
@@ -702,9 +870,8 @@ msgid "Pending invitations"
msgstr "Invitations en attente"
#: snikket_web/templates/admin_invites.html:21
#, fuzzy
msgid "Expires"
msgstr "Expires"
msgstr "Expire"
#: snikket_web/templates/admin_invites.html:22
msgid "Type"
@@ -747,15 +914,96 @@ 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_system.html:6
msgid "Overall system status"
msgstr "Statut général du système"
#: snikket_web/templates/admin_users.html:28
#: snikket_web/templates/admin_system.html:9
msgid "System load (5 minute average)"
msgstr "Charge système (moyenne sur 5 minutes)"
#: 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 "inconnu(e)"
#: snikket_web/templates/admin_system.html:17
msgid "Memory use"
msgstr "Utilisation mémoire"
#: snikket_web/templates/admin_system.html:20
#, 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"
msgid ""
"%(percentage_global)s of %(mem_available)s. Of that, Snikket uses "
"%(percentage_snikket)s."
msgstr ""
"%(percentage_global)s de %(mem_available)s. De tout ça, Snikket utilise "
"%(percentage_snikket)s."
#: snikket_web/templates/admin_system.html:27
msgid "Web portal status"
msgstr "Statut du portail web"
#: snikket_web/templates/admin_system.html:30
#: snikket_web/templates/admin_system.html:53
msgid "Version"
msgstr "Version"
#: snikket_web/templates/admin_system.html:31
#: snikket_web/templates/admin_system.html:54
msgid "View all versions"
msgstr "Voir toutes les versions"
#: snikket_web/templates/admin_system.html:32
#: snikket_web/templates/admin_system.html:55
msgid "Average CPU use"
msgstr "Utilisation CPU moyenne"
#: snikket_web/templates/admin_system.html:40
#: snikket_web/templates/admin_system.html:63
msgid "Current memory use"
msgstr "Utilisation mémoire courante"
#: snikket_web/templates/admin_system.html:50
msgid "Snikket server status"
msgstr "Statut du serveur Snikket"
#: snikket_web/templates/admin_system.html:71
msgid "Connected devices"
msgstr "Clients connectés"
#: snikket_web/templates/admin_system.html:82
msgid "Broadcast message"
msgstr "Diffusion de message"
#: 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 ""
"Ce formulaire vous permet décrire un message à tous les utilisateurs "
"présentement conectés à votre serveur Snikket. Utilisez-le judicieusement."
#: snikket_web/templates/admin_users.html:19
msgid "The user is an administrator."
msgstr "Lutilisateur est un administrateur."
#: snikket_web/templates/admin_users.html:19
msgid " (Administrator)"
msgstr " (administrateur)"
#: snikket_web/templates/admin_users.html:22
msgid "The user is restricted."
msgstr "Lutilisateur est restreint."
#: snikket_web/templates/admin_users.html:22
msgid " (Restricted)"
msgstr " (restreint)"
#: snikket_web/templates/app.html:4
msgid "Snikket Web Portal"
@@ -1150,12 +1398,12 @@ 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 "
"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
@@ -1188,10 +1436,6 @@ msgstr "Copier le lien"
msgid "Invalid input"
msgstr "Saisie invalide"
#: snikket_web/templates/library.j2:108
msgid "deleted"
msgstr "supprimé"
#: snikket_web/templates/library.j2:122
msgid "Can be used multiple times to create accounts on this Snikket service."
msgstr ""
@@ -1314,29 +1558,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

@@ -6,149 +6,213 @@
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2021-03-22 15:08+0100\n"
"PO-Revision-Date: 2021-02-25 16:02+0000\n"
"Report-Msgid-Bugs-To: translations@snikket.org\n"
"POT-Creation-Date: 2021-06-18 16:05+0200\n"
"PO-Revision-Date: 2021-12-12 07:00+0000\n"
"Last-Translator: uira <inboxriau@andriana.id>\n"
"Language-Team: Indonesian <https://i18n.sotecware.net/projects/snikket/web-"
"portal/id/>\n"
"Language-Team: Indonesian <http://i18n.sotecware.net/projects/snikket/"
"web-portal/id/>\n"
"Language: id\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 4.4.2\n"
"X-Generator: Weblate 4.8.1\n"
"Generated-By: Babel 2.9.0\n"
#: snikket_web/admin.py:59
msgid "Delete user permanently"
msgstr "Hapus permanen pengguna"
#: snikket_web/admin.py:66
msgid "Limited"
msgstr "Terbatas"
#: snikket_web/admin.py:72
msgid "User deleted"
msgstr "Pengguna dihapus"
#: snikket_web/admin.py:71 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_edit_circle.html:59
#: snikket_web/templates/admin_users.html:8
msgid "Login name"
msgstr "Nama login"
#: snikket_web/admin.py:115
#: snikket_web/admin.py:75 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_edit_circle.html:60
#: snikket_web/templates/admin_users.html:9 snikket_web/user.py:61
msgid "Display name"
msgstr "Nama tampilan"
#: snikket_web/admin.py:79 snikket_web/templates/admin_edit_user.html:32
msgid "Access Level"
msgstr "Level akses"
#: snikket_web/admin.py:84
msgid "Normal user"
msgstr "Pengguna normal"
#: snikket_web/admin.py:85
msgid "Administrator"
msgstr "Administrator"
#: snikket_web/admin.py:90
msgid "Update user"
msgstr "Memperbarui pengguna"
#: snikket_web/admin.py:94
msgid "Create password reset link"
msgstr "Buat tautan setel ulang kata sandi"
#: snikket_web/admin.py:112
msgid "Password reset link created"
msgstr "Tautan setel ulang kata sandi dibuat"
#: snikket_web/admin.py:121
#: snikket_web/admin.py:127
msgid "User information updated."
msgstr "Informasi pengguna diperbarui."
#: snikket_web/admin.py:149
msgid "Delete user permanently"
msgstr "Hapus permanen pengguna"
#: snikket_web/admin.py:162
msgid "User deleted"
msgstr "Pengguna dihapus"
#: snikket_web/admin.py:200
msgid "Password reset link not found"
msgstr "Tautan setel ulang kata sandi tidak ditemukan"
#: snikket_web/admin.py:212
msgid "Password reset link deleted"
msgstr "Tautan setel ulang kata sandi dihapus"
#: snikket_web/admin.py:140
#: snikket_web/admin.py:232
msgid "Invite to circle"
msgstr "Undang masuk kelompok"
#: snikket_web/admin.py:146
#: snikket_web/admin.py:238
msgid "At least one circle must be selected"
msgstr "Minimal satu kelompok harus dipilih"
#: snikket_web/admin.py:151
#: snikket_web/admin.py:243
msgid "Valid for"
msgstr "Valid selama"
#: snikket_web/admin.py:153
#: snikket_web/admin.py:245
msgid "One hour"
msgstr "Satu jam"
#: snikket_web/admin.py:154
#: snikket_web/admin.py:246
msgid "Twelve hours"
msgstr "Dua belas jam"
#: snikket_web/admin.py:155
#: snikket_web/admin.py:247
msgid "One day"
msgstr "Satu hari"
#: snikket_web/admin.py:156
#: snikket_web/admin.py:248
msgid "One week"
msgstr "Satu minggu"
#: snikket_web/admin.py:157
#: snikket_web/admin.py:249
msgid "Four weeks"
msgstr "Empat minggu"
#: 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 "Jenis undangan"
#: 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 "Individu"
#: 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 "Grup"
#: snikket_web/admin.py:172
#: snikket_web/admin.py:264
msgid "New invitation link"
msgstr "Tautan undangan baru"
#: snikket_web/admin.py:234
#: snikket_web/admin.py:326
msgid "Revoke"
msgstr "Batalkan"
#: snikket_web/admin.py:258
#: snikket_web/admin.py:350
msgid "Invitation created"
msgstr "Undangan dibuat"
#: snikket_web/admin.py:274
#: snikket_web/admin.py:366
msgid "No such invitation exists"
msgstr "Undangan tidak tersedia"
#: snikket_web/admin.py:289
#: snikket_web/admin.py:381
msgid "Invitation revoked"
msgstr "Undangan dibatalkan"
#: snikket_web/admin.py:306 snikket_web/admin.py:354
#: snikket_web/admin.py:398 snikket_web/admin.py:446
msgid "Name"
msgstr "Nama"
#: 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 "Buat kelompok"
#: snikket_web/admin.py:341
#: snikket_web/admin.py:433
msgid "Circle created"
msgstr "Kelompok dibuat"
#: snikket_web/admin.py:359
#: snikket_web/admin.py:451
msgid "Select user"
msgstr "Pilih pengguna"
#: snikket_web/admin.py:364
#: snikket_web/admin.py:456
msgid "Update circle"
msgstr "Memperbarui kelompok"
#: snikket_web/admin.py:368
#: snikket_web/admin.py:460
msgid "Delete circle permanently"
msgstr "Hapus kelompok secara permanen"
#: snikket_web/admin.py:374
#: snikket_web/admin.py:466
msgid "Add user"
msgstr "Tambah pengguna"
#: snikket_web/admin.py:390
#: snikket_web/admin.py:482
msgid "No such circle exists"
msgstr "Kelompok tersebut tidak ada"
#: snikket_web/admin.py:427
#: snikket_web/admin.py:519
msgid "Circle data updated"
msgstr "Data kelompok diperbarui"
#: snikket_web/admin.py:433
#: snikket_web/admin.py:525
msgid "Circle deleted"
msgstr "Kelompok dihapus"
#: snikket_web/admin.py:444
#: snikket_web/admin.py:536
msgid "User added to circle"
msgstr "Pengguna ditambahkan ke kelompok"
#: snikket_web/admin.py:453
#: snikket_web/admin.py:545
msgid "User removed from circle"
msgstr "Pengguna dihapus dari kelompok"
#: snikket_web/infra.py:41
#: snikket_web/admin.py:616
msgid "Message contents"
msgstr "Isi pesan"
#: snikket_web/admin.py:622
msgid "Only send to online users"
msgstr "Hanya kirim ke pengguna online"
#: snikket_web/admin.py:626
msgid "Post to all users"
msgstr "Kirim ke semua pengguna"
#: snikket_web/admin.py:630
msgid "Send preview to yourself"
msgstr "Kirim pratinjau ke diri sendiri"
#: snikket_web/admin.py:652
msgid "Announcement sent!"
msgstr "Pengumuman terkirim!"
#: snikket_web/infra.py:51
msgid "Main"
msgstr "Utama"
@@ -165,32 +229,24 @@ msgid "Confirm password"
msgstr "Konfirmasi kata sandi"
#: snikket_web/invite.py:118 snikket_web/invite.py:185
#, fuzzy
#| msgid "The passwords must match"
msgid "The passwords must match."
msgstr "Kata sandi harus cocok"
msgstr "Kata sandi harus cocok."
#: snikket_web/invite.py:123
msgid "Create account"
msgstr "Buat akun"
#: snikket_web/invite.py:150
#, fuzzy
#| msgid "That username is already taken"
msgid "That username is already taken."
msgstr "Nama pengguna itu sudah dipakai"
msgstr "Nama pengguna itu sudah dipakai."
#: 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 "Pendaftaran ditolak karena alasan yang tidak diketahui"
msgstr "Pendaftaran ditolak karena alasan yang tidak diketahui."
#: snikket_web/invite.py:158
#, fuzzy
#| msgid "The username is not valid"
msgid "The username is not valid."
msgstr "Nama pengguna tidak valid"
msgstr "Nama pengguna tidak valid."
#: snikket_web/invite.py:190 snikket_web/templates/user_home.html:32
#: snikket_web/templates/user_passwd.html:29
@@ -226,10 +282,8 @@ msgid "Confirm new password"
msgstr "Konfirmasi kata sandi"
#: snikket_web/user.py:41
#, fuzzy
#| msgid "The new passwords must match"
msgid "The new passwords must match."
msgstr "Kata sandi baru harus cocok"
msgstr "Kata sandi baru harus cocok."
#: snikket_web/user.py:48
msgid "Sign out"
@@ -247,11 +301,6 @@ msgstr "Hanya teman"
msgid "Everyone"
msgstr "Semua orang"
#: snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:11 snikket_web/user.py:61
msgid "Display name"
msgstr "Nama tampilan"
#: snikket_web/user.py:65
msgid "Avatar"
msgstr "Gambar profil"
@@ -265,10 +314,8 @@ msgid "Update profile"
msgstr "Perbarui profil"
#: snikket_web/user.py:99
#, fuzzy
#| msgid "Incorrect password"
msgid "Incorrect password."
msgstr "Kata sandi salah"
msgstr "Kata sandi salah."
#: snikket_web/user.py:103
msgid "Password changed"
@@ -279,6 +326,8 @@ 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"
@@ -420,8 +469,9 @@ msgid "Members"
msgstr "Anggota"
#: snikket_web/templates/admin_circles.html:15
#: snikket_web/templates/admin_edit_circle.html:61
#: 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"
@@ -496,12 +546,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:53
msgid "Delete user"
msgstr "Hapus pengguna"
@@ -509,11 +559,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"
@@ -567,7 +612,7 @@ msgstr "Kelompok ini tidak memiliki percakapan grup."
#: snikket_web/templates/admin_edit_circle.html:44
msgid "Return to circle list"
msgstr ""
msgstr "Kembali ke daftar circle"
#: snikket_web/templates/admin_edit_circle.html:48
msgid "Delete circle"
@@ -583,28 +628,37 @@ msgstr ""
msgid "Circle members"
msgstr "Anggota kelompok"
#: snikket_web/templates/admin_edit_circle.html:70
#: snikket_web/templates/admin_edit_circle.html:71
msgid "The user has been deleted from the server."
msgstr "Pengguna telah dihapus dari server"
#: snikket_web/templates/admin_edit_circle.html:71
#: snikket_web/templates/library.j2:108
msgid "deleted"
msgstr "Dihapus"
#: snikket_web/templates/admin_edit_circle.html:77
#, python-format
msgid "Remove user %(username)s from circle"
msgstr "Hapus pengguna %(username)s dari kelompok"
#: snikket_web/templates/admin_edit_circle.html:78
#: snikket_web/templates/admin_edit_circle.html:85
msgid "This circle currently has no members."
msgstr "Kelompok ini sedang tidak memiliki anggota."
#: snikket_web/templates/admin_edit_circle.html:80
#: snikket_web/templates/admin_edit_circle.html:87
msgid "Invite more members"
msgstr "Ajak lebih banyak anggota"
#: snikket_web/templates/admin_edit_circle.html:83
#: snikket_web/templates/admin_edit_circle.html:90
msgid "Add existing user"
msgstr "Tambahkan pengguna yang ada"
#: snikket_web/templates/admin_edit_circle.html:94
#: snikket_web/templates/admin_edit_circle.html:101
msgid "All users added"
msgstr "Semua pengguna ditambahkan"
#: snikket_web/templates/admin_edit_circle.html:95
#: snikket_web/templates/admin_edit_circle.html:102
msgid "All users on this service are already in this circle."
msgstr "Semua pengguna layanan ini sudah ada di kelompok ini."
@@ -658,11 +712,95 @@ msgstr "Pengguna akan ditambahkan ke kontak %(peer_jid)s."
msgid "Created"
msgstr "Dibuat"
#: snikket_web/templates/admin_edit_invite.html:49
#, fuzzy
#| msgid "New invitation link"
#: snikket_web/templates/admin_edit_invite.html:48
msgid "Return to invitation list"
msgstr "Tautan undangan baru"
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:22
msgid "Edit user"
msgstr "Edit pengguna"
#: snikket_web/templates/admin_edit_user.html:26
msgid "The login name cannot be changed."
msgstr "Nama login tidak dapat diganti."
#: 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 ""
"Level akses pengguna menentukan interaksi apa yang diizinkan untuk mereka di "
"layanan Snikket Anda."
#: snikket_web/templates/admin_edit_user.html:40
#, 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:50
msgid "Return to user list"
msgstr "Kembali ke daftar pengguna"
#: snikket_web/templates/admin_edit_user.html:58
msgid "Further actions"
msgstr "Tindakan lanjutan"
#: snikket_web/templates/admin_edit_user.html:60
msgid "Reset password"
msgstr "Setel kata sandi"
#: 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 ""
"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:68
msgid "Debug information"
msgstr "Informasi debug"
#: 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 ""
"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:74
msgid "Show debug information"
msgstr "Tampilkan informasi debug"
#: snikket_web/templates/admin_home.html:4
msgid "Welcome to the admin panel!"
@@ -703,11 +841,28 @@ msgstr "Buat, batalkan, atau salin undangan."
msgid "Manage invitations"
msgstr "Kelola undangan"
#: snikket_web/templates/admin_home.html:36
#: snikket_web/templates/admin_home.html:35
msgid "System health"
msgstr "Kesehatan sistem"
#: snikket_web/templates/admin_home.html:38
msgid "View the server status or send a broadcast message to all users."
msgstr "Lihat status server atau kirim pesan siaran ke semua pengguna."
#: snikket_web/templates/admin_home.html:40
msgid "Send a broadcast message to all users."
msgstr "Kirim pesan siaran ke semua pengguna."
#: snikket_web/templates/admin_home.html:43
#: snikket_web/templates/admin_system.html:4
msgid "Manage system"
msgstr "Kelola sistem"
#: snikket_web/templates/admin_home.html:48
msgid "Go back to your user's web portal page."
msgstr "Kembali ke halaman portal web pengguna."
#: snikket_web/templates/admin_home.html:38
#: snikket_web/templates/admin_home.html:50
msgid "Exit admin panel"
msgstr "Keluar panel administrator"
@@ -760,15 +915,96 @@ 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_system.html:6
msgid "Overall system status"
msgstr "Kesehatan sistem keseluruhan"
#: snikket_web/templates/admin_users.html:28
#: snikket_web/templates/admin_system.html:9
msgid "System load (5 minute average)"
msgstr "Beban sistem (rata-rata 5 menit)"
#: 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 "Tidak diketahui"
#: snikket_web/templates/admin_system.html:17
msgid "Memory use"
msgstr "Penggunaan memori"
#: snikket_web/templates/admin_system.html:20
#, python-format
msgid "Create password reset link for %(user_name)s"
msgstr "Buat tautan setel ulang kata sandi untuk %(user_name)s"
msgid ""
"%(percentage_global)s of %(mem_available)s. Of that, Snikket uses "
"%(percentage_snikket)s."
msgstr ""
"%(percentage_global)s of %(mem_available)s. Dari jumlah itu, Snikket "
"menggunakan %(percentage_snikket)s."
#: snikket_web/templates/admin_system.html:27
msgid "Web portal status"
msgstr "Status portal web"
#: snikket_web/templates/admin_system.html:30
#: snikket_web/templates/admin_system.html:53
msgid "Version"
msgstr "Versi"
#: snikket_web/templates/admin_system.html:31
#: snikket_web/templates/admin_system.html:54
msgid "View all versions"
msgstr "Lihat versi semua"
#: snikket_web/templates/admin_system.html:32
#: snikket_web/templates/admin_system.html:55
msgid "Average CPU use"
msgstr "Penggunaan CPU rata-rata"
#: snikket_web/templates/admin_system.html:40
#: snikket_web/templates/admin_system.html:63
msgid "Current memory use"
msgstr "Penggunaan CPU rata-rata"
#: snikket_web/templates/admin_system.html:50
msgid "Snikket server status"
msgstr "Status server Snikket"
#: snikket_web/templates/admin_system.html:71
msgid "Connected devices"
msgstr "Perangkat terhubung"
#: snikket_web/templates/admin_system.html:82
msgid "Broadcast message"
msgstr "Sebarkan pesan"
#: 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 ""
"Form ini memungkinkan mengirim pesan ke semua pengguna yang saat ini online "
"di server Snikket Anda. Gunakan dengan bijak."
#: snikket_web/templates/admin_users.html:19
msgid "The user is an administrator."
msgstr "Pengguna adalah administrator."
#: 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"
@@ -1075,7 +1311,7 @@ msgstr "Unduh di App Store"
#: snikket_web/templates/invite_view.html:32
msgid "Get it on F-Droid"
msgstr ""
msgstr "Dapatkan di F-Droid"
#: snikket_web/templates/invite_view.html:35
msgid "Send to mobile device"
@@ -1147,17 +1383,19 @@ msgstr ""
#: snikket_web/templates/invite_view.html:93
msgid "Install on iOS"
msgstr ""
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 "
"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 ""
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
@@ -1165,21 +1403,25 @@ 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 ""
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 ""
msgstr "Pertama install Snikket dari F-Droid menggunakan tombol di bawah ini:"
#: snikket_web/templates/library.j2:18
msgid "Copy link"
@@ -1189,10 +1431,6 @@ msgstr "Salin tautan"
msgid "Invalid input"
msgstr "Input tidak valid"
#: snikket_web/templates/library.j2:108
msgid "deleted"
msgstr "Dihapus"
#: snikket_web/templates/library.j2:122
msgid "Can be used multiple times to create accounts on this Snikket service."
msgstr ""
@@ -1314,29 +1552,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-03-22 15:08+0100\n"
"PO-Revision-Date: 2021-02-25 16:02+0000\n"
"POT-Creation-Date: 2021-06-18 16:05+0200\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,138 +17,202 @@ 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:59
msgid "Delete user permanently"
msgstr "Elimina definitivamente l'utente"
#: snikket_web/admin.py:66
msgid "Limited"
msgstr "Limitato"
#: snikket_web/admin.py:72
msgid "User deleted"
msgstr "Utente rimosso"
#: snikket_web/admin.py:71 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_edit_circle.html:59
#: snikket_web/templates/admin_users.html:8
msgid "Login name"
msgstr "Nome utente"
#: snikket_web/admin.py:115
#: snikket_web/admin.py:75 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_edit_circle.html:60
#: snikket_web/templates/admin_users.html:9 snikket_web/user.py:61
msgid "Display name"
msgstr "Nome visualizzato"
#: snikket_web/admin.py:79 snikket_web/templates/admin_edit_user.html:32
msgid "Access Level"
msgstr "Livello di accesso"
#: snikket_web/admin.py:84
msgid "Normal user"
msgstr "Utente normale"
#: snikket_web/admin.py:85
msgid "Administrator"
msgstr "Amministratore"
#: snikket_web/admin.py:90
msgid "Update user"
msgstr "Aggiorna utente"
#: snikket_web/admin.py:94
msgid "Create password reset link"
msgstr "Crea collegamento per reimpostare la password"
#: snikket_web/admin.py:112
msgid "Password reset link created"
msgstr "Creato collegamento per reimpostare la password"
#: snikket_web/admin.py:121
#: snikket_web/admin.py:127
msgid "User information updated."
msgstr "Informazioni utente aggiornate."
#: snikket_web/admin.py:149
msgid "Delete user permanently"
msgstr "Elimina definitivamente l'utente"
#: snikket_web/admin.py:162
msgid "User deleted"
msgstr "Utente rimosso"
#: snikket_web/admin.py:200
msgid "Password reset link not found"
msgstr "Collegamento per reimpostare la password non trovato"
#: snikket_web/admin.py:212
msgid "Password reset link deleted"
msgstr "Eliminato collegamento per reimpostare la password"
#: snikket_web/admin.py:140
#: snikket_web/admin.py:232
msgid "Invite to circle"
msgstr "Invita nella cerchia"
#: snikket_web/admin.py:146
#: snikket_web/admin.py:238
msgid "At least one circle must be selected"
msgstr "Devi selezionare almeno una cerchia"
#: snikket_web/admin.py:151
#: snikket_web/admin.py:243
msgid "Valid for"
msgstr "Valido per"
#: snikket_web/admin.py:153
#: snikket_web/admin.py:245
msgid "One hour"
msgstr "Un'ora"
#: snikket_web/admin.py:154
#: snikket_web/admin.py:246
msgid "Twelve hours"
msgstr "Dodici ore"
#: snikket_web/admin.py:155
#: snikket_web/admin.py:247
msgid "One day"
msgstr "Un giorno"
#: snikket_web/admin.py:156
#: snikket_web/admin.py:248
msgid "One week"
msgstr "Una settimana"
#: snikket_web/admin.py:157
#: snikket_web/admin.py:249
msgid "Four weeks"
msgstr "Quattro settimane"
#: 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 "Tipo di invito"
#: 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 "Individuale"
#: 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 "Gruppo"
#: snikket_web/admin.py:172
#: snikket_web/admin.py:264
msgid "New invitation link"
msgstr "Nuovo collegamento di invito"
#: snikket_web/admin.py:234
#: snikket_web/admin.py:326
msgid "Revoke"
msgstr "Revoca"
#: snikket_web/admin.py:258
#: snikket_web/admin.py:350
msgid "Invitation created"
msgstr "Invito creato"
#: snikket_web/admin.py:274
#: snikket_web/admin.py:366
msgid "No such invitation exists"
msgstr "Questo invito non esiste"
#: snikket_web/admin.py:289
#: snikket_web/admin.py:381
msgid "Invitation revoked"
msgstr "Invito revocato"
#: snikket_web/admin.py:306 snikket_web/admin.py:354
#: snikket_web/admin.py:398 snikket_web/admin.py:446
msgid "Name"
msgstr "Nome"
#: 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 "Crea cerchia"
#: snikket_web/admin.py:341
#: snikket_web/admin.py:433
msgid "Circle created"
msgstr "Cerchia creata"
#: snikket_web/admin.py:359
#: snikket_web/admin.py:451
msgid "Select user"
msgstr "Seleziona utente"
#: snikket_web/admin.py:364
#: snikket_web/admin.py:456
msgid "Update circle"
msgstr "Modifica cerchia"
#: snikket_web/admin.py:368
#: snikket_web/admin.py:460
msgid "Delete circle permanently"
msgstr "Elimina cerchia definitivamente"
#: snikket_web/admin.py:374
#: snikket_web/admin.py:466
msgid "Add user"
msgstr "Aggiungi utente"
#: snikket_web/admin.py:390
#: snikket_web/admin.py:482
msgid "No such circle exists"
msgstr "Questa cerchia non esiste"
#: snikket_web/admin.py:427
#: snikket_web/admin.py:519
msgid "Circle data updated"
msgstr "Dati della cerchia aggiornati"
#: snikket_web/admin.py:433
#: snikket_web/admin.py:525
msgid "Circle deleted"
msgstr "Cerchia eliminata"
#: snikket_web/admin.py:444
#: snikket_web/admin.py:536
msgid "User added to circle"
msgstr "Utente aggiunto alla cerchia"
#: snikket_web/admin.py:453
#: snikket_web/admin.py:545
msgid "User removed from circle"
msgstr "Utente rimosso dalla cerchia"
#: 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 "Principale"
@@ -165,32 +229,24 @@ msgid "Confirm password"
msgstr "Conferma password"
#: snikket_web/invite.py:118 snikket_web/invite.py:185
#, fuzzy
#| msgid "The passwords must match"
msgid "The passwords must match."
msgstr "Le password devono essere identiche"
msgstr "Le password devono essere identiche."
#: snikket_web/invite.py:123
msgid "Create account"
msgstr "Crea utenza"
#: snikket_web/invite.py:150
#, fuzzy
#| msgid "That username is already taken"
msgid "That username is already taken."
msgstr "Nome utente già in uso"
msgstr "Nome utente già in uso."
#: 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 "Registrazione rifiutata per motivi sconosciuti"
msgstr "Registrazione rifiutata per motivi sconosciuti."
#: snikket_web/invite.py:158
#, fuzzy
#| msgid "The username is not valid"
msgid "The username is not valid."
msgstr "Nome utente non valido"
msgstr "Nome utente non valido."
#: snikket_web/invite.py:190 snikket_web/templates/user_home.html:32
#: snikket_web/templates/user_passwd.html:29
@@ -226,10 +282,8 @@ msgid "Confirm new password"
msgstr "Conferma nuova password"
#: snikket_web/user.py:41
#, fuzzy
#| msgid "The new passwords must match"
msgid "The new passwords must match."
msgstr "Le nuove password devono essere identiche"
msgstr "Le nuove password devono essere identiche."
#: snikket_web/user.py:48
msgid "Sign out"
@@ -247,11 +301,6 @@ msgstr "Solo amici"
msgid "Everyone"
msgstr "Chiunque"
#: snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:11 snikket_web/user.py:61
msgid "Display name"
msgstr "Nome visualizzato"
#: snikket_web/user.py:65
msgid "Avatar"
msgstr "Avatar"
@@ -265,10 +314,8 @@ msgid "Update profile"
msgstr "Modifica profilo"
#: snikket_web/user.py:99
#, fuzzy
#| msgid "Incorrect password"
msgid "Incorrect password."
msgstr "Password errata"
msgstr "Password errata."
#: snikket_web/user.py:103
msgid "Password changed"
@@ -279,6 +326,8 @@ 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"
@@ -419,8 +468,9 @@ msgid "Members"
msgstr "Membri"
#: snikket_web/templates/admin_circles.html:15
#: snikket_web/templates/admin_edit_circle.html:61
#: 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"
@@ -495,12 +545,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:53
msgid "Delete user"
msgstr "Elimina utente"
@@ -508,11 +558,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"
@@ -567,7 +612,7 @@ msgstr "Questa cerchia non è collegata ad una chat di gruppo."
#: snikket_web/templates/admin_edit_circle.html:44
msgid "Return to circle list"
msgstr ""
msgstr "Ritorna alle lista delle cerchie"
#: snikket_web/templates/admin_edit_circle.html:48
msgid "Delete circle"
@@ -581,28 +626,37 @@ msgstr "Eliminare una cerchia non elimina nessuno dei suoi utenti."
msgid "Circle members"
msgstr "Membri della cerchia"
#: snikket_web/templates/admin_edit_circle.html:70
#: snikket_web/templates/admin_edit_circle.html:71
msgid "The user has been deleted from the server."
msgstr ""
#: snikket_web/templates/admin_edit_circle.html:71
#: snikket_web/templates/library.j2:108
msgid "deleted"
msgstr "rimosso"
#: snikket_web/templates/admin_edit_circle.html:77
#, python-format
msgid "Remove user %(username)s from circle"
msgstr "Rimuovi l'utente %(username)s dalla cerchia"
#: snikket_web/templates/admin_edit_circle.html:78
#: snikket_web/templates/admin_edit_circle.html:85
msgid "This circle currently has no members."
msgstr "Al momento questa cerchia non contiene membri."
#: snikket_web/templates/admin_edit_circle.html:80
#: snikket_web/templates/admin_edit_circle.html:87
msgid "Invite more members"
msgstr "Invita altri membri"
#: snikket_web/templates/admin_edit_circle.html:83
#: snikket_web/templates/admin_edit_circle.html:90
msgid "Add existing user"
msgstr "Aggiungi un utente esistente"
#: snikket_web/templates/admin_edit_circle.html:94
#: snikket_web/templates/admin_edit_circle.html:101
msgid "All users added"
msgstr "Tutti gli utenti sono stati aggiunti"
#: snikket_web/templates/admin_edit_circle.html:95
#: snikket_web/templates/admin_edit_circle.html:102
msgid "All users on this service are already in this circle."
msgstr "Tutti gli utenti di questo servizio sono già in questa cerchia."
@@ -655,11 +709,97 @@ msgstr "L'utente verrà aggiunto come contatto di %(peer_jid)s."
msgid "Created"
msgstr "Creato"
#: snikket_web/templates/admin_edit_invite.html:49
#, fuzzy
#| msgid "New invitation link"
#: snikket_web/templates/admin_edit_invite.html:48
msgid "Return to invitation list"
msgstr "Nuovo collegamento di invito"
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:22
msgid "Edit user"
msgstr "Modifica utente"
#: snikket_web/templates/admin_edit_user.html:26
msgid "The login name cannot be changed."
msgstr "Il nome di login non può essere cambiato."
#: 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 ""
"Il livello di accesso di un utente determina quali interazioni gli sono "
"consentite sul tuo servizio Snikket."
#: snikket_web/templates/admin_edit_user.html:40
#, 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:50
msgid "Return to user list"
msgstr "Ritorna alla lista utenti"
#: snikket_web/templates/admin_edit_user.html:58
msgid "Further actions"
msgstr "Azioni ulteriori"
#: snikket_web/templates/admin_edit_user.html:60
msgid "Reset password"
msgstr "Reimposta la password"
#: 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 ""
"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:68
msgid "Debug information"
msgstr "Informazioni diagnostiche"
#: 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 ""
"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:74
msgid "Show debug information"
msgstr "Mostra informazioni diagnostiche"
#: snikket_web/templates/admin_home.html:4
msgid "Welcome to the admin panel!"
@@ -700,11 +840,30 @@ msgstr "Crea, revoca o copia inviti."
msgid "Manage invitations"
msgstr "Gestisci inviti"
#: snikket_web/templates/admin_home.html:36
#: 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
#, fuzzy
#| msgid "Manage users"
msgid "Manage system"
msgstr "Gestisci utenti"
#: snikket_web/templates/admin_home.html:48
msgid "Go back to your user's web portal page."
msgstr "Torna al tuo portale utente."
#: snikket_web/templates/admin_home.html:38
#: snikket_web/templates/admin_home.html:50
msgid "Exit admin panel"
msgstr "Esci dal pannello amministrativo"
@@ -757,15 +916,94 @@ 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_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"
msgstr "Crea collegamento per reimpostare la password di %(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
#, fuzzy
#| msgid "Snikket Web Portal"
msgid "Snikket server status"
msgstr "Portale Web di Snikket"
#: 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 "L'utente è un amministratore."
#: 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"
@@ -1076,7 +1314,7 @@ msgstr "Scarica dall'App Store"
#: snikket_web/templates/invite_view.html:32
msgid "Get it on F-Droid"
msgstr ""
msgstr "Scaricalo da F-Droid"
#: snikket_web/templates/invite_view.html:35
msgid "Send to mobile device"
@@ -1149,17 +1387,21 @@ msgstr ""
#: snikket_web/templates/invite_view.html:93
msgid "Install on iOS"
msgstr ""
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 "
"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:"
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
@@ -1167,21 +1409,26 @@ 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 ""
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"
@@ -1191,10 +1438,6 @@ msgstr "Copia collegamento"
msgid "Invalid input"
msgstr "Dati non validi"
#: snikket_web/templates/library.j2:108
msgid "deleted"
msgstr "rimosso"
#: snikket_web/templates/library.j2:122
msgid "Can be used multiple times to create accounts on this Snikket service."
msgstr ""
@@ -1319,6 +1562,9 @@ 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"

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-03-22 15:08+0100\n"
"POT-Creation-Date: 2021-06-18 16:05+0200\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,157 +20,231 @@ msgstr ""
"X-Generator: Weblate 4.4.2\n"
"Generated-By: Babel 2.9.0\n"
#: snikket_web/admin.py:59
msgid "Delete user permanently"
msgstr "ユーザーを削除する"
#: snikket_web/admin.py:72
msgid "User deleted"
#: snikket_web/admin.py:66
msgid "Limited"
msgstr ""
#: snikket_web/admin.py:115
#: snikket_web/admin.py:71 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_edit_circle.html:59
#: snikket_web/templates/admin_users.html:8
msgid "Login name"
msgstr "ロゲイン名"
#: snikket_web/admin.py:75 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_edit_circle.html:60
#: snikket_web/templates/admin_users.html:9 snikket_web/user.py: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
#, fuzzy
#| msgid "Admin area"
msgid "Administrator"
msgstr "管理"
#: snikket_web/admin.py:90
#, fuzzy
#| msgid "Update circle"
msgid "Update user"
msgstr "サークルを更新"
#: snikket_web/admin.py:94
#, fuzzy
#| msgid "Password reset link for %(user_name)s"
msgid "Create password reset link"
msgstr "%(user_name)s のパスワード再設定リンク"
#: snikket_web/admin.py:112
#, fuzzy
#| msgid "Password reset link for %(user_name)s"
msgid "Password reset link created"
msgstr "%(user_name)s のパスワード再設定リンク"
#: snikket_web/admin.py:121
#: snikket_web/admin.py:127
#, fuzzy
#| msgid "User information"
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
#, fuzzy
#| msgid "Password reset link for %(user_name)s"
msgid "Password reset link not found"
msgstr "%(user_name)s のパスワード再設定リンク"
#: snikket_web/admin.py:212
#, fuzzy
#| msgid "Password reset link for %(user_name)s"
msgid "Password reset link deleted"
msgstr "%(user_name)s のパスワード再設定リンク"
#: 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 "12時間"
#: 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 "4週間"
#: 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
#, fuzzy
#| msgid "Invitation type"
msgid "Invitation created"
msgstr "紹介の種類"
#: snikket_web/admin.py:274
#: snikket_web/admin.py:366
#, fuzzy
#| msgid "New invitation link"
msgid "No such invitation exists"
msgstr "新しい紹介状"
#: snikket_web/admin.py:289
#: snikket_web/admin.py:381
#, fuzzy
#| msgid "Invitation type"
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
#, fuzzy
#| msgid "Circle name"
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
#, fuzzy
#| msgid "No circles"
msgid "No such circle exists"
msgstr "なし"
#: snikket_web/admin.py:427
#: snikket_web/admin.py:519
#, fuzzy
#| msgid "Circle name"
msgid "Circle data updated"
msgstr "サークル名"
#: snikket_web/admin.py:433
#: snikket_web/admin.py:525
#, fuzzy
#| msgid "Circle members"
msgid "Circle deleted"
msgstr "サークル会員"
#: snikket_web/admin.py:444
#: snikket_web/admin.py:536
#, fuzzy
#| msgid "Invite to circle"
msgid "User added to circle"
msgstr "サークルに紹介する"
#: snikket_web/admin.py:453
#: snikket_web/admin.py:545
#, fuzzy
#| msgid "Remove user %(username)s from circle"
msgid "User removed from circle"
msgstr "%(username)s をサークルから外す"
#: 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 "第一サークル"
@@ -269,11 +343,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 "アバター"
@@ -426,8 +495,9 @@ msgid "Members"
msgstr "サークル員"
#: snikket_web/templates/admin_circles.html:15
#: snikket_web/templates/admin_edit_circle.html:61
#: snikket_web/templates/admin_invites.html:24
#: snikket_web/templates/admin_users.html:12
#: snikket_web/templates/admin_users.html:10
msgid "Actions"
msgstr "操作"
@@ -498,12 +568,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:53
msgid "Delete user"
msgstr "ユーザー削除"
@@ -511,11 +581,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 "警告"
@@ -581,28 +646,37 @@ msgstr "サークルを削除しても会員は削除されまんせん。"
msgid "Circle members"
msgstr "サークル会員"
#: snikket_web/templates/admin_edit_circle.html:70
#: snikket_web/templates/admin_edit_circle.html:71
msgid "The user has been deleted from the server."
msgstr ""
#: snikket_web/templates/admin_edit_circle.html:71
#: snikket_web/templates/library.j2:108
msgid "deleted"
msgstr ""
#: snikket_web/templates/admin_edit_circle.html:77
#, python-format
msgid "Remove user %(username)s from circle"
msgstr "%(username)s をサークルから外す"
#: snikket_web/templates/admin_edit_circle.html:78
#: snikket_web/templates/admin_edit_circle.html:85
msgid "This circle currently has no members."
msgstr ""
#: snikket_web/templates/admin_edit_circle.html:80
#: snikket_web/templates/admin_edit_circle.html:87
msgid "Invite more members"
msgstr "会員を紹介する"
#: snikket_web/templates/admin_edit_circle.html:83
#: snikket_web/templates/admin_edit_circle.html:90
msgid "Add existing user"
msgstr "ユーザー追加"
#: snikket_web/templates/admin_edit_circle.html:94
#: snikket_web/templates/admin_edit_circle.html:101
msgid "All users added"
msgstr ""
#: snikket_web/templates/admin_edit_circle.html:95
#: snikket_web/templates/admin_edit_circle.html:102
msgid "All users on this service are already in this circle."
msgstr ""
@@ -652,12 +726,96 @@ msgstr ""
msgid "Created"
msgstr "作成時"
#: snikket_web/templates/admin_edit_invite.html:49
#: 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:22
#, fuzzy
#| msgid "Add user"
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
#, fuzzy
#| msgid "New invitation link"
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
#, fuzzy
#| msgid "Change your password"
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
#, fuzzy
#| msgid "User information"
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
#, fuzzy
#| msgid "User information"
msgid "Show debug information"
msgstr "ユーザー詳細"
#: snikket_web/templates/admin_home.html:4
#, fuzzy
#| msgid "Back to the main page"
@@ -707,13 +865,32 @@ msgstr "紹介状を作成、削除、表示。"
msgid "Manage invitations"
msgstr "紹介状管理"
#: snikket_web/templates/admin_home.html:36
#: 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
#, fuzzy
#| msgid "Manage users"
msgid "Manage system"
msgstr "ユーザー管理"
#: snikket_web/templates/admin_home.html:48
#, fuzzy
#| msgid "Go back to your users web portal page."
msgid "Go back to your user's web portal page."
msgstr "ホームページに戻る。"
#: snikket_web/templates/admin_home.html:38
#: snikket_web/templates/admin_home.html:50
msgid "Exit admin panel"
msgstr ""
@@ -764,14 +941,97 @@ 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
#, fuzzy
#| msgid "Snikket Web Portal"
msgid "Snikket server status"
msgstr "Snikket ホームページ"
#: 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
#, 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: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
@@ -1124,12 +1384,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
@@ -1162,10 +1422,6 @@ msgstr "リンクをコピーする"
msgid "Invalid input"
msgstr "入力不正"
#: snikket_web/templates/library.j2:108
msgid "deleted"
msgstr ""
#: snikket_web/templates/library.j2:122
msgid "Can be used multiple times to create accounts on this Snikket service."
msgstr ""
@@ -1289,12 +1545,6 @@ msgid ""
"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,186 +8,208 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2021-03-25 17:32+0100\n"
"POT-Creation-Date: 2021-06-18 16:05+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
#: snikket_web/admin.py:66
msgid "Limited"
msgstr ""
#: snikket_web/admin.py:64 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/admin.py:71 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_edit_circle.html:59
#: snikket_web/templates/admin_users.html:8
msgid "Login name"
msgstr ""
#: snikket_web/admin.py:68 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/admin.py:75 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_edit_circle.html:60
#: snikket_web/templates/admin_users.html:9 snikket_web/user.py:61
msgid "Display name"
msgstr ""
#: snikket_web/admin.py:72 snikket_web/templates/admin_edit_user.html:33
#: snikket_web/admin.py:79 snikket_web/templates/admin_edit_user.html:32
msgid "Access Level"
msgstr ""
#: snikket_web/admin.py:77
#: snikket_web/admin.py:84
msgid "Normal user"
msgstr ""
#: snikket_web/admin.py:78
#: snikket_web/admin.py:85
msgid "Administrator"
msgstr ""
#: snikket_web/admin.py:83
#: snikket_web/admin.py:90
msgid "Update user"
msgstr ""
#: snikket_web/admin.py:87
#: snikket_web/admin.py:94
msgid "Create password reset link"
msgstr ""
#: snikket_web/admin.py:105
#: snikket_web/admin.py:112
msgid "Password reset link created"
msgstr ""
#: snikket_web/admin.py:120
#: snikket_web/admin.py:127
msgid "User information updated."
msgstr ""
#: snikket_web/admin.py:142
#: snikket_web/admin.py:149
msgid "Delete user permanently"
msgstr ""
#: snikket_web/admin.py:155
#: snikket_web/admin.py:162
msgid "User deleted"
msgstr ""
#: snikket_web/admin.py:193
#: snikket_web/admin.py:200
msgid "Password reset link not found"
msgstr ""
#: snikket_web/admin.py:205
#: snikket_web/admin.py:212
msgid "Password reset link deleted"
msgstr ""
#: snikket_web/admin.py:225
#: snikket_web/admin.py:232
msgid "Invite to circle"
msgstr ""
#: snikket_web/admin.py:231
#: snikket_web/admin.py:238
msgid "At least one circle must be selected"
msgstr ""
#: snikket_web/admin.py:236
#: snikket_web/admin.py:243
msgid "Valid for"
msgstr ""
#: snikket_web/admin.py:238
#: snikket_web/admin.py:245
msgid "One hour"
msgstr ""
#: snikket_web/admin.py:239
#: snikket_web/admin.py:246
msgid "Twelve hours"
msgstr ""
#: snikket_web/admin.py:240
#: snikket_web/admin.py:247
msgid "One day"
msgstr ""
#: snikket_web/admin.py:241
#: snikket_web/admin.py:248
msgid "One week"
msgstr ""
#: snikket_web/admin.py:242
#: snikket_web/admin.py:249
msgid "Four weeks"
msgstr ""
#: snikket_web/admin.py:248 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:250 snikket_web/templates/library.j2:116
#: snikket_web/admin.py:257 snikket_web/templates/library.j2:116
msgid "Individual"
msgstr ""
#: snikket_web/admin.py:251 snikket_web/templates/library.j2:114
#: snikket_web/admin.py:258 snikket_web/templates/library.j2:114
msgid "Group"
msgstr ""
#: snikket_web/admin.py:257
#: snikket_web/admin.py:264
msgid "New invitation link"
msgstr ""
#: snikket_web/admin.py:319
#: snikket_web/admin.py:326
msgid "Revoke"
msgstr ""
#: snikket_web/admin.py:343
#: snikket_web/admin.py:350
msgid "Invitation created"
msgstr ""
#: snikket_web/admin.py:359
#: snikket_web/admin.py:366
msgid "No such invitation exists"
msgstr ""
#: snikket_web/admin.py:374
#: snikket_web/admin.py:381
msgid "Invitation revoked"
msgstr ""
#: snikket_web/admin.py:391 snikket_web/admin.py:439
#: snikket_web/admin.py:398 snikket_web/admin.py:446
msgid "Name"
msgstr ""
#: snikket_web/admin.py:396 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:426
#: snikket_web/admin.py:433
msgid "Circle created"
msgstr ""
#: snikket_web/admin.py:444
#: snikket_web/admin.py:451
msgid "Select user"
msgstr ""
#: snikket_web/admin.py:449
#: snikket_web/admin.py:456
msgid "Update circle"
msgstr ""
#: snikket_web/admin.py:453
#: snikket_web/admin.py:460
msgid "Delete circle permanently"
msgstr ""
#: snikket_web/admin.py:459
#: snikket_web/admin.py:466
msgid "Add user"
msgstr ""
#: snikket_web/admin.py:475
#: snikket_web/admin.py:482
msgid "No such circle exists"
msgstr ""
#: snikket_web/admin.py:512
#: snikket_web/admin.py:519
msgid "Circle data updated"
msgstr ""
#: snikket_web/admin.py:518
#: snikket_web/admin.py:525
msgid "Circle deleted"
msgstr ""
#: snikket_web/admin.py:529
#: snikket_web/admin.py:536
msgid "User added to circle"
msgstr ""
#: snikket_web/admin.py:538
#: 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 ""
@@ -420,6 +442,7 @@ msgid "Members"
msgstr ""
#: snikket_web/templates/admin_circles.html:15
#: snikket_web/templates/admin_edit_circle.html:61
#: snikket_web/templates/admin_invites.html:24
#: snikket_web/templates/admin_users.html:10
msgid "Actions"
@@ -497,7 +520,7 @@ msgid "Delete user %(user_name)s"
msgstr ""
#: snikket_web/templates/admin_delete_user.html:6
#: snikket_web/templates/admin_edit_user.html:54
#: snikket_web/templates/admin_edit_user.html:53
msgid "Delete user"
msgstr ""
@@ -568,28 +591,37 @@ msgstr ""
msgid "Circle members"
msgstr ""
#: snikket_web/templates/admin_edit_circle.html:70
#: snikket_web/templates/admin_edit_circle.html:71
msgid "The user has been deleted from the server."
msgstr ""
#: snikket_web/templates/admin_edit_circle.html:71
#: snikket_web/templates/library.j2:108
msgid "deleted"
msgstr ""
#: snikket_web/templates/admin_edit_circle.html:77
#, python-format
msgid "Remove user %(username)s from circle"
msgstr ""
#: snikket_web/templates/admin_edit_circle.html:78
#: snikket_web/templates/admin_edit_circle.html:85
msgid "This circle currently has no members."
msgstr ""
#: snikket_web/templates/admin_edit_circle.html:80
#: snikket_web/templates/admin_edit_circle.html:87
msgid "Invite more members"
msgstr ""
#: snikket_web/templates/admin_edit_circle.html:83
#: snikket_web/templates/admin_edit_circle.html:90
msgid "Add existing user"
msgstr ""
#: snikket_web/templates/admin_edit_circle.html:94
#: snikket_web/templates/admin_edit_circle.html:101
msgid "All users added"
msgstr ""
#: snikket_web/templates/admin_edit_circle.html:95
#: snikket_web/templates/admin_edit_circle.html:102
msgid "All users on this service are already in this circle."
msgstr ""
@@ -664,56 +696,56 @@ msgstr ""
msgid "Edit user %(user_name)s"
msgstr ""
#: snikket_web/templates/admin_edit_user.html:23
#: snikket_web/templates/admin_edit_user.html:22
msgid "Edit user"
msgstr ""
#: snikket_web/templates/admin_edit_user.html:27
#: snikket_web/templates/admin_edit_user.html:26
msgid "The login name cannot be changed."
msgstr ""
#: snikket_web/templates/admin_edit_user.html:34
#: 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:41
#: 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:51
#: snikket_web/templates/admin_edit_user.html:50
msgid "Return to user list"
msgstr ""
#: snikket_web/templates/admin_edit_user.html:59
#: snikket_web/templates/admin_edit_user.html:58
msgid "Further actions"
msgstr ""
#: snikket_web/templates/admin_edit_user.html:61
#: snikket_web/templates/admin_edit_user.html:60
msgid "Reset password"
msgstr ""
#: snikket_web/templates/admin_edit_user.html:64
#: 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:69
#: snikket_web/templates/admin_edit_user.html:68
msgid "Debug information"
msgstr ""
#: snikket_web/templates/admin_edit_user.html:71
#: 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:75
#: snikket_web/templates/admin_edit_user.html:74
msgid "Show debug information"
msgstr ""
@@ -756,11 +788,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 ""
@@ -811,6 +860,77 @@ msgstr ""
msgid "Destroy link"
msgstr ""
#: snikket_web/templates/admin_system.html:6
msgid "Overall system status"
msgstr ""
#: 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 ""
"%(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 ""
@@ -1205,10 +1325,6 @@ msgstr ""
msgid "Invalid input"
msgstr ""
#: snikket_web/templates/library.j2:108
msgid "deleted"
msgstr ""
#: snikket_web/templates/library.j2:122
msgid "Can be used multiple times to create accounts on this Snikket service."
msgstr ""

Binary file not shown.

View File

@@ -7,149 +7,213 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2021-03-22 15:08+0100\n"
"PO-Revision-Date: 2021-02-25 16:02+0000\n"
"POT-Creation-Date: 2021-06-18 16:05+0200\n"
"PO-Revision-Date: 2021-09-03 15:00+0000\n"
"Last-Translator: misiek <migelazur@mailbox.org>\n"
"Language-Team: Polish <https://i18n.sotecware.net/projects/snikket/web-"
"portal/pl/>\n"
"Language-Team: Polish <http://i18n.sotecware.net/projects/snikket/web-portal/"
"pl/>\n"
"Language: pl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"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.7.2\n"
"Generated-By: Babel 2.9.0\n"
#: snikket_web/admin.py:59
msgid "Delete user permanently"
msgstr "Usuń użytkownika bezpowrotnie"
#: snikket_web/admin.py:66
msgid "Limited"
msgstr "Ograniczony"
#: snikket_web/admin.py:72
msgid "User deleted"
msgstr "Użytkownik został usunięty"
#: snikket_web/admin.py:71 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_edit_circle.html:59
#: snikket_web/templates/admin_users.html:8
msgid "Login name"
msgstr "Login"
#: snikket_web/admin.py:115
#: snikket_web/admin.py:75 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_edit_circle.html:60
#: snikket_web/templates/admin_users.html:9 snikket_web/user.py:61
msgid "Display name"
msgstr "Nazwa wyświetlana"
#: snikket_web/admin.py:79 snikket_web/templates/admin_edit_user.html:32
msgid "Access Level"
msgstr "Poziom dostępu"
#: snikket_web/admin.py:84
msgid "Normal user"
msgstr "Zwykły użytkownik"
#: snikket_web/admin.py:85
msgid "Administrator"
msgstr "Administrator"
#: snikket_web/admin.py:90
msgid "Update user"
msgstr "Zapisz ustawienia użytkownika"
#: snikket_web/admin.py:94
msgid "Create password reset link"
msgstr "Stwórz link do zresetowania hasła"
#: snikket_web/admin.py:112
msgid "Password reset link created"
msgstr "Utworzono link resetowania hasła"
#: snikket_web/admin.py:121
#: snikket_web/admin.py:127
msgid "User information updated."
msgstr "Zaktualizowano informacje o użytkowniku."
#: snikket_web/admin.py:149
msgid "Delete user permanently"
msgstr "Usuń użytkownika bezpowrotnie"
#: snikket_web/admin.py:162
msgid "User deleted"
msgstr "Użytkownik został usunięty"
#: snikket_web/admin.py:200
msgid "Password reset link not found"
msgstr "Nie znaleziono linku do zresetowania hasła"
#: snikket_web/admin.py:212
msgid "Password reset link deleted"
msgstr "Usunięto link resetowania hasła"
#: snikket_web/admin.py:140
#: snikket_web/admin.py:232
msgid "Invite to circle"
msgstr "Zaproś do kręgu"
#: snikket_web/admin.py:146
#: snikket_web/admin.py:238
msgid "At least one circle must be selected"
msgstr "Należy wybrać przynajmniej jeden krąg"
#: snikket_web/admin.py:151
#: snikket_web/admin.py:243
msgid "Valid for"
msgstr "Ważne przez"
#: snikket_web/admin.py:153
#: snikket_web/admin.py:245
msgid "One hour"
msgstr "Godzinę"
#: snikket_web/admin.py:154
#: snikket_web/admin.py:246
msgid "Twelve hours"
msgstr "Dwanaście godzin"
#: snikket_web/admin.py:155
#: snikket_web/admin.py:247
msgid "One day"
msgstr "Dzień"
#: snikket_web/admin.py:156
#: snikket_web/admin.py:248
msgid "One week"
msgstr "Tydzień"
#: snikket_web/admin.py:157
#: snikket_web/admin.py:249
msgid "Four weeks"
msgstr "Cztery tygodnie"
#: 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 "Typ zaproszenia"
#: 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 "Indywidualne"
#: 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 "Grupowe"
#: snikket_web/admin.py:172
#: snikket_web/admin.py:264
msgid "New invitation link"
msgstr "Nowy link z zaproszeniem"
#: snikket_web/admin.py:234
#: snikket_web/admin.py:326
msgid "Revoke"
msgstr "Unieważnij"
#: snikket_web/admin.py:258
#: snikket_web/admin.py:350
msgid "Invitation created"
msgstr "Utworzono zaproszenie"
#: snikket_web/admin.py:274
#: snikket_web/admin.py:366
msgid "No such invitation exists"
msgstr "Takie zaproszenie nie istnieje"
#: snikket_web/admin.py:289
#: snikket_web/admin.py:381
msgid "Invitation revoked"
msgstr "Unieważniono zaproszenie"
#: snikket_web/admin.py:306 snikket_web/admin.py:354
#: snikket_web/admin.py:398 snikket_web/admin.py:446
msgid "Name"
msgstr "Nazwa"
#: 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 "Utwórz krąg"
#: snikket_web/admin.py:341
#: snikket_web/admin.py:433
msgid "Circle created"
msgstr "Utworzono krąg"
#: snikket_web/admin.py:359
#: snikket_web/admin.py:451
msgid "Select user"
msgstr "Wybierz użytkownika"
#: snikket_web/admin.py:364
#: snikket_web/admin.py:456
msgid "Update circle"
msgstr "Zaktualizuj ustawienia kręgu"
#: snikket_web/admin.py:368
#: snikket_web/admin.py:460
msgid "Delete circle permanently"
msgstr "Usuń krąg bezpowrotnie"
#: snikket_web/admin.py:374
#: snikket_web/admin.py:466
msgid "Add user"
msgstr "Dodaj użytkownika"
#: snikket_web/admin.py:390
#: snikket_web/admin.py:482
msgid "No such circle exists"
msgstr "Taki krąg nie istnieje"
#: snikket_web/admin.py:427
#: snikket_web/admin.py:519
msgid "Circle data updated"
msgstr "Zaktualizowano dane kręgu"
#: snikket_web/admin.py:433
#: snikket_web/admin.py:525
msgid "Circle deleted"
msgstr "Krąg został usunięty"
#: snikket_web/admin.py:444
#: snikket_web/admin.py:536
msgid "User added to circle"
msgstr "Dodano użytkownika do kręgu"
#: snikket_web/admin.py:453
#: snikket_web/admin.py:545
msgid "User removed from circle"
msgstr "Usunięto użytkownika z kręgu"
#: snikket_web/infra.py:41
#: snikket_web/admin.py:616
msgid "Message contents"
msgstr "Treść wiadomości"
#: snikket_web/admin.py:622
msgid "Only send to online users"
msgstr "Wyślij jedynie do użytkowników online"
#: snikket_web/admin.py:626
msgid "Post to all users"
msgstr "Wyślij do wszystkich użytkowników"
#: snikket_web/admin.py:630
msgid "Send preview to yourself"
msgstr "Prześlij do siebie podgląd wiadomości"
#: snikket_web/admin.py:652
msgid "Announcement sent!"
msgstr "Komunikat wysłany!"
#: snikket_web/infra.py:51
msgid "Main"
msgstr "Główny"
@@ -166,32 +230,24 @@ msgid "Confirm password"
msgstr "Potwierdź hasło"
#: snikket_web/invite.py:118 snikket_web/invite.py:185
#, fuzzy
#| msgid "The passwords must match"
msgid "The passwords must match."
msgstr "Hasła muszą się zgadzać"
msgstr "Hasła muszą się zgadzać."
#: snikket_web/invite.py:123
msgid "Create account"
msgstr "Utwórz konto"
#: snikket_web/invite.py:150
#, fuzzy
#| msgid "That username is already taken"
msgid "That username is already taken."
msgstr "Ta nazwa użytkownika jest już zajęta"
msgstr "Ta nazwa użytkownika jest już zajęta."
#: 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 "Z nieznanych przyczyn rejestracja została odrzucona"
msgstr "Z nieznanych przyczyn rejestracja została odrzucona."
#: snikket_web/invite.py:158
#, fuzzy
#| msgid "The username is not valid"
msgid "The username is not valid."
msgstr "Ta nazwa użytkownika jest nieprawidłowa"
msgstr "Ta nazwa użytkownika jest nieprawidłowa."
#: snikket_web/invite.py:190 snikket_web/templates/user_home.html:32
#: snikket_web/templates/user_passwd.html:29
@@ -227,10 +283,8 @@ msgid "Confirm new password"
msgstr "Potwierdź nowe hasło"
#: snikket_web/user.py:41
#, fuzzy
#| msgid "The new passwords must match"
msgid "The new passwords must match."
msgstr "Nowe hasła muszą się zgadzać"
msgstr "Nowe hasła muszą się zgadzać."
#: snikket_web/user.py:48
msgid "Sign out"
@@ -248,11 +302,6 @@ msgstr "Tylko znajomi"
msgid "Everyone"
msgstr "Wszyscy"
#: snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:11 snikket_web/user.py:61
msgid "Display name"
msgstr "Nazwa wyświetlana"
#: snikket_web/user.py:65
msgid "Avatar"
msgstr "Awatar"
@@ -266,10 +315,8 @@ msgid "Update profile"
msgstr "Zaktualizuj profil"
#: snikket_web/user.py:99
#, fuzzy
#| msgid "Incorrect password"
msgid "Incorrect password."
msgstr "Nieprawidłowe hasło"
msgstr "Nieprawidłowe hasło."
#: snikket_web/user.py:103
msgid "Password changed"
@@ -280,6 +327,8 @@ 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"
@@ -322,7 +371,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"
@@ -420,8 +469,9 @@ msgid "Members"
msgstr "Członkowie"
#: snikket_web/templates/admin_circles.html:15
#: snikket_web/templates/admin_edit_circle.html:61
#: 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"
@@ -496,12 +546,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:53
msgid "Delete user"
msgstr "Usuń użytkownika"
@@ -509,11 +559,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"
@@ -568,7 +613,7 @@ 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 ""
msgstr "Wróć do listy kręgów"
#: snikket_web/templates/admin_edit_circle.html:48
msgid "Delete circle"
@@ -582,28 +627,37 @@ msgstr "Usunięcie kręgu nie usunie z serwera jego użytkowników."
msgid "Circle members"
msgstr "Członkowie kręgu"
#: snikket_web/templates/admin_edit_circle.html:70
#: snikket_web/templates/admin_edit_circle.html:71
msgid "The user has been deleted from the server."
msgstr "Użytkownik został usunięty z serwera."
#: snikket_web/templates/admin_edit_circle.html:71
#: snikket_web/templates/library.j2:108
msgid "deleted"
msgstr "usunięty"
#: snikket_web/templates/admin_edit_circle.html:77
#, python-format
msgid "Remove user %(username)s from circle"
msgstr "Usuń z kręgu użytkownika %(username)s"
#: snikket_web/templates/admin_edit_circle.html:78
#: snikket_web/templates/admin_edit_circle.html:85
msgid "This circle currently has no members."
msgstr "Ten krąg nie ma obecnie członków."
#: snikket_web/templates/admin_edit_circle.html:80
#: snikket_web/templates/admin_edit_circle.html:87
msgid "Invite more members"
msgstr "Zaproś więcej użytkowników"
#: snikket_web/templates/admin_edit_circle.html:83
#: snikket_web/templates/admin_edit_circle.html:90
msgid "Add existing user"
msgstr "Dodaj istniejącego użytkownika"
#: snikket_web/templates/admin_edit_circle.html:94
#: snikket_web/templates/admin_edit_circle.html:101
msgid "All users added"
msgstr "Wszyscy użytkownicy dodani"
#: snikket_web/templates/admin_edit_circle.html:95
#: snikket_web/templates/admin_edit_circle.html:102
msgid "All users on this service are already in this circle."
msgstr "Wszyscy użytkownicy tego serwera są obecnie w tym kręgu."
@@ -657,11 +711,97 @@ msgstr "Użytkownik zostanie dodany jako kontakt %(peer_jid)s."
msgid "Created"
msgstr "Utworzono"
#: snikket_web/templates/admin_edit_invite.html:49
#, fuzzy
#| msgid "New invitation link"
#: snikket_web/templates/admin_edit_invite.html:48
msgid "Return to invitation list"
msgstr "Nowy link z zaproszeniem"
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:22
msgid "Edit user"
msgstr "Edytuj użytkownika"
#: snikket_web/templates/admin_edit_user.html:26
msgid "The login name cannot be changed."
msgstr "Login nie może zostać zmieniony."
#: 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 ""
"Poziom dostępu użytkownika określa, jakie interakcje są dla niego dozwolone "
"na Twoim serwerze Snikket."
#: snikket_web/templates/admin_edit_user.html:40
#, 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:50
msgid "Return to user list"
msgstr "Wróć do listy użytkowników"
#: snikket_web/templates/admin_edit_user.html:58
msgid "Further actions"
msgstr "Dodatkowe funkcje"
#: snikket_web/templates/admin_edit_user.html:60
msgid "Reset password"
msgstr "Resetowanie hasła"
#: 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 ""
"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:68
msgid "Debug information"
msgstr "Informacje debugowania"
#: 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 ""
"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:74
msgid "Show debug information"
msgstr "Pokaż informacje debugowania"
#: snikket_web/templates/admin_home.html:4
msgid "Welcome to the admin panel!"
@@ -702,11 +842,29 @@ msgstr "Utwórz, unieważnij lub kopiuj zaproszenia."
msgid "Manage invitations"
msgstr "Zarządzaj zaproszeniami"
#: snikket_web/templates/admin_home.html:36
#: snikket_web/templates/admin_home.html:35
msgid "System health"
msgstr "Stan systemu"
#: snikket_web/templates/admin_home.html:38
msgid "View the server status or send a broadcast message to all users."
msgstr ""
"Podejrzyj status serwera lub prześlij komunikat do wszystkich użytkowników."
#: snikket_web/templates/admin_home.html:40
msgid "Send a broadcast message to all users."
msgstr "Prześlij komunikat do wszystkich użytkowników."
#: snikket_web/templates/admin_home.html:43
#: snikket_web/templates/admin_system.html:4
msgid "Manage system"
msgstr "Zarządzaj systemem"
#: snikket_web/templates/admin_home.html:48
msgid "Go back to your user's web portal page."
msgstr "Wróć do swojej strony użytkownika."
#: snikket_web/templates/admin_home.html:38
#: snikket_web/templates/admin_home.html:50
msgid "Exit admin panel"
msgstr "Wyjdź z panelu administracyjnego"
@@ -759,15 +917,96 @@ 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_system.html:6
msgid "Overall system status"
msgstr "Ogólny status systemu"
#: snikket_web/templates/admin_users.html:28
#: snikket_web/templates/admin_system.html:9
msgid "System load (5 minute average)"
msgstr "Obciążenie systemu (dla ostatnich 5 minut)"
#: 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 "nieznane"
#: snikket_web/templates/admin_system.html:17
msgid "Memory use"
msgstr "Wykorzystanie pamięci"
#: snikket_web/templates/admin_system.html:20
#, python-format
msgid "Create password reset link for %(user_name)s"
msgstr "Utwórz link resetowania hasła dla %(user_name)s"
msgid ""
"%(percentage_global)s of %(mem_available)s. Of that, Snikket uses "
"%(percentage_snikket)s."
msgstr ""
"%(percentage_global)s z %(mem_available)s. Z tego Snikket używa "
"%(percentage_snikket)s."
#: snikket_web/templates/admin_system.html:27
msgid "Web portal status"
msgstr "Status portalu internetowego"
#: snikket_web/templates/admin_system.html:30
#: snikket_web/templates/admin_system.html:53
msgid "Version"
msgstr "Wersja"
#: snikket_web/templates/admin_system.html:31
#: snikket_web/templates/admin_system.html:54
msgid "View all versions"
msgstr "Pokaż wszystkie wersje"
#: snikket_web/templates/admin_system.html:32
#: snikket_web/templates/admin_system.html:55
msgid "Average CPU use"
msgstr "Średnie użycie CPU"
#: snikket_web/templates/admin_system.html:40
#: snikket_web/templates/admin_system.html:63
msgid "Current memory use"
msgstr "Bieżące użycie pamięci"
#: snikket_web/templates/admin_system.html:50
msgid "Snikket server status"
msgstr "Status serwera Snikket"
#: snikket_web/templates/admin_system.html:71
msgid "Connected devices"
msgstr "Podłączone urządzenia"
#: snikket_web/templates/admin_system.html:82
msgid "Broadcast message"
msgstr "Wiadomość globalna"
#: 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 ""
"Ten formularz pozwala na wysłanie wiadomości do wszystkich użytkowników, "
"którzy obecnie są online na twoim serwerze Snikket. Używaj go z rozwagą."
#: snikket_web/templates/admin_users.html:19
msgid "The user is an administrator."
msgstr "Użytkownik jest administratorem."
#: 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"
@@ -1081,7 +1320,7 @@ msgstr "Pobierz w App Store"
#: snikket_web/templates/invite_view.html:32
msgid "Get it on F-Droid"
msgstr ""
msgstr "Pobierz z F-Droid"
#: snikket_web/templates/invite_view.html:35
msgid "Send to mobile device"
@@ -1154,17 +1393,21 @@ msgstr ""
#: snikket_web/templates/invite_view.html:93
msgid "Install on iOS"
msgstr ""
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 "
"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:"
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
@@ -1172,21 +1415,28 @@ 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 ""
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"
@@ -1196,10 +1446,6 @@ msgstr "Skopiuj link"
msgid "Invalid input"
msgstr "Dane nieprawidłowe"
#: snikket_web/templates/library.j2:108
msgid "deleted"
msgstr "usunięty"
#: snikket_web/templates/library.j2:122
msgid "Can be used multiple times to create accounts on this Snikket service."
msgstr ""
@@ -1322,29 +1568,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,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2021-03-22 15:08+0100\n"
"POT-Creation-Date: 2021-06-18 16:05+0200\n"
"PO-Revision-Date: 2021-03-12 23:04+0000\n"
"Last-Translator: GodGoldfish <godgoldfish@pm.me>\n"
"Language-Team: Russian <https://i18n.sotecware.net/projects/snikket/web-"
@@ -21,135 +21,209 @@ msgstr ""
"X-Generator: Weblate 4.5.1\n"
"Generated-By: Babel 2.9.0\n"
#: snikket_web/admin.py:59
msgid "Delete user permanently"
msgstr "Удалить пользователя навсегда"
#: snikket_web/admin.py:66
msgid "Limited"
msgstr ""
#: snikket_web/admin.py:72
msgid "User deleted"
msgstr "удалённый"
#: snikket_web/admin.py:71 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_edit_circle.html:59
#: snikket_web/templates/admin_users.html:8
msgid "Login name"
msgstr "Логин"
#: snikket_web/admin.py:115
#: snikket_web/admin.py:75 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_edit_circle.html:60
#: snikket_web/templates/admin_users.html:9 snikket_web/user.py: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
#, fuzzy
#| msgid "Admin area"
msgid "Administrator"
msgstr "Административная зона"
#: snikket_web/admin.py:90
#, fuzzy
#| msgid "Update circle"
msgid "Update user"
msgstr "Обновить крук"
#: snikket_web/admin.py:94
#, fuzzy
#| msgid "Create password reset links or delete users."
msgid "Create password reset link"
msgstr "Создайте ссылки для сброса пароля или удалите пользователей."
#: snikket_web/admin.py:112
msgid "Password reset link created"
msgstr "Ссылка на сброс пароля для %(user_name)s"
#: snikket_web/admin.py:121
#: snikket_web/admin.py:127
#, fuzzy
#| msgid "Circle information"
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
#, fuzzy
#| msgid "Password reset link created"
msgid "Password reset link not found"
msgstr "Ссылка на сброс пароля для %(user_name)s"
#: 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 "Aннулировать"
#: 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 "Удалить пользователя %(username)s из круга"
#: 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 "Основное"
@@ -248,11 +322,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 "Аватар"
@@ -421,8 +490,9 @@ msgid "Members"
msgstr "Участники"
#: snikket_web/templates/admin_circles.html:15
#: snikket_web/templates/admin_edit_circle.html:61
#: snikket_web/templates/admin_invites.html:24
#: snikket_web/templates/admin_users.html:12
#: snikket_web/templates/admin_users.html:10
msgid "Actions"
msgstr "Действия"
@@ -498,12 +568,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:53
msgid "Delete user"
msgstr "Удалить пользователя"
@@ -511,11 +581,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 "Опасность"
@@ -582,28 +647,37 @@ msgstr "Удаление круга не приводит к удалению п
msgid "Circle members"
msgstr "Участники круга"
#: snikket_web/templates/admin_edit_circle.html:70
#: snikket_web/templates/admin_edit_circle.html:71
msgid "The user has been deleted from the server."
msgstr ""
#: snikket_web/templates/admin_edit_circle.html:71
#: snikket_web/templates/library.j2:108
msgid "deleted"
msgstr "удалённый"
#: snikket_web/templates/admin_edit_circle.html:77
#, python-format
msgid "Remove user %(username)s from circle"
msgstr "Удалить пользователя %(username)s из круга"
#: snikket_web/templates/admin_edit_circle.html:78
#: snikket_web/templates/admin_edit_circle.html:85
msgid "This circle currently has no members."
msgstr "У этого круга пока нет участников."
#: snikket_web/templates/admin_edit_circle.html:80
#: snikket_web/templates/admin_edit_circle.html:87
msgid "Invite more members"
msgstr "Пригласить других участников"
#: snikket_web/templates/admin_edit_circle.html:83
#: snikket_web/templates/admin_edit_circle.html:90
msgid "Add existing user"
msgstr "Добавить существующего пользователя"
#: snikket_web/templates/admin_edit_circle.html:94
#: snikket_web/templates/admin_edit_circle.html:101
msgid "All users added"
msgstr "Все пользователи добавлены"
#: snikket_web/templates/admin_edit_circle.html:95
#: snikket_web/templates/admin_edit_circle.html:102
msgid "All users on this service are already in this circle."
msgstr "Все пользователи этого сервиса уже находятся в этом кругу."
@@ -657,12 +731,97 @@ msgstr "Пользователь будет добавлен как контак
msgid "Created"
msgstr "Создано"
#: snikket_web/templates/admin_edit_invite.html:49
#: 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:22
#, fuzzy
#| msgid "Add user"
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
#, fuzzy
#| msgid "New invitation link"
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
#, fuzzy
#| msgid "Reset your password"
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
#, fuzzy
#| msgid "Circle information"
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
#, 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 "Добро пожаловать в административную панель!"
@@ -704,11 +863,30 @@ msgstr "Создавайте, отзывайте или копируйте пр
msgid "Manage invitations"
msgstr "Управление приглашениями"
#: snikket_web/templates/admin_home.html:36
#: 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
#, fuzzy
#| msgid "Manage users"
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:38
#: snikket_web/templates/admin_home.html:50
msgid "Exit admin panel"
msgstr "Покидая административную панель"
@@ -761,15 +939,98 @@ 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_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"
msgstr "Создать ссылку сброса пароля для %(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
#, fuzzy
#| msgid "Snikket Web Portal"
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
#, 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: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"
@@ -1159,12 +1420,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
@@ -1197,10 +1458,6 @@ msgstr "Ссылка на копирование"
msgid "Invalid input"
msgstr "Недействительный вход"
#: snikket_web/templates/library.j2:108
msgid "deleted"
msgstr "удалённый"
#: snikket_web/templates/library.j2:122
msgid "Can be used multiple times to create accounts on this Snikket service."
msgstr ""
@@ -1326,6 +1583,9 @@ msgstr ""
"Этот раздел позволяет вам контролировать, кто может видеть информацию вашего "
"профиля, например, аватар и ник."
#~ msgid "Create password reset link for %(user_name)s"
#~ msgstr "Создать ссылку сброса пароля для %(user_name)s"
#~ msgid "Login failed"
#~ msgstr "Логин не удался"

View File

@@ -7,148 +7,212 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2021-03-22 15:08+0100\n"
"PO-Revision-Date: 2021-03-23 15:00+0000\n"
"POT-Creation-Date: 2021-06-18 16:05+0200\n"
"PO-Revision-Date: 2021-08-01 14:00+0000\n"
"Last-Translator: Kim Alvefur <zash@zash.se>\n"
"Language-Team: Swedish <https://i18n.sotecware.net/projects/snikket/"
"Language-Team: Swedish <http://i18n.sotecware.net/projects/snikket/"
"web-portal/sv/>\n"
"Language: sv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.5.1\n"
"X-Generator: Weblate 4.7.2\n"
"Generated-By: Babel 2.9.0\n"
#: snikket_web/admin.py:59
msgid "Delete user permanently"
msgstr "Radera användare permanent"
#: snikket_web/admin.py:66
msgid "Limited"
msgstr "Begränsad"
#: snikket_web/admin.py:72
msgid "User deleted"
msgstr "Användare raderad"
#: snikket_web/admin.py:71 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_edit_circle.html:59
#: snikket_web/templates/admin_users.html:8
msgid "Login name"
msgstr "Inloggningsnamn"
#: snikket_web/admin.py:115
#: snikket_web/admin.py:75 snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_edit_circle.html:60
#: snikket_web/templates/admin_users.html:9 snikket_web/user.py:61
msgid "Display name"
msgstr "Visningsnamn"
#: snikket_web/admin.py:79 snikket_web/templates/admin_edit_user.html:32
msgid "Access Level"
msgstr "Användarnivåer"
#: snikket_web/admin.py:84
msgid "Normal user"
msgstr "Vanlig användare"
#: snikket_web/admin.py:85
msgid "Administrator"
msgstr "Administratör"
#: snikket_web/admin.py:90
msgid "Update user"
msgstr "Uppdatera användare"
#: snikket_web/admin.py:94
msgid "Create password reset link"
msgstr "Skapa länk för återställning av lösenord"
#: snikket_web/admin.py:112
msgid "Password reset link created"
msgstr "Skapade länk för att återställa lösenord"
#: snikket_web/admin.py:121
#: snikket_web/admin.py:127
msgid "User information updated."
msgstr "Användarinformation uppdaterad."
#: snikket_web/admin.py:149
msgid "Delete user permanently"
msgstr "Radera användare permanent"
#: snikket_web/admin.py:162
msgid "User deleted"
msgstr "Användare raderad"
#: snikket_web/admin.py:200
msgid "Password reset link not found"
msgstr "Länk för återställning av lösenord hittades inte"
#: snikket_web/admin.py:212
msgid "Password reset link deleted"
msgstr "Länk för återställning av lösenord raderad"
#: snikket_web/admin.py:140
#: snikket_web/admin.py:232
msgid "Invite to circle"
msgstr "Bjud in till krets"
#: snikket_web/admin.py:146
#: snikket_web/admin.py:238
msgid "At least one circle must be selected"
msgstr "Minst en krets behöver väljas"
#: snikket_web/admin.py:151
#: snikket_web/admin.py:243
msgid "Valid for"
msgstr "Giltig i"
#: snikket_web/admin.py:153
#: snikket_web/admin.py:245
msgid "One hour"
msgstr "En timme"
#: snikket_web/admin.py:154
#: snikket_web/admin.py:246
msgid "Twelve hours"
msgstr "Tolv timmar"
#: snikket_web/admin.py:155
#: snikket_web/admin.py:247
msgid "One day"
msgstr "En dag"
#: snikket_web/admin.py:156
#: snikket_web/admin.py:248
msgid "One week"
msgstr "En vecka"
#: snikket_web/admin.py:157
#: snikket_web/admin.py:249
msgid "Four weeks"
msgstr "Fyra veckor"
#: 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 "Typ av inbjudan"
#: 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 "Individuell"
#: 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 "Grupp"
#: snikket_web/admin.py:172
#: snikket_web/admin.py:264
msgid "New invitation link"
msgstr "Ny inbjudanslänk"
#: snikket_web/admin.py:234
#: snikket_web/admin.py:326
msgid "Revoke"
msgstr "Återkalla"
#: snikket_web/admin.py:258
#: snikket_web/admin.py:350
msgid "Invitation created"
msgstr "Inbjudan skapad"
#: snikket_web/admin.py:274
#: snikket_web/admin.py:366
msgid "No such invitation exists"
msgstr "Inbjudanslänken finns inte"
#: snikket_web/admin.py:289
#: snikket_web/admin.py:381
msgid "Invitation revoked"
msgstr "Inbjudan återkallad"
#: snikket_web/admin.py:306 snikket_web/admin.py:354
#: snikket_web/admin.py:398 snikket_web/admin.py:446
msgid "Name"
msgstr "Namn"
#: 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 "Skapa krets"
#: snikket_web/admin.py:341
#: snikket_web/admin.py:433
msgid "Circle created"
msgstr "Krets skapad"
#: snikket_web/admin.py:359
#: snikket_web/admin.py:451
msgid "Select user"
msgstr "Välj användare"
#: snikket_web/admin.py:364
#: snikket_web/admin.py:456
msgid "Update circle"
msgstr "Uppdatera krets"
#: snikket_web/admin.py:368
#: snikket_web/admin.py:460
msgid "Delete circle permanently"
msgstr "Radera krets permanent"
#: snikket_web/admin.py:374
#: snikket_web/admin.py:466
msgid "Add user"
msgstr "Lägg till användare"
#: snikket_web/admin.py:390
#: snikket_web/admin.py:482
msgid "No such circle exists"
msgstr "Kretsen finns inte"
#: snikket_web/admin.py:427
#: snikket_web/admin.py:519
msgid "Circle data updated"
msgstr "Kretsen uppdaterades"
#: snikket_web/admin.py:433
#: snikket_web/admin.py:525
msgid "Circle deleted"
msgstr "Krets raderad"
#: snikket_web/admin.py:444
#: snikket_web/admin.py:536
msgid "User added to circle"
msgstr "Användare tillagd i krets"
#: snikket_web/admin.py:453
#: snikket_web/admin.py:545
msgid "User removed from circle"
msgstr "Användaren %(username)s borttagen från krets"
#: snikket_web/infra.py:41
#: snikket_web/admin.py:616
msgid "Message contents"
msgstr "Meddelandeinnehåll"
#: snikket_web/admin.py:622
msgid "Only send to online users"
msgstr "Skicka bara till användare som är online"
#: snikket_web/admin.py:626
msgid "Post to all users"
msgstr "Skicka till alla användare"
#: snikket_web/admin.py:630
msgid "Send preview to yourself"
msgstr "Skicka förhandsvisning till dig själv"
#: snikket_web/admin.py:652
msgid "Announcement sent!"
msgstr "Tillkännagivande skickat!"
#: snikket_web/infra.py:51
msgid "Main"
msgstr "Allmän"
@@ -237,11 +301,6 @@ msgstr "Endast vänner"
msgid "Everyone"
msgstr "Alla"
#: snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:11 snikket_web/user.py:61
msgid "Display name"
msgstr "Visningsnamn"
#: snikket_web/user.py:65
msgid "Avatar"
msgstr "Profilbild"
@@ -407,8 +466,9 @@ msgid "Members"
msgstr "Medlemmar"
#: snikket_web/templates/admin_circles.html:15
#: snikket_web/templates/admin_edit_circle.html:61
#: 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"
@@ -483,12 +543,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:53
msgid "Delete user"
msgstr "Radera användare"
@@ -496,11 +556,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"
@@ -567,28 +622,37 @@ msgstr "Användare i en krets raderas inte när kretsen raderas."
msgid "Circle members"
msgstr "Medlemmar i krets"
#: snikket_web/templates/admin_edit_circle.html:70
#: snikket_web/templates/admin_edit_circle.html:71
msgid "The user has been deleted from the server."
msgstr "Användaren har raderats från servern."
#: snikket_web/templates/admin_edit_circle.html:71
#: snikket_web/templates/library.j2:108
msgid "deleted"
msgstr "raderad"
#: snikket_web/templates/admin_edit_circle.html:77
#, python-format
msgid "Remove user %(username)s from circle"
msgstr "Radera användaren %(username)s från krets"
#: snikket_web/templates/admin_edit_circle.html:78
#: snikket_web/templates/admin_edit_circle.html:85
msgid "This circle currently has no members."
msgstr "Denna krets har för närvarande inga medlemmar."
#: snikket_web/templates/admin_edit_circle.html:80
#: snikket_web/templates/admin_edit_circle.html:87
msgid "Invite more members"
msgstr "Bjud in fler medlemmar"
#: snikket_web/templates/admin_edit_circle.html:83
#: snikket_web/templates/admin_edit_circle.html:90
msgid "Add existing user"
msgstr "Lägg till befintlig användare"
#: snikket_web/templates/admin_edit_circle.html:94
#: snikket_web/templates/admin_edit_circle.html:101
msgid "All users added"
msgstr "Alla användare tillagda"
#: snikket_web/templates/admin_edit_circle.html:95
#: snikket_web/templates/admin_edit_circle.html:102
msgid "All users on this service are already in this circle."
msgstr "Alla användare på den här tjänsten är redan i denna krets."
@@ -641,10 +705,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:49
#: 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:22
msgid "Edit user"
msgstr "Redigera användare"
#: snikket_web/templates/admin_edit_user.html:26
msgid "The login name cannot be changed."
msgstr "Inloggningsnamnet kan inte ändras."
#: 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 ""
"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:40
#, 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:50
msgid "Return to user list"
msgstr "Tillbaka till användarlistan"
#: snikket_web/templates/admin_edit_user.html:58
msgid "Further actions"
msgstr "Fler handlingar"
#: snikket_web/templates/admin_edit_user.html:60
msgid "Reset password"
msgstr "Återställ lösenord"
#: 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 ""
"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:68
msgid "Debug information"
msgstr "Felsökningsinformation"
#: 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 ""
"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:74
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!"
@@ -684,11 +833,28 @@ msgstr "Skapa, återkalla och kopiera inbjudningar."
msgid "Manage invitations"
msgstr "Hantera inbjudningar"
#: snikket_web/templates/admin_home.html:36
#: snikket_web/templates/admin_home.html:35
msgid "System health"
msgstr "Systemhälsa"
#: snikket_web/templates/admin_home.html:38
msgid "View the server status or send a broadcast message to all users."
msgstr "Visa serverns status eller skicka meddelande till alla användare."
#: snikket_web/templates/admin_home.html:40
msgid "Send a broadcast message to all users."
msgstr "Skicka ett meddelande till alla användare."
#: snikket_web/templates/admin_home.html:43
#: snikket_web/templates/admin_system.html:4
msgid "Manage system"
msgstr "Hantera system"
#: snikket_web/templates/admin_home.html:48
msgid "Go back to your user's web portal page."
msgstr "Gå tillbaka till din användares webbportalsida."
#: snikket_web/templates/admin_home.html:38
#: snikket_web/templates/admin_home.html:50
msgid "Exit admin panel"
msgstr "Lämna administrationspanelen"
@@ -741,15 +907,96 @@ 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_system.html:6
msgid "Overall system status"
msgstr "Övergripande systemstatus"
#: snikket_web/templates/admin_users.html:28
#: snikket_web/templates/admin_system.html:9
msgid "System load (5 minute average)"
msgstr "Systemlast (5 minuters medelvärde)"
#: 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 "okänd"
#: snikket_web/templates/admin_system.html:17
msgid "Memory use"
msgstr "Minnesanvändning"
#: snikket_web/templates/admin_system.html:20
#, 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"
msgid ""
"%(percentage_global)s of %(mem_available)s. Of that, Snikket uses "
"%(percentage_snikket)s."
msgstr ""
"%(percentage_global)s av %(mem_available)s. Av det använder Snikket "
"%(percentage_snikket)s."
#: snikket_web/templates/admin_system.html:27
msgid "Web portal status"
msgstr "Webbportalstatus"
#: snikket_web/templates/admin_system.html:30
#: snikket_web/templates/admin_system.html:53
msgid "Version"
msgstr "Version"
#: snikket_web/templates/admin_system.html:31
#: snikket_web/templates/admin_system.html:54
msgid "View all versions"
msgstr "Visa alla versioner"
#: snikket_web/templates/admin_system.html:32
#: snikket_web/templates/admin_system.html:55
msgid "Average CPU use"
msgstr "Genomsnittlig processoranvändning"
#: snikket_web/templates/admin_system.html:40
#: snikket_web/templates/admin_system.html:63
msgid "Current memory use"
msgstr "Nuvarande minnesanvändning"
#: snikket_web/templates/admin_system.html:50
msgid "Snikket server status"
msgstr "Snikket-serverstatus"
#: snikket_web/templates/admin_system.html:71
msgid "Connected devices"
msgstr "Anslutna enheter"
#: snikket_web/templates/admin_system.html:82
msgid "Broadcast message"
msgstr "Tillkännagivande"
#: 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 ""
"Det här formuläret låter dig skicka ett tillkännagivande till alla användare "
"som just nu är online på din Snikket-server. Använd det med vishet."
#: 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: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"
@@ -1128,14 +1375,14 @@ 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 "
"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:"
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
@@ -1172,10 +1419,6 @@ msgstr "Kopiera länk"
msgid "Invalid input"
msgstr "Ogiltigt indata"
#: snikket_web/templates/library.j2:108
msgid "deleted"
msgstr "raderad"
#: snikket_web/templates/library.j2:122
msgid "Can be used multiple times to create accounts on this Snikket service."
msgstr ""
@@ -1298,6 +1541,9 @@ 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"

View File

@@ -1,9 +1,11 @@
import asyncio
import typing
import urllib
import quart.flask_patch
from quart import (
Blueprint,
Response,
render_template,
request,
redirect,
@@ -75,6 +77,16 @@ class ProfileForm(BaseForm):
)
class ImportAccountDataForm(BaseForm):
account_data_file = wtforms.FileField(
_l("Account data")
)
action_upload = wtforms.SubmitField(
_l("Upload"),
)
@bp.route("/")
@client.require_session()
async def index() -> str:
@@ -168,6 +180,46 @@ async def profile() -> typing.Union[str, quart.Response]:
avatar_too_big_warning=EAVATARTOOBIG)
class DataExportForm(BaseForm):
action_export = wtforms.SubmitField(
_l("Export")
)
@bp.route("/manage_data", methods=["GET", "POST"])
@client.require_session()
async def manage_data() -> typing.Union[str, quart.Response]:
form = DataExportForm()
if form.validate_on_submit():
user_info = await client.get_user_info()
# The UTF-8 version of the filename needs to be percent-encoded
encoded_address = urllib.parse.quote(
user_info["address"].encode(encoding='utf-8', errors='strict')
)
account_data = await client.export_account_data()
if account_data is None:
await flash(
_("You currently have no account data to export."),
"alert"
)
else:
return Response(account_data,
mimetype="application/xml",
headers={
# We provide the UTF-8 filename, but the ASCII
# one will be used as a fallback for legacy
# browsers (RFC 5987)
"Content-Disposition": (
'attachment; filename="account-data.xml"; '
'filename*="UTF-8\'\'account-data-{}.xml"'
).format(encoded_address)
})
return await render_template("user_manage_data.html",
form=form,
)
@bp.route("/logout", methods=["GET", "POST"])
@client.require_session()
async def logout() -> typing.Union[quart.Response, str]:

View File

@@ -207,7 +207,7 @@ def make_avatar_metadata_set_request(
item,
"metadata", xmlns=NS_USER_AVATAR_METADATA)
attr: typing.MutableMapping[str, str] = {
attr: typing.Dict[str, str] = {
"id": id_,
"bytes": str(size),
"type": mimetype,
@@ -217,7 +217,12 @@ def make_avatar_metadata_set_request(
if height is not None:
attr["height"] = str(height)
ET.SubElement(metadata_wrap, "info", xmlns=NS_USER_AVATAR_METADATA, **attr)
ET.SubElement(
metadata_wrap,
"info",
xmlns=NS_USER_AVATAR_METADATA,
**attr, # type: ignore
)
return req

View File

@@ -6,13 +6,19 @@ action/logout:logout
action/login:login
action/exit_to_app:exit_to_app
action/lock:lock
communication/import_export:import_export
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
file/file_download:download
file/file_upload:upload
file/folder:folder
navigation/arrow_back:back
navigation/arrow_forward:forward
navigation/cancel:cancel
@@ -26,3 +32,4 @@ navigation/close:close
image/edit:edit
action/admin_panel_settings:admin
content/link:link
content/insights:insights