Compare commits

...

41 Commits

Author SHA1 Message Date
Jonas Schäfer
ad229d6700 Use standard error rendering for the login form
This provides a consistent UX.
2021-03-20 16:30:42 +01:00
Jonas Schäfer
b822000f2e Improve install button layout on narrow screens
This allows the button container to add line breaks between the
buttons when necessary.
2021-03-20 16:30:42 +01:00
Jonas Schäfer
a6b67b3fdd Improve install button layout on narrow screens
This allows the button container to add line breaks between the
buttons when necessary.
2021-03-20 16:20:05 +01:00
Jonas Schäfer
885db355ab Add F-Droid download button
Using the mechanism introduced for iOS to describe the multi-step
process.

Fixes #52.
2021-03-20 16:15:20 +01:00
Jonas Schäfer
c3d5b06313 Add multi-step instructions for iOS installation
Fixes #53.
2021-03-20 16:15:07 +01:00
Jonas Schäfer
2dd8838852 Report validity issues of avatar input right away
This helps discovering the actual error message. Thanks @zash.
2021-03-20 15:56:44 +01:00
Jonas Schäfer
5df2c3945a Use browser API to indicate validity state 2021-03-20 14:40:31 +01:00
Jonas Schäfer
3eb8036ebd Implement size checking for the avatar
This checks the avatar size on the client side (if available) and
on the server side against a configuration-defined limit. The
default limit is set to use the same value as in the original
report, as no sensible limit value is known.

Fixes #67.
2021-03-20 12:57:11 +01:00
Jonas Schäfer
02ed390cd2 Fix type annotation 2021-03-20 12:36:06 +01:00
Jonas Schäfer
2506810b90 Return 404 on expired invite URLs 2021-03-19 16:54:40 +01:00
Kim Alvefur
05d1b42dc4 Hint to the browser that the avatar should be PNG
Should result in that the file picker by default only shows PNG files
for selection.
2021-03-17 15:26:30 +01:00
GodGoldfish
5ef5b93eb9 Translated using Weblate (Russian)
Currently translated at 100.0% (244 of 244 strings)

Translation: Snikket/Web Portal
Translate-URL: https://i18n.sotecware.net/projects/snikket/web-portal/ru/
2021-03-12 23:04:55 +00:00
GodGoldfish
0ff6e00e9d Translated using Weblate (French)
Currently translated at 90.1% (220 of 244 strings)

Translation: Snikket/Web Portal
Translate-URL: https://i18n.sotecware.net/projects/snikket/web-portal/fr/
2021-03-12 23:04:54 +00:00
Jonas Schäfer
c04ac4bee0 Make linter happy 2021-03-11 07:32:31 +01:00
Daniel Holmgaard
3e19d42c2a Translated using Weblate (Danish)
Currently translated at 100.0% (244 of 244 strings)

Translation: Snikket/Web Portal
Translate-URL: https://i18n.sotecware.net/projects/snikket/web-portal/da/
2021-03-10 19:03:47 +00:00
Matthew Wild
03732ac06b Fix health check to declare itself text/plain and match Prosody 2021-03-10 14:54:01 +00:00
Matthew Wild
c70228fed7 Add /_health endpoint 2021-03-10 14:22:38 +00:00
Jonas Schäfer
025172592f Improve error handling in Prosody version retrieval 2021-03-09 22:20:37 +01:00
Kim Alvefur
6de1e5313f Add support for displaying prosody version
This only works for authenticated users even in debug mode because
it requires a session with prosody to send the request.

Fixes #66.
2021-03-09 22:08:58 +01:00
Jonas Schäfer
3083c118a3 Add fully translated language codes 2021-03-09 22:03:08 +01:00
Daniel Holmgaard
fa1b13fbdb Translated using Weblate (Danish)
Currently translated at 100.0% (244 of 244 strings)

Translation: Snikket/Web Portal
Translate-URL: https://i18n.sotecware.net/projects/snikket/web-portal/da/
2021-03-06 17:03:39 +00:00
Daniel Holmgaard
ba30d728f4 Translated using Weblate (Danish)
Currently translated at 100.0% (244 of 244 strings)

Translation: Snikket/Web Portal
Translate-URL: https://i18n.sotecware.net/projects/snikket/web-portal/da/
2021-03-03 22:03:08 +00:00
Matthew Wild
af87301fa4 Added translation using Weblate (Danish) 2021-03-01 21:01:54 +00:00
Kim Alvefur
8ee0b0dd30 Translated using Weblate (Swedish)
Currently translated at 100.0% (244 of 244 strings)

Translation: Snikket/Web Portal
Translate-URL: https://i18n.sotecware.net/projects/snikket/web-portal/sv/
2021-02-25 16:02:18 +00:00
Roberto Resoli
4a27ef9d72 Translated using Weblate (Italian)
Currently translated at 100.0% (244 of 244 strings)

Translation: Snikket/Web Portal
Translate-URL: https://i18n.sotecware.net/projects/snikket/web-portal/it/
2021-02-25 16:02:18 +00:00
misiek
9e9fdaf8d4 Translated using Weblate (Polish)
Currently translated at 100.0% (244 of 244 strings)

Translation: Snikket/Web Portal
Translate-URL: https://i18n.sotecware.net/projects/snikket/web-portal/pl/
2021-02-25 16:02:17 +00:00
uira
bdb186ca81 Translated using Weblate (Indonesian)
Currently translated at 100.0% (244 of 244 strings)

Translation: Snikket/Web Portal
Translate-URL: https://i18n.sotecware.net/projects/snikket/web-portal/id/
2021-02-25 16:02:17 +00:00
Jonas Schäfer
4ca9b82bce Translated using Weblate (German)
Currently translated at 100.0% (244 of 244 strings)

Translation: Snikket/Web Portal
Translate-URL: https://i18n.sotecware.net/projects/snikket/web-portal/de/
2021-02-25 16:02:16 +00:00
Jonas Schäfer
6dbe2c2d5e Fix missing type annotation 2021-02-23 21:18:14 +01:00
Jonas Schäfer
e410aedfef Improve logging of rejected IQ calls 2021-02-23 20:21:44 +01:00
Jonas Schäfer
1713da61e7 Fix password change
This fixes a regression introduced in e476d9b7 which caused the
token to be incorrectly used when authenticating with mod_rest for
sending the password change IQ stanza.
2021-02-23 20:20:47 +01:00
Kim Alvefur
53aac690df Add health check to dockerfile 2021-02-23 15:56:19 +01:00
Weblate
5e4009ca11 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-02-23 06:55:53 +00:00
Jonas Schäfer
80860a3ac6 Extract missing strings 2021-02-23 07:55:38 +01:00
Kim Alvefur
e9d479a78b Translated using Weblate (Swedish)
Currently translated at 100.0% (221 of 221 strings)

Translation: Snikket/Web Portal
Translate-URL: https://i18n.sotecware.net/projects/snikket/web-portal/sv/
2021-02-22 23:23:17 +00:00
Jonas Schäfer
aac56f49e9 Added translation using Weblate (Swedish) 2021-02-22 18:12:31 +00:00
Jonas Schäfer
52f0bee006 Use buster-slim as base image
This reduces the overall image size, but more importantly,
deduplicates nicely with the other Snikket images which all use
buster-slim as base.

Fixes #63.
2021-02-22 15:02:14 +01:00
misiek
97c91b432d Translated using Weblate (Polish)
Currently translated at 100.0% (221 of 221 strings)

Translation: Snikket/Web Portal
Translate-URL: https://i18n.sotecware.net/projects/snikket/web-portal/pl/
2021-02-22 11:02:09 +00:00
Jonas Schäfer
60647159f3 Merge pull request #62 from mmigel/patch-2
Update admin_invites.html
2021-02-20 15:55:42 +01:00
Michał Mazur
a21730f136 Update admin_invites.html
A better sounding variant "Expires" in place "Valid until".
2021-02-20 15:53:00 +01:00
Jonas Schäfer
e35ab1b723 Merge pull request #61 from snikket-im/enable-italian-translation
Enable Italian translation by default
2021-02-20 10:17:11 +01:00
29 changed files with 5339 additions and 1419 deletions

View File

@@ -1,4 +1,4 @@
FROM debian:buster FROM debian:buster-slim
ARG BUILD_SERIES=dev ARG BUILD_SERIES=dev
ARG BUILD_ID=0 ARG BUILD_ID=0
@@ -18,6 +18,7 @@ RUN set -eu; \
python3 python3-pip python3-setuptools python3-wheel \ python3 python3-pip python3-setuptools python3-wheel \
libpython3-dev \ libpython3-dev \
make build-essential \ make build-essential \
netcat \
; \ ; \
pip3 install -r requirements.txt; \ pip3 install -r requirements.txt; \
pip3 install -r build-requirements.txt; \ pip3 install -r build-requirements.txt; \
@@ -34,5 +35,7 @@ ENV SNIKKET_WEB_PYENV=/etc/snikket-web-portal/env.py
ENV SNIKKET_WEB_PROSODY_ENDPOINT=http://127.0.0.1:5280/ 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}
ADD docker/entrypoint.sh /entrypoint.sh ADD docker/entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/bin/sh", "/entrypoint.sh"] ENTRYPOINT ["/bin/sh", "/entrypoint.sh"]

View File

@@ -145,14 +145,21 @@ class AppConfig:
site_name = environ.var("") site_name = environ.var("")
avatar_cache_ttl = environ.var(1800, converter=int) avatar_cache_ttl = environ.var(1800, converter=int)
languages = environ.var([ languages = environ.var([
"da",
"de", "de",
"en", "en",
"fr", "fr",
"id", "id",
"it", "it",
"pl", "pl",
"sv",
], converter=autosplit) ], converter=autosplit)
apple_store_url = environ.var("") apple_store_url = environ.var("")
# 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)
_UPPER_CASE = "".join(map(chr, range(ord("A"), ord("Z")+1))) _UPPER_CASE = "".join(map(chr, range(ord("A"), ord("Z")+1)))
@@ -183,6 +190,7 @@ def create_app() -> quart.Quart:
app.config["SITE_NAME"] = config.site_name or config.domain app.config["SITE_NAME"] = config.site_name or config.domain
app.config["AVATAR_CACHE_TTL"] = config.avatar_cache_ttl app.config["AVATAR_CACHE_TTL"] = config.avatar_cache_ttl
app.config["APPLE_STORE_URL"] = config.apple_store_url app.config["APPLE_STORE_URL"] = config.apple_store_url
app.config["MAX_AVATAR_SIZE"] = config.max_avatar_size
app.context_processor(proc) app.context_processor(proc)
app.register_error_handler( app.register_error_handler(

View File

@@ -19,12 +19,11 @@ from quart import (
abort, abort,
flash, flash,
) )
import flask_wtf
from flask_babel import lazy_gettext as _l, _ from flask_babel import lazy_gettext as _l, _
from . import prosodyclient from . import prosodyclient
from .infra import client, circle_name from .infra import client, circle_name, BaseForm
bp = Blueprint("admin", __name__, url_prefix="/admin") bp = Blueprint("admin", __name__, url_prefix="/admin")
@@ -35,7 +34,7 @@ async def index() -> str:
return await render_template("admin_home.html") return await render_template("admin_home.html")
class PasswordResetLinkPost(flask_wtf.FlaskForm): # type: ignore class PasswordResetLinkPost(BaseForm):
action_create = wtforms.StringField() action_create = wtforms.StringField()
action_revoke = wtforms.StringField() action_revoke = wtforms.StringField()
@@ -55,7 +54,7 @@ async def users() -> str:
) )
class DeleteUserForm(flask_wtf.FlaskForm): # type:ignore class DeleteUserForm(BaseForm):
action_delete = wtforms.SubmitField( action_delete = wtforms.SubmitField(
_l("Delete user permanently") _l("Delete user permanently")
) )
@@ -132,11 +131,11 @@ async def create_password_reset_link() -> typing.Union[str, quart.Response]:
) )
class InvitesListForm(flask_wtf.FlaskForm): # type:ignore class InvitesListForm(BaseForm):
action_revoke = wtforms.StringField() action_revoke = wtforms.StringField()
class InvitePost(flask_wtf.FlaskForm): # type:ignore class InvitePost(BaseForm):
circles = wtforms.SelectMultipleField( circles = wtforms.SelectMultipleField(
_l("Invite to circle"), _l("Invite to circle"),
# NOTE: This is for when/if we ever support multi-group invites. # NOTE: This is for when/if we ever support multi-group invites.
@@ -230,7 +229,7 @@ async def invitations() -> typing.Union[str, quart.Response]:
) )
class InviteForm(flask_wtf.FlaskForm): # type:ignore class InviteForm(BaseForm):
action_revoke = wtforms.SubmitField( action_revoke = wtforms.SubmitField(
_l("Revoke") _l("Revoke")
) )
@@ -302,7 +301,7 @@ async def edit_invite(id_: str) -> typing.Union[str, quart.Response]:
) )
class CirclePost(flask_wtf.FlaskForm): # type:ignore class CirclePost(BaseForm):
name = wtforms.StringField( name = wtforms.StringField(
_l("Name"), _l("Name"),
validators=[wtforms.validators.InputRequired()], validators=[wtforms.validators.InputRequired()],
@@ -350,7 +349,7 @@ async def create_circle() -> typing.Union[str, quart.Response]:
) )
class EditCircleForm(flask_wtf.FlaskForm): # type:ignore class EditCircleForm(BaseForm):
name = wtforms.StringField( name = wtforms.StringField(
_l("Name"), _l("Name"),
validators=[wtforms.validators.InputRequired()], validators=[wtforms.validators.InputRequired()],

View File

@@ -10,6 +10,7 @@ from quart import (
) )
import flask_babel import flask_babel
import flask_wtf
from flask_babel import _ from flask_babel import _
from . import prosodyclient from . import prosodyclient
@@ -55,3 +56,14 @@ def generate_error_id() -> str:
return base64.b32encode(secrets.token_bytes(8)).decode( return base64.b32encode(secrets.token_bytes(8)).decode(
"ascii" "ascii"
).rstrip("=") ).rstrip("=")
class BaseForm(flask_wtf.FlaskForm): # type:ignore
def __init__(self, *args: typing.Any, **kwargs: typing.Any):
meta = kwargs["meta"] = dict(kwargs.get("meta", {}))
if "locales" not in meta:
locale = flask_babel.get_locale()
if locale:
meta["locales"] = [str(locale)]
super().__init__(*args, **kwargs)

View File

@@ -16,10 +16,9 @@ from quart import (
import wtforms import wtforms
import flask_wtf
from flask_babel import lazy_gettext as _l from flask_babel import lazy_gettext as _l
from .infra import client, selected_locale from .infra import client, selected_locale, BaseForm
bp = Blueprint("invite", __name__) bp = Blueprint("invite", __name__)
@@ -53,13 +52,15 @@ async def view_old(id_: str) -> quart.Response:
@bp.route("/<id_>/") @bp.route("/<id_>/")
async def view(id_: str) -> typing.Union[quart.Response, str]: async def view(id_: str) -> typing.Union[quart.Response,
typing.Tuple[str, int],
str]:
try: try:
invite = await client.get_public_invite_by_id(id_) invite = await client.get_public_invite_by_id(id_)
except aiohttp.ClientResponseError as exc: except aiohttp.ClientResponseError as exc:
if exc.status == 404: if exc.status == 404:
# invite expired # invite expired
return await render_template("invite_invalid.html") return await render_template("invite_invalid.html"), 404
raise raise
if invite.reset_localpart is not None: if invite.reset_localpart is not None:
@@ -89,6 +90,7 @@ async def view(id_: str) -> typing.Union[quart.Response, str]:
invite=invite, invite=invite,
play_store_url=play_store_url, play_store_url=play_store_url,
apple_store_url=apple_store_url, apple_store_url=apple_store_url,
f_droid_url="market://details?id=org.snikket.android",
invite_id=id_, invite_id=id_,
) )
return quart.Response( return quart.Response(
@@ -99,7 +101,7 @@ async def view(id_: str) -> typing.Union[quart.Response, str]:
) )
class RegisterForm(flask_wtf.FlaskForm): # type:ignore class RegisterForm(BaseForm):
localpart = wtforms.StringField( localpart = wtforms.StringField(
_l("Username"), _l("Username"),
) )
@@ -145,15 +147,15 @@ async def register(id_: str) -> typing.Union[str, quart.Response]:
except aiohttp.ClientResponseError as exc: except aiohttp.ClientResponseError as exc:
if exc.status == 409: if exc.status == 409:
form.localpart.errors.append( form.localpart.errors.append(
_l("That username is already taken") _l("That username is already taken.")
) )
elif exc.status == 403: elif exc.status == 403:
form.localpart.errors.append( form.localpart.errors.append(
_l("Registration was declined for unknown reasons") _l("Registration was declined for unknown reasons.")
) )
elif exc.status == 400: elif exc.status == 400:
form.localpart.errors.append( form.localpart.errors.append(
_l("The username is not valid") _l("The username is not valid.")
) )
elif exc.status == 404: elif exc.status == 404:
return redirect(url_for(".view", id_=id_)) return redirect(url_for(".view", id_=id_))
@@ -170,7 +172,7 @@ async def register(id_: str) -> typing.Union[str, quart.Response]:
) )
class ResetForm(flask_wtf.FlaskForm): # type:ignore class ResetForm(BaseForm):
password = wtforms.PasswordField( password = wtforms.PasswordField(
_l("Password"), _l("Password"),
) )
@@ -213,7 +215,7 @@ async def reset(id_: str) -> typing.Union[str, quart.Response]:
except aiohttp.ClientResponseError as exc: except aiohttp.ClientResponseError as exc:
if exc.status == 403: if exc.status == 403:
form.localpart.errors.append( form.localpart.errors.append(
_l("Registration was declined for unknown reasons") _l("Registration was declined for unknown reasons.")
) )
elif exc.status == 404: elif exc.status == 404:
return redirect(url_for(".view", id_=id_)) return redirect(url_for(".view", id_=id_))

View File

@@ -22,17 +22,16 @@ import babel
import wtforms import wtforms
import flask_wtf import flask_wtf
from flask_babel import lazy_gettext as _l, _ from flask_babel import lazy_gettext as _l, _
from . import xmpputil, _version from . import xmpputil, _version
from .infra import client from .infra import client, BaseForm
bp = quart.Blueprint("main", __name__) bp = quart.Blueprint("main", __name__)
class LoginForm(flask_wtf.FlaskForm): # type:ignore class LoginForm(BaseForm):
address = wtforms.TextField( address = wtforms.TextField(
_l("Address"), _l("Address"),
validators=[wtforms.validators.InputRequired()], validators=[wtforms.validators.InputRequired()],
@@ -101,6 +100,10 @@ async def about() -> str:
extra_versions["babel"] = babel.__version__ extra_versions["babel"] = babel.__version__
extra_versions["wtforms"] = wtforms.__version__ extra_versions["wtforms"] = wtforms.__version__
extra_versions["flask-wtf"] = flask_wtf.__version__ extra_versions["flask-wtf"] = flask_wtf.__version__
try:
extra_versions["Prosody"] = await client.get_server_version()
except quart.exceptions.Unauthorized:
extra_versions["Prosody"] = "unknown"
return await render_template( return await render_template(
"about.html", "about.html",
@@ -159,3 +162,8 @@ async def avatar(from_: str, code: str) -> quart.Response:
response.set_data(data) response.set_data(data)
return response return response
@bp.route("/_health")
async def health() -> Response:
return Response("STATUS OK", content_type="text/plain")

View File

@@ -332,15 +332,18 @@ class ProsodyClient:
) )
) )
def _store_token_in_session(self, token_info: TokenInfo) -> None:
http_session[self.SESSION_TOKEN] = token_info.token
http_session[self.SESSION_CACHED_SCOPE] = " ".join(token_info.scopes)
async def login(self, jid: str, password: str) -> bool: async def login(self, jid: str, password: str) -> bool:
async with self._plain_session as session: async with self._plain_session as session:
token_info = await self._oauth2_bearer_token( token_info = await self._oauth2_bearer_token(
session, jid, password, session, jid, password,
) )
http_session[self.SESSION_TOKEN] = token_info.token self._store_token_in_session(token_info)
http_session[self.SESSION_ADDRESS] = jid http_session[self.SESSION_ADDRESS] = jid
http_session[self.SESSION_CACHED_SCOPE] = " ".join(token_info.scopes)
return True return True
@property @property
@@ -445,6 +448,13 @@ class ProsodyClient:
headers=final_headers, headers=final_headers,
data=serialised) as resp: data=serialised) as resp:
if resp.status != 200: if resp.status != 200:
self.logger.debug(
"IQ HTTP response (in-reply-to id=%s) with non-OK status "
"%s: %s",
id_,
resp.status,
resp.reason,
)
abort(resp.status) abort(resp.status)
reply_payload = await resp.read() reply_payload = await resp.read()
self.logger.debug( self.logger.debug(
@@ -493,6 +503,29 @@ class ProsodyClient:
async with session.post(self._rest_endpoint, data=req) as resp: async with session.post(self._rest_endpoint, data=req) as resp:
return resp.status == 200 return resp.status == 200
@autosession
async def get_server_version(self, session: aiohttp.ClientSession) -> str:
_, domain, _ = split_jid(self.session_address)
req = {
"kind": "iq",
"type": "get",
"version": True,
"to": domain,
}
async with session.post(self._rest_endpoint, data=req) as resp:
if resp.status != 200:
return "unknwn"
try:
return (await resp.json())["version"]["version"]
except Exception as exc:
self.logger.debug(
"failed to parse prosody version from response"
" (%s: %s)",
type(exc), exc,
)
return "unknown"
@autosession @autosession
async def get_user_nickname( async def get_user_nickname(
self, self,
@@ -767,7 +800,7 @@ class ProsodyClient:
# got there, replacing the current session token on the way. # got there, replacing the current session token on the way.
async with self._plain_session as session: async with self._plain_session as session:
token = await self._oauth2_bearer_token( token_info = await self._oauth2_bearer_token(
session, session,
self.session_address, self.session_address,
current_password, current_password,
@@ -779,14 +812,14 @@ class ProsodyClient:
new_password new_password
), ),
headers={ headers={
"Authorization": "Bearer {}".format(token), "Authorization": "Bearer {}".format(token_info.token),
}, },
sensitive=True, sensitive=True,
) )
# TODO: error handling # TODO: error handling
# TODO: obtain a new token using the new password to allow the # TODO: obtain a new token using the new password to allow the
# server to expire/revoke all tokens on password change. # server to expire/revoke all tokens on password change.
http_session[self.SESSION_TOKEN] = token self._store_token_in_session(token_info)
def _raise_error_from_response( def _raise_error_from_response(
self, self,

View File

@@ -54,6 +54,8 @@ div.install-buttons {
ul { ul {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
flex-wrap: wrap;
justify-content: center;
list-style-type: none; list-style-type: none;
margin: $w-l1 0; margin: $w-l1 0;
padding: 0; padding: 0;
@@ -74,6 +76,10 @@ img.play {
height: $w-l3; height: $w-l3;
} }
img.fdroid {
height: $w-l3;
}
.tabbox { .tabbox {
display: flex; display: flex;
flex-direction: column; flex-direction: column;

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -18,7 +18,7 @@
<col/> <col/>
<thead> <thead>
<tr> <tr>
<th>{% trans %}Valid until{% endtrans %}</th> <th>{% trans %}Expires{% endtrans %}</th>
<th class="collapsible">{% trans %}Type{% endtrans %}</th> <th class="collapsible">{% trans %}Type{% endtrans %}</th>
<th class="collapsible">{% trans %}Circle{% endtrans %}</th> <th class="collapsible">{% trans %}Circle{% endtrans %}</th>
<th>{% trans %}Actions{% endtrans %}</th> <th>{% trans %}Actions{% endtrans %}</th>

View File

@@ -27,8 +27,9 @@
<ul> <ul>
<li><a href="{{ play_store_url }}"><img alt='{% trans %}Get it on Google Play{% endtrans %}' src='https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png' class="play"/></a></li> <li><a href="{{ play_store_url }}"><img alt='{% trans %}Get it on Google Play{% endtrans %}' src='https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png' class="play"/></a></li>
{%- if apple_store_url -%} {%- if apple_store_url -%}
<li><a href="{{ apple_store_url }}"><img alt='{% trans %}Download on the App Store{% endtrans %}' src="{{ apple_store_badge() }}" class="apple"></a></li> <li><a href="{{ apple_store_url }}" class="popover" data-popover-id="apple-popover"><img alt='{% trans %}Download on the App Store{% endtrans %}' src="{{ apple_store_badge() }}" class="apple"></a></li>
{%- endif -%} {%- endif -%}
<li><a href="{{ f_droid_url }}" class="popover" data-popover-id="fdroid-popover"><img alt='{% trans %}Get it on F-Droid{% endtrans %}' src='{{ url_for('static', filename='img/f-droid-badge.png') }}' class="fdroid"/></a></li>
</ul> </ul>
{%- call standard_button("qrcode", "#qr-modal", class="primary", onclick="open_modal(this); return false;") -%} {%- call standard_button("qrcode", "#qr-modal", class="primary", onclick="open_modal(this); return false;") -%}
{% trans %}Send to mobile device{% endtrans %} {% trans %}Send to mobile device{% endtrans %}
@@ -84,10 +85,77 @@
{%- endcall -%} {%- endcall -%}
</div> </div>
</div> </div>
{%- if apple_store_url -%}
<div id="apple-popover" class="modal" tabindex="-1" role="dialog" aria-hidden="true" style="display: none;" onclick="close_modal(this); return false;">
<div role="document" class="elevated box el-2" onclick="event.stopPropagation();">
<header class="modal-title">
{#- -#}
<span>{% trans %}Install on iOS{% endtrans %}</span>
{#- -#}
{%- call action_button("close", "#", onclick="close_modal(this.parentNode.parentNode.parentNode); return false;", class="tertiary") -%}
{% trans %}Close{% endtrans %}
{%- endcall -%}
</header>
<p>{% trans %}After downloading Snikket from the app store, you have to return to this invite link and tap on "Open the app" to proceed.{% endtrans %}</p>
<ol>
<li><p>{% trans %}First download Snikket from the app store using the button below:{% endtrans %}</p>
<p><a href="{{ apple_store_url }}"><img alt='{% trans %}Download on the App Store{% endtrans %}' src="{{ apple_store_badge() }}" class="apple"></a></p>
<li><p>{% trans %}After the installation is complete, you can return to this page and tap the "Open the app" button to continue with the setup:{% endtrans %}</p>
<p>
{%- call standard_button("exit_to_app", invite.xmpp_uri, class="primary") -%}
{% trans %}Open the app{% endtrans %}
{%- endcall -%}
</p></li>
</ol>
{#- -#}
{%- call standard_button("close", "#", onclick="close_modal(this.parentNode.parentNode); return false;", class="secondary") -%}
{% trans %}Close{% endtrans %}
{%- endcall -%}
</div>
</div>
{%- endif -%}
<div id="fdroid-popover" class="modal" tabindex="-1" role="dialog" aria-hidden="true" style="display: none;" onclick="close_modal(this); return false;">
<div role="document" class="elevated box el-2" onclick="event.stopPropagation();">
<header class="modal-title">
{#- -#}
<span>{% trans %}Install via F-Droid{% endtrans %}</span>
{#- -#}
{%- call action_button("close", "#", onclick="close_modal(this.parentNode.parentNode.parentNode); return false;", class="tertiary") -%}
{% trans %}Close{% endtrans %}
{%- endcall -%}
</header>
<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>
<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") -%}
{% trans %}Open the app{% endtrans %}
{%- endcall -%}
</p></li>
</ol>
{#- -#}
{%- call standard_button("close", "#", onclick="close_modal(this.parentNode.parentNode); return false;", class="secondary") -%}
{% trans %}Close{% endtrans %}
{%- endcall -%}
</div>
</div>
<script type="text/javascript"> <script type="text/javascript">
var catch_popover = function() {
open_modal(this);
return false;
}
var onload = function() { var onload = function() {
apply_qr_code(document.getElementById("qr-invite-page")); apply_qr_code(document.getElementById("qr-invite-page"));
apply_qr_code(document.getElementById("qr-uri")); apply_qr_code(document.getElementById("qr-uri"));
var popover_as = document.getElementsByClassName("popover");
for (var i = 0; i < popover_as.length; ++i) {
var a = popover_as[i];
a.onclick = catch_popover;
a.href = "#" + a.dataset.popoverId;
}
}; };
</script> </script>
{% endblock %} {% endblock %}

View File

@@ -80,7 +80,7 @@
<div class="box warning">{#- -#} <div class="box warning">{#- -#}
<header>{% trans %}Invalid input{% endtrans %}</header> <header>{% trans %}Invalid input{% endtrans %}</header>
{%- if error_list | length == 1 -%} {%- if error_list | length == 1 -%}
<p>{{ error_list[0] }}.</p> <p>{{ error_list[0] }}</p>
{%- else -%} {%- else -%}
<ul> <ul>
{%- for error in error_list -%} {%- for error in error_list -%}

View File

@@ -1,5 +1,5 @@
{% extends "base.html" %} {% extends "base.html" %}
{% from "library.j2" import box, form_button %} {% from "library.j2" import box, form_button, render_errors %}
{% set body_id = "login" %} {% set body_id = "login" %}
{% block head_lead %} {% block head_lead %}
<title>{{ _("Snikket Login") }}</title> <title>{{ _("Snikket Login") }}</title>
@@ -14,11 +14,7 @@
<p class="form-desc">{{ _("Enter your Snikket address and password to manage your account.") }}</p> <p class="form-desc">{{ _("Enter your Snikket address and password to manage your account.") }}</p>
<form method="POST" action="{{ url_for('.login') }}" name="login" id="login-form" onsubmit="return domainCheck();" data-addressid="{{ form.address.id }}" data-domain="{{ config["SNIKKET_DOMAIN"] }}"> <form method="POST" action="{{ url_for('.login') }}" name="login" id="login-form" onsubmit="return domainCheck();" data-addressid="{{ form.address.id }}" data-domain="{{ config["SNIKKET_DOMAIN"] }}">
{{ form.csrf_token }} {{ form.csrf_token }}
{% if form.errors %} {% call render_errors(form) %}{% endcall %}
{% call box("alert", _("Login failed")) %}
<p>{{ form.errors.values() | flatten | join(", ")}}</p>
{% endcall %}
{% endif %}
<div class="box alert" role="alert" style="display: none;" id="id-warning"> <div class="box alert" role="alert" style="display: none;" id="id-warning">
<header>{% trans %}Incorrect address{% endtrans %}</header> <header>{% trans %}Incorrect address{% endtrans %}</header>
<p>{% trans snikket_domain=config["SNIKKET_DOMAIN"] %}This Snikket service only hosts addresses ending in <em>@{{ snikket_domain }}</em>. Your password was not sent.{% endtrans %}</p> <p>{% trans snikket_domain=config["SNIKKET_DOMAIN"] %}This Snikket service only hosts addresses ending in <em>@{{ snikket_domain }}</em>. Your password was not sent.{% endtrans %}</p>

View File

@@ -9,7 +9,7 @@
</div> </div>
<div id="mwrap"> <div id="mwrap">
{#- -#} {#- -#}
<div class="flashbox"> <div class="flashbox" id="flashbox">
{%- for category, message in get_flashed_messages(True) -%} {%- for category, message in get_flashed_messages(True) -%}
<div class="box {{ category }} el-5" role="alert"> <div class="box {{ category }} el-5" role="alert">
{% if category == "success" %} {% if category == "success" %}

View File

@@ -1,10 +1,11 @@
{% extends "app.html" %} {% extends "app.html" %}
{% from "library.j2" import standard_button, form_button, avatar with context %} {% from "library.j2" import standard_button, form_button, render_errors, avatar with context %}
{% block content %} {% block content %}
<h1>{% trans %}Update your profile{% endtrans %}</h1> <h1>{% trans %}Update your profile{% endtrans %}</h1>
<div class="form layout-expanded"><form method="POST" enctype="multipart/form-data"> <div class="form layout-expanded"><form method="POST" enctype="multipart/form-data">
<h2 class="form-title">{% trans %}Profile{% endtrans %}</h2> <h2 class="form-title">{% trans %}Profile{% endtrans %}</h2>
{{ form.csrf_token }} {{ form.csrf_token }}
{% call render_errors(form) %}{% endcall %}
<div class="f-ebox"> <div class="f-ebox">
{{ form.nickname.label }} {{ form.nickname.label }}
{{ form.nickname(placeholder=user_info.username) }} {{ form.nickname(placeholder=user_info.username) }}
@@ -13,7 +14,10 @@
{{ form.avatar.label }} {{ form.avatar.label }}
<div class="avatar-wrap"> <div class="avatar-wrap">
{%- call avatar(user_info.address, user_info.avatar_hash ) %}{% endcall -%} {%- call avatar(user_info.address, user_info.avatar_hash ) %}{% endcall -%}
{{ form.avatar }} {{ form.avatar(accept="image/png",
data_maxsize=max_avatar_size,
data_warning_header=avatar_too_big_warning_header,
data_maxsize_warning=avatar_too_big_warning) }}
</div> </div>
</div> </div>
<h3 class="form-title">{% trans %}Visibility{% endtrans %}</h3> <h3 class="form-title">{% trans %}Visibility{% endtrans %}</h3>
@@ -28,5 +32,24 @@
{%- call standard_button("back", url_for('.index'), class="secondary") %}{% trans %}Back{% endtrans %}{% endcall -%} {%- call standard_button("back", url_for('.index'), class="secondary") %}{% trans %}Back{% endtrans %}{% endcall -%}
{%- call form_button("done", form.action_save, class="primary") %}{% endcall -%} {%- call form_button("done", form.action_save, class="primary") %}{% endcall -%}
</div> </div>
<script type="text/javascript">
document.getElementById("{{ form.avatar.id }}").onchange = function() {
var maxsize_s = this.dataset.maxsize;
var maxsize = parseInt(maxsize_s);
var existing_alert = document.getElementById("avatar-alert");
if (existing_alert) {
existing_alert.parentNode.removeChild(existing_alert);
}
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> </form></div>
{% endblock %} {% endblock %}

File diff suppressed because it is too large Load Diff

View File

@@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: SnikketWeb 0.1.0\n" "Project-Id-Version: SnikketWeb 0.1.0\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2021-01-30 12:45+0100\n" "POT-Creation-Date: 2021-02-23 07:55+0100\n"
"PO-Revision-Date: 2021-02-10 17:01+0000\n" "PO-Revision-Date: 2021-02-25 16:02+0000\n"
"Last-Translator: Jonas Schäfer <jonas@zombofant.net>\n" "Last-Translator: Jonas Schäfer <jonas@zombofant.net>\n"
"Language-Team: German <https://i18n.sotecware.net/projects/snikket/" "Language-Team: German <https://i18n.sotecware.net/projects/snikket/"
"web-portal/de/>\n" "web-portal/de/>\n"
@@ -24,194 +24,262 @@ msgstr ""
msgid "Delete user permanently" msgid "Delete user permanently"
msgstr "Benutzer endgültig löschen" msgstr "Benutzer endgültig löschen"
#: snikket_web/admin.py:129 #: snikket_web/admin.py:73
msgid "User deleted"
msgstr "Benutzer gelöscht"
#: snikket_web/admin.py:116
msgid "Password reset link created"
msgstr "Link zum Zurücksetzen des Passwortes erzeugt"
#: snikket_web/admin.py:122
msgid "Password reset link deleted"
msgstr "Link gelöscht"
#: snikket_web/admin.py:141
msgid "Invite to circle" msgid "Invite to circle"
msgstr "In Gemeinschaft einladen" msgstr "In Gemeinschaft einladen"
#: snikket_web/admin.py:135 #: snikket_web/admin.py:147
msgid "At least one circle must be selected" msgid "At least one circle must be selected"
msgstr "Mindestens eine Gemeinschaft muss ausgewählt sein" msgstr "Mindestens eine Gemeinschaft muss ausgewählt sein"
#: snikket_web/admin.py:140 #: snikket_web/admin.py:152
msgid "Valid for" msgid "Valid for"
msgstr "Gültig für" msgstr "Gültig für"
#: snikket_web/admin.py:142 #: snikket_web/admin.py:154
msgid "One hour" msgid "One hour"
msgstr "Eine Stunde" msgstr "Eine Stunde"
#: snikket_web/admin.py:143 #: snikket_web/admin.py:155
msgid "Twelve hours" msgid "Twelve hours"
msgstr "Zwölf Stunden" msgstr "Zwölf Stunden"
#: snikket_web/admin.py:144 #: snikket_web/admin.py:156
msgid "One day" msgid "One day"
msgstr "Ein Tag" msgstr "Ein Tag"
#: snikket_web/admin.py:145 #: snikket_web/admin.py:157
msgid "One week" msgid "One week"
msgstr "Eine Woche" msgstr "Eine Woche"
#: snikket_web/admin.py:146 #: snikket_web/admin.py:158
msgid "Four weeks" msgid "Four weeks"
msgstr "Vier Wochen" msgstr "Vier Wochen"
#: snikket_web/admin.py:152 snikket_web/templates/admin_edit_invite.html:17 #: snikket_web/admin.py:164 snikket_web/templates/admin_edit_invite.html:17
msgid "Invitation type" msgid "Invitation type"
msgstr "Art der Einladung" msgstr "Art der Einladung"
#: snikket_web/admin.py:154 snikket_web/templates/library.j2:116 #: snikket_web/admin.py:166 snikket_web/templates/library.j2:116
msgid "Individual" msgid "Individual"
msgstr "Einzelperson" msgstr "Einzelperson"
#: snikket_web/admin.py:155 snikket_web/templates/library.j2:114 #: snikket_web/admin.py:167 snikket_web/templates/library.j2:114
msgid "Group" msgid "Group"
msgstr "Gruppe" msgstr "Gruppe"
#: snikket_web/admin.py:161 #: snikket_web/admin.py:173
msgid "New invitation link" msgid "New invitation link"
msgstr "Neuer Einladungslink" msgstr "Neuer Einladungslink"
#: snikket_web/admin.py:223 #: snikket_web/admin.py:235
msgid "Revoke" msgid "Revoke"
msgstr "Löschen" msgstr "Löschen"
#: snikket_web/admin.py:283 snikket_web/admin.py:327 #: snikket_web/admin.py:259
msgid "Invitation created"
msgstr "Einladung angelegt"
#: snikket_web/admin.py:275
msgid "No such invitation exists"
msgstr "Diese Einladung existiert nicht"
#: snikket_web/admin.py:290
msgid "Invitation revoked"
msgstr "Einladung gelöscht"
#: snikket_web/admin.py:307 snikket_web/admin.py:355
msgid "Name" msgid "Name"
msgstr "Name" msgstr "Name"
#: snikket_web/admin.py:288 snikket_web/templates/admin_circles.html:47 #: snikket_web/admin.py:312 snikket_web/templates/admin_circles.html:47
msgid "Create circle" msgid "Create circle"
msgstr "Gemeinschaft gründen" msgstr "Gemeinschaft gründen"
#: snikket_web/admin.py:332 #: snikket_web/admin.py:342
msgid "Circle created"
msgstr "Gemeinschaft gegründet"
#: snikket_web/admin.py:360
msgid "Select user" msgid "Select user"
msgstr "Benutzer auswählen" msgstr "Benutzer auswählen"
#: snikket_web/admin.py:337 #: snikket_web/admin.py:365
msgid "Update circle" msgid "Update circle"
msgstr "Gemeinschaft ändern" msgstr "Gemeinschaft ändern"
#: snikket_web/admin.py:341 #: snikket_web/admin.py:369
msgid "Delete circle permanently" msgid "Delete circle permanently"
msgstr "Gemeinschaft endgültig löschen" msgstr "Gemeinschaft endgültig löschen"
#: snikket_web/admin.py:347 #: snikket_web/admin.py:375
msgid "Add user" msgid "Add user"
msgstr "Benutzer hinzufügen" msgstr "Benutzer hinzufügen"
#: snikket_web/admin.py:391
msgid "No such circle exists"
msgstr "Diese Gemeinschaft existiert nicht"
#: snikket_web/admin.py:428
msgid "Circle data updated"
msgstr "Gemeinschaftsdaten aktualisiert"
#: snikket_web/admin.py:434
msgid "Circle deleted"
msgstr "Gemeinschaft gelöscht"
#: snikket_web/admin.py:445
msgid "User added to circle"
msgstr "Benutzer zur Gemeinschaft hinzugefügt"
#: snikket_web/admin.py:454
msgid "User removed from circle"
msgstr "Benutzer aus der Gemeinschaft entfernt"
#: snikket_web/infra.py:40 #: snikket_web/infra.py:40
msgid "Main" msgid "Main"
msgstr "Kern" msgstr "Kern"
#: snikket_web/invite.py:93 #: snikket_web/invite.py:104
msgid "Username" msgid "Username"
msgstr "Benutzername" msgstr "Benutzername"
#: snikket_web/invite.py:97 snikket_web/invite.py:164 snikket_web/main.py:41 #: snikket_web/invite.py:108 snikket_web/invite.py:175 snikket_web/main.py:42
msgid "Password" msgid "Password"
msgstr "Passwort" msgstr "Passwort"
#: snikket_web/invite.py:101 snikket_web/invite.py:168 #: snikket_web/invite.py:112 snikket_web/invite.py:179
msgid "Confirm password" msgid "Confirm password"
msgstr "Passwort (Bestätigung)" msgstr "Passwort (Bestätigung)"
#: snikket_web/invite.py:105 snikket_web/invite.py:172 #: snikket_web/invite.py:116 snikket_web/invite.py:183
msgid "The passwords must match" msgid "The passwords must match"
msgstr "Die Passwörter müssen übereinstimmen" msgstr "Die Passwörter müssen übereinstimmen"
#: snikket_web/invite.py:110 #: snikket_web/invite.py:121
msgid "Create account" msgid "Create account"
msgstr "Konto anlegen" msgstr "Konto anlegen"
#: snikket_web/invite.py:137 #: snikket_web/invite.py:148
msgid "That username is already taken" msgid "That username is already taken"
msgstr "Dieser Benutzername ist bereits belegt" msgstr "Dieser Benutzername ist bereits belegt"
#: snikket_web/invite.py:141 snikket_web/invite.py:205 #: snikket_web/invite.py:152 snikket_web/invite.py:216
msgid "Registration was declined for unknown reasons" msgid "Registration was declined for unknown reasons"
msgstr "Die Registrierung wurde aus unbekannten Gründen abgelehnt" msgstr "Die Registrierung wurde aus unbekannten Gründen abgelehnt"
#: snikket_web/invite.py:145 #: snikket_web/invite.py:156
msgid "The username is not valid" msgid "The username is not valid"
msgstr "Der Benutzername ist ungültig" msgstr "Der Benutzername ist ungültig"
#: snikket_web/invite.py:177 snikket_web/templates/user_home.html:32 #: snikket_web/invite.py:188 snikket_web/templates/user_home.html:32
#: snikket_web/templates/user_passwd.html:32 #: snikket_web/templates/user_passwd.html:29
msgid "Change password" msgid "Change password"
msgstr "Passwort ändern" msgstr "Passwort ändern"
#: snikket_web/main.py:36 #: snikket_web/main.py:37
msgid "Address" msgid "Address"
msgstr "Adresse" msgstr "Adresse"
#: snikket_web/main.py:46 #: snikket_web/main.py:47
msgid "Sign in" msgid "Sign in"
msgstr "Anmelden" msgstr "Anmelden"
#: snikket_web/main.py:72 #: snikket_web/main.py:56
msgid "Invalid username or password." msgid "Invalid username or password."
msgstr "Benutzername oder Passwort falsch." msgstr "Benutzername oder Passwort falsch."
#: snikket_web/user.py:21 #: snikket_web/main.py:84
msgid "Login successful!"
msgstr "Anmeldung erfolgreich!"
#: snikket_web/user.py:28
msgid "Current password" msgid "Current password"
msgstr "Aktuelles Passwort" msgstr "Aktuelles Passwort"
#: snikket_web/user.py:26 #: snikket_web/user.py:33
msgid "New password" msgid "New password"
msgstr "Neues Passwort" msgstr "Neues Passwort"
#: snikket_web/user.py:31 #: snikket_web/user.py:38
msgid "Confirm new password" msgid "Confirm new password"
msgstr "Neues Passwort (Bestätigung)" msgstr "Neues Passwort (Bestätigung)"
#: snikket_web/user.py:35 #: snikket_web/user.py:42
msgid "The new passwords must match" msgid "The new passwords must match"
msgstr "Die neuen Passwörter müssen übereinstimmen" msgstr "Die neuen Passwörter müssen übereinstimmen"
#: snikket_web/user.py:42 #: snikket_web/user.py:49
msgid "Sign out" msgid "Sign out"
msgstr "Abmelden" msgstr "Abmelden"
#: snikket_web/user.py:47 #: snikket_web/user.py:54
msgid "Nobody" msgid "Nobody"
msgstr "Niemand" msgstr "Niemand"
#: snikket_web/user.py:48 #: snikket_web/user.py:55
msgid "Friends only" msgid "Friends only"
msgstr "Nur Freunde" msgstr "Nur Freunde"
#: snikket_web/user.py:49 #: snikket_web/user.py:56
msgid "Everyone" msgid "Everyone"
msgstr "Jeder" msgstr "Jeder"
#: snikket_web/templates/admin_delete_user.html:12 #: snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:11 snikket_web/user.py:55 #: snikket_web/templates/admin_users.html:11 snikket_web/user.py:62
msgid "Display name" msgid "Display name"
msgstr "Anzeigename" msgstr "Anzeigename"
#: snikket_web/user.py:59 #: snikket_web/user.py:66
msgid "Avatar" msgid "Avatar"
msgstr "Bild" msgstr "Bild"
#: snikket_web/user.py:63 #: snikket_web/user.py:70
msgid "Profile visibility" msgid "Profile visibility"
msgstr "Profilsichtbarkeit" msgstr "Profilsichtbarkeit"
#: snikket_web/user.py:68 #: snikket_web/user.py:75
msgid "Update profile" msgid "Update profile"
msgstr "Profil bearbeiten" msgstr "Profil bearbeiten"
#: snikket_web/user.py:93 #: snikket_web/user.py:100
msgid "Incorrect password" msgid "Incorrect password"
msgstr "Ungültiges Passwort" msgstr "Ungültiges Passwort"
#: snikket_web/templates/_footer.html:4 snikket_web/templates/login.html:36 #: snikket_web/user.py:104
msgid "Password changed"
msgstr "Passwort geändert"
#: snikket_web/user.py:146
msgid "Profile updated"
msgstr "Profil gespeichert"
#: snikket_web/templates/_footer.html:4
#, python-format #, python-format
msgid "A <a href=\"%(about_url)s\">Snikket</a> service" msgid "A <a href=\"%(about_url)s\">Snikket</a> service"
msgstr "Ein <a href=\"%(about_url)s\">Snikket</a>-Dienst" msgstr "Ein <a href=\"%(about_url)s\">Snikket</a>-Dienst"
#: snikket_web/templates/about.html:9 #: snikket_web/templates/_footer.html:6
msgid ""
"“Snikket” and the parrot logo are trademarks of Snikket Community Interest "
"Company."
msgstr ""
"„Snikket“ und das Papageienlogo sind Markenzeichen der Snikket Community "
"Interest Company."
#: snikket_web/templates/about.html:4 snikket_web/templates/about.html:9
msgid "About Snikket" msgid "About Snikket"
msgstr "Über Snikket" msgstr "Über Snikket"
@@ -271,10 +339,25 @@ msgstr ""
"\"%(apache20_url)s\">Apache 2.0 Lizenz</a> bereitgestellt werden." "\"%(apache20_url)s\">Apache 2.0 Lizenz</a> bereitgestellt werden."
#: snikket_web/templates/about.html:17 #: snikket_web/templates/about.html:17
msgid "Trademarks"
msgstr "Markenzeichen"
#: snikket_web/templates/about.html:18
#, python-format
msgid ""
"“Snikket” and the parrot logo are trademarks of Snikket Community Interest "
"Company. For more information about the trademarks, visit the <a href="
"\"%(trademarks_url)s\">Snikket Trademarks information page</a>."
msgstr ""
"„Snikket“ und das Papageienlogo sind Markenzeichen der Snikket Community "
"Interest Company. Mehr Informationen über die Markenzeichen gibt es auf der "
"<a href=\"%(trademarks_url)s\">„Snikket Trademarks“ Informationsseite</a>."
#: snikket_web/templates/about.html:19
msgid "Software Versions" msgid "Software Versions"
msgstr "Softwareversionen" msgstr "Softwareversionen"
#: snikket_web/templates/about.html:27 #: snikket_web/templates/about.html:29
msgid "Back to the main page" msgid "Back to the main page"
msgstr "Zurück zur Hauptseite" msgstr "Zurück zur Hauptseite"
@@ -373,7 +456,7 @@ msgid "Debug information for %(user_name)s"
msgstr "Debugging-Informationen für %(user_name)s" msgstr "Debugging-Informationen für %(user_name)s"
#: snikket_web/templates/admin_debug_user.html:11 #: snikket_web/templates/admin_debug_user.html:11
#: snikket_web/templates/user_passwd.html:26 #: snikket_web/templates/user_passwd.html:23
msgid "Warning" msgid "Warning"
msgstr "Warnung" msgstr "Warnung"
@@ -426,9 +509,9 @@ msgstr ""
#: snikket_web/templates/admin_edit_circle.html:44 #: snikket_web/templates/admin_edit_circle.html:44
#: snikket_web/templates/admin_edit_invite.html:49 #: snikket_web/templates/admin_edit_invite.html:49
#: snikket_web/templates/admin_reset_user_password.html:25 #: snikket_web/templates/admin_reset_user_password.html:25
#: snikket_web/templates/user_logout.html:13 #: snikket_web/templates/user_logout.html:10
#: snikket_web/templates/user_passwd.html:30 #: snikket_web/templates/user_passwd.html:27
#: snikket_web/templates/user_profile.html:31 #: snikket_web/templates/user_profile.html:28
msgid "Back" msgid "Back"
msgstr "Zurück" msgstr "Zurück"
@@ -506,7 +589,6 @@ msgid "View invitation"
msgstr "Einladung anzeigen" msgstr "Einladung anzeigen"
#: snikket_web/templates/admin_edit_invite.html:13 #: snikket_web/templates/admin_edit_invite.html:13
#: snikket_web/templates/admin_invites.html:21
#: snikket_web/templates/admin_reset_user_password.html:15 #: snikket_web/templates/admin_reset_user_password.html:15
msgid "Valid until" msgid "Valid until"
msgstr "Gültig bis" msgstr "Gültig bis"
@@ -604,6 +686,10 @@ msgstr "Adminbereich verlassen"
msgid "Pending invitations" msgid "Pending invitations"
msgstr "Ausstehende Einladungen" msgstr "Ausstehende Einladungen"
#: snikket_web/templates/admin_invites.html:21
msgid "Expires"
msgstr "Läuft ab"
#: snikket_web/templates/admin_invites.html:22 #: snikket_web/templates/admin_invites.html:22
msgid "Type" msgid "Type"
msgstr "Art" msgstr "Art"
@@ -689,7 +775,7 @@ msgid "The web portal encountered an internal error."
msgstr "Das Webportal hatte einen internen Fehler." msgstr "Das Webportal hatte einen internen Fehler."
#: snikket_web/templates/invite_invalid.html:5 #: snikket_web/templates/invite_invalid.html:5
#: snikket_web/templates/invite_view.html:12 #: snikket_web/templates/invite_view.html:13
#, python-format #, python-format
msgid "Invite to %(site_name)s" msgid "Invite to %(site_name)s"
msgstr "Einladung zu %(site_name)s" msgstr "Einladung zu %(site_name)s"
@@ -697,7 +783,7 @@ msgstr "Einladung zu %(site_name)s"
#: snikket_web/templates/invite_invalid.html:6 #: snikket_web/templates/invite_invalid.html:6
#: snikket_web/templates/invite_register.html:10 #: snikket_web/templates/invite_register.html:10
#: snikket_web/templates/invite_success.html:11 #: snikket_web/templates/invite_success.html:11
#: snikket_web/templates/invite_view.html:13 #: snikket_web/templates/invite_view.html:14
#, python-format #, python-format
msgid "Powered by <img src=\"%(logo_url)s\" alt=\"Snikket\">" msgid "Powered by <img src=\"%(logo_url)s\" alt=\"Snikket\">"
msgstr "Betrieben mit <img alt=\"Snikket\" src=\"%(logo_url)s\">" msgstr "Betrieben mit <img alt=\"Snikket\" src=\"%(logo_url)s\">"
@@ -744,18 +830,18 @@ msgstr ""
"innerhalb der App zu machen. Das geht, indem du den folgenden Knopf drückst:" "innerhalb der App zu machen. Das geht, indem du den folgenden Knopf drückst:"
#: snikket_web/templates/invite_register.html:14 #: snikket_web/templates/invite_register.html:14
#: snikket_web/templates/invite_view.html:37 #: snikket_web/templates/invite_view.html:38
msgid "App already installed?" msgid "App already installed?"
msgstr "App schon installiert?" msgstr "App schon installiert?"
#: snikket_web/templates/invite_register.html:16 #: snikket_web/templates/invite_register.html:16
#: snikket_web/templates/invite_reset_view.html:21 #: snikket_web/templates/invite_reset_view.html:21
#: snikket_web/templates/invite_view.html:39 #: snikket_web/templates/invite_view.html:40
msgid "Open the app" msgid "Open the app"
msgstr "App öffnen" msgstr "App öffnen"
#: snikket_web/templates/invite_register.html:18 #: snikket_web/templates/invite_register.html:18
#: snikket_web/templates/invite_view.html:41 #: snikket_web/templates/invite_view.html:42
msgid "This button works only if you have the app installed already!" msgid "This button works only if you have the app installed already!"
msgstr "Dieser Knopf funktioniert nur, wenn du die App schon installiert hast!" msgstr "Dieser Knopf funktioniert nur, wenn du die App schon installiert hast!"
@@ -831,8 +917,8 @@ msgid ""
"This page allows you to reset the password of your account, <strong>" "This page allows you to reset the password of your account, <strong>"
"%(account_jid)s</strong>, once." "%(account_jid)s</strong>, once."
msgstr "" msgstr ""
"Diese Seite erlaubt es dir einmalig, das Passwort deines Kontos " "Diese Seite erlaubt es dir einmalig, das Passwort deines Kontos <strong>"
"<strong>%(account_jid)s</strong> zurückzusetzen." "%(account_jid)s</strong> zurückzusetzen."
#: snikket_web/templates/invite_reset_view.html:17 #: snikket_web/templates/invite_reset_view.html:17
msgid "Using the app" msgid "Using the app"
@@ -853,7 +939,7 @@ msgstr ""
"Das geht mit Hilfe des Scan-Knopfes in der oberen Leiste." "Das geht mit Hilfe des Scan-Knopfes in der oberen Leiste."
#: snikket_web/templates/invite_reset_view.html:26 #: snikket_web/templates/invite_reset_view.html:26
#: snikket_web/templates/invite_view.html:75 #: snikket_web/templates/invite_view.html:76
msgid "" msgid ""
"Your camera will turn on. Point it at the square code below until it is " "Your camera will turn on. Point it at the square code below until it is "
"within the highlighted square on your screen, and wait until the app " "within the highlighted square on your screen, and wait until the app "
@@ -869,7 +955,7 @@ msgstr ""
"Du wirst dann aufgefordert, ein neues Passwort für deinen Account einzugeben." "Du wirst dann aufgefordert, ein neues Passwort für deinen Account einzugeben."
#: snikket_web/templates/invite_reset_view.html:29 #: snikket_web/templates/invite_reset_view.html:29
#: snikket_web/templates/invite_view.html:43 #: snikket_web/templates/invite_view.html:44
msgid "Alternatives" msgid "Alternatives"
msgstr "Alternativen" msgstr "Alternativen"
@@ -917,7 +1003,7 @@ msgstr ""
msgid "Invite to %(site_name)s | Snikket" msgid "Invite to %(site_name)s | Snikket"
msgstr "Einladung zu %(site_name)s | Snikket" msgstr "Einladung zu %(site_name)s | Snikket"
#: snikket_web/templates/invite_view.html:15 #: snikket_web/templates/invite_view.html:16
#, python-format #, python-format
msgid "" msgid ""
"You have been invited to chat with %(inviter_name)s using Snikket, a secure, " "You have been invited to chat with %(inviter_name)s using Snikket, a secure, "
@@ -926,7 +1012,7 @@ msgstr ""
"%(inviter_name)s hat dich zum Chatten mit Snikket auf %(site_name)s " "%(inviter_name)s hat dich zum Chatten mit Snikket auf %(site_name)s "
"eingeladen, einer sicheren, privatsphärefreundlichen Chat-App." "eingeladen, einer sicheren, privatsphärefreundlichen Chat-App."
#: snikket_web/templates/invite_view.html:17 #: snikket_web/templates/invite_view.html:18
#, python-format #, python-format
msgid "" msgid ""
"You have been invited to chat on %(site_name)s using Snikket, a secure, " "You have been invited to chat on %(site_name)s using Snikket, a secure, "
@@ -935,37 +1021,37 @@ msgstr ""
"Dies ist eine Einladung zum Chatten auf %(site_name)s mit Snikket, einer " "Dies ist eine Einladung zum Chatten auf %(site_name)s mit Snikket, einer "
"sicheren, privatsphärefreundlichen Chat-App." "sicheren, privatsphärefreundlichen Chat-App."
#: snikket_web/templates/invite_view.html:19 #: snikket_web/templates/invite_view.html:20
msgid "Get started" msgid "Get started"
msgstr "Leg los!" msgstr "Leg los!"
#: snikket_web/templates/invite_view.html:21 #: snikket_web/templates/invite_view.html:22
msgid "Install the Snikket App on your Android or iOS device." msgid "Install the Snikket App on your Android or iOS device."
msgstr "Installiere die Snikket-App auf deinem Android- oder iOS-Gerät." msgstr "Installiere die Snikket-App auf deinem Android- oder iOS-Gerät."
#: snikket_web/templates/invite_view.html:23 #: snikket_web/templates/invite_view.html:24
#, python-format #, python-format
msgid "" msgid ""
"Install the Snikket App on your Android device (<a href=\"%(ios_info_url)s\" " "Install the Snikket App on your Android device (<a href=\"%(ios_info_url)s\" "
"rel=\"noopener noreferrer\" target=\"_blank\">iOS coming soon!</a>)." "rel=\"noopener noreferrer\" target=\"_blank\">iOS coming soon!</a>)."
msgstr "" msgstr ""
"Installiere die Snikket-App auf deinem Android-Gerät (<a href=\"" "Installiere die Snikket-App auf deinem Android-Gerät (<a href="
"%(ios_info_url)s\" rel=\"noopener noreferrer\" target=\"_blank\">iOS folgt " "\"%(ios_info_url)s\" rel=\"noopener noreferrer\" target=\"_blank\">iOS folgt "
"bald!</a>)." "bald!</a>)."
#: snikket_web/templates/invite_view.html:27 #: snikket_web/templates/invite_view.html:28
msgid "Get it on Google Play" msgid "Get it on Google Play"
msgstr "Von Google Play installieren" msgstr "Von Google Play installieren"
#: snikket_web/templates/invite_view.html:29 #: snikket_web/templates/invite_view.html:30
msgid "Download on the App Store" msgid "Download on the App Store"
msgstr "Laden im App Store" msgstr "Laden im App Store"
#: snikket_web/templates/invite_view.html:33 #: snikket_web/templates/invite_view.html:34
msgid "Not on mobile?" msgid "Send to mobile device"
msgstr "Nicht am Smartphone?" msgstr "An mobiles Gerät übertragen"
#: snikket_web/templates/invite_view.html:36 #: snikket_web/templates/invite_view.html:37
msgid "" msgid ""
"After installation the app should automatically open and prompt you to " "After installation the app should automatically open and prompt you to "
"create an account. If not, simply click the button below." "create an account. If not, simply click the button below."
@@ -974,7 +1060,7 @@ msgstr ""
"ein Benutzerkonto anzulegen. Falls nicht, tippe einfach auf die folgende " "ein Benutzerkonto anzulegen. Falls nicht, tippe einfach auf die folgende "
"Schaltfläche." "Schaltfläche."
#: snikket_web/templates/invite_view.html:44 #: snikket_web/templates/invite_view.html:45
#, python-format #, python-format
msgid "" msgid ""
"You can connect to Snikket using any XMPP-compatible software. If the button " "You can connect to Snikket using any XMPP-compatible software. If the button "
@@ -986,16 +1072,16 @@ msgstr ""
"dass du <a href=\"%(register_url)s\">manuell ein Benutzerkonto anlegen</a> " "dass du <a href=\"%(register_url)s\">manuell ein Benutzerkonto anlegen</a> "
"musst." "musst."
#: snikket_web/templates/invite_view.html:50 #: snikket_web/templates/invite_view.html:51
msgid "Scan invite code" msgid "Scan invite code"
msgstr "Einladungscode scannen" msgstr "Einladungscode scannen"
#: snikket_web/templates/invite_view.html:53 #: snikket_web/templates/invite_view.html:54
#: snikket_web/templates/invite_view.html:82 #: snikket_web/templates/invite_view.html:83
msgid "Close" msgid "Close"
msgstr "Schließen" msgstr "Schließen"
#: snikket_web/templates/invite_view.html:56 #: snikket_web/templates/invite_view.html:57
msgid "" msgid ""
"You can transfer this invite to your mobile device by scanning a code with " "You can transfer this invite to your mobile device by scanning a code with "
"your camera. You can use either a QR scanner app or the Snikket app itself." "your camera. You can use either a QR scanner app or the Snikket app itself."
@@ -1004,22 +1090,22 @@ msgstr ""
"untenstehenden Code mit deiner Kamera scannst. Dafür kannst du entweder " "untenstehenden Code mit deiner Kamera scannst. Dafür kannst du entweder "
"einen normalen QR-Scanner nehmen oder die Snikket-App selbst." "einen normalen QR-Scanner nehmen oder die Snikket-App selbst."
#: snikket_web/templates/invite_view.html:61 #: snikket_web/templates/invite_view.html:62
msgid "Using a QR code scanner" msgid "Using a QR code scanner"
msgstr "Mit einem QR-Code-Scanner" msgstr "Mit einem QR-Code-Scanner"
#: snikket_web/templates/invite_view.html:63 #: snikket_web/templates/invite_view.html:64
msgid "Using the Snikket app" msgid "Using the Snikket app"
msgstr "Mit der Snikket-App" msgstr "Mit der Snikket-App"
#: snikket_web/templates/invite_view.html:68 #: snikket_web/templates/invite_view.html:69
msgid "" msgid ""
"Use a <em>QR code</em> scanner on your mobile device to scan the code below:" "Use a <em>QR code</em> scanner on your mobile device to scan the code below:"
msgstr "" msgstr ""
"Benutze einen <em>QR-Code</em>-Scanner auf deinem mobilen Gerät um den " "Benutze einen <em>QR-Code</em>-Scanner auf deinem mobilen Gerät um den "
"untenstehenden Code zu scannen:" "untenstehenden Code zu scannen:"
#: snikket_web/templates/invite_view.html:74 #: snikket_web/templates/invite_view.html:75
msgid "" msgid ""
"Install the Snikket app on your mobile device, open it, and tap the 'Scan' " "Install the Snikket app on your mobile device, open it, and tap the 'Scan' "
"button at the top." "button at the top."
@@ -1064,6 +1150,27 @@ msgstr ""
msgid "Login failed" msgid "Login failed"
msgstr "Anmeldung fehlgeschlagen" msgstr "Anmeldung fehlgeschlagen"
#: snikket_web/templates/login.html:23
msgid "Incorrect address"
msgstr "Ungültige Adresse"
#: snikket_web/templates/login.html:24
#, python-format
msgid ""
"This Snikket service only hosts addresses ending in <em>@%(snikket_domain)s</"
"em>. Your password was not sent."
msgstr ""
"Dieser Snikket-Server ist nur für Adressen, die auf <em>@%(snikket_domain)s</"
"em> enden zuständig. Dein Passwort wurde nicht abgesendet."
#: snikket_web/templates/unauth.html:16
msgid "Operation successful"
msgstr "Aktion erfolgreich"
#: snikket_web/templates/unauth.html:18
msgid "Error"
msgstr "Fehler"
#: snikket_web/templates/user_home.html:9 #: snikket_web/templates/user_home.html:9
msgid "Welcome!" msgid "Welcome!"
msgstr "Willkommen!" msgstr "Willkommen!"
@@ -1098,11 +1205,11 @@ msgstr ""
msgid "Admin panel" msgid "Admin panel"
msgstr "Adminbereich" msgstr "Adminbereich"
#: snikket_web/templates/user_logout.html:8 #: snikket_web/templates/user_logout.html:5
msgid "Sign out of the Snikket Web Portal" msgid "Sign out of the Snikket Web Portal"
msgstr "Aus dem Webportal abmelden" msgstr "Aus dem Webportal abmelden"
#: snikket_web/templates/user_logout.html:9 #: snikket_web/templates/user_logout.html:6
msgid "" msgid ""
"Click below to log yourself out of the web portal. This does not affect any " "Click below to log yourself out of the web portal. This does not affect any "
"other connected devices." "other connected devices."
@@ -1110,11 +1217,11 @@ msgstr ""
"Klicke unten um dich aus dem Webportal abzumelden. Dies betrifft keine " "Klicke unten um dich aus dem Webportal abzumelden. Dies betrifft keine "
"anderen Geräte von dir." "anderen Geräte von dir."
#: snikket_web/templates/user_passwd.html:8 #: snikket_web/templates/user_passwd.html:5
msgid "Change your password" msgid "Change your password"
msgstr "Ändere dein Passwort" msgstr "Ändere dein Passwort"
#: snikket_web/templates/user_passwd.html:9 #: snikket_web/templates/user_passwd.html:6
msgid "" msgid ""
"To change your password, you need to provide the current password as well as " "To change your password, you need to provide the current password as well as "
"the new one. To reduce the chance of typos, we ask for your new password " "the new one. To reduce the chance of typos, we ask for your new password "
@@ -1124,7 +1231,7 @@ msgstr ""
"dein neues Passwort angeben. Damit Tippfehler dich nicht aussperren bitten " "dein neues Passwort angeben. Damit Tippfehler dich nicht aussperren bitten "
"wir dich, dein neues Passwort zweimal einzutippen." "wir dich, dein neues Passwort zweimal einzutippen."
#: snikket_web/templates/user_passwd.html:27 #: snikket_web/templates/user_passwd.html:24
msgid "" msgid ""
"After changing your password, you will have to enter the new password on all " "After changing your password, you will have to enter the new password on all "
"of your devices." "of your devices."
@@ -1132,19 +1239,19 @@ msgstr ""
"Nachdem du das Passwort geändert hast, musst du das neue Passwort auf allen " "Nachdem du das Passwort geändert hast, musst du das neue Passwort auf allen "
"Geräten manuell eintragen." "Geräten manuell eintragen."
#: snikket_web/templates/user_profile.html:7 #: snikket_web/templates/user_profile.html:4
msgid "Update your profile" msgid "Update your profile"
msgstr "Dein Profil bearbeiten" msgstr "Dein Profil bearbeiten"
#: snikket_web/templates/user_profile.html:9 #: snikket_web/templates/user_profile.html:6
msgid "Profile" msgid "Profile"
msgstr "Profil" msgstr "Profil"
#: snikket_web/templates/user_profile.html:22 #: snikket_web/templates/user_profile.html:19
msgid "Visibility" msgid "Visibility"
msgstr "Sichtbarkeit" msgstr "Sichtbarkeit"
#: snikket_web/templates/user_profile.html:23 #: snikket_web/templates/user_profile.html:20
msgid "" msgid ""
"This section allows you to control who can see your profile information, " "This section allows you to control who can see your profile information, "
"like avatar and nickname." "like avatar and nickname."
@@ -1152,6 +1259,9 @@ msgstr ""
"Hier kannst du einstellen, wer deine Profilinformationen, wie Bild oder " "Hier kannst du einstellen, wer deine Profilinformationen, wie Bild oder "
"Anzeigename einsehen kann." "Anzeigename einsehen kann."
#~ msgid "Not on mobile?"
#~ msgstr "Nicht am Smartphone?"
#~ msgid "Edit user %(user_name)s" #~ msgid "Edit user %(user_name)s"
#~ msgstr "Benutzer %(user_name)s bearbeiten" #~ msgstr "Benutzer %(user_name)s bearbeiten"
@@ -1235,8 +1345,5 @@ msgstr ""
#~ msgid "Copy operation failed" #~ msgid "Copy operation failed"
#~ msgstr "Kopieren fehlgeschlagen" #~ msgstr "Kopieren fehlgeschlagen"
#~ msgid "Password change failed"
#~ msgstr "Passwortänderung fehlgeschlagen"
#~ msgid "Allow multiple uses" #~ msgid "Allow multiple uses"
#~ msgstr "Mehrfach verwendbar" #~ msgstr "Mehrfach verwendbar"

View File

@@ -7,11 +7,11 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PROJECT VERSION\n" "Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2021-01-30 12:45+0100\n" "POT-Creation-Date: 2021-02-23 07:55+0100\n"
"PO-Revision-Date: 2021-02-02 21:01+0000\n" "PO-Revision-Date: 2021-02-02 21:01+0000\n"
"Last-Translator: Jonas Schäfer <jonas@zombofant.net>\n" "Last-Translator: Jonas Schäfer <jonas@zombofant.net>\n"
"Language-Team: English <https://i18n.sotecware.net/projects/snikket/" "Language-Team: English <https://i18n.sotecware.net/projects/snikket/web-"
"web-portal/en/>\n" "portal/en/>\n"
"Language: en\n" "Language: en\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@@ -24,194 +24,288 @@ msgstr ""
msgid "Delete user permanently" msgid "Delete user permanently"
msgstr "Delete user permanently" msgstr "Delete user permanently"
#: snikket_web/admin.py:129 #: snikket_web/admin.py:73
#, fuzzy
#| msgid "deleted"
msgid "User deleted"
msgstr "deleted"
#: snikket_web/admin.py:116
#, fuzzy
#| msgid "Password reset link for %(user_name)s"
msgid "Password reset link created"
msgstr "Password reset link for %(user_name)s"
#: snikket_web/admin.py:122
#, fuzzy
#| msgid "Create password reset links or delete users."
msgid "Password reset link deleted"
msgstr "Create password reset links or delete users."
#: snikket_web/admin.py:141
msgid "Invite to circle" msgid "Invite to circle"
msgstr "Invite to circle" msgstr "Invite to circle"
#: snikket_web/admin.py:135 #: snikket_web/admin.py:147
msgid "At least one circle must be selected" msgid "At least one circle must be selected"
msgstr "At least one circle must be selected" msgstr "At least one circle must be selected"
#: snikket_web/admin.py:140 #: snikket_web/admin.py:152
msgid "Valid for" msgid "Valid for"
msgstr "Valid for" msgstr "Valid for"
#: snikket_web/admin.py:142 #: snikket_web/admin.py:154
msgid "One hour" msgid "One hour"
msgstr "One hour" msgstr "One hour"
#: snikket_web/admin.py:143 #: snikket_web/admin.py:155
msgid "Twelve hours" msgid "Twelve hours"
msgstr "Twelve hours" msgstr "Twelve hours"
#: snikket_web/admin.py:144 #: snikket_web/admin.py:156
msgid "One day" msgid "One day"
msgstr "One day" msgstr "One day"
#: snikket_web/admin.py:145 #: snikket_web/admin.py:157
msgid "One week" msgid "One week"
msgstr "One week" msgstr "One week"
#: snikket_web/admin.py:146 #: snikket_web/admin.py:158
msgid "Four weeks" msgid "Four weeks"
msgstr "Four weeks" msgstr "Four weeks"
#: snikket_web/admin.py:152 snikket_web/templates/admin_edit_invite.html:17 #: snikket_web/admin.py:164 snikket_web/templates/admin_edit_invite.html:17
msgid "Invitation type" msgid "Invitation type"
msgstr "Invitation type" msgstr "Invitation type"
#: snikket_web/admin.py:154 snikket_web/templates/library.j2:116 #: snikket_web/admin.py:166 snikket_web/templates/library.j2:116
msgid "Individual" msgid "Individual"
msgstr "Individual" msgstr "Individual"
#: snikket_web/admin.py:155 snikket_web/templates/library.j2:114 #: snikket_web/admin.py:167 snikket_web/templates/library.j2:114
msgid "Group" msgid "Group"
msgstr "Group" msgstr "Group"
#: snikket_web/admin.py:161 #: snikket_web/admin.py:173
msgid "New invitation link" msgid "New invitation link"
msgstr "New invitation link" msgstr "New invitation link"
#: snikket_web/admin.py:223 #: snikket_web/admin.py:235
msgid "Revoke" msgid "Revoke"
msgstr "Revoke" msgstr "Revoke"
#: snikket_web/admin.py:283 snikket_web/admin.py:327 #: snikket_web/admin.py:259
#, fuzzy
#| msgid "Invitation type"
msgid "Invitation created"
msgstr "Invitation type"
#: snikket_web/admin.py:275
#, fuzzy
#| msgid "New invitation link"
msgid "No such invitation exists"
msgstr "New invitation link"
#: snikket_web/admin.py:290
#, fuzzy
#| msgid "Invitation type"
msgid "Invitation revoked"
msgstr "Invitation type"
#: snikket_web/admin.py:307 snikket_web/admin.py:355
msgid "Name" msgid "Name"
msgstr "Name" msgstr "Name"
#: snikket_web/admin.py:288 snikket_web/templates/admin_circles.html:47 #: snikket_web/admin.py:312 snikket_web/templates/admin_circles.html:47
msgid "Create circle" msgid "Create circle"
msgstr "Create circle" msgstr "Create circle"
#: snikket_web/admin.py:332 #: snikket_web/admin.py:342
#, fuzzy
#| msgid "Circle name"
msgid "Circle created"
msgstr "Circle name"
#: snikket_web/admin.py:360
msgid "Select user" msgid "Select user"
msgstr "Select user" msgstr "Select user"
#: snikket_web/admin.py:337 #: snikket_web/admin.py:365
msgid "Update circle" msgid "Update circle"
msgstr "Update circle" msgstr "Update circle"
#: snikket_web/admin.py:341 #: snikket_web/admin.py:369
msgid "Delete circle permanently" msgid "Delete circle permanently"
msgstr "Delete circle permanently" msgstr "Delete circle permanently"
#: snikket_web/admin.py:347 #: snikket_web/admin.py:375
msgid "Add user" msgid "Add user"
msgstr "Add user" msgstr "Add user"
#: snikket_web/admin.py:391
#, fuzzy
#| msgid "No circles"
msgid "No such circle exists"
msgstr "No circles"
#: snikket_web/admin.py:428
#, fuzzy
#| msgid "Circle name"
msgid "Circle data updated"
msgstr "Circle name"
#: snikket_web/admin.py:434
#, fuzzy
#| msgid "deleted"
msgid "Circle deleted"
msgstr "deleted"
#: snikket_web/admin.py:445
#, fuzzy
#| msgid "Invite to circle"
msgid "User added to circle"
msgstr "Invite to circle"
#: snikket_web/admin.py:454
#, fuzzy
#| msgid "Remove user %(username)s from circle"
msgid "User removed from circle"
msgstr "Remove user %(username)s from circle"
#: snikket_web/infra.py:40 #: snikket_web/infra.py:40
msgid "Main" msgid "Main"
msgstr "Main" msgstr "Main"
#: snikket_web/invite.py:93 #: snikket_web/invite.py:104
msgid "Username" msgid "Username"
msgstr "Username" msgstr "Username"
#: snikket_web/invite.py:97 snikket_web/invite.py:164 snikket_web/main.py:41 #: snikket_web/invite.py:108 snikket_web/invite.py:175 snikket_web/main.py:42
msgid "Password" msgid "Password"
msgstr "Password" msgstr "Password"
#: snikket_web/invite.py:101 snikket_web/invite.py:168 #: snikket_web/invite.py:112 snikket_web/invite.py:179
msgid "Confirm password" msgid "Confirm password"
msgstr "Confirm password" msgstr "Confirm password"
#: snikket_web/invite.py:105 snikket_web/invite.py:172 #: snikket_web/invite.py:116 snikket_web/invite.py:183
msgid "The passwords must match" msgid "The passwords must match"
msgstr "The passwords must match" msgstr "The passwords must match"
#: snikket_web/invite.py:110 #: snikket_web/invite.py:121
msgid "Create account" msgid "Create account"
msgstr "Create account" msgstr "Create account"
#: snikket_web/invite.py:137 #: snikket_web/invite.py:148
msgid "That username is already taken" msgid "That username is already taken"
msgstr "That username is already taken" msgstr "That username is already taken"
#: snikket_web/invite.py:141 snikket_web/invite.py:205 #: snikket_web/invite.py:152 snikket_web/invite.py:216
msgid "Registration was declined for unknown reasons" msgid "Registration was declined for unknown reasons"
msgstr "Registration was declined for unknown reasons" msgstr "Registration was declined for unknown reasons"
#: snikket_web/invite.py:145 #: snikket_web/invite.py:156
msgid "The username is not valid" msgid "The username is not valid"
msgstr "The username is not valid" msgstr "The username is not valid"
#: snikket_web/invite.py:177 snikket_web/templates/user_home.html:32 #: snikket_web/invite.py:188 snikket_web/templates/user_home.html:32
#: snikket_web/templates/user_passwd.html:32 #: snikket_web/templates/user_passwd.html:29
msgid "Change password" msgid "Change password"
msgstr "Change password" msgstr "Change password"
#: snikket_web/main.py:36 #: snikket_web/main.py:37
msgid "Address" msgid "Address"
msgstr "Address" msgstr "Address"
#: snikket_web/main.py:46 #: snikket_web/main.py:47
msgid "Sign in" msgid "Sign in"
msgstr "Sign in" msgstr "Sign in"
#: snikket_web/main.py:72 #: snikket_web/main.py:56
msgid "Invalid username or password." msgid "Invalid username or password."
msgstr "Invalid username or password." msgstr "Invalid username or password."
#: snikket_web/user.py:21 #: snikket_web/main.py:84
msgid "Login successful!"
msgstr ""
#: snikket_web/user.py:28
msgid "Current password" msgid "Current password"
msgstr "Current password" msgstr "Current password"
#: snikket_web/user.py:26 #: snikket_web/user.py:33
msgid "New password" msgid "New password"
msgstr "New password" msgstr "New password"
#: snikket_web/user.py:31 #: snikket_web/user.py:38
msgid "Confirm new password" msgid "Confirm new password"
msgstr "Confirm new password" msgstr "Confirm new password"
#: snikket_web/user.py:35 #: snikket_web/user.py:42
msgid "The new passwords must match" msgid "The new passwords must match"
msgstr "The new passwords must match" msgstr "The new passwords must match"
#: snikket_web/user.py:42 #: snikket_web/user.py:49
msgid "Sign out" msgid "Sign out"
msgstr "Sign out" msgstr "Sign out"
#: snikket_web/user.py:47 #: snikket_web/user.py:54
msgid "Nobody" msgid "Nobody"
msgstr "Nobody" msgstr "Nobody"
#: snikket_web/user.py:48 #: snikket_web/user.py:55
msgid "Friends only" msgid "Friends only"
msgstr "Friends only" msgstr "Friends only"
#: snikket_web/user.py:49 #: snikket_web/user.py:56
msgid "Everyone" msgid "Everyone"
msgstr "Everyone" msgstr "Everyone"
#: snikket_web/templates/admin_delete_user.html:12 #: snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:11 snikket_web/user.py:55 #: snikket_web/templates/admin_users.html:11 snikket_web/user.py:62
msgid "Display name" msgid "Display name"
msgstr "Display name" msgstr "Display name"
#: snikket_web/user.py:59 #: snikket_web/user.py:66
msgid "Avatar" msgid "Avatar"
msgstr "Avatar" msgstr "Avatar"
#: snikket_web/user.py:63 #: snikket_web/user.py:70
msgid "Profile visibility" msgid "Profile visibility"
msgstr "Profile visibility" msgstr "Profile visibility"
#: snikket_web/user.py:68 #: snikket_web/user.py:75
msgid "Update profile" msgid "Update profile"
msgstr "Update profile" msgstr "Update profile"
#: snikket_web/user.py:93 #: snikket_web/user.py:100
msgid "Incorrect password" msgid "Incorrect password"
msgstr "Incorrect password" msgstr "Incorrect password"
#: snikket_web/templates/_footer.html:4 snikket_web/templates/login.html:36 #: snikket_web/user.py:104
#, fuzzy
#| msgid "Password change failed"
msgid "Password changed"
msgstr "Password change failed"
#: snikket_web/user.py:146
#, fuzzy
#| msgid "Profile"
msgid "Profile updated"
msgstr "Profile"
#: snikket_web/templates/_footer.html:4
#, python-format #, python-format
msgid "A <a href=\"%(about_url)s\">Snikket</a> service" msgid "A <a href=\"%(about_url)s\">Snikket</a> service"
msgstr "A <a href=\"%(about_url)s\">Snikket</a> service" msgstr "A <a href=\"%(about_url)s\">Snikket</a> service"
#: snikket_web/templates/about.html:9 #: snikket_web/templates/_footer.html:6
msgid ""
"“Snikket” and the parrot logo are trademarks of Snikket Community Interest "
"Company."
msgstr ""
#: snikket_web/templates/about.html:4 snikket_web/templates/about.html:9
msgid "About Snikket" msgid "About Snikket"
msgstr "About Snikket" msgstr "About Snikket"
@@ -271,10 +365,22 @@ msgstr ""
"\"%(apache20_url)s\">Apache 2.0 License</a>." "\"%(apache20_url)s\">Apache 2.0 License</a>."
#: snikket_web/templates/about.html:17 #: snikket_web/templates/about.html:17
msgid "Trademarks"
msgstr ""
#: snikket_web/templates/about.html:18
#, python-format
msgid ""
"“Snikket” and the parrot logo are trademarks of Snikket Community Interest "
"Company. For more information about the trademarks, visit the <a href="
"\"%(trademarks_url)s\">Snikket Trademarks information page</a>."
msgstr ""
#: snikket_web/templates/about.html:19
msgid "Software Versions" msgid "Software Versions"
msgstr "Software Versions" msgstr "Software Versions"
#: snikket_web/templates/about.html:27 #: snikket_web/templates/about.html:29
msgid "Back to the main page" msgid "Back to the main page"
msgstr "Back to the main page" msgstr "Back to the main page"
@@ -373,7 +479,7 @@ msgid "Debug information for %(user_name)s"
msgstr "Debug information for %(user_name)s" msgstr "Debug information for %(user_name)s"
#: snikket_web/templates/admin_debug_user.html:11 #: snikket_web/templates/admin_debug_user.html:11
#: snikket_web/templates/user_passwd.html:26 #: snikket_web/templates/user_passwd.html:23
msgid "Warning" msgid "Warning"
msgstr "Warning" msgstr "Warning"
@@ -419,16 +525,16 @@ msgid ""
"strong>" "strong>"
msgstr "" msgstr ""
"The user and their data will be deleted irrevocably, permanently and " "The user and their data will be deleted irrevocably, permanently and "
"immediately upon pushing the below button. <strong>There is no way " "immediately upon pushing the below button. <strong>There is no way back!</"
"back!</strong>" "strong>"
#: snikket_web/templates/admin_delete_user.html:19 #: snikket_web/templates/admin_delete_user.html:19
#: snikket_web/templates/admin_edit_circle.html:44 #: snikket_web/templates/admin_edit_circle.html:44
#: snikket_web/templates/admin_edit_invite.html:49 #: snikket_web/templates/admin_edit_invite.html:49
#: snikket_web/templates/admin_reset_user_password.html:25 #: snikket_web/templates/admin_reset_user_password.html:25
#: snikket_web/templates/user_logout.html:13 #: snikket_web/templates/user_logout.html:10
#: snikket_web/templates/user_passwd.html:30 #: snikket_web/templates/user_passwd.html:27
#: snikket_web/templates/user_profile.html:31 #: snikket_web/templates/user_profile.html:28
msgid "Back" msgid "Back"
msgstr "Back" msgstr "Back"
@@ -502,7 +608,6 @@ msgid "View invitation"
msgstr "View invitation" msgstr "View invitation"
#: snikket_web/templates/admin_edit_invite.html:13 #: snikket_web/templates/admin_edit_invite.html:13
#: snikket_web/templates/admin_invites.html:21
#: snikket_web/templates/admin_reset_user_password.html:15 #: snikket_web/templates/admin_reset_user_password.html:15
msgid "Valid until" msgid "Valid until"
msgstr "Valid until" msgstr "Valid until"
@@ -596,6 +701,10 @@ msgstr "Exit admin panel"
msgid "Pending invitations" msgid "Pending invitations"
msgstr "Pending invitations" msgstr "Pending invitations"
#: snikket_web/templates/admin_invites.html:21
msgid "Expires"
msgstr ""
#: snikket_web/templates/admin_invites.html:22 #: snikket_web/templates/admin_invites.html:22
msgid "Type" msgid "Type"
msgstr "Type" msgstr "Type"
@@ -679,7 +788,7 @@ msgid "The web portal encountered an internal error."
msgstr "The web portal encountered an internal error." msgstr "The web portal encountered an internal error."
#: snikket_web/templates/invite_invalid.html:5 #: snikket_web/templates/invite_invalid.html:5
#: snikket_web/templates/invite_view.html:12 #: snikket_web/templates/invite_view.html:13
#, python-format #, python-format
msgid "Invite to %(site_name)s" msgid "Invite to %(site_name)s"
msgstr "Invite to %(site_name)s" msgstr "Invite to %(site_name)s"
@@ -687,7 +796,7 @@ msgstr "Invite to %(site_name)s"
#: snikket_web/templates/invite_invalid.html:6 #: snikket_web/templates/invite_invalid.html:6
#: snikket_web/templates/invite_register.html:10 #: snikket_web/templates/invite_register.html:10
#: snikket_web/templates/invite_success.html:11 #: snikket_web/templates/invite_success.html:11
#: snikket_web/templates/invite_view.html:13 #: snikket_web/templates/invite_view.html:14
#, python-format #, python-format
msgid "Powered by <img src=\"%(logo_url)s\" alt=\"Snikket\">" msgid "Powered by <img src=\"%(logo_url)s\" alt=\"Snikket\">"
msgstr "Powered by <img alt=\"Snikket\" src=\"%(logo_url)s\">" msgstr "Powered by <img alt=\"Snikket\" src=\"%(logo_url)s\">"
@@ -732,18 +841,18 @@ msgstr ""
"inside the app by clicking on the button below:" "inside the app by clicking on the button below:"
#: snikket_web/templates/invite_register.html:14 #: snikket_web/templates/invite_register.html:14
#: snikket_web/templates/invite_view.html:37 #: snikket_web/templates/invite_view.html:38
msgid "App already installed?" msgid "App already installed?"
msgstr "App already installed?" msgstr "App already installed?"
#: snikket_web/templates/invite_register.html:16 #: snikket_web/templates/invite_register.html:16
#: snikket_web/templates/invite_reset_view.html:21 #: snikket_web/templates/invite_reset_view.html:21
#: snikket_web/templates/invite_view.html:39 #: snikket_web/templates/invite_view.html:40
msgid "Open the app" msgid "Open the app"
msgstr "Open the app" msgstr "Open the app"
#: snikket_web/templates/invite_register.html:18 #: snikket_web/templates/invite_register.html:18
#: snikket_web/templates/invite_view.html:41 #: snikket_web/templates/invite_view.html:42
msgid "This button works only if you have the app installed already!" msgid "This button works only if you have the app installed already!"
msgstr "This button works only if you have the app installed already!" msgstr "This button works only if you have the app installed already!"
@@ -817,8 +926,8 @@ msgid ""
"This page allows you to reset the password of your account, <strong>" "This page allows you to reset the password of your account, <strong>"
"%(account_jid)s</strong>, once." "%(account_jid)s</strong>, once."
msgstr "" msgstr ""
"This page allows you to reset the password of your account, " "This page allows you to reset the password of your account, <strong>"
"<strong>%(account_jid)s</strong>, once." "%(account_jid)s</strong>, once."
#: snikket_web/templates/invite_reset_view.html:17 #: snikket_web/templates/invite_reset_view.html:17
msgid "Using the app" msgid "Using the app"
@@ -837,7 +946,7 @@ msgstr ""
"Scan button at the top." "Scan button at the top."
#: snikket_web/templates/invite_reset_view.html:26 #: snikket_web/templates/invite_reset_view.html:26
#: snikket_web/templates/invite_view.html:75 #: snikket_web/templates/invite_view.html:76
msgid "" msgid ""
"Your camera will turn on. Point it at the square code below until it is " "Your camera will turn on. Point it at the square code below until it is "
"within the highlighted square on your screen, and wait until the app " "within the highlighted square on your screen, and wait until the app "
@@ -852,7 +961,7 @@ msgid "You will then be prompted to enter a new password for your account."
msgstr "You will then be prompted to enter a new password for your account." msgstr "You will then be prompted to enter a new password for your account."
#: snikket_web/templates/invite_reset_view.html:29 #: snikket_web/templates/invite_reset_view.html:29
#: snikket_web/templates/invite_view.html:43 #: snikket_web/templates/invite_view.html:44
msgid "Alternatives" msgid "Alternatives"
msgstr "Alternatives" msgstr "Alternatives"
@@ -899,7 +1008,7 @@ msgstr ""
msgid "Invite to %(site_name)s | Snikket" msgid "Invite to %(site_name)s | Snikket"
msgstr "Invite to %(site_name)s | Snikket" msgstr "Invite to %(site_name)s | Snikket"
#: snikket_web/templates/invite_view.html:15 #: snikket_web/templates/invite_view.html:16
#, python-format #, python-format
msgid "" msgid ""
"You have been invited to chat with %(inviter_name)s using Snikket, a secure, " "You have been invited to chat with %(inviter_name)s using Snikket, a secure, "
@@ -908,7 +1017,7 @@ msgstr ""
"You have been invited to chat with %(inviter_name)s using Snikket, a secure, " "You have been invited to chat with %(inviter_name)s using Snikket, a secure, "
"privacy-friendly chat app on %(site_name)s." "privacy-friendly chat app on %(site_name)s."
#: snikket_web/templates/invite_view.html:17 #: snikket_web/templates/invite_view.html:18
#, python-format #, python-format
msgid "" msgid ""
"You have been invited to chat on %(site_name)s using Snikket, a secure, " "You have been invited to chat on %(site_name)s using Snikket, a secure, "
@@ -917,15 +1026,15 @@ msgstr ""
"You have been invited to chat on %(site_name)s using Snikket, a secure, " "You have been invited to chat on %(site_name)s using Snikket, a secure, "
"privacy-friendly chat app." "privacy-friendly chat app."
#: snikket_web/templates/invite_view.html:19 #: snikket_web/templates/invite_view.html:20
msgid "Get started" msgid "Get started"
msgstr "Get started" msgstr "Get started"
#: snikket_web/templates/invite_view.html:21 #: snikket_web/templates/invite_view.html:22
msgid "Install the Snikket App on your Android or iOS device." msgid "Install the Snikket App on your Android or iOS device."
msgstr "Install the Snikket App on your Android or iOS device." msgstr "Install the Snikket App on your Android or iOS device."
#: snikket_web/templates/invite_view.html:23 #: snikket_web/templates/invite_view.html:24
#, python-format #, python-format
msgid "" msgid ""
"Install the Snikket App on your Android device (<a href=\"%(ios_info_url)s\" " "Install the Snikket App on your Android device (<a href=\"%(ios_info_url)s\" "
@@ -934,19 +1043,19 @@ msgstr ""
"Install the Snikket App on your Android device (<a href=\"%(ios_info_url)s\" " "Install the Snikket App on your Android device (<a href=\"%(ios_info_url)s\" "
"rel=\"noopener noreferrer\" target=\"_blank\">iOS coming soon!</a>)." "rel=\"noopener noreferrer\" target=\"_blank\">iOS coming soon!</a>)."
#: snikket_web/templates/invite_view.html:27 #: snikket_web/templates/invite_view.html:28
msgid "Get it on Google Play" msgid "Get it on Google Play"
msgstr "Get it on Google Play" msgstr "Get it on Google Play"
#: snikket_web/templates/invite_view.html:29 #: snikket_web/templates/invite_view.html:30
msgid "Download on the App Store" msgid "Download on the App Store"
msgstr "Download on the App Store" msgstr "Download on the App Store"
#: snikket_web/templates/invite_view.html:33 #: snikket_web/templates/invite_view.html:34
msgid "Not on mobile?" msgid "Send to mobile device"
msgstr "Not on mobile?" msgstr ""
#: snikket_web/templates/invite_view.html:36 #: snikket_web/templates/invite_view.html:37
msgid "" msgid ""
"After installation the app should automatically open and prompt you to " "After installation the app should automatically open and prompt you to "
"create an account. If not, simply click the button below." "create an account. If not, simply click the button below."
@@ -954,7 +1063,7 @@ msgstr ""
"After installation the app should automatically open and prompt you to " "After installation the app should automatically open and prompt you to "
"create an account. If not, simply click the button below." "create an account. If not, simply click the button below."
#: snikket_web/templates/invite_view.html:44 #: snikket_web/templates/invite_view.html:45
#, python-format #, python-format
msgid "" msgid ""
"You can connect to Snikket using any XMPP-compatible software. If the button " "You can connect to Snikket using any XMPP-compatible software. If the button "
@@ -962,19 +1071,19 @@ msgid ""
"\">register an account manually</a>." "\">register an account manually</a>."
msgstr "" msgstr ""
"You can connect to Snikket using any XMPP-compatible software. If the button " "You can connect to Snikket using any XMPP-compatible software. If the button "
"above does not work with your app, you may need to <a href=\"%(register_url)" "above does not work with your app, you may need to <a href=\"%(register_url)s"
"s\">register an account manually</a>." "\">register an account manually</a>."
#: snikket_web/templates/invite_view.html:50 #: snikket_web/templates/invite_view.html:51
msgid "Scan invite code" msgid "Scan invite code"
msgstr "Scan invite code" msgstr "Scan invite code"
#: snikket_web/templates/invite_view.html:53 #: snikket_web/templates/invite_view.html:54
#: snikket_web/templates/invite_view.html:82 #: snikket_web/templates/invite_view.html:83
msgid "Close" msgid "Close"
msgstr "Close" msgstr "Close"
#: snikket_web/templates/invite_view.html:56 #: snikket_web/templates/invite_view.html:57
msgid "" msgid ""
"You can transfer this invite to your mobile device by scanning a code with " "You can transfer this invite to your mobile device by scanning a code with "
"your camera. You can use either a QR scanner app or the Snikket app itself." "your camera. You can use either a QR scanner app or the Snikket app itself."
@@ -982,21 +1091,21 @@ msgstr ""
"You can transfer this invite to your mobile device by scanning a code with " "You can transfer this invite to your mobile device by scanning a code with "
"your camera. You can use either a QR scanner app or the Snikket app itself." "your camera. You can use either a QR scanner app or the Snikket app itself."
#: snikket_web/templates/invite_view.html:61 #: snikket_web/templates/invite_view.html:62
msgid "Using a QR code scanner" msgid "Using a QR code scanner"
msgstr "Using a QR code scanner" msgstr "Using a QR code scanner"
#: snikket_web/templates/invite_view.html:63 #: snikket_web/templates/invite_view.html:64
msgid "Using the Snikket app" msgid "Using the Snikket app"
msgstr "Using the Snikket app" msgstr "Using the Snikket app"
#: snikket_web/templates/invite_view.html:68 #: snikket_web/templates/invite_view.html:69
msgid "" msgid ""
"Use a <em>QR code</em> scanner on your mobile device to scan the code below:" "Use a <em>QR code</em> scanner on your mobile device to scan the code below:"
msgstr "" msgstr ""
"Use a <em>QR code</em> scanner on your mobile device to scan the code below:" "Use a <em>QR code</em> scanner on your mobile device to scan the code below:"
#: snikket_web/templates/invite_view.html:74 #: snikket_web/templates/invite_view.html:75
msgid "" msgid ""
"Install the Snikket app on your mobile device, open it, and tap the 'Scan' " "Install the Snikket app on your mobile device, open it, and tap the 'Scan' "
"button at the top." "button at the top."
@@ -1036,6 +1145,27 @@ msgstr "Enter your Snikket address and password to manage your account."
msgid "Login failed" msgid "Login failed"
msgstr "Login failed" msgstr "Login failed"
#: snikket_web/templates/login.html:23
#, fuzzy
#| msgid "Incorrect password"
msgid "Incorrect address"
msgstr "Incorrect password"
#: snikket_web/templates/login.html:24
#, python-format
msgid ""
"This Snikket service only hosts addresses ending in <em>@%(snikket_domain)s</"
"em>. Your password was not sent."
msgstr ""
#: snikket_web/templates/unauth.html:16
msgid "Operation successful"
msgstr ""
#: snikket_web/templates/unauth.html:18
msgid "Error"
msgstr ""
#: snikket_web/templates/user_home.html:9 #: snikket_web/templates/user_home.html:9
msgid "Welcome!" msgid "Welcome!"
msgstr "Welcome!" msgstr "Welcome!"
@@ -1069,11 +1199,11 @@ msgstr "Manage users, invitations and circles of your Snikket service."
msgid "Admin panel" msgid "Admin panel"
msgstr "Admin panel" msgstr "Admin panel"
#: snikket_web/templates/user_logout.html:8 #: snikket_web/templates/user_logout.html:5
msgid "Sign out of the Snikket Web Portal" msgid "Sign out of the Snikket Web Portal"
msgstr "Sign out of the Snikket Web Portal" msgstr "Sign out of the Snikket Web Portal"
#: snikket_web/templates/user_logout.html:9 #: snikket_web/templates/user_logout.html:6
msgid "" msgid ""
"Click below to log yourself out of the web portal. This does not affect any " "Click below to log yourself out of the web portal. This does not affect any "
"other connected devices." "other connected devices."
@@ -1081,11 +1211,11 @@ msgstr ""
"Click below to log yourself out of the web portal. This does not affect any " "Click below to log yourself out of the web portal. This does not affect any "
"other connected devices." "other connected devices."
#: snikket_web/templates/user_passwd.html:8 #: snikket_web/templates/user_passwd.html:5
msgid "Change your password" msgid "Change your password"
msgstr "Change your password" msgstr "Change your password"
#: snikket_web/templates/user_passwd.html:9 #: snikket_web/templates/user_passwd.html:6
msgid "" msgid ""
"To change your password, you need to provide the current password as well as " "To change your password, you need to provide the current password as well as "
"the new one. To reduce the chance of typos, we ask for your new password " "the new one. To reduce the chance of typos, we ask for your new password "
@@ -1095,7 +1225,7 @@ msgstr ""
"the new one. To reduce the chance of typos, we ask for your new password " "the new one. To reduce the chance of typos, we ask for your new password "
"twice." "twice."
#: snikket_web/templates/user_passwd.html:27 #: snikket_web/templates/user_passwd.html:24
msgid "" msgid ""
"After changing your password, you will have to enter the new password on all " "After changing your password, you will have to enter the new password on all "
"of your devices." "of your devices."
@@ -1103,19 +1233,19 @@ msgstr ""
"After changing your password, you will have to enter the new password on all " "After changing your password, you will have to enter the new password on all "
"of your devices." "of your devices."
#: snikket_web/templates/user_profile.html:7 #: snikket_web/templates/user_profile.html:4
msgid "Update your profile" msgid "Update your profile"
msgstr "Update your profile" msgstr "Update your profile"
#: snikket_web/templates/user_profile.html:9 #: snikket_web/templates/user_profile.html:6
msgid "Profile" msgid "Profile"
msgstr "Profile" msgstr "Profile"
#: snikket_web/templates/user_profile.html:22 #: snikket_web/templates/user_profile.html:19
msgid "Visibility" msgid "Visibility"
msgstr "Visibility" msgstr "Visibility"
#: snikket_web/templates/user_profile.html:23 #: snikket_web/templates/user_profile.html:20
msgid "" msgid ""
"This section allows you to control who can see your profile information, " "This section allows you to control who can see your profile information, "
"like avatar and nickname." "like avatar and nickname."
@@ -1123,6 +1253,9 @@ msgstr ""
"This section allows you to control who can see your profile information, " "This section allows you to control who can see your profile information, "
"like avatar and nickname." "like avatar and nickname."
#~ msgid "Not on mobile?"
#~ msgstr "Not on mobile?"
#~ msgid "Edit user %(user_name)s" #~ msgid "Edit user %(user_name)s"
#~ msgstr "Edit user %(user_name)s" #~ msgstr "Edit user %(user_name)s"
@@ -1202,6 +1335,3 @@ msgstr ""
#~ msgid "Copy operation failed" #~ msgid "Copy operation failed"
#~ msgstr "Copy operation failed" #~ msgstr "Copy operation failed"
#~ msgid "Password change failed"
#~ msgstr "Password change failed"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PROJECT VERSION\n" "Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2021-01-30 12:45+0100\n" "POT-Creation-Date: 2021-02-23 07:55+0100\n"
"PO-Revision-Date: 2021-02-02 21:01+0000\n" "PO-Revision-Date: 2021-02-02 21:01+0000\n"
"Last-Translator: riccio <unriccio@email.it>\n" "Last-Translator: riccio <unriccio@email.it>\n"
"Language-Team: English (United Kingdom) <https://i18n.sotecware.net/projects/" "Language-Team: English (United Kingdom) <https://i18n.sotecware.net/projects/"
@@ -24,202 +24,296 @@ msgstr ""
msgid "Delete user permanently" msgid "Delete user permanently"
msgstr "Delete user permanently" msgstr "Delete user permanently"
#: snikket_web/admin.py:129 #: snikket_web/admin.py:73
#, fuzzy
#| msgid "deleted"
msgid "User deleted"
msgstr "deleted"
#: snikket_web/admin.py:116
#, fuzzy
#| msgid "Password reset link for %(user_name)s"
msgid "Password reset link created"
msgstr "Password reset link for %(user_name)s"
#: snikket_web/admin.py:122
#, fuzzy
#| msgid "Create password reset links or delete users."
msgid "Password reset link deleted"
msgstr "Create password reset links or delete users."
#: snikket_web/admin.py:141
msgid "Invite to circle" msgid "Invite to circle"
msgstr "Invite to circle" msgstr "Invite to circle"
#: snikket_web/admin.py:135 #: snikket_web/admin.py:147
msgid "At least one circle must be selected" msgid "At least one circle must be selected"
msgstr "At least one circle must be selected" msgstr "At least one circle must be selected"
#: snikket_web/admin.py:140 #: snikket_web/admin.py:152
msgid "Valid for" msgid "Valid for"
msgstr "Valid for" msgstr "Valid for"
#: snikket_web/admin.py:142 #: snikket_web/admin.py:154
msgid "One hour" msgid "One hour"
msgstr "One hour" msgstr "One hour"
#: snikket_web/admin.py:143 #: snikket_web/admin.py:155
msgid "Twelve hours" msgid "Twelve hours"
msgstr "Twelve hours" msgstr "Twelve hours"
#: snikket_web/admin.py:144 #: snikket_web/admin.py:156
msgid "One day" msgid "One day"
msgstr "One day" msgstr "One day"
#: snikket_web/admin.py:145 #: snikket_web/admin.py:157
msgid "One week" msgid "One week"
msgstr "One week" msgstr "One week"
#: snikket_web/admin.py:146 #: snikket_web/admin.py:158
msgid "Four weeks" msgid "Four weeks"
msgstr "Four weeks" msgstr "Four weeks"
#: snikket_web/admin.py:152 snikket_web/templates/admin_edit_invite.html:17 #: snikket_web/admin.py:164 snikket_web/templates/admin_edit_invite.html:17
msgid "Invitation type" msgid "Invitation type"
msgstr "Invitation type" msgstr "Invitation type"
#: snikket_web/admin.py:154 snikket_web/templates/library.j2:116 #: snikket_web/admin.py:166 snikket_web/templates/library.j2:116
msgid "Individual" msgid "Individual"
msgstr "" msgstr ""
#: snikket_web/admin.py:155 snikket_web/templates/library.j2:114 #: snikket_web/admin.py:167 snikket_web/templates/library.j2:114
msgid "Group" msgid "Group"
msgstr "" msgstr ""
#: snikket_web/admin.py:161 #: snikket_web/admin.py:173
msgid "New invitation link" msgid "New invitation link"
msgstr "New invitation link" msgstr "New invitation link"
#: snikket_web/admin.py:223 #: snikket_web/admin.py:235
msgid "Revoke" msgid "Revoke"
msgstr "Revoke" msgstr "Revoke"
#: snikket_web/admin.py:283 snikket_web/admin.py:327 #: snikket_web/admin.py:259
#, fuzzy
#| msgid "Invitation type"
msgid "Invitation created"
msgstr "Invitation type"
#: snikket_web/admin.py:275
#, fuzzy
#| msgid "New invitation link"
msgid "No such invitation exists"
msgstr "New invitation link"
#: snikket_web/admin.py:290
#, fuzzy
#| msgid "Invitation type"
msgid "Invitation revoked"
msgstr "Invitation type"
#: snikket_web/admin.py:307 snikket_web/admin.py:355
msgid "Name" msgid "Name"
msgstr "Name" msgstr "Name"
#: snikket_web/admin.py:288 snikket_web/templates/admin_circles.html:47 #: snikket_web/admin.py:312 snikket_web/templates/admin_circles.html:47
msgid "Create circle" msgid "Create circle"
msgstr "Create circle" msgstr "Create circle"
#: snikket_web/admin.py:332 #: snikket_web/admin.py:342
#, fuzzy
#| msgid "Circle name"
msgid "Circle created"
msgstr "Circle name"
#: snikket_web/admin.py:360
msgid "Select user" msgid "Select user"
msgstr "Select user" msgstr "Select user"
#: snikket_web/admin.py:337 #: snikket_web/admin.py:365
#, fuzzy #, fuzzy
#| msgid "Create circle" #| msgid "Create circle"
msgid "Update circle" msgid "Update circle"
msgstr "Create circle" msgstr "Create circle"
#: snikket_web/admin.py:341 #: snikket_web/admin.py:369
msgid "Delete circle permanently" msgid "Delete circle permanently"
msgstr "Delete circle permanently" msgstr "Delete circle permanently"
#: snikket_web/admin.py:347 #: snikket_web/admin.py:375
msgid "Add user" msgid "Add user"
msgstr "Add user" msgstr "Add user"
#: snikket_web/admin.py:391
#, fuzzy
#| msgid "No circles"
msgid "No such circle exists"
msgstr "No circles"
#: snikket_web/admin.py:428
#, fuzzy
#| msgid "Circle name"
msgid "Circle data updated"
msgstr "Circle name"
#: snikket_web/admin.py:434
#, fuzzy
#| msgid "deleted"
msgid "Circle deleted"
msgstr "deleted"
#: snikket_web/admin.py:445
#, fuzzy
#| msgid "Invite to circle"
msgid "User added to circle"
msgstr "Invite to circle"
#: snikket_web/admin.py:454
#, fuzzy
#| msgid "Remove user %(username)s from circle"
msgid "User removed from circle"
msgstr "Remove user %(username)s from circle"
#: snikket_web/infra.py:40 #: snikket_web/infra.py:40
msgid "Main" msgid "Main"
msgstr "Main" msgstr "Main"
#: snikket_web/invite.py:93 #: snikket_web/invite.py:104
msgid "Username" msgid "Username"
msgstr "" msgstr ""
#: snikket_web/invite.py:97 snikket_web/invite.py:164 snikket_web/main.py:41 #: snikket_web/invite.py:108 snikket_web/invite.py:175 snikket_web/main.py:42
msgid "Password" msgid "Password"
msgstr "Password" msgstr "Password"
#: snikket_web/invite.py:101 snikket_web/invite.py:168 #: snikket_web/invite.py:112 snikket_web/invite.py:179
#, fuzzy #, fuzzy
#| msgid "Confirm new password" #| msgid "Confirm new password"
msgid "Confirm password" msgid "Confirm password"
msgstr "Confirm new password" msgstr "Confirm new password"
#: snikket_web/invite.py:105 snikket_web/invite.py:172 #: snikket_web/invite.py:116 snikket_web/invite.py:183
msgid "The passwords must match" msgid "The passwords must match"
msgstr "The passwords must match" msgstr "The passwords must match"
#: snikket_web/invite.py:110 #: snikket_web/invite.py:121
#, fuzzy #, fuzzy
#| msgid "Create circle" #| msgid "Create circle"
msgid "Create account" msgid "Create account"
msgstr "Create circle" msgstr "Create circle"
#: snikket_web/invite.py:137 #: snikket_web/invite.py:148
msgid "That username is already taken" msgid "That username is already taken"
msgstr "" msgstr ""
#: snikket_web/invite.py:141 snikket_web/invite.py:205 #: snikket_web/invite.py:152 snikket_web/invite.py:216
msgid "Registration was declined for unknown reasons" msgid "Registration was declined for unknown reasons"
msgstr "" msgstr ""
#: snikket_web/invite.py:145 #: snikket_web/invite.py:156
msgid "The username is not valid" msgid "The username is not valid"
msgstr "" msgstr ""
#: snikket_web/invite.py:177 snikket_web/templates/user_home.html:32 #: snikket_web/invite.py:188 snikket_web/templates/user_home.html:32
#: snikket_web/templates/user_passwd.html:32 #: snikket_web/templates/user_passwd.html:29
msgid "Change password" msgid "Change password"
msgstr "Change password" msgstr "Change password"
#: snikket_web/main.py:36 #: snikket_web/main.py:37
msgid "Address" msgid "Address"
msgstr "Address" msgstr "Address"
#: snikket_web/main.py:46 #: snikket_web/main.py:47
msgid "Sign in" msgid "Sign in"
msgstr "Sign in" msgstr "Sign in"
#: snikket_web/main.py:72 #: snikket_web/main.py:56
#, fuzzy #, fuzzy
#| msgid "Invalid user name or password." #| msgid "Invalid user name or password."
msgid "Invalid username or password." msgid "Invalid username or password."
msgstr "Invalid user name or password." msgstr "Invalid user name or password."
#: snikket_web/user.py:21 #: snikket_web/main.py:84
msgid "Login successful!"
msgstr ""
#: snikket_web/user.py:28
msgid "Current password" msgid "Current password"
msgstr "Current password" msgstr "Current password"
#: snikket_web/user.py:26 #: snikket_web/user.py:33
msgid "New password" msgid "New password"
msgstr "New password" msgstr "New password"
#: snikket_web/user.py:31 #: snikket_web/user.py:38
msgid "Confirm new password" msgid "Confirm new password"
msgstr "Confirm new password" msgstr "Confirm new password"
#: snikket_web/user.py:35 #: snikket_web/user.py:42
msgid "The new passwords must match" msgid "The new passwords must match"
msgstr "The new passwords must match" msgstr "The new passwords must match"
#: snikket_web/user.py:42 #: snikket_web/user.py:49
msgid "Sign out" msgid "Sign out"
msgstr "Sign out" msgstr "Sign out"
#: snikket_web/user.py:47 #: snikket_web/user.py:54
msgid "Nobody" msgid "Nobody"
msgstr "Nobody" msgstr "Nobody"
#: snikket_web/user.py:48 #: snikket_web/user.py:55
msgid "Friends only" msgid "Friends only"
msgstr "Friends only" msgstr "Friends only"
#: snikket_web/user.py:49 #: snikket_web/user.py:56
msgid "Everyone" msgid "Everyone"
msgstr "Everyone" msgstr "Everyone"
#: snikket_web/templates/admin_delete_user.html:12 #: snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:11 snikket_web/user.py:55 #: snikket_web/templates/admin_users.html:11 snikket_web/user.py:62
msgid "Display name" msgid "Display name"
msgstr "Display name" msgstr "Display name"
#: snikket_web/user.py:59 #: snikket_web/user.py:66
msgid "Avatar" msgid "Avatar"
msgstr "Avatar" msgstr "Avatar"
#: snikket_web/user.py:63 #: snikket_web/user.py:70
msgid "Profile visibility" msgid "Profile visibility"
msgstr "Profile visibility" msgstr "Profile visibility"
#: snikket_web/user.py:68 #: snikket_web/user.py:75
msgid "Update profile" msgid "Update profile"
msgstr "Update profile" msgstr "Update profile"
#: snikket_web/user.py:93 #: snikket_web/user.py:100
msgid "Incorrect password" msgid "Incorrect password"
msgstr "Incorrect password" msgstr "Incorrect password"
#: snikket_web/templates/_footer.html:4 snikket_web/templates/login.html:36 #: snikket_web/user.py:104
#, fuzzy
#| msgid "Password change failed"
msgid "Password changed"
msgstr "Password change failed"
#: snikket_web/user.py:146
#, fuzzy
#| msgid "Profile"
msgid "Profile updated"
msgstr "Profile"
#: snikket_web/templates/_footer.html:4
#, python-format #, python-format
msgid "A <a href=\"%(about_url)s\">Snikket</a> service" msgid "A <a href=\"%(about_url)s\">Snikket</a> service"
msgstr "A <a href=\"%(about_url)s\">Snikket</a> service" msgstr "A <a href=\"%(about_url)s\">Snikket</a> service"
#: snikket_web/templates/about.html:9 #: snikket_web/templates/_footer.html:6
msgid ""
"“Snikket” and the parrot logo are trademarks of Snikket Community Interest "
"Company."
msgstr ""
#: snikket_web/templates/about.html:4 snikket_web/templates/about.html:9
msgid "About Snikket" msgid "About Snikket"
msgstr "About Snikket" msgstr "About Snikket"
@@ -279,10 +373,22 @@ msgstr ""
"\"%(apache20_url)s\">Apache 2.0 License</a>." "\"%(apache20_url)s\">Apache 2.0 License</a>."
#: snikket_web/templates/about.html:17 #: snikket_web/templates/about.html:17
msgid "Trademarks"
msgstr ""
#: snikket_web/templates/about.html:18
#, python-format
msgid ""
"“Snikket” and the parrot logo are trademarks of Snikket Community Interest "
"Company. For more information about the trademarks, visit the <a href="
"\"%(trademarks_url)s\">Snikket Trademarks information page</a>."
msgstr ""
#: snikket_web/templates/about.html:19
msgid "Software Versions" msgid "Software Versions"
msgstr "Software Versions" msgstr "Software Versions"
#: snikket_web/templates/about.html:27 #: snikket_web/templates/about.html:29
msgid "Back to the main page" msgid "Back to the main page"
msgstr "Back to the main page" msgstr "Back to the main page"
@@ -379,7 +485,7 @@ msgid "Debug information for %(user_name)s"
msgstr "Debug information for %(user_name)s" msgstr "Debug information for %(user_name)s"
#: snikket_web/templates/admin_debug_user.html:11 #: snikket_web/templates/admin_debug_user.html:11
#: snikket_web/templates/user_passwd.html:26 #: snikket_web/templates/user_passwd.html:23
msgid "Warning" msgid "Warning"
msgstr "Warning" msgstr "Warning"
@@ -429,9 +535,9 @@ msgstr ""
#: snikket_web/templates/admin_edit_circle.html:44 #: snikket_web/templates/admin_edit_circle.html:44
#: snikket_web/templates/admin_edit_invite.html:49 #: snikket_web/templates/admin_edit_invite.html:49
#: snikket_web/templates/admin_reset_user_password.html:25 #: snikket_web/templates/admin_reset_user_password.html:25
#: snikket_web/templates/user_logout.html:13 #: snikket_web/templates/user_logout.html:10
#: snikket_web/templates/user_passwd.html:30 #: snikket_web/templates/user_passwd.html:27
#: snikket_web/templates/user_profile.html:31 #: snikket_web/templates/user_profile.html:28
msgid "Back" msgid "Back"
msgstr "Back" msgstr "Back"
@@ -509,7 +615,6 @@ msgid "View invitation"
msgstr "View invitation" msgstr "View invitation"
#: snikket_web/templates/admin_edit_invite.html:13 #: snikket_web/templates/admin_edit_invite.html:13
#: snikket_web/templates/admin_invites.html:21
#: snikket_web/templates/admin_reset_user_password.html:15 #: snikket_web/templates/admin_reset_user_password.html:15
msgid "Valid until" msgid "Valid until"
msgstr "Valid until" msgstr "Valid until"
@@ -611,6 +716,10 @@ msgstr ""
msgid "Pending invitations" msgid "Pending invitations"
msgstr "Pending invitations" msgstr "Pending invitations"
#: snikket_web/templates/admin_invites.html:21
msgid "Expires"
msgstr ""
#: snikket_web/templates/admin_invites.html:22 #: snikket_web/templates/admin_invites.html:22
msgid "Type" msgid "Type"
msgstr "" msgstr ""
@@ -694,7 +803,7 @@ msgid "The web portal encountered an internal error."
msgstr "The web portal encountered an internal error." msgstr "The web portal encountered an internal error."
#: snikket_web/templates/invite_invalid.html:5 #: snikket_web/templates/invite_invalid.html:5
#: snikket_web/templates/invite_view.html:12 #: snikket_web/templates/invite_view.html:13
#, python-format #, python-format
msgid "Invite to %(site_name)s" msgid "Invite to %(site_name)s"
msgstr "Invite to %(site_name)s" msgstr "Invite to %(site_name)s"
@@ -702,7 +811,7 @@ msgstr "Invite to %(site_name)s"
#: snikket_web/templates/invite_invalid.html:6 #: snikket_web/templates/invite_invalid.html:6
#: snikket_web/templates/invite_register.html:10 #: snikket_web/templates/invite_register.html:10
#: snikket_web/templates/invite_success.html:11 #: snikket_web/templates/invite_success.html:11
#: snikket_web/templates/invite_view.html:13 #: snikket_web/templates/invite_view.html:14
#, python-format #, python-format
msgid "Powered by <img src=\"%(logo_url)s\" alt=\"Snikket\">" msgid "Powered by <img src=\"%(logo_url)s\" alt=\"Snikket\">"
msgstr "" msgstr ""
@@ -747,18 +856,18 @@ msgid ""
msgstr "" msgstr ""
#: snikket_web/templates/invite_register.html:14 #: snikket_web/templates/invite_register.html:14
#: snikket_web/templates/invite_view.html:37 #: snikket_web/templates/invite_view.html:38
msgid "App already installed?" msgid "App already installed?"
msgstr "" msgstr ""
#: snikket_web/templates/invite_register.html:16 #: snikket_web/templates/invite_register.html:16
#: snikket_web/templates/invite_reset_view.html:21 #: snikket_web/templates/invite_reset_view.html:21
#: snikket_web/templates/invite_view.html:39 #: snikket_web/templates/invite_view.html:40
msgid "Open the app" msgid "Open the app"
msgstr "" msgstr ""
#: snikket_web/templates/invite_register.html:18 #: snikket_web/templates/invite_register.html:18
#: snikket_web/templates/invite_view.html:41 #: snikket_web/templates/invite_view.html:42
msgid "This button works only if you have the app installed already!" msgid "This button works only if you have the app installed already!"
msgstr "" msgstr ""
@@ -851,7 +960,7 @@ msgid ""
msgstr "" msgstr ""
#: snikket_web/templates/invite_reset_view.html:26 #: snikket_web/templates/invite_reset_view.html:26
#: snikket_web/templates/invite_view.html:75 #: snikket_web/templates/invite_view.html:76
msgid "" msgid ""
"Your camera will turn on. Point it at the square code below until it is " "Your camera will turn on. Point it at the square code below until it is "
"within the highlighted square on your screen, and wait until the app " "within the highlighted square on your screen, and wait until the app "
@@ -863,7 +972,7 @@ msgid "You will then be prompted to enter a new password for your account."
msgstr "" msgstr ""
#: snikket_web/templates/invite_reset_view.html:29 #: snikket_web/templates/invite_reset_view.html:29
#: snikket_web/templates/invite_view.html:43 #: snikket_web/templates/invite_view.html:44
msgid "Alternatives" msgid "Alternatives"
msgstr "" msgstr ""
@@ -907,54 +1016,54 @@ msgstr ""
msgid "Invite to %(site_name)s | Snikket" msgid "Invite to %(site_name)s | Snikket"
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:15 #: snikket_web/templates/invite_view.html:16
#, python-format #, python-format
msgid "" msgid ""
"You have been invited to chat with %(inviter_name)s using Snikket, a secure, " "You have been invited to chat with %(inviter_name)s using Snikket, a secure, "
"privacy-friendly chat app on %(site_name)s." "privacy-friendly chat app on %(site_name)s."
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:17 #: snikket_web/templates/invite_view.html:18
#, python-format #, python-format
msgid "" msgid ""
"You have been invited to chat on %(site_name)s using Snikket, a secure, " "You have been invited to chat on %(site_name)s using Snikket, a secure, "
"privacy-friendly chat app." "privacy-friendly chat app."
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:19 #: snikket_web/templates/invite_view.html:20
msgid "Get started" msgid "Get started"
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:21 #: snikket_web/templates/invite_view.html:22
msgid "Install the Snikket App on your Android or iOS device." msgid "Install the Snikket App on your Android or iOS device."
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:23 #: snikket_web/templates/invite_view.html:24
#, python-format #, python-format
msgid "" msgid ""
"Install the Snikket App on your Android device (<a href=\"%(ios_info_url)s\" " "Install the Snikket App on your Android device (<a href=\"%(ios_info_url)s\" "
"rel=\"noopener noreferrer\" target=\"_blank\">iOS coming soon!</a>)." "rel=\"noopener noreferrer\" target=\"_blank\">iOS coming soon!</a>)."
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:27 #: snikket_web/templates/invite_view.html:28
msgid "Get it on Google Play" msgid "Get it on Google Play"
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:29 #: snikket_web/templates/invite_view.html:30
msgid "Download on the App Store" msgid "Download on the App Store"
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:33 #: snikket_web/templates/invite_view.html:34
msgid "Not on mobile?" msgid "Send to mobile device"
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:36 #: snikket_web/templates/invite_view.html:37
msgid "" msgid ""
"After installation the app should automatically open and prompt you to " "After installation the app should automatically open and prompt you to "
"create an account. If not, simply click the button below." "create an account. If not, simply click the button below."
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:44 #: snikket_web/templates/invite_view.html:45
#, python-format #, python-format
msgid "" msgid ""
"You can connect to Snikket using any XMPP-compatible software. If the button " "You can connect to Snikket using any XMPP-compatible software. If the button "
@@ -962,37 +1071,37 @@ msgid ""
"\">register an account manually</a>." "\">register an account manually</a>."
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:50 #: snikket_web/templates/invite_view.html:51
#, fuzzy #, fuzzy
#| msgid "Show invite details" #| msgid "Show invite details"
msgid "Scan invite code" msgid "Scan invite code"
msgstr "Show invite details" msgstr "Show invite details"
#: snikket_web/templates/invite_view.html:53 #: snikket_web/templates/invite_view.html:54
#: snikket_web/templates/invite_view.html:82 #: snikket_web/templates/invite_view.html:83
msgid "Close" msgid "Close"
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:56 #: snikket_web/templates/invite_view.html:57
msgid "" msgid ""
"You can transfer this invite to your mobile device by scanning a code with " "You can transfer this invite to your mobile device by scanning a code with "
"your camera. You can use either a QR scanner app or the Snikket app itself." "your camera. You can use either a QR scanner app or the Snikket app itself."
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:61 #: snikket_web/templates/invite_view.html:62
msgid "Using a QR code scanner" msgid "Using a QR code scanner"
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:63 #: snikket_web/templates/invite_view.html:64
msgid "Using the Snikket app" msgid "Using the Snikket app"
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:68 #: snikket_web/templates/invite_view.html:69
msgid "" msgid ""
"Use a <em>QR code</em> scanner on your mobile device to scan the code below:" "Use a <em>QR code</em> scanner on your mobile device to scan the code below:"
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:74 #: snikket_web/templates/invite_view.html:75
msgid "" msgid ""
"Install the Snikket app on your mobile device, open it, and tap the 'Scan' " "Install the Snikket app on your mobile device, open it, and tap the 'Scan' "
"button at the top." "button at the top."
@@ -1034,6 +1143,27 @@ msgstr "Enter your Snikket address and password to manage your account."
msgid "Login failed" msgid "Login failed"
msgstr "Login failed" msgstr "Login failed"
#: snikket_web/templates/login.html:23
#, fuzzy
#| msgid "Incorrect password"
msgid "Incorrect address"
msgstr "Incorrect password"
#: snikket_web/templates/login.html:24
#, python-format
msgid ""
"This Snikket service only hosts addresses ending in <em>@%(snikket_domain)s</"
"em>. Your password was not sent."
msgstr ""
#: snikket_web/templates/unauth.html:16
msgid "Operation successful"
msgstr ""
#: snikket_web/templates/unauth.html:18
msgid "Error"
msgstr ""
#: snikket_web/templates/user_home.html:9 #: snikket_web/templates/user_home.html:9
msgid "Welcome!" msgid "Welcome!"
msgstr "Welcome!" msgstr "Welcome!"
@@ -1079,11 +1209,11 @@ msgstr "Manage users and invitations of this Snikket service."
msgid "Admin panel" msgid "Admin panel"
msgstr "Admin dashboard" msgstr "Admin dashboard"
#: snikket_web/templates/user_logout.html:8 #: snikket_web/templates/user_logout.html:5
msgid "Sign out of the Snikket Web Portal" msgid "Sign out of the Snikket Web Portal"
msgstr "Sign out of the Snikket Web Portal" msgstr "Sign out of the Snikket Web Portal"
#: snikket_web/templates/user_logout.html:9 #: snikket_web/templates/user_logout.html:6
msgid "" msgid ""
"Click below to log yourself out of the web portal. This does not affect any " "Click below to log yourself out of the web portal. This does not affect any "
"other connected devices." "other connected devices."
@@ -1091,11 +1221,11 @@ msgstr ""
"Click below to log yourself out of the web portal. This does not affect any " "Click below to log yourself out of the web portal. This does not affect any "
"other connected devices." "other connected devices."
#: snikket_web/templates/user_passwd.html:8 #: snikket_web/templates/user_passwd.html:5
msgid "Change your password" msgid "Change your password"
msgstr "Change your password" msgstr "Change your password"
#: snikket_web/templates/user_passwd.html:9 #: snikket_web/templates/user_passwd.html:6
msgid "" msgid ""
"To change your password, you need to provide the current password as well as " "To change your password, you need to provide the current password as well as "
"the new one. To reduce the chance of typos, we ask for your new password " "the new one. To reduce the chance of typos, we ask for your new password "
@@ -1105,7 +1235,7 @@ msgstr ""
"the new one. To reduce the chance of typos, we ask for your new password " "the new one. To reduce the chance of typos, we ask for your new password "
"twice." "twice."
#: snikket_web/templates/user_passwd.html:27 #: snikket_web/templates/user_passwd.html:24
msgid "" msgid ""
"After changing your password, you will have to enter the new password on all " "After changing your password, you will have to enter the new password on all "
"of your devices." "of your devices."
@@ -1113,21 +1243,21 @@ msgstr ""
"After changing your password, you will have to enter the new password on all " "After changing your password, you will have to enter the new password on all "
"of your devices." "of your devices."
#: snikket_web/templates/user_profile.html:7 #: snikket_web/templates/user_profile.html:4
#, fuzzy #, fuzzy
#| msgid "Update profile" #| msgid "Update profile"
msgid "Update your profile" msgid "Update your profile"
msgstr "Update profile" msgstr "Update profile"
#: snikket_web/templates/user_profile.html:9 #: snikket_web/templates/user_profile.html:6
msgid "Profile" msgid "Profile"
msgstr "Profile" msgstr "Profile"
#: snikket_web/templates/user_profile.html:22 #: snikket_web/templates/user_profile.html:19
msgid "Visibility" msgid "Visibility"
msgstr "Visibility" msgstr "Visibility"
#: snikket_web/templates/user_profile.html:23 #: snikket_web/templates/user_profile.html:20
msgid "" msgid ""
"This section allows you to control who can see your profile information, " "This section allows you to control who can see your profile information, "
"like avatar and nickname." "like avatar and nickname."
@@ -1214,6 +1344,3 @@ msgstr ""
#~ msgid "Copy operation failed" #~ msgid "Copy operation failed"
#~ msgstr "Copy operation failed" #~ msgstr "Copy operation failed"
#~ msgid "Password change failed"
#~ msgstr "Password change failed"

View File

@@ -7,14 +7,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PROJECT VERSION\n" "Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2021-01-30 12:45+0100\n" "POT-Creation-Date: 2021-02-23 07:55+0100\n"
"PO-Revision-Date: 2021-02-10 17:01+0000\n" "PO-Revision-Date: 2021-02-10 17:01+0000\n"
"Last-Translator: Tilman Jiménez <tilman.jimenez@tu-dortmund.de>\n" "Last-Translator: Tilman Jiménez <tilman.jimenez@tu-dortmund.de>\n"
"Language-Team: Spanish (Mexico) <https://i18n.sotecware.net/projects/snikket/" "Language-Team: Spanish (Mexico) <https://i18n.sotecware.net/projects/snikket/"
"web-portal/es_MX/>\n" "web-portal/es_MX/>\n"
"Language: es_MX\n" "Language: es_MX\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.4.2\n" "X-Generator: Weblate 4.4.2\n"
@@ -24,202 +24,286 @@ msgstr ""
msgid "Delete user permanently" msgid "Delete user permanently"
msgstr "Eliminar usuario permanentemente" msgstr "Eliminar usuario permanentemente"
#: snikket_web/admin.py:129 #: snikket_web/admin.py:73
msgid "User deleted"
msgstr ""
#: snikket_web/admin.py:116
msgid "Password reset link created"
msgstr ""
#: snikket_web/admin.py:122
msgid "Password reset link deleted"
msgstr ""
#: snikket_web/admin.py:141
msgid "Invite to circle" msgid "Invite to circle"
msgstr "Invitar al círculo" msgstr "Invitar al círculo"
#: snikket_web/admin.py:135 #: snikket_web/admin.py:147
msgid "At least one circle must be selected" msgid "At least one circle must be selected"
msgstr "Seleccione al menos un círculo" msgstr "Seleccione al menos un círculo"
#: snikket_web/admin.py:140 #: snikket_web/admin.py:152
msgid "Valid for" msgid "Valid for"
msgstr "Válido por" msgstr "Válido por"
#: snikket_web/admin.py:142 #: snikket_web/admin.py:154
msgid "One hour" msgid "One hour"
msgstr "Una hora" msgstr "Una hora"
#: snikket_web/admin.py:143 #: snikket_web/admin.py:155
msgid "Twelve hours" msgid "Twelve hours"
msgstr "Doce horas" msgstr "Doce horas"
#: snikket_web/admin.py:144 #: snikket_web/admin.py:156
msgid "One day" msgid "One day"
msgstr "Un día" msgstr "Un día"
#: snikket_web/admin.py:145 #: snikket_web/admin.py:157
msgid "One week" msgid "One week"
msgstr "Una semana" msgstr "Una semana"
#: snikket_web/admin.py:146 #: snikket_web/admin.py:158
msgid "Four weeks" msgid "Four weeks"
msgstr "Cuatro semanas" msgstr "Cuatro semanas"
#: snikket_web/admin.py:152 snikket_web/templates/admin_edit_invite.html:17 #: snikket_web/admin.py:164 snikket_web/templates/admin_edit_invite.html:17
msgid "Invitation type" msgid "Invitation type"
msgstr "Tipo de invitación" msgstr "Tipo de invitación"
#: snikket_web/admin.py:154 snikket_web/templates/library.j2:116 #: snikket_web/admin.py:166 snikket_web/templates/library.j2:116
msgid "Individual" msgid "Individual"
msgstr "Individual" msgstr "Individual"
#: snikket_web/admin.py:155 snikket_web/templates/library.j2:114 #: snikket_web/admin.py:167 snikket_web/templates/library.j2:114
msgid "Group" msgid "Group"
msgstr "Grupo" msgstr "Grupo"
#: snikket_web/admin.py:161 #: snikket_web/admin.py:173
msgid "New invitation link" msgid "New invitation link"
msgstr "Nuevo enlace de invitación" msgstr "Nuevo enlace de invitación"
#: snikket_web/admin.py:223 #: snikket_web/admin.py:235
msgid "Revoke" msgid "Revoke"
msgstr "Revocar/Eliminar" msgstr "Revocar/Eliminar"
#: snikket_web/admin.py:283 snikket_web/admin.py:327 #: snikket_web/admin.py:259
#, fuzzy
#| msgid "Invitation type"
msgid "Invitation created"
msgstr "Tipo de invitación"
#: snikket_web/admin.py:275
#, fuzzy
#| msgid "New invitation link"
msgid "No such invitation exists"
msgstr "Nuevo enlace de invitación"
#: snikket_web/admin.py:290
#, fuzzy
#| msgid "Invitation type"
msgid "Invitation revoked"
msgstr "Tipo de invitación"
#: snikket_web/admin.py:307 snikket_web/admin.py:355
msgid "Name" msgid "Name"
msgstr "Nombre" msgstr "Nombre"
#: snikket_web/admin.py:288 snikket_web/templates/admin_circles.html:47 #: snikket_web/admin.py:312 snikket_web/templates/admin_circles.html:47
msgid "Create circle" msgid "Create circle"
msgstr "Crear círculo" msgstr "Crear círculo"
#: snikket_web/admin.py:332 #: snikket_web/admin.py:342
#, fuzzy
#| msgid "Circle name"
msgid "Circle created"
msgstr "Nombre del círculo"
#: snikket_web/admin.py:360
msgid "Select user" msgid "Select user"
msgstr "Seleccionar usuario" msgstr "Seleccionar usuario"
#: snikket_web/admin.py:337 #: snikket_web/admin.py:365
msgid "Update circle" msgid "Update circle"
msgstr "Actualizar círculo" msgstr "Actualizar círculo"
#: snikket_web/admin.py:341 #: snikket_web/admin.py:369
msgid "Delete circle permanently" msgid "Delete circle permanently"
msgstr "Eliminar círculo permanentemente" msgstr "Eliminar círculo permanentemente"
#: snikket_web/admin.py:347 #: snikket_web/admin.py:375
msgid "Add user" msgid "Add user"
msgstr "Añadir usuario" msgstr "Añadir usuario"
#: snikket_web/admin.py:391
#, fuzzy
#| msgid "No circles"
msgid "No such circle exists"
msgstr "No hay círculos"
#: snikket_web/admin.py:428
#, fuzzy
#| msgid "Circle name"
msgid "Circle data updated"
msgstr "Nombre del círculo"
#: snikket_web/admin.py:434
#, fuzzy
#| msgid "Circle members"
msgid "Circle deleted"
msgstr "Miembros del círculo"
#: snikket_web/admin.py:445
#, fuzzy
#| msgid "Invite to circle"
msgid "User added to circle"
msgstr "Invitar al círculo"
#: snikket_web/admin.py:454
msgid "User removed from circle"
msgstr ""
#: snikket_web/infra.py:40 #: snikket_web/infra.py:40
msgid "Main" msgid "Main"
msgstr "Principal" msgstr "Principal"
#: snikket_web/invite.py:93 #: snikket_web/invite.py:104
msgid "Username" msgid "Username"
msgstr "Usuario" msgstr "Usuario"
#: snikket_web/invite.py:97 snikket_web/invite.py:164 snikket_web/main.py:41 #: snikket_web/invite.py:108 snikket_web/invite.py:175 snikket_web/main.py:42
msgid "Password" msgid "Password"
msgstr "Contraseña" msgstr "Contraseña"
#: snikket_web/invite.py:101 snikket_web/invite.py:168 #: snikket_web/invite.py:112 snikket_web/invite.py:179
msgid "Confirm password" msgid "Confirm password"
msgstr "Confirmar contraseña" msgstr "Confirmar contraseña"
#: snikket_web/invite.py:105 snikket_web/invite.py:172 #: snikket_web/invite.py:116 snikket_web/invite.py:183
msgid "The passwords must match" msgid "The passwords must match"
msgstr "Las contraseñas deben ser las mismas" msgstr "Las contraseñas deben ser las mismas"
#: snikket_web/invite.py:110 #: snikket_web/invite.py:121
msgid "Create account" msgid "Create account"
msgstr "Crear cuenta" msgstr "Crear cuenta"
#: snikket_web/invite.py:137 #: snikket_web/invite.py:148
msgid "That username is already taken" msgid "That username is already taken"
msgstr "Ese nombre de usuario ya está siendo utilizado" msgstr "Ese nombre de usuario ya está siendo utilizado"
#: snikket_web/invite.py:141 snikket_web/invite.py:205 #: snikket_web/invite.py:152 snikket_web/invite.py:216
msgid "Registration was declined for unknown reasons" msgid "Registration was declined for unknown reasons"
msgstr "El registro ha sido declinado por razones no identificadas" msgstr "El registro ha sido declinado por razones no identificadas"
#: snikket_web/invite.py:145 #: snikket_web/invite.py:156
msgid "The username is not valid" msgid "The username is not valid"
msgstr "El nombre de usuario no es válido" msgstr "El nombre de usuario no es válido"
#: snikket_web/invite.py:177 snikket_web/templates/user_home.html:32 #: snikket_web/invite.py:188 snikket_web/templates/user_home.html:32
#: snikket_web/templates/user_passwd.html:32 #: snikket_web/templates/user_passwd.html:29
msgid "Change password" msgid "Change password"
msgstr "Cambiar contraseña" msgstr "Cambiar contraseña"
#: snikket_web/main.py:36 #: snikket_web/main.py:37
msgid "Address" msgid "Address"
msgstr "Dirección" msgstr "Dirección"
#: snikket_web/main.py:46 #: snikket_web/main.py:47
msgid "Sign in" msgid "Sign in"
msgstr "Ingresar" msgstr "Ingresar"
#: snikket_web/main.py:72 #: snikket_web/main.py:56
msgid "Invalid username or password." msgid "Invalid username or password."
msgstr "Nombre de usuario o contraseña no válidos." msgstr "Nombre de usuario o contraseña no válidos."
#: snikket_web/user.py:21 #: snikket_web/main.py:84
msgid "Login successful!"
msgstr ""
#: snikket_web/user.py:28
msgid "Current password" msgid "Current password"
msgstr "Contraseña actual" msgstr "Contraseña actual"
#: snikket_web/user.py:26 #: snikket_web/user.py:33
msgid "New password" msgid "New password"
msgstr "Nueva contraseña" msgstr "Nueva contraseña"
#: snikket_web/user.py:31 #: snikket_web/user.py:38
msgid "Confirm new password" msgid "Confirm new password"
msgstr "Confirmar nueva contraseña" msgstr "Confirmar nueva contraseña"
#: snikket_web/user.py:35 #: snikket_web/user.py:42
msgid "The new passwords must match" msgid "The new passwords must match"
msgstr "Las nuevas contraseñas deben ser iguales" msgstr "Las nuevas contraseñas deben ser iguales"
#: snikket_web/user.py:42 #: snikket_web/user.py:49
msgid "Sign out" msgid "Sign out"
msgstr "" msgstr ""
#: snikket_web/user.py:47 #: snikket_web/user.py:54
msgid "Nobody" msgid "Nobody"
msgstr "Nadie" msgstr "Nadie"
#: snikket_web/user.py:48 #: snikket_web/user.py:55
msgid "Friends only" msgid "Friends only"
msgstr "Únicamente amigos" msgstr "Únicamente amigos"
#: snikket_web/user.py:49 #: snikket_web/user.py:56
msgid "Everyone" msgid "Everyone"
msgstr "Todos" msgstr "Todos"
#: snikket_web/templates/admin_delete_user.html:12 #: snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:11 snikket_web/user.py:55 #: snikket_web/templates/admin_users.html:11 snikket_web/user.py:62
msgid "Display name" msgid "Display name"
msgstr "" msgstr ""
#: snikket_web/user.py:59 #: snikket_web/user.py:66
msgid "Avatar" msgid "Avatar"
msgstr "Imagen de perfil" msgstr "Imagen de perfil"
#: snikket_web/user.py:63 #: snikket_web/user.py:70
msgid "Profile visibility" msgid "Profile visibility"
msgstr "Visibilidad de perfil" msgstr "Visibilidad de perfil"
#: snikket_web/user.py:68 #: snikket_web/user.py:75
msgid "Update profile" msgid "Update profile"
msgstr "Actualizar perfil" msgstr "Actualizar perfil"
#: snikket_web/user.py:93 #: snikket_web/user.py:100
msgid "Incorrect password" msgid "Incorrect password"
msgstr "Contraseña incorrecta" msgstr "Contraseña incorrecta"
#: snikket_web/templates/_footer.html:4 snikket_web/templates/login.html:36 #: snikket_web/user.py:104
#, fuzzy
#| msgid "Password"
msgid "Password changed"
msgstr "Contraseña"
#: snikket_web/user.py:146
msgid "Profile updated"
msgstr ""
#: snikket_web/templates/_footer.html:4
#, python-format #, python-format
msgid "A <a href=\"%(about_url)s\">Snikket</a> service" msgid "A <a href=\"%(about_url)s\">Snikket</a> service"
msgstr "Un servicio <a href=\"%(about_url)s\">Snikket</a>" msgstr "Un servicio <a href=\"%(about_url)s\">Snikket</a>"
#: snikket_web/templates/about.html:9 #: snikket_web/templates/_footer.html:6
msgid ""
"“Snikket” and the parrot logo are trademarks of Snikket Community Interest "
"Company."
msgstr ""
#: snikket_web/templates/about.html:4 snikket_web/templates/about.html:9
msgid "About Snikket" msgid "About Snikket"
msgstr "Acerca de Snikket" msgstr "Acerca de Snikket"
#: snikket_web/templates/about.html:10 #: snikket_web/templates/about.html:10
#, python-format #, python-format
msgid "" msgid ""
"To learn more about Snikket, visit the <a " "To learn more about Snikket, visit the <a href=\"%(snikket_url)s\">Snikket "
"href=\"%(snikket_url)s\">Snikket website</a>." "website</a>."
msgstr "" msgstr ""
"Para aprender más sobre Snikket, visite <a href=\"%(snikket_url)s\">la " "Para aprender más sobre Snikket, visite <a href=\"%(snikket_url)s\">la "
"página web de Snikket</a>." "página web de Snikket</a>."
@@ -240,34 +324,46 @@ msgstr "Licencias"
#: snikket_web/templates/about.html:14 #: snikket_web/templates/about.html:14
#, python-format #, python-format
msgid "" msgid ""
"The web portal software is licensed under the terms of the <a " "The web portal software is licensed under the terms of the <a href="
"href=\"%(agpl_url)s\">Affero GNU General Public License, version 3.0 or " "\"%(agpl_url)s\">Affero GNU General Public License, version 3.0 or later</"
"later</a>. The full terms of the license can be reviewed using the " "a>. The full terms of the license can be reviewed using the aforementioned "
"aforementioned link." "link."
msgstr "" msgstr ""
#: snikket_web/templates/about.html:15 #: snikket_web/templates/about.html:15
#, python-format #, python-format
msgid "" msgid ""
"The source code of the web portal can be downloaded and viewed in <a " "The source code of the web portal can be downloaded and viewed in <a href="
"href=\"%(source_url)s\">its GitHub repository</a>." "\"%(source_url)s\">its GitHub repository</a>."
msgstr "" msgstr ""
"El código fuente del portal web puede ser descargado y visto en <a href=\"" "El código fuente del portal web puede ser descargado y visto en <a href="
"%(source_url)s\">su repositorio de Github</a>." "\"%(source_url)s\">su repositorio de Github</a>."
#: snikket_web/templates/about.html:16 #: snikket_web/templates/about.html:16
#, python-format #, python-format
msgid "" msgid ""
"The icons used in the web portal are <a href=\"%(source_url)s\">Googles " "The icons used in the web portal are <a href=\"%(source_url)s\">Googles "
"Material Icons</a>, made available by Google under the terms of the <a " "Material Icons</a>, made available by Google under the terms of the <a href="
"href=\"%(apache20_url)s\">Apache 2.0 License</a>." "\"%(apache20_url)s\">Apache 2.0 License</a>."
msgstr "" msgstr ""
#: snikket_web/templates/about.html:17 #: snikket_web/templates/about.html:17
msgid "Trademarks"
msgstr ""
#: snikket_web/templates/about.html:18
#, python-format
msgid ""
"“Snikket” and the parrot logo are trademarks of Snikket Community Interest "
"Company. For more information about the trademarks, visit the <a href="
"\"%(trademarks_url)s\">Snikket Trademarks information page</a>."
msgstr ""
#: snikket_web/templates/about.html:19
msgid "Software Versions" msgid "Software Versions"
msgstr "" msgstr ""
#: snikket_web/templates/about.html:27 #: snikket_web/templates/about.html:29
msgid "Back to the main page" msgid "Back to the main page"
msgstr "Regresar a la página principal" msgstr "Regresar a la página principal"
@@ -282,17 +378,17 @@ msgstr ""
#: snikket_web/templates/admin_circles.html:5 #: snikket_web/templates/admin_circles.html:5
msgid "" msgid ""
"<em>Circles</em> aim to help people who are in the same social circle " "<em>Circles</em> aim to help people who are in the same social circle find "
"find each other on your service." "each other on your service."
msgstr "" msgstr ""
"<em>Círculos</em> permiten que gente del mismo círculo social se encuentre " "<em>Círculos</em> permiten que gente del mismo círculo social se encuentre "
"en tu servicio." "en tu servicio."
#: snikket_web/templates/admin_circles.html:6 #: snikket_web/templates/admin_circles.html:6
msgid "" msgid ""
"Users who are in the same circle will see each other in their contact " "Users who are in the same circle will see each other in their contact list. "
"list. In addition, each circle has a group chat where the circle members " "In addition, each circle has a group chat where the circle members are "
"are included." "included."
msgstr "" msgstr ""
"Usuarios que están en el mismo círculo se verán en sus listas de contacto. " "Usuarios que están en el mismo círculo se verán en sus listas de contacto. "
"Además, cada círculo tiene su propia conversación de grupo en el que están " "Además, cada círculo tiene su propia conversación de grupo en el que están "
@@ -354,8 +450,8 @@ msgstr "Crear una nueva invitación"
#: snikket_web/templates/admin_create_invite_form.html:6 #: snikket_web/templates/admin_create_invite_form.html:6
msgid "" msgid ""
"Create a new invitation link to invite more users to your Snikket service" "Create a new invitation link to invite more users to your Snikket service by "
" by clicking the button below." "clicking the button below."
msgstr "" msgstr ""
"Presiona el botón para crear una nueva invitación y poder añadir más " "Presiona el botón para crear una nueva invitación y poder añadir más "
"usuarios a tu servicio Snikket." "usuarios a tu servicio Snikket."
@@ -366,7 +462,7 @@ msgid "Debug information for %(user_name)s"
msgstr "" msgstr ""
#: snikket_web/templates/admin_debug_user.html:11 #: snikket_web/templates/admin_debug_user.html:11
#: snikket_web/templates/user_passwd.html:26 #: snikket_web/templates/user_passwd.html:23
msgid "Warning" msgid "Warning"
msgstr "Peligro" msgstr "Peligro"
@@ -408,8 +504,8 @@ msgstr "Peligro"
#: snikket_web/templates/admin_delete_user.html:16 #: snikket_web/templates/admin_delete_user.html:16
msgid "" msgid ""
"The user and their data will be deleted irrevocably, permanently and " "The user and their data will be deleted irrevocably, permanently and "
"immediately upon pushing the below button. <strong>There is no way " "immediately upon pushing the below button. <strong>There is no way back!</"
"back!</strong>" "strong>"
msgstr "" msgstr ""
"Este usuario y sus datos va a ser eliminados de manera irreversible, " "Este usuario y sus datos va a ser eliminados de manera irreversible, "
"permanente e inmediatamente al presionar el botón. <strong>¡No hay forma de " "permanente e inmediatamente al presionar el botón. <strong>¡No hay forma de "
@@ -419,9 +515,9 @@ msgstr ""
#: snikket_web/templates/admin_edit_circle.html:44 #: snikket_web/templates/admin_edit_circle.html:44
#: snikket_web/templates/admin_edit_invite.html:49 #: snikket_web/templates/admin_edit_invite.html:49
#: snikket_web/templates/admin_reset_user_password.html:25 #: snikket_web/templates/admin_reset_user_password.html:25
#: snikket_web/templates/user_logout.html:13 #: snikket_web/templates/user_logout.html:10
#: snikket_web/templates/user_passwd.html:30 #: snikket_web/templates/user_passwd.html:27
#: snikket_web/templates/user_profile.html:31 #: snikket_web/templates/user_profile.html:28
msgid "Back" msgid "Back"
msgstr "Regresar" msgstr "Regresar"
@@ -495,7 +591,6 @@ msgid "View invitation"
msgstr "Mostrar invitación" msgstr "Mostrar invitación"
#: snikket_web/templates/admin_edit_invite.html:13 #: snikket_web/templates/admin_edit_invite.html:13
#: snikket_web/templates/admin_invites.html:21
#: snikket_web/templates/admin_reset_user_password.html:15 #: snikket_web/templates/admin_reset_user_password.html:15
msgid "Valid until" msgid "Valid until"
msgstr "Válido hasta" msgstr "Válido hasta"
@@ -511,7 +606,8 @@ msgid "Circles"
msgstr "Círculos" msgstr "Círculos"
#: snikket_web/templates/admin_edit_invite.html:23 #: snikket_web/templates/admin_edit_invite.html:23
msgid "Users joining via this invitation will be added to the following circles:" msgid ""
"Users joining via this invitation will be added to the following circles:"
msgstr "" msgstr ""
"Los usuarios que usen esta invitación serán agregados a los siguientes " "Los usuarios que usen esta invitación serán agregados a los siguientes "
"círculos:" "círculos:"
@@ -589,6 +685,10 @@ msgstr ""
msgid "Pending invitations" msgid "Pending invitations"
msgstr "" msgstr ""
#: snikket_web/templates/admin_invites.html:21
msgid "Expires"
msgstr ""
#: snikket_web/templates/admin_invites.html:22 #: snikket_web/templates/admin_invites.html:22
msgid "Type" msgid "Type"
msgstr "" msgstr ""
@@ -670,7 +770,7 @@ msgid "The web portal encountered an internal error."
msgstr "" msgstr ""
#: snikket_web/templates/invite_invalid.html:5 #: snikket_web/templates/invite_invalid.html:5
#: snikket_web/templates/invite_view.html:12 #: snikket_web/templates/invite_view.html:13
#, python-format #, python-format
msgid "Invite to %(site_name)s" msgid "Invite to %(site_name)s"
msgstr "" msgstr ""
@@ -678,7 +778,7 @@ msgstr ""
#: snikket_web/templates/invite_invalid.html:6 #: snikket_web/templates/invite_invalid.html:6
#: snikket_web/templates/invite_register.html:10 #: snikket_web/templates/invite_register.html:10
#: snikket_web/templates/invite_success.html:11 #: snikket_web/templates/invite_success.html:11
#: snikket_web/templates/invite_view.html:13 #: snikket_web/templates/invite_view.html:14
#, python-format #, python-format
msgid "Powered by <img src=\"%(logo_url)s\" alt=\"Snikket\">" msgid "Powered by <img src=\"%(logo_url)s\" alt=\"Snikket\">"
msgstr "" msgstr ""
@@ -712,25 +812,25 @@ msgstr ""
#: snikket_web/templates/invite_register.html:13 #: snikket_web/templates/invite_register.html:13
msgid "" msgid ""
"Creating an account will allow to communicate with other people using the" "Creating an account will allow to communicate with other people using the "
" Snikket app or compatible software. If you already have the app " "Snikket app or compatible software. If you already have the app installed, "
"installed, we recommend that you continue the account creation process " "we recommend that you continue the account creation process inside the app "
"inside the app by clicking on the button below:" "by clicking on the button below:"
msgstr "" msgstr ""
#: snikket_web/templates/invite_register.html:14 #: snikket_web/templates/invite_register.html:14
#: snikket_web/templates/invite_view.html:37 #: snikket_web/templates/invite_view.html:38
msgid "App already installed?" msgid "App already installed?"
msgstr "" msgstr ""
#: snikket_web/templates/invite_register.html:16 #: snikket_web/templates/invite_register.html:16
#: snikket_web/templates/invite_reset_view.html:21 #: snikket_web/templates/invite_reset_view.html:21
#: snikket_web/templates/invite_view.html:39 #: snikket_web/templates/invite_view.html:40
msgid "Open the app" msgid "Open the app"
msgstr "" msgstr ""
#: snikket_web/templates/invite_register.html:18 #: snikket_web/templates/invite_register.html:18
#: snikket_web/templates/invite_view.html:41 #: snikket_web/templates/invite_view.html:42
msgid "This button works only if you have the app installed already!" msgid "This button works only if you have the app installed already!"
msgstr "" msgstr ""
@@ -740,14 +840,13 @@ msgstr ""
#: snikket_web/templates/invite_register.html:20 #: snikket_web/templates/invite_register.html:20
msgid "" msgid ""
"If you plan to use a legacy XMPP client, you can register an account " "If you plan to use a legacy XMPP client, you can register an account online "
"online and enter your credentials into any XMPP-compatible software." "and enter your credentials into any XMPP-compatible software."
msgstr "" msgstr ""
#: snikket_web/templates/invite_register.html:27 #: snikket_web/templates/invite_register.html:27
msgid "" msgid ""
"Choose a username, this will become the first part of your new chat " "Choose a username, this will become the first part of your new chat address."
"address."
msgstr "" msgstr ""
#: snikket_web/templates/invite_register.html:32 #: snikket_web/templates/invite_register.html:32
@@ -765,8 +864,8 @@ msgstr ""
#: snikket_web/templates/invite_reset.html:16 #: snikket_web/templates/invite_reset.html:16
msgid "" msgid ""
"To reset your password online, fill out the fields below and confirm " "To reset your password online, fill out the fields below and confirm using "
"using the button." "the button."
msgstr "" msgstr ""
#: snikket_web/templates/invite_reset_success.html:5 #: snikket_web/templates/invite_reset_success.html:5
@@ -797,8 +896,8 @@ msgstr ""
#: snikket_web/templates/invite_reset_view.html:15 #: snikket_web/templates/invite_reset_view.html:15
#, python-format #, python-format
msgid "" msgid ""
"This page allows you to reset the password of your account, " "This page allows you to reset the password of your account, <strong>"
"<strong>%(account_jid)s</strong>, once." "%(account_jid)s</strong>, once."
msgstr "" msgstr ""
#: snikket_web/templates/invite_reset_view.html:17 #: snikket_web/templates/invite_reset_view.html:17
@@ -811,12 +910,12 @@ msgstr ""
#: snikket_web/templates/invite_reset_view.html:25 #: snikket_web/templates/invite_reset_view.html:25
msgid "" msgid ""
"Alternatively, you can scan the below code with the Snikket App using the" "Alternatively, you can scan the below code with the Snikket App using the "
" Scan button at the top." "Scan button at the top."
msgstr "" msgstr ""
#: snikket_web/templates/invite_reset_view.html:26 #: snikket_web/templates/invite_reset_view.html:26
#: snikket_web/templates/invite_view.html:75 #: snikket_web/templates/invite_view.html:76
msgid "" msgid ""
"Your camera will turn on. Point it at the square code below until it is " "Your camera will turn on. Point it at the square code below until it is "
"within the highlighted square on your screen, and wait until the app " "within the highlighted square on your screen, and wait until the app "
@@ -828,15 +927,15 @@ msgid "You will then be prompted to enter a new password for your account."
msgstr "" msgstr ""
#: snikket_web/templates/invite_reset_view.html:29 #: snikket_web/templates/invite_reset_view.html:29
#: snikket_web/templates/invite_view.html:43 #: snikket_web/templates/invite_view.html:44
msgid "Alternatives" msgid "Alternatives"
msgstr "" msgstr ""
#: snikket_web/templates/invite_reset_view.html:30 #: snikket_web/templates/invite_reset_view.html:30
#, python-format #, python-format
msgid "" msgid ""
"You can also <a href=\"%(reset_url)s\">reset your password online</a> if " "You can also <a href=\"%(reset_url)s\">reset your password online</a> if the "
"the above button or scanning the QR code does not work for you." "above button or scanning the QR code does not work for you."
msgstr "" msgstr ""
#: snikket_web/templates/invite_success.html:5 #: snikket_web/templates/invite_success.html:5
@@ -851,7 +950,8 @@ msgstr ""
#: snikket_web/templates/invite_success.html:12 #: snikket_web/templates/invite_success.html:12
#, python-format #, python-format
msgid "Congratulations! You successfully registered on %(site_name)s as %(jid)s." msgid ""
"Congratulations! You successfully registered on %(site_name)s as %(jid)s."
msgstr "" msgstr ""
#: snikket_web/templates/invite_success.html:13 #: snikket_web/templates/invite_success.html:13
@@ -860,8 +960,8 @@ msgstr ""
#: snikket_web/templates/invite_success.html:17 #: snikket_web/templates/invite_success.html:17
msgid "" msgid ""
"You can now set up your legacy XMPP client with the above address and the" "You can now set up your legacy XMPP client with the above address and the "
" password you chose during registration." "password you chose during registration."
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:6 #: snikket_web/templates/invite_view.html:6
@@ -869,96 +969,93 @@ msgstr ""
msgid "Invite to %(site_name)s | Snikket" msgid "Invite to %(site_name)s | Snikket"
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:15 #: snikket_web/templates/invite_view.html:16
#, python-format #, python-format
msgid "" msgid ""
"You have been invited to chat with %(inviter_name)s using Snikket, a " "You have been invited to chat with %(inviter_name)s using Snikket, a secure, "
"secure, privacy-friendly chat app on %(site_name)s." "privacy-friendly chat app on %(site_name)s."
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:17 #: snikket_web/templates/invite_view.html:18
#, python-format #, python-format
msgid "" msgid ""
"You have been invited to chat on %(site_name)s using Snikket, a secure, " "You have been invited to chat on %(site_name)s using Snikket, a secure, "
"privacy-friendly chat app." "privacy-friendly chat app."
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:19 #: snikket_web/templates/invite_view.html:20
msgid "Get started" msgid "Get started"
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:21 #: snikket_web/templates/invite_view.html:22
msgid "Install the Snikket App on your Android or iOS device." msgid "Install the Snikket App on your Android or iOS device."
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:23 #: snikket_web/templates/invite_view.html:24
#, python-format #, python-format
msgid "" msgid ""
"Install the Snikket App on your Android device (<a " "Install the Snikket App on your Android device (<a href=\"%(ios_info_url)s\" "
"href=\"%(ios_info_url)s\" rel=\"noopener noreferrer\" " "rel=\"noopener noreferrer\" target=\"_blank\">iOS coming soon!</a>)."
"target=\"_blank\">iOS coming soon!</a>)."
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:27 #: snikket_web/templates/invite_view.html:28
msgid "Get it on Google Play" msgid "Get it on Google Play"
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:29 #: snikket_web/templates/invite_view.html:30
msgid "Download on the App Store" msgid "Download on the App Store"
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:33 #: snikket_web/templates/invite_view.html:34
msgid "Not on mobile?" msgid "Send to mobile device"
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:36 #: snikket_web/templates/invite_view.html:37
msgid "" msgid ""
"After installation the app should automatically open and prompt you to " "After installation the app should automatically open and prompt you to "
"create an account. If not, simply click the button below." "create an account. If not, simply click the button below."
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:44 #: snikket_web/templates/invite_view.html:45
#, python-format #, python-format
msgid "" msgid ""
"You can connect to Snikket using any XMPP-compatible software. If the " "You can connect to Snikket using any XMPP-compatible software. If the button "
"button above does not work with your app, you may need to <a " "above does not work with your app, you may need to <a href=\"%(register_url)s"
"href=\"%(register_url)s\">register an account manually</a>." "\">register an account manually</a>."
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:50 #: snikket_web/templates/invite_view.html:51
msgid "Scan invite code" msgid "Scan invite code"
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:53 #: snikket_web/templates/invite_view.html:54
#: snikket_web/templates/invite_view.html:82 #: snikket_web/templates/invite_view.html:83
msgid "Close" msgid "Close"
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:56 #: snikket_web/templates/invite_view.html:57
msgid "" msgid ""
"You can transfer this invite to your mobile device by scanning a code " "You can transfer this invite to your mobile device by scanning a code with "
"with your camera. You can use either a QR scanner app or the Snikket app " "your camera. You can use either a QR scanner app or the Snikket app itself."
"itself."
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:61 #: snikket_web/templates/invite_view.html:62
msgid "Using a QR code scanner" msgid "Using a QR code scanner"
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:63 #: snikket_web/templates/invite_view.html:64
msgid "Using the Snikket app" msgid "Using the Snikket app"
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:68 #: snikket_web/templates/invite_view.html:69
msgid "" msgid ""
"Use a <em>QR code</em> scanner on your mobile device to scan the code " "Use a <em>QR code</em> scanner on your mobile device to scan the code below:"
"below:"
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:74 #: snikket_web/templates/invite_view.html:75
msgid "" msgid ""
"Install the Snikket app on your mobile device, open it, and tap the " "Install the Snikket app on your mobile device, open it, and tap the 'Scan' "
"'Scan' button at the top." "button at the top."
msgstr "" msgstr ""
#: snikket_web/templates/library.j2:18 #: snikket_web/templates/library.j2:18
@@ -993,6 +1090,27 @@ msgstr ""
msgid "Login failed" msgid "Login failed"
msgstr "" msgstr ""
#: snikket_web/templates/login.html:23
#, fuzzy
#| msgid "Incorrect password"
msgid "Incorrect address"
msgstr "Contraseña incorrecta"
#: snikket_web/templates/login.html:24
#, python-format
msgid ""
"This Snikket service only hosts addresses ending in <em>@%(snikket_domain)s</"
"em>. Your password was not sent."
msgstr ""
#: snikket_web/templates/unauth.html:16
msgid "Operation successful"
msgstr ""
#: snikket_web/templates/unauth.html:18
msgid "Error"
msgstr ""
#: snikket_web/templates/user_home.html:9 #: snikket_web/templates/user_home.html:9
msgid "Welcome!" msgid "Welcome!"
msgstr "" msgstr ""
@@ -1026,46 +1144,46 @@ msgstr ""
msgid "Admin panel" msgid "Admin panel"
msgstr "" msgstr ""
#: snikket_web/templates/user_logout.html:8 #: snikket_web/templates/user_logout.html:5
msgid "Sign out of the Snikket Web Portal" msgid "Sign out of the Snikket Web Portal"
msgstr "" msgstr ""
#: snikket_web/templates/user_logout.html:9 #: snikket_web/templates/user_logout.html:6
msgid "" msgid ""
"Click below to log yourself out of the web portal. This does not affect " "Click below to log yourself out of the web portal. This does not affect any "
"any other connected devices." "other connected devices."
msgstr "" msgstr ""
#: snikket_web/templates/user_passwd.html:8 #: snikket_web/templates/user_passwd.html:5
msgid "Change your password" msgid "Change your password"
msgstr "" msgstr ""
#: snikket_web/templates/user_passwd.html:9 #: snikket_web/templates/user_passwd.html:6
msgid "" msgid ""
"To change your password, you need to provide the current password as well" "To change your password, you need to provide the current password as well as "
" as the new one. To reduce the chance of typos, we ask for your new " "the new one. To reduce the chance of typos, we ask for your new password "
"password twice." "twice."
msgstr "" msgstr ""
#: snikket_web/templates/user_passwd.html:27 #: snikket_web/templates/user_passwd.html:24
msgid "" msgid ""
"After changing your password, you will have to enter the new password on " "After changing your password, you will have to enter the new password on all "
"all of your devices." "of your devices."
msgstr "" msgstr ""
#: snikket_web/templates/user_profile.html:7 #: snikket_web/templates/user_profile.html:4
msgid "Update your profile" msgid "Update your profile"
msgstr "" msgstr ""
#: snikket_web/templates/user_profile.html:9 #: snikket_web/templates/user_profile.html:6
msgid "Profile" msgid "Profile"
msgstr "" msgstr ""
#: snikket_web/templates/user_profile.html:22 #: snikket_web/templates/user_profile.html:19
msgid "Visibility" msgid "Visibility"
msgstr "" msgstr ""
#: snikket_web/templates/user_profile.html:23 #: snikket_web/templates/user_profile.html:20
msgid "" msgid ""
"This section allows you to control who can see your profile information, " "This section allows you to control who can see your profile information, "
"like avatar and nickname." "like avatar and nickname."

View File

@@ -7,9 +7,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PROJECT VERSION\n" "Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2021-01-30 12:45+0100\n" "POT-Creation-Date: 2021-02-23 07:55+0100\n"
"PO-Revision-Date: 2021-02-16 12:02+0000\n" "PO-Revision-Date: 2021-03-12 23:04+0000\n"
"Last-Translator: Link Mauve <linkmauve@linkmauve.fr>\n" "Last-Translator: GodGoldfish <godgoldfish@pm.me>\n"
"Language-Team: French <https://i18n.sotecware.net/projects/snikket/" "Language-Team: French <https://i18n.sotecware.net/projects/snikket/"
"web-portal/fr/>\n" "web-portal/fr/>\n"
"Language: fr\n" "Language: fr\n"
@@ -17,201 +17,301 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\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" "Generated-By: Babel 2.9.0\n"
#: snikket_web/admin.py:60 #: snikket_web/admin.py:60
msgid "Delete user permanently" msgid "Delete user permanently"
msgstr "Désinscrire définitivement lutilisateur" msgstr "Désinscrire définitivement lutilisateur"
#: snikket_web/admin.py:129 #: snikket_web/admin.py:73
#, fuzzy
#| msgid "deleted"
msgid "User deleted"
msgstr "supprimé"
#: snikket_web/admin.py:116
#, fuzzy
#| msgid "Password reset link for %(user_name)s"
msgid "Password reset link created"
msgstr "Lien de réinitialisation du mot de passe de %(user_name)s"
#: snikket_web/admin.py:122
#, fuzzy
#| msgid "Create password reset links or delete users."
msgid "Password reset link deleted"
msgstr ""
"Créer des liens de réinitialisation de mot de passe ou supprimer des "
"utilisateurs"
#: snikket_web/admin.py:141
msgid "Invite to circle" msgid "Invite to circle"
msgstr "Inviter dans le cercle" msgstr "Inviter dans le cercle"
#: snikket_web/admin.py:135 #: snikket_web/admin.py:147
msgid "At least one circle must be selected" msgid "At least one circle must be selected"
msgstr "Au moins un cercle doit être sélectionné" msgstr "Au moins un cercle doit être sélectionné"
#: snikket_web/admin.py:140 #: snikket_web/admin.py:152
msgid "Valid for" msgid "Valid for"
msgstr "Valide pour" msgstr "Valide pour"
#: snikket_web/admin.py:142 #: snikket_web/admin.py:154
msgid "One hour" msgid "One hour"
msgstr "Une heure" msgstr "Une heure"
#: snikket_web/admin.py:143 #: snikket_web/admin.py:155
msgid "Twelve hours" msgid "Twelve hours"
msgstr "Douze heures" msgstr "Douze heures"
#: snikket_web/admin.py:144 #: snikket_web/admin.py:156
msgid "One day" msgid "One day"
msgstr "Une journée" msgstr "Une journée"
#: snikket_web/admin.py:145 #: snikket_web/admin.py:157
msgid "One week" msgid "One week"
msgstr "Une semaine" msgstr "Une semaine"
#: snikket_web/admin.py:146 #: snikket_web/admin.py:158
msgid "Four weeks" msgid "Four weeks"
msgstr "Quatre semaines" msgstr "Quatre semaines"
#: snikket_web/admin.py:152 snikket_web/templates/admin_edit_invite.html:17 #: snikket_web/admin.py:164 snikket_web/templates/admin_edit_invite.html:17
msgid "Invitation type" msgid "Invitation type"
msgstr "Type dinvitation" msgstr "Type dinvitation"
#: snikket_web/admin.py:154 snikket_web/templates/library.j2:116 #: snikket_web/admin.py:166 snikket_web/templates/library.j2:116
msgid "Individual" msgid "Individual"
msgstr "Individuelle" msgstr "Individuelle"
#: snikket_web/admin.py:155 snikket_web/templates/library.j2:114 #: snikket_web/admin.py:167 snikket_web/templates/library.j2:114
msgid "Group" msgid "Group"
msgstr "Groupe" msgstr "Groupe"
#: snikket_web/admin.py:161 #: snikket_web/admin.py:173
msgid "New invitation link" msgid "New invitation link"
msgstr "Nouveau lien dinvitation" msgstr "Nouveau lien dinvitation"
#: snikket_web/admin.py:223 #: snikket_web/admin.py:235
msgid "Revoke" msgid "Revoke"
msgstr "Révoquer" msgstr "Révoquer"
#: snikket_web/admin.py:283 snikket_web/admin.py:327 #: snikket_web/admin.py:259
#, fuzzy
#| msgid "Invitation type"
msgid "Invitation created"
msgstr "Type dinvitation"
#: snikket_web/admin.py:275
#, fuzzy
#| msgid "New invitation link"
msgid "No such invitation exists"
msgstr "Nouveau lien dinvitation"
#: snikket_web/admin.py:290
#, fuzzy
#| msgid "Invitation type"
msgid "Invitation revoked"
msgstr "Type dinvitation"
#: snikket_web/admin.py:307 snikket_web/admin.py:355
msgid "Name" msgid "Name"
msgstr "Nom" msgstr "Nom"
#: snikket_web/admin.py:288 snikket_web/templates/admin_circles.html:47 #: snikket_web/admin.py:312 snikket_web/templates/admin_circles.html:47
msgid "Create circle" msgid "Create circle"
msgstr "Créer un cercle" msgstr "Créer un cercle"
#: snikket_web/admin.py:332 #: snikket_web/admin.py:342
#, fuzzy
#| msgid "Circle name"
msgid "Circle created"
msgstr "Nom du cercle"
#: snikket_web/admin.py:360
msgid "Select user" msgid "Select user"
msgstr "Sélectionner un utilisateur" msgstr "Sélectionner un utilisateur"
#: snikket_web/admin.py:337 #: snikket_web/admin.py:365
msgid "Update circle" msgid "Update circle"
msgstr "Mettre à jour le cercle" msgstr "Mettre à jour le cercle"
#: snikket_web/admin.py:341 #: snikket_web/admin.py:369
msgid "Delete circle permanently" msgid "Delete circle permanently"
msgstr "Supprimer le cercle définitivement" msgstr "Supprimer le cercle définitivement"
#: snikket_web/admin.py:347 #: snikket_web/admin.py:375
msgid "Add user" msgid "Add user"
msgstr "Ajouter un utilisateur" msgstr "Ajouter un utilisateur"
#: snikket_web/admin.py:391
#, fuzzy
#| msgid "No circles"
msgid "No such circle exists"
msgstr "Aucun cercle"
#: snikket_web/admin.py:428
#, fuzzy
#| msgid "Circle name"
msgid "Circle data updated"
msgstr "Nom du cercle"
#: snikket_web/admin.py:434
#, fuzzy
#| msgid "deleted"
msgid "Circle deleted"
msgstr "supprimé"
#: snikket_web/admin.py:445
#, fuzzy
#| msgid "Invite to circle"
msgid "User added to circle"
msgstr "Inviter dans le cercle"
#: snikket_web/admin.py:454
#, fuzzy
#| msgid "Remove user %(username)s from circle"
msgid "User removed from circle"
msgstr "Retirer lutilisateur %(username)s du cercle"
#: snikket_web/infra.py:40 #: snikket_web/infra.py:40
msgid "Main" msgid "Main"
msgstr "Principal" msgstr "Principal"
#: snikket_web/invite.py:93 #: snikket_web/invite.py:104
msgid "Username" msgid "Username"
msgstr "Nom dutilisateur" msgstr "Nom dutilisateur"
#: snikket_web/invite.py:97 snikket_web/invite.py:164 snikket_web/main.py:41 #: snikket_web/invite.py:108 snikket_web/invite.py:175 snikket_web/main.py:42
msgid "Password" msgid "Password"
msgstr "Mot de passe" msgstr "Mot de passe"
#: snikket_web/invite.py:101 snikket_web/invite.py:168 #: snikket_web/invite.py:112 snikket_web/invite.py:179
msgid "Confirm password" msgid "Confirm password"
msgstr "Confirmer le mot de passe" msgstr "Confirmer le mot de passe"
#: snikket_web/invite.py:105 snikket_web/invite.py:172 #: snikket_web/invite.py:116 snikket_web/invite.py:183
msgid "The passwords must match" msgid "The passwords must match"
msgstr "Les mots de passe doivent être identiques" msgstr "Les mots de passe doivent être identiques"
#: snikket_web/invite.py:110 #: snikket_web/invite.py:121
msgid "Create account" msgid "Create account"
msgstr "Créer un compte" msgstr "Créer un compte"
#: snikket_web/invite.py:137 #: snikket_web/invite.py:148
msgid "That username is already taken" msgid "That username is already taken"
msgstr "Ce nom dutilisateur est déjà utilisé" msgstr "Ce nom dutilisateur est déjà utilisé"
#: snikket_web/invite.py:141 snikket_web/invite.py:205 #: snikket_web/invite.py:152 snikket_web/invite.py:216
msgid "Registration was declined for unknown reasons" msgid "Registration was declined for unknown reasons"
msgstr "Lenregistrement a été refusé pour des raisons inconnues" msgstr "Lenregistrement a été refusé pour des raisons inconnues"
#: snikket_web/invite.py:145 #: snikket_web/invite.py:156
msgid "The username is not valid" msgid "The username is not valid"
msgstr "Le nom dutilisateur nest pas valide" msgstr "Le nom dutilisateur nest pas valide"
#: snikket_web/invite.py:177 snikket_web/templates/user_home.html:32 #: snikket_web/invite.py:188 snikket_web/templates/user_home.html:32
#: snikket_web/templates/user_passwd.html:32 #: snikket_web/templates/user_passwd.html:29
msgid "Change password" msgid "Change password"
msgstr "Changer de mot de passe" msgstr "Changer de mot de passe"
#: snikket_web/main.py:36 #: snikket_web/main.py:37
msgid "Address" msgid "Address"
msgstr "Adresse" msgstr "Adresse"
#: snikket_web/main.py:46 #: snikket_web/main.py:47
msgid "Sign in" msgid "Sign in"
msgstr "Sidentifier" msgstr "Sidentifier"
#: snikket_web/main.py:72 #: snikket_web/main.py:56
msgid "Invalid username or password." msgid "Invalid username or password."
msgstr "Nom dutilisateur ou mot de passe incorrect." msgstr "Nom dutilisateur ou mot de passe incorrect."
#: snikket_web/user.py:21 #: snikket_web/main.py:84
#, fuzzy
msgid "Login successful!"
msgstr "Connexion réussite !"
#: snikket_web/user.py:28
msgid "Current password" msgid "Current password"
msgstr "Mot de passe actuel" msgstr "Mot de passe actuel"
#: snikket_web/user.py:26 #: snikket_web/user.py:33
msgid "New password" msgid "New password"
msgstr "Nouveau mot de passe" msgstr "Nouveau mot de passe"
#: snikket_web/user.py:31 #: snikket_web/user.py:38
msgid "Confirm new password" msgid "Confirm new password"
msgstr "Confirmer le nouveau mot de passe" msgstr "Confirmer le nouveau mot de passe"
#: snikket_web/user.py:35 #: snikket_web/user.py:42
msgid "The new passwords must match" msgid "The new passwords must match"
msgstr "Les nouveaux mots de passe doivent être identiques" msgstr "Les nouveaux mots de passe doivent être identiques"
#: snikket_web/user.py:42 #: snikket_web/user.py:49
msgid "Sign out" msgid "Sign out"
msgstr "Se déconnecter" msgstr "Se déconnecter"
#: snikket_web/user.py:47 #: snikket_web/user.py:54
msgid "Nobody" msgid "Nobody"
msgstr "Personne" msgstr "Personne"
#: snikket_web/user.py:48 #: snikket_web/user.py:55
msgid "Friends only" msgid "Friends only"
msgstr "Amis seulement" msgstr "Amis seulement"
#: snikket_web/user.py:49 #: snikket_web/user.py:56
msgid "Everyone" msgid "Everyone"
msgstr "Tout le monde" msgstr "Tout le monde"
#: snikket_web/templates/admin_delete_user.html:12 #: snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:11 snikket_web/user.py:55 #: snikket_web/templates/admin_users.html:11 snikket_web/user.py:62
msgid "Display name" msgid "Display name"
msgstr "Nom à afficher" msgstr "Nom à afficher"
#: snikket_web/user.py:59 #: snikket_web/user.py:66
msgid "Avatar" msgid "Avatar"
msgstr "Avatar" msgstr "Avatar"
#: snikket_web/user.py:63 #: snikket_web/user.py:70
msgid "Profile visibility" msgid "Profile visibility"
msgstr "Visibilité du profil" msgstr "Visibilité du profil"
#: snikket_web/user.py:68 #: snikket_web/user.py:75
msgid "Update profile" msgid "Update profile"
msgstr "Mettre à jour le profil" msgstr "Mettre à jour le profil"
#: snikket_web/user.py:93 #: snikket_web/user.py:100
msgid "Incorrect password" msgid "Incorrect password"
msgstr "Mot de passe incorrect" msgstr "Mot de passe incorrect"
#: snikket_web/templates/_footer.html:4 snikket_web/templates/login.html:36 #: snikket_web/user.py:104
#, fuzzy
#| msgid "Password reset"
msgid "Password changed"
msgstr "Réinitialisation de mot de passe"
#: snikket_web/user.py:146
#, fuzzy
#| msgid "Profile"
msgid "Profile updated"
msgstr "Profil"
#: snikket_web/templates/_footer.html:4
#, python-format #, python-format
msgid "A <a href=\"%(about_url)s\">Snikket</a> service" msgid "A <a href=\"%(about_url)s\">Snikket</a> service"
msgstr "Un service <a href=\"%(about_url)s\">Snikket</a>" msgstr "Un service <a href=\"%(about_url)s\">Snikket</a>"
#: snikket_web/templates/about.html:9 #: snikket_web/templates/_footer.html:6
#, fuzzy
msgid ""
"“Snikket” and the parrot logo are trademarks of Snikket Community Interest "
"Company."
msgstr ""
"\"Snikket\" et le logo de perroquet sont des marques de la Snikket Community "
"Interest Company."
#: snikket_web/templates/about.html:4 snikket_web/templates/about.html:9
msgid "About Snikket" msgid "About Snikket"
msgstr "À propos de Snikket" msgstr "À propos de Snikket"
@@ -265,15 +365,31 @@ msgid ""
"Material Icons</a>, made available by Google under the terms of the <a href=" "Material Icons</a>, made available by Google under the terms of the <a href="
"\"%(apache20_url)s\">Apache 2.0 License</a>." "\"%(apache20_url)s\">Apache 2.0 License</a>."
msgstr "" msgstr ""
"Les icônes utilisées dans le portail web sont <a href=\"%(source_url)s\"" "Les icônes utilisées dans le portail web sont <a href=\"%(source_url)s"
">Googles Material Icons</a>, mises à dispositions par Google sous les " "\">Googles Material Icons</a>, mises à dispositions par Google sous les "
"termes de la <a href=\"%(apache20_url)s\">licence Apache 2.0 </a>." "termes de la <a href=\"%(apache20_url)s\">licence Apache 2.0 </a>."
#: snikket_web/templates/about.html:17 #: snikket_web/templates/about.html:17
#, fuzzy
msgid "Trademarks"
msgstr "Marques"
#: snikket_web/templates/about.html:18
#, fuzzy, python-format
msgid ""
"“Snikket” and the parrot logo are trademarks of Snikket Community Interest "
"Company. For more information about the trademarks, visit the <a href="
"\"%(trademarks_url)s\">Snikket Trademarks information page</a>."
msgstr ""
"\"Snikket\" et le logo de perroquet sont des marques de la Snikket Community "
"Interest Company. Pour plus d'informations sur la marque, visitez le site <a "
"href=\"%(trademarks_url)s\"> page d'information Snikket Trademarks</a>."
#: snikket_web/templates/about.html:19
msgid "Software Versions" msgid "Software Versions"
msgstr "Version des logiciels" msgstr "Version des logiciels"
#: snikket_web/templates/about.html:27 #: snikket_web/templates/about.html:29
msgid "Back to the main page" msgid "Back to the main page"
msgstr "Retour à la page principale" msgstr "Retour à la page principale"
@@ -372,7 +488,7 @@ msgid "Debug information for %(user_name)s"
msgstr "Informations de débogage pour %(user_name)s" msgstr "Informations de débogage pour %(user_name)s"
#: snikket_web/templates/admin_debug_user.html:11 #: snikket_web/templates/admin_debug_user.html:11
#: snikket_web/templates/user_passwd.html:26 #: snikket_web/templates/user_passwd.html:23
msgid "Warning" msgid "Warning"
msgstr "Avertissement" msgstr "Avertissement"
@@ -425,9 +541,9 @@ msgstr ""
#: snikket_web/templates/admin_edit_circle.html:44 #: snikket_web/templates/admin_edit_circle.html:44
#: snikket_web/templates/admin_edit_invite.html:49 #: snikket_web/templates/admin_edit_invite.html:49
#: snikket_web/templates/admin_reset_user_password.html:25 #: snikket_web/templates/admin_reset_user_password.html:25
#: snikket_web/templates/user_logout.html:13 #: snikket_web/templates/user_logout.html:10
#: snikket_web/templates/user_passwd.html:30 #: snikket_web/templates/user_passwd.html:27
#: snikket_web/templates/user_profile.html:31 #: snikket_web/templates/user_profile.html:28
msgid "Back" msgid "Back"
msgstr "Retour" msgstr "Retour"
@@ -502,7 +618,6 @@ msgid "View invitation"
msgstr "Détails de linvitation" msgstr "Détails de linvitation"
#: snikket_web/templates/admin_edit_invite.html:13 #: snikket_web/templates/admin_edit_invite.html:13
#: snikket_web/templates/admin_invites.html:21
#: snikket_web/templates/admin_reset_user_password.html:15 #: snikket_web/templates/admin_reset_user_password.html:15
msgid "Valid until" msgid "Valid until"
msgstr "Valide jusquau" msgstr "Valide jusquau"
@@ -599,6 +714,11 @@ msgstr "Quitter le panneau dadministration"
msgid "Pending invitations" msgid "Pending invitations"
msgstr "Invitations en attente" msgstr "Invitations en attente"
#: snikket_web/templates/admin_invites.html:21
#, fuzzy
msgid "Expires"
msgstr "Expires"
#: snikket_web/templates/admin_invites.html:22 #: snikket_web/templates/admin_invites.html:22
msgid "Type" msgid "Type"
msgstr "Type" msgstr "Type"
@@ -683,7 +803,7 @@ msgid "The web portal encountered an internal error."
msgstr "Le portail web a rencontré une erreur interne." msgstr "Le portail web a rencontré une erreur interne."
#: snikket_web/templates/invite_invalid.html:5 #: snikket_web/templates/invite_invalid.html:5
#: snikket_web/templates/invite_view.html:12 #: snikket_web/templates/invite_view.html:13
#, python-format #, python-format
msgid "Invite to %(site_name)s" msgid "Invite to %(site_name)s"
msgstr "Invitation à %(site_name)s" msgstr "Invitation à %(site_name)s"
@@ -691,7 +811,7 @@ msgstr "Invitation à %(site_name)s"
#: snikket_web/templates/invite_invalid.html:6 #: snikket_web/templates/invite_invalid.html:6
#: snikket_web/templates/invite_register.html:10 #: snikket_web/templates/invite_register.html:10
#: snikket_web/templates/invite_success.html:11 #: snikket_web/templates/invite_success.html:11
#: snikket_web/templates/invite_view.html:13 #: snikket_web/templates/invite_view.html:14
#, python-format #, python-format
msgid "Powered by <img src=\"%(logo_url)s\" alt=\"Snikket\">" msgid "Powered by <img src=\"%(logo_url)s\" alt=\"Snikket\">"
msgstr "Propulsé par <img alt=\"Snikket\" src=\"%(logo_url)s\">" msgstr "Propulsé par <img alt=\"Snikket\" src=\"%(logo_url)s\">"
@@ -738,18 +858,18 @@ msgstr ""
"création de compte dans lapplication en cliquant sur le bouton ci-dessous:" "création de compte dans lapplication en cliquant sur le bouton ci-dessous:"
#: snikket_web/templates/invite_register.html:14 #: snikket_web/templates/invite_register.html:14
#: snikket_web/templates/invite_view.html:37 #: snikket_web/templates/invite_view.html:38
msgid "App already installed?" msgid "App already installed?"
msgstr "Lapplication est déjà installée?" msgstr "Lapplication est déjà installée?"
#: snikket_web/templates/invite_register.html:16 #: snikket_web/templates/invite_register.html:16
#: snikket_web/templates/invite_reset_view.html:21 #: snikket_web/templates/invite_reset_view.html:21
#: snikket_web/templates/invite_view.html:39 #: snikket_web/templates/invite_view.html:40
msgid "Open the app" msgid "Open the app"
msgstr "Ouvrir lapplication" msgstr "Ouvrir lapplication"
#: snikket_web/templates/invite_register.html:18 #: snikket_web/templates/invite_register.html:18
#: snikket_web/templates/invite_view.html:41 #: snikket_web/templates/invite_view.html:42
msgid "This button works only if you have the app installed already!" msgid "This button works only if you have the app installed already!"
msgstr "Ce bouton ne fonctionne que si vous avez déjà installé lapplication!" msgstr "Ce bouton ne fonctionne que si vous avez déjà installé lapplication!"
@@ -848,7 +968,7 @@ msgstr ""
"utilisant le bouton Scan tout en haut." "utilisant le bouton Scan tout en haut."
#: snikket_web/templates/invite_reset_view.html:26 #: snikket_web/templates/invite_reset_view.html:26
#: snikket_web/templates/invite_view.html:75 #: snikket_web/templates/invite_view.html:76
msgid "" msgid ""
"Your camera will turn on. Point it at the square code below until it is " "Your camera will turn on. Point it at the square code below until it is "
"within the highlighted square on your screen, and wait until the app " "within the highlighted square on your screen, and wait until the app "
@@ -865,7 +985,7 @@ msgstr ""
"compte." "compte."
#: snikket_web/templates/invite_reset_view.html:29 #: snikket_web/templates/invite_reset_view.html:29
#: snikket_web/templates/invite_view.html:43 #: snikket_web/templates/invite_view.html:44
msgid "Alternatives" msgid "Alternatives"
msgstr "Alternatives" msgstr "Alternatives"
@@ -914,7 +1034,7 @@ msgstr ""
msgid "Invite to %(site_name)s | Snikket" msgid "Invite to %(site_name)s | Snikket"
msgstr "Invitation à %(site_name)s | Snikket" msgstr "Invitation à %(site_name)s | Snikket"
#: snikket_web/templates/invite_view.html:15 #: snikket_web/templates/invite_view.html:16
#, python-format #, python-format
msgid "" msgid ""
"You have been invited to chat with %(inviter_name)s using Snikket, a secure, " "You have been invited to chat with %(inviter_name)s using Snikket, a secure, "
@@ -924,7 +1044,7 @@ msgstr ""
"Snikket, une application de messagerie sécurisée et respectueuse de la vie " "Snikket, une application de messagerie sécurisée et respectueuse de la vie "
"privée sur %(site_name)s." "privée sur %(site_name)s."
#: snikket_web/templates/invite_view.html:17 #: snikket_web/templates/invite_view.html:18
#, python-format #, python-format
msgid "" msgid ""
"You have been invited to chat on %(site_name)s using Snikket, a secure, " "You have been invited to chat on %(site_name)s using Snikket, a secure, "
@@ -933,37 +1053,38 @@ msgstr ""
"Vous avez été invité à converser sur %(site_name)s en utilisant Snikket, une " "Vous avez été invité à converser sur %(site_name)s en utilisant Snikket, une "
"application de messagerie sécurisée et respectueuse de la vie privée." "application de messagerie sécurisée et respectueuse de la vie privée."
#: snikket_web/templates/invite_view.html:19 #: snikket_web/templates/invite_view.html:20
msgid "Get started" msgid "Get started"
msgstr "Démarrer" msgstr "Démarrer"
#: snikket_web/templates/invite_view.html:21 #: snikket_web/templates/invite_view.html:22
msgid "Install the Snikket App on your Android or iOS device." msgid "Install the Snikket App on your Android or iOS device."
msgstr "Installez lapplication Snikket sur votre appareil Android ou iOS." msgstr "Installez lapplication Snikket sur votre appareil Android ou iOS."
#: snikket_web/templates/invite_view.html:23 #: snikket_web/templates/invite_view.html:24
#, python-format #, python-format
msgid "" msgid ""
"Install the Snikket App on your Android device (<a href=\"%(ios_info_url)s\" " "Install the Snikket App on your Android device (<a href=\"%(ios_info_url)s\" "
"rel=\"noopener noreferrer\" target=\"_blank\">iOS coming soon!</a>)." "rel=\"noopener noreferrer\" target=\"_blank\">iOS coming soon!</a>)."
msgstr "" msgstr ""
"Installez lApplication Snikket sur votre appareil Android (<a href=\"" "Installez lApplication Snikket sur votre appareil Android (<a href="
"%(ios_info_url)s\" rel=\"noopener noreferrer\" target=\"_blank\">iOS " "\"%(ios_info_url)s\" rel=\"noopener noreferrer\" target=\"_blank\">iOS "
"disponible bientôt!</a>)." "disponible bientôt!</a>)."
#: snikket_web/templates/invite_view.html:27 #: snikket_web/templates/invite_view.html:28
msgid "Get it on Google Play" msgid "Get it on Google Play"
msgstr "Obtenez-la sur Google Play" msgstr "Obtenez-la sur Google Play"
#: snikket_web/templates/invite_view.html:29 #: snikket_web/templates/invite_view.html:30
msgid "Download on the App Store" msgid "Download on the App Store"
msgstr "Télécharger sur lApp Store" msgstr "Télécharger sur lApp Store"
#: snikket_web/templates/invite_view.html:33 #: snikket_web/templates/invite_view.html:34
msgid "Not on mobile?" #, fuzzy
msgstr "Pas sur mobile?" msgid "Send to mobile device"
msgstr "Envoyer vers l'appareil"
#: snikket_web/templates/invite_view.html:36 #: snikket_web/templates/invite_view.html:37
msgid "" msgid ""
"After installation the app should automatically open and prompt you to " "After installation the app should automatically open and prompt you to "
"create an account. If not, simply click the button below." "create an account. If not, simply click the button below."
@@ -972,7 +1093,7 @@ msgstr ""
"inviter à créer un compte. Si ce nest pas le cas, il suffit de cliquer sur " "inviter à créer un compte. Si ce nest pas le cas, il suffit de cliquer sur "
"le bouton ci-dessous." "le bouton ci-dessous."
#: snikket_web/templates/invite_view.html:44 #: snikket_web/templates/invite_view.html:45
#, python-format #, python-format
msgid "" msgid ""
"You can connect to Snikket using any XMPP-compatible software. If the button " "You can connect to Snikket using any XMPP-compatible software. If the button "
@@ -984,16 +1105,16 @@ msgstr ""
"application, vous devrez peut-être <a href=\"%(register_url)s\">enregistrer " "application, vous devrez peut-être <a href=\"%(register_url)s\">enregistrer "
"un compte manuellement</a>." "un compte manuellement</a>."
#: snikket_web/templates/invite_view.html:50 #: snikket_web/templates/invite_view.html:51
msgid "Scan invite code" msgid "Scan invite code"
msgstr "Scanner le code dinvitation" msgstr "Scanner le code dinvitation"
#: snikket_web/templates/invite_view.html:53 #: snikket_web/templates/invite_view.html:54
#: snikket_web/templates/invite_view.html:82 #: snikket_web/templates/invite_view.html:83
msgid "Close" msgid "Close"
msgstr "Fermer" msgstr "Fermer"
#: snikket_web/templates/invite_view.html:56 #: snikket_web/templates/invite_view.html:57
msgid "" msgid ""
"You can transfer this invite to your mobile device by scanning a code with " "You can transfer this invite to your mobile device by scanning a code with "
"your camera. You can use either a QR scanner app or the Snikket app itself." "your camera. You can use either a QR scanner app or the Snikket app itself."
@@ -1002,22 +1123,22 @@ msgstr ""
"scannant un code avec votre appareil photo. Vous pouvez utiliser soit une " "scannant un code avec votre appareil photo. Vous pouvez utiliser soit une "
"application de scanner de QR code, soit lapplication Snikket elle-même." "application de scanner de QR code, soit lapplication Snikket elle-même."
#: snikket_web/templates/invite_view.html:61 #: snikket_web/templates/invite_view.html:62
msgid "Using a QR code scanner" msgid "Using a QR code scanner"
msgstr "En utilisant un scanner de QR code" msgstr "En utilisant un scanner de QR code"
#: snikket_web/templates/invite_view.html:63 #: snikket_web/templates/invite_view.html:64
msgid "Using the Snikket app" msgid "Using the Snikket app"
msgstr "En utilisant lapplication Snikket" msgstr "En utilisant lapplication Snikket"
#: snikket_web/templates/invite_view.html:68 #: snikket_web/templates/invite_view.html:69
msgid "" msgid ""
"Use a <em>QR code</em> scanner on your mobile device to scan the code below:" "Use a <em>QR code</em> scanner on your mobile device to scan the code below:"
msgstr "" msgstr ""
"Utilisez un scanner de <em>QR code</em> sur votre appareil mobile pour " "Utilisez un scanner de <em>QR code</em> sur votre appareil mobile pour "
"scanner le code ci-dessous:" "scanner le code ci-dessous:"
#: snikket_web/templates/invite_view.html:74 #: snikket_web/templates/invite_view.html:75
msgid "" msgid ""
"Install the Snikket app on your mobile device, open it, and tap the 'Scan' " "Install the Snikket app on your mobile device, open it, and tap the 'Scan' "
"button at the top." "button at the top."
@@ -1039,7 +1160,8 @@ msgstr "supprimé"
#: snikket_web/templates/library.j2:122 #: snikket_web/templates/library.j2:122
msgid "Can be used multiple times to create accounts on this Snikket service." msgid "Can be used multiple times to create accounts on this Snikket service."
msgstr "Peut être utilisée pour créer plusieurs comptes sur ce service Snikket." msgstr ""
"Peut être utilisée pour créer plusieurs comptes sur ce service Snikket."
#: snikket_web/templates/library.j2:124 #: snikket_web/templates/library.j2:124
msgid "Can be used once to create an account on this Snikket service." msgid "Can be used once to create an account on this Snikket service."
@@ -1057,6 +1179,31 @@ msgstr "Entrez votre adresse et mot de passe Snikket pour gérer votre compte."
msgid "Login failed" msgid "Login failed"
msgstr "Échec didentification" msgstr "Échec didentification"
#: snikket_web/templates/login.html:23
#, fuzzy
#| msgid "Incorrect password"
msgid "Incorrect address"
msgstr "Mot de passe incorrect"
#: snikket_web/templates/login.html:24
#, fuzzy, python-format
msgid ""
"This Snikket service only hosts addresses ending in <em>@%(snikket_domain)s</"
"em>. Your password was not sent."
msgstr ""
"Le service Snikket n'héberge que les adresses se terminant par "
"<em>@%(snikket_domain)s</em>. Votre mot de passe n'a pas été envoyé."
#: snikket_web/templates/unauth.html:16
#, fuzzy
msgid "Operation successful"
msgstr "Opération réussite"
#: snikket_web/templates/unauth.html:18
#, fuzzy
msgid "Error"
msgstr "Erreur"
#: snikket_web/templates/user_home.html:9 #: snikket_web/templates/user_home.html:9
msgid "Welcome!" msgid "Welcome!"
msgstr "Bienvenue!" msgstr "Bienvenue!"
@@ -1091,11 +1238,11 @@ msgstr ""
msgid "Admin panel" msgid "Admin panel"
msgstr "Panneau dadministration" msgstr "Panneau dadministration"
#: snikket_web/templates/user_logout.html:8 #: snikket_web/templates/user_logout.html:5
msgid "Sign out of the Snikket Web Portal" msgid "Sign out of the Snikket Web Portal"
msgstr "Se déconnecter du portail web Snikket" msgstr "Se déconnecter du portail web Snikket"
#: snikket_web/templates/user_logout.html:9 #: snikket_web/templates/user_logout.html:6
msgid "" msgid ""
"Click below to log yourself out of the web portal. This does not affect any " "Click below to log yourself out of the web portal. This does not affect any "
"other connected devices." "other connected devices."
@@ -1103,11 +1250,11 @@ msgstr ""
"Cliquez ci-dessous pour vous déconnecter du portail. Ceci naffecte pas vos " "Cliquez ci-dessous pour vous déconnecter du portail. Ceci naffecte pas vos "
"autres appareils connectés." "autres appareils connectés."
#: snikket_web/templates/user_passwd.html:8 #: snikket_web/templates/user_passwd.html:5
msgid "Change your password" msgid "Change your password"
msgstr "Changer votre mot de passe" msgstr "Changer votre mot de passe"
#: snikket_web/templates/user_passwd.html:9 #: snikket_web/templates/user_passwd.html:6
msgid "" msgid ""
"To change your password, you need to provide the current password as well as " "To change your password, you need to provide the current password as well as "
"the new one. To reduce the chance of typos, we ask for your new password " "the new one. To reduce the chance of typos, we ask for your new password "
@@ -1117,7 +1264,7 @@ msgstr ""
"et votre nouveau mot de passe. Pour réduire les chances derreur, vous devez " "et votre nouveau mot de passe. Pour réduire les chances derreur, vous devez "
"confirmer le nouveau mot de passe." "confirmer le nouveau mot de passe."
#: snikket_web/templates/user_passwd.html:27 #: snikket_web/templates/user_passwd.html:24
msgid "" msgid ""
"After changing your password, you will have to enter the new password on all " "After changing your password, you will have to enter the new password on all "
"of your devices." "of your devices."
@@ -1125,19 +1272,19 @@ msgstr ""
"Après avoir changé votre mot de passe, vous devez entrer le nouveau mot de " "Après avoir changé votre mot de passe, vous devez entrer le nouveau mot de "
"passe sur chacun de vos appareils." "passe sur chacun de vos appareils."
#: snikket_web/templates/user_profile.html:7 #: snikket_web/templates/user_profile.html:4
msgid "Update your profile" msgid "Update your profile"
msgstr "Mettre à jour votre profil" msgstr "Mettre à jour votre profil"
#: snikket_web/templates/user_profile.html:9 #: snikket_web/templates/user_profile.html:6
msgid "Profile" msgid "Profile"
msgstr "Profil" msgstr "Profil"
#: snikket_web/templates/user_profile.html:22 #: snikket_web/templates/user_profile.html:19
msgid "Visibility" msgid "Visibility"
msgstr "Visibilité" msgstr "Visibilité"
#: snikket_web/templates/user_profile.html:23 #: snikket_web/templates/user_profile.html:20
msgid "" msgid ""
"This section allows you to control who can see your profile information, " "This section allows you to control who can see your profile information, "
"like avatar and nickname." "like avatar and nickname."
@@ -1145,6 +1292,9 @@ msgstr ""
"Cette section permet de configurer qui peut voir votre profil, comme par " "Cette section permet de configurer qui peut voir votre profil, comme par "
"exemple votre avatar et votre pseudonyme." "exemple votre avatar et votre pseudonyme."
#~ msgid "Not on mobile?"
#~ msgstr "Pas sur mobile?"
#~ msgid "Edit user %(user_name)s" #~ msgid "Edit user %(user_name)s"
#~ msgstr "Modifier lutilisateur %(user_name)s" #~ msgstr "Modifier lutilisateur %(user_name)s"

View File

@@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PROJECT VERSION\n" "Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2021-01-30 12:45+0100\n" "POT-Creation-Date: 2021-02-23 07:55+0100\n"
"PO-Revision-Date: 2021-02-02 21:01+0000\n" "PO-Revision-Date: 2021-02-25 16:02+0000\n"
"Last-Translator: uira <inboxriau@andriana.id>\n" "Last-Translator: uira <inboxriau@andriana.id>\n"
"Language-Team: Indonesian <https://i18n.sotecware.net/projects/snikket/" "Language-Team: Indonesian <https://i18n.sotecware.net/projects/snikket/"
"web-portal/id/>\n" "web-portal/id/>\n"
@@ -24,194 +24,262 @@ msgstr ""
msgid "Delete user permanently" msgid "Delete user permanently"
msgstr "Hapus permanen pengguna" msgstr "Hapus permanen pengguna"
#: snikket_web/admin.py:129 #: snikket_web/admin.py:73
msgid "User deleted"
msgstr "Pengguna dihapus"
#: snikket_web/admin.py:116
msgid "Password reset link created"
msgstr "Tautan setel ulang kata sandi dibuat"
#: snikket_web/admin.py:122
msgid "Password reset link deleted"
msgstr "Tautan setel ulang kata sandi dihapus"
#: snikket_web/admin.py:141
msgid "Invite to circle" msgid "Invite to circle"
msgstr "Undang masuk kelompok" msgstr "Undang masuk kelompok"
#: snikket_web/admin.py:135 #: snikket_web/admin.py:147
msgid "At least one circle must be selected" msgid "At least one circle must be selected"
msgstr "Minimal satu kelompok harus dipilih" msgstr "Minimal satu kelompok harus dipilih"
#: snikket_web/admin.py:140 #: snikket_web/admin.py:152
msgid "Valid for" msgid "Valid for"
msgstr "Valid selama" msgstr "Valid selama"
#: snikket_web/admin.py:142 #: snikket_web/admin.py:154
msgid "One hour" msgid "One hour"
msgstr "Satu jam" msgstr "Satu jam"
#: snikket_web/admin.py:143 #: snikket_web/admin.py:155
msgid "Twelve hours" msgid "Twelve hours"
msgstr "Dua belas jam" msgstr "Dua belas jam"
#: snikket_web/admin.py:144 #: snikket_web/admin.py:156
msgid "One day" msgid "One day"
msgstr "Satu hari" msgstr "Satu hari"
#: snikket_web/admin.py:145 #: snikket_web/admin.py:157
msgid "One week" msgid "One week"
msgstr "Satu minggu" msgstr "Satu minggu"
#: snikket_web/admin.py:146 #: snikket_web/admin.py:158
msgid "Four weeks" msgid "Four weeks"
msgstr "Empat minggu" msgstr "Empat minggu"
#: snikket_web/admin.py:152 snikket_web/templates/admin_edit_invite.html:17 #: snikket_web/admin.py:164 snikket_web/templates/admin_edit_invite.html:17
msgid "Invitation type" msgid "Invitation type"
msgstr "Jenis undangan" msgstr "Jenis undangan"
#: snikket_web/admin.py:154 snikket_web/templates/library.j2:116 #: snikket_web/admin.py:166 snikket_web/templates/library.j2:116
msgid "Individual" msgid "Individual"
msgstr "Individu" msgstr "Individu"
#: snikket_web/admin.py:155 snikket_web/templates/library.j2:114 #: snikket_web/admin.py:167 snikket_web/templates/library.j2:114
msgid "Group" msgid "Group"
msgstr "Grup" msgstr "Grup"
#: snikket_web/admin.py:161 #: snikket_web/admin.py:173
msgid "New invitation link" msgid "New invitation link"
msgstr "Tautan undangan baru" msgstr "Tautan undangan baru"
#: snikket_web/admin.py:223 #: snikket_web/admin.py:235
msgid "Revoke" msgid "Revoke"
msgstr "Batalkan" msgstr "Batalkan"
#: snikket_web/admin.py:283 snikket_web/admin.py:327 #: snikket_web/admin.py:259
msgid "Invitation created"
msgstr "Undangan dibuat"
#: snikket_web/admin.py:275
msgid "No such invitation exists"
msgstr "Undangan tidak tersedia"
#: snikket_web/admin.py:290
msgid "Invitation revoked"
msgstr "Undangan dibatalkan"
#: snikket_web/admin.py:307 snikket_web/admin.py:355
msgid "Name" msgid "Name"
msgstr "Nama" msgstr "Nama"
#: snikket_web/admin.py:288 snikket_web/templates/admin_circles.html:47 #: snikket_web/admin.py:312 snikket_web/templates/admin_circles.html:47
msgid "Create circle" msgid "Create circle"
msgstr "Buat kelompok" msgstr "Buat kelompok"
#: snikket_web/admin.py:332 #: snikket_web/admin.py:342
msgid "Circle created"
msgstr "Kelompok dibuat"
#: snikket_web/admin.py:360
msgid "Select user" msgid "Select user"
msgstr "Pilih pengguna" msgstr "Pilih pengguna"
#: snikket_web/admin.py:337 #: snikket_web/admin.py:365
msgid "Update circle" msgid "Update circle"
msgstr "Memperbarui kelompok" msgstr "Memperbarui kelompok"
#: snikket_web/admin.py:341 #: snikket_web/admin.py:369
msgid "Delete circle permanently" msgid "Delete circle permanently"
msgstr "Hapus kelompok secara permanen" msgstr "Hapus kelompok secara permanen"
#: snikket_web/admin.py:347 #: snikket_web/admin.py:375
msgid "Add user" msgid "Add user"
msgstr "Tambah pengguna" msgstr "Tambah pengguna"
#: snikket_web/admin.py:391
msgid "No such circle exists"
msgstr "Kelompok tersebut tidak ada"
#: snikket_web/admin.py:428
msgid "Circle data updated"
msgstr "Data kelompok diperbarui"
#: snikket_web/admin.py:434
msgid "Circle deleted"
msgstr "Kelompok dihapus"
#: snikket_web/admin.py:445
msgid "User added to circle"
msgstr "Pengguna ditambahkan ke kelompok"
#: snikket_web/admin.py:454
msgid "User removed from circle"
msgstr "Pengguna dihapus dari kelompok"
#: snikket_web/infra.py:40 #: snikket_web/infra.py:40
msgid "Main" msgid "Main"
msgstr "Utama" msgstr "Utama"
#: snikket_web/invite.py:93 #: snikket_web/invite.py:104
msgid "Username" msgid "Username"
msgstr "Nama pengguna" msgstr "Nama pengguna"
#: snikket_web/invite.py:97 snikket_web/invite.py:164 snikket_web/main.py:41 #: snikket_web/invite.py:108 snikket_web/invite.py:175 snikket_web/main.py:42
msgid "Password" msgid "Password"
msgstr "Kata sandi" msgstr "Kata sandi"
#: snikket_web/invite.py:101 snikket_web/invite.py:168 #: snikket_web/invite.py:112 snikket_web/invite.py:179
msgid "Confirm password" msgid "Confirm password"
msgstr "Konfirmasi kata sandi" msgstr "Konfirmasi kata sandi"
#: snikket_web/invite.py:105 snikket_web/invite.py:172 #: snikket_web/invite.py:116 snikket_web/invite.py:183
msgid "The passwords must match" msgid "The passwords must match"
msgstr "Kata sandi harus cocok" msgstr "Kata sandi harus cocok"
#: snikket_web/invite.py:110 #: snikket_web/invite.py:121
msgid "Create account" msgid "Create account"
msgstr "Buat akun" msgstr "Buat akun"
#: snikket_web/invite.py:137 #: snikket_web/invite.py:148
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:141 snikket_web/invite.py:205 #: snikket_web/invite.py:152 snikket_web/invite.py:216
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:145 #: snikket_web/invite.py:156
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:177 snikket_web/templates/user_home.html:32 #: snikket_web/invite.py:188 snikket_web/templates/user_home.html:32
#: snikket_web/templates/user_passwd.html:32 #: snikket_web/templates/user_passwd.html:29
msgid "Change password" msgid "Change password"
msgstr "Ganti kata sandi" msgstr "Ganti kata sandi"
#: snikket_web/main.py:36 #: snikket_web/main.py:37
msgid "Address" msgid "Address"
msgstr "Alamat" msgstr "Alamat"
#: snikket_web/main.py:46 #: snikket_web/main.py:47
msgid "Sign in" msgid "Sign in"
msgstr "Masuk" msgstr "Masuk"
#: snikket_web/main.py:72 #: snikket_web/main.py:56
msgid "Invalid username or password." msgid "Invalid username or password."
msgstr "Nama pengguna atau kata sandi salah." msgstr "Nama pengguna atau kata sandi salah."
#: snikket_web/user.py:21 #: snikket_web/main.py:84
msgid "Login successful!"
msgstr "Login berhasil!"
#: snikket_web/user.py:28
msgid "Current password" msgid "Current password"
msgstr "Kata sandi sekarang" msgstr "Kata sandi sekarang"
#: snikket_web/user.py:26 #: snikket_web/user.py:33
msgid "New password" msgid "New password"
msgstr "Kata sandi baru" msgstr "Kata sandi baru"
#: snikket_web/user.py:31 #: snikket_web/user.py:38
msgid "Confirm new password" msgid "Confirm new password"
msgstr "Konfirmasi kata sandi" msgstr "Konfirmasi kata sandi"
#: snikket_web/user.py:35 #: snikket_web/user.py:42
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:42 #: snikket_web/user.py:49
msgid "Sign out" msgid "Sign out"
msgstr "Keluar" msgstr "Keluar"
#: snikket_web/user.py:47 #: snikket_web/user.py:54
msgid "Nobody" msgid "Nobody"
msgstr "Tak seorangpun" msgstr "Tak seorangpun"
#: snikket_web/user.py:48 #: snikket_web/user.py:55
msgid "Friends only" msgid "Friends only"
msgstr "Hanya teman" msgstr "Hanya teman"
#: snikket_web/user.py:49 #: snikket_web/user.py:56
msgid "Everyone" msgid "Everyone"
msgstr "Semua orang" msgstr "Semua orang"
#: snikket_web/templates/admin_delete_user.html:12 #: snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:11 snikket_web/user.py:55 #: snikket_web/templates/admin_users.html:11 snikket_web/user.py:62
msgid "Display name" msgid "Display name"
msgstr "Nama tampilan" msgstr "Nama tampilan"
#: snikket_web/user.py:59 #: snikket_web/user.py:66
msgid "Avatar" msgid "Avatar"
msgstr "Gambar profil" msgstr "Gambar profil"
#: snikket_web/user.py:63 #: snikket_web/user.py:70
msgid "Profile visibility" msgid "Profile visibility"
msgstr "Visibilitas profil" msgstr "Visibilitas profil"
#: snikket_web/user.py:68 #: snikket_web/user.py:75
msgid "Update profile" msgid "Update profile"
msgstr "Perbaharui profil" msgstr "Perbarui profil"
#: snikket_web/user.py:93 #: snikket_web/user.py:100
msgid "Incorrect password" msgid "Incorrect password"
msgstr "Kata sandi salah" msgstr "Kata sandi salah"
#: snikket_web/templates/_footer.html:4 snikket_web/templates/login.html:36 #: snikket_web/user.py:104
msgid "Password changed"
msgstr "Kata sandi diganti"
#: snikket_web/user.py:146
msgid "Profile updated"
msgstr "Profil diperbarui"
#: snikket_web/templates/_footer.html:4
#, python-format #, python-format
msgid "A <a href=\"%(about_url)s\">Snikket</a> service" msgid "A <a href=\"%(about_url)s\">Snikket</a> service"
msgstr "<a href=\"%(about_url)s\">Layanan</a> Snikket" msgstr "<a href=\"%(about_url)s\">Layanan</a> Snikket"
#: snikket_web/templates/about.html:9 #: snikket_web/templates/_footer.html:6
msgid ""
"“Snikket” and the parrot logo are trademarks of Snikket Community Interest "
"Company."
msgstr ""
"“Snikket” dan logo burung beo adalah merek dagang dari Snikket Community "
"Interest Company."
#: snikket_web/templates/about.html:4 snikket_web/templates/about.html:9
msgid "About Snikket" msgid "About Snikket"
msgstr "Tentang Snikket" msgstr "Tentang Snikket"
@@ -271,10 +339,26 @@ msgstr ""
"href=\"%(apache20_url)s\">Lisensi Apache 2.0</a>." "href=\"%(apache20_url)s\">Lisensi Apache 2.0</a>."
#: snikket_web/templates/about.html:17 #: snikket_web/templates/about.html:17
msgid "Trademarks"
msgstr "Merek dagang"
#: snikket_web/templates/about.html:18
#, python-format
msgid ""
"“Snikket” and the parrot logo are trademarks of Snikket Community Interest "
"Company. For more information about the trademarks, visit the <a href="
"\"%(trademarks_url)s\">Snikket Trademarks information page</a>."
msgstr ""
"“Snikket” dan logo burung beo adalah merek dagang dari Snikket Community "
"Interest Company. Untuk informasi lebih lanjut tentang merek dagang, "
"kunjungi <a href=\"%(trademarks_url)s\">halaman informasi merek dagang "
"Snikket</a>."
#: snikket_web/templates/about.html:19
msgid "Software Versions" msgid "Software Versions"
msgstr "Versi perangkat lunak" msgstr "Versi perangkat lunak"
#: snikket_web/templates/about.html:27 #: snikket_web/templates/about.html:29
msgid "Back to the main page" msgid "Back to the main page"
msgstr "Kembali ke halaman depan" msgstr "Kembali ke halaman depan"
@@ -373,7 +457,7 @@ msgid "Debug information for %(user_name)s"
msgstr "Informasi debug untuk %(user_name)s" msgstr "Informasi debug untuk %(user_name)s"
#: snikket_web/templates/admin_debug_user.html:11 #: snikket_web/templates/admin_debug_user.html:11
#: snikket_web/templates/user_passwd.html:26 #: snikket_web/templates/user_passwd.html:23
msgid "Warning" msgid "Warning"
msgstr "Peringatan" msgstr "Peringatan"
@@ -426,9 +510,9 @@ msgstr ""
#: snikket_web/templates/admin_edit_circle.html:44 #: snikket_web/templates/admin_edit_circle.html:44
#: snikket_web/templates/admin_edit_invite.html:49 #: snikket_web/templates/admin_edit_invite.html:49
#: snikket_web/templates/admin_reset_user_password.html:25 #: snikket_web/templates/admin_reset_user_password.html:25
#: snikket_web/templates/user_logout.html:13 #: snikket_web/templates/user_logout.html:10
#: snikket_web/templates/user_passwd.html:30 #: snikket_web/templates/user_passwd.html:27
#: snikket_web/templates/user_profile.html:31 #: snikket_web/templates/user_profile.html:28
msgid "Back" msgid "Back"
msgstr "Kembali" msgstr "Kembali"
@@ -505,7 +589,6 @@ msgid "View invitation"
msgstr "Lihat undangan" msgstr "Lihat undangan"
#: snikket_web/templates/admin_edit_invite.html:13 #: snikket_web/templates/admin_edit_invite.html:13
#: snikket_web/templates/admin_invites.html:21
#: snikket_web/templates/admin_reset_user_password.html:15 #: snikket_web/templates/admin_reset_user_password.html:15
msgid "Valid until" msgid "Valid until"
msgstr "Valid hingga" msgstr "Valid hingga"
@@ -602,6 +685,10 @@ msgstr "Keluar panel administrator"
msgid "Pending invitations" msgid "Pending invitations"
msgstr "Undangan menunggu jawaban" msgstr "Undangan menunggu jawaban"
#: snikket_web/templates/admin_invites.html:21
msgid "Expires"
msgstr "Kadaluarsa"
#: snikket_web/templates/admin_invites.html:22 #: snikket_web/templates/admin_invites.html:22
msgid "Type" msgid "Type"
msgstr "Jenis" msgstr "Jenis"
@@ -685,7 +772,7 @@ msgid "The web portal encountered an internal error."
msgstr "Portal web mengalami kesalahan internal." msgstr "Portal web mengalami kesalahan internal."
#: snikket_web/templates/invite_invalid.html:5 #: snikket_web/templates/invite_invalid.html:5
#: snikket_web/templates/invite_view.html:12 #: snikket_web/templates/invite_view.html:13
#, python-format #, python-format
msgid "Invite to %(site_name)s" msgid "Invite to %(site_name)s"
msgstr "Undang ke %(site_name)s" msgstr "Undang ke %(site_name)s"
@@ -693,7 +780,7 @@ msgstr "Undang ke %(site_name)s"
#: snikket_web/templates/invite_invalid.html:6 #: snikket_web/templates/invite_invalid.html:6
#: snikket_web/templates/invite_register.html:10 #: snikket_web/templates/invite_register.html:10
#: snikket_web/templates/invite_success.html:11 #: snikket_web/templates/invite_success.html:11
#: snikket_web/templates/invite_view.html:13 #: snikket_web/templates/invite_view.html:14
#, python-format #, python-format
msgid "Powered by <img src=\"%(logo_url)s\" alt=\"Snikket\">" msgid "Powered by <img src=\"%(logo_url)s\" alt=\"Snikket\">"
msgstr "Didukung oleh <img alt=\"Snikket\" src=\"%(logo_url)s\">" msgstr "Didukung oleh <img alt=\"Snikket\" src=\"%(logo_url)s\">"
@@ -740,18 +827,18 @@ msgstr ""
"menggunakan aplikasi dengan mengklik tombol di bawah ini:" "menggunakan aplikasi dengan mengklik tombol di bawah ini:"
#: snikket_web/templates/invite_register.html:14 #: snikket_web/templates/invite_register.html:14
#: snikket_web/templates/invite_view.html:37 #: snikket_web/templates/invite_view.html:38
msgid "App already installed?" msgid "App already installed?"
msgstr "Aplikasi sudah dipasang?" msgstr "Aplikasi sudah dipasang?"
#: snikket_web/templates/invite_register.html:16 #: snikket_web/templates/invite_register.html:16
#: snikket_web/templates/invite_reset_view.html:21 #: snikket_web/templates/invite_reset_view.html:21
#: snikket_web/templates/invite_view.html:39 #: snikket_web/templates/invite_view.html:40
msgid "Open the app" msgid "Open the app"
msgstr "Buka aplikasi" msgstr "Buka aplikasi"
#: snikket_web/templates/invite_register.html:18 #: snikket_web/templates/invite_register.html:18
#: snikket_web/templates/invite_view.html:41 #: snikket_web/templates/invite_view.html:42
msgid "This button works only if you have the app installed already!" msgid "This button works only if you have the app installed already!"
msgstr "Tombol ini hanya berfungsi jika Anda sudah memasang aplikasinya!" msgstr "Tombol ini hanya berfungsi jika Anda sudah memasang aplikasinya!"
@@ -827,8 +914,8 @@ msgid ""
"This page allows you to reset the password of your account, <strong>" "This page allows you to reset the password of your account, <strong>"
"%(account_jid)s</strong>, once." "%(account_jid)s</strong>, once."
msgstr "" msgstr ""
"Halaman ini memungkinkan Anda untuk mengatur ulang kata sandi akun, " "Halaman ini memungkinkan Anda untuk mengatur ulang kata sandi akun, <strong>"
"<strong>%(account_jid)s</strong>, sekali." "%(account_jid)s</strong>, sekali."
#: snikket_web/templates/invite_reset_view.html:17 #: snikket_web/templates/invite_reset_view.html:17
msgid "Using the app" msgid "Using the app"
@@ -849,7 +936,7 @@ msgstr ""
"tombol Pindai di bagian atas." "tombol Pindai di bagian atas."
#: snikket_web/templates/invite_reset_view.html:26 #: snikket_web/templates/invite_reset_view.html:26
#: snikket_web/templates/invite_view.html:75 #: snikket_web/templates/invite_view.html:76
msgid "" msgid ""
"Your camera will turn on. Point it at the square code below until it is " "Your camera will turn on. Point it at the square code below until it is "
"within the highlighted square on your screen, and wait until the app " "within the highlighted square on your screen, and wait until the app "
@@ -864,7 +951,7 @@ msgid "You will then be prompted to enter a new password for your account."
msgstr "Anda akan diminta untuk memasukkan kata sandi baru untuk akun Anda." msgstr "Anda akan diminta untuk memasukkan kata sandi baru untuk akun Anda."
#: snikket_web/templates/invite_reset_view.html:29 #: snikket_web/templates/invite_reset_view.html:29
#: snikket_web/templates/invite_view.html:43 #: snikket_web/templates/invite_view.html:44
msgid "Alternatives" msgid "Alternatives"
msgstr "Alternatif" msgstr "Alternatif"
@@ -910,7 +997,7 @@ msgstr ""
msgid "Invite to %(site_name)s | Snikket" msgid "Invite to %(site_name)s | Snikket"
msgstr "Mengundang ke %(site_name)s | Snikket" msgstr "Mengundang ke %(site_name)s | Snikket"
#: snikket_web/templates/invite_view.html:15 #: snikket_web/templates/invite_view.html:16
#, python-format #, python-format
msgid "" msgid ""
"You have been invited to chat with %(inviter_name)s using Snikket, a secure, " "You have been invited to chat with %(inviter_name)s using Snikket, a secure, "
@@ -919,7 +1006,7 @@ msgstr ""
"Anda diundang untuk bercakap-cakap dengan %(inviter_name)s menggunakan " "Anda diundang untuk bercakap-cakap dengan %(inviter_name)s menggunakan "
"Snikket, aplikasi percakapan yang aman dan ramah privasi di %(site_name)s." "Snikket, aplikasi percakapan yang aman dan ramah privasi di %(site_name)s."
#: snikket_web/templates/invite_view.html:17 #: snikket_web/templates/invite_view.html:18
#, python-format #, python-format
msgid "" msgid ""
"You have been invited to chat on %(site_name)s using Snikket, a secure, " "You have been invited to chat on %(site_name)s using Snikket, a secure, "
@@ -928,15 +1015,15 @@ msgstr ""
"Anda telah diundang untuk bercakap-cakap di %(site_name)s menggunakan " "Anda telah diundang untuk bercakap-cakap di %(site_name)s menggunakan "
"Snikket, aplikasi percakapan yang aman dan ramah privasi." "Snikket, aplikasi percakapan yang aman dan ramah privasi."
#: snikket_web/templates/invite_view.html:19 #: snikket_web/templates/invite_view.html:20
msgid "Get started" msgid "Get started"
msgstr "Mulailah" msgstr "Mulailah"
#: snikket_web/templates/invite_view.html:21 #: snikket_web/templates/invite_view.html:22
msgid "Install the Snikket App on your Android or iOS device." msgid "Install the Snikket App on your Android or iOS device."
msgstr "Instal Snikket di perangkat Android atau iOS Anda." msgstr "Instal Snikket di perangkat Android atau iOS Anda."
#: snikket_web/templates/invite_view.html:23 #: snikket_web/templates/invite_view.html:24
#, python-format #, python-format
msgid "" msgid ""
"Install the Snikket App on your Android device (<a href=\"%(ios_info_url)s\" " "Install the Snikket App on your Android device (<a href=\"%(ios_info_url)s\" "
@@ -945,19 +1032,19 @@ msgstr ""
"Instal aplikasi Snikket di perangkat Android anda (<a href=\"%(ios_info_url)s" "Instal aplikasi Snikket di perangkat Android anda (<a href=\"%(ios_info_url)s"
"\" rel=\"noopener noreferrer\" target=\"_blank\">iOS segera tersedia!</a>)." "\" rel=\"noopener noreferrer\" target=\"_blank\">iOS segera tersedia!</a>)."
#: snikket_web/templates/invite_view.html:27 #: snikket_web/templates/invite_view.html:28
msgid "Get it on Google Play" msgid "Get it on Google Play"
msgstr "Dapatkan di Google Play" msgstr "Dapatkan di Google Play"
#: snikket_web/templates/invite_view.html:29 #: snikket_web/templates/invite_view.html:30
msgid "Download on the App Store" msgid "Download on the App Store"
msgstr "Unduh di App Store" msgstr "Unduh di App Store"
#: snikket_web/templates/invite_view.html:33 #: snikket_web/templates/invite_view.html:34
msgid "Not on mobile?" msgid "Send to mobile device"
msgstr "Bukan di ponsel?" msgstr "Dikirim ke telepon seluler"
#: snikket_web/templates/invite_view.html:36 #: snikket_web/templates/invite_view.html:37
msgid "" msgid ""
"After installation the app should automatically open and prompt you to " "After installation the app should automatically open and prompt you to "
"create an account. If not, simply click the button below." "create an account. If not, simply click the button below."
@@ -965,7 +1052,7 @@ msgstr ""
"Setelah instalasi, aplikasi akan terbuka otomatis dan meminta Anda untuk " "Setelah instalasi, aplikasi akan terbuka otomatis dan meminta Anda untuk "
"membuat akun. Jika tidak, cukup klik tombol di bawah." "membuat akun. Jika tidak, cukup klik tombol di bawah."
#: snikket_web/templates/invite_view.html:44 #: snikket_web/templates/invite_view.html:45
#, python-format #, python-format
msgid "" msgid ""
"You can connect to Snikket using any XMPP-compatible software. If the button " "You can connect to Snikket using any XMPP-compatible software. If the button "
@@ -976,16 +1063,16 @@ msgstr ""
"XMPP. Jika tombol di atas tidak berfungsi dengan aplikasi, Anda mungkin " "XMPP. Jika tombol di atas tidak berfungsi dengan aplikasi, Anda mungkin "
"perlu <a href=\"%(register_url)s\">mendaftarkan akun secara manual</a>." "perlu <a href=\"%(register_url)s\">mendaftarkan akun secara manual</a>."
#: snikket_web/templates/invite_view.html:50 #: snikket_web/templates/invite_view.html:51
msgid "Scan invite code" msgid "Scan invite code"
msgstr "Pindai kode undangan" msgstr "Pindai kode undangan"
#: snikket_web/templates/invite_view.html:53 #: snikket_web/templates/invite_view.html:54
#: snikket_web/templates/invite_view.html:82 #: snikket_web/templates/invite_view.html:83
msgid "Close" msgid "Close"
msgstr "Tutup" msgstr "Tutup"
#: snikket_web/templates/invite_view.html:56 #: snikket_web/templates/invite_view.html:57
msgid "" msgid ""
"You can transfer this invite to your mobile device by scanning a code with " "You can transfer this invite to your mobile device by scanning a code with "
"your camera. You can use either a QR scanner app or the Snikket app itself." "your camera. You can use either a QR scanner app or the Snikket app itself."
@@ -994,22 +1081,22 @@ msgstr ""
"kode dengan kamera. Anda dapat menggunakan aplikasi pemindai QR atau " "kode dengan kamera. Anda dapat menggunakan aplikasi pemindai QR atau "
"aplikasi Snikket." "aplikasi Snikket."
#: snikket_web/templates/invite_view.html:61 #: snikket_web/templates/invite_view.html:62
msgid "Using a QR code scanner" msgid "Using a QR code scanner"
msgstr "Menggunakan pemindai kode QR" msgstr "Menggunakan pemindai kode QR"
#: snikket_web/templates/invite_view.html:63 #: snikket_web/templates/invite_view.html:64
msgid "Using the Snikket app" msgid "Using the Snikket app"
msgstr "Menggunakan Snikket" msgstr "Menggunakan Snikket"
#: snikket_web/templates/invite_view.html:68 #: snikket_web/templates/invite_view.html:69
msgid "" msgid ""
"Use a <em>QR code</em> scanner on your mobile device to scan the code below:" "Use a <em>QR code</em> scanner on your mobile device to scan the code below:"
msgstr "" msgstr ""
"Gunakan pemindai <em>kode QR</em> di perangkat seluler Anda untuk memindai " "Gunakan pemindai <em>kode QR</em> di perangkat seluler Anda untuk memindai "
"kode di bawah:" "kode di bawah:"
#: snikket_web/templates/invite_view.html:74 #: snikket_web/templates/invite_view.html:75
msgid "" msgid ""
"Install the Snikket app on your mobile device, open it, and tap the 'Scan' " "Install the Snikket app on your mobile device, open it, and tap the 'Scan' "
"button at the top." "button at the top."
@@ -1050,6 +1137,27 @@ msgstr "Ketik alamat Snikket dan kata sandinya untuk mengelola akun anda."
msgid "Login failed" msgid "Login failed"
msgstr "Percobaan masuk gagal" msgstr "Percobaan masuk gagal"
#: snikket_web/templates/login.html:23
msgid "Incorrect address"
msgstr "Alamat salah"
#: snikket_web/templates/login.html:24
#, python-format
msgid ""
"This Snikket service only hosts addresses ending in <em>@%(snikket_domain)s</"
"em>. Your password was not sent."
msgstr ""
"Layanan Snikket ini hanya menghosting alamat yang diakhiri dengan "
"<em>@%(snikket_domain)s</em>. Kata sandi Anda tidak terkirim."
#: snikket_web/templates/unauth.html:16
msgid "Operation successful"
msgstr "Operasi berhasil"
#: snikket_web/templates/unauth.html:18
msgid "Error"
msgstr "Kesalahan"
#: snikket_web/templates/user_home.html:9 #: snikket_web/templates/user_home.html:9
msgid "Welcome!" msgid "Welcome!"
msgstr "Selamat datang!" msgstr "Selamat datang!"
@@ -1083,11 +1191,11 @@ msgstr "Kelola pengguna, undangan dan kelompok pengguna layanan Snikket."
msgid "Admin panel" msgid "Admin panel"
msgstr "Panel Administrator" msgstr "Panel Administrator"
#: snikket_web/templates/user_logout.html:8 #: snikket_web/templates/user_logout.html:5
msgid "Sign out of the Snikket Web Portal" msgid "Sign out of the Snikket Web Portal"
msgstr "Keluar dari Portal Web Snikket" msgstr "Keluar dari Portal Web Snikket"
#: snikket_web/templates/user_logout.html:9 #: snikket_web/templates/user_logout.html:6
msgid "" msgid ""
"Click below to log yourself out of the web portal. This does not affect any " "Click below to log yourself out of the web portal. This does not affect any "
"other connected devices." "other connected devices."
@@ -1095,11 +1203,11 @@ msgstr ""
"Klik tombol untuk keluar dari portal web. Ini tidak mempengaruhi perangkat " "Klik tombol untuk keluar dari portal web. Ini tidak mempengaruhi perangkat "
"lain yang terhubung." "lain yang terhubung."
#: snikket_web/templates/user_passwd.html:8 #: snikket_web/templates/user_passwd.html:5
msgid "Change your password" msgid "Change your password"
msgstr "Ganti kata sandi anda" msgstr "Ganti kata sandi anda"
#: snikket_web/templates/user_passwd.html:9 #: snikket_web/templates/user_passwd.html:6
msgid "" msgid ""
"To change your password, you need to provide the current password as well as " "To change your password, you need to provide the current password as well as "
"the new one. To reduce the chance of typos, we ask for your new password " "the new one. To reduce the chance of typos, we ask for your new password "
@@ -1109,7 +1217,7 @@ msgstr ""
"baru. Untuk mengurangi kemungkinan salah ketik, kami meminta anda mengetik " "baru. Untuk mengurangi kemungkinan salah ketik, kami meminta anda mengetik "
"sandi baru dua kali." "sandi baru dua kali."
#: snikket_web/templates/user_passwd.html:27 #: snikket_web/templates/user_passwd.html:24
msgid "" msgid ""
"After changing your password, you will have to enter the new password on all " "After changing your password, you will have to enter the new password on all "
"of your devices." "of your devices."
@@ -1117,19 +1225,19 @@ msgstr ""
"Sesudah penggantian kata sandi, anda perlu memasukkan kata sandi baru ke " "Sesudah penggantian kata sandi, anda perlu memasukkan kata sandi baru ke "
"semua perangkat anda." "semua perangkat anda."
#: snikket_web/templates/user_profile.html:7 #: snikket_web/templates/user_profile.html:4
msgid "Update your profile" msgid "Update your profile"
msgstr "Perbaharui profil anda" msgstr "Perbarui profil anda"
#: snikket_web/templates/user_profile.html:9 #: snikket_web/templates/user_profile.html:6
msgid "Profile" msgid "Profile"
msgstr "Profil" msgstr "Profil"
#: snikket_web/templates/user_profile.html:22 #: snikket_web/templates/user_profile.html:19
msgid "Visibility" msgid "Visibility"
msgstr "Visibilitas" msgstr "Visibilitas"
#: snikket_web/templates/user_profile.html:23 #: snikket_web/templates/user_profile.html:20
msgid "" msgid ""
"This section allows you to control who can see your profile information, " "This section allows you to control who can see your profile information, "
"like avatar and nickname." "like avatar and nickname."
@@ -1137,6 +1245,9 @@ msgstr ""
"Bagian ini memungkinkan Anda untuk mengontrol siapa yang bisa melihat profil " "Bagian ini memungkinkan Anda untuk mengontrol siapa yang bisa melihat profil "
"Anda, seperti avatar dan nama panggilan." "Anda, seperti avatar dan nama panggilan."
#~ msgid "Not on mobile?"
#~ msgstr "Bukan di ponsel?"
#~ msgid "Edit user %(user_name)s" #~ msgid "Edit user %(user_name)s"
#~ msgstr "Edit pengguna %(user_name)s" #~ msgstr "Edit pengguna %(user_name)s"
@@ -1223,6 +1334,3 @@ msgstr ""
#~ msgid "Copy operation failed" #~ msgid "Copy operation failed"
#~ msgstr "Proses penyalinan gagal" #~ msgstr "Proses penyalinan gagal"
#~ msgid "Password change failed"
#~ msgstr "Gagal mengganti kata kunci"

View File

@@ -7,14 +7,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PROJECT VERSION\n" "Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2021-01-30 12:45+0100\n" "POT-Creation-Date: 2021-02-23 07:55+0100\n"
"PO-Revision-Date: 2021-02-02 21:01+0000\n" "PO-Revision-Date: 2021-02-25 16:02+0000\n"
"Last-Translator: riccio <unriccio@email.it>\n" "Last-Translator: Roberto Resoli <roberto@resolutions.it>\n"
"Language-Team: Italian <https://i18n.sotecware.net/projects/snikket/" "Language-Team: Italian <https://i18n.sotecware.net/projects/snikket/"
"web-portal/it/>\n" "web-portal/it/>\n"
"Language: it\n" "Language: it\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.4.2\n" "X-Generator: Weblate 4.4.2\n"
@@ -24,202 +24,270 @@ msgstr ""
msgid "Delete user permanently" msgid "Delete user permanently"
msgstr "Elimina definitivamente l'utente" msgstr "Elimina definitivamente l'utente"
#: snikket_web/admin.py:129 #: snikket_web/admin.py:73
msgid "User deleted"
msgstr "Utente rimosso"
#: snikket_web/admin.py:116
msgid "Password reset link created"
msgstr "Creato collegamento per reimpostare la password"
#: snikket_web/admin.py:122
msgid "Password reset link deleted"
msgstr "Eliminato collegamento per reimpostare la password"
#: snikket_web/admin.py:141
msgid "Invite to circle" msgid "Invite to circle"
msgstr "Invita nella cerchia" msgstr "Invita nella cerchia"
#: snikket_web/admin.py:135 #: snikket_web/admin.py:147
msgid "At least one circle must be selected" msgid "At least one circle must be selected"
msgstr "Devi selezionare almeno una cerchia" msgstr "Devi selezionare almeno una cerchia"
#: snikket_web/admin.py:140 #: snikket_web/admin.py:152
msgid "Valid for" msgid "Valid for"
msgstr "Valido per" msgstr "Valido per"
#: snikket_web/admin.py:142 #: snikket_web/admin.py:154
msgid "One hour" msgid "One hour"
msgstr "Un'ora" msgstr "Un'ora"
#: snikket_web/admin.py:143 #: snikket_web/admin.py:155
msgid "Twelve hours" msgid "Twelve hours"
msgstr "Dodici ore" msgstr "Dodici ore"
#: snikket_web/admin.py:144 #: snikket_web/admin.py:156
msgid "One day" msgid "One day"
msgstr "Un giorno" msgstr "Un giorno"
#: snikket_web/admin.py:145 #: snikket_web/admin.py:157
msgid "One week" msgid "One week"
msgstr "Una settimana" msgstr "Una settimana"
#: snikket_web/admin.py:146 #: snikket_web/admin.py:158
msgid "Four weeks" msgid "Four weeks"
msgstr "Quattro settimane" msgstr "Quattro settimane"
#: snikket_web/admin.py:152 snikket_web/templates/admin_edit_invite.html:17 #: snikket_web/admin.py:164 snikket_web/templates/admin_edit_invite.html:17
msgid "Invitation type" msgid "Invitation type"
msgstr "Tipo di invito" msgstr "Tipo di invito"
#: snikket_web/admin.py:154 snikket_web/templates/library.j2:116 #: snikket_web/admin.py:166 snikket_web/templates/library.j2:116
msgid "Individual" msgid "Individual"
msgstr "Individuale" msgstr "Individuale"
#: snikket_web/admin.py:155 snikket_web/templates/library.j2:114 #: snikket_web/admin.py:167 snikket_web/templates/library.j2:114
msgid "Group" msgid "Group"
msgstr "Gruppo" msgstr "Gruppo"
#: snikket_web/admin.py:161 #: snikket_web/admin.py:173
msgid "New invitation link" msgid "New invitation link"
msgstr "Nuovo collegamento di invito" msgstr "Nuovo collegamento di invito"
#: snikket_web/admin.py:223 #: snikket_web/admin.py:235
msgid "Revoke" msgid "Revoke"
msgstr "Revoca" msgstr "Revoca"
#: snikket_web/admin.py:283 snikket_web/admin.py:327 #: snikket_web/admin.py:259
msgid "Invitation created"
msgstr "Invito creato"
#: snikket_web/admin.py:275
msgid "No such invitation exists"
msgstr "Questo invito non esiste"
#: snikket_web/admin.py:290
msgid "Invitation revoked"
msgstr "Invito revocato"
#: snikket_web/admin.py:307 snikket_web/admin.py:355
msgid "Name" msgid "Name"
msgstr "Nome" msgstr "Nome"
#: snikket_web/admin.py:288 snikket_web/templates/admin_circles.html:47 #: snikket_web/admin.py:312 snikket_web/templates/admin_circles.html:47
msgid "Create circle" msgid "Create circle"
msgstr "Crea cerchia" msgstr "Crea cerchia"
#: snikket_web/admin.py:332 #: snikket_web/admin.py:342
msgid "Circle created"
msgstr "Cerchia creata"
#: snikket_web/admin.py:360
msgid "Select user" msgid "Select user"
msgstr "Seleziona utente" msgstr "Seleziona utente"
#: snikket_web/admin.py:337 #: snikket_web/admin.py:365
msgid "Update circle" msgid "Update circle"
msgstr "Modifica cerchia" msgstr "Modifica cerchia"
#: snikket_web/admin.py:341 #: snikket_web/admin.py:369
msgid "Delete circle permanently" msgid "Delete circle permanently"
msgstr "Elimina cerchia definitivamente" msgstr "Elimina cerchia definitivamente"
#: snikket_web/admin.py:347 #: snikket_web/admin.py:375
msgid "Add user" msgid "Add user"
msgstr "Aggiungi utente" msgstr "Aggiungi utente"
#: snikket_web/admin.py:391
msgid "No such circle exists"
msgstr "Questa cerchia non esiste"
#: snikket_web/admin.py:428
msgid "Circle data updated"
msgstr "Dati della cerchia aggiornati"
#: snikket_web/admin.py:434
msgid "Circle deleted"
msgstr "Cerchia eliminata"
#: snikket_web/admin.py:445
msgid "User added to circle"
msgstr "Utente aggiunto alla cerchia"
#: snikket_web/admin.py:454
msgid "User removed from circle"
msgstr "Utente rimosso dalla cerchia"
#: snikket_web/infra.py:40 #: snikket_web/infra.py:40
msgid "Main" msgid "Main"
msgstr "Principale" msgstr "Principale"
#: snikket_web/invite.py:93 #: snikket_web/invite.py:104
msgid "Username" msgid "Username"
msgstr "Nome utente" msgstr "Nome utente"
#: snikket_web/invite.py:97 snikket_web/invite.py:164 snikket_web/main.py:41 #: snikket_web/invite.py:108 snikket_web/invite.py:175 snikket_web/main.py:42
msgid "Password" msgid "Password"
msgstr "Password" msgstr "Password"
#: snikket_web/invite.py:101 snikket_web/invite.py:168 #: snikket_web/invite.py:112 snikket_web/invite.py:179
msgid "Confirm password" msgid "Confirm password"
msgstr "Conferma password" msgstr "Conferma password"
#: snikket_web/invite.py:105 snikket_web/invite.py:172 #: snikket_web/invite.py:116 snikket_web/invite.py:183
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:110 #: snikket_web/invite.py:121
msgid "Create account" msgid "Create account"
msgstr "Crea utenza" msgstr "Crea utenza"
#: snikket_web/invite.py:137 #: snikket_web/invite.py:148
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:141 snikket_web/invite.py:205 #: snikket_web/invite.py:152 snikket_web/invite.py:216
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:145 #: snikket_web/invite.py:156
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:177 snikket_web/templates/user_home.html:32 #: snikket_web/invite.py:188 snikket_web/templates/user_home.html:32
#: snikket_web/templates/user_passwd.html:32 #: snikket_web/templates/user_passwd.html:29
msgid "Change password" msgid "Change password"
msgstr "Cambia password" msgstr "Cambia password"
#: snikket_web/main.py:36 #: snikket_web/main.py:37
msgid "Address" msgid "Address"
msgstr "Indirizzo" msgstr "Indirizzo"
#: snikket_web/main.py:46 #: snikket_web/main.py:47
msgid "Sign in" msgid "Sign in"
msgstr "Accedi" msgstr "Accedi"
#: snikket_web/main.py:72 #: snikket_web/main.py:56
msgid "Invalid username or password." msgid "Invalid username or password."
msgstr "Nome utente o password non validi." msgstr "Nome utente o password non validi."
#: snikket_web/user.py:21 #: snikket_web/main.py:84
msgid "Login successful!"
msgstr "Accesso riuscito!"
#: snikket_web/user.py:28
msgid "Current password" msgid "Current password"
msgstr "Password attuale" msgstr "Password attuale"
#: snikket_web/user.py:26 #: snikket_web/user.py:33
msgid "New password" msgid "New password"
msgstr "Nuova password" msgstr "Nuova password"
#: snikket_web/user.py:31 #: snikket_web/user.py:38
msgid "Confirm new password" msgid "Confirm new password"
msgstr "Conferma nuova password" msgstr "Conferma nuova password"
#: snikket_web/user.py:35 #: snikket_web/user.py:42
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:42 #: snikket_web/user.py:49
msgid "Sign out" msgid "Sign out"
msgstr "Esci" msgstr "Esci"
#: snikket_web/user.py:47 #: snikket_web/user.py:54
msgid "Nobody" msgid "Nobody"
msgstr "Nessuno" msgstr "Nessuno"
#: snikket_web/user.py:48 #: snikket_web/user.py:55
msgid "Friends only" msgid "Friends only"
msgstr "Solo amici" msgstr "Solo amici"
#: snikket_web/user.py:49 #: snikket_web/user.py:56
msgid "Everyone" msgid "Everyone"
msgstr "Chiunque" msgstr "Chiunque"
#: snikket_web/templates/admin_delete_user.html:12 #: snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:11 snikket_web/user.py:55 #: snikket_web/templates/admin_users.html:11 snikket_web/user.py:62
msgid "Display name" msgid "Display name"
msgstr "Nome visualizzato" msgstr "Nome visualizzato"
#: snikket_web/user.py:59 #: snikket_web/user.py:66
msgid "Avatar" msgid "Avatar"
msgstr "Avatar" msgstr "Avatar"
#: snikket_web/user.py:63 #: snikket_web/user.py:70
msgid "Profile visibility" msgid "Profile visibility"
msgstr "Visibilità del profilo" msgstr "Visibilità del profilo"
#: snikket_web/user.py:68 #: snikket_web/user.py:75
msgid "Update profile" msgid "Update profile"
msgstr "Modifica profilo" msgstr "Modifica profilo"
#: snikket_web/user.py:93 #: snikket_web/user.py:100
msgid "Incorrect password" msgid "Incorrect password"
msgstr "Password errata" msgstr "Password errata"
#: snikket_web/templates/_footer.html:4 snikket_web/templates/login.html:36 #: snikket_web/user.py:104
msgid "Password changed"
msgstr "Password cambiata"
#: snikket_web/user.py:146
msgid "Profile updated"
msgstr "Profilo aggiornato"
#: snikket_web/templates/_footer.html:4
#, python-format #, python-format
msgid "A <a href=\"%(about_url)s\">Snikket</a> service" msgid "A <a href=\"%(about_url)s\">Snikket</a> service"
msgstr "Un servizio <a href=\"%(about_url)s\">Snikket</a>" msgstr "Un servizio <a href=\"%(about_url)s\">Snikket</a>"
#: snikket_web/templates/about.html:9 #: snikket_web/templates/_footer.html:6
msgid ""
"“Snikket” and the parrot logo are trademarks of Snikket Community Interest "
"Company."
msgstr ""
"“Snikket” e il logo del pappagallo sono marchi registrati della Snikket "
"Community Interest Company."
#: snikket_web/templates/about.html:4 snikket_web/templates/about.html:9
msgid "About Snikket" msgid "About Snikket"
msgstr "A proposito di Snikket" msgstr "A proposito di Snikket"
#: snikket_web/templates/about.html:10 #: snikket_web/templates/about.html:10
#, python-format #, python-format
msgid "" msgid ""
"To learn more about Snikket, visit the <a " "To learn more about Snikket, visit the <a href=\"%(snikket_url)s\">Snikket "
"href=\"%(snikket_url)s\">Snikket website</a>." "website</a>."
msgstr "" msgstr ""
"Per saperne di più su Snikket, visita il <a href=\"%(snikket_url)s\">sito " "Per saperne di più su Snikket, visita il <a href=\"%(snikket_url)s\">sito "
"web di Snikket</a>." "web di Snikket</a>."
@@ -240,21 +308,21 @@ msgstr "Licenze"
#: snikket_web/templates/about.html:14 #: snikket_web/templates/about.html:14
#, python-format #, python-format
msgid "" msgid ""
"The web portal software is licensed under the terms of the <a " "The web portal software is licensed under the terms of the <a href="
"href=\"%(agpl_url)s\">Affero GNU General Public License, version 3.0 or " "\"%(agpl_url)s\">Affero GNU General Public License, version 3.0 or later</"
"later</a>. The full terms of the license can be reviewed using the " "a>. The full terms of the license can be reviewed using the aforementioned "
"aforementioned link." "link."
msgstr "" msgstr ""
"Il portale web è fornito secondo i termini della licenza <a href=\"" "Il portale web è fornito secondo i termini della licenza <a href="
"%(agpl_url)s\">Affero GNU General Public License, versione 3.0 o successive</" "\"%(agpl_url)s\">Affero GNU General Public License, versione 3.0 o "
"a>. I termini completi di licenza possono essere visionati seguendo il " "successive</a>. I termini completi di licenza possono essere visionati "
"collegamento." "seguendo il collegamento."
#: snikket_web/templates/about.html:15 #: snikket_web/templates/about.html:15
#, python-format #, python-format
msgid "" msgid ""
"The source code of the web portal can be downloaded and viewed in <a " "The source code of the web portal can be downloaded and viewed in <a href="
"href=\"%(source_url)s\">its GitHub repository</a>." "\"%(source_url)s\">its GitHub repository</a>."
msgstr "" msgstr ""
"Il codice sorgente del portale web può essere scaricato e visionato nell'<a " "Il codice sorgente del portale web può essere scaricato e visionato nell'<a "
"href=\"%(source_url)s\">archivio GitHub</a>." "href=\"%(source_url)s\">archivio GitHub</a>."
@@ -263,18 +331,33 @@ msgstr ""
#, python-format #, python-format
msgid "" msgid ""
"The icons used in the web portal are <a href=\"%(source_url)s\">Googles " "The icons used in the web portal are <a href=\"%(source_url)s\">Googles "
"Material Icons</a>, made available by Google under the terms of the <a " "Material Icons</a>, made available by Google under the terms of the <a href="
"href=\"%(apache20_url)s\">Apache 2.0 License</a>." "\"%(apache20_url)s\">Apache 2.0 License</a>."
msgstr "" msgstr ""
"Le icone usate dal portale web sono le <a href=\"%(source_url)s\">Googles " "Le icone usate dal portale web sono le <a href=\"%(source_url)s\">Googles "
"Material Icons</a>, rilasciate da Google secondo i termini della <a href=\"" "Material Icons</a>, rilasciate da Google secondo i termini della <a href="
"%(apache20_url)s\">Apache 2.0 License</a>." "\"%(apache20_url)s\">Apache 2.0 License</a>."
#: snikket_web/templates/about.html:17 #: snikket_web/templates/about.html:17
msgid "Trademarks"
msgstr "Marchi registrati"
#: snikket_web/templates/about.html:18
#, python-format
msgid ""
"“Snikket” and the parrot logo are trademarks of Snikket Community Interest "
"Company. For more information about the trademarks, visit the <a href="
"\"%(trademarks_url)s\">Snikket Trademarks information page</a>."
msgstr ""
"\"Snikket\" e il logo del pappagallo sono marchi di Snikket Community "
"Interest Company. Per maggiori informazioni sui marchi, visita la <a href=\""
"%(trademarks_url)s\">pagina informativa sui marchi Snikket</a>."
#: snikket_web/templates/about.html:19
msgid "Software Versions" msgid "Software Versions"
msgstr "Versioni dei programmi" msgstr "Versioni dei programmi"
#: snikket_web/templates/about.html:27 #: snikket_web/templates/about.html:29
msgid "Back to the main page" msgid "Back to the main page"
msgstr "Torna alla pagina principale" msgstr "Torna alla pagina principale"
@@ -289,17 +372,17 @@ msgstr "Gestisci cerchie"
#: snikket_web/templates/admin_circles.html:5 #: snikket_web/templates/admin_circles.html:5
msgid "" msgid ""
"<em>Circles</em> aim to help people who are in the same social circle " "<em>Circles</em> aim to help people who are in the same social circle find "
"find each other on your service." "each other on your service."
msgstr "" msgstr ""
"Lo scopo delle <em>cerchie</em> è di aiutare le persone appartenenti agli " "Lo scopo delle <em>cerchie</em> è di aiutare le persone appartenenti agli "
"stessi gruppi a trovarsi all'interno del vostro servizio." "stessi gruppi a trovarsi all'interno del vostro servizio."
#: snikket_web/templates/admin_circles.html:6 #: snikket_web/templates/admin_circles.html:6
msgid "" msgid ""
"Users who are in the same circle will see each other in their contact " "Users who are in the same circle will see each other in their contact list. "
"list. In addition, each circle has a group chat where the circle members " "In addition, each circle has a group chat where the circle members are "
"are included." "included."
msgstr "" msgstr ""
"Gli utenti che appartengono alla stessa cerchia possono vedersi nelle " "Gli utenti che appartengono alla stessa cerchia possono vedersi nelle "
"rispettive liste contatti. Inoltre, ogni cerchia ha una chat di gruppo che " "rispettive liste contatti. Inoltre, ogni cerchia ha una chat di gruppo che "
@@ -361,8 +444,8 @@ msgstr "Crea nuovo invito"
#: snikket_web/templates/admin_create_invite_form.html:6 #: snikket_web/templates/admin_create_invite_form.html:6
msgid "" msgid ""
"Create a new invitation link to invite more users to your Snikket service" "Create a new invitation link to invite more users to your Snikket service by "
" by clicking the button below." "clicking the button below."
msgstr "" msgstr ""
"Crea un nuovo collegamento di invito per invitare altri utenti al vostro " "Crea un nuovo collegamento di invito per invitare altri utenti al vostro "
"servizio Snikket cliccando il pulsante sottostante." "servizio Snikket cliccando il pulsante sottostante."
@@ -373,7 +456,7 @@ msgid "Debug information for %(user_name)s"
msgstr "Informazioni diagnostiche per %(user_name)s" msgstr "Informazioni diagnostiche per %(user_name)s"
#: snikket_web/templates/admin_debug_user.html:11 #: snikket_web/templates/admin_debug_user.html:11
#: snikket_web/templates/user_passwd.html:26 #: snikket_web/templates/user_passwd.html:23
msgid "Warning" msgid "Warning"
msgstr "Attenzione" msgstr "Attenzione"
@@ -415,8 +498,8 @@ msgstr "Pericolo"
#: snikket_web/templates/admin_delete_user.html:16 #: snikket_web/templates/admin_delete_user.html:16
msgid "" msgid ""
"The user and their data will be deleted irrevocably, permanently and " "The user and their data will be deleted irrevocably, permanently and "
"immediately upon pushing the below button. <strong>There is no way " "immediately upon pushing the below button. <strong>There is no way back!</"
"back!</strong>" "strong>"
msgstr "" msgstr ""
"L'utenza e i relativi dati verranno eliminati in modo permanente ed " "L'utenza e i relativi dati verranno eliminati in modo permanente ed "
"irreversibile non appena verrà premuto il pulsante sottostante. <strong>Non " "irreversibile non appena verrà premuto il pulsante sottostante. <strong>Non "
@@ -426,9 +509,9 @@ msgstr ""
#: snikket_web/templates/admin_edit_circle.html:44 #: snikket_web/templates/admin_edit_circle.html:44
#: snikket_web/templates/admin_edit_invite.html:49 #: snikket_web/templates/admin_edit_invite.html:49
#: snikket_web/templates/admin_reset_user_password.html:25 #: snikket_web/templates/admin_reset_user_password.html:25
#: snikket_web/templates/user_logout.html:13 #: snikket_web/templates/user_logout.html:10
#: snikket_web/templates/user_passwd.html:30 #: snikket_web/templates/user_passwd.html:27
#: snikket_web/templates/user_profile.html:31 #: snikket_web/templates/user_profile.html:28
msgid "Back" msgid "Back"
msgstr "Indietro" msgstr "Indietro"
@@ -504,7 +587,6 @@ msgid "View invitation"
msgstr "Visualizza invito" msgstr "Visualizza invito"
#: snikket_web/templates/admin_edit_invite.html:13 #: snikket_web/templates/admin_edit_invite.html:13
#: snikket_web/templates/admin_invites.html:21
#: snikket_web/templates/admin_reset_user_password.html:15 #: snikket_web/templates/admin_reset_user_password.html:15
msgid "Valid until" msgid "Valid until"
msgstr "Valido fino" msgstr "Valido fino"
@@ -520,7 +602,8 @@ msgid "Circles"
msgstr "Cerchie" msgstr "Cerchie"
#: snikket_web/templates/admin_edit_invite.html:23 #: snikket_web/templates/admin_edit_invite.html:23
msgid "Users joining via this invitation will be added to the following circles:" msgid ""
"Users joining via this invitation will be added to the following circles:"
msgstr "" msgstr ""
"Gli utenti che si iscrivono attraverso questo invito saranno aggiunti alle " "Gli utenti che si iscrivono attraverso questo invito saranno aggiunti alle "
"seguenti cerchie:" "seguenti cerchie:"
@@ -599,6 +682,10 @@ msgstr "Esci dal pannello amministrativo"
msgid "Pending invitations" msgid "Pending invitations"
msgstr "Inviti in attesa" msgstr "Inviti in attesa"
#: snikket_web/templates/admin_invites.html:21
msgid "Expires"
msgstr "Scade"
#: snikket_web/templates/admin_invites.html:22 #: snikket_web/templates/admin_invites.html:22
msgid "Type" msgid "Type"
msgstr "Tipo" msgstr "Tipo"
@@ -682,7 +769,7 @@ msgid "The web portal encountered an internal error."
msgstr "Il portale web ha ricevuto un errore interno." msgstr "Il portale web ha ricevuto un errore interno."
#: snikket_web/templates/invite_invalid.html:5 #: snikket_web/templates/invite_invalid.html:5
#: snikket_web/templates/invite_view.html:12 #: snikket_web/templates/invite_view.html:13
#, python-format #, python-format
msgid "Invite to %(site_name)s" msgid "Invite to %(site_name)s"
msgstr "Invito a %(site_name)s" msgstr "Invito a %(site_name)s"
@@ -690,7 +777,7 @@ msgstr "Invito a %(site_name)s"
#: snikket_web/templates/invite_invalid.html:6 #: snikket_web/templates/invite_invalid.html:6
#: snikket_web/templates/invite_register.html:10 #: snikket_web/templates/invite_register.html:10
#: snikket_web/templates/invite_success.html:11 #: snikket_web/templates/invite_success.html:11
#: snikket_web/templates/invite_view.html:13 #: snikket_web/templates/invite_view.html:14
#, python-format #, python-format
msgid "Powered by <img src=\"%(logo_url)s\" alt=\"Snikket\">" msgid "Powered by <img src=\"%(logo_url)s\" alt=\"Snikket\">"
msgstr "Gestito con <img alt=\"Snikket\" src=\"%(logo_url)s\">" msgstr "Gestito con <img alt=\"Snikket\" src=\"%(logo_url)s\">"
@@ -726,10 +813,10 @@ msgstr "Crea un'utenza"
#: snikket_web/templates/invite_register.html:13 #: snikket_web/templates/invite_register.html:13
msgid "" msgid ""
"Creating an account will allow to communicate with other people using the" "Creating an account will allow to communicate with other people using the "
" Snikket app or compatible software. If you already have the app " "Snikket app or compatible software. If you already have the app installed, "
"installed, we recommend that you continue the account creation process " "we recommend that you continue the account creation process inside the app "
"inside the app by clicking on the button below:" "by clicking on the button below:"
msgstr "" msgstr ""
"La creazione di un'utenza permette di comunicare con persone che usano " "La creazione di un'utenza permette di comunicare con persone che usano "
"Snikket o altri programmi compatibili. Se hai già installato l'applicazione " "Snikket o altri programmi compatibili. Se hai già installato l'applicazione "
@@ -737,20 +824,21 @@ msgstr ""
"sottostante:" "sottostante:"
#: snikket_web/templates/invite_register.html:14 #: snikket_web/templates/invite_register.html:14
#: snikket_web/templates/invite_view.html:37 #: snikket_web/templates/invite_view.html:38
msgid "App already installed?" msgid "App already installed?"
msgstr "Applicazione già installata?" msgstr "Applicazione già installata?"
#: snikket_web/templates/invite_register.html:16 #: snikket_web/templates/invite_register.html:16
#: snikket_web/templates/invite_reset_view.html:21 #: snikket_web/templates/invite_reset_view.html:21
#: snikket_web/templates/invite_view.html:39 #: snikket_web/templates/invite_view.html:40
msgid "Open the app" msgid "Open the app"
msgstr "Apri l'applicazione" msgstr "Apri l'applicazione"
#: snikket_web/templates/invite_register.html:18 #: snikket_web/templates/invite_register.html:18
#: snikket_web/templates/invite_view.html:41 #: snikket_web/templates/invite_view.html:42
msgid "This button works only if you have the app installed already!" msgid "This button works only if you have the app installed already!"
msgstr "Questo pulsante funziona soltanto se hai già installato l'applicazione!" msgstr ""
"Questo pulsante funziona soltanto se hai già installato l'applicazione!"
#: snikket_web/templates/invite_register.html:19 #: snikket_web/templates/invite_register.html:19
msgid "Create an account online" msgid "Create an account online"
@@ -758,8 +846,8 @@ msgstr "Crea un'utenza online"
#: snikket_web/templates/invite_register.html:20 #: snikket_web/templates/invite_register.html:20
msgid "" msgid ""
"If you plan to use a legacy XMPP client, you can register an account " "If you plan to use a legacy XMPP client, you can register an account online "
"online and enter your credentials into any XMPP-compatible software." "and enter your credentials into any XMPP-compatible software."
msgstr "" msgstr ""
"Se prevedi di usare un altro client XMPP, puoi creare un'utenza online e " "Se prevedi di usare un altro client XMPP, puoi creare un'utenza online e "
"successivamente inserire le credenziali in qualunque programma compatibile " "successivamente inserire le credenziali in qualunque programma compatibile "
@@ -767,8 +855,7 @@ msgstr ""
#: snikket_web/templates/invite_register.html:27 #: snikket_web/templates/invite_register.html:27
msgid "" msgid ""
"Choose a username, this will become the first part of your new chat " "Choose a username, this will become the first part of your new chat address."
"address."
msgstr "" msgstr ""
"Scegli un nome utente, che diventerà la prima parte del tuo nuovo indirizzo." "Scegli un nome utente, che diventerà la prima parte del tuo nuovo indirizzo."
@@ -787,8 +874,8 @@ msgstr "Reimposta la tua password online"
#: snikket_web/templates/invite_reset.html:16 #: snikket_web/templates/invite_reset.html:16
msgid "" msgid ""
"To reset your password online, fill out the fields below and confirm " "To reset your password online, fill out the fields below and confirm using "
"using the button." "the button."
msgstr "" msgstr ""
"Compila i campi sottostanti e premi il pulsante di conferma per reimpostare " "Compila i campi sottostanti e premi il pulsante di conferma per reimpostare "
"la tua password online." "la tua password online."
@@ -821,8 +908,8 @@ msgstr "Reimposta la tua password"
#: snikket_web/templates/invite_reset_view.html:15 #: snikket_web/templates/invite_reset_view.html:15
#, python-format #, python-format
msgid "" msgid ""
"This page allows you to reset the password of your account, " "This page allows you to reset the password of your account, <strong>"
"<strong>%(account_jid)s</strong>, once." "%(account_jid)s</strong>, once."
msgstr "" msgstr ""
"Questa pagina ti permette di reimpostare la password della tua utenza, " "Questa pagina ti permette di reimpostare la password della tua utenza, "
"<strong>%(account_jid)s</strong>, una volta soltanto." "<strong>%(account_jid)s</strong>, una volta soltanto."
@@ -839,14 +926,14 @@ msgstr ""
#: snikket_web/templates/invite_reset_view.html:25 #: snikket_web/templates/invite_reset_view.html:25
msgid "" msgid ""
"Alternatively, you can scan the below code with the Snikket App using the" "Alternatively, you can scan the below code with the Snikket App using the "
" Scan button at the top." "Scan button at the top."
msgstr "" msgstr ""
"In alternativa, puoi scansionare il codice sottostante con l'applicazione " "In alternativa, puoi scansionare il codice sottostante con l'applicazione "
"Snikket utilizzando il pulsante di scansione in alto." "Snikket utilizzando il pulsante di scansione in alto."
#: snikket_web/templates/invite_reset_view.html:26 #: snikket_web/templates/invite_reset_view.html:26
#: snikket_web/templates/invite_view.html:75 #: snikket_web/templates/invite_view.html:76
msgid "" msgid ""
"Your camera will turn on. Point it at the square code below until it is " "Your camera will turn on. Point it at the square code below until it is "
"within the highlighted square on your screen, and wait until the app " "within the highlighted square on your screen, and wait until the app "
@@ -861,15 +948,15 @@ msgid "You will then be prompted to enter a new password for your account."
msgstr "Ti verrà richiesto di inserire una nuova password per la tua utenza." msgstr "Ti verrà richiesto di inserire una nuova password per la tua utenza."
#: snikket_web/templates/invite_reset_view.html:29 #: snikket_web/templates/invite_reset_view.html:29
#: snikket_web/templates/invite_view.html:43 #: snikket_web/templates/invite_view.html:44
msgid "Alternatives" msgid "Alternatives"
msgstr "Alternative" msgstr "Alternative"
#: snikket_web/templates/invite_reset_view.html:30 #: snikket_web/templates/invite_reset_view.html:30
#, python-format #, python-format
msgid "" msgid ""
"You can also <a href=\"%(reset_url)s\">reset your password online</a> if " "You can also <a href=\"%(reset_url)s\">reset your password online</a> if the "
"the above button or scanning the QR code does not work for you." "above button or scanning the QR code does not work for you."
msgstr "" msgstr ""
"Puoi anche <a href=\"%(reset_url)s\">reimpostare la password online</a> se " "Puoi anche <a href=\"%(reset_url)s\">reimpostare la password online</a> se "
"hai difficoltà con il pulsante o con il QR code." "hai difficoltà con il pulsante o con il QR code."
@@ -886,7 +973,8 @@ msgstr "Registrata/o con successo su %(site_name)s"
#: snikket_web/templates/invite_success.html:12 #: snikket_web/templates/invite_success.html:12
#, python-format #, python-format
msgid "Congratulations! You successfully registered on %(site_name)s as %(jid)s." msgid ""
"Congratulations! You successfully registered on %(site_name)s as %(jid)s."
msgstr "" msgstr ""
"Congratulazioni! Ti sei registrata/o con successo su %(site_name)s come " "Congratulazioni! Ti sei registrata/o con successo su %(site_name)s come "
"%(jid)s." "%(jid)s."
@@ -897,8 +985,8 @@ msgstr "Il tuo indirizzo"
#: snikket_web/templates/invite_success.html:17 #: snikket_web/templates/invite_success.html:17
msgid "" msgid ""
"You can now set up your legacy XMPP client with the above address and the" "You can now set up your legacy XMPP client with the above address and the "
" password you chose during registration." "password you chose during registration."
msgstr "" msgstr ""
"Ora puoi impostare il tuo client XMPP con l'indirizzo mostrato sopra e la " "Ora puoi impostare il tuo client XMPP con l'indirizzo mostrato sopra e la "
"password che hai impostato durante la registrazione." "password che hai impostato durante la registrazione."
@@ -908,17 +996,17 @@ msgstr ""
msgid "Invite to %(site_name)s | Snikket" msgid "Invite to %(site_name)s | Snikket"
msgstr "Invito a %(site_name)s | Snikket" msgstr "Invito a %(site_name)s | Snikket"
#: snikket_web/templates/invite_view.html:15 #: snikket_web/templates/invite_view.html:16
#, python-format #, python-format
msgid "" msgid ""
"You have been invited to chat with %(inviter_name)s using Snikket, a " "You have been invited to chat with %(inviter_name)s using Snikket, a secure, "
"secure, privacy-friendly chat app on %(site_name)s." "privacy-friendly chat app on %(site_name)s."
msgstr "" msgstr ""
"Sei stata/o invitato a comunicare con %(inviter_name)s attraverso Snikket, " "Sei stata/o invitato a comunicare con %(inviter_name)s attraverso Snikket, "
"un programma di chat sicuro e rispettoso della vostra privacy su " "un programma di chat sicuro e rispettoso della vostra privacy su "
"%(site_name)s." "%(site_name)s."
#: snikket_web/templates/invite_view.html:17 #: snikket_web/templates/invite_view.html:18
#, python-format #, python-format
msgid "" msgid ""
"You have been invited to chat on %(site_name)s using Snikket, a secure, " "You have been invited to chat on %(site_name)s using Snikket, a secure, "
@@ -927,38 +1015,37 @@ msgstr ""
"Sei stata/o invitato a comunicare su %(site_name)s attraverso Snikket, un " "Sei stata/o invitato a comunicare su %(site_name)s attraverso Snikket, un "
"programma di chat sicuro e rispettoso della vostra privacy." "programma di chat sicuro e rispettoso della vostra privacy."
#: snikket_web/templates/invite_view.html:19 #: snikket_web/templates/invite_view.html:20
msgid "Get started" msgid "Get started"
msgstr "Inizia" msgstr "Inizia"
#: snikket_web/templates/invite_view.html:21 #: snikket_web/templates/invite_view.html:22
msgid "Install the Snikket App on your Android or iOS device." msgid "Install the Snikket App on your Android or iOS device."
msgstr "Installa l'applicazione Snikket sul tuo dispositivo Android o iOS." msgstr "Installa l'applicazione Snikket sul tuo dispositivo Android o iOS."
#: snikket_web/templates/invite_view.html:23 #: snikket_web/templates/invite_view.html:24
#, python-format #, python-format
msgid "" msgid ""
"Install the Snikket App on your Android device (<a " "Install the Snikket App on your Android device (<a href=\"%(ios_info_url)s\" "
"href=\"%(ios_info_url)s\" rel=\"noopener noreferrer\" " "rel=\"noopener noreferrer\" target=\"_blank\">iOS coming soon!</a>)."
"target=\"_blank\">iOS coming soon!</a>)."
msgstr "" msgstr ""
"Installa l'applicazione Snikket sul tuo dispositivo Android (<a href=\"" "Installa l'applicazione Snikket sul tuo dispositivo Android (<a href="
"%(ios_info_url)s\" rel=\"noopener noreferrer\" target=\"_blank\">a breve " "\"%(ios_info_url)s\" rel=\"noopener noreferrer\" target=\"_blank\">a breve "
"anche su iOS!</a>)." "anche su iOS!</a>)."
#: snikket_web/templates/invite_view.html:27 #: snikket_web/templates/invite_view.html:28
msgid "Get it on Google Play" msgid "Get it on Google Play"
msgstr "Scarica da Google Play" msgstr "Scarica da Google Play"
#: snikket_web/templates/invite_view.html:29 #: snikket_web/templates/invite_view.html:30
msgid "Download on the App Store" msgid "Download on the App Store"
msgstr "Scarica dall'App Store" msgstr "Scarica dall'App Store"
#: snikket_web/templates/invite_view.html:33 #: snikket_web/templates/invite_view.html:34
msgid "Not on mobile?" msgid "Send to mobile device"
msgstr "Nessun dispositivo mobile?" msgstr "Invia a dispositivo mobile"
#: snikket_web/templates/invite_view.html:36 #: snikket_web/templates/invite_view.html:37
msgid "" msgid ""
"After installation the app should automatically open and prompt you to " "After installation the app should automatically open and prompt you to "
"create an account. If not, simply click the button below." "create an account. If not, simply click the button below."
@@ -967,56 +1054,54 @@ msgstr ""
"automaticamente chiedendo di creare un'utenza. Se non succede premi il " "automaticamente chiedendo di creare un'utenza. Se non succede premi il "
"pulsante sottostante." "pulsante sottostante."
#: snikket_web/templates/invite_view.html:44 #: snikket_web/templates/invite_view.html:45
#, python-format #, python-format
msgid "" msgid ""
"You can connect to Snikket using any XMPP-compatible software. If the " "You can connect to Snikket using any XMPP-compatible software. If the button "
"button above does not work with your app, you may need to <a " "above does not work with your app, you may need to <a href=\"%(register_url)s"
"href=\"%(register_url)s\">register an account manually</a>." "\">register an account manually</a>."
msgstr "" msgstr ""
"Puoi collegarti a Snikket con qualunque programma compatibile con XMPP. Se " "Puoi collegarti a Snikket con qualunque programma compatibile con XMPP. Se "
"il pulsante sopra non funziona potresti dover <a href=\"%(register_url)s\"" "il pulsante sopra non funziona potresti dover <a href=\"%(register_url)s"
">registrare l'utenza manualmente</a>." "\">registrare l'utenza manualmente</a>."
#: snikket_web/templates/invite_view.html:50 #: snikket_web/templates/invite_view.html:51
msgid "Scan invite code" msgid "Scan invite code"
msgstr "Scansiona il codice di invito" msgstr "Scansiona il codice di invito"
#: snikket_web/templates/invite_view.html:53 #: snikket_web/templates/invite_view.html:54
#: snikket_web/templates/invite_view.html:82 #: snikket_web/templates/invite_view.html:83
msgid "Close" msgid "Close"
msgstr "Chiudi" msgstr "Chiudi"
#: snikket_web/templates/invite_view.html:56 #: snikket_web/templates/invite_view.html:57
msgid "" msgid ""
"You can transfer this invite to your mobile device by scanning a code " "You can transfer this invite to your mobile device by scanning a code with "
"with your camera. You can use either a QR scanner app or the Snikket app " "your camera. You can use either a QR scanner app or the Snikket app itself."
"itself."
msgstr "" msgstr ""
"Puoi aprire questo invito sul tuo dispositivo mobile scansionando il codice " "Puoi aprire questo invito sul tuo dispositivo mobile scansionando il codice "
"con la fotocamera. Puoi usare un lettore di codici QR o l'applicazione " "con la fotocamera. Puoi usare un lettore di codici QR o l'applicazione "
"Snikket stessa." "Snikket stessa."
#: snikket_web/templates/invite_view.html:61 #: snikket_web/templates/invite_view.html:62
msgid "Using a QR code scanner" msgid "Using a QR code scanner"
msgstr "Usa un lettore di codici QR" msgstr "Usa un lettore di codici QR"
#: snikket_web/templates/invite_view.html:63 #: snikket_web/templates/invite_view.html:64
msgid "Using the Snikket app" msgid "Using the Snikket app"
msgstr "Usa l'applicazione Snikket" msgstr "Usa l'applicazione Snikket"
#: snikket_web/templates/invite_view.html:68 #: snikket_web/templates/invite_view.html:69
msgid "" msgid ""
"Use a <em>QR code</em> scanner on your mobile device to scan the code " "Use a <em>QR code</em> scanner on your mobile device to scan the code below:"
"below:"
msgstr "" msgstr ""
"Usa un lettore di <em>codici QR</em> sul tuo dispositivo mobile per " "Usa un lettore di <em>codici QR</em> sul tuo dispositivo mobile per "
"scansionare il seguente codice:" "scansionare il seguente codice:"
#: snikket_web/templates/invite_view.html:74 #: snikket_web/templates/invite_view.html:75
msgid "" msgid ""
"Install the Snikket app on your mobile device, open it, and tap the " "Install the Snikket app on your mobile device, open it, and tap the 'Scan' "
"'Scan' button at the top." "button at the top."
msgstr "" msgstr ""
"Installa l'applicazione Snikket sul tuo dispositivo mobile, aprila e poi " "Installa l'applicazione Snikket sul tuo dispositivo mobile, aprila e poi "
"premi il pulsante di scansione in alto." "premi il pulsante di scansione in alto."
@@ -1057,6 +1142,27 @@ msgstr ""
msgid "Login failed" msgid "Login failed"
msgstr "Accesso non riuscito" msgstr "Accesso non riuscito"
#: snikket_web/templates/login.html:23
msgid "Incorrect address"
msgstr "Indirizzo errato"
#: snikket_web/templates/login.html:24
#, python-format
msgid ""
"This Snikket service only hosts addresses ending in <em>@%(snikket_domain)s</"
"em>. Your password was not sent."
msgstr ""
"Questo servizio Snikket ospita solo indirizzi che terminano in "
"<em>@%(snikket_domain)s</em>. La tua password non è stata inviata."
#: snikket_web/templates/unauth.html:16
msgid "Operation successful"
msgstr "Operazione completata"
#: snikket_web/templates/unauth.html:18
msgid "Error"
msgstr "Errore"
#: snikket_web/templates/user_home.html:9 #: snikket_web/templates/user_home.html:9
msgid "Welcome!" msgid "Welcome!"
msgstr "Benvenuta/o!" msgstr "Benvenuta/o!"
@@ -1090,56 +1196,59 @@ msgstr "Gestisci utenti, inviti e cerchie del tuo servizio Snikket."
msgid "Admin panel" msgid "Admin panel"
msgstr "Pannello amministrativo" msgstr "Pannello amministrativo"
#: snikket_web/templates/user_logout.html:8 #: snikket_web/templates/user_logout.html:5
msgid "Sign out of the Snikket Web Portal" msgid "Sign out of the Snikket Web Portal"
msgstr "Esci dal Portale Web Snikket" msgstr "Esci dal Portale Web Snikket"
#: snikket_web/templates/user_logout.html:9 #: snikket_web/templates/user_logout.html:6
msgid "" msgid ""
"Click below to log yourself out of the web portal. This does not affect " "Click below to log yourself out of the web portal. This does not affect any "
"any other connected devices." "other connected devices."
msgstr "" msgstr ""
"Premi il pulsante sottostante per uscire dal portale web. Non ha effetto " "Premi il pulsante sottostante per uscire dal portale web. Non ha effetto "
"sugli altri dispositivi collegati." "sugli altri dispositivi collegati."
#: snikket_web/templates/user_passwd.html:8 #: snikket_web/templates/user_passwd.html:5
msgid "Change your password" msgid "Change your password"
msgstr "Modifica la tua password" msgstr "Modifica la tua password"
#: snikket_web/templates/user_passwd.html:9 #: snikket_web/templates/user_passwd.html:6
msgid "" msgid ""
"To change your password, you need to provide the current password as well" "To change your password, you need to provide the current password as well as "
" as the new one. To reduce the chance of typos, we ask for your new " "the new one. To reduce the chance of typos, we ask for your new password "
"password twice." "twice."
msgstr "" msgstr ""
"Per cambiare la password devi inserire la password attuale e quella nuova. " "Per cambiare la password devi inserire la password attuale e quella nuova. "
"Per diminuire il rischio di errori ti chiediamo di inserire la nuova " "Per diminuire il rischio di errori ti chiediamo di inserire la nuova "
"password due volte." "password due volte."
#: snikket_web/templates/user_passwd.html:27 #: snikket_web/templates/user_passwd.html:24
msgid "" msgid ""
"After changing your password, you will have to enter the new password on " "After changing your password, you will have to enter the new password on all "
"all of your devices." "of your devices."
msgstr "" msgstr ""
"Dopo aver cambiato la password dovrai reinserirla in tutti i tuoi " "Dopo aver cambiato la password dovrai reinserirla in tutti i tuoi "
"dispositivi." "dispositivi."
#: snikket_web/templates/user_profile.html:7 #: snikket_web/templates/user_profile.html:4
msgid "Update your profile" msgid "Update your profile"
msgstr "Modifica il tuo profilo" msgstr "Modifica il tuo profilo"
#: snikket_web/templates/user_profile.html:9 #: snikket_web/templates/user_profile.html:6
msgid "Profile" msgid "Profile"
msgstr "Profilo" msgstr "Profilo"
#: snikket_web/templates/user_profile.html:22 #: snikket_web/templates/user_profile.html:19
msgid "Visibility" msgid "Visibility"
msgstr "Visibilità" msgstr "Visibilità"
#: snikket_web/templates/user_profile.html:23 #: snikket_web/templates/user_profile.html:20
msgid "" msgid ""
"This section allows you to control who can see your profile information, " "This section allows you to control who can see your profile information, "
"like avatar and nickname." "like avatar and nickname."
msgstr "" msgstr ""
"Questa sezione ti permette di controllare chi può visualizzare i dettagli " "Questa sezione ti permette di controllare chi può visualizzare i dettagli "
"del tuo profilo, come ad esempio l'avatar o il soprannome." "del tuo profilo, come ad esempio l'avatar o il soprannome."
#~ msgid "Not on mobile?"
#~ msgstr "Nessun dispositivo mobile?"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PROJECT VERSION\n" "Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2021-01-30 12:45+0100\n" "POT-Creation-Date: 2021-02-23 07:55+0100\n"
"PO-Revision-Date: 2021-01-28 17:55+0000\n" "PO-Revision-Date: 2021-01-28 17:55+0000\n"
"Last-Translator: pep <pep@bouah.net>\n" "Last-Translator: pep <pep@bouah.net>\n"
"Language-Team: Japanese <https://i18n.sotecware.net/projects/snikket/web-" "Language-Team: Japanese <https://i18n.sotecware.net/projects/snikket/web-"
@@ -24,194 +24,286 @@ msgstr ""
msgid "Delete user permanently" msgid "Delete user permanently"
msgstr "ユーザーを削除する" msgstr "ユーザーを削除する"
#: snikket_web/admin.py:129 #: snikket_web/admin.py:73
msgid "User deleted"
msgstr ""
#: snikket_web/admin.py:116
#, fuzzy
#| msgid "Password reset link for %(user_name)s"
msgid "Password reset link created"
msgstr "%(user_name)s のパスワード再設定リンク"
#: snikket_web/admin.py:122
#, fuzzy
#| msgid "Password reset link for %(user_name)s"
msgid "Password reset link deleted"
msgstr "%(user_name)s のパスワード再設定リンク"
#: snikket_web/admin.py:141
msgid "Invite to circle" msgid "Invite to circle"
msgstr "サークルに紹介する" msgstr "サークルに紹介する"
#: snikket_web/admin.py:135 #: snikket_web/admin.py:147
msgid "At least one circle must be selected" msgid "At least one circle must be selected"
msgstr "サークルを選択してください" msgstr "サークルを選択してください"
#: snikket_web/admin.py:140 #: snikket_web/admin.py:152
msgid "Valid for" msgid "Valid for"
msgstr "有効期限" msgstr "有効期限"
#: snikket_web/admin.py:142 #: snikket_web/admin.py:154
msgid "One hour" msgid "One hour"
msgstr "一時間" msgstr "一時間"
#: snikket_web/admin.py:143 #: snikket_web/admin.py:155
msgid "Twelve hours" msgid "Twelve hours"
msgstr "12時間" msgstr "12時間"
#: snikket_web/admin.py:144 #: snikket_web/admin.py:156
msgid "One day" msgid "One day"
msgstr "一日" msgstr "一日"
#: snikket_web/admin.py:145 #: snikket_web/admin.py:157
msgid "One week" msgid "One week"
msgstr "一週間" msgstr "一週間"
#: snikket_web/admin.py:146 #: snikket_web/admin.py:158
msgid "Four weeks" msgid "Four weeks"
msgstr "4週間" msgstr "4週間"
#: snikket_web/admin.py:152 snikket_web/templates/admin_edit_invite.html:17 #: snikket_web/admin.py:164 snikket_web/templates/admin_edit_invite.html:17
msgid "Invitation type" msgid "Invitation type"
msgstr "紹介の種類" msgstr "紹介の種類"
#: snikket_web/admin.py:154 snikket_web/templates/library.j2:116 #: snikket_web/admin.py:166 snikket_web/templates/library.j2:116
msgid "Individual" msgid "Individual"
msgstr "一回" msgstr "一回"
#: snikket_web/admin.py:155 snikket_web/templates/library.j2:114 #: snikket_web/admin.py:167 snikket_web/templates/library.j2:114
msgid "Group" msgid "Group"
msgstr "複数回" msgstr "複数回"
#: snikket_web/admin.py:161 #: snikket_web/admin.py:173
msgid "New invitation link" msgid "New invitation link"
msgstr "新しい紹介状" msgstr "新しい紹介状"
#: snikket_web/admin.py:223 #: snikket_web/admin.py:235
msgid "Revoke" msgid "Revoke"
msgstr "取り消す" msgstr "取り消す"
#: snikket_web/admin.py:283 snikket_web/admin.py:327 #: snikket_web/admin.py:259
#, fuzzy
#| msgid "Invitation type"
msgid "Invitation created"
msgstr "紹介の種類"
#: snikket_web/admin.py:275
#, fuzzy
#| msgid "New invitation link"
msgid "No such invitation exists"
msgstr "新しい紹介状"
#: snikket_web/admin.py:290
#, fuzzy
#| msgid "Invitation type"
msgid "Invitation revoked"
msgstr "紹介の種類"
#: snikket_web/admin.py:307 snikket_web/admin.py:355
msgid "Name" msgid "Name"
msgstr "名" msgstr "名"
#: snikket_web/admin.py:288 snikket_web/templates/admin_circles.html:47 #: snikket_web/admin.py:312 snikket_web/templates/admin_circles.html:47
msgid "Create circle" msgid "Create circle"
msgstr "サークルを作成" msgstr "サークルを作成"
#: snikket_web/admin.py:332 #: snikket_web/admin.py:342
#, fuzzy
#| msgid "Circle name"
msgid "Circle created"
msgstr "サークル名"
#: snikket_web/admin.py:360
msgid "Select user" msgid "Select user"
msgstr "ユーザー選択" msgstr "ユーザー選択"
#: snikket_web/admin.py:337 #: snikket_web/admin.py:365
msgid "Update circle" msgid "Update circle"
msgstr "サークルを更新" msgstr "サークルを更新"
#: snikket_web/admin.py:341 #: snikket_web/admin.py:369
msgid "Delete circle permanently" msgid "Delete circle permanently"
msgstr "サークルを削除" msgstr "サークルを削除"
#: snikket_web/admin.py:347 #: snikket_web/admin.py:375
msgid "Add user" msgid "Add user"
msgstr "ユーザーを追加する" msgstr "ユーザーを追加する"
#: snikket_web/admin.py:391
#, fuzzy
#| msgid "No circles"
msgid "No such circle exists"
msgstr "なし"
#: snikket_web/admin.py:428
#, fuzzy
#| msgid "Circle name"
msgid "Circle data updated"
msgstr "サークル名"
#: snikket_web/admin.py:434
#, fuzzy
#| msgid "Circle members"
msgid "Circle deleted"
msgstr "サークル会員"
#: snikket_web/admin.py:445
#, fuzzy
#| msgid "Invite to circle"
msgid "User added to circle"
msgstr "サークルに紹介する"
#: snikket_web/admin.py:454
#, fuzzy
#| msgid "Remove user %(username)s from circle"
msgid "User removed from circle"
msgstr "%(username)s をサークルから外す"
#: snikket_web/infra.py:40 #: snikket_web/infra.py:40
msgid "Main" msgid "Main"
msgstr "第一サークル" msgstr "第一サークル"
#: snikket_web/invite.py:93 #: snikket_web/invite.py:104
msgid "Username" msgid "Username"
msgstr "ユーザー名" msgstr "ユーザー名"
#: snikket_web/invite.py:97 snikket_web/invite.py:164 snikket_web/main.py:41 #: snikket_web/invite.py:108 snikket_web/invite.py:175 snikket_web/main.py:42
msgid "Password" msgid "Password"
msgstr "パスワード" msgstr "パスワード"
#: snikket_web/invite.py:101 snikket_web/invite.py:168 #: snikket_web/invite.py:112 snikket_web/invite.py:179
msgid "Confirm password" msgid "Confirm password"
msgstr "確認用パスワード" msgstr "確認用パスワード"
#: snikket_web/invite.py:105 snikket_web/invite.py:172 #: snikket_web/invite.py:116 snikket_web/invite.py:183
msgid "The passwords must match" msgid "The passwords must match"
msgstr "確認用パスワードが一致しません" msgstr "確認用パスワードが一致しません"
#: snikket_web/invite.py:110 #: snikket_web/invite.py:121
msgid "Create account" msgid "Create account"
msgstr "アカウント作成" msgstr "アカウント作成"
#: snikket_web/invite.py:137 #: snikket_web/invite.py:148
msgid "That username is already taken" msgid "That username is already taken"
msgstr "このユーザー名は存在しています" msgstr "このユーザー名は存在しています"
#: snikket_web/invite.py:141 snikket_web/invite.py:205 #: snikket_web/invite.py:152 snikket_web/invite.py:216
msgid "Registration was declined for unknown reasons" msgid "Registration was declined for unknown reasons"
msgstr "理由不明の登録エラー" msgstr "理由不明の登録エラー"
#: snikket_web/invite.py:145 #: snikket_web/invite.py:156
msgid "The username is not valid" msgid "The username is not valid"
msgstr "ユーザー名が不正" msgstr "ユーザー名が不正"
#: snikket_web/invite.py:177 snikket_web/templates/user_home.html:32 #: snikket_web/invite.py:188 snikket_web/templates/user_home.html:32
#: snikket_web/templates/user_passwd.html:32 #: snikket_web/templates/user_passwd.html:29
msgid "Change password" msgid "Change password"
msgstr "パスワード変更" msgstr "パスワード変更"
#: snikket_web/main.py:36 #: snikket_web/main.py:37
msgid "Address" msgid "Address"
msgstr "アドレス" msgstr "アドレス"
#: snikket_web/main.py:46 #: snikket_web/main.py:47
msgid "Sign in" msgid "Sign in"
msgstr "サインイン" msgstr "サインイン"
#: snikket_web/main.py:72 #: snikket_web/main.py:56
msgid "Invalid username or password." msgid "Invalid username or password."
msgstr "ユーザー名またはパスワードが不正。" msgstr "ユーザー名またはパスワードが不正。"
#: snikket_web/user.py:21 #: snikket_web/main.py:84
msgid "Login successful!"
msgstr ""
#: snikket_web/user.py:28
msgid "Current password" msgid "Current password"
msgstr "現在のパスワード" msgstr "現在のパスワード"
#: snikket_web/user.py:26 #: snikket_web/user.py:33
msgid "New password" msgid "New password"
msgstr "新しいパスワード" msgstr "新しいパスワード"
#: snikket_web/user.py:31 #: snikket_web/user.py:38
msgid "Confirm new password" msgid "Confirm new password"
msgstr "新しいパスワードの確認" msgstr "新しいパスワードの確認"
#: snikket_web/user.py:35 #: snikket_web/user.py:42
msgid "The new passwords must match" msgid "The new passwords must match"
msgstr "新しいパスワードが不一致" msgstr "新しいパスワードが不一致"
#: snikket_web/user.py:42 #: snikket_web/user.py:49
msgid "Sign out" msgid "Sign out"
msgstr "サインアウト" msgstr "サインアウト"
#: snikket_web/user.py:47 #: snikket_web/user.py:54
msgid "Nobody" msgid "Nobody"
msgstr "" msgstr ""
#: snikket_web/user.py:48 #: snikket_web/user.py:55
msgid "Friends only" msgid "Friends only"
msgstr "コンタクト限定" msgstr "コンタクト限定"
#: snikket_web/user.py:49 #: snikket_web/user.py:56
msgid "Everyone" msgid "Everyone"
msgstr "全員" msgstr "全員"
#: snikket_web/templates/admin_delete_user.html:12 #: snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:11 snikket_web/user.py:55 #: snikket_web/templates/admin_users.html:11 snikket_web/user.py:62
msgid "Display name" msgid "Display name"
msgstr "表示名" msgstr "表示名"
#: snikket_web/user.py:59 #: snikket_web/user.py:66
msgid "Avatar" msgid "Avatar"
msgstr "アバター" msgstr "アバター"
#: snikket_web/user.py:63 #: snikket_web/user.py:70
msgid "Profile visibility" msgid "Profile visibility"
msgstr "" msgstr ""
#: snikket_web/user.py:68 #: snikket_web/user.py:75
msgid "Update profile" msgid "Update profile"
msgstr "プロファイル管理" msgstr "プロファイル管理"
#: snikket_web/user.py:93 #: snikket_web/user.py:100
msgid "Incorrect password" msgid "Incorrect password"
msgstr "パスワード不正" msgstr "パスワード不正"
#: snikket_web/templates/_footer.html:4 snikket_web/templates/login.html:36 #: snikket_web/user.py:104
#, fuzzy
#| msgid "Password reset"
msgid "Password changed"
msgstr "パスワード再設定"
#: snikket_web/user.py:146
#, fuzzy
#| msgid "Profile"
msgid "Profile updated"
msgstr "プロファイル"
#: snikket_web/templates/_footer.html:4
#, python-format #, python-format
msgid "A <a href=\"%(about_url)s\">Snikket</a> service" msgid "A <a href=\"%(about_url)s\">Snikket</a> service"
msgstr "" msgstr ""
#: snikket_web/templates/about.html:9 #: snikket_web/templates/_footer.html:6
msgid ""
"“Snikket” and the parrot logo are trademarks of Snikket Community Interest "
"Company."
msgstr ""
#: snikket_web/templates/about.html:4 snikket_web/templates/about.html:9
msgid "About Snikket" msgid "About Snikket"
msgstr "Snikketについて" msgstr "Snikketについて"
@@ -262,10 +354,22 @@ msgid ""
msgstr "" msgstr ""
#: snikket_web/templates/about.html:17 #: snikket_web/templates/about.html:17
msgid "Trademarks"
msgstr ""
#: snikket_web/templates/about.html:18
#, python-format
msgid ""
"“Snikket” and the parrot logo are trademarks of Snikket Community Interest "
"Company. For more information about the trademarks, visit the <a href="
"\"%(trademarks_url)s\">Snikket Trademarks information page</a>."
msgstr ""
#: snikket_web/templates/about.html:19
msgid "Software Versions" msgid "Software Versions"
msgstr "ソフトウェアバーション" msgstr "ソフトウェアバーション"
#: snikket_web/templates/about.html:27 #: snikket_web/templates/about.html:29
msgid "Back to the main page" msgid "Back to the main page"
msgstr "戻る" msgstr "戻る"
@@ -355,7 +459,7 @@ msgid "Debug information for %(user_name)s"
msgstr "" msgstr ""
#: snikket_web/templates/admin_debug_user.html:11 #: snikket_web/templates/admin_debug_user.html:11
#: snikket_web/templates/user_passwd.html:26 #: snikket_web/templates/user_passwd.html:23
msgid "Warning" msgid "Warning"
msgstr "" msgstr ""
@@ -407,9 +511,9 @@ msgstr ""
#: snikket_web/templates/admin_edit_circle.html:44 #: snikket_web/templates/admin_edit_circle.html:44
#: snikket_web/templates/admin_edit_invite.html:49 #: snikket_web/templates/admin_edit_invite.html:49
#: snikket_web/templates/admin_reset_user_password.html:25 #: snikket_web/templates/admin_reset_user_password.html:25
#: snikket_web/templates/user_logout.html:13 #: snikket_web/templates/user_logout.html:10
#: snikket_web/templates/user_passwd.html:30 #: snikket_web/templates/user_passwd.html:27
#: snikket_web/templates/user_profile.html:31 #: snikket_web/templates/user_profile.html:28
msgid "Back" msgid "Back"
msgstr "戻る" msgstr "戻る"
@@ -483,7 +587,6 @@ msgid "View invitation"
msgstr "紹介状表示" msgstr "紹介状表示"
#: snikket_web/templates/admin_edit_invite.html:13 #: snikket_web/templates/admin_edit_invite.html:13
#: snikket_web/templates/admin_invites.html:21
#: snikket_web/templates/admin_reset_user_password.html:15 #: snikket_web/templates/admin_reset_user_password.html:15
msgid "Valid until" msgid "Valid until"
msgstr "有効期限" msgstr "有効期限"
@@ -588,6 +691,10 @@ msgstr ""
msgid "Pending invitations" msgid "Pending invitations"
msgstr "" msgstr ""
#: snikket_web/templates/admin_invites.html:21
msgid "Expires"
msgstr ""
#: snikket_web/templates/admin_invites.html:22 #: snikket_web/templates/admin_invites.html:22
msgid "Type" msgid "Type"
msgstr "種類" msgstr "種類"
@@ -669,7 +776,7 @@ msgid "The web portal encountered an internal error."
msgstr "" msgstr ""
#: snikket_web/templates/invite_invalid.html:5 #: snikket_web/templates/invite_invalid.html:5
#: snikket_web/templates/invite_view.html:12 #: snikket_web/templates/invite_view.html:13
#, python-format #, python-format
msgid "Invite to %(site_name)s" msgid "Invite to %(site_name)s"
msgstr "%(site_name)s に紹介する" msgstr "%(site_name)s に紹介する"
@@ -677,7 +784,7 @@ msgstr "%(site_name)s に紹介する"
#: snikket_web/templates/invite_invalid.html:6 #: snikket_web/templates/invite_invalid.html:6
#: snikket_web/templates/invite_register.html:10 #: snikket_web/templates/invite_register.html:10
#: snikket_web/templates/invite_success.html:11 #: snikket_web/templates/invite_success.html:11
#: snikket_web/templates/invite_view.html:13 #: snikket_web/templates/invite_view.html:14
#, python-format #, python-format
msgid "Powered by <img src=\"%(logo_url)s\" alt=\"Snikket\">" msgid "Powered by <img src=\"%(logo_url)s\" alt=\"Snikket\">"
msgstr "Powered by <img alt=\"Snikket\" src=\"%(logo_url)s\">" msgstr "Powered by <img alt=\"Snikket\" src=\"%(logo_url)s\">"
@@ -720,18 +827,18 @@ msgid ""
msgstr "" msgstr ""
#: snikket_web/templates/invite_register.html:14 #: snikket_web/templates/invite_register.html:14
#: snikket_web/templates/invite_view.html:37 #: snikket_web/templates/invite_view.html:38
msgid "App already installed?" msgid "App already installed?"
msgstr "" msgstr ""
#: snikket_web/templates/invite_register.html:16 #: snikket_web/templates/invite_register.html:16
#: snikket_web/templates/invite_reset_view.html:21 #: snikket_web/templates/invite_reset_view.html:21
#: snikket_web/templates/invite_view.html:39 #: snikket_web/templates/invite_view.html:40
msgid "Open the app" msgid "Open the app"
msgstr "" msgstr ""
#: snikket_web/templates/invite_register.html:18 #: snikket_web/templates/invite_register.html:18
#: snikket_web/templates/invite_view.html:41 #: snikket_web/templates/invite_view.html:42
msgid "This button works only if you have the app installed already!" msgid "This button works only if you have the app installed already!"
msgstr "" msgstr ""
@@ -824,7 +931,7 @@ msgid ""
msgstr "" msgstr ""
#: snikket_web/templates/invite_reset_view.html:26 #: snikket_web/templates/invite_reset_view.html:26
#: snikket_web/templates/invite_view.html:75 #: snikket_web/templates/invite_view.html:76
msgid "" msgid ""
"Your camera will turn on. Point it at the square code below until it is " "Your camera will turn on. Point it at the square code below until it is "
"within the highlighted square on your screen, and wait until the app " "within the highlighted square on your screen, and wait until the app "
@@ -836,7 +943,7 @@ msgid "You will then be prompted to enter a new password for your account."
msgstr "" msgstr ""
#: snikket_web/templates/invite_reset_view.html:29 #: snikket_web/templates/invite_reset_view.html:29
#: snikket_web/templates/invite_view.html:43 #: snikket_web/templates/invite_view.html:44
msgid "Alternatives" msgid "Alternatives"
msgstr "" msgstr ""
@@ -881,54 +988,54 @@ msgstr ""
msgid "Invite to %(site_name)s | Snikket" msgid "Invite to %(site_name)s | Snikket"
msgstr "%(site_name)s に紹介 | Snikket" msgstr "%(site_name)s に紹介 | Snikket"
#: snikket_web/templates/invite_view.html:15 #: snikket_web/templates/invite_view.html:16
#, python-format #, python-format
msgid "" msgid ""
"You have been invited to chat with %(inviter_name)s using Snikket, a secure, " "You have been invited to chat with %(inviter_name)s using Snikket, a secure, "
"privacy-friendly chat app on %(site_name)s." "privacy-friendly chat app on %(site_name)s."
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:17 #: snikket_web/templates/invite_view.html:18
#, python-format #, python-format
msgid "" msgid ""
"You have been invited to chat on %(site_name)s using Snikket, a secure, " "You have been invited to chat on %(site_name)s using Snikket, a secure, "
"privacy-friendly chat app." "privacy-friendly chat app."
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:19 #: snikket_web/templates/invite_view.html:20
msgid "Get started" msgid "Get started"
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:21 #: snikket_web/templates/invite_view.html:22
msgid "Install the Snikket App on your Android or iOS device." msgid "Install the Snikket App on your Android or iOS device."
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:23 #: snikket_web/templates/invite_view.html:24
#, python-format #, python-format
msgid "" msgid ""
"Install the Snikket App on your Android device (<a href=\"%(ios_info_url)s\" " "Install the Snikket App on your Android device (<a href=\"%(ios_info_url)s\" "
"rel=\"noopener noreferrer\" target=\"_blank\">iOS coming soon!</a>)." "rel=\"noopener noreferrer\" target=\"_blank\">iOS coming soon!</a>)."
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:27 #: snikket_web/templates/invite_view.html:28
msgid "Get it on Google Play" msgid "Get it on Google Play"
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:29 #: snikket_web/templates/invite_view.html:30
msgid "Download on the App Store" msgid "Download on the App Store"
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:33 #: snikket_web/templates/invite_view.html:34
msgid "Not on mobile?" msgid "Send to mobile device"
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:36 #: snikket_web/templates/invite_view.html:37
msgid "" msgid ""
"After installation the app should automatically open and prompt you to " "After installation the app should automatically open and prompt you to "
"create an account. If not, simply click the button below." "create an account. If not, simply click the button below."
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:44 #: snikket_web/templates/invite_view.html:45
#, python-format #, python-format
msgid "" msgid ""
"You can connect to Snikket using any XMPP-compatible software. If the button " "You can connect to Snikket using any XMPP-compatible software. If the button "
@@ -936,35 +1043,35 @@ msgid ""
"\">register an account manually</a>." "\">register an account manually</a>."
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:50 #: snikket_web/templates/invite_view.html:51
msgid "Scan invite code" msgid "Scan invite code"
msgstr "紹介状をスキャン" msgstr "紹介状をスキャン"
#: snikket_web/templates/invite_view.html:53 #: snikket_web/templates/invite_view.html:54
#: snikket_web/templates/invite_view.html:82 #: snikket_web/templates/invite_view.html:83
msgid "Close" msgid "Close"
msgstr "閉める" msgstr "閉める"
#: snikket_web/templates/invite_view.html:56 #: snikket_web/templates/invite_view.html:57
msgid "" msgid ""
"You can transfer this invite to your mobile device by scanning a code with " "You can transfer this invite to your mobile device by scanning a code with "
"your camera. You can use either a QR scanner app or the Snikket app itself." "your camera. You can use either a QR scanner app or the Snikket app itself."
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:61 #: snikket_web/templates/invite_view.html:62
msgid "Using a QR code scanner" msgid "Using a QR code scanner"
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:63 #: snikket_web/templates/invite_view.html:64
msgid "Using the Snikket app" msgid "Using the Snikket app"
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:68 #: snikket_web/templates/invite_view.html:69
msgid "" msgid ""
"Use a <em>QR code</em> scanner on your mobile device to scan the code below:" "Use a <em>QR code</em> scanner on your mobile device to scan the code below:"
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:74 #: snikket_web/templates/invite_view.html:75
msgid "" msgid ""
"Install the Snikket app on your mobile device, open it, and tap the 'Scan' " "Install the Snikket app on your mobile device, open it, and tap the 'Scan' "
"button at the top." "button at the top."
@@ -1002,6 +1109,27 @@ msgstr ""
msgid "Login failed" msgid "Login failed"
msgstr "" msgstr ""
#: snikket_web/templates/login.html:23
#, fuzzy
#| msgid "Incorrect password"
msgid "Incorrect address"
msgstr "パスワード不正"
#: snikket_web/templates/login.html:24
#, python-format
msgid ""
"This Snikket service only hosts addresses ending in <em>@%(snikket_domain)s</"
"em>. Your password was not sent."
msgstr ""
#: snikket_web/templates/unauth.html:16
msgid "Operation successful"
msgstr ""
#: snikket_web/templates/unauth.html:18
msgid "Error"
msgstr ""
#: snikket_web/templates/user_home.html:9 #: snikket_web/templates/user_home.html:9
msgid "Welcome!" msgid "Welcome!"
msgstr "ようこそ!" msgstr "ようこそ!"
@@ -1045,48 +1173,48 @@ msgstr ""
msgid "Admin panel" msgid "Admin panel"
msgstr "管理" msgstr "管理"
#: snikket_web/templates/user_logout.html:8 #: snikket_web/templates/user_logout.html:5
msgid "Sign out of the Snikket Web Portal" msgid "Sign out of the Snikket Web Portal"
msgstr "Snikket ホームページからログアウト" msgstr "Snikket ホームページからログアウト"
#: snikket_web/templates/user_logout.html:9 #: snikket_web/templates/user_logout.html:6
msgid "" msgid ""
"Click below to log yourself out of the web portal. This does not affect any " "Click below to log yourself out of the web portal. This does not affect any "
"other connected devices." "other connected devices."
msgstr "" msgstr ""
#: snikket_web/templates/user_passwd.html:8 #: snikket_web/templates/user_passwd.html:5
msgid "Change your password" msgid "Change your password"
msgstr "パスワード変更" msgstr "パスワード変更"
#: snikket_web/templates/user_passwd.html:9 #: snikket_web/templates/user_passwd.html:6
msgid "" msgid ""
"To change your password, you need to provide the current password as well as " "To change your password, you need to provide the current password as well as "
"the new one. To reduce the chance of typos, we ask for your new password " "the new one. To reduce the chance of typos, we ask for your new password "
"twice." "twice."
msgstr "" msgstr ""
#: snikket_web/templates/user_passwd.html:27 #: snikket_web/templates/user_passwd.html:24
msgid "" msgid ""
"After changing your password, you will have to enter the new password on all " "After changing your password, you will have to enter the new password on all "
"of your devices." "of your devices."
msgstr "" msgstr ""
#: snikket_web/templates/user_profile.html:7 #: snikket_web/templates/user_profile.html:4
#, fuzzy #, fuzzy
#| msgid "Update profile" #| msgid "Update profile"
msgid "Update your profile" msgid "Update your profile"
msgstr "プロファイル管理" msgstr "プロファイル管理"
#: snikket_web/templates/user_profile.html:9 #: snikket_web/templates/user_profile.html:6
msgid "Profile" msgid "Profile"
msgstr "プロファイル" msgstr "プロファイル"
#: snikket_web/templates/user_profile.html:22 #: snikket_web/templates/user_profile.html:19
msgid "Visibility" msgid "Visibility"
msgstr "" msgstr ""
#: snikket_web/templates/user_profile.html:23 #: snikket_web/templates/user_profile.html:20
msgid "" msgid ""
"This section allows you to control who can see your profile information, " "This section allows you to control who can see your profile information, "
"like avatar and nickname." "like avatar and nickname."

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PROJECT VERSION\n" "Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2021-01-30 12:45+0100\n" "POT-Creation-Date: 2021-03-20 16:27+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,124 +17,172 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.9.0\n" "Generated-By: Babel 2.9.0\n"
#: snikket_web/admin.py:60 #: snikket_web/admin.py:59
msgid "Delete user permanently" msgid "Delete user permanently"
msgstr "" msgstr ""
#: snikket_web/admin.py:129 #: snikket_web/admin.py:72
msgid "Invite to circle" msgid "User deleted"
msgstr "" msgstr ""
#: snikket_web/admin.py:135 #: snikket_web/admin.py:115
msgid "At least one circle must be selected" msgid "Password reset link created"
msgstr ""
#: snikket_web/admin.py:121
msgid "Password reset link deleted"
msgstr "" msgstr ""
#: snikket_web/admin.py:140 #: snikket_web/admin.py:140
msgid "Valid for" msgid "Invite to circle"
msgstr ""
#: snikket_web/admin.py:142
msgid "One hour"
msgstr ""
#: snikket_web/admin.py:143
msgid "Twelve hours"
msgstr ""
#: snikket_web/admin.py:144
msgid "One day"
msgstr ""
#: snikket_web/admin.py:145
msgid "One week"
msgstr "" msgstr ""
#: snikket_web/admin.py:146 #: snikket_web/admin.py:146
msgid "At least one circle must be selected"
msgstr ""
#: snikket_web/admin.py:151
msgid "Valid for"
msgstr ""
#: snikket_web/admin.py:153
msgid "One hour"
msgstr ""
#: snikket_web/admin.py:154
msgid "Twelve hours"
msgstr ""
#: snikket_web/admin.py:155
msgid "One day"
msgstr ""
#: snikket_web/admin.py:156
msgid "One week"
msgstr ""
#: snikket_web/admin.py:157
msgid "Four weeks" msgid "Four weeks"
msgstr "" msgstr ""
#: snikket_web/admin.py:152 snikket_web/templates/admin_edit_invite.html:17 #: snikket_web/admin.py:163 snikket_web/templates/admin_edit_invite.html:17
msgid "Invitation type" msgid "Invitation type"
msgstr "" msgstr ""
#: snikket_web/admin.py:154 snikket_web/templates/library.j2:116 #: snikket_web/admin.py:165 snikket_web/templates/library.j2:116
msgid "Individual" msgid "Individual"
msgstr "" msgstr ""
#: snikket_web/admin.py:155 snikket_web/templates/library.j2:114 #: snikket_web/admin.py:166 snikket_web/templates/library.j2:114
msgid "Group" msgid "Group"
msgstr "" msgstr ""
#: snikket_web/admin.py:161 #: snikket_web/admin.py:172
msgid "New invitation link" msgid "New invitation link"
msgstr "" msgstr ""
#: snikket_web/admin.py:223 #: snikket_web/admin.py:234
msgid "Revoke" msgid "Revoke"
msgstr "" msgstr ""
#: snikket_web/admin.py:283 snikket_web/admin.py:327 #: snikket_web/admin.py:258
msgid "Invitation created"
msgstr ""
#: snikket_web/admin.py:274
msgid "No such invitation exists"
msgstr ""
#: snikket_web/admin.py:289
msgid "Invitation revoked"
msgstr ""
#: snikket_web/admin.py:306 snikket_web/admin.py:354
msgid "Name" msgid "Name"
msgstr "" msgstr ""
#: snikket_web/admin.py:288 snikket_web/templates/admin_circles.html:47 #: snikket_web/admin.py:311 snikket_web/templates/admin_circles.html:47
msgid "Create circle" msgid "Create circle"
msgstr "" msgstr ""
#: snikket_web/admin.py:332 #: snikket_web/admin.py:341
msgid "Circle created"
msgstr ""
#: snikket_web/admin.py:359
msgid "Select user" msgid "Select user"
msgstr "" msgstr ""
#: snikket_web/admin.py:337 #: snikket_web/admin.py:364
msgid "Update circle" msgid "Update circle"
msgstr "" msgstr ""
#: snikket_web/admin.py:341 #: snikket_web/admin.py:368
msgid "Delete circle permanently" msgid "Delete circle permanently"
msgstr "" msgstr ""
#: snikket_web/admin.py:347 #: snikket_web/admin.py:374
msgid "Add user" msgid "Add user"
msgstr "" msgstr ""
#: snikket_web/infra.py:40 #: snikket_web/admin.py:390
msgid "No such circle exists"
msgstr ""
#: snikket_web/admin.py:427
msgid "Circle data updated"
msgstr ""
#: snikket_web/admin.py:433
msgid "Circle deleted"
msgstr ""
#: snikket_web/admin.py:444
msgid "User added to circle"
msgstr ""
#: snikket_web/admin.py:453
msgid "User removed from circle"
msgstr ""
#: snikket_web/infra.py:41
msgid "Main" msgid "Main"
msgstr "" msgstr ""
#: snikket_web/invite.py:93 #: snikket_web/invite.py:106
msgid "Username" msgid "Username"
msgstr "" msgstr ""
#: snikket_web/invite.py:97 snikket_web/invite.py:164 snikket_web/main.py:41 #: snikket_web/invite.py:110 snikket_web/invite.py:177 snikket_web/main.py:41
msgid "Password" msgid "Password"
msgstr "" msgstr ""
#: snikket_web/invite.py:101 snikket_web/invite.py:168 #: snikket_web/invite.py:114 snikket_web/invite.py:181
msgid "Confirm password" msgid "Confirm password"
msgstr "" msgstr ""
#: snikket_web/invite.py:105 snikket_web/invite.py:172 #: snikket_web/invite.py:118 snikket_web/invite.py:185
msgid "The passwords must match" msgid "The passwords must match"
msgstr "" msgstr ""
#: snikket_web/invite.py:110 #: snikket_web/invite.py:123
msgid "Create account" msgid "Create account"
msgstr "" msgstr ""
#: snikket_web/invite.py:137 #: snikket_web/invite.py:150
msgid "That username is already taken" msgid "That username is already taken."
msgstr "" msgstr ""
#: snikket_web/invite.py:141 snikket_web/invite.py:205 #: snikket_web/invite.py:154 snikket_web/invite.py:218
msgid "Registration was declined for unknown reasons" msgid "Registration was declined for unknown reasons."
msgstr "" msgstr ""
#: snikket_web/invite.py:145 #: snikket_web/invite.py:158
msgid "The username is not valid" msgid "The username is not valid."
msgstr "" msgstr ""
#: snikket_web/invite.py:177 snikket_web/templates/user_home.html:32 #: snikket_web/invite.py:190 snikket_web/templates/user_home.html:32
#: snikket_web/templates/user_passwd.html:32 #: snikket_web/templates/user_passwd.html:29
msgid "Change password" msgid "Change password"
msgstr "" msgstr ""
@@ -146,69 +194,97 @@ msgstr ""
msgid "Sign in" msgid "Sign in"
msgstr "" msgstr ""
#: snikket_web/main.py:72 #: snikket_web/main.py:55
msgid "Invalid username or password." msgid "Invalid username or password."
msgstr "" msgstr ""
#: snikket_web/user.py:21 #: snikket_web/main.py:83
msgid "Login successful!"
msgstr ""
#: snikket_web/user.py:27
msgid "Current password" msgid "Current password"
msgstr "" msgstr ""
#: snikket_web/user.py:26 #: snikket_web/user.py:32
msgid "New password" msgid "New password"
msgstr "" msgstr ""
#: snikket_web/user.py:31 #: snikket_web/user.py:37
msgid "Confirm new password" msgid "Confirm new password"
msgstr "" msgstr ""
#: snikket_web/user.py:35 #: snikket_web/user.py:41
msgid "The new passwords must match" msgid "The new passwords must match"
msgstr "" msgstr ""
#: snikket_web/user.py:42 #: snikket_web/user.py:48
msgid "Sign out" msgid "Sign out"
msgstr "" msgstr ""
#: snikket_web/user.py:47 #: snikket_web/user.py:53
msgid "Nobody" msgid "Nobody"
msgstr "" msgstr ""
#: snikket_web/user.py:48 #: snikket_web/user.py:54
msgid "Friends only" msgid "Friends only"
msgstr "" msgstr ""
#: snikket_web/user.py:49 #: snikket_web/user.py:55
msgid "Everyone" msgid "Everyone"
msgstr "" msgstr ""
#: snikket_web/templates/admin_delete_user.html:12 #: snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:11 snikket_web/user.py:55 #: snikket_web/templates/admin_users.html:11 snikket_web/user.py:61
msgid "Display name" msgid "Display name"
msgstr "" msgstr ""
#: snikket_web/user.py:59 #: snikket_web/user.py:65
msgid "Avatar" msgid "Avatar"
msgstr "" msgstr ""
#: snikket_web/user.py:63 #: snikket_web/user.py:69
msgid "Profile visibility" msgid "Profile visibility"
msgstr "" msgstr ""
#: snikket_web/user.py:68 #: snikket_web/user.py:74
msgid "Update profile" msgid "Update profile"
msgstr "" msgstr ""
#: snikket_web/user.py:93 #: snikket_web/user.py:99
msgid "Incorrect password" msgid "Incorrect password."
msgstr "" msgstr ""
#: snikket_web/templates/_footer.html:4 snikket_web/templates/login.html:36 #: snikket_web/user.py:103
msgid "Password changed"
msgstr ""
#: snikket_web/user.py:111
msgid ""
"The chosen avatar is too big. To be able to upload larger avatars, please"
" use the app."
msgstr ""
#: snikket_web/user.py:159
msgid "Profile updated"
msgstr ""
#: snikket_web/templates/unauth.html:18 snikket_web/user.py:167
msgid "Error"
msgstr ""
#: snikket_web/templates/_footer.html:4
#, python-format #, python-format
msgid "A <a href=\"%(about_url)s\">Snikket</a> service" msgid "A <a href=\"%(about_url)s\">Snikket</a> service"
msgstr "" msgstr ""
#: snikket_web/templates/about.html:9 #: snikket_web/templates/_footer.html:6
msgid ""
"“Snikket” and the parrot logo are trademarks of Snikket Community "
"Interest Company."
msgstr ""
#: snikket_web/templates/about.html:4 snikket_web/templates/about.html:9
msgid "About Snikket" msgid "About Snikket"
msgstr "" msgstr ""
@@ -257,10 +333,22 @@ msgid ""
msgstr "" msgstr ""
#: snikket_web/templates/about.html:17 #: snikket_web/templates/about.html:17
msgid "Trademarks"
msgstr ""
#: snikket_web/templates/about.html:18
#, python-format
msgid ""
"“Snikket” and the parrot logo are trademarks of Snikket Community "
"Interest Company. For more information about the trademarks, visit the <a"
" href=\"%(trademarks_url)s\">Snikket Trademarks information page</a>."
msgstr ""
#: snikket_web/templates/about.html:19
msgid "Software Versions" msgid "Software Versions"
msgstr "" msgstr ""
#: snikket_web/templates/about.html:27 #: snikket_web/templates/about.html:29
msgid "Back to the main page" msgid "Back to the main page"
msgstr "" msgstr ""
@@ -350,7 +438,7 @@ msgid "Debug information for %(user_name)s"
msgstr "" msgstr ""
#: snikket_web/templates/admin_debug_user.html:11 #: snikket_web/templates/admin_debug_user.html:11
#: snikket_web/templates/user_passwd.html:26 #: snikket_web/templates/user_passwd.html:23
msgid "Warning" msgid "Warning"
msgstr "" msgstr ""
@@ -400,9 +488,9 @@ msgstr ""
#: snikket_web/templates/admin_edit_circle.html:44 #: snikket_web/templates/admin_edit_circle.html:44
#: snikket_web/templates/admin_edit_invite.html:49 #: snikket_web/templates/admin_edit_invite.html:49
#: snikket_web/templates/admin_reset_user_password.html:25 #: snikket_web/templates/admin_reset_user_password.html:25
#: snikket_web/templates/user_logout.html:13 #: snikket_web/templates/user_logout.html:10
#: snikket_web/templates/user_passwd.html:30 #: snikket_web/templates/user_passwd.html:27
#: snikket_web/templates/user_profile.html:31 #: snikket_web/templates/user_profile.html:32
msgid "Back" msgid "Back"
msgstr "" msgstr ""
@@ -476,7 +564,6 @@ msgid "View invitation"
msgstr "" msgstr ""
#: snikket_web/templates/admin_edit_invite.html:13 #: snikket_web/templates/admin_edit_invite.html:13
#: snikket_web/templates/admin_invites.html:21
#: snikket_web/templates/admin_reset_user_password.html:15 #: snikket_web/templates/admin_reset_user_password.html:15
msgid "Valid until" msgid "Valid until"
msgstr "" msgstr ""
@@ -568,6 +655,10 @@ msgstr ""
msgid "Pending invitations" msgid "Pending invitations"
msgstr "" msgstr ""
#: snikket_web/templates/admin_invites.html:21
msgid "Expires"
msgstr ""
#: snikket_web/templates/admin_invites.html:22 #: snikket_web/templates/admin_invites.html:22
msgid "Type" msgid "Type"
msgstr "" msgstr ""
@@ -649,7 +740,7 @@ msgid "The web portal encountered an internal error."
msgstr "" msgstr ""
#: snikket_web/templates/invite_invalid.html:5 #: snikket_web/templates/invite_invalid.html:5
#: snikket_web/templates/invite_view.html:12 #: snikket_web/templates/invite_view.html:13
#, python-format #, python-format
msgid "Invite to %(site_name)s" msgid "Invite to %(site_name)s"
msgstr "" msgstr ""
@@ -657,7 +748,7 @@ msgstr ""
#: snikket_web/templates/invite_invalid.html:6 #: snikket_web/templates/invite_invalid.html:6
#: snikket_web/templates/invite_register.html:10 #: snikket_web/templates/invite_register.html:10
#: snikket_web/templates/invite_success.html:11 #: snikket_web/templates/invite_success.html:11
#: snikket_web/templates/invite_view.html:13 #: snikket_web/templates/invite_view.html:14
#, python-format #, python-format
msgid "Powered by <img src=\"%(logo_url)s\" alt=\"Snikket\">" msgid "Powered by <img src=\"%(logo_url)s\" alt=\"Snikket\">"
msgstr "" msgstr ""
@@ -698,18 +789,20 @@ msgid ""
msgstr "" msgstr ""
#: snikket_web/templates/invite_register.html:14 #: snikket_web/templates/invite_register.html:14
#: snikket_web/templates/invite_view.html:37 #: snikket_web/templates/invite_view.html:39
msgid "App already installed?" msgid "App already installed?"
msgstr "" msgstr ""
#: snikket_web/templates/invite_register.html:16 #: snikket_web/templates/invite_register.html:16
#: snikket_web/templates/invite_reset_view.html:21 #: snikket_web/templates/invite_reset_view.html:21
#: snikket_web/templates/invite_view.html:39 #: snikket_web/templates/invite_view.html:41
#: snikket_web/templates/invite_view.html:106
#: snikket_web/templates/invite_view.html:134
msgid "Open the app" msgid "Open the app"
msgstr "" msgstr ""
#: snikket_web/templates/invite_register.html:18 #: snikket_web/templates/invite_register.html:18
#: snikket_web/templates/invite_view.html:41 #: snikket_web/templates/invite_view.html:43
msgid "This button works only if you have the app installed already!" msgid "This button works only if you have the app installed already!"
msgstr "" msgstr ""
@@ -795,7 +888,7 @@ msgid ""
msgstr "" msgstr ""
#: snikket_web/templates/invite_reset_view.html:26 #: snikket_web/templates/invite_reset_view.html:26
#: snikket_web/templates/invite_view.html:75 #: snikket_web/templates/invite_view.html:77
msgid "" msgid ""
"Your camera will turn on. Point it at the square code below until it is " "Your camera will turn on. Point it at the square code below until it is "
"within the highlighted square on your screen, and wait until the app " "within the highlighted square on your screen, and wait until the app "
@@ -807,7 +900,7 @@ msgid "You will then be prompted to enter a new password for your account."
msgstr "" msgstr ""
#: snikket_web/templates/invite_reset_view.html:29 #: snikket_web/templates/invite_reset_view.html:29
#: snikket_web/templates/invite_view.html:43 #: snikket_web/templates/invite_view.html:45
msgid "Alternatives" msgid "Alternatives"
msgstr "" msgstr ""
@@ -848,29 +941,29 @@ msgstr ""
msgid "Invite to %(site_name)s | Snikket" msgid "Invite to %(site_name)s | Snikket"
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:15 #: snikket_web/templates/invite_view.html:16
#, python-format #, python-format
msgid "" msgid ""
"You have been invited to chat with %(inviter_name)s using Snikket, a " "You have been invited to chat with %(inviter_name)s using Snikket, a "
"secure, privacy-friendly chat app on %(site_name)s." "secure, privacy-friendly chat app on %(site_name)s."
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:17 #: snikket_web/templates/invite_view.html:18
#, python-format #, python-format
msgid "" msgid ""
"You have been invited to chat on %(site_name)s using Snikket, a secure, " "You have been invited to chat on %(site_name)s using Snikket, a secure, "
"privacy-friendly chat app." "privacy-friendly chat app."
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:19 #: snikket_web/templates/invite_view.html:20
msgid "Get started" msgid "Get started"
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:21 #: snikket_web/templates/invite_view.html:22
msgid "Install the Snikket App on your Android or iOS device." msgid "Install the Snikket App on your Android or iOS device."
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:23 #: snikket_web/templates/invite_view.html:24
#, python-format #, python-format
msgid "" msgid ""
"Install the Snikket App on your Android device (<a " "Install the Snikket App on your Android device (<a "
@@ -878,25 +971,30 @@ msgid ""
"target=\"_blank\">iOS coming soon!</a>)." "target=\"_blank\">iOS coming soon!</a>)."
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:27 #: snikket_web/templates/invite_view.html:28
msgid "Get it on Google Play" msgid "Get it on Google Play"
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:29 #: snikket_web/templates/invite_view.html:30
#: snikket_web/templates/invite_view.html:102
msgid "Download on the App Store" msgid "Download on the App Store"
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:33 #: snikket_web/templates/invite_view.html:32
msgid "Not on mobile?" msgid "Get it on F-Droid"
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:36 #: snikket_web/templates/invite_view.html:35
msgid "Send to mobile device"
msgstr ""
#: snikket_web/templates/invite_view.html:38
msgid "" msgid ""
"After installation the app should automatically open and prompt you to " "After installation the app should automatically open and prompt you to "
"create an account. If not, simply click the button below." "create an account. If not, simply click the button below."
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:44 #: snikket_web/templates/invite_view.html:46
#, python-format #, python-format
msgid "" msgid ""
"You can connect to Snikket using any XMPP-compatible software. If the " "You can connect to Snikket using any XMPP-compatible software. If the "
@@ -904,42 +1002,82 @@ msgid ""
"href=\"%(register_url)s\">register an account manually</a>." "href=\"%(register_url)s\">register an account manually</a>."
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:50 #: snikket_web/templates/invite_view.html:52
msgid "Scan invite code" msgid "Scan invite code"
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:53 #: snikket_web/templates/invite_view.html:55
#: snikket_web/templates/invite_view.html:82 #: snikket_web/templates/invite_view.html:84
#: snikket_web/templates/invite_view.html:96
#: snikket_web/templates/invite_view.html:112
#: snikket_web/templates/invite_view.html:124
#: snikket_web/templates/invite_view.html:140
msgid "Close" msgid "Close"
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:56 #: snikket_web/templates/invite_view.html:58
msgid "" msgid ""
"You can transfer this invite to your mobile device by scanning a code " "You can transfer this invite to your mobile device by scanning a code "
"with your camera. You can use either a QR scanner app or the Snikket app " "with your camera. You can use either a QR scanner app or the Snikket app "
"itself." "itself."
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:61 #: snikket_web/templates/invite_view.html:63
msgid "Using a QR code scanner" msgid "Using a QR code scanner"
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:63 #: snikket_web/templates/invite_view.html:65
msgid "Using the Snikket app" msgid "Using the Snikket app"
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:68 #: snikket_web/templates/invite_view.html:70
msgid "" msgid ""
"Use a <em>QR code</em> scanner on your mobile device to scan the code " "Use a <em>QR code</em> scanner on your mobile device to scan the code "
"below:" "below:"
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:74 #: snikket_web/templates/invite_view.html:76
msgid "" msgid ""
"Install the Snikket app on your mobile device, open it, and tap the " "Install the Snikket app on your mobile device, open it, and tap the "
"'Scan' button at the top." "'Scan' button at the top."
msgstr "" msgstr ""
#: snikket_web/templates/invite_view.html:93
msgid "Install on iOS"
msgstr ""
#: snikket_web/templates/invite_view.html:99
msgid ""
"After downloading Snikket from the app store, you have to return to this "
"invite link and tap on \"Open the app\" to proceed."
msgstr ""
#: snikket_web/templates/invite_view.html:101
msgid "First download Snikket from the app store using the button below:"
msgstr ""
#: snikket_web/templates/invite_view.html:103
#: snikket_web/templates/invite_view.html:131
msgid ""
"After the installation is complete, you can return to this page and tap "
"the \"Open the app\" button to continue with the setup:"
msgstr ""
#: snikket_web/templates/invite_view.html:121
#: snikket_web/templates/invite_view.html:130
msgid "Install via F-Droid"
msgstr ""
#: snikket_web/templates/invite_view.html:127
msgid ""
"After installing Snikket via F-Droid, you have to return to this invite "
"link and tap on \"Open the app\" to proceed."
msgstr ""
#: snikket_web/templates/invite_view.html:129
msgid "First install Snikket from F-Droid using the button below:"
msgstr ""
#: snikket_web/templates/library.j2:18 #: snikket_web/templates/library.j2:18
msgid "Copy link" msgid "Copy link"
msgstr "" msgstr ""
@@ -968,8 +1106,19 @@ msgstr ""
msgid "Enter your Snikket address and password to manage your account." msgid "Enter your Snikket address and password to manage your account."
msgstr "" msgstr ""
#: snikket_web/templates/login.html:18 #: snikket_web/templates/login.html:19
msgid "Login failed" msgid "Incorrect address"
msgstr ""
#: snikket_web/templates/login.html:20
#, python-format
msgid ""
"This Snikket service only hosts addresses ending in "
"<em>@%(snikket_domain)s</em>. Your password was not sent."
msgstr ""
#: snikket_web/templates/unauth.html:16
msgid "Operation successful"
msgstr "" msgstr ""
#: snikket_web/templates/user_home.html:9 #: snikket_web/templates/user_home.html:9
@@ -1005,46 +1154,46 @@ msgstr ""
msgid "Admin panel" msgid "Admin panel"
msgstr "" msgstr ""
#: snikket_web/templates/user_logout.html:8 #: snikket_web/templates/user_logout.html:5
msgid "Sign out of the Snikket Web Portal" msgid "Sign out of the Snikket Web Portal"
msgstr "" msgstr ""
#: snikket_web/templates/user_logout.html:9 #: snikket_web/templates/user_logout.html:6
msgid "" msgid ""
"Click below to log yourself out of the web portal. This does not affect " "Click below to log yourself out of the web portal. This does not affect "
"any other connected devices." "any other connected devices."
msgstr "" msgstr ""
#: snikket_web/templates/user_passwd.html:8 #: snikket_web/templates/user_passwd.html:5
msgid "Change your password" msgid "Change your password"
msgstr "" msgstr ""
#: snikket_web/templates/user_passwd.html:9 #: snikket_web/templates/user_passwd.html:6
msgid "" msgid ""
"To change your password, you need to provide the current password as well" "To change your password, you need to provide the current password as well"
" as the new one. To reduce the chance of typos, we ask for your new " " as the new one. To reduce the chance of typos, we ask for your new "
"password twice." "password twice."
msgstr "" msgstr ""
#: snikket_web/templates/user_passwd.html:27 #: snikket_web/templates/user_passwd.html:24
msgid "" msgid ""
"After changing your password, you will have to enter the new password on " "After changing your password, you will have to enter the new password on "
"all of your devices." "all of your devices."
msgstr "" msgstr ""
#: snikket_web/templates/user_profile.html:7 #: snikket_web/templates/user_profile.html:4
msgid "Update your profile" msgid "Update your profile"
msgstr "" msgstr ""
#: snikket_web/templates/user_profile.html:9 #: snikket_web/templates/user_profile.html:6
msgid "Profile" msgid "Profile"
msgstr "" msgstr ""
#: snikket_web/templates/user_profile.html:22 #: snikket_web/templates/user_profile.html:23
msgid "Visibility" msgid "Visibility"
msgstr "" msgstr ""
#: snikket_web/templates/user_profile.html:23 #: snikket_web/templates/user_profile.html:24
msgid "" msgid ""
"This section allows you to control who can see your profile information, " "This section allows you to control who can see your profile information, "
"like avatar and nickname." "like avatar and nickname."

View File

@@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PROJECT VERSION\n" "Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2021-01-30 12:45+0100\n" "POT-Creation-Date: 2021-02-23 07:55+0100\n"
"PO-Revision-Date: 2021-02-18 20:01+0000\n" "PO-Revision-Date: 2021-02-25 16:02+0000\n"
"Last-Translator: misiek <migelazur@mailbox.org>\n" "Last-Translator: misiek <migelazur@mailbox.org>\n"
"Language-Team: Polish <https://i18n.sotecware.net/projects/snikket/" "Language-Team: Polish <https://i18n.sotecware.net/projects/snikket/"
"web-portal/pl/>\n" "web-portal/pl/>\n"
@@ -25,194 +25,262 @@ msgstr ""
msgid "Delete user permanently" msgid "Delete user permanently"
msgstr "Usuń użytkownika bezpowrotnie" msgstr "Usuń użytkownika bezpowrotnie"
#: snikket_web/admin.py:129 #: snikket_web/admin.py:73
msgid "User deleted"
msgstr "Użytkownik został usunięty"
#: snikket_web/admin.py:116
msgid "Password reset link created"
msgstr "Utworzono link resetowania hasła"
#: snikket_web/admin.py:122
msgid "Password reset link deleted"
msgstr "Usunięto link resetowania hasła"
#: snikket_web/admin.py:141
msgid "Invite to circle" msgid "Invite to circle"
msgstr "Zaproś do kręgu" msgstr "Zaproś do kręgu"
#: snikket_web/admin.py:135 #: snikket_web/admin.py:147
msgid "At least one circle must be selected" msgid "At least one circle must be selected"
msgstr "Należy wybrać przynajmniej jeden krąg" msgstr "Należy wybrać przynajmniej jeden krąg"
#: snikket_web/admin.py:140 #: snikket_web/admin.py:152
msgid "Valid for" msgid "Valid for"
msgstr "Ważne przez" msgstr "Ważne przez"
#: snikket_web/admin.py:142 #: snikket_web/admin.py:154
msgid "One hour" msgid "One hour"
msgstr "Godzinę" msgstr "Godzinę"
#: snikket_web/admin.py:143 #: snikket_web/admin.py:155
msgid "Twelve hours" msgid "Twelve hours"
msgstr "Dwanaście godzin" msgstr "Dwanaście godzin"
#: snikket_web/admin.py:144 #: snikket_web/admin.py:156
msgid "One day" msgid "One day"
msgstr "Dzień" msgstr "Dzień"
#: snikket_web/admin.py:145 #: snikket_web/admin.py:157
msgid "One week" msgid "One week"
msgstr "Tydzień" msgstr "Tydzień"
#: snikket_web/admin.py:146 #: snikket_web/admin.py:158
msgid "Four weeks" msgid "Four weeks"
msgstr "Cztery tygodnie" msgstr "Cztery tygodnie"
#: snikket_web/admin.py:152 snikket_web/templates/admin_edit_invite.html:17 #: snikket_web/admin.py:164 snikket_web/templates/admin_edit_invite.html:17
msgid "Invitation type" msgid "Invitation type"
msgstr "Typ zaproszenia" msgstr "Typ zaproszenia"
#: snikket_web/admin.py:154 snikket_web/templates/library.j2:116 #: snikket_web/admin.py:166 snikket_web/templates/library.j2:116
msgid "Individual" msgid "Individual"
msgstr "Indywidualne" msgstr "Indywidualne"
#: snikket_web/admin.py:155 snikket_web/templates/library.j2:114 #: snikket_web/admin.py:167 snikket_web/templates/library.j2:114
msgid "Group" msgid "Group"
msgstr "Grupowe" msgstr "Grupowe"
#: snikket_web/admin.py:161 #: snikket_web/admin.py:173
msgid "New invitation link" msgid "New invitation link"
msgstr "Nowy link z zaproszeniem" msgstr "Nowy link z zaproszeniem"
#: snikket_web/admin.py:223 #: snikket_web/admin.py:235
msgid "Revoke" msgid "Revoke"
msgstr "Unieważnij" msgstr "Unieważnij"
#: snikket_web/admin.py:283 snikket_web/admin.py:327 #: snikket_web/admin.py:259
msgid "Invitation created"
msgstr "Utworzono zaproszenie"
#: snikket_web/admin.py:275
msgid "No such invitation exists"
msgstr "Takie zaproszenie nie istnieje"
#: snikket_web/admin.py:290
msgid "Invitation revoked"
msgstr "Unieważniono zaproszenie"
#: snikket_web/admin.py:307 snikket_web/admin.py:355
msgid "Name" msgid "Name"
msgstr "Nazwa" msgstr "Nazwa"
#: snikket_web/admin.py:288 snikket_web/templates/admin_circles.html:47 #: snikket_web/admin.py:312 snikket_web/templates/admin_circles.html:47
msgid "Create circle" msgid "Create circle"
msgstr "Utwórz krąg" msgstr "Utwórz krąg"
#: snikket_web/admin.py:332 #: snikket_web/admin.py:342
msgid "Circle created"
msgstr "Utworzono krąg"
#: snikket_web/admin.py:360
msgid "Select user" msgid "Select user"
msgstr "Wybierz użytkownika" msgstr "Wybierz użytkownika"
#: snikket_web/admin.py:337 #: snikket_web/admin.py:365
msgid "Update circle" msgid "Update circle"
msgstr "Zaktualizuj ustawienia kręgu" msgstr "Zaktualizuj ustawienia kręgu"
#: snikket_web/admin.py:341 #: snikket_web/admin.py:369
msgid "Delete circle permanently" msgid "Delete circle permanently"
msgstr "Usuń krąg bezpowrotnie" msgstr "Usuń krąg bezpowrotnie"
#: snikket_web/admin.py:347 #: snikket_web/admin.py:375
msgid "Add user" msgid "Add user"
msgstr "Dodaj użytkownika" msgstr "Dodaj użytkownika"
#: snikket_web/admin.py:391
msgid "No such circle exists"
msgstr "Taki krąg nie istnieje"
#: snikket_web/admin.py:428
msgid "Circle data updated"
msgstr "Zaktualizowano dane kręgu"
#: snikket_web/admin.py:434
msgid "Circle deleted"
msgstr "Krąg został usunięty"
#: snikket_web/admin.py:445
msgid "User added to circle"
msgstr "Dodano użytkownika do kręgu"
#: snikket_web/admin.py:454
msgid "User removed from circle"
msgstr "Usunięto użytkownika z kręgu"
#: snikket_web/infra.py:40 #: snikket_web/infra.py:40
msgid "Main" msgid "Main"
msgstr "Główny" msgstr "Główny"
#: snikket_web/invite.py:93 #: snikket_web/invite.py:104
msgid "Username" msgid "Username"
msgstr "Nazwa użytkownika" msgstr "Nazwa użytkownika"
#: snikket_web/invite.py:97 snikket_web/invite.py:164 snikket_web/main.py:41 #: snikket_web/invite.py:108 snikket_web/invite.py:175 snikket_web/main.py:42
msgid "Password" msgid "Password"
msgstr "Hasło" msgstr "Hasło"
#: snikket_web/invite.py:101 snikket_web/invite.py:168 #: snikket_web/invite.py:112 snikket_web/invite.py:179
msgid "Confirm password" msgid "Confirm password"
msgstr "Potwierdź hasło" msgstr "Potwierdź hasło"
#: snikket_web/invite.py:105 snikket_web/invite.py:172 #: snikket_web/invite.py:116 snikket_web/invite.py:183
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:110 #: snikket_web/invite.py:121
msgid "Create account" msgid "Create account"
msgstr "Utwórz konto" msgstr "Utwórz konto"
#: snikket_web/invite.py:137 #: snikket_web/invite.py:148
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:141 snikket_web/invite.py:205 #: snikket_web/invite.py:152 snikket_web/invite.py:216
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:145 #: snikket_web/invite.py:156
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:177 snikket_web/templates/user_home.html:32 #: snikket_web/invite.py:188 snikket_web/templates/user_home.html:32
#: snikket_web/templates/user_passwd.html:32 #: snikket_web/templates/user_passwd.html:29
msgid "Change password" msgid "Change password"
msgstr "Zmień hasło" msgstr "Zmień hasło"
#: snikket_web/main.py:36 #: snikket_web/main.py:37
msgid "Address" msgid "Address"
msgstr "Adres" msgstr "Adres"
#: snikket_web/main.py:46 #: snikket_web/main.py:47
msgid "Sign in" msgid "Sign in"
msgstr "Zaloguj się" msgstr "Zaloguj się"
#: snikket_web/main.py:72 #: snikket_web/main.py:56
msgid "Invalid username or password." msgid "Invalid username or password."
msgstr "Nieprawidłowa nazwa użytkownika lub hasło." msgstr "Nieprawidłowa nazwa użytkownika lub hasło."
#: snikket_web/user.py:21 #: snikket_web/main.py:84
msgid "Login successful!"
msgstr "Zalogowano się pomyślnie!"
#: snikket_web/user.py:28
msgid "Current password" msgid "Current password"
msgstr "Obecne hasło" msgstr "Obecne hasło"
#: snikket_web/user.py:26 #: snikket_web/user.py:33
msgid "New password" msgid "New password"
msgstr "Nowe hasło" msgstr "Nowe hasło"
#: snikket_web/user.py:31 #: snikket_web/user.py:38
msgid "Confirm new password" msgid "Confirm new password"
msgstr "Potwierdź nowe hasło" msgstr "Potwierdź nowe hasło"
#: snikket_web/user.py:35 #: snikket_web/user.py:42
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:42 #: snikket_web/user.py:49
msgid "Sign out" msgid "Sign out"
msgstr "Wyloguj się" msgstr "Wyloguj się"
#: snikket_web/user.py:47 #: snikket_web/user.py:54
msgid "Nobody" msgid "Nobody"
msgstr "Nikt" msgstr "Nikt"
#: snikket_web/user.py:48 #: snikket_web/user.py:55
msgid "Friends only" msgid "Friends only"
msgstr "Tylko znajomi" msgstr "Tylko znajomi"
#: snikket_web/user.py:49 #: snikket_web/user.py:56
msgid "Everyone" msgid "Everyone"
msgstr "Wszyscy" msgstr "Wszyscy"
#: snikket_web/templates/admin_delete_user.html:12 #: snikket_web/templates/admin_delete_user.html:12
#: snikket_web/templates/admin_users.html:11 snikket_web/user.py:55 #: snikket_web/templates/admin_users.html:11 snikket_web/user.py:62
msgid "Display name" msgid "Display name"
msgstr "Nazwa wyświetlana" msgstr "Nazwa wyświetlana"
#: snikket_web/user.py:59 #: snikket_web/user.py:66
msgid "Avatar" msgid "Avatar"
msgstr "Awatar" msgstr "Awatar"
#: snikket_web/user.py:63 #: snikket_web/user.py:70
msgid "Profile visibility" msgid "Profile visibility"
msgstr "Widoczność profilu" msgstr "Widoczność profilu"
#: snikket_web/user.py:68 #: snikket_web/user.py:75
msgid "Update profile" msgid "Update profile"
msgstr "Zaktualizuj profil" msgstr "Zaktualizuj profil"
#: snikket_web/user.py:93 #: snikket_web/user.py:100
msgid "Incorrect password" msgid "Incorrect password"
msgstr "Nieprawidłowe hasło" msgstr "Nieprawidłowe hasło"
#: snikket_web/templates/_footer.html:4 snikket_web/templates/login.html:36 #: snikket_web/user.py:104
msgid "Password changed"
msgstr "Hasło zostało zmienione"
#: snikket_web/user.py:146
msgid "Profile updated"
msgstr "Zaktualizowano profil"
#: snikket_web/templates/_footer.html:4
#, python-format #, python-format
msgid "A <a href=\"%(about_url)s\">Snikket</a> service" msgid "A <a href=\"%(about_url)s\">Snikket</a> service"
msgstr "Serwer <a href=\"%(about_url)s\">Snikket</a>" msgstr "Serwer <a href=\"%(about_url)s\">Snikket</a>"
#: snikket_web/templates/about.html:9 #: snikket_web/templates/_footer.html:6
msgid ""
"“Snikket” and the parrot logo are trademarks of Snikket Community Interest "
"Company."
msgstr ""
"\"Snikket\" oraz logo papugi są znakami firmowymi Snikket Community Interest "
"Company."
#: snikket_web/templates/about.html:4 snikket_web/templates/about.html:9
msgid "About Snikket" msgid "About Snikket"
msgstr "O Snikket" msgstr "O Snikket"
@@ -268,14 +336,29 @@ msgid ""
"\"%(apache20_url)s\">Apache 2.0 License</a>." "\"%(apache20_url)s\">Apache 2.0 License</a>."
msgstr "" msgstr ""
"Ikony wykorzystane w portalu to <a href=\"%(source_url)s\">Googles Material " "Ikony wykorzystane w portalu to <a href=\"%(source_url)s\">Googles Material "
"Icons</a>, udostępnione przez Google na warunkach licencji <a href=\"" "Icons</a>, udostępnione przez Google na warunkach licencji <a href="
"%(apache20_url)s\">Apache 2.0</a>." "\"%(apache20_url)s\">Apache 2.0</a>."
#: snikket_web/templates/about.html:17 #: snikket_web/templates/about.html:17
msgid "Trademarks"
msgstr "Znaki firmowe"
#: snikket_web/templates/about.html:18
#, python-format
msgid ""
"“Snikket” and the parrot logo are trademarks of Snikket Community Interest "
"Company. For more information about the trademarks, visit the <a href="
"\"%(trademarks_url)s\">Snikket Trademarks information page</a>."
msgstr ""
"\"Snikket\" oraz logo papugi są znakami firmowymi Snikket Community Interest "
"Company. Więcej informacji o oznaczeniach znajdziesz na <a href=\""
"%(trademarks_url)s\">stronie o znakach firmowych Snikket</a>."
#: snikket_web/templates/about.html:19
msgid "Software Versions" msgid "Software Versions"
msgstr "Wersje oprogramowania" msgstr "Wersje oprogramowania"
#: snikket_web/templates/about.html:27 #: snikket_web/templates/about.html:29
msgid "Back to the main page" msgid "Back to the main page"
msgstr "Wróć do strony głównej" msgstr "Wróć do strony głównej"
@@ -374,7 +457,7 @@ msgid "Debug information for %(user_name)s"
msgstr "Informacje debugowania dla %(user_name)s" msgstr "Informacje debugowania dla %(user_name)s"
#: snikket_web/templates/admin_debug_user.html:11 #: snikket_web/templates/admin_debug_user.html:11
#: snikket_web/templates/user_passwd.html:26 #: snikket_web/templates/user_passwd.html:23
msgid "Warning" msgid "Warning"
msgstr "Ostrzeżenie" msgstr "Ostrzeżenie"
@@ -427,9 +510,9 @@ msgstr ""
#: snikket_web/templates/admin_edit_circle.html:44 #: snikket_web/templates/admin_edit_circle.html:44
#: snikket_web/templates/admin_edit_invite.html:49 #: snikket_web/templates/admin_edit_invite.html:49
#: snikket_web/templates/admin_reset_user_password.html:25 #: snikket_web/templates/admin_reset_user_password.html:25
#: snikket_web/templates/user_logout.html:13 #: snikket_web/templates/user_logout.html:10
#: snikket_web/templates/user_passwd.html:30 #: snikket_web/templates/user_passwd.html:27
#: snikket_web/templates/user_profile.html:31 #: snikket_web/templates/user_profile.html:28
msgid "Back" msgid "Back"
msgstr "Wstecz" msgstr "Wstecz"
@@ -505,10 +588,9 @@ msgid "View invitation"
msgstr "Szczegóły zaproszenia" msgstr "Szczegóły zaproszenia"
#: snikket_web/templates/admin_edit_invite.html:13 #: snikket_web/templates/admin_edit_invite.html:13
#: snikket_web/templates/admin_invites.html:21
#: snikket_web/templates/admin_reset_user_password.html:15 #: snikket_web/templates/admin_reset_user_password.html:15
msgid "Valid until" msgid "Valid until"
msgstr "Ważne do" msgstr "Wygasa"
#: snikket_web/templates/admin_edit_invite.html:15 #: snikket_web/templates/admin_edit_invite.html:15
#: snikket_web/templates/admin_reset_user_password.html:17 #: snikket_web/templates/admin_reset_user_password.html:17
@@ -602,6 +684,10 @@ msgstr "Wyjdź z panelu administracyjnego"
msgid "Pending invitations" msgid "Pending invitations"
msgstr "Oczekujące zaproszenia" msgstr "Oczekujące zaproszenia"
#: snikket_web/templates/admin_invites.html:21
msgid "Expires"
msgstr "Wygasa"
#: snikket_web/templates/admin_invites.html:22 #: snikket_web/templates/admin_invites.html:22
msgid "Type" msgid "Type"
msgstr "Typ" msgstr "Typ"
@@ -687,7 +773,7 @@ msgid "The web portal encountered an internal error."
msgstr "Portal internetowy napotkał błąd wewnętrzny." msgstr "Portal internetowy napotkał błąd wewnętrzny."
#: snikket_web/templates/invite_invalid.html:5 #: snikket_web/templates/invite_invalid.html:5
#: snikket_web/templates/invite_view.html:12 #: snikket_web/templates/invite_view.html:13
#, python-format #, python-format
msgid "Invite to %(site_name)s" msgid "Invite to %(site_name)s"
msgstr "Zaproszenie na %(site_name)s" msgstr "Zaproszenie na %(site_name)s"
@@ -695,7 +781,7 @@ msgstr "Zaproszenie na %(site_name)s"
#: snikket_web/templates/invite_invalid.html:6 #: snikket_web/templates/invite_invalid.html:6
#: snikket_web/templates/invite_register.html:10 #: snikket_web/templates/invite_register.html:10
#: snikket_web/templates/invite_success.html:11 #: snikket_web/templates/invite_success.html:11
#: snikket_web/templates/invite_view.html:13 #: snikket_web/templates/invite_view.html:14
#, python-format #, python-format
msgid "Powered by <img src=\"%(logo_url)s\" alt=\"Snikket\">" msgid "Powered by <img src=\"%(logo_url)s\" alt=\"Snikket\">"
msgstr "Obsługiwane przez <img alt=\"Snikket\" src=\"%(logo_url)s\">" msgstr "Obsługiwane przez <img alt=\"Snikket\" src=\"%(logo_url)s\">"
@@ -742,18 +828,18 @@ msgstr ""
"zaprowadzi cię tam poniższy przycisk:" "zaprowadzi cię tam poniższy przycisk:"
#: snikket_web/templates/invite_register.html:14 #: snikket_web/templates/invite_register.html:14
#: snikket_web/templates/invite_view.html:37 #: snikket_web/templates/invite_view.html:38
msgid "App already installed?" msgid "App already installed?"
msgstr "Aplikacja jest już zainstalowana?" msgstr "Aplikacja jest już zainstalowana?"
#: snikket_web/templates/invite_register.html:16 #: snikket_web/templates/invite_register.html:16
#: snikket_web/templates/invite_reset_view.html:21 #: snikket_web/templates/invite_reset_view.html:21
#: snikket_web/templates/invite_view.html:39 #: snikket_web/templates/invite_view.html:40
msgid "Open the app" msgid "Open the app"
msgstr "Otwórz aplikację" msgstr "Otwórz aplikację"
#: snikket_web/templates/invite_register.html:18 #: snikket_web/templates/invite_register.html:18
#: snikket_web/templates/invite_view.html:41 #: snikket_web/templates/invite_view.html:42
msgid "This button works only if you have the app installed already!" msgid "This button works only if you have the app installed already!"
msgstr "" msgstr ""
"Ten przycisk zadziała wyłącznie, jeśli masz już zainstalowaną aplikację!" "Ten przycisk zadziała wyłącznie, jeśli masz już zainstalowaną aplikację!"
@@ -851,7 +937,7 @@ msgstr ""
"przycisku Skanowania, który znajduje się u góry." "przycisku Skanowania, który znajduje się u góry."
#: snikket_web/templates/invite_reset_view.html:26 #: snikket_web/templates/invite_reset_view.html:26
#: snikket_web/templates/invite_view.html:75 #: snikket_web/templates/invite_view.html:76
msgid "" msgid ""
"Your camera will turn on. Point it at the square code below until it is " "Your camera will turn on. Point it at the square code below until it is "
"within the highlighted square on your screen, and wait until the app " "within the highlighted square on your screen, and wait until the app "
@@ -867,7 +953,7 @@ msgstr ""
"Zostaniesz wtedy poproszony o wprowadzenie nowego hasła dla twojego konta." "Zostaniesz wtedy poproszony o wprowadzenie nowego hasła dla twojego konta."
#: snikket_web/templates/invite_reset_view.html:29 #: snikket_web/templates/invite_reset_view.html:29
#: snikket_web/templates/invite_view.html:43 #: snikket_web/templates/invite_view.html:44
msgid "Alternatives" msgid "Alternatives"
msgstr "Inne możliwości" msgstr "Inne możliwości"
@@ -914,7 +1000,7 @@ msgstr ""
msgid "Invite to %(site_name)s | Snikket" msgid "Invite to %(site_name)s | Snikket"
msgstr "Zaproszenie na %(site_name)s | Snikket" msgstr "Zaproszenie na %(site_name)s | Snikket"
#: snikket_web/templates/invite_view.html:15 #: snikket_web/templates/invite_view.html:16
#, python-format #, python-format
msgid "" msgid ""
"You have been invited to chat with %(inviter_name)s using Snikket, a secure, " "You have been invited to chat with %(inviter_name)s using Snikket, a secure, "
@@ -924,7 +1010,7 @@ msgstr ""
"bezpiecznej i przyjaznej dla prywatności aplikacji do rozmów na " "bezpiecznej i przyjaznej dla prywatności aplikacji do rozmów na "
"%(site_name)s." "%(site_name)s."
#: snikket_web/templates/invite_view.html:17 #: snikket_web/templates/invite_view.html:18
#, python-format #, python-format
msgid "" msgid ""
"You have been invited to chat on %(site_name)s using Snikket, a secure, " "You have been invited to chat on %(site_name)s using Snikket, a secure, "
@@ -933,38 +1019,38 @@ msgstr ""
"Zostałeś zaproszony do czatowania na %(site_name)s za pomocą Snikket - " "Zostałeś zaproszony do czatowania na %(site_name)s za pomocą Snikket - "
"bezpiecznej i przyjaznej dla prywatności aplikacji do rozmów." "bezpiecznej i przyjaznej dla prywatności aplikacji do rozmów."
#: snikket_web/templates/invite_view.html:19 #: snikket_web/templates/invite_view.html:20
msgid "Get started" msgid "Get started"
msgstr "Rozpocznij" msgstr "Rozpocznij"
#: snikket_web/templates/invite_view.html:21 #: snikket_web/templates/invite_view.html:22
msgid "Install the Snikket App on your Android or iOS device." msgid "Install the Snikket App on your Android or iOS device."
msgstr "" msgstr ""
"Zainstaluj aplikację Snikket na swoim urządzeniu z systemem Android lub iOS." "Zainstaluj aplikację Snikket na swoim urządzeniu z systemem Android lub iOS."
#: snikket_web/templates/invite_view.html:23 #: snikket_web/templates/invite_view.html:24
#, python-format #, python-format
msgid "" msgid ""
"Install the Snikket App on your Android device (<a href=\"%(ios_info_url)s\" " "Install the Snikket App on your Android device (<a href=\"%(ios_info_url)s\" "
"rel=\"noopener noreferrer\" target=\"_blank\">iOS coming soon!</a>)." "rel=\"noopener noreferrer\" target=\"_blank\">iOS coming soon!</a>)."
msgstr "" msgstr ""
"Zainstaluj aplikację Snikket na swoim urządzeniu z Androidem (<a href=\"" "Zainstaluj aplikację Snikket na swoim urządzeniu z Androidem (<a href="
"%(ios_info_url)s\" rel=\"noopener noreferrer\" target=\"_blank\">iOS już " "\"%(ios_info_url)s\" rel=\"noopener noreferrer\" target=\"_blank\">iOS już "
"niedługo!</a>)." "niedługo!</a>)."
#: snikket_web/templates/invite_view.html:27 #: snikket_web/templates/invite_view.html:28
msgid "Get it on Google Play" msgid "Get it on Google Play"
msgstr "Pobierz w Google Play" msgstr "Pobierz w Google Play"
#: snikket_web/templates/invite_view.html:29 #: snikket_web/templates/invite_view.html:30
msgid "Download on the App Store" msgid "Download on the App Store"
msgstr "Pobierz w App Store" msgstr "Pobierz w App Store"
#: snikket_web/templates/invite_view.html:33 #: snikket_web/templates/invite_view.html:34
msgid "Not on mobile?" msgid "Send to mobile device"
msgstr "Nie korzystasz obecnie ze smartfona?" msgstr "Wyślij na urządzenie mobilne"
#: snikket_web/templates/invite_view.html:36 #: snikket_web/templates/invite_view.html:37
msgid "" msgid ""
"After installation the app should automatically open and prompt you to " "After installation the app should automatically open and prompt you to "
"create an account. If not, simply click the button below." "create an account. If not, simply click the button below."
@@ -972,7 +1058,7 @@ msgstr ""
"Po instalacji aplikacja powinna uruchomić się automatycznie i poprosić o " "Po instalacji aplikacja powinna uruchomić się automatycznie i poprosić o "
"utworzenie konta. Jeśli nie, wciśnij poniższy przycisk." "utworzenie konta. Jeśli nie, wciśnij poniższy przycisk."
#: snikket_web/templates/invite_view.html:44 #: snikket_web/templates/invite_view.html:45
#, python-format #, python-format
msgid "" msgid ""
"You can connect to Snikket using any XMPP-compatible software. If the button " "You can connect to Snikket using any XMPP-compatible software. If the button "
@@ -984,16 +1070,16 @@ msgstr ""
"twoją aplikacją, konieczne może być <a href=\"%(register_url)s\">ręczne " "twoją aplikacją, konieczne może być <a href=\"%(register_url)s\">ręczne "
"zarejestrowanie konta</a>." "zarejestrowanie konta</a>."
#: snikket_web/templates/invite_view.html:50 #: snikket_web/templates/invite_view.html:51
msgid "Scan invite code" msgid "Scan invite code"
msgstr "Zeskanuj kod zaproszenia" msgstr "Zeskanuj kod zaproszenia"
#: snikket_web/templates/invite_view.html:53 #: snikket_web/templates/invite_view.html:54
#: snikket_web/templates/invite_view.html:82 #: snikket_web/templates/invite_view.html:83
msgid "Close" msgid "Close"
msgstr "Zamknij" msgstr "Zamknij"
#: snikket_web/templates/invite_view.html:56 #: snikket_web/templates/invite_view.html:57
msgid "" msgid ""
"You can transfer this invite to your mobile device by scanning a code with " "You can transfer this invite to your mobile device by scanning a code with "
"your camera. You can use either a QR scanner app or the Snikket app itself." "your camera. You can use either a QR scanner app or the Snikket app itself."
@@ -1002,22 +1088,22 @@ msgstr ""
"poniższy kod aparatem. Możesz również skorzystać ze skanera kodów QR lub " "poniższy kod aparatem. Możesz również skorzystać ze skanera kodów QR lub "
"samej aplikacji Snikket." "samej aplikacji Snikket."
#: snikket_web/templates/invite_view.html:61 #: snikket_web/templates/invite_view.html:62
msgid "Using a QR code scanner" msgid "Using a QR code scanner"
msgstr "Używając skanera kodów QR" msgstr "Używając skanera kodów QR"
#: snikket_web/templates/invite_view.html:63 #: snikket_web/templates/invite_view.html:64
msgid "Using the Snikket app" msgid "Using the Snikket app"
msgstr "Używając aplikacji Snikket" msgstr "Używając aplikacji Snikket"
#: snikket_web/templates/invite_view.html:68 #: snikket_web/templates/invite_view.html:69
msgid "" msgid ""
"Use a <em>QR code</em> scanner on your mobile device to scan the code below:" "Use a <em>QR code</em> scanner on your mobile device to scan the code below:"
msgstr "" msgstr ""
"Użyj skanera <em>kodów QR</em> na swoim urządzeniu mobilnym, by zeskanować " "Użyj skanera <em>kodów QR</em> na swoim urządzeniu mobilnym, by zeskanować "
"poniższy kod:" "poniższy kod:"
#: snikket_web/templates/invite_view.html:74 #: snikket_web/templates/invite_view.html:75
msgid "" msgid ""
"Install the Snikket app on your mobile device, open it, and tap the 'Scan' " "Install the Snikket app on your mobile device, open it, and tap the 'Scan' "
"button at the top." "button at the top."
@@ -1060,6 +1146,27 @@ msgstr "Wprowadź swój adres Snikket oraz hasło, aby zarządzać kontem."
msgid "Login failed" msgid "Login failed"
msgstr "Logowanie nie powiodło się" msgstr "Logowanie nie powiodło się"
#: snikket_web/templates/login.html:23
msgid "Incorrect address"
msgstr "Adres nieprawidłowy"
#: snikket_web/templates/login.html:24
#, python-format
msgid ""
"This Snikket service only hosts addresses ending in <em>@%(snikket_domain)s</"
"em>. Your password was not sent."
msgstr ""
"Ten serwer Snikket obsługuje jedynie adresy kończące się na "
"<em>@%(snikket_domain)s</em>. Twoje hasło nie zostało wysłane."
#: snikket_web/templates/unauth.html:16
msgid "Operation successful"
msgstr "Operacja zakończona sukcesem"
#: snikket_web/templates/unauth.html:18
msgid "Error"
msgstr "Błąd"
#: snikket_web/templates/user_home.html:9 #: snikket_web/templates/user_home.html:9
msgid "Welcome!" msgid "Welcome!"
msgstr "Witaj!" msgstr "Witaj!"
@@ -1094,11 +1201,11 @@ msgstr ""
msgid "Admin panel" msgid "Admin panel"
msgstr "Panel administracyjny" msgstr "Panel administracyjny"
#: snikket_web/templates/user_logout.html:8 #: snikket_web/templates/user_logout.html:5
msgid "Sign out of the Snikket Web Portal" msgid "Sign out of the Snikket Web Portal"
msgstr "Wyloguj się z Portalu Użytkownika Snikket" msgstr "Wyloguj się z Portalu Użytkownika Snikket"
#: snikket_web/templates/user_logout.html:9 #: snikket_web/templates/user_logout.html:6
msgid "" msgid ""
"Click below to log yourself out of the web portal. This does not affect any " "Click below to log yourself out of the web portal. This does not affect any "
"other connected devices." "other connected devices."
@@ -1106,11 +1213,11 @@ msgstr ""
"Kliknij poniżej, aby wylogować się z portalu. Nie wpłynie to na pozostałe " "Kliknij poniżej, aby wylogować się z portalu. Nie wpłynie to na pozostałe "
"podłączone urządzenia." "podłączone urządzenia."
#: snikket_web/templates/user_passwd.html:8 #: snikket_web/templates/user_passwd.html:5
msgid "Change your password" msgid "Change your password"
msgstr "Zmień swoje hasło" msgstr "Zmień swoje hasło"
#: snikket_web/templates/user_passwd.html:9 #: snikket_web/templates/user_passwd.html:6
msgid "" msgid ""
"To change your password, you need to provide the current password as well as " "To change your password, you need to provide the current password as well as "
"the new one. To reduce the chance of typos, we ask for your new password " "the new one. To reduce the chance of typos, we ask for your new password "
@@ -1119,26 +1226,26 @@ msgstr ""
"Aby zmienić swoje hasło, musisz podać również dotychczasowe. O podanie " "Aby zmienić swoje hasło, musisz podać również dotychczasowe. O podanie "
"nowego hasła prosimy podwójnie, by zminimalizować możliwość pomyłki." "nowego hasła prosimy podwójnie, by zminimalizować możliwość pomyłki."
#: snikket_web/templates/user_passwd.html:27 #: snikket_web/templates/user_passwd.html:24
msgid "" msgid ""
"After changing your password, you will have to enter the new password on all " "After changing your password, you will have to enter the new password on all "
"of your devices." "of your devices."
msgstr "" msgstr ""
"Po zmianie hasła na nowe, musisz je wprowadzić na każdym swoim urządzeniu." "Po zmianie hasła na nowe, musisz je wprowadzić na każdym swoim urządzeniu."
#: snikket_web/templates/user_profile.html:7 #: snikket_web/templates/user_profile.html:4
msgid "Update your profile" msgid "Update your profile"
msgstr "Zaktualizuj swój profil" msgstr "Zaktualizuj swój profil"
#: snikket_web/templates/user_profile.html:9 #: snikket_web/templates/user_profile.html:6
msgid "Profile" msgid "Profile"
msgstr "Profil" msgstr "Profil"
#: snikket_web/templates/user_profile.html:22 #: snikket_web/templates/user_profile.html:19
msgid "Visibility" msgid "Visibility"
msgstr "Widoczność" msgstr "Widoczność"
#: snikket_web/templates/user_profile.html:23 #: snikket_web/templates/user_profile.html:20
msgid "" msgid ""
"This section allows you to control who can see your profile information, " "This section allows you to control who can see your profile information, "
"like avatar and nickname." "like avatar and nickname."
@@ -1146,6 +1253,9 @@ msgstr ""
"Ta sekcja pozwoli ci na zarządzenie widocznością informacji o twoim profilu " "Ta sekcja pozwoli ci na zarządzenie widocznością informacji o twoim profilu "
"przez innych, jak awatar lub pseudonim." "przez innych, jak awatar lub pseudonim."
#~ msgid "Not on mobile?"
#~ msgstr "Nie korzystasz obecnie ze smartfona?"
#~ msgid "Edit user %(user_name)s" #~ msgid "Edit user %(user_name)s"
#~ msgstr "Edytuj użytkownika %(user_name)s" #~ msgstr "Edytuj użytkownika %(user_name)s"
@@ -1232,6 +1342,3 @@ msgstr ""
#~ msgid "Copy operation failed" #~ msgid "Copy operation failed"
#~ msgstr "Kopiowanie nie powiodło się" #~ msgstr "Kopiowanie nie powiodło się"
#~ msgid "Password change failed"
#~ msgstr "Zmiana hasła zakończona niepowodzeniem"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -9,21 +9,20 @@ from quart import (
redirect, redirect,
url_for, url_for,
flash, flash,
current_app,
) )
import quart.exceptions import quart.exceptions
import wtforms import wtforms
import flask_wtf
from flask_babel import lazy_gettext as _l, _ from flask_babel import lazy_gettext as _l, _
from .infra import client from .infra import client, BaseForm
bp = Blueprint('user', __name__) bp = Blueprint('user', __name__)
class ChangePasswordForm(flask_wtf.FlaskForm): # type:ignore class ChangePasswordForm(BaseForm):
current_password = wtforms.PasswordField( current_password = wtforms.PasswordField(
_l("Current password"), _l("Current password"),
validators=[wtforms.validators.InputRequired()] validators=[wtforms.validators.InputRequired()]
@@ -44,7 +43,7 @@ class ChangePasswordForm(flask_wtf.FlaskForm): # type:ignore
) )
class LogoutForm(flask_wtf.FlaskForm): # type:ignore class LogoutForm(BaseForm):
action_signout = wtforms.SubmitField( action_signout = wtforms.SubmitField(
_l("Sign out"), _l("Sign out"),
) )
@@ -57,7 +56,7 @@ _ACCESS_MODEL_CHOICES = [
] ]
class ProfileForm(flask_wtf.FlaskForm): # type:ignore class ProfileForm(BaseForm):
nickname = wtforms.TextField( nickname = wtforms.TextField(
_l("Display name"), _l("Display name"),
) )
@@ -97,7 +96,7 @@ async def change_pw() -> typing.Union[str, quart.Response]:
quart.exceptions.Forbidden): quart.exceptions.Forbidden):
# server refused current password, set an appropriate error # server refused current password, set an appropriate error
form.current_password.errors.append( form.current_password.errors.append(
_("Incorrect password"), _("Incorrect password."),
) )
else: else:
await flash( await flash(
@@ -109,9 +108,17 @@ async def change_pw() -> typing.Union[str, quart.Response]:
return await render_template("user_passwd.html", form=form) return await render_template("user_passwd.html", form=form)
EAVATARTOOBIG = _l(
"The chosen avatar is too big. To be able to upload larger "
"avatars, please use the app."
)
@bp.route("/profile", methods=["GET", "POST"]) @bp.route("/profile", methods=["GET", "POST"])
@client.require_session() @client.require_session()
async def profile() -> typing.Union[str, quart.Response]: async def profile() -> typing.Union[str, quart.Response]:
max_avatar_size = current_app.config["MAX_AVATAR_SIZE"]
form = ProfileForm() form = ProfileForm()
if request.method != "POST": if request.method != "POST":
user_info = await client.get_user_info() user_info = await client.get_user_info()
@@ -125,30 +132,40 @@ async def profile() -> typing.Union[str, quart.Response]:
if form.validate_on_submit(): if form.validate_on_submit():
user_info = await client.get_user_info() user_info = await client.get_user_info()
ok = True
file_info = (await request.files).get(form.avatar.name) file_info = (await request.files).get(form.avatar.name)
if file_info is not None: if file_info is not None:
mimetype = file_info.mimetype mimetype = file_info.mimetype
data = file_info.stream.read() data = file_info.stream.read()
if len(data) > 0: if len(data) > max_avatar_size:
print(len(data), max_avatar_size)
form.avatar.errors.append(EAVATARTOOBIG)
ok = False
elif len(data) > 0:
await client.set_user_avatar(data, mimetype) await client.set_user_avatar(data, mimetype)
if user_info.get("nickname") != form.nickname.data: if ok:
await client.set_user_nickname(form.nickname.data) if user_info.get("nickname") != form.nickname.data:
await client.set_user_nickname(form.nickname.data)
access_model = form.profile_access_model.data access_model = form.profile_access_model.data
await asyncio.gather( await asyncio.gather(
client.set_avatar_access_model(access_model), client.set_avatar_access_model(access_model),
client.set_vcard_access_model(access_model), client.set_vcard_access_model(access_model),
client.set_nickname_access_model(access_model), client.set_nickname_access_model(access_model),
) )
await flash( await flash(
_("Profile updated"), _("Profile updated"),
"success", "success",
) )
return redirect(url_for(".profile")) return redirect(url_for(".profile"))
return await render_template("user_profile.html", form=form) return await render_template("user_profile.html",
form=form,
max_avatar_size=max_avatar_size,
avatar_too_big_warning_header=_l("Error"),
avatar_too_big_warning=EAVATARTOOBIG)
@bp.route("/logout", methods=["GET", "POST"]) @bp.route("/logout", methods=["GET", "POST"])