Compare commits

..

24 Commits

Author SHA1 Message Date
Matthew Wild
488dc9a3f3 Merge pull request #202 from snikket-im/ka/oauthtweaks
OAuth tweaks
2025-06-05 17:55:56 +01:00
Kim Alvefur
1a65ba6150 Include a software id in oauth client registration
This is supposed to be a unique and persistent identifier for the
software itself, regardless of version or deployment instance.

Generated from the domain name in the comment using uuid_generate_sha1()
2025-06-05 17:52:04 +01:00
Kim Alvefur
9474238dee Declare as a web application in oauth client registration
It is, even if the password grant isn't restricted to that, but if ever
the authorization code flow is implemented, it'll be correct.
2025-06-05 17:52:01 +01:00
Kim Alvefur
60e663316b Declare that oauth client credentials are using POST method
Not enforced by mod_http_oauth2, but could be in the future
2025-06-05 17:50:52 +01:00
Kim Alvefur
770d05c72c Declare use of no response types, since password grant uses none
Needless restriction removed in
https://hg.prosody.im/prosody-modules/rev/ef81c67e1ae7
2025-06-05 17:50:52 +01:00
Kim Alvefur
ea75d8e832 Include requested scopes in oauth client registration
This can be used on the oauth server side to enforce that no additional
scopes are added.
2025-06-05 17:50:52 +01:00
Kim Alvefur
145dda8c19 Include web portal version in oauth client registration
This could be shown in client listings and audit logs, and checked to
ensure old versions stop being used. Not the most relevant for the web
portal as it is closely tied together with the server, but could help
answer questions about where old grants come from.
2025-06-05 17:50:52 +01:00
Matthew Wild
149a79cb2c Merge pull request #203 from snikket-im/make-lint
prosodyclient: Fixes to satisfy mypy
2025-06-05 17:48:23 +01:00
Matthew Wild
69f77020b8 prosodyclient: Fixes to satisfy mypy 2025-06-05 17:46:05 +01:00
Matthew Wild
5ac481a4b4 prosodyclient: Switch to black formatting and remove lint issues 2025-06-05 17:33:22 +01:00
Matthew Wild
56470eec01 Github: Use flake8 target 2025-06-05 17:32:34 +01:00
Matthew Wild
9b4903b230 Makefile: Add lint, format (black), flake8 and mypy targets 2025-06-05 17:29:44 +01:00
Matthew Wild
74c3946609 Bump log level of oauth errors 2025-06-02 11:36:08 +01:00
Matthew Wild
feabed6565 Register as an OAuth client and authenticate token requests
mod_http_oauth2 in prosody-modules was updated to require client
authentication for the password grant, which previously did not need
client authentication.

This means that the first request we make to Prosody will now register as a
client in order to obtain client_id and client_secret.

There is no real security gain from this approach (unlike other grant types,
the password grant does not do redirects which could be intercepted). In the
future, however, some security could be gained by having Prosody restrict
the ability to use the password grant to privileged OAuth clients. This would
prevent third-party OAuth clients from using the password grant which is not
suitable for that purpose.
2025-06-02 11:36:08 +01:00
Jonas Schäfer
af13a3cc47 Merge pull request #197 from snikket-im/z/play-badge-l10n
Serve localized Google Play badges locally
2025-04-13 08:57:16 +02:00
Kim Alvefur
466e3e79b7 Serve localized Google Play badges locally
Fixes #196

Badges downloaded from <https://play.google.com/intl/en_us/badges/> with
a bit of automation to get one per supported language.
2025-04-12 20:23:10 +02:00
Weblate
3f1ce7565b Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: Snikket/Web Portal
Translate-URL: http://i18n.sotecware.net/projects/snikket/web-portal/
2024-08-11 19:21:49 +00:00
Matthew Wild
265ca4db8f Merge pull request #191 from snikket-im/fix/issue190
Ignore that users do not have access to metrics
2024-08-11 20:21:32 +01:00
Kim Alvefur
5015c4aa43 fixup: refresh translation code references 2024-08-11 16:36:53 +02:00
Kim Alvefur
465720c5b1 fixup: please flake8 2024-08-11 16:34:06 +02:00
Kim Alvefur
2a8e7ae72b fixup: please mypy 2024-08-11 16:25:17 +02:00
Andrey
449e345ee5 Ignore that users do not have access to metrics
Fixes #190

The templates appear to handle this being False, so that seems the path
of least resistance.
2024-08-11 15:56:40 +02:00
Andrey
51798ecc43 Translated using Weblate (Russian)
Currently translated at 100.0% (373 of 373 strings)

Translation: Snikket/Web Portal
Translate-URL: http://i18n.sotecware.net/projects/snikket/web-portal/ru/
2024-07-18 17:08:03 +00:00
uira
1e15ef5fce Translated using Weblate (Indonesian)
Currently translated at 100.0% (373 of 373 strings)

Translation: Snikket/Web Portal
Translate-URL: http://i18n.sotecware.net/projects/snikket/web-portal/id/
2024-07-18 17:07:58 +00:00
35 changed files with 802 additions and 719 deletions

View File

@@ -48,7 +48,7 @@ jobs:
pip install flake8 flake8-print pip install flake8 flake8-print
- name: Linting - name: Linting
run: | run: |
python -m flake8 snikket_web make flake8
translation-check: translation-check:
runs-on: ubuntu-latest runs-on: ubuntu-latest

View File

@@ -5,6 +5,8 @@ generated_css_files = $(patsubst snikket_web/scss/%.scss,snikket_web/static/css/
translation_basepath = snikket_web/translations translation_basepath = snikket_web/translations
pot_file = $(translation_basepath)/messages.pot pot_file = $(translation_basepath)/messages.pot
black_formatted_py = snikket_web/prosodyclient.py
PYTHON3 ?= python3 PYTHON3 ?= python3
SCSSC ?= sassc --load-path snikket_web/scss/ SCSSC ?= sassc --load-path snikket_web/scss/
@@ -34,4 +36,20 @@ compile_translations:
-pybabel compile -d $(translation_basepath) -pybabel compile -d $(translation_basepath)
.PHONY: lint
lint: format flake8
.PHONY: format
format:
$(PYTHON3) -m black $(black_formatted_py)
.PHONY: flake8
flake8:
$(PYTHON3) -m flake8 --exclude=$(subst $(space),$(comma),$(strip $(black_formatted_py))) snikket_web
$(PYTHON3) -m flake8 --ignore=E501,W503 $(black_formatted_py)
.PHONY: mypy
mypy:
$(PYTHON3) -m mypy --python-version 3.11 snikket_web
.PHONY: build_css clean update_translations compile_translations extract_translations force_update_translations .PHONY: build_css clean update_translations compile_translations extract_translations force_update_translations

View File

@@ -47,10 +47,20 @@ def apple_store_badge() -> str:
return url_for("static", filename="img/apple/en.svg") return url_for("static", filename="img/apple/en.svg")
def play_store_badge() -> str:
locale = selected_locale()
filename = "{}_badge_web_generic.png".format(locale)
static_path = pathlib.Path(__file__).parent / "static" / "img" / "google"
if (static_path / filename).exists():
return url_for("static", filename="img/google/{}".format(filename))
return url_for("static", filename="img/google/en_badge_web_generic.png")
@bp.context_processor @bp.context_processor
def context() -> typing.Dict[str, typing.Any]: def context() -> typing.Dict[str, typing.Any]:
return { return {
"apple_store_badge": apple_store_badge, "apple_store_badge": apple_store_badge,
"play_store_badge": play_store_badge,
} }

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

@@ -32,7 +32,7 @@
{%- endif -%} {%- endif -%}
<div class="install-buttons"> <div class="install-buttons">
<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='{{ play_store_badge() }}' class="play"/></a></li>
{%- if apple_store_url -%} {%- if apple_store_url -%}
<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> <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 -%}

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: 2024-04-30 10:52+0100\n" "POT-Creation-Date: 2024-08-11 16:36+0200\n"
"PO-Revision-Date: 2022-05-30 14:01+0000\n" "PO-Revision-Date: 2022-05-30 14:01+0000\n"
"Last-Translator: Daniel Holmgaard <fovatis@tutanota.com>\n" "Last-Translator: Daniel Holmgaard <fovatis@tutanota.com>\n"
"Language-Team: Danish <http://i18n.sotecware.net/projects/snikket/web-portal/" "Language-Team: Danish <http://i18n.sotecware.net/projects/snikket/web-portal/"
@@ -353,7 +353,7 @@ msgstr ""
"fil i XEP-0227-format (forudsat format: %(mimetype)s)." "fil i XEP-0227-format (forudsat format: %(mimetype)s)."
#: snikket_web/invite.py:299 snikket_web/templates/unauth.html:18 #: snikket_web/invite.py:299 snikket_web/templates/unauth.html:18
#: snikket_web/user.py:189 #: snikket_web/user.py:192
msgid "Error" msgid "Error"
msgstr "Fejl" msgstr "Fejl"
@@ -425,15 +425,15 @@ msgstr "Kontodata"
msgid "Upload" msgid "Upload"
msgstr "Upload" msgstr "Upload"
#: snikket_web/user.py:122 #: snikket_web/user.py:125
msgid "Incorrect password." msgid "Incorrect password."
msgstr "Forkert adgangskode." msgstr "Forkert adgangskode."
#: snikket_web/user.py:126 #: snikket_web/user.py:129
msgid "Password changed" msgid "Password changed"
msgstr "Adgangskode ændret" msgstr "Adgangskode ændret"
#: snikket_web/user.py:134 #: snikket_web/user.py:137
msgid "" msgid ""
"The chosen avatar is too big. To be able to upload larger avatars, please " "The chosen avatar is too big. To be able to upload larger avatars, please "
"use the app." "use the app."
@@ -441,15 +441,15 @@ msgstr ""
"Den valgte avatar er for stor. For at kunne uploade større avatarer skal du " "Den valgte avatar er for stor. For at kunne uploade større avatarer skal du "
"bruge appen." "bruge appen."
#: snikket_web/user.py:181 #: snikket_web/user.py:184
msgid "Profile updated" msgid "Profile updated"
msgstr "Profil opdateret" msgstr "Profil opdateret"
#: snikket_web/user.py:195 #: snikket_web/user.py:198
msgid "Export" msgid "Export"
msgstr "Exporter" msgstr "Exporter"
#: snikket_web/user.py:213 #: snikket_web/user.py:216
msgid "You currently have no account data to export." msgid "You currently have no account data to export."
msgstr "Du har i øjeblikket ingen kontodata at eksportere." msgstr "Du har i øjeblikket ingen kontodata at eksportere."

View File

@@ -7,7 +7,7 @@ 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: 2024-04-30 10:52+0100\n" "POT-Creation-Date: 2024-08-11 16:36+0200\n"
"PO-Revision-Date: 2024-01-03 16:08+0000\n" "PO-Revision-Date: 2024-01-03 16:08+0000\n"
"Last-Translator: Jonas Schäfer <jonas@zombofant.net>\n" "Last-Translator: Jonas Schäfer <jonas@zombofant.net>\n"
"Language-Team: German <http://i18n.sotecware.net/projects/snikket/web-portal/" "Language-Team: German <http://i18n.sotecware.net/projects/snikket/web-portal/"
@@ -340,7 +340,7 @@ msgstr ""
"im XEP-0227-Format verarbeitet werden (erhaltenes Format: %(mimetype)s)." "im XEP-0227-Format verarbeitet werden (erhaltenes Format: %(mimetype)s)."
#: snikket_web/invite.py:299 snikket_web/templates/unauth.html:18 #: snikket_web/invite.py:299 snikket_web/templates/unauth.html:18
#: snikket_web/user.py:189 #: snikket_web/user.py:192
msgid "Error" msgid "Error"
msgstr "Fehler" msgstr "Fehler"
@@ -412,15 +412,15 @@ msgstr "Kontodaten"
msgid "Upload" msgid "Upload"
msgstr "Hochladen" msgstr "Hochladen"
#: snikket_web/user.py:122 #: snikket_web/user.py:125
msgid "Incorrect password." msgid "Incorrect password."
msgstr "Ungültiges Passwort." msgstr "Ungültiges Passwort."
#: snikket_web/user.py:126 #: snikket_web/user.py:129
msgid "Password changed" msgid "Password changed"
msgstr "Passwort geändert" msgstr "Passwort geändert"
#: snikket_web/user.py:134 #: snikket_web/user.py:137
msgid "" msgid ""
"The chosen avatar is too big. To be able to upload larger avatars, please " "The chosen avatar is too big. To be able to upload larger avatars, please "
"use the app." "use the app."
@@ -428,15 +428,15 @@ msgstr ""
"Das gewählte Profilbild ist zu groß. Benutze die App um größere Bilder " "Das gewählte Profilbild ist zu groß. Benutze die App um größere Bilder "
"hochladen zu können." "hochladen zu können."
#: snikket_web/user.py:181 #: snikket_web/user.py:184
msgid "Profile updated" msgid "Profile updated"
msgstr "Profil gespeichert" msgstr "Profil gespeichert"
#: snikket_web/user.py:195 #: snikket_web/user.py:198
msgid "Export" msgid "Export"
msgstr "Exportieren" msgstr "Exportieren"
#: snikket_web/user.py:213 #: snikket_web/user.py:216
msgid "You currently have no account data to export." msgid "You currently have no account data to export."
msgstr "Du hast derzeit keine Kontodaten, die exportiert werden können." msgstr "Du hast derzeit keine Kontodaten, die exportiert werden können."

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: 2024-04-30 10:52+0100\n" "POT-Creation-Date: 2024-08-11 16:36+0200\n"
"PO-Revision-Date: 2021-06-19 15:01+0000\n" "PO-Revision-Date: 2021-06-19 15: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/web-" "Language-Team: English <https://i18n.sotecware.net/projects/snikket/web-"
@@ -391,7 +391,7 @@ msgid ""
msgstr "" msgstr ""
#: snikket_web/invite.py:299 snikket_web/templates/unauth.html:18 #: snikket_web/invite.py:299 snikket_web/templates/unauth.html:18
#: snikket_web/user.py:189 #: snikket_web/user.py:192
msgid "Error" msgid "Error"
msgstr "" msgstr ""
@@ -465,35 +465,35 @@ msgstr ""
msgid "Upload" msgid "Upload"
msgstr "" msgstr ""
#: snikket_web/user.py:122 #: snikket_web/user.py:125
#, fuzzy #, fuzzy
#| msgid "Incorrect password" #| msgid "Incorrect password"
msgid "Incorrect password." msgid "Incorrect password."
msgstr "Incorrect password" msgstr "Incorrect password"
#: snikket_web/user.py:126 #: snikket_web/user.py:129
#, fuzzy #, fuzzy
#| msgid "Password change failed" #| msgid "Password change failed"
msgid "Password changed" msgid "Password changed"
msgstr "Password change failed" msgstr "Password change failed"
#: snikket_web/user.py:134 #: snikket_web/user.py:137
msgid "" msgid ""
"The chosen avatar is too big. To be able to upload larger avatars, please " "The chosen avatar is too big. To be able to upload larger avatars, please "
"use the app." "use the app."
msgstr "" msgstr ""
#: snikket_web/user.py:181 #: snikket_web/user.py:184
#, fuzzy #, fuzzy
#| msgid "Profile" #| msgid "Profile"
msgid "Profile updated" msgid "Profile updated"
msgstr "Profile" msgstr "Profile"
#: snikket_web/user.py:195 #: snikket_web/user.py:198
msgid "Export" msgid "Export"
msgstr "" msgstr ""
#: snikket_web/user.py:213 #: snikket_web/user.py:216
msgid "You currently have no account data to export." msgid "You currently have no account data to export."
msgstr "" msgstr ""

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: 2024-04-30 10:52+0100\n" "POT-Creation-Date: 2024-08-11 16:36+0200\n"
"PO-Revision-Date: 2021-06-19 15:01+0000\n" "PO-Revision-Date: 2021-06-19 15:01+0000\n"
"Last-Translator: Jonas Schäfer <jonas@zombofant.net>\n" "Last-Translator: Jonas Schäfer <jonas@zombofant.net>\n"
"Language-Team: English (United Kingdom) <https://i18n.sotecware.net/projects/" "Language-Team: English (United Kingdom) <https://i18n.sotecware.net/projects/"
@@ -391,7 +391,7 @@ msgid ""
msgstr "" msgstr ""
#: snikket_web/invite.py:299 snikket_web/templates/unauth.html:18 #: snikket_web/invite.py:299 snikket_web/templates/unauth.html:18
#: snikket_web/user.py:189 #: snikket_web/user.py:192
msgid "Error" msgid "Error"
msgstr "" msgstr ""
@@ -467,35 +467,35 @@ msgstr ""
msgid "Upload" msgid "Upload"
msgstr "" msgstr ""
#: snikket_web/user.py:122 #: snikket_web/user.py:125
#, fuzzy #, fuzzy
#| msgid "Incorrect password" #| msgid "Incorrect password"
msgid "Incorrect password." msgid "Incorrect password."
msgstr "Incorrect password" msgstr "Incorrect password"
#: snikket_web/user.py:126 #: snikket_web/user.py:129
#, fuzzy #, fuzzy
#| msgid "Password change failed" #| msgid "Password change failed"
msgid "Password changed" msgid "Password changed"
msgstr "Password change failed" msgstr "Password change failed"
#: snikket_web/user.py:134 #: snikket_web/user.py:137
msgid "" msgid ""
"The chosen avatar is too big. To be able to upload larger avatars, please " "The chosen avatar is too big. To be able to upload larger avatars, please "
"use the app." "use the app."
msgstr "" msgstr ""
#: snikket_web/user.py:181 #: snikket_web/user.py:184
#, fuzzy #, fuzzy
#| msgid "Profile" #| msgid "Profile"
msgid "Profile updated" msgid "Profile updated"
msgstr "Profile" msgstr "Profile"
#: snikket_web/user.py:195 #: snikket_web/user.py:198
msgid "Export" msgid "Export"
msgstr "" msgstr ""
#: snikket_web/user.py:213 #: snikket_web/user.py:216
msgid "You currently have no account data to export." msgid "You currently have no account data to export."
msgstr "" msgstr ""

View File

@@ -6,12 +6,12 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PROJECT VERSION\n" "Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: translations@snikket.org\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-04-30 10:52+0100\n" "POT-Creation-Date: 2024-08-11 16:36+0200\n"
"PO-Revision-Date: 2024-05-06 05:04+0000\n" "PO-Revision-Date: 2024-05-06 05:04+0000\n"
"Last-Translator: J👀 <j@upsub.me>\n" "Last-Translator: J👀 <j@upsub.me>\n"
"Language-Team: Spanish <http://i18n.sotecware.net/projects/snikket/" "Language-Team: Spanish <http://i18n.sotecware.net/projects/snikket/web-"
"web-portal/es/>\n" "portal/es/>\n"
"Language: es\n" "Language: es\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"
@@ -343,7 +343,7 @@ msgstr ""
"facilitado: %(mimetype)s)." "facilitado: %(mimetype)s)."
#: snikket_web/invite.py:299 snikket_web/templates/unauth.html:18 #: snikket_web/invite.py:299 snikket_web/templates/unauth.html:18
#: snikket_web/user.py:189 #: snikket_web/user.py:192
msgid "Error" msgid "Error"
msgstr "Error" msgstr "Error"
@@ -415,15 +415,15 @@ msgstr "Datos de la cuenta"
msgid "Upload" msgid "Upload"
msgstr "Subida" msgstr "Subida"
#: snikket_web/user.py:122 #: snikket_web/user.py:125
msgid "Incorrect password." msgid "Incorrect password."
msgstr "Contraseña incorrecta." msgstr "Contraseña incorrecta."
#: snikket_web/user.py:126 #: snikket_web/user.py:129
msgid "Password changed" msgid "Password changed"
msgstr "Contraseña cambiada" msgstr "Contraseña cambiada"
#: snikket_web/user.py:134 #: snikket_web/user.py:137
msgid "" msgid ""
"The chosen avatar is too big. To be able to upload larger avatars, please " "The chosen avatar is too big. To be able to upload larger avatars, please "
"use the app." "use the app."
@@ -431,15 +431,15 @@ msgstr ""
"El avatar elegido es demasiado grande. Para poder subir avatares más " "El avatar elegido es demasiado grande. Para poder subir avatares más "
"grandes, utilice la aplicación, por favor." "grandes, utilice la aplicación, por favor."
#: snikket_web/user.py:181 #: snikket_web/user.py:184
msgid "Profile updated" msgid "Profile updated"
msgstr "Perfil actualizado" msgstr "Perfil actualizado"
#: snikket_web/user.py:195 #: snikket_web/user.py:198
msgid "Export" msgid "Export"
msgstr "Exportar" msgstr "Exportar"
#: snikket_web/user.py:213 #: snikket_web/user.py:216
msgid "You currently have no account data to export." msgid "You currently have no account data to export."
msgstr "No dispone actualmente de datos de cuenta para exportar." msgstr "No dispone actualmente de datos de cuenta para exportar."
@@ -1428,8 +1428,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 ""
"En esta página puedes restablecer la contraseña de tu cuenta, " "En esta página puedes restablecer la contraseña de tu cuenta, <strong>"
"<strong>%(account_jid)s</strong>, una vez." "%(account_jid)s</strong>, una vez."
#: snikket_web/templates/invite_reset_view.html:17 #: snikket_web/templates/invite_reset_view.html:17
msgid "Using the app" msgid "Using the app"
@@ -1518,8 +1518,8 @@ msgid ""
"You can now safely close this page, or log in to the web portal to <a href=" "You can now safely close this page, or log in to the web portal to <a href="
"\"%(login_url)s\">manage your account</a>." "\"%(login_url)s\">manage your account</a>."
msgstr "" msgstr ""
"Puedes cerrar esta página o entrar en sesión al portal web para <a href=\"" "Puedes cerrar esta página o entrar en sesión al portal web para <a href="
"%(login_url)s\">gestionar tu cuenta</a>." "\"%(login_url)s\">gestionar tu cuenta</a>."
#: snikket_web/templates/invite_success.html:21 #: snikket_web/templates/invite_success.html:21
msgid "Import successful" msgid "Import successful"
@@ -1595,9 +1595,9 @@ 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 ""
"Instala la App Snikket en tu dispositivo Android (<a href=\"%(ios_info_url)" "Instala la App Snikket en tu dispositivo Android (<a href=\"%(ios_info_url)s"
"s\" rel=\"noopener noreferrer\" target=\"_blank\">¡iOS disponible en " "\" rel=\"noopener noreferrer\" target=\"_blank\">¡iOS disponible en breve!</"
"breve!</a>)." "a>)."
#: snikket_web/templates/invite_view.html:35 #: snikket_web/templates/invite_view.html:35
msgid "Get it on Google Play" msgid "Get it on Google Play"
@@ -1632,8 +1632,8 @@ msgid ""
"\">register an account manually</a>." "\">register an account manually</a>."
msgstr "" msgstr ""
"Puedes conectarte a Snikket usando software compatible con XMPP. Si el botón " "Puedes conectarte a Snikket usando software compatible con XMPP. Si el botón "
"de arriba no funciona con tu app, puede que necesites <a href=\"" "de arriba no funciona con tu app, puede que necesites <a href="
"%(register_url)s\">registrar una cuenta manualmente</a>." "\"%(register_url)s\">registrar una cuenta manualmente</a>."
#: snikket_web/templates/invite_view.html:59 #: snikket_web/templates/invite_view.html:59
msgid "Scan invite code" msgid "Scan invite code"
@@ -1780,8 +1780,8 @@ msgid ""
"This Snikket service only hosts addresses ending in <em>@%(snikket_domain)s</" "This Snikket service only hosts addresses ending in <em>@%(snikket_domain)s</"
"em>. Your password was not sent." "em>. Your password was not sent."
msgstr "" msgstr ""
"El servicio Snikket sólo aloja direcciones que terminan en " "El servicio Snikket sólo aloja direcciones que terminan en <em>@"
"<em>@%(snikket_domain)s</em>. Tu contraseña no se envió." "%(snikket_domain)s</em>. Tu contraseña no se envió."
#: snikket_web/templates/policies.html:4 snikket_web/templates/policies.html:10 #: snikket_web/templates/policies.html:4 snikket_web/templates/policies.html:10
msgid "Policies" msgid "Policies"

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: 2024-04-30 10:52+0100\n" "POT-Creation-Date: 2024-08-11 16:36+0200\n"
"PO-Revision-Date: 2021-03-31 13:00+0000\n" "PO-Revision-Date: 2021-03-31 13:00+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/"
@@ -377,7 +377,7 @@ msgid ""
msgstr "" msgstr ""
#: snikket_web/invite.py:299 snikket_web/templates/unauth.html:18 #: snikket_web/invite.py:299 snikket_web/templates/unauth.html:18
#: snikket_web/user.py:189 #: snikket_web/user.py:192
msgid "Error" msgid "Error"
msgstr "" msgstr ""
@@ -451,33 +451,33 @@ msgstr ""
msgid "Upload" msgid "Upload"
msgstr "" msgstr ""
#: snikket_web/user.py:122 #: snikket_web/user.py:125
#, fuzzy #, fuzzy
#| msgid "Incorrect password" #| msgid "Incorrect password"
msgid "Incorrect password." msgid "Incorrect password."
msgstr "Contraseña incorrecta" msgstr "Contraseña incorrecta"
#: snikket_web/user.py:126 #: snikket_web/user.py:129
#, fuzzy #, fuzzy
#| msgid "Password" #| msgid "Password"
msgid "Password changed" msgid "Password changed"
msgstr "Contraseña" msgstr "Contraseña"
#: snikket_web/user.py:134 #: snikket_web/user.py:137
msgid "" msgid ""
"The chosen avatar is too big. To be able to upload larger avatars, please " "The chosen avatar is too big. To be able to upload larger avatars, please "
"use the app." "use the app."
msgstr "" msgstr ""
#: snikket_web/user.py:181 #: snikket_web/user.py:184
msgid "Profile updated" msgid "Profile updated"
msgstr "" msgstr ""
#: snikket_web/user.py:195 #: snikket_web/user.py:198
msgid "Export" msgid "Export"
msgstr "" msgstr ""
#: snikket_web/user.py:213 #: snikket_web/user.py:216
msgid "You currently have no account data to export." msgid "You currently have no account data to export."
msgstr "" msgstr ""

View File

@@ -6,8 +6,8 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PROJECT VERSION\n" "Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: translations@snikket.org\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-04-30 10:52+0100\n" "POT-Creation-Date: 2024-08-11 16:36+0200\n"
"PO-Revision-Date: 2024-05-02 21:15+0000\n" "PO-Revision-Date: 2024-05-02 21:15+0000\n"
"Last-Translator: BetaRays <BetaRays@proton.me>\n" "Last-Translator: BetaRays <BetaRays@proton.me>\n"
"Language-Team: French <http://i18n.sotecware.net/projects/snikket/web-portal/" "Language-Team: French <http://i18n.sotecware.net/projects/snikket/web-portal/"
@@ -342,7 +342,7 @@ msgstr ""
"fourni: %(mimetype)s)." "fourni: %(mimetype)s)."
#: snikket_web/invite.py:299 snikket_web/templates/unauth.html:18 #: snikket_web/invite.py:299 snikket_web/templates/unauth.html:18
#: snikket_web/user.py:189 #: snikket_web/user.py:192
msgid "Error" msgid "Error"
msgstr "Erreur" msgstr "Erreur"
@@ -414,15 +414,15 @@ msgstr "Données du compte"
msgid "Upload" msgid "Upload"
msgstr "Télécharger" msgstr "Télécharger"
#: snikket_web/user.py:122 #: snikket_web/user.py:125
msgid "Incorrect password." msgid "Incorrect password."
msgstr "Mot de passe incorrect." msgstr "Mot de passe incorrect."
#: snikket_web/user.py:126 #: snikket_web/user.py:129
msgid "Password changed" msgid "Password changed"
msgstr "Mot de passe changé" msgstr "Mot de passe changé"
#: snikket_web/user.py:134 #: snikket_web/user.py:137
msgid "" msgid ""
"The chosen avatar is too big. To be able to upload larger avatars, please " "The chosen avatar is too big. To be able to upload larger avatars, please "
"use the app." "use the app."
@@ -430,15 +430,15 @@ msgstr ""
"Lavatar choisi est trop gros. Pour utiliser un avatar aussi large, veuillez " "Lavatar choisi est trop gros. Pour utiliser un avatar aussi large, veuillez "
"utiliser lapplication." "utiliser lapplication."
#: snikket_web/user.py:181 #: snikket_web/user.py:184
msgid "Profile updated" msgid "Profile updated"
msgstr "Profil mis à jour" msgstr "Profil mis à jour"
#: snikket_web/user.py:195 #: snikket_web/user.py:198
msgid "Export" msgid "Export"
msgstr "Exporter" msgstr "Exporter"
#: snikket_web/user.py:213 #: snikket_web/user.py:216
msgid "You currently have no account data to export." msgid "You currently have no account data to export."
msgstr "Vous navez actuellement aucune donnée de compte à exporter." msgstr "Vous navez actuellement aucune donnée de compte à exporter."
@@ -661,7 +661,8 @@ msgstr ""
#: snikket_web/templates/admin_create_invite_form.html:16 #: snikket_web/templates/admin_create_invite_form.html:16
msgid "" msgid ""
"Choose whether this invitation link will allow more than one person to join." "Choose whether this invitation link will allow more than one person to join."
msgstr "Choisissez si ce lien dinvitation pourra être utilisé plus dune fois." msgstr ""
"Choisissez si ce lien dinvitation pourra être utilisé plus dune fois."
#: snikket_web/templates/admin_create_invite_form.html:21 #: snikket_web/templates/admin_create_invite_form.html:21
#, python-format #, python-format

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: 2024-04-30 10:52+0100\n" "POT-Creation-Date: 2024-08-11 16:36+0200\n"
"PO-Revision-Date: 2023-12-15 16:11+0000\n" "PO-Revision-Date: 2024-07-18 17:07+0000\n"
"Last-Translator: uira <inboxriau@illiyy.in>\n" "Last-Translator: uira <inboxriau@illiyy.in>\n"
"Language-Team: Indonesian <http://i18n.sotecware.net/projects/snikket/web-" "Language-Team: Indonesian <http://i18n.sotecware.net/projects/snikket/web-"
"portal/id/>\n" "portal/id/>\n"
@@ -41,7 +41,7 @@ msgstr "Terbatas"
#: snikket_web/admin.py:80 snikket_web/admin.py:298 #: snikket_web/admin.py:80 snikket_web/admin.py:298
msgid "Normal user" msgid "Normal user"
msgstr "Pengguna normal" msgstr "Pengguna biasa"
#: snikket_web/admin.py:81 snikket_web/admin.py:299 #: snikket_web/admin.py:81 snikket_web/admin.py:299
msgid "Administrator" msgid "Administrator"
@@ -149,7 +149,7 @@ msgstr "Grup"
#: snikket_web/admin.py:305 #: snikket_web/admin.py:305
msgid "Comment (optional)" msgid "Comment (optional)"
msgstr "" msgstr "Komentar (opsional)"
#: snikket_web/admin.py:309 #: snikket_web/admin.py:309
msgid "New invitation link" msgid "New invitation link"
@@ -215,7 +215,7 @@ msgstr "Pengguna dihapus dari kelompok"
#: snikket_web/admin.py:594 #: snikket_web/admin.py:594
msgid "Chat removed from circle" msgid "Chat removed from circle"
msgstr "Chat dihapus dari lingkaran" msgstr "Chat dihapus dari kelompok"
#: snikket_web/admin.py:612 #: snikket_web/admin.py:612
msgid "Delete circle permanently" msgid "Delete circle permanently"
@@ -235,7 +235,7 @@ msgstr "Buat grup chat"
#: snikket_web/admin.py:688 #: snikket_web/admin.py:688
msgid "New group chat added to circle" msgid "New group chat added to circle"
msgstr "Grup chat baru ditambahkan ke lingkaran" msgstr "Grup chat baru ditambahkan ke kelompok"
#: snikket_web/admin.py:755 #: snikket_web/admin.py:755
msgid "Message contents" msgid "Message contents"
@@ -341,7 +341,7 @@ msgstr ""
"file XML dalam format XEP-0227 (format yang disediakan: %(mimetype)s)." "file XML dalam format XEP-0227 (format yang disediakan: %(mimetype)s)."
#: snikket_web/invite.py:299 snikket_web/templates/unauth.html:18 #: snikket_web/invite.py:299 snikket_web/templates/unauth.html:18
#: snikket_web/user.py:189 #: snikket_web/user.py:192
msgid "Error" msgid "Error"
msgstr "Kesalahan" msgstr "Kesalahan"
@@ -413,15 +413,15 @@ msgstr "Data akun"
msgid "Upload" msgid "Upload"
msgstr "Unggah" msgstr "Unggah"
#: snikket_web/user.py:122 #: snikket_web/user.py:125
msgid "Incorrect password." msgid "Incorrect password."
msgstr "Kata sandi salah." msgstr "Kata sandi salah."
#: snikket_web/user.py:126 #: snikket_web/user.py:129
msgid "Password changed" msgid "Password changed"
msgstr "Kata sandi diganti" msgstr "Kata sandi diganti"
#: snikket_web/user.py:134 #: snikket_web/user.py:137
msgid "" msgid ""
"The chosen avatar is too big. To be able to upload larger avatars, please " "The chosen avatar is too big. To be able to upload larger avatars, please "
"use the app." "use the app."
@@ -429,15 +429,15 @@ msgstr ""
"Avatar yang dipilih terlalu besar. Untuk dapat mengunggah avatar yang lebih " "Avatar yang dipilih terlalu besar. Untuk dapat mengunggah avatar yang lebih "
"besar, sila gunakan aplikasi." "besar, sila gunakan aplikasi."
#: snikket_web/user.py:181 #: snikket_web/user.py:184
msgid "Profile updated" msgid "Profile updated"
msgstr "Profil diperbarui" msgstr "Profil diperbarui"
#: snikket_web/user.py:195 #: snikket_web/user.py:198
msgid "Export" msgid "Export"
msgstr "Ekspor" msgstr "Ekspor"
#: snikket_web/user.py:213 #: snikket_web/user.py:216
msgid "You currently have no account data to export." msgid "You currently have no account data to export."
msgstr "Anda tidak memiliki data akun untuk diekspor." msgstr "Anda tidak memiliki data akun untuk diekspor."
@@ -560,7 +560,7 @@ msgid ""
"each other on your service." "each other on your service."
msgstr "" msgstr ""
"<em>Kelompok</em> bertujuan untuk membantu orang-orang yang berada di " "<em>Kelompok</em> bertujuan untuk membantu orang-orang yang berada di "
"lingkaran sosial yang sama bertemu di layanan Anda." "kelompok sosial yang sama bertemu di layanan Anda."
#: snikket_web/templates/admin_circles.html:6 #: snikket_web/templates/admin_circles.html:6
msgid "" msgid ""
@@ -568,9 +568,9 @@ msgid ""
"In addition, each circle may have group chats where the circle members are " "In addition, each circle may have group chats where the circle members are "
"included." "included."
msgstr "" msgstr ""
"Pengguna yang berada di lingkaran yang sama akan melihat satu sama lain di " "Pengguna yang berada di kelompok yang sama akan melihat satu sama lain di "
"daftar kontak mereka. Selain itu, setiap lingkaran mungkin memiliki grup " "daftar kontak mereka. Selain itu, setiap kelompok mungkin memiliki grup chat "
"chat yang berisikan anggota lingkaran." "yang berisikan anggota kelompok."
#: snikket_web/templates/admin_circles.html:13 #: snikket_web/templates/admin_circles.html:13
msgid "Circle name" msgid "Circle name"
@@ -627,8 +627,8 @@ msgstr "Buat grup chat kelompok baru"
#: snikket_web/templates/admin_create_circle_group_chat_form.html:6 #: snikket_web/templates/admin_create_circle_group_chat_form.html:6
msgid "Add a chat to your circle so its members can hold group discussions." msgid "Add a chat to your circle so its members can hold group discussions."
msgstr "" msgstr ""
"Tambahkan chat ke lingkaran Anda sehingga anggotanya dapat mengadakan " "Tambahkan chat ke kelompok Anda sehingga anggotanya dapat mengadakan diskusi "
"diskusi grup." "grup."
#: snikket_web/templates/admin_create_circle_group_chat_form.html:7 #: snikket_web/templates/admin_create_circle_group_chat_form.html:7
msgid "Tip:" msgid "Tip:"
@@ -641,7 +641,7 @@ msgid ""
"Snikket app instead." "Snikket app instead."
msgstr "" msgstr ""
"Ini hanya untuk membuat grup chat yang secara otomatis menyertakan " "Ini hanya untuk membuat grup chat yang secara otomatis menyertakan "
"<em>semua</em> anggota lingkaran. Jika Anda ingin grup chat normal, buatlah " "<em>semua</em> anggota kelompok. Jika Anda ingin grup chat biasa, buatlah "
"melalui aplikasi Snikket." "melalui aplikasi Snikket."
#: snikket_web/templates/admin_create_invite.html:3 #: snikket_web/templates/admin_create_invite.html:3
@@ -665,13 +665,15 @@ msgstr ""
msgid "" msgid ""
"Choose whether this invitation link will allow more than one person to join." "Choose whether this invitation link will allow more than one person to join."
msgstr "" msgstr ""
"Pilih apakah tautan undangan ini akan dipakai lebih dari satu orang untuk "
"bergabung."
#: snikket_web/templates/admin_create_invite_form.html:21 #: snikket_web/templates/admin_create_invite_form.html:21
#, fuzzy, python-format #, python-format
#| msgid "<strong>%(title)s%(icon)s</strong><p>%(description)s</p>"
msgid "" msgid ""
"<span class=\"invite-type\">%(title)s%(icon)s</span><p>%(description)s</p>" "<span class=\"invite-type\">%(title)s%(icon)s</span><p>%(description)s</p>"
msgstr "<strong>%(title)s%(icon)s</strong><p>%(description)s</p>" msgstr ""
"<span class=\"invite-type\">%(title)s%(icon)s</span><p>%(description)s</p>"
#: snikket_web/templates/admin_create_invite_form.html:34 #: snikket_web/templates/admin_create_invite_form.html:34
#: snikket_web/templates/admin_edit_user.html:38 #: snikket_web/templates/admin_edit_user.html:38
@@ -683,11 +685,11 @@ msgstr ""
"layanan Snikket Anda." "layanan Snikket Anda."
#: snikket_web/templates/admin_create_invite_form.html:38 #: snikket_web/templates/admin_create_invite_form.html:38
#, fuzzy, python-format #, python-format
#| msgid "<strong>%(title)s%(icon)s</strong><p>%(description)s</p>"
msgid "" msgid ""
"<span class=\"access-level\">%(title)s%(icon)s</span><p>%(description)s</p>" "<span class=\"access-level\">%(title)s%(icon)s</span><p>%(description)s</p>"
msgstr "<strong>%(title)s%(icon)s</strong><p>%(description)s</p>" msgstr ""
"<span class=\"access-level\">%(title)s%(icon)s</span><p>%(description)s</p>"
#: snikket_web/templates/admin_debug_user.html:8 #: snikket_web/templates/admin_debug_user.html:8
#, python-format #, python-format
@@ -804,7 +806,7 @@ msgstr "Grup chat"
#: snikket_web/templates/admin_edit_circle.html:39 #: snikket_web/templates/admin_edit_circle.html:39
msgid "These group chats will be available to all members of the circle." msgid "These group chats will be available to all members of the circle."
msgstr "Grup chat ini akan tersedia untuk semua anggota lingkaran." msgstr "Grup chat ini akan tersedia untuk semua anggota kelompok."
#: snikket_web/templates/admin_edit_circle.html:53 #: snikket_web/templates/admin_edit_circle.html:53
#, python-format #, python-format
@@ -813,7 +815,7 @@ msgstr "Hapus grup chat '%(name)s'"
#: snikket_web/templates/admin_edit_circle.html:61 #: snikket_web/templates/admin_edit_circle.html:61
msgid "This circle currently has no group chats." msgid "This circle currently has no group chats."
msgstr "Lingkaran ini sedang tidak memiliki grup chat." msgstr "kelompok ini sedang tidak memiliki grup chat."
#: snikket_web/templates/admin_edit_circle.html:64 #: snikket_web/templates/admin_edit_circle.html:64
msgid "Add group chat" msgid "Add group chat"
@@ -825,7 +827,7 @@ msgstr "Anggota kelompok"
#: snikket_web/templates/admin_edit_circle.html:68 #: snikket_web/templates/admin_edit_circle.html:68
msgid "All members of the circle will see each other in their contact list." msgid "All members of the circle will see each other in their contact list."
msgstr "Semua anggota lingkaran akan saling terlihat di daftar kontak mereka." msgstr "Semua anggota kelompok akan saling terlihat di daftar kontak mereka."
#: snikket_web/templates/admin_edit_circle.html:84 #: snikket_web/templates/admin_edit_circle.html:84
msgid "The user has been deleted from the server." msgid "The user has been deleted from the server."
@@ -876,10 +878,8 @@ msgid "Link"
msgstr "Tautan" msgstr "Tautan"
#: snikket_web/templates/admin_edit_invite.html:16 #: snikket_web/templates/admin_edit_invite.html:16
#, fuzzy
#| msgid "Invitation type"
msgid "Invitation to Snikket" msgid "Invitation to Snikket"
msgstr "Jenis undangan" msgstr "Undangan Snikket"
#: snikket_web/templates/admin_edit_invite.html:23 #: snikket_web/templates/admin_edit_invite.html:23
#: snikket_web/templates/admin_home.html:19 #: snikket_web/templates/admin_home.html:19
@@ -1093,7 +1093,7 @@ msgstr "Kadaluarsa"
#: snikket_web/templates/admin_invites.html:24 #: snikket_web/templates/admin_invites.html:24
msgid "Comment" msgid "Comment"
msgstr "" msgstr "Komentar"
#: snikket_web/templates/admin_invites.html:46 #: snikket_web/templates/admin_invites.html:46
msgid "Show invite details" msgid "Show invite details"
@@ -1104,10 +1104,8 @@ msgid "Copy invite link to clipboard"
msgstr "Salin tautan undangan ke papan klip" msgstr "Salin tautan undangan ke papan klip"
#: snikket_web/templates/admin_invites.html:52 #: snikket_web/templates/admin_invites.html:52
#, fuzzy
#| msgid "New invitation link"
msgid "Share invitation link" msgid "Share invitation link"
msgstr "Tautan undangan baru" msgstr "Bagikan tautan undangan"
#: snikket_web/templates/admin_invites.html:55 #: snikket_web/templates/admin_invites.html:55
msgid "Delete invitation" msgid "Delete invitation"
@@ -1203,28 +1201,24 @@ msgid "Storage used by shared files"
msgstr "Penyimpanan yang digunakan oleh file bersama" msgstr "Penyimpanan yang digunakan oleh file bersama"
#: snikket_web/templates/admin_system.html:79 #: snikket_web/templates/admin_system.html:79
#, fuzzy
#| msgid "Update user"
msgid "Active users" msgid "Active users"
msgstr "Memperbarui pengguna" msgstr "Pengguna aktif"
#: snikket_web/templates/admin_system.html:83 #: snikket_web/templates/admin_system.html:83
#, fuzzy
#| msgid "Connected devices"
msgid "Connected now:" msgid "Connected now:"
msgstr "Perangkat terhubung" msgstr "Terhubung sekarang:"
#: snikket_web/templates/admin_system.html:88 #: snikket_web/templates/admin_system.html:88
msgid "Past 24 hours:" msgid "Past 24 hours:"
msgstr "" msgstr "24 jam terakhir:"
#: snikket_web/templates/admin_system.html:89 #: snikket_web/templates/admin_system.html:89
msgid "Past 7 days:" msgid "Past 7 days:"
msgstr "" msgstr "7 hari terakhir:"
#: snikket_web/templates/admin_system.html:90 #: snikket_web/templates/admin_system.html:90
msgid "Past 30 days:" msgid "Past 30 days:"
msgstr "" msgstr "30 hari terakhir:"
#: snikket_web/templates/admin_system.html:97 #: snikket_web/templates/admin_system.html:97
msgid "Broadcast message" msgid "Broadcast message"
@@ -1720,7 +1714,7 @@ msgstr "Salin tautan"
#: snikket_web/templates/library.j2:43 #: snikket_web/templates/library.j2:43
msgid "Share" msgid "Share"
msgstr "" msgstr "Bagikan"
#: snikket_web/templates/library.j2:125 #: snikket_web/templates/library.j2:125
msgid "Invalid input" msgid "Invalid input"
@@ -1747,14 +1741,13 @@ msgid "Like normal users and can access the admin panel in the web portal."
msgstr "Seperti pengguna biasa dan dapat mengakses panel admin di portal web." msgstr "Seperti pengguna biasa dan dapat mengakses panel admin di portal web."
#: snikket_web/templates/library.j2:184 #: snikket_web/templates/library.j2:184
#, fuzzy
#| msgid "This invitation link can only be used once and is then depleted."
msgid "Invite a single person (invitation link can only be used once)." msgid "Invite a single person (invitation link can only be used once)."
msgstr "Tautan undangan ini hanya dapat digunakan satu kali." msgstr "Undang satu orang (tautan undangan hanya dapat digunakan satu kali)."
#: snikket_web/templates/library.j2:186 #: snikket_web/templates/library.j2:186
msgid "Invite a group of people (invitation link can be used multiple times)." msgid "Invite a group of people (invitation link can be used multiple times)."
msgstr "" msgstr ""
"Undang sekelompok orang (tautan undangan dapat digunakan berulang kali)."
#: snikket_web/templates/login.html:5 #: snikket_web/templates/login.html:5
msgid "Snikket Login" msgid "Snikket Login"
@@ -1826,16 +1819,16 @@ msgid "Operation successful"
msgstr "Operasi berhasil" msgstr "Operasi berhasil"
#: snikket_web/templates/user_home.html:11 #: snikket_web/templates/user_home.html:11
#, fuzzy
#| msgid "Moving to Snikket?"
msgid "Welcome to Snikket!" msgid "Welcome to Snikket!"
msgstr "Pindahkan ke Snikket?" msgstr "Selamat datang di Snikket!"
#: snikket_web/templates/user_home.html:12 #: snikket_web/templates/user_home.html:12
msgid "" msgid ""
"Now your Snikket instance is up and running, the next step is to invite " "Now your Snikket instance is up and running, the next step is to invite "
"people to join it. Family, friends, colleagues... you choose!" "people to join it. Family, friends, colleagues... you choose!"
msgstr "" msgstr ""
"Layanan Snikket Anda sudah aktif dan berjalan, langkah berikutnya adalah "
"mengundang orang untuk bergabung. Keluarga, teman, kolega... Silahkan pilih!"
#: snikket_web/templates/user_home.html:19 #: snikket_web/templates/user_home.html:19
msgid "Your account" msgid "Your account"

View File

@@ -6,12 +6,12 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PROJECT VERSION\n" "Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: translations@snikket.org\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-04-30 10:52+0100\n" "POT-Creation-Date: 2024-08-11 16:36+0200\n"
"PO-Revision-Date: 2024-05-02 21:15+0000\n" "PO-Revision-Date: 2024-05-02 21:15+0000\n"
"Last-Translator: Federico <federico@tebaldi.eu>\n" "Last-Translator: Federico <federico@tebaldi.eu>\n"
"Language-Team: Italian <http://i18n.sotecware.net/projects/snikket/" "Language-Team: Italian <http://i18n.sotecware.net/projects/snikket/web-"
"web-portal/it/>\n" "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"
@@ -342,7 +342,7 @@ msgstr ""
"fornito: %(mimetype)s)." "fornito: %(mimetype)s)."
#: snikket_web/invite.py:299 snikket_web/templates/unauth.html:18 #: snikket_web/invite.py:299 snikket_web/templates/unauth.html:18
#: snikket_web/user.py:189 #: snikket_web/user.py:192
msgid "Error" msgid "Error"
msgstr "Errore" msgstr "Errore"
@@ -414,15 +414,15 @@ msgstr "Dati dell'utenza"
msgid "Upload" msgid "Upload"
msgstr "Carica" msgstr "Carica"
#: snikket_web/user.py:122 #: snikket_web/user.py:125
msgid "Incorrect password." msgid "Incorrect password."
msgstr "Password errata." msgstr "Password errata."
#: snikket_web/user.py:126 #: snikket_web/user.py:129
msgid "Password changed" msgid "Password changed"
msgstr "Password cambiata" msgstr "Password cambiata"
#: snikket_web/user.py:134 #: snikket_web/user.py:137
msgid "" msgid ""
"The chosen avatar is too big. To be able to upload larger avatars, please " "The chosen avatar is too big. To be able to upload larger avatars, please "
"use the app." "use the app."
@@ -430,15 +430,15 @@ msgstr ""
"L'avatar scelto è troppo grande. Utilizza direttamente l'applicazione " "L'avatar scelto è troppo grande. Utilizza direttamente l'applicazione "
"Snikket per caricare un avatar così grande." "Snikket per caricare un avatar così grande."
#: snikket_web/user.py:181 #: snikket_web/user.py:184
msgid "Profile updated" msgid "Profile updated"
msgstr "Profilo aggiornato" msgstr "Profilo aggiornato"
#: snikket_web/user.py:195 #: snikket_web/user.py:198
msgid "Export" msgid "Export"
msgstr "Esportare" msgstr "Esportare"
#: snikket_web/user.py:213 #: snikket_web/user.py:216
msgid "You currently have no account data to export." msgid "You currently have no account data to export."
msgstr "Al momento non hai dati utente da esportare." msgstr "Al momento non hai dati utente da esportare."

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: 2024-04-30 10:52+0100\n" "POT-Creation-Date: 2024-08-11 16:36+0200\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-"
@@ -389,7 +389,7 @@ msgid ""
msgstr "" msgstr ""
#: snikket_web/invite.py:299 snikket_web/templates/unauth.html:18 #: snikket_web/invite.py:299 snikket_web/templates/unauth.html:18
#: snikket_web/user.py:189 #: snikket_web/user.py:192
msgid "Error" msgid "Error"
msgstr "" msgstr ""
@@ -463,35 +463,35 @@ msgstr ""
msgid "Upload" msgid "Upload"
msgstr "" msgstr ""
#: snikket_web/user.py:122 #: snikket_web/user.py:125
#, fuzzy #, fuzzy
#| msgid "Incorrect password" #| msgid "Incorrect password"
msgid "Incorrect password." msgid "Incorrect password."
msgstr "パスワード不正" msgstr "パスワード不正"
#: snikket_web/user.py:126 #: snikket_web/user.py:129
#, fuzzy #, fuzzy
#| msgid "Password reset" #| msgid "Password reset"
msgid "Password changed" msgid "Password changed"
msgstr "パスワード再設定" msgstr "パスワード再設定"
#: snikket_web/user.py:134 #: snikket_web/user.py:137
msgid "" msgid ""
"The chosen avatar is too big. To be able to upload larger avatars, please " "The chosen avatar is too big. To be able to upload larger avatars, please "
"use the app." "use the app."
msgstr "" msgstr ""
#: snikket_web/user.py:181 #: snikket_web/user.py:184
#, fuzzy #, fuzzy
#| msgid "Profile" #| msgid "Profile"
msgid "Profile updated" msgid "Profile updated"
msgstr "プロファイル" msgstr "プロファイル"
#: snikket_web/user.py:195 #: snikket_web/user.py:198
msgid "Export" msgid "Export"
msgstr "" msgstr ""
#: snikket_web/user.py:213 #: snikket_web/user.py:216
msgid "You currently have no account data to export." msgid "You currently have no account data to export."
msgstr "" msgstr ""

View File

@@ -1,21 +1,21 @@
# Translations template for PROJECT. # Translations template for PROJECT.
# Copyright (C) 2024 ORGANIZATION # Copyright (C) 2025 ORGANIZATION
# This file is distributed under the same license as the PROJECT project. # This file is distributed under the same license as the PROJECT project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024. # FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
# #
#, fuzzy #, fuzzy
msgid "" 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: 2024-04-30 10:52+0100\n" "POT-Creation-Date: 2025-04-12 20:21+0200\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"
"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"
"Generated-By: Babel 2.10.3\n" "Generated-By: Babel 2.17.0\n"
#: snikket_web/admin.py:69 snikket_web/templates/admin_delete_user.html:10 #: snikket_web/admin.py:69 snikket_web/templates/admin_delete_user.html:10
#: snikket_web/templates/admin_edit_circle.html:73 #: snikket_web/templates/admin_edit_circle.html:73
@@ -270,7 +270,7 @@ msgstr ""
msgid "Yesterday" msgid "Yesterday"
msgstr "" msgstr ""
#: snikket_web/infra.py:105 #: snikket_web/infra.py:104
#, python-format #, python-format
msgid "%(time)s ago" msgid "%(time)s ago"
msgstr "" msgstr ""
@@ -281,60 +281,60 @@ msgid ""
"contact your Snikket operator." "contact your Snikket operator."
msgstr "" msgstr ""
#: snikket_web/invite.py:114 #: snikket_web/invite.py:124
msgid "Username" msgid "Username"
msgstr "" msgstr ""
#: snikket_web/invite.py:118 snikket_web/invite.py:190 snikket_web/main.py:43 #: snikket_web/invite.py:128 snikket_web/invite.py:200 snikket_web/main.py:43
msgid "Password" msgid "Password"
msgstr "" msgstr ""
#: snikket_web/invite.py:126 snikket_web/invite.py:198 #: snikket_web/invite.py:136 snikket_web/invite.py:208
msgid "Confirm password" msgid "Confirm password"
msgstr "" msgstr ""
#: snikket_web/invite.py:130 snikket_web/invite.py:202 #: snikket_web/invite.py:140 snikket_web/invite.py:212
msgid "The passwords must match." msgid "The passwords must match."
msgstr "" msgstr ""
#: snikket_web/invite.py:135 #: snikket_web/invite.py:145
msgid "Create account" msgid "Create account"
msgstr "" msgstr ""
#: snikket_web/invite.py:162 #: snikket_web/invite.py:172
msgid "That username is already taken." msgid "That username is already taken."
msgstr "" msgstr ""
#: snikket_web/invite.py:166 snikket_web/invite.py:235 #: snikket_web/invite.py:176 snikket_web/invite.py:245
msgid "Registration was declined for unknown reasons." msgid "Registration was declined for unknown reasons."
msgstr "" msgstr ""
#: snikket_web/invite.py:170 #: snikket_web/invite.py:180
msgid "The username is not valid." msgid "The username is not valid."
msgstr "" msgstr ""
#: snikket_web/invite.py:207 snikket_web/templates/user_home.html:37 #: snikket_web/invite.py:217 snikket_web/templates/user_home.html:37
#: snikket_web/templates/user_passwd.html:29 #: snikket_web/templates/user_passwd.html:29
msgid "Change password" msgid "Change password"
msgstr "" msgstr ""
#: snikket_web/invite.py:254 #: snikket_web/invite.py:264
msgid "Account data file" msgid "Account data file"
msgstr "" msgstr ""
#: snikket_web/invite.py:258 #: snikket_web/invite.py:268
msgid "Import data" msgid "Import data"
msgstr "" msgstr ""
#: snikket_web/invite.py:279 #: snikket_web/invite.py:289
#, python-format #, python-format
msgid "" msgid ""
"The account data you tried to import is in an unknown format. Please " "The account data you tried to import is in an unknown format. Please "
"upload an XML file in XEP-0227 format (provided format: %(mimetype)s)." "upload an XML file in XEP-0227 format (provided format: %(mimetype)s)."
msgstr "" msgstr ""
#: snikket_web/invite.py:299 snikket_web/templates/unauth.html:18 #: snikket_web/invite.py:309 snikket_web/templates/unauth.html:18
#: snikket_web/user.py:189 #: snikket_web/user.py:192
msgid "Error" msgid "Error"
msgstr "" msgstr ""
@@ -406,29 +406,29 @@ msgstr ""
msgid "Upload" msgid "Upload"
msgstr "" msgstr ""
#: snikket_web/user.py:122 #: snikket_web/user.py:125
msgid "Incorrect password." msgid "Incorrect password."
msgstr "" msgstr ""
#: snikket_web/user.py:126 #: snikket_web/user.py:129
msgid "Password changed" msgid "Password changed"
msgstr "" msgstr ""
#: snikket_web/user.py:134 #: snikket_web/user.py:138
msgid "" msgid ""
"The chosen avatar is too big. To be able to upload larger avatars, please" "The chosen avatar is too big. To be able to upload larger avatars, please"
" use the app." " use the app."
msgstr "" msgstr ""
#: snikket_web/user.py:181 #: snikket_web/user.py:184
msgid "Profile updated" msgid "Profile updated"
msgstr "" msgstr ""
#: snikket_web/user.py:195 #: snikket_web/user.py:198
msgid "Export" msgid "Export"
msgstr "" msgstr ""
#: snikket_web/user.py:213 #: snikket_web/user.py:216
msgid "You currently have no account data to export." msgid "You currently have no account data to export."
msgstr "" msgstr ""

View File

@@ -6,8 +6,8 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PROJECT VERSION\n" "Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: translations@snikket.org\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-04-30 10:52+0100\n" "POT-Creation-Date: 2024-08-11 16:36+0200\n"
"PO-Revision-Date: 2024-05-07 17:04+0000\n" "PO-Revision-Date: 2024-05-07 17:04+0000\n"
"Last-Translator: misiek <migelazur@mailbox.org>\n" "Last-Translator: misiek <migelazur@mailbox.org>\n"
"Language-Team: Polish <http://i18n.sotecware.net/projects/snikket/web-portal/" "Language-Team: Polish <http://i18n.sotecware.net/projects/snikket/web-portal/"
@@ -342,7 +342,7 @@ msgstr ""
"wybrać plik w formacie XML zgodnym z XEP-0227 (podany format: %(mimetype)s)." "wybrać plik w formacie XML zgodnym z XEP-0227 (podany format: %(mimetype)s)."
#: snikket_web/invite.py:299 snikket_web/templates/unauth.html:18 #: snikket_web/invite.py:299 snikket_web/templates/unauth.html:18
#: snikket_web/user.py:189 #: snikket_web/user.py:192
msgid "Error" msgid "Error"
msgstr "Błąd" msgstr "Błąd"
@@ -414,15 +414,15 @@ msgstr "Dane konta"
msgid "Upload" msgid "Upload"
msgstr "Prześlij" msgstr "Prześlij"
#: snikket_web/user.py:122 #: snikket_web/user.py:125
msgid "Incorrect password." msgid "Incorrect password."
msgstr "Nieprawidłowe hasło." msgstr "Nieprawidłowe hasło."
#: snikket_web/user.py:126 #: snikket_web/user.py:129
msgid "Password changed" msgid "Password changed"
msgstr "Hasło zostało zmienione" msgstr "Hasło zostało zmienione"
#: snikket_web/user.py:134 #: snikket_web/user.py:137
msgid "" msgid ""
"The chosen avatar is too big. To be able to upload larger avatars, please " "The chosen avatar is too big. To be able to upload larger avatars, please "
"use the app." "use the app."
@@ -430,15 +430,15 @@ msgstr ""
"Wybrany awatar jest zbyt duży. Awatary o większych rozmiarach możesz ustawić " "Wybrany awatar jest zbyt duży. Awatary o większych rozmiarach możesz ustawić "
"korzystając z aplikacji." "korzystając z aplikacji."
#: snikket_web/user.py:181 #: snikket_web/user.py:184
msgid "Profile updated" msgid "Profile updated"
msgstr "Zaktualizowano profil" msgstr "Zaktualizowano profil"
#: snikket_web/user.py:195 #: snikket_web/user.py:198
msgid "Export" msgid "Export"
msgstr "Eksportuj" msgstr "Eksportuj"
#: snikket_web/user.py:213 #: snikket_web/user.py:216
msgid "You currently have no account data to export." msgid "You currently have no account data to export."
msgstr "Obecnie nie masz danych konta, które można wyeksportować." msgstr "Obecnie nie masz danych konta, które można wyeksportować."

View File

@@ -6,12 +6,12 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PROJECT VERSION\n" "Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: translations@snikket.org\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-04-30 10:52+0100\n" "POT-Creation-Date: 2024-08-11 16:36+0200\n"
"PO-Revision-Date: 2024-05-02 21:15+0000\n" "PO-Revision-Date: 2024-07-18 17:07+0000\n"
"Last-Translator: Andrey <Elisoandr@gmail.com>\n" "Last-Translator: Andrey <Elisoandr@gmail.com>\n"
"Language-Team: Russian <http://i18n.sotecware.net/projects/snikket/" "Language-Team: Russian <http://i18n.sotecware.net/projects/snikket/web-"
"web-portal/ru/>\n" "portal/ru/>\n"
"Language: ru\n" "Language: ru\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"
@@ -38,7 +38,7 @@ msgstr "Уровень доступа"
#: snikket_web/admin.py:79 snikket_web/admin.py:297 #: snikket_web/admin.py:79 snikket_web/admin.py:297
msgid "Limited" msgid "Limited"
msgstr "Ограниченное" msgstr "Ограниченный"
#: snikket_web/admin.py:80 snikket_web/admin.py:298 #: snikket_web/admin.py:80 snikket_web/admin.py:298
msgid "Normal user" msgid "Normal user"
@@ -343,7 +343,7 @@ msgstr ""
"%(mimetype)s)." "%(mimetype)s)."
#: snikket_web/invite.py:299 snikket_web/templates/unauth.html:18 #: snikket_web/invite.py:299 snikket_web/templates/unauth.html:18
#: snikket_web/user.py:189 #: snikket_web/user.py:192
msgid "Error" msgid "Error"
msgstr "Ошибка" msgstr "Ошибка"
@@ -415,15 +415,15 @@ msgstr "Данные аккаунта"
msgid "Upload" msgid "Upload"
msgstr "Загрузить" msgstr "Загрузить"
#: snikket_web/user.py:122 #: snikket_web/user.py:125
msgid "Incorrect password." msgid "Incorrect password."
msgstr "Неверный пароль." msgstr "Неверный пароль."
#: snikket_web/user.py:126 #: snikket_web/user.py:129
msgid "Password changed" msgid "Password changed"
msgstr "Пароль изменен" msgstr "Пароль изменен"
#: snikket_web/user.py:134 #: snikket_web/user.py:137
msgid "" msgid ""
"The chosen avatar is too big. To be able to upload larger avatars, please " "The chosen avatar is too big. To be able to upload larger avatars, please "
"use the app." "use the app."
@@ -431,15 +431,15 @@ msgstr ""
"Выбранный аватар слишком велик. Чтобы иметь возможность загружать аватары " "Выбранный аватар слишком велик. Чтобы иметь возможность загружать аватары "
"большего размера, используйте приложение." "большего размера, используйте приложение."
#: snikket_web/user.py:181 #: snikket_web/user.py:184
msgid "Profile updated" msgid "Profile updated"
msgstr "Профиль обновлен" msgstr "Профиль обновлен"
#: snikket_web/user.py:195 #: snikket_web/user.py:198
msgid "Export" msgid "Export"
msgstr "Экспорт" msgstr "Экспорт"
#: snikket_web/user.py:213 #: snikket_web/user.py:216
msgid "You currently have no account data to export." msgid "You currently have no account data to export."
msgstr "В настоящее время у вас нет данных аккаунта для экспорта." msgstr "В настоящее время у вас нет данных аккаунта для экспорта."

View File

@@ -6,12 +6,12 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PROJECT VERSION\n" "Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: translations@snikket.org\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-04-30 10:52+0100\n" "POT-Creation-Date: 2024-08-11 16:36+0200\n"
"PO-Revision-Date: 2024-05-02 21:15+0000\n" "PO-Revision-Date: 2024-05-02 21:15+0000\n"
"Last-Translator: Kim Alvefur <zash@zash.se>\n" "Last-Translator: Kim Alvefur <zash@zash.se>\n"
"Language-Team: Swedish <http://i18n.sotecware.net/projects/snikket/" "Language-Team: Swedish <http://i18n.sotecware.net/projects/snikket/web-"
"web-portal/sv/>\n" "portal/sv/>\n"
"Language: sv\n" "Language: sv\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"
@@ -341,7 +341,7 @@ msgstr ""
"XML-fil i XEP-0227-format (angivet format: %(mimetype)s)." "XML-fil i XEP-0227-format (angivet format: %(mimetype)s)."
#: snikket_web/invite.py:299 snikket_web/templates/unauth.html:18 #: snikket_web/invite.py:299 snikket_web/templates/unauth.html:18
#: snikket_web/user.py:189 #: snikket_web/user.py:192
msgid "Error" msgid "Error"
msgstr "Fel" msgstr "Fel"
@@ -413,15 +413,15 @@ msgstr "Kontodata"
msgid "Upload" msgid "Upload"
msgstr "Ladda upp" msgstr "Ladda upp"
#: snikket_web/user.py:122 #: snikket_web/user.py:125
msgid "Incorrect password." msgid "Incorrect password."
msgstr "Fel lösenord." msgstr "Fel lösenord."
#: snikket_web/user.py:126 #: snikket_web/user.py:129
msgid "Password changed" msgid "Password changed"
msgstr "Lösenord ändrat" msgstr "Lösenord ändrat"
#: snikket_web/user.py:134 #: snikket_web/user.py:137
msgid "" msgid ""
"The chosen avatar is too big. To be able to upload larger avatars, please " "The chosen avatar is too big. To be able to upload larger avatars, please "
"use the app." "use the app."
@@ -429,15 +429,15 @@ msgstr ""
"Den valda profilbilden är för stor. Vänligen använd appen för att kunna " "Den valda profilbilden är för stor. Vänligen använd appen för att kunna "
"välja större bilder." "välja större bilder."
#: snikket_web/user.py:181 #: snikket_web/user.py:184
msgid "Profile updated" msgid "Profile updated"
msgstr "Profilen uppdaterad" msgstr "Profilen uppdaterad"
#: snikket_web/user.py:195 #: snikket_web/user.py:198
msgid "Export" msgid "Export"
msgstr "Exportera" msgstr "Exportera"
#: snikket_web/user.py:213 #: snikket_web/user.py:216
msgid "You currently have no account data to export." msgid "You currently have no account data to export."
msgstr "Du har för närvarande inget data att exportera." msgstr "Du har för närvarande inget data att exportera."

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: 2024-04-30 10:52+0100\n" "POT-Creation-Date: 2024-08-11 16:36+0200\n"
"PO-Revision-Date: 2023-12-25 16:00+0000\n" "PO-Revision-Date: 2023-12-25 16:00+0000\n"
"Last-Translator: Dmytro Vozniuk <plibnik@gmail.com>\n" "Last-Translator: Dmytro Vozniuk <plibnik@gmail.com>\n"
"Language-Team: Ukrainian <http://i18n.sotecware.net/projects/snikket/web-" "Language-Team: Ukrainian <http://i18n.sotecware.net/projects/snikket/web-"
@@ -343,7 +343,7 @@ msgstr ""
"%(mimetype)s)." "%(mimetype)s)."
#: snikket_web/invite.py:299 snikket_web/templates/unauth.html:18 #: snikket_web/invite.py:299 snikket_web/templates/unauth.html:18
#: snikket_web/user.py:189 #: snikket_web/user.py:192
msgid "Error" msgid "Error"
msgstr "Помилка" msgstr "Помилка"
@@ -415,15 +415,15 @@ msgstr "Дані облікового запису"
msgid "Upload" msgid "Upload"
msgstr "Завантажити" msgstr "Завантажити"
#: snikket_web/user.py:122 #: snikket_web/user.py:125
msgid "Incorrect password." msgid "Incorrect password."
msgstr "Хибний пароль." msgstr "Хибний пароль."
#: snikket_web/user.py:126 #: snikket_web/user.py:129
msgid "Password changed" msgid "Password changed"
msgstr "Пароль змінено" msgstr "Пароль змінено"
#: snikket_web/user.py:134 #: snikket_web/user.py:137
msgid "" msgid ""
"The chosen avatar is too big. To be able to upload larger avatars, please " "The chosen avatar is too big. To be able to upload larger avatars, please "
"use the app." "use the app."
@@ -431,15 +431,15 @@ msgstr ""
"Вибраний аватар надто великий. Щоб завантажити аватари великого розміру, " "Вибраний аватар надто великий. Щоб завантажити аватари великого розміру, "
"скористуйтесь застосунком." "скористуйтесь застосунком."
#: snikket_web/user.py:181 #: snikket_web/user.py:184
msgid "Profile updated" msgid "Profile updated"
msgstr "Профіль оновлено" msgstr "Профіль оновлено"
#: snikket_web/user.py:195 #: snikket_web/user.py:198
msgid "Export" msgid "Export"
msgstr "Експортувати" msgstr "Експортувати"
#: snikket_web/user.py:213 #: snikket_web/user.py:216
msgid "You currently have no account data to export." msgid "You currently have no account data to export."
msgstr "Наразі у вас немає даних облікового запису, щоб експортувати їх." msgstr "Наразі у вас немає даних облікового запису, щоб експортувати їх."

View File

@@ -6,8 +6,8 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PROJECT VERSION\n" "Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: translations@snikket.org\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-04-30 10:52+0100\n" "POT-Creation-Date: 2024-08-11 16:36+0200\n"
"PO-Revision-Date: 2024-05-02 21:15+0000\n" "PO-Revision-Date: 2024-05-02 21:15+0000\n"
"Last-Translator: Rosebud <postage_quizzical060@simplelogin.com>\n" "Last-Translator: Rosebud <postage_quizzical060@simplelogin.com>\n"
"Language-Team: Chinese (Simplified) <http://i18n.sotecware.net/projects/" "Language-Team: Chinese (Simplified) <http://i18n.sotecware.net/projects/"
@@ -334,11 +334,12 @@ msgstr "导入数据"
msgid "" msgid ""
"The account data you tried to import is in an unknown format. Please upload " "The account data you tried to import is in an unknown format. Please upload "
"an XML file in XEP-0227 format (provided format: %(mimetype)s)." "an XML file in XEP-0227 format (provided format: %(mimetype)s)."
msgstr "您尝试导入的账号数据的格式未知。请上传 XEP-0227 格式的 XML " msgstr ""
"文件(提供的格式:%(mimetype)s" "您尝试导入的账号数据的格式未知。请上传 XEP-0227 格式的 XML 文件(提供的格式:"
"%(mimetype)s。"
#: snikket_web/invite.py:299 snikket_web/templates/unauth.html:18 #: snikket_web/invite.py:299 snikket_web/templates/unauth.html:18
#: snikket_web/user.py:189 #: snikket_web/user.py:192
msgid "Error" msgid "Error"
msgstr "错误" msgstr "错误"
@@ -410,29 +411,29 @@ msgstr "账号数据"
msgid "Upload" msgid "Upload"
msgstr "上传" msgstr "上传"
#: snikket_web/user.py:122 #: snikket_web/user.py:125
msgid "Incorrect password." msgid "Incorrect password."
msgstr "密码不正确。" msgstr "密码不正确。"
#: snikket_web/user.py:126 #: snikket_web/user.py:129
msgid "Password changed" msgid "Password changed"
msgstr "密码已更改" msgstr "密码已更改"
#: snikket_web/user.py:134 #: snikket_web/user.py:137
msgid "" msgid ""
"The chosen avatar is too big. To be able to upload larger avatars, please " "The chosen avatar is too big. To be able to upload larger avatars, please "
"use the app." "use the app."
msgstr "所选头像太大。要上传更大的头像,请使用应用。" msgstr "所选头像太大。要上传更大的头像,请使用应用。"
#: snikket_web/user.py:181 #: snikket_web/user.py:184
msgid "Profile updated" msgid "Profile updated"
msgstr "个人资料已更新" msgstr "个人资料已更新"
#: snikket_web/user.py:195 #: snikket_web/user.py:198
msgid "Export" msgid "Export"
msgstr "导出" msgstr "导出"
#: snikket_web/user.py:213 #: snikket_web/user.py:216
msgid "You currently have no account data to export." msgid "You currently have no account data to export."
msgstr "您目前没有账号数据要导出。" msgstr "您目前没有账号数据要导出。"
@@ -460,15 +461,17 @@ msgstr "关于此服务"
msgid "" msgid ""
"This is the Snikket service <em>%(site_name)s</em>, running open-source " "This is the Snikket service <em>%(site_name)s</em>, running open-source "
"software from the Snikket project." "software from the Snikket project."
msgstr "这是 Snikket 服务 <em>%(site_name)s</em>,运行来自 Snikket 项目的开源软件。" msgstr ""
"这是 Snikket 服务 <em>%(site_name)s</em>,运行来自 Snikket 项目的开源软件。"
#: snikket_web/templates/about.html:11 #: snikket_web/templates/about.html:11
#, python-format #, python-format
msgid "" msgid ""
"To learn more about Snikket, visit the <a href=\"%(snikket_url)s\">Snikket " "To learn more about Snikket, visit the <a href=\"%(snikket_url)s\">Snikket "
"website</a>." "website</a>."
msgstr "要了解有关 Snikket 的更多信息,请访问 <a href=\"%(snikket_url)s\">Snikket " msgstr ""
"网站</a>。" "要了解有关 Snikket 的更多信息,请访问 <a href=\"%(snikket_url)s\">Snikket 网"
"站</a>。"
#: snikket_web/templates/about.html:13 #: snikket_web/templates/about.html:13
msgid "View service policies" msgid "View service policies"
@@ -486,16 +489,17 @@ msgid ""
"a>. The full terms of the license can be reviewed using the aforementioned " "a>. The full terms of the license can be reviewed using the aforementioned "
"link." "link."
msgstr "" msgstr ""
"门户网站软件根据 <a href=\"%(agpl_url)s\">GNU Affero 通用公共许可证 3.0 " "门户网站软件根据 <a href=\"%(agpl_url)s\">GNU Affero 通用公共许可证 3.0 版及"
"版及之后版本</a> 的条款获得许可。可通过上述链接查看许可证的完整条款。" "之后版本</a> 的条款获得许可。可通过上述链接查看许可证的完整条款。"
#: snikket_web/templates/about.html:17 #: snikket_web/templates/about.html:17
#, python-format #, python-format
msgid "" msgid ""
"The source code of the web portal can be downloaded and viewed in <a href=" "The source code of the web portal can be downloaded and viewed in <a href="
"\"%(source_url)s\">its GitHub repository</a>." "\"%(source_url)s\">its GitHub repository</a>."
msgstr "门户网站的源代码可在 <a href=\"%(source_url)s\">其 GitHub repository</a> " msgstr ""
"中下载和查看。" "门户网站的源代码可在 <a href=\"%(source_url)s\">其 GitHub repository</a> 中下"
"载和查看。"
#: snikket_web/templates/about.html:18 #: snikket_web/templates/about.html:18
#, python-format #, python-format
@@ -504,9 +508,9 @@ 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 ""
"门户网站中使用的图标是 <a href=\"%(source_url)s\">Google 的 Material " "门户网站中使用的图标是 <a href=\"%(source_url)s\">Google 的 Material 图标</"
"图标</a>,由 Google 根据 <a href=\"%(apache20_url)s\">Apache 2.0 许可证</a> " "a>,由 Google 根据 <a href=\"%(apache20_url)s\">Apache 2.0 许可证</a> 的条款"
"的条款提供。" "提供。"
#: snikket_web/templates/about.html:20 #: snikket_web/templates/about.html:20
msgid "Trademarks" msgid "Trademarks"
@@ -519,9 +523,8 @@ msgid ""
"Company. For more information about the trademarks, visit the <a href=" "Company. For more information about the trademarks, visit the <a href="
"\"%(trademarks_url)s\">Snikket Trademarks information page</a>." "\"%(trademarks_url)s\">Snikket Trademarks information page</a>."
msgstr "" msgstr ""
"“Snikket” 和鹦鹉标志是 Snikket Community Interest Company " "“Snikket” 和鹦鹉标志是 Snikket Community Interest Company 的商标。有关商标的"
"的商标。有关商标的更多信息,请访问 <a href=\"%(trademarks_url)s\">Snikket " "更多信息,请访问 <a href=\"%(trademarks_url)s\">Snikket 商标信息页</a>。"
"商标信息页</a>。"
#: snikket_web/templates/about.html:23 #: snikket_web/templates/about.html:23
msgid "Software Versions" msgid "Software Versions"
@@ -551,7 +554,8 @@ msgid ""
"Users who are in the same circle will see each other in their contact list. " "Users who are in the same circle will see each other in their contact list. "
"In addition, each circle may have group chats where the circle members are " "In addition, each circle may have group chats where the circle members are "
"included." "included."
msgstr "在同一个圈子里的用户将在他们的联系人列表中看到对方。此外,每个圈子还有群聊," msgstr ""
"在同一个圈子里的用户将在他们的联系人列表中看到对方。此外,每个圈子还有群聊,"
"圈子成员也包括在内。" "圈子成员也包括在内。"
#: snikket_web/templates/admin_circles.html:13 #: snikket_web/templates/admin_circles.html:13
@@ -617,8 +621,9 @@ msgid ""
"This is only for creating group chats that automatically include <em>all</" "This is only for creating group chats that automatically include <em>all</"
"em> members of the circle. If you want a normal group chat, create it in the " "em> members of the circle. If you want a normal group chat, create it in the "
"Snikket app instead." "Snikket app instead."
msgstr "这仅适用于创建自动包含<em>全部</em>圈子成员的群聊。如果您想要普通的群聊," msgstr ""
"请在 Snikket 应用中创建。" "这仅适用于创建自动包含<em>全部</em>圈子成员的群聊。如果您想要普通的群聊,请"
"在 Snikket 应用中创建。"
#: snikket_web/templates/admin_create_invite.html:3 #: snikket_web/templates/admin_create_invite.html:3
msgid "Create invitation" msgid "Create invitation"
@@ -708,8 +713,9 @@ msgid ""
"The circle and the corresponding chat will be deleted, permanently and " "The circle and the corresponding chat will be deleted, permanently and "
"immediately upon pushing the below button. <strong>There is no way back!</" "immediately upon pushing the below button. <strong>There is no way back!</"
"strong>" "strong>"
msgstr "按下下面的按钮后,圈子和相应的聊天将立即永久删除。<strong>此操作无法撤销!</s" msgstr ""
"trong>" "按下下面的按钮后,圈子和相应的聊天将立即永久删除。<strong>此操作无法撤销!</"
"strong>"
#: snikket_web/templates/admin_delete_circle.html:17 #: snikket_web/templates/admin_delete_circle.html:17
#: snikket_web/templates/admin_delete_user.html:19 #: snikket_web/templates/admin_delete_user.html:19
@@ -740,7 +746,8 @@ 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 back!</" "immediately upon pushing the below button. <strong>There is no way back!</"
"strong>" "strong>"
msgstr "按下下面的按钮后,用户及其数据将不可撤销、永久立即删除。<strong>此操作无法撤" msgstr ""
"按下下面的按钮后,用户及其数据将不可撤销、永久立即删除。<strong>此操作无法撤"
"销!</strong>" "销!</strong>"
#: snikket_web/templates/admin_edit_circle.html:14 #: snikket_web/templates/admin_edit_circle.html:14
@@ -947,8 +954,9 @@ msgstr "重置密码"
msgid "" msgid ""
"If the user has lost their password, you can use the button below to create " "If the user has lost their password, you can use the button below to create "
"a special link which allows to change the password of the account, once." "a special link which allows to change the password of the account, once."
msgstr "如果用户丢失了密码,您可以使用下方按钮创建一个特殊链接,允许更改账号密码一次" msgstr ""
"" "如果用户丢失了密码,您可以使用下方按钮创建一个特殊链接,允许更改账号密码一"
"次。"
#: snikket_web/templates/admin_edit_user.html:73 #: snikket_web/templates/admin_edit_user.html:73
msgid "Debug information" msgid "Debug information"
@@ -959,7 +967,8 @@ msgid ""
"In some cases, extended information about the user account and the connected " "In some cases, extended information about the user account and the connected "
"devices is necessary to troubleshoot issues. The button below reveals this " "devices is necessary to troubleshoot issues. The button below reveals this "
"(sensitive) information." "(sensitive) information."
msgstr "在某些情况下,需要有关用户账号和连接设备的扩展信息来排查问题。下方按钮显示此" msgstr ""
"在某些情况下,需要有关用户账号和连接设备的扩展信息来排查问题。下方按钮显示此"
"(敏感)信息。" "(敏感)信息。"
#: snikket_web/templates/admin_edit_user.html:79 #: snikket_web/templates/admin_edit_user.html:79
@@ -1273,7 +1282,8 @@ msgid ""
"Snikket app or compatible software. If you already have the app installed, " "Snikket app or compatible software. If you already have the app installed, "
"we recommend that you continue the account creation process inside the app " "we recommend that you continue the account creation process inside the app "
"by clicking on the button below:" "by clicking on the button below:"
msgstr "创建账号将允许使用 Snikket 应用或兼容软件与其他人进行交流。如果您已经安装了应" msgstr ""
"创建账号将允许使用 Snikket 应用或兼容软件与其他人进行交流。如果您已经安装了应"
"用,我们建议您单击下方按钮后在应用内完成账号注册流程:" "用,我们建议您单击下方按钮后在应用内完成账号注册流程:"
#: snikket_web/templates/invite_register.html:14 #: snikket_web/templates/invite_register.html:14
@@ -1302,8 +1312,9 @@ msgstr "在线创建账号"
msgid "" msgid ""
"If you plan to use a legacy XMPP client, you can register an account online " "If you plan to use a legacy XMPP client, you can register an account online "
"and enter your credentials into any XMPP-compatible software." "and enter your credentials into any XMPP-compatible software."
msgstr "如果您打算使用传统的 XMPP 客户端,可以在线注册账号,在任何兼容 XMPP " msgstr ""
"的软件中输入您的凭据。" "如果您打算使用传统的 XMPP 客户端,可以在线注册账号,在任何兼容 XMPP 的软件中"
"输入您的凭据。"
#: snikket_web/templates/invite_register.html:27 #: snikket_web/templates/invite_register.html:27
msgid "" msgid ""
@@ -1379,7 +1390,8 @@ 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 "
"recognises it." "recognises it."
msgstr "您的相机将打开。将摄像头对准下方二维码,直到它位于屏幕上突出显示的正方形内," msgstr ""
"您的相机将打开。将摄像头对准下方二维码,直到它位于屏幕上突出显示的正方形内,"
"然后等待应用识别。" "然后等待应用识别。"
#: snikket_web/templates/invite_reset_view.html:27 #: snikket_web/templates/invite_reset_view.html:27
@@ -1396,8 +1408,9 @@ msgstr "其他方式"
msgid "" msgid ""
"You can also <a href=\"%(reset_url)s\">reset your password online</a> if the " "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." "above button or scanning the QR code does not work for you."
msgstr "如果上方按钮或扫描二维码对您不起作用,您也可以 <a href=\"%(reset_url)s\"" msgstr ""
">在线重置密码</a>。" "如果上方按钮或扫描二维码对您不起作用,您也可以 <a href=\"%(reset_url)s\">在线"
"重置密码</a>。"
#: snikket_web/templates/invite_success.html:5 #: snikket_web/templates/invite_success.html:5
#, python-format #, python-format
@@ -1435,8 +1448,9 @@ msgstr "您现在可以使用上方地址和注册时选择的密码设置传统
msgid "" msgid ""
"You can now safely close this page, or log in to the web portal to <a href=" "You can now safely close this page, or log in to the web portal to <a href="
"\"%(login_url)s\">manage your account</a>." "\"%(login_url)s\">manage your account</a>."
msgstr "您现在可以安全地关闭此页面,或登录到门户网站 <a href=\"%(login_url)s\"" msgstr ""
">管理您的账号</a>。" "您现在可以安全地关闭此页面,或登录到门户网站 <a href=\"%(login_url)s\">管理您"
"的账号</a>。"
#: snikket_web/templates/invite_success.html:21 #: snikket_web/templates/invite_success.html:21
msgid "Import successful" msgid "Import successful"
@@ -1476,16 +1490,17 @@ 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 与 %(inviter_name)s 在 %(site_name)s 上聊天Snikket " "您已受邀使用 Snikket 与 %(inviter_name)s 在 %(site_name)s 上聊天Snikket "
"安全、隐私友好的聊天应用。" "安全、隐私友好的聊天应用。"
#: snikket_web/templates/invite_view.html:18 #: 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 "您已受邀使用 Snikket 在 %(site_name)s 上聊天Snikket " msgstr ""
"是安全、隐私友好的聊天应用。" "您已受邀使用 Snikket 在 %(site_name)s 上聊天Snikket 是安全、隐私友好的聊天"
"应用。"
#: snikket_web/templates/invite_view.html:23 #: snikket_web/templates/invite_view.html:23
#, python-format #, python-format
@@ -1493,8 +1508,8 @@ msgid ""
"By continuing, you agree to the <a href=\"%(tos_uri)s\">Terms of Service</a> " "By continuing, you agree to the <a href=\"%(tos_uri)s\">Terms of Service</a> "
"and <a href=\"%(privacy_uri)s\">Privacy Policy</a>." "and <a href=\"%(privacy_uri)s\">Privacy Policy</a>."
msgstr "" msgstr ""
"继续,即表示您同意 <a href=\"%(tos_uri)s\">服务条款</a> 和 <a href=\"" "继续,即表示您同意 <a href=\"%(tos_uri)s\">服务条款</a> 和 <a href="
"%(privacy_uri)s\">隐私政策</a>。" "\"%(privacy_uri)s\">隐私政策</a>。"
#: snikket_web/templates/invite_view.html:27 #: snikket_web/templates/invite_view.html:27
msgid "Get started" msgid "Get started"
@@ -1563,8 +1578,9 @@ msgstr "关闭"
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 应用本身。" "您可以使用相机扫描二维码将此邀请传送到您的移动设备。您可以使用二维码扫描仪应"
"用或 Snikket 应用本身。"
#: snikket_web/templates/invite_view.html:78 #: snikket_web/templates/invite_view.html:78
msgid "Install on iOS" msgid "Install on iOS"
@@ -1574,8 +1590,9 @@ msgstr "在 iOS 安装"
msgid "" msgid ""
"After downloading Snikket from the App Store, you have to return to this " "After downloading Snikket from the App Store, you have to return to this "
"invite link and tap on \"Open the app\" to proceed." "invite link and tap on \"Open the app\" to proceed."
msgstr "从 App Store 下载 Snikket " msgstr ""
"后,您必须返回到此邀请链接,然后轻击“打开应用”继续。" "从 App Store 下载 Snikket 后,您必须返回到此邀请链接,然后轻击“打开应用”继"
"续。"
#: snikket_web/templates/invite_view.html:86 #: snikket_web/templates/invite_view.html:86
msgid "First download Snikket from the App Store using the button below:" msgid "First download Snikket from the App Store using the button below:"
@@ -1597,8 +1614,9 @@ msgstr "通过 F-Droid 安装"
msgid "" msgid ""
"After installing Snikket via F-Droid, you have to return to this invite link " "After installing Snikket via F-Droid, you have to return to this invite link "
"and tap on \"Open the app\" to proceed." "and tap on \"Open the app\" to proceed."
msgstr "通过 F-Droid 安装 Snikket " msgstr ""
"后,您必须返回到此邀请链接,然后轻击“打开应用”继续。" "通过 F-Droid 安装 Snikket 后,您必须返回到此邀请链接,然后轻击“打开应用”继"
"续。"
#: snikket_web/templates/invite_view.html:114 #: snikket_web/templates/invite_view.html:114
msgid "First install Snikket from F-Droid using the button below:" msgid "First install Snikket from F-Droid using the button below:"
@@ -1673,8 +1691,9 @@ msgstr "地址不正确"
msgid "" msgid ""
"This Snikket service only hosts addresses ending in <em>@%(snikket_domain)s</" "This Snikket service only hosts addresses ending in <em>@%(snikket_domain)s</"
"em>. Your password was not sent." "em>. Your password was not sent."
msgstr "此 Snikket 服务仅托管以 <em>@%(snikket_domain)s</em> " msgstr ""
"结尾的地址。未发送您的密码。" "此 Snikket 服务仅托管以 <em>@%(snikket_domain)s</em> 结尾的地址。未发送您的密"
"码。"
#: snikket_web/templates/policies.html:4 snikket_web/templates/policies.html:10 #: snikket_web/templates/policies.html:4 snikket_web/templates/policies.html:10
msgid "Policies" msgid "Policies"
@@ -1711,8 +1730,9 @@ msgid ""
"To report policy violations or other abuse from this service, please send an " "To report policy violations or other abuse from this service, please send an "
"email to %(email)s. Specify the domain name of this instance (%(domain)s) " "email to %(email)s. Specify the domain name of this instance (%(domain)s) "
"and include details of the incident(s)." "and include details of the incident(s)."
msgstr "要报告此服务违反策略或其他滥用行为,请发送电子邮件至 " msgstr ""
"%(email)s。指定此实例的域名(%(domain)s并包括事件的详情。" "要报告此服务违反策略或其他滥用行为,请发送电子邮件至 %(email)s。指定此实例的"
"域名(%(domain)s并包括事件的详情。"
#: snikket_web/templates/unauth.html:16 #: snikket_web/templates/unauth.html:16
msgid "Operation successful" msgid "Operation successful"
@@ -1726,8 +1746,9 @@ msgstr "欢迎使用 Snikket"
msgid "" msgid ""
"Now your Snikket instance is up and running, the next step is to invite " "Now your Snikket instance is up and running, the next step is to invite "
"people to join it. Family, friends, colleagues... you choose!" "people to join it. Family, friends, colleagues... you choose!"
msgstr "现在,您的 Snikket " msgstr ""
"实例已经启动并运行,下一步就是邀请他人加入。家人、朋友、同事…由您选择!" "现在,您的 Snikket 实例已经启动并运行,下一步就是邀请他人加入。家人、朋友、同"
"事…由您选择!"
#: snikket_web/templates/user_home.html:19 #: snikket_web/templates/user_home.html:19
msgid "Your account" msgid "Your account"
@@ -1787,7 +1808,8 @@ 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:24 #: snikket_web/templates/user_passwd.html:24

View File

@@ -97,7 +97,10 @@ class ImportAccountDataForm(BaseForm):
@client.require_session() @client.require_session()
async def index() -> str: async def index() -> str:
user_info = await client.get_user_info() user_info = await client.get_user_info()
metrics = await client.get_system_metrics() try:
metrics = await client.get_system_metrics()
except (werkzeug.exceptions.Unauthorized, werkzeug.exceptions.Forbidden):
metrics = {}
return await render_template( return await render_template(
"user_home.html", "user_home.html",
user_info=user_info, user_info=user_info,