You've already forked snikket-web-portal
Compare commits
23 Commits
feature/ci
...
v0.1.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5b812c773d | ||
|
|
fa61ee4e11 | ||
|
|
7402480c62 | ||
|
|
a68a469319 | ||
|
|
961f285fa5 | ||
|
|
7456295cb6 | ||
|
|
96f4b0d4f8 | ||
|
|
245434126e | ||
|
|
725dffc458 | ||
|
|
22783b837e | ||
|
|
ba18fe692f | ||
|
|
387a989caa | ||
|
|
ffab48cff0 | ||
|
|
17bf7cb140 | ||
|
|
408d837a0f | ||
|
|
56e1083ada | ||
|
|
2aa3d629da | ||
|
|
6779341db3 | ||
|
|
2db6cbe6fd | ||
|
|
9bc6e0b555 | ||
|
|
98a3eeba7c | ||
|
|
de97b08f01 | ||
|
|
f2dc970731 |
36
Dockerfile
36
Dockerfile
@@ -3,44 +3,28 @@ FROM debian:buster
|
||||
ARG BUILD_SERIES=dev
|
||||
ARG BUILD_ID=0
|
||||
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
COPY requirements.txt /opt/snikket-web-portal/requirements.txt
|
||||
COPY build-requirements.txt /opt/snikket-web-portal/build-requirements.txt
|
||||
COPY Makefile /opt/snikket-web-portal/Makefile
|
||||
COPY snikket_web/ /opt/snikket-web-portal/snikket_web
|
||||
COPY babel.cfg /opt/snikket-web-portal/babel.cfg
|
||||
|
||||
# This Dockerfile attempts to strike a balance between image size and time it
|
||||
# takes to do an incremental build on changes.
|
||||
# Improvements welcome.
|
||||
WORKDIR /opt/snikket-web-portal
|
||||
|
||||
RUN set -eu; \
|
||||
export DEBIAN_FRONTEND=noninteractive ; \
|
||||
apt-get update ; \
|
||||
apt-get install -y --no-install-recommends \
|
||||
python3 python3-pip python3-setuptools python3-wheel \
|
||||
libpython3-dev \
|
||||
make build-essential \
|
||||
; \
|
||||
apt-get clean ; rm -rf /var/lib/apt/lists
|
||||
|
||||
COPY requirements.txt /opt/snikket-web-portal/requirements.txt
|
||||
COPY build-requirements.txt /opt/snikket-web-portal/build-requirements.txt
|
||||
|
||||
WORKDIR /opt/snikket-web-portal
|
||||
|
||||
RUN set -eu; \
|
||||
pip3 install -r requirements.txt; \
|
||||
pip3 install -r build-requirements.txt; \
|
||||
rm -rf /root/.cache;
|
||||
|
||||
COPY Makefile /opt/snikket-web-portal/Makefile
|
||||
COPY snikket_web/ /opt/snikket-web-portal/snikket_web
|
||||
COPY babel.cfg /opt/snikket-web-portal/babel.cfg
|
||||
|
||||
# NOTE: abusing true(1) as a terrible way to disable a specific command. If
|
||||
# one merged all the RUN commands into one, one would want to run the
|
||||
# uninstall/remove commands there, but with the split up RUN commands it is
|
||||
# rather pointless.
|
||||
RUN set -eu; \
|
||||
make; \
|
||||
true pip3 uninstall -yr build-requirements.txt; \
|
||||
true apt-get remove -y build-essential make libpython3-dev; \
|
||||
true apt-get autoremove -y; \
|
||||
pip3 uninstall -yr build-requirements.txt; \
|
||||
apt-get remove -y build-essential make libpython3-dev; \
|
||||
apt-get autoremove -y; \
|
||||
pip3 install hypercorn; \
|
||||
rm -rf /root/.cache; \
|
||||
apt-get clean ; rm -rf /var/lib/apt/lists
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 82 KiB After Width: | Height: | Size: 421 KiB |
@@ -48,6 +48,7 @@ async def proc() -> typing.Dict[str, typing.Any]:
|
||||
"text_to_css": colour.text_to_css,
|
||||
"lang": infra.selected_locale(),
|
||||
"user_info": user_info,
|
||||
"is_in_debug_mode": current_app.debug,
|
||||
}
|
||||
|
||||
|
||||
@@ -148,7 +149,7 @@ class AppConfig:
|
||||
"en",
|
||||
"fr",
|
||||
"id",
|
||||
"po",
|
||||
"pl",
|
||||
], converter=autosplit)
|
||||
apple_store_url = environ.var("")
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
version_info = (0, 1, 0, "a0")
|
||||
version_info = (0, 1, 1, "a0")
|
||||
version = (
|
||||
".".join(map(str, version_info[:3])) +
|
||||
(f"-{version_info[3]}" if version_info[3] else "")
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import asyncio
|
||||
import json
|
||||
import typing
|
||||
|
||||
@@ -362,25 +361,21 @@ async def edit_circle(id_: str) -> typing.Union[str, quart.Response]:
|
||||
return redirect(url_for(".circles"))
|
||||
raise
|
||||
|
||||
circle_members = await asyncio.gather(*(
|
||||
client.get_user_by_localpart(
|
||||
localpart,
|
||||
session=session,
|
||||
)
|
||||
for localpart in sorted(circle.members)
|
||||
))
|
||||
|
||||
users = await client.list_users()
|
||||
users = sorted(
|
||||
await client.list_users(),
|
||||
key=lambda x: x.localpart
|
||||
)
|
||||
circle_members = [
|
||||
user for user in users
|
||||
if user.localpart in circle.members
|
||||
]
|
||||
|
||||
form = EditCircleForm()
|
||||
form.user_to_add.choices = sorted(
|
||||
(
|
||||
(u.localpart, u.localpart)
|
||||
for u in users
|
||||
if u.localpart not in circle.members
|
||||
),
|
||||
key=lambda x: x[1]
|
||||
)
|
||||
form.user_to_add.choices = [
|
||||
(user.localpart, user.localpart)
|
||||
for user in users
|
||||
if user.localpart not in circle.members
|
||||
]
|
||||
valid_users = [x[0] for x in form.user_to_add.choices]
|
||||
|
||||
invite_form = InvitePost()
|
||||
|
||||
@@ -48,6 +48,7 @@ def context() -> typing.Mapping[str, typing.Any]:
|
||||
|
||||
|
||||
@bp.route("/<id_>")
|
||||
@bp.route("/<id_>/")
|
||||
async def view(id_: str) -> str:
|
||||
try:
|
||||
invite = await client.get_public_invite_by_id(id_)
|
||||
|
||||
@@ -79,8 +79,11 @@ async def login() -> typing.Union[str, quart.Response]:
|
||||
|
||||
@bp.route("/meta/about.html")
|
||||
async def about() -> str:
|
||||
version = None
|
||||
extra_versions = {}
|
||||
if current_app.debug:
|
||||
|
||||
if current_app.debug or client.is_admin_session:
|
||||
version = _version.version
|
||||
extra_versions["Quart"] = quart.__version__
|
||||
extra_versions["aiohttp"] = aiohttp.__version__
|
||||
extra_versions["babel"] = babel.__version__
|
||||
@@ -89,7 +92,7 @@ async def about() -> str:
|
||||
|
||||
return await render_template(
|
||||
"about.html",
|
||||
version=_version.version,
|
||||
version=version,
|
||||
extra_versions=extra_versions,
|
||||
)
|
||||
|
||||
|
||||
@@ -67,6 +67,10 @@ div#topbar {
|
||||
font-size: $_top-h-size;
|
||||
line-height: 1.5;
|
||||
|
||||
body.debug & {
|
||||
color: red;
|
||||
}
|
||||
|
||||
@media screen and (max-width: $small-screen-threshold) {
|
||||
font-size: $_top-h-small-size;
|
||||
}
|
||||
@@ -134,22 +138,20 @@ body > footer {
|
||||
background-color: $gray-100;
|
||||
color: $gray-800;
|
||||
padding: 0 $w-l1;
|
||||
font-size: 92.21079115%;
|
||||
|
||||
ul {
|
||||
display: block;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
list-style-type: none;
|
||||
text-align: center;
|
||||
line-height: 1.6267076567643135;
|
||||
}
|
||||
|
||||
li {
|
||||
display: inline-block;
|
||||
margin: $w-l1 0;
|
||||
}
|
||||
|
||||
li:before {
|
||||
content: '•';
|
||||
padding-right: $w-s2;
|
||||
display: block;
|
||||
margin: $w-s1 0;
|
||||
}
|
||||
|
||||
a, a:visited, a:hover, a:active, a:focus {
|
||||
|
||||
@@ -3,5 +3,7 @@
|
||||
{#- -#}
|
||||
<li>{% trans about_url=url_for('main.about') %}A <a href="{{ about_url }}">Snikket</a> service{% endtrans %}</li>
|
||||
{#- -#}
|
||||
<li>{% trans %}“Snikket” and the parrot logo are trademarks of Snikket Community Interest Company.{% endtrans %}</li>
|
||||
{#- -#}
|
||||
</ul>
|
||||
</footer>
|
||||
|
||||
@@ -14,10 +14,12 @@
|
||||
<p>{% trans agpl_url="https://www.gnu.org/licenses/agpl.html" %}The web portal software is licensed under the terms of the <a href="{{ agpl_url }}">Affero GNU General Public License, version 3.0 or later</a>. The full terms of the license can be reviewed using the aforementioned link.{% endtrans %}</p>
|
||||
<p>{% trans source_url="https://github.com/snikket-im/snikket-web-portal/" %}The source code of the web portal can be downloaded and viewed in <a href="{{ source_url }}">its GitHub repository</a>.{% endtrans %}</p>
|
||||
<p>{% trans source_url="https://material.io/resources/icons/", apache20_url="https://www.apache.org/licenses/LICENSE-2.0.txt" %}The icons used in the web portal are <a href="{{ source_url }}">Google’s Material Icons</a>, made available by Google under the terms of the <a href="{{ apache20_url }}">Apache 2.0 License</a>.{% endtrans %}</p>
|
||||
<h3>{% trans %}Trademarks{% endtrans %}</h3>
|
||||
<p>{% trans trademarks_url="https://snikket.org/about/trademarks/" %}“Snikket” and the parrot logo are trademarks of Snikket Community Interest Company. For more information about the trademarks, visit the <a href="{{ trademarks_url }}">Snikket Trademarks information page</a>.{% endtrans %}
|
||||
<h3>{% trans %}Software Versions{% endtrans %}</h3>
|
||||
<pre>Snikket Server
|
||||
Domain: {{ config["SNIKKET_DOMAIN"] }}
|
||||
Snikket Web Portal ({{ version }})
|
||||
Snikket Web Portal{% if version %} ({{ version }}){% endif %}
|
||||
{%- if extra_versions -%}
|
||||
{% for name, version in extra_versions.items() %}
|
||||
{{ name }} ({{ version }}){% endfor %}
|
||||
|
||||
@@ -16,5 +16,5 @@
|
||||
<meta name="msapplication-TileColor" content="#fbd308">
|
||||
<meta name="theme-color" content="#fbd308">
|
||||
</head>
|
||||
<body{% if body_id | default(False) %} id="{{ body_id }}"{% endif %}{% if body_class | default(False) %} class="{{ body_class }}"{% endif %}{% if onload | default(False) %} onload="{{ onload }}"{% endif %}>{% block body %}{% endblock %}</body>
|
||||
<body{% if body_id | default(False) %} id="{{ body_id }}"{% endif %} class="{% if is_in_debug_mode %}debug{% endif %}{% if body_class | default(False) %} {{ body_class }}{% endif %}"{% if onload | default(False) %} onload="{{ onload }}"{% endif %}>{% block body %}{% endblock %}</body>
|
||||
</html>
|
||||
|
||||
@@ -32,7 +32,5 @@
|
||||
</div>
|
||||
</from>
|
||||
</div></main></div>
|
||||
<footer>
|
||||
<ul><li>{% trans about_url=url_for('.about') %}A <a href="{{ about_url }}">Snikket</a> service{% endtrans %}</li></ul>
|
||||
</footer>
|
||||
{%- include "_footer.html" -%}
|
||||
{% endblock %}
|
||||
|
||||
@@ -8,10 +8,10 @@ msgstr ""
|
||||
"Project-Id-Version: PROJECT VERSION\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2021-01-30 12:45+0100\n"
|
||||
"PO-Revision-Date: 2021-01-23 17:06+0000\n"
|
||||
"Last-Translator: Matthew Wild <matthew@snikket.org>\n"
|
||||
"Language-Team: English <https://i18n.sotecware.net/projects/snikket/web-"
|
||||
"portal/en/>\n"
|
||||
"PO-Revision-Date: 2021-02-02 21:01+0000\n"
|
||||
"Last-Translator: Jonas Schäfer <jonas@zombofant.net>\n"
|
||||
"Language-Team: English <https://i18n.sotecware.net/projects/snikket/"
|
||||
"web-portal/en/>\n"
|
||||
"Language: en\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -57,18 +57,16 @@ msgid "Four weeks"
|
||||
msgstr "Four weeks"
|
||||
|
||||
#: snikket_web/admin.py:152 snikket_web/templates/admin_edit_invite.html:17
|
||||
#, fuzzy
|
||||
#| msgid "View invitation"
|
||||
msgid "Invitation type"
|
||||
msgstr "View invitation"
|
||||
msgstr "Invitation type"
|
||||
|
||||
#: snikket_web/admin.py:154 snikket_web/templates/library.j2:116
|
||||
msgid "Individual"
|
||||
msgstr ""
|
||||
msgstr "Individual"
|
||||
|
||||
#: snikket_web/admin.py:155 snikket_web/templates/library.j2:114
|
||||
msgid "Group"
|
||||
msgstr ""
|
||||
msgstr "Group"
|
||||
|
||||
#: snikket_web/admin.py:161
|
||||
msgid "New invitation link"
|
||||
@@ -91,10 +89,8 @@ msgid "Select user"
|
||||
msgstr "Select user"
|
||||
|
||||
#: snikket_web/admin.py:337
|
||||
#, fuzzy
|
||||
#| msgid "Create circle"
|
||||
msgid "Update circle"
|
||||
msgstr "Create circle"
|
||||
msgstr "Update circle"
|
||||
|
||||
#: snikket_web/admin.py:341
|
||||
msgid "Delete circle permanently"
|
||||
@@ -110,41 +106,35 @@ msgstr "Main"
|
||||
|
||||
#: snikket_web/invite.py:93
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
msgstr "Username"
|
||||
|
||||
#: snikket_web/invite.py:97 snikket_web/invite.py:164 snikket_web/main.py:41
|
||||
msgid "Password"
|
||||
msgstr "Password"
|
||||
|
||||
#: snikket_web/invite.py:101 snikket_web/invite.py:168
|
||||
#, fuzzy
|
||||
#| msgid "Confirm new password"
|
||||
msgid "Confirm password"
|
||||
msgstr "Confirm new password"
|
||||
msgstr "Confirm password"
|
||||
|
||||
#: snikket_web/invite.py:105 snikket_web/invite.py:172
|
||||
#, fuzzy
|
||||
#| msgid "The new passwords must match."
|
||||
msgid "The passwords must match"
|
||||
msgstr "The new passwords must match."
|
||||
msgstr "The passwords must match"
|
||||
|
||||
#: snikket_web/invite.py:110
|
||||
#, fuzzy
|
||||
#| msgid "Create circle"
|
||||
msgid "Create account"
|
||||
msgstr "Create circle"
|
||||
msgstr "Create account"
|
||||
|
||||
#: snikket_web/invite.py:137
|
||||
msgid "That username is already taken"
|
||||
msgstr ""
|
||||
msgstr "That username is already taken"
|
||||
|
||||
#: snikket_web/invite.py:141 snikket_web/invite.py:205
|
||||
msgid "Registration was declined for unknown reasons"
|
||||
msgstr ""
|
||||
msgstr "Registration was declined for unknown reasons"
|
||||
|
||||
#: snikket_web/invite.py:145
|
||||
msgid "The username is not valid"
|
||||
msgstr ""
|
||||
msgstr "The username is not valid"
|
||||
|
||||
#: snikket_web/invite.py:177 snikket_web/templates/user_home.html:32
|
||||
#: snikket_web/templates/user_passwd.html:32
|
||||
@@ -160,10 +150,8 @@ msgid "Sign in"
|
||||
msgstr "Sign in"
|
||||
|
||||
#: snikket_web/main.py:72
|
||||
#, fuzzy
|
||||
#| msgid "Invalid user name or password."
|
||||
msgid "Invalid username or password."
|
||||
msgstr "Invalid user name or password."
|
||||
msgstr "Invalid username or password."
|
||||
|
||||
#: snikket_web/user.py:21
|
||||
msgid "Current password"
|
||||
@@ -178,10 +166,8 @@ msgid "Confirm new password"
|
||||
msgstr "Confirm new password"
|
||||
|
||||
#: snikket_web/user.py:35
|
||||
#, fuzzy
|
||||
#| 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
|
||||
msgid "Sign out"
|
||||
@@ -293,10 +279,8 @@ msgid "Back to the main page"
|
||||
msgstr "Back to the main page"
|
||||
|
||||
#: snikket_web/templates/admin_app.html:5
|
||||
#, fuzzy
|
||||
#| msgid "Admin dashboard"
|
||||
msgid "Admin area"
|
||||
msgstr "Admin dashboard"
|
||||
msgstr "Admin area"
|
||||
|
||||
#: snikket_web/templates/admin_circles.html:4
|
||||
#: snikket_web/templates/admin_home.html:23
|
||||
@@ -308,6 +292,8 @@ msgid ""
|
||||
"<em>Circles</em> aim to help people who are in the same social circle find "
|
||||
"each other on your service."
|
||||
msgstr ""
|
||||
"<em>Circles</em> aim to help people who are in the same social circle find "
|
||||
"each other on your service."
|
||||
|
||||
#: snikket_web/templates/admin_circles.html:6
|
||||
msgid ""
|
||||
@@ -315,6 +301,9 @@ msgid ""
|
||||
"In addition, each circle has a group chat where the circle members are "
|
||||
"included."
|
||||
msgstr ""
|
||||
"Users who are in the same circle will see each other in their contact list. "
|
||||
"In addition, each circle has a group chat where the circle members are "
|
||||
"included."
|
||||
|
||||
#: snikket_web/templates/admin_circles.html:13
|
||||
msgid "Circle name"
|
||||
@@ -336,10 +325,9 @@ msgid "Create invitation to circle %(circle_name)s"
|
||||
msgstr "Create invitation to circle %(circle_name)s"
|
||||
|
||||
#: snikket_web/templates/admin_circles.html:28
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Show details of circle %(circle_name)s"
|
||||
#, python-format
|
||||
msgid "Manage members of %(circle_name)s"
|
||||
msgstr "Show details of circle %(circle_name)s"
|
||||
msgstr "Manage members of %(circle_name)s"
|
||||
|
||||
#: snikket_web/templates/admin_circles.html:31
|
||||
#: snikket_web/templates/admin_edit_circle.html:8
|
||||
@@ -430,6 +418,9 @@ msgid ""
|
||||
"immediately upon pushing the below button. <strong>There is no way back!</"
|
||||
"strong>"
|
||||
msgstr ""
|
||||
"The user and their data will be deleted irrevocably, permanently and "
|
||||
"immediately upon pushing the below button. <strong>There is no way "
|
||||
"back!</strong>"
|
||||
|
||||
#: snikket_web/templates/admin_delete_user.html:19
|
||||
#: snikket_web/templates/admin_edit_circle.html:44
|
||||
@@ -443,27 +434,23 @@ msgstr "Back"
|
||||
|
||||
#: snikket_web/templates/admin_edit_circle.html:14
|
||||
msgid "This is your main circle"
|
||||
msgstr ""
|
||||
msgstr "This is your main circle"
|
||||
|
||||
#: snikket_web/templates/admin_edit_circle.html:15
|
||||
msgid "This circle is managed automatically and cannot be removed or renamed."
|
||||
msgstr ""
|
||||
msgstr "This circle is managed automatically and cannot be removed or renamed."
|
||||
|
||||
#: snikket_web/templates/admin_edit_circle.html:17
|
||||
#: snikket_web/templates/admin_edit_circle.html:33
|
||||
#, fuzzy
|
||||
#| msgid "Email address"
|
||||
msgid "Group chat address"
|
||||
msgstr "Email address"
|
||||
msgstr "Group chat address"
|
||||
|
||||
#: snikket_web/templates/admin_edit_circle.html:20
|
||||
#: snikket_web/templates/admin_edit_circle.html:36
|
||||
#: snikket_web/templates/invite_success.html:15
|
||||
#: snikket_web/templates/user_home.html:21
|
||||
#, fuzzy
|
||||
#| msgid "Email address"
|
||||
msgid "Copy address"
|
||||
msgstr "Email address"
|
||||
msgstr "Copy address"
|
||||
|
||||
#: snikket_web/templates/admin_edit_circle.html:26
|
||||
msgid "Circle information"
|
||||
@@ -471,7 +458,7 @@ msgstr "Circle information"
|
||||
|
||||
#: snikket_web/templates/admin_edit_circle.html:39
|
||||
msgid "This circle has no group chat associated."
|
||||
msgstr ""
|
||||
msgstr "This circle has no group chat associated."
|
||||
|
||||
#: snikket_web/templates/admin_edit_circle.html:48
|
||||
msgid "Delete circle"
|
||||
@@ -504,7 +491,7 @@ msgstr "Add existing user"
|
||||
|
||||
#: snikket_web/templates/admin_edit_circle.html:94
|
||||
msgid "All users added"
|
||||
msgstr ""
|
||||
msgstr "All users added"
|
||||
|
||||
#: snikket_web/templates/admin_edit_circle.html:95
|
||||
msgid "All users on this service are already in this circle."
|
||||
@@ -547,22 +534,20 @@ msgstr "The user will not be added to any circle and will have no contacts."
|
||||
|
||||
#: snikket_web/templates/admin_edit_invite.html:40
|
||||
msgid "Contact"
|
||||
msgstr ""
|
||||
msgstr "Contact"
|
||||
|
||||
#: snikket_web/templates/admin_edit_invite.html:41
|
||||
#, python-format
|
||||
msgid "The user will get added as contact of %(peer_jid)s."
|
||||
msgstr ""
|
||||
msgstr "The user will get added as contact of %(peer_jid)s."
|
||||
|
||||
#: snikket_web/templates/admin_edit_invite.html:43
|
||||
msgid "Created"
|
||||
msgstr "Created"
|
||||
|
||||
#: snikket_web/templates/admin_home.html:4
|
||||
#, fuzzy
|
||||
#| msgid "Welcome to the administration dashboard!"
|
||||
msgid "Welcome to the admin panel!"
|
||||
msgstr "Welcome to the administration dashboard!"
|
||||
msgstr "Welcome to the admin panel!"
|
||||
|
||||
#: snikket_web/templates/admin_home.html:5
|
||||
#, python-format
|
||||
@@ -571,13 +556,11 @@ msgstr "At your service, %(user_name)s."
|
||||
|
||||
#: snikket_web/templates/admin_home.html:9
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
msgstr "Users"
|
||||
|
||||
#: snikket_web/templates/admin_home.html:11
|
||||
#, fuzzy
|
||||
#| msgid "Create password reset link for %(user_name)s"
|
||||
msgid "Create password reset links or delete users."
|
||||
msgstr "Create password reset link for %(user_name)s"
|
||||
msgstr "Create password reset links or delete users."
|
||||
|
||||
#: snikket_web/templates/admin_home.html:15
|
||||
#: snikket_web/templates/admin_users.html:4
|
||||
@@ -586,19 +569,15 @@ msgstr "Manage users"
|
||||
|
||||
#: snikket_web/templates/admin_home.html:21
|
||||
msgid "Create and manage social circles represented on your service."
|
||||
msgstr ""
|
||||
msgstr "Create and manage social circles represented on your service."
|
||||
|
||||
#: snikket_web/templates/admin_home.html:27
|
||||
#, fuzzy
|
||||
#| msgid "View invitation"
|
||||
msgid "Invitations"
|
||||
msgstr "View invitation"
|
||||
msgstr "Invitations"
|
||||
|
||||
#: snikket_web/templates/admin_home.html:29
|
||||
#, fuzzy
|
||||
#| msgid "Create, revoke or view invitations."
|
||||
msgid "Create, revoke or copy invitations."
|
||||
msgstr "Create, revoke or view invitations."
|
||||
msgstr "Create, revoke or copy invitations."
|
||||
|
||||
#: snikket_web/templates/admin_home.html:31
|
||||
#: snikket_web/templates/admin_invites.html:8
|
||||
@@ -606,14 +585,12 @@ msgid "Manage invitations"
|
||||
msgstr "Manage invitations"
|
||||
|
||||
#: snikket_web/templates/admin_home.html:36
|
||||
#, fuzzy
|
||||
#| msgid "Go back to your user’s web portal page."
|
||||
msgid "Go back to your user's web portal page."
|
||||
msgstr "Go back to your user’s web portal page."
|
||||
msgstr "Go back to your user's web portal page."
|
||||
|
||||
#: snikket_web/templates/admin_home.html:38
|
||||
msgid "Exit admin panel"
|
||||
msgstr ""
|
||||
msgstr "Exit admin panel"
|
||||
|
||||
#: snikket_web/templates/admin_invites.html:10
|
||||
msgid "Pending invitations"
|
||||
@@ -621,7 +598,7 @@ msgstr "Pending invitations"
|
||||
|
||||
#: snikket_web/templates/admin_invites.html:22
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
msgstr "Type"
|
||||
|
||||
#: snikket_web/templates/admin_invites.html:43
|
||||
msgid "Show invite details"
|
||||
@@ -657,7 +634,6 @@ msgstr ""
|
||||
"device, once."
|
||||
|
||||
#: snikket_web/templates/admin_reset_user_password.html:22
|
||||
#, fuzzy
|
||||
msgid "Destroy link"
|
||||
msgstr "Destroy link"
|
||||
|
||||
@@ -673,7 +649,7 @@ msgstr "Create password reset link for %(user_name)s"
|
||||
|
||||
#: snikket_web/templates/app.html:4
|
||||
msgid "Snikket Web Portal"
|
||||
msgstr ""
|
||||
msgstr "Snikket Web Portal"
|
||||
|
||||
#: snikket_web/templates/app.html:8
|
||||
msgid "Log out"
|
||||
@@ -687,7 +663,7 @@ msgstr "Internal error"
|
||||
|
||||
#: snikket_web/templates/backend_error.html:4
|
||||
msgid "The web portal was not able to communicate with the backend."
|
||||
msgstr ""
|
||||
msgstr "The web portal was not able to communicate with the backend."
|
||||
|
||||
#: snikket_web/templates/backend_error.html:5
|
||||
#: snikket_web/templates/internal_error.html:5
|
||||
@@ -699,16 +675,14 @@ msgid "Go back to the main page"
|
||||
msgstr "Go back to the main page"
|
||||
|
||||
#: snikket_web/templates/internal_error.html:4
|
||||
#, fuzzy
|
||||
msgid "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_view.html:12
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Edit user %(user_name)s"
|
||||
#, python-format
|
||||
msgid "Invite to %(site_name)s"
|
||||
msgstr "Edit user %(user_name)s"
|
||||
msgstr "Invite to %(site_name)s"
|
||||
|
||||
#: snikket_web/templates/invite_invalid.html:6
|
||||
#: snikket_web/templates/invite_register.html:10
|
||||
@@ -716,39 +690,34 @@ msgstr "Edit user %(user_name)s"
|
||||
#: snikket_web/templates/invite_view.html:13
|
||||
#, python-format
|
||||
msgid "Powered by <img src=\"%(logo_url)s\" alt=\"Snikket\">"
|
||||
msgstr ""
|
||||
msgstr "Powered by <img alt=\"Snikket\" src=\"%(logo_url)s\">"
|
||||
|
||||
#: snikket_web/templates/invite_invalid.html:8
|
||||
#, fuzzy
|
||||
#| msgid "Invite to circle"
|
||||
msgid "Invite expired"
|
||||
msgstr "Invite to circle"
|
||||
msgstr "Invite expired"
|
||||
|
||||
#: snikket_web/templates/invite_invalid.html:9
|
||||
msgid "Sorry, it looks like this invitation link has expired!"
|
||||
msgstr ""
|
||||
msgstr "Sorry, it looks like this invitation link has expired!"
|
||||
|
||||
#: snikket_web/templates/invite_register.html:5
|
||||
#, python-format
|
||||
msgid "Register on %(site_name)s | Snikket"
|
||||
msgstr ""
|
||||
msgstr "Register on %(site_name)s | Snikket"
|
||||
|
||||
#: snikket_web/templates/invite_register.html:9
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Edit user %(user_name)s"
|
||||
#, python-format
|
||||
msgid "Register on %(site_name)s"
|
||||
msgstr "Edit user %(user_name)s"
|
||||
msgstr "Register on %(site_name)s"
|
||||
|
||||
#: snikket_web/templates/invite_register.html:11
|
||||
#, python-format
|
||||
msgid "%(site_name)s is using Snikket - a secure, privacy-friendly chat app."
|
||||
msgstr ""
|
||||
msgstr "%(site_name)s is using Snikket - a secure, privacy-friendly chat app."
|
||||
|
||||
#: snikket_web/templates/invite_register.html:12
|
||||
#, fuzzy
|
||||
#| msgid "Create invitation"
|
||||
msgid "Create an account"
|
||||
msgstr "Create invitation"
|
||||
msgstr "Create an account"
|
||||
|
||||
#: snikket_web/templates/invite_register.html:13
|
||||
msgid ""
|
||||
@@ -757,89 +726,90 @@ msgid ""
|
||||
"we recommend that you continue the account creation process inside the app "
|
||||
"by clicking on the button below:"
|
||||
msgstr ""
|
||||
"Creating an account will allow you to communicate with other people using "
|
||||
"the Snikket app or compatible software. If you already have the app "
|
||||
"installed, we recommend that you continue the account creation process "
|
||||
"inside the app by clicking on the button below:"
|
||||
|
||||
#: snikket_web/templates/invite_register.html:14
|
||||
#: snikket_web/templates/invite_view.html:37
|
||||
msgid "App already installed?"
|
||||
msgstr ""
|
||||
msgstr "App already installed?"
|
||||
|
||||
#: snikket_web/templates/invite_register.html:16
|
||||
#: snikket_web/templates/invite_reset_view.html:21
|
||||
#: snikket_web/templates/invite_view.html:39
|
||||
msgid "Open the app"
|
||||
msgstr ""
|
||||
msgstr "Open the app"
|
||||
|
||||
#: snikket_web/templates/invite_register.html:18
|
||||
#: snikket_web/templates/invite_view.html:41
|
||||
msgid "This button works only if you have the app installed already!"
|
||||
msgstr ""
|
||||
msgstr "This button works only if you have the app installed already!"
|
||||
|
||||
#: snikket_web/templates/invite_register.html:19
|
||||
msgid "Create an account online"
|
||||
msgstr ""
|
||||
msgstr "Create an account online"
|
||||
|
||||
#: snikket_web/templates/invite_register.html:20
|
||||
msgid ""
|
||||
"If you plan to use a legacy XMPP client, you can register an account online "
|
||||
"and enter your credentials into any XMPP-compatible software."
|
||||
msgstr ""
|
||||
"If you plan to use a legacy XMPP client, you can register an account online "
|
||||
"and enter your credentials into any XMPP-compatible software."
|
||||
|
||||
#: snikket_web/templates/invite_register.html:27
|
||||
msgid ""
|
||||
"Choose a username, this will become the first part of your new chat address."
|
||||
msgstr ""
|
||||
"Choose a username, this will become the first part of your new chat address."
|
||||
|
||||
#: snikket_web/templates/invite_register.html:32
|
||||
msgid "Enter a secure password that you do not use anywhere else."
|
||||
msgstr ""
|
||||
msgstr "Enter a secure password that you do not use anywhere else."
|
||||
|
||||
#: snikket_web/templates/invite_reset.html:9
|
||||
#: snikket_web/templates/invite_reset_view.html:9
|
||||
#, fuzzy
|
||||
#| msgid "Change your password"
|
||||
msgid "Reset your password | Snikket"
|
||||
msgstr "Change your password"
|
||||
msgstr "Reset your password | Snikket"
|
||||
|
||||
#: snikket_web/templates/invite_reset.html:15
|
||||
#, fuzzy
|
||||
#| msgid "Change your password"
|
||||
msgid "Reset your password online"
|
||||
msgstr "Change your password"
|
||||
msgstr "Reset your password online"
|
||||
|
||||
#: snikket_web/templates/invite_reset.html:16
|
||||
msgid ""
|
||||
"To reset your password online, fill out the fields below and confirm using "
|
||||
"the button."
|
||||
msgstr ""
|
||||
"To reset your password online, fill out the fields below and confirm using "
|
||||
"the button."
|
||||
|
||||
#: snikket_web/templates/invite_reset_success.html:5
|
||||
msgid "Password reset successful | Snikket"
|
||||
msgstr ""
|
||||
msgstr "Password reset successful | Snikket"
|
||||
|
||||
#: snikket_web/templates/invite_reset_success.html:8
|
||||
#, fuzzy
|
||||
#| msgid "Password reset"
|
||||
msgid "Password reset successful"
|
||||
msgstr "Password reset"
|
||||
msgstr "Password reset successful"
|
||||
|
||||
#: snikket_web/templates/invite_reset_success.html:10
|
||||
msgid "Your password has been changed"
|
||||
msgstr ""
|
||||
msgstr "Your password has been changed"
|
||||
|
||||
#: snikket_web/templates/invite_reset_success.html:11
|
||||
msgid "You can now log in using your new password."
|
||||
msgstr ""
|
||||
msgstr "You can now log in using your new password."
|
||||
|
||||
#: snikket_web/templates/invite_reset_success.html:12
|
||||
#: snikket_web/templates/invite_success.html:18
|
||||
msgid "You can now safely close this page."
|
||||
msgstr ""
|
||||
msgstr "You can now safely close this page."
|
||||
|
||||
#: snikket_web/templates/invite_reset_view.html:14
|
||||
#, fuzzy
|
||||
#| msgid "Change your password"
|
||||
msgid "Reset your password"
|
||||
msgstr "Change your password"
|
||||
msgstr "Reset your password"
|
||||
|
||||
#: snikket_web/templates/invite_reset_view.html:15
|
||||
#, python-format
|
||||
@@ -847,20 +817,24 @@ msgid ""
|
||||
"This page allows you to reset the password of your account, <strong>"
|
||||
"%(account_jid)s</strong>, once."
|
||||
msgstr ""
|
||||
"This page allows you to reset the password of your account, "
|
||||
"<strong>%(account_jid)s</strong>, once."
|
||||
|
||||
#: snikket_web/templates/invite_reset_view.html:17
|
||||
msgid "Using the app"
|
||||
msgstr ""
|
||||
msgstr "Using the app"
|
||||
|
||||
#: snikket_web/templates/invite_reset_view.html:18
|
||||
msgid "To reset your password using the Snikket App, tap the button below."
|
||||
msgstr ""
|
||||
msgstr "To reset your password using the Snikket App, tap the button below."
|
||||
|
||||
#: snikket_web/templates/invite_reset_view.html:25
|
||||
msgid ""
|
||||
"Alternatively, you can scan the below code with the Snikket App using the "
|
||||
"Scan button at the top."
|
||||
msgstr ""
|
||||
"Alternatively, you can scan the below code with the Snikket App using the "
|
||||
"Scan button at the top."
|
||||
|
||||
#: snikket_web/templates/invite_reset_view.html:26
|
||||
#: snikket_web/templates/invite_view.html:75
|
||||
@@ -869,15 +843,18 @@ msgid ""
|
||||
"within the highlighted square on your screen, and wait until the app "
|
||||
"recognises it."
|
||||
msgstr ""
|
||||
"Your camera will turn on. Point it at the square code below until it is "
|
||||
"within the highlighted square on your screen, and wait until the app "
|
||||
"recognises it."
|
||||
|
||||
#: snikket_web/templates/invite_reset_view.html:27
|
||||
msgid "You will then be prompted to enter a new password for your account."
|
||||
msgstr ""
|
||||
msgstr "You will then be prompted to enter a new password for your account."
|
||||
|
||||
#: snikket_web/templates/invite_reset_view.html:29
|
||||
#: snikket_web/templates/invite_view.html:43
|
||||
msgid "Alternatives"
|
||||
msgstr ""
|
||||
msgstr "Alternatives"
|
||||
|
||||
#: snikket_web/templates/invite_reset_view.html:30
|
||||
#, python-format
|
||||
@@ -885,39 +862,42 @@ msgid ""
|
||||
"You can also <a href=\"%(reset_url)s\">reset your password online</a> if the "
|
||||
"above button or scanning the QR code does not work for you."
|
||||
msgstr ""
|
||||
"You can also <a href=\"%(reset_url)s\">reset your password online</a> if the "
|
||||
"above button or scanning the QR code does not work for you."
|
||||
|
||||
#: snikket_web/templates/invite_success.html:5
|
||||
#, python-format
|
||||
msgid "Successfully registered on %(site_name)s | Snikket"
|
||||
msgstr ""
|
||||
msgstr "Successfully registered on %(site_name)s | Snikket"
|
||||
|
||||
#: snikket_web/templates/invite_success.html:10
|
||||
#, python-format
|
||||
msgid "Successfully registered on %(site_name)s"
|
||||
msgstr ""
|
||||
msgstr "Successfully registered on %(site_name)s"
|
||||
|
||||
#: snikket_web/templates/invite_success.html:12
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Congratulations! You successfully registered on %(site_name)s as %(jid)s."
|
||||
msgstr ""
|
||||
"Congratulations! You successfully registered on %(site_name)s as %(jid)s."
|
||||
|
||||
#: snikket_web/templates/invite_success.html:13
|
||||
#, fuzzy
|
||||
#| msgid "Email address"
|
||||
msgid "Your address"
|
||||
msgstr "Email address"
|
||||
msgstr "Your address"
|
||||
|
||||
#: snikket_web/templates/invite_success.html:17
|
||||
msgid ""
|
||||
"You can now set up your legacy XMPP client with the above address and the "
|
||||
"password you chose during registration."
|
||||
msgstr ""
|
||||
"You can now set up your legacy XMPP client with the above address and the "
|
||||
"password you chose during registration."
|
||||
|
||||
#: snikket_web/templates/invite_view.html:6
|
||||
#, python-format
|
||||
msgid "Invite to %(site_name)s | Snikket"
|
||||
msgstr ""
|
||||
msgstr "Invite to %(site_name)s | Snikket"
|
||||
|
||||
#: snikket_web/templates/invite_view.html:15
|
||||
#, python-format
|
||||
@@ -925,6 +905,8 @@ msgid ""
|
||||
"You have been invited to chat with %(inviter_name)s using Snikket, a secure, "
|
||||
"privacy-friendly chat app on %(site_name)s."
|
||||
msgstr ""
|
||||
"You have been invited to chat with %(inviter_name)s using Snikket, a secure, "
|
||||
"privacy-friendly chat app on %(site_name)s."
|
||||
|
||||
#: snikket_web/templates/invite_view.html:17
|
||||
#, python-format
|
||||
@@ -932,14 +914,16 @@ msgid ""
|
||||
"You have been invited to chat on %(site_name)s using Snikket, a secure, "
|
||||
"privacy-friendly chat app."
|
||||
msgstr ""
|
||||
"You have been invited to chat on %(site_name)s using Snikket, a secure, "
|
||||
"privacy-friendly chat app."
|
||||
|
||||
#: snikket_web/templates/invite_view.html:19
|
||||
msgid "Get started"
|
||||
msgstr ""
|
||||
msgstr "Get started"
|
||||
|
||||
#: snikket_web/templates/invite_view.html:21
|
||||
msgid "Install the Snikket App on your Android or iOS device."
|
||||
msgstr ""
|
||||
msgstr "Install the Snikket App on your Android or iOS device."
|
||||
|
||||
#: snikket_web/templates/invite_view.html:23
|
||||
#, python-format
|
||||
@@ -947,24 +931,28 @@ msgid ""
|
||||
"Install the Snikket App on your Android device (<a href=\"%(ios_info_url)s\" "
|
||||
"rel=\"noopener noreferrer\" target=\"_blank\">iOS coming soon!</a>)."
|
||||
msgstr ""
|
||||
"Install the Snikket App on your Android device (<a href=\"%(ios_info_url)s\" "
|
||||
"rel=\"noopener noreferrer\" target=\"_blank\">iOS coming soon!</a>)."
|
||||
|
||||
#: snikket_web/templates/invite_view.html:27
|
||||
msgid "Get it on Google Play"
|
||||
msgstr ""
|
||||
msgstr "Get it on Google Play"
|
||||
|
||||
#: snikket_web/templates/invite_view.html:29
|
||||
msgid "Download on the App Store"
|
||||
msgstr ""
|
||||
msgstr "Download on the App Store"
|
||||
|
||||
#: snikket_web/templates/invite_view.html:33
|
||||
msgid "Not on mobile?"
|
||||
msgstr ""
|
||||
msgstr "Not on mobile?"
|
||||
|
||||
#: snikket_web/templates/invite_view.html:36
|
||||
msgid ""
|
||||
"After installation the app should automatically open and prompt you to "
|
||||
"create an account. If not, simply click the button below."
|
||||
msgstr ""
|
||||
"After installation the app should automatically open and prompt you to "
|
||||
"create an account. If not, simply click the button below."
|
||||
|
||||
#: snikket_web/templates/invite_view.html:44
|
||||
#, python-format
|
||||
@@ -973,42 +961,48 @@ msgid ""
|
||||
"above does not work with your app, you may need to <a href=\"%(register_url)s"
|
||||
"\">register an account manually</a>."
|
||||
msgstr ""
|
||||
"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)"
|
||||
"s\">register an account manually</a>."
|
||||
|
||||
#: snikket_web/templates/invite_view.html:50
|
||||
#, fuzzy
|
||||
#| msgid "Show invite details"
|
||||
msgid "Scan invite code"
|
||||
msgstr "Show invite details"
|
||||
msgstr "Scan invite code"
|
||||
|
||||
#: snikket_web/templates/invite_view.html:53
|
||||
#: snikket_web/templates/invite_view.html:82
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
msgstr "Close"
|
||||
|
||||
#: snikket_web/templates/invite_view.html:56
|
||||
msgid ""
|
||||
"You can transfer this invite to your mobile device by scanning a code with "
|
||||
"your camera. You can use either a QR scanner app or the Snikket app itself."
|
||||
msgstr ""
|
||||
"You can transfer this invite to your mobile device by scanning a code with "
|
||||
"your camera. You can use either a QR scanner app or the Snikket app itself."
|
||||
|
||||
#: snikket_web/templates/invite_view.html:61
|
||||
msgid "Using a QR code scanner"
|
||||
msgstr ""
|
||||
msgstr "Using a QR code scanner"
|
||||
|
||||
#: snikket_web/templates/invite_view.html:63
|
||||
msgid "Using the Snikket app"
|
||||
msgstr ""
|
||||
msgstr "Using the Snikket app"
|
||||
|
||||
#: snikket_web/templates/invite_view.html:68
|
||||
msgid ""
|
||||
"Use a <em>QR code</em> scanner on your mobile device to scan the code below:"
|
||||
msgstr ""
|
||||
"Use a <em>QR code</em> scanner on your mobile device to scan the code below:"
|
||||
|
||||
#: snikket_web/templates/invite_view.html:74
|
||||
msgid ""
|
||||
"Install the Snikket app on your mobile device, open it, and tap the 'Scan' "
|
||||
"button at the top."
|
||||
msgstr ""
|
||||
"Install the Snikket app on your mobile device, open it, and tap the 'Scan' "
|
||||
"button at the top."
|
||||
|
||||
#: snikket_web/templates/library.j2:18
|
||||
msgid "Copy link"
|
||||
@@ -1023,16 +1017,12 @@ msgid "deleted"
|
||||
msgstr "deleted"
|
||||
|
||||
#: snikket_web/templates/library.j2:122
|
||||
#, fuzzy
|
||||
#| msgid "Manage users and invitations of this Snikket service."
|
||||
msgid "Can be used multiple times to create accounts on this Snikket service."
|
||||
msgstr "Manage users and invitations of this Snikket service."
|
||||
msgstr "Can be used multiple times to create accounts on this Snikket service."
|
||||
|
||||
#: snikket_web/templates/library.j2:124
|
||||
#, fuzzy
|
||||
#| msgid "Manage users and invitations of this Snikket service."
|
||||
msgid "Can be used once to create an account on this Snikket service."
|
||||
msgstr "Manage users and invitations of this Snikket service."
|
||||
msgstr "Can be used once to create an account on this Snikket service."
|
||||
|
||||
#: snikket_web/templates/login.html:5
|
||||
msgid "Snikket Login"
|
||||
@@ -1056,40 +1046,28 @@ msgid "Welcome home, %(user_name)s."
|
||||
msgstr "Welcome home, %(user_name)s."
|
||||
|
||||
#: snikket_web/templates/user_home.html:14
|
||||
#, fuzzy
|
||||
#| msgid "Create circle"
|
||||
msgid "Your account"
|
||||
msgstr "Create circle"
|
||||
msgstr "Your account"
|
||||
|
||||
#: snikket_web/templates/user_home.html:20
|
||||
#, fuzzy
|
||||
#| msgid "Email address"
|
||||
msgid "Your XMPP address"
|
||||
msgstr "Email address"
|
||||
msgstr "Your XMPP address"
|
||||
|
||||
#: snikket_web/templates/user_home.html:31
|
||||
#, fuzzy
|
||||
#| msgid "Update profile"
|
||||
msgid "Edit profile"
|
||||
msgstr "Update profile"
|
||||
msgstr "Edit profile"
|
||||
|
||||
#: snikket_web/templates/user_home.html:38
|
||||
#, fuzzy
|
||||
#| msgid "About Snikket"
|
||||
msgid "Your Snikket"
|
||||
msgstr "About Snikket"
|
||||
msgstr "Your Snikket"
|
||||
|
||||
#: snikket_web/templates/user_home.html:40
|
||||
#, fuzzy
|
||||
#| msgid "Manage users and invitations of this Snikket service."
|
||||
msgid "Manage users, invitations and circles of your Snikket service."
|
||||
msgstr "Manage users and invitations of this Snikket service."
|
||||
msgstr "Manage users, invitations and circles of your Snikket service."
|
||||
|
||||
#: snikket_web/templates/user_home.html:42
|
||||
#, fuzzy
|
||||
#| msgid "Admin dashboard"
|
||||
msgid "Admin panel"
|
||||
msgstr "Admin dashboard"
|
||||
msgstr "Admin panel"
|
||||
|
||||
#: snikket_web/templates/user_logout.html:8
|
||||
msgid "Sign out of the Snikket Web Portal"
|
||||
@@ -1126,10 +1104,8 @@ msgstr ""
|
||||
"of your devices."
|
||||
|
||||
#: snikket_web/templates/user_profile.html:7
|
||||
#, fuzzy
|
||||
#| msgid "Update profile"
|
||||
msgid "Update your profile"
|
||||
msgstr "Update profile"
|
||||
msgstr "Update your profile"
|
||||
|
||||
#: snikket_web/templates/user_profile.html:9
|
||||
msgid "Profile"
|
||||
|
||||
@@ -8,8 +8,8 @@ msgstr ""
|
||||
"Project-Id-Version: PROJECT VERSION\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2021-01-30 12:45+0100\n"
|
||||
"PO-Revision-Date: 2021-01-23 17:06+0000\n"
|
||||
"Last-Translator: Matthew Wild <matthew@snikket.org>\n"
|
||||
"PO-Revision-Date: 2021-02-02 21:01+0000\n"
|
||||
"Last-Translator: riccio <unriccio@email.it>\n"
|
||||
"Language-Team: English (United Kingdom) <https://i18n.sotecware.net/projects/"
|
||||
"snikket/web-portal/en_GB/>\n"
|
||||
"Language: en_GB\n"
|
||||
@@ -57,10 +57,8 @@ msgid "Four weeks"
|
||||
msgstr "Four weeks"
|
||||
|
||||
#: snikket_web/admin.py:152 snikket_web/templates/admin_edit_invite.html:17
|
||||
#, fuzzy
|
||||
#| msgid "View invitation"
|
||||
msgid "Invitation type"
|
||||
msgstr "View invitation"
|
||||
msgstr "Invitation type"
|
||||
|
||||
#: snikket_web/admin.py:154 snikket_web/templates/library.j2:116
|
||||
msgid "Individual"
|
||||
@@ -123,10 +121,8 @@ msgid "Confirm password"
|
||||
msgstr "Confirm new password"
|
||||
|
||||
#: snikket_web/invite.py:105 snikket_web/invite.py:172
|
||||
#, fuzzy
|
||||
#| msgid "The new passwords must match."
|
||||
msgid "The passwords must match"
|
||||
msgstr "The new passwords must match."
|
||||
msgstr "The passwords must match"
|
||||
|
||||
#: snikket_web/invite.py:110
|
||||
#, fuzzy
|
||||
@@ -178,10 +174,8 @@ msgid "Confirm new password"
|
||||
msgstr "Confirm new password"
|
||||
|
||||
#: snikket_web/user.py:35
|
||||
#, fuzzy
|
||||
#| 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
|
||||
msgid "Sign out"
|
||||
@@ -574,10 +568,8 @@ msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
#: snikket_web/templates/admin_home.html:11
|
||||
#, fuzzy
|
||||
#| msgid "Create password reset link for %(user_name)s"
|
||||
msgid "Create password reset links or delete users."
|
||||
msgstr "Create password reset link for %(user_name)s"
|
||||
msgstr "Create password reset links or delete users."
|
||||
|
||||
#: snikket_web/templates/admin_home.html:15
|
||||
#: snikket_web/templates/admin_users.html:4
|
||||
@@ -703,10 +695,9 @@ msgstr "The web portal encountered an internal error."
|
||||
|
||||
#: snikket_web/templates/invite_invalid.html:5
|
||||
#: snikket_web/templates/invite_view.html:12
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Edit user %(user_name)s"
|
||||
#, python-format
|
||||
msgid "Invite to %(site_name)s"
|
||||
msgstr "Edit user %(user_name)s"
|
||||
msgstr "Invite to %(site_name)s"
|
||||
|
||||
#: snikket_web/templates/invite_invalid.html:6
|
||||
#: snikket_web/templates/invite_register.html:10
|
||||
@@ -732,10 +723,9 @@ msgid "Register on %(site_name)s | Snikket"
|
||||
msgstr ""
|
||||
|
||||
#: snikket_web/templates/invite_register.html:9
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Edit user %(user_name)s"
|
||||
#, python-format
|
||||
msgid "Register on %(site_name)s"
|
||||
msgstr "Edit user %(user_name)s"
|
||||
msgstr "Register on %(site_name)s"
|
||||
|
||||
#: snikket_web/templates/invite_register.html:11
|
||||
#, python-format
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Project-Id-Version: PROJECT VERSION\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2021-01-30 12:45+0100\n"
|
||||
"PO-Revision-Date: 2021-01-30 13:47+0000\n"
|
||||
"PO-Revision-Date: 2021-02-02 21:01+0000\n"
|
||||
"Last-Translator: Link Mauve <linkmauve@linkmauve.fr>\n"
|
||||
"Language-Team: French <https://i18n.sotecware.net/projects/snikket/"
|
||||
"web-portal/fr/>\n"
|
||||
@@ -265,9 +265,9 @@ msgid ""
|
||||
"Material Icons</a>, made available by Google under the terms of the <a href="
|
||||
"\"%(apache20_url)s\">Apache 2.0 License</a>."
|
||||
msgstr ""
|
||||
"Les icônes utilisées dans le portail web sont <a href=\"%(source_url)s"
|
||||
"\">Google’s Material Icons</a>, mises à dispositions par Google aux termes "
|
||||
"de la <a href=\"%(apache20_url)s\">licence Apache 2.0 </a>."
|
||||
"Les icônes utilisées dans le portail web sont <a href=\"%(source_url)s\""
|
||||
">Google’s Material Icons</a>, mises à dispositions par Google sous les "
|
||||
"termes de la <a href=\"%(apache20_url)s\">licence Apache 2.0 </a>."
|
||||
|
||||
#: snikket_web/templates/about.html:17
|
||||
msgid "Software Versions"
|
||||
@@ -597,7 +597,7 @@ msgstr "Quitter le panneau d’administration"
|
||||
|
||||
#: snikket_web/templates/admin_invites.html:10
|
||||
msgid "Pending invitations"
|
||||
msgstr "Invitations valides"
|
||||
msgstr "Invitations en attente"
|
||||
|
||||
#: snikket_web/templates/admin_invites.html:22
|
||||
msgid "Type"
|
||||
@@ -617,7 +617,7 @@ msgstr "Supprime l’invitation"
|
||||
|
||||
#: snikket_web/templates/admin_invites.html:57
|
||||
msgid "Currently, there are no pending invitations."
|
||||
msgstr "Il n’y a actuellement pas d’invitation valide."
|
||||
msgstr "Il n’y a actuellement pas d’invitation en attente."
|
||||
|
||||
#: snikket_web/templates/admin_reset_user_password.html:8
|
||||
msgid "Password reset"
|
||||
@@ -877,7 +877,7 @@ msgid ""
|
||||
"above button or scanning the QR code does not work for you."
|
||||
msgstr ""
|
||||
"Vous pouvez aussi <a href=\"%(reset_url)s\">réinitialiser votre mot de passe "
|
||||
"en ligne</a> si le bouton ci-dessus ou le scan du QR code ne fonctionnent "
|
||||
"en ligne</a> si le bouton ci-dessus ou le scan du QR code ne fonctionnent "
|
||||
"pas pour vous."
|
||||
|
||||
#: snikket_web/templates/invite_success.html:5
|
||||
@@ -954,7 +954,7 @@ msgstr ""
|
||||
|
||||
#: snikket_web/templates/invite_view.html:27
|
||||
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
|
||||
msgid "Download on the App Store"
|
||||
@@ -1001,11 +1001,11 @@ msgid ""
|
||||
msgstr ""
|
||||
"Vous pouvez transférer cette invitation sur votre appareil mobile en "
|
||||
"scannant un code avec votre appareil photo. Vous pouvez utiliser soit une "
|
||||
"application de scanner QR, soit l’application Snikket elle-même."
|
||||
"application de scanner de QR code, soit l’application Snikket elle-même."
|
||||
|
||||
#: snikket_web/templates/invite_view.html:61
|
||||
msgid "Using a QR code scanner"
|
||||
msgstr "En utilisant un scanner de codes QR"
|
||||
msgstr "En utilisant un scanner de QR code"
|
||||
|
||||
#: snikket_web/templates/invite_view.html:63
|
||||
msgid "Using the Snikket app"
|
||||
@@ -1015,7 +1015,7 @@ msgstr "En utilisant l’application Snikket"
|
||||
msgid ""
|
||||
"Use a <em>QR code</em> scanner on your mobile device to scan the code below:"
|
||||
msgstr ""
|
||||
"Utilisez un scanner de <em>QR code</em> sur votre appareil mobile pour "
|
||||
"Utilisez un scanner de <em>QR code</em> sur votre appareil mobile pour "
|
||||
"scanner le code ci-dessous :"
|
||||
|
||||
#: snikket_web/templates/invite_view.html:74
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Project-Id-Version: PROJECT VERSION\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2021-01-30 12:45+0100\n"
|
||||
"PO-Revision-Date: 2021-01-31 12:54+0000\n"
|
||||
"PO-Revision-Date: 2021-02-02 21:01+0000\n"
|
||||
"Last-Translator: uira <inboxriau@andriana.id>\n"
|
||||
"Language-Team: Indonesian <https://i18n.sotecware.net/projects/snikket/"
|
||||
"web-portal/id/>\n"
|
||||
@@ -70,7 +70,7 @@ msgstr "Grup"
|
||||
|
||||
#: snikket_web/admin.py:161
|
||||
msgid "New invitation link"
|
||||
msgstr "Tautan undangan terbaru"
|
||||
msgstr "Tautan undangan baru"
|
||||
|
||||
#: snikket_web/admin.py:223
|
||||
msgid "Revoke"
|
||||
@@ -285,7 +285,7 @@ msgstr "Wewenang Administrator"
|
||||
#: snikket_web/templates/admin_circles.html:4
|
||||
#: snikket_web/templates/admin_home.html:23
|
||||
msgid "Manage circles"
|
||||
msgstr "Atur kelompok"
|
||||
msgstr "Kelola kelompok"
|
||||
|
||||
#: snikket_web/templates/admin_circles.html:5
|
||||
msgid ""
|
||||
@@ -571,7 +571,7 @@ msgstr "Buat tautan setel ulang kata sandi atau hapus pengguna."
|
||||
#: snikket_web/templates/admin_home.html:15
|
||||
#: snikket_web/templates/admin_users.html:4
|
||||
msgid "Manage users"
|
||||
msgstr "Atur pengguna"
|
||||
msgstr "Kelola pengguna"
|
||||
|
||||
#: snikket_web/templates/admin_home.html:21
|
||||
msgid "Create and manage social circles represented on your service."
|
||||
@@ -583,7 +583,7 @@ msgstr "Undangan"
|
||||
|
||||
#: snikket_web/templates/admin_home.html:29
|
||||
msgid "Create, revoke or copy invitations."
|
||||
msgstr "Buat, batalkan, atau kopi undangan."
|
||||
msgstr "Buat, batalkan, atau salin undangan."
|
||||
|
||||
#: snikket_web/templates/admin_home.html:31
|
||||
#: snikket_web/templates/admin_invites.html:8
|
||||
@@ -612,7 +612,7 @@ msgstr "Lihat detil undangan"
|
||||
|
||||
#: snikket_web/templates/admin_invites.html:46
|
||||
msgid "Copy invite link to clipboard"
|
||||
msgstr "Kopi tautan undangan ke papan klip"
|
||||
msgstr "Salin tautan undangan ke papan klip"
|
||||
|
||||
#: snikket_web/templates/admin_invites.html:49
|
||||
msgid "Delete invitation"
|
||||
@@ -902,8 +902,8 @@ msgid ""
|
||||
"You can now set up your legacy XMPP client with the above address and the "
|
||||
"password you chose during registration."
|
||||
msgstr ""
|
||||
"Anda sekarang dapat mengatur aplikasi XMPP lawas Anda dengan alamat di atas "
|
||||
"dan kata sandi yang Anda pilih saat pendaftaran."
|
||||
"Sekarang anda dapat mempersiapkan aplikasi XMPP lawas Anda dengan alamat di "
|
||||
"atas dan kata sandi yang dipilih saat pendaftaran."
|
||||
|
||||
#: snikket_web/templates/invite_view.html:6
|
||||
#, python-format
|
||||
@@ -1019,7 +1019,7 @@ msgstr ""
|
||||
|
||||
#: snikket_web/templates/library.j2:18
|
||||
msgid "Copy link"
|
||||
msgstr "Kopi tautan"
|
||||
msgstr "Salin tautan"
|
||||
|
||||
#: snikket_web/templates/library.j2:81
|
||||
msgid "Invalid input"
|
||||
@@ -1044,7 +1044,7 @@ msgstr "Login Snikket"
|
||||
|
||||
#: snikket_web/templates/login.html:14
|
||||
msgid "Enter your Snikket address and password to manage your account."
|
||||
msgstr "Ketik alamat Snikket dan kata sandinya untuk mengatur akun anda."
|
||||
msgstr "Ketik alamat Snikket dan kata sandinya untuk mengelola akun anda."
|
||||
|
||||
#: snikket_web/templates/login.html:18
|
||||
msgid "Login failed"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user