From aefb0c9b14e5ff24c120d48a2371546d86edafc7 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Thu, 24 Mar 2022 12:43:01 -0700 Subject: [PATCH 01/15] Re-consider list privacy on edit Please run ci?? --- bookwyrm/lists_stream.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/bookwyrm/lists_stream.py b/bookwyrm/lists_stream.py index f6a35cc25..c40d2b534 100644 --- a/bookwyrm/lists_stream.py +++ b/bookwyrm/lists_stream.py @@ -115,9 +115,12 @@ class ListsStream(RedisStore): @receiver(signals.post_save, sender=models.List) # pylint: disable=unused-argument def add_list_on_create(sender, instance, created, *args, **kwargs): - """add newly created lists streamsstreams""" + """add newly created lists streams""" if not created: + # the privacy may have changed, so we need to re-do the whole thing + remove_list_task.delay(instance.id, re_add=True) return + # when creating new things, gotta wait on the transaction transaction.on_commit(lambda: add_list_on_create_command(instance.id)) @@ -217,7 +220,7 @@ def populate_lists_task(user_id): @app.task(queue=MEDIUM) -def remove_list_task(list_id): +def remove_list_task(list_id, re_add=False): """remove a list from any stream it might be in""" stores = models.User.objects.filter(local=True, is_active=True).values_list( "id", flat=True @@ -227,6 +230,9 @@ def remove_list_task(list_id): stores = [ListsStream().stream_id(idx) for idx in stores] ListsStream().remove_object_from_related_stores(list_id, stores=stores) + if re_add: + add_list_task.delay(list_id) + @app.task(queue=HIGH) def add_list_task(list_id): From d149e57494757143ed905802e5a0d24930d22d2f Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Tue, 31 May 2022 12:41:57 -0700 Subject: [PATCH 02/15] Split expand book data task into per-edition tasks Loading every edition in one task takes ages, and produces a large task that clogs up the queue. This will create more, smaller tasks that will finish more quickly. --- bookwyrm/connectors/connector_manager.py | 9 +++++++++ bookwyrm/connectors/inventaire.py | 18 +++++++++++------- bookwyrm/connectors/openlibrary.py | 4 ++-- 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/bookwyrm/connectors/connector_manager.py b/bookwyrm/connectors/connector_manager.py index 86774af56..37b093aa9 100644 --- a/bookwyrm/connectors/connector_manager.py +++ b/bookwyrm/connectors/connector_manager.py @@ -152,6 +152,15 @@ def load_more_data(connector_id, book_id): connector.expand_book_data(book) +@app.task(queue="low_priority") +def create_edition_task(connector_id, work_id, data): + """separate task for each of the 10,000 editions of LoTR""" + connector_info = models.Connector.objects.get(id=connector_id) + connector = load_connector(connector_info) + work = models.Work.objects.select_subclasses().get(id=work_id) + connector.create_edition_from_data(work, data) + + def load_connector(connector_info): """instantiate the connector class""" connector = importlib.import_module( diff --git a/bookwyrm/connectors/inventaire.py b/bookwyrm/connectors/inventaire.py index c13f4e3e6..3d5f913bd 100644 --- a/bookwyrm/connectors/inventaire.py +++ b/bookwyrm/connectors/inventaire.py @@ -5,7 +5,7 @@ from bookwyrm import models from bookwyrm.book_search import SearchResult from .abstract_connector import AbstractConnector, Mapping from .abstract_connector import get_data -from .connector_manager import ConnectorException +from .connector_manager import ConnectorException, create_edition_task class Connector(AbstractConnector): @@ -156,12 +156,16 @@ class Connector(AbstractConnector): for edition_uri in edition_options.get("uris"): remote_id = self.get_remote_id(edition_uri) - try: - data = self.get_book_data(remote_id) - except ConnectorException: - # who, indeed, knows - continue - self.create_edition_from_data(work, data) + create_edition_task.delay(self.connector.id, work.id, remote_id) + + def create_edition_from_data(self, work, edition_data, instance=None): + """pass in the url as data and then call the version in abstract connector""" + try: + data = self.get_book_data(edition_data) + except ConnectorException: + # who, indeed, knows + return + super().create_edition_from_data(work, data, instance=instance) def get_cover_url(self, cover_blob, *_): """format the relative cover url into an absolute one: diff --git a/bookwyrm/connectors/openlibrary.py b/bookwyrm/connectors/openlibrary.py index 2b625dffc..5288cc2be 100644 --- a/bookwyrm/connectors/openlibrary.py +++ b/bookwyrm/connectors/openlibrary.py @@ -5,7 +5,7 @@ from bookwyrm import models from bookwyrm.book_search import SearchResult from .abstract_connector import AbstractConnector, Mapping from .abstract_connector import get_data, infer_physical_format, unique_physical_format -from .connector_manager import ConnectorException +from .connector_manager import ConnectorException, create_edition_task from .openlibrary_languages import languages @@ -204,7 +204,7 @@ class Connector(AbstractConnector): # does this edition have ANY interesting data? if ignore_edition(edition_data): continue - self.create_edition_from_data(work, edition_data) + create_edition_task.delay(self.connector.id, work.id, edition_data) def ignore_edition(edition_data): From c738eaa2c2a04f8da4886bb4198063952891e8a3 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Tue, 31 May 2022 13:09:27 -0700 Subject: [PATCH 03/15] Use async requests for broadcasting When an activity needs to be broadcast to the whole wide fediverse, the number of requests can get enormous and the broadcast task ends up taking ages to run. This change sends these requests out in one aiohttp session, to improve performance. --- bookwyrm/models/activitypub_mixin.py | 57 +++++++++++++++++----------- 1 file changed, 34 insertions(+), 23 deletions(-) diff --git a/bookwyrm/models/activitypub_mixin.py b/bookwyrm/models/activitypub_mixin.py index 402cb040b..56f9da208 100644 --- a/bookwyrm/models/activitypub_mixin.py +++ b/bookwyrm/models/activitypub_mixin.py @@ -1,4 +1,5 @@ """ activitypub model functionality """ +import asyncio from base64 import b64encode from collections import namedtuple from functools import reduce @@ -6,9 +7,8 @@ import json import operator import logging from uuid import uuid4 -import requests -from requests.exceptions import RequestException +import aiohttp from Crypto.PublicKey import RSA from Crypto.Signature import pkcs1_15 from Crypto.Hash import SHA256 @@ -510,15 +510,22 @@ def broadcast_task(sender_id, activity, recipients): """the celery task for broadcast""" user_model = apps.get_model("bookwyrm.User", require_ready=True) sender = user_model.objects.get(id=sender_id) - for recipient in recipients: - try: - sign_and_send(sender, activity, recipient) - except RequestException: - pass + asyncio.run(async_broadcast(recipients, sender, activity)) -def sign_and_send(sender, data, destination): - """crpyto whatever and http junk""" +async def async_broadcast(recipients, sender, data): + """Send all the broadcasts simultaneously""" + timeout = aiohttp.ClientTimeout(total=10) + async with aiohttp.ClientSession(timeout=timeout) as session: + tasks = [] + for recipient in recipients: + tasks.append( + asyncio.ensure_future(sign_and_send(session, sender, data, recipient)) + ) + + +async def sign_and_send(session, sender, data, destination): + """Sign the messages and send them in an asynchronous bundle""" now = http_date() if not sender.key_pair.private_key: @@ -526,21 +533,25 @@ def sign_and_send(sender, data, destination): raise ValueError("No private key found for sender") digest = make_digest(data) + headers = { + "Date": now, + "Digest": digest, + "Signature": make_signature(sender, destination, now, digest), + "Content-Type": "application/activity+json; charset=utf-8", + "User-Agent": USER_AGENT, + } - response = requests.post( - destination, - data=data, - headers={ - "Date": now, - "Digest": digest, - "Signature": make_signature(sender, destination, now, digest), - "Content-Type": "application/activity+json; charset=utf-8", - "User-Agent": USER_AGENT, - }, - ) - if not response.ok: - response.raise_for_status() - return response + try: + async with session.post(destination, data=data, headers=headers) as response: + if not response.ok: + logger.exception( + "Failed to send broadcast to %s: %s", destination, response.reason + ) + return await response + except asyncio.TimeoutError: + logger.info("Connection timed out for url: %s", destination) + except aiohttp.ClientError as err: + logger.exception(err) # pylint: disable=unused-argument From 1609b9b74cbec5a7fc82fae0a5ffcc791bf0b80e Mon Sep 17 00:00:00 2001 From: Jamie Slome Date: Thu, 30 Jun 2022 05:46:41 +0100 Subject: [PATCH 04/15] Create SECURITY.md --- SECURITY.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 SECURITY.md diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 000000000..c4e5e9cf9 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,5 @@ +# Security Policy + +## Reporting a Vulnerability + +Please report security issues to `mousereeve@riseup.net` \ No newline at end of file From beb85ba94f25162634f784403fee05113f87d8bc Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Thu, 30 Jun 2022 10:23:25 -0700 Subject: [PATCH 05/15] Updates locales --- locale/de_DE/LC_MESSAGES/django.mo | Bin 89936 -> 90852 bytes locale/de_DE/LC_MESSAGES/django.po | 182 +++++++++++++++++---------- locale/en_US/LC_MESSAGES/django.po | 10 +- locale/es_ES/LC_MESSAGES/django.mo | Bin 93859 -> 93859 bytes locale/es_ES/LC_MESSAGES/django.po | 140 ++++++++++++++------- locale/fi_FI/LC_MESSAGES/django.mo | Bin 92620 -> 93569 bytes locale/fi_FI/LC_MESSAGES/django.po | 140 ++++++++++++++------- locale/fr_FR/LC_MESSAGES/django.mo | Bin 96386 -> 97363 bytes locale/fr_FR/LC_MESSAGES/django.po | 140 ++++++++++++++------- locale/gl_ES/LC_MESSAGES/django.mo | Bin 91831 -> 92700 bytes locale/gl_ES/LC_MESSAGES/django.po | 140 ++++++++++++++------- locale/it_IT/LC_MESSAGES/django.mo | Bin 93253 -> 93253 bytes locale/it_IT/LC_MESSAGES/django.po | 140 ++++++++++++++------- locale/lt_LT/LC_MESSAGES/django.mo | Bin 95566 -> 95566 bytes locale/lt_LT/LC_MESSAGES/django.po | 140 ++++++++++++++------- locale/no_NO/LC_MESSAGES/django.mo | Bin 79314 -> 79314 bytes locale/no_NO/LC_MESSAGES/django.po | 140 ++++++++++++++------- locale/pt_BR/LC_MESSAGES/django.mo | Bin 92485 -> 92485 bytes locale/pt_BR/LC_MESSAGES/django.po | 140 ++++++++++++++------- locale/pt_PT/LC_MESSAGES/django.mo | Bin 86645 -> 86645 bytes locale/pt_PT/LC_MESSAGES/django.po | 140 ++++++++++++++------- locale/ro_RO/LC_MESSAGES/django.mo | Bin 94710 -> 94710 bytes locale/ro_RO/LC_MESSAGES/django.po | 140 ++++++++++++++------- locale/sv_SE/LC_MESSAGES/django.mo | Bin 92432 -> 92432 bytes locale/sv_SE/LC_MESSAGES/django.po | 140 ++++++++++++++------- locale/zh_Hans/LC_MESSAGES/django.mo | Bin 86950 -> 86950 bytes locale/zh_Hans/LC_MESSAGES/django.po | 140 ++++++++++++++------- locale/zh_Hant/LC_MESSAGES/django.mo | Bin 36001 -> 36001 bytes locale/zh_Hant/LC_MESSAGES/django.po | 140 ++++++++++++++------- 29 files changed, 1358 insertions(+), 654 deletions(-) diff --git a/locale/de_DE/LC_MESSAGES/django.mo b/locale/de_DE/LC_MESSAGES/django.mo index ccd061ca53329dcc362b7a17be946653965e94af..049645c449cbb7c047c6e6909a3706b30f99b717 100644 GIT binary patch delta 23880 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 delta 23101 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 f!~CvsK1u82T)opIg;#Wi1%BQ\n" "Language-Team: German\n" "Language: de\n" @@ -46,6 +46,10 @@ msgstr "Unbegrenzt" msgid "Reading finish date cannot be before start date." msgstr "Enddatum darf nicht vor dem Startdatum liegen." +#: bookwyrm/forms/forms.py:59 +msgid "Reading stopped date cannot be before start date." +msgstr "" + #: bookwyrm/forms/landing.py:32 msgid "User with this username already exists" msgstr "Ein Benutzer mit diesem Benutzernamen existiert bereits" @@ -70,8 +74,8 @@ msgstr "Reihenfolge der Liste" msgid "Book Title" msgstr "Buchtitel" -#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:155 -#: bookwyrm/templates/shelf/shelf.html:187 +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:156 +#: bookwyrm/templates/shelf/shelf.html:188 #: bookwyrm/templates/snippets/create_status/review.html:32 msgid "Rating" msgstr "Bewertung" @@ -238,7 +242,7 @@ msgstr "Käuflich erhältlich" #: bookwyrm/models/link.py:53 msgid "Available for loan" -msgstr "Zum Liehen erhältlich" +msgstr "Zum Ausleihen erhältlich" #: bookwyrm/models/link.py:70 #: bookwyrm/templates/settings/link_domains/link_domains.html:23 @@ -247,7 +251,7 @@ msgstr "Bestätigt" #: bookwyrm/models/user.py:32 bookwyrm/templates/book/book.html:289 msgid "Reviews" -msgstr "Besprechungen" +msgstr "Rezensionen" #: bookwyrm/models/user.py:33 msgid "Comments" @@ -396,7 +400,7 @@ msgstr "Verfolge deine Lektüre, sprich über Bücher, schreibe Besprechungen un #: bookwyrm/templates/about/about.html:98 msgid "Meet your admins" -msgstr "Lerne deinen Admins kennen" +msgstr "Lerne deine Admins kennen" #: bookwyrm/templates/about/about.html:101 #, python-format @@ -426,7 +430,7 @@ msgstr "Verhaltenskodex" #: bookwyrm/templates/about/layout.html:11 msgid "Active users:" -msgstr "Aktive Benutzer*innen:" +msgstr "Aktive Nutzer*innen:" #: bookwyrm/templates/about/layout.html:15 msgid "Statuses posted:" @@ -806,7 +810,7 @@ msgstr "Fehler beim Laden des Titelbilds" #: bookwyrm/templates/book/book.html:108 msgid "Click to enlarge" -msgstr "Zum vergrößern anklicken" +msgstr "Zum Vergrößern anklicken" #: bookwyrm/templates/book/book.html:179 #, python-format @@ -829,7 +833,7 @@ msgstr "Beschreibung:" #, python-format msgid "%(count)s edition" msgid_plural "%(count)s editions" -msgstr[0] "" +msgstr[0] "%(count)s Auflage" msgstr[1] "%(count)s Auflagen" #: bookwyrm/templates/book/book.html:228 @@ -855,7 +859,7 @@ msgstr "Du hast keine Leseaktivität für dieses Buch." #: bookwyrm/templates/book/book.html:294 msgid "Your reviews" -msgstr "Deine Besprechungen" +msgstr "Deine Rezensionen" #: bookwyrm/templates/book/book.html:300 msgid "Your comments" @@ -1075,7 +1079,7 @@ msgid "Add Another Author" msgstr "Weitere*n Autor*in hinzufügen" #: bookwyrm/templates/book/edit/edit_book_form.html:220 -#: bookwyrm/templates/shelf/shelf.html:146 +#: bookwyrm/templates/shelf/shelf.html:147 msgid "Cover" msgstr "Titelbild" @@ -1234,7 +1238,7 @@ msgstr "Datei-Links" #: bookwyrm/templates/book/file_links/links.html:9 msgid "Get a copy" -msgstr "Kopie erhalten" +msgstr "Exemplar erhalten" #: bookwyrm/templates/book/file_links/links.html:47 msgid "No links available" @@ -1709,25 +1713,30 @@ msgstr "Zu deinen Büchern hinzufügen" #: bookwyrm/templates/get_started/book_preview.html:10 #: bookwyrm/templates/shelf/shelf.html:86 bookwyrm/templates/user/user.html:33 -#: bookwyrm/templatetags/shelf_tags.py:46 +#: bookwyrm/templatetags/shelf_tags.py:48 msgid "To Read" msgstr "Zu lesen" #: bookwyrm/templates/get_started/book_preview.html:11 #: bookwyrm/templates/shelf/shelf.html:87 bookwyrm/templates/user/user.html:34 -#: bookwyrm/templatetags/shelf_tags.py:48 +#: bookwyrm/templatetags/shelf_tags.py:50 msgid "Currently Reading" -msgstr "Aktuell lesend" +msgstr "Liest gerade" #: bookwyrm/templates/get_started/book_preview.html:12 #: bookwyrm/templates/shelf/shelf.html:88 #: bookwyrm/templates/snippets/shelf_selector.html:47 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12 -#: bookwyrm/templates/user/user.html:35 bookwyrm/templatetags/shelf_tags.py:50 +#: bookwyrm/templates/user/user.html:35 bookwyrm/templatetags/shelf_tags.py:52 msgid "Read" msgstr "Gelesen" +#: bookwyrm/templates/get_started/book_preview.html:13 +#: bookwyrm/templates/shelf/shelf.html:89 bookwyrm/templates/user/user.html:36 +msgid "Stopped Reading" +msgstr "" + #: bookwyrm/templates/get_started/books.html:6 msgid "What are you reading?" msgstr "Was liest du gerade?" @@ -2055,8 +2064,8 @@ msgid "Row" msgstr "Zeile" #: bookwyrm/templates/import/import_status.html:103 -#: bookwyrm/templates/shelf/shelf.html:147 -#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:148 +#: bookwyrm/templates/shelf/shelf.html:170 msgid "Title" msgstr "Titel" @@ -2069,8 +2078,8 @@ msgid "Openlibrary key" msgstr "Openlibrary-Schlüssel" #: bookwyrm/templates/import/import_status.html:114 -#: bookwyrm/templates/shelf/shelf.html:148 -#: bookwyrm/templates/shelf/shelf.html:172 +#: bookwyrm/templates/shelf/shelf.html:149 +#: bookwyrm/templates/shelf/shelf.html:173 msgid "Author" msgstr "Autor*in" @@ -2947,7 +2956,7 @@ msgstr "Follower*innen manuell bestätigen" #: bookwyrm/templates/preferences/edit_user.html:123 msgid "Hide followers and following on profile" -msgstr "" +msgstr "Folgende und Gefolgte im Profil ausblenden" #: bookwyrm/templates/preferences/edit_user.html:128 msgid "Default post privacy:" @@ -2988,6 +2997,11 @@ msgstr "„%(book_title)s“ abschließen" msgid "Start \"%(book_title)s\"" msgstr "„%(book_title)s“ beginnen" +#: bookwyrm/templates/reading_progress/stop.html:5 +#, python-format +msgid "Stop Reading \"%(book_title)s\"" +msgstr "" + #: bookwyrm/templates/reading_progress/want.html:5 #, python-format msgid "Want to Read \"%(book_title)s\"" @@ -3012,6 +3026,7 @@ msgstr "Lesedaten für „%(title)s“ aktualisieren" #: bookwyrm/templates/readthrough/readthrough_modal.html:38 #: bookwyrm/templates/snippets/reading_modals/finish_reading_modal.html:24 #: bookwyrm/templates/snippets/reading_modals/start_reading_modal.html:21 +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:24 msgid "Started reading" msgstr "Zu lesen angefangen" @@ -3020,7 +3035,7 @@ msgstr "Zu lesen angefangen" msgid "Progress" msgstr "Fortschritt" -#: bookwyrm/templates/readthrough/readthrough_form.html:24 +#: bookwyrm/templates/readthrough/readthrough_form.html:25 #: bookwyrm/templates/readthrough/readthrough_modal.html:63 #: bookwyrm/templates/snippets/reading_modals/finish_reading_modal.html:32 msgid "Finished reading" @@ -3034,23 +3049,27 @@ msgstr "Zwischenstände:" msgid "finished" msgstr "abgeschlossen" -#: bookwyrm/templates/readthrough/readthrough_list.html:25 +#: bookwyrm/templates/readthrough/readthrough_list.html:16 +msgid "stopped" +msgstr "" + +#: bookwyrm/templates/readthrough/readthrough_list.html:27 msgid "Show all updates" msgstr "Zeige alle Zwischenstände" -#: bookwyrm/templates/readthrough/readthrough_list.html:41 +#: bookwyrm/templates/readthrough/readthrough_list.html:43 msgid "Delete this progress update" msgstr "Diesen Zwischenstand löschen" -#: bookwyrm/templates/readthrough/readthrough_list.html:53 +#: bookwyrm/templates/readthrough/readthrough_list.html:55 msgid "started" msgstr "angefangen" -#: bookwyrm/templates/readthrough/readthrough_list.html:60 +#: bookwyrm/templates/readthrough/readthrough_list.html:62 msgid "Edit read dates" msgstr "Lesedaten bearbeiten" -#: bookwyrm/templates/readthrough/readthrough_list.html:68 +#: bookwyrm/templates/readthrough/readthrough_list.html:70 msgid "Delete these read dates" msgstr "Diese Lesedaten löschen" @@ -3289,7 +3308,7 @@ msgstr "Zeitplan löschen" #: bookwyrm/templates/settings/automod/rules.html:63 msgid "Run now" -msgstr "" +msgstr "Jetzt ausführen" #: bookwyrm/templates/settings/automod/rules.html:64 msgid "Last run date will not be updated" @@ -3298,11 +3317,11 @@ msgstr "" #: bookwyrm/templates/settings/automod/rules.html:69 #: bookwyrm/templates/settings/automod/rules.html:92 msgid "Schedule scan" -msgstr "" +msgstr "Scan planen" #: bookwyrm/templates/settings/automod/rules.html:101 msgid "Successfully added rule" -msgstr "" +msgstr "Regel erfolgreich hinzugefügt" #: bookwyrm/templates/settings/automod/rules.html:107 msgid "Add Rule" @@ -4034,7 +4053,7 @@ msgstr "Einladungsanfragen zulassen" #: bookwyrm/templates/settings/site.html:158 msgid "Set a question for invite requests" -msgstr "" +msgstr "Eine Frage für Einladungsanfragen festlegen" #: bookwyrm/templates/settings/site.html:163 msgid "Question:" @@ -4050,11 +4069,11 @@ msgstr "Hinweis für Einladungsanfragen:" #: bookwyrm/templates/settings/themes.html:10 msgid "Set instance default theme" -msgstr "" +msgstr "Instanz-Standard-Theme festlegen" #: bookwyrm/templates/settings/themes.html:19 msgid "Successfully added theme" -msgstr "" +msgstr "Theme erfolgreich hinzugefügt" #: bookwyrm/templates/settings/themes.html:26 msgid "How to add a theme" @@ -4263,11 +4282,11 @@ msgstr "" #: bookwyrm/templates/setup/admin.html:55 msgid "Learn more about moderation" -msgstr "" +msgstr "Mehr über Moderation erfahren" #: bookwyrm/templates/setup/config.html:5 msgid "Instance Configuration" -msgstr "" +msgstr "Instanzkonfiguration" #: bookwyrm/templates/setup/config.html:7 msgid "Make sure everything looks right before proceeding" @@ -4291,11 +4310,11 @@ msgstr "Einstellungen" #: bookwyrm/templates/setup/config.html:56 msgid "Instance domain:" -msgstr "" +msgstr "Instanz Domain:" #: bookwyrm/templates/setup/config.html:63 msgid "Protocol:" -msgstr "" +msgstr "Protokoll:" #: bookwyrm/templates/setup/config.html:81 msgid "Using S3:" @@ -4359,46 +4378,51 @@ msgid "User profile" msgstr "Benutzer*inprofil" #: bookwyrm/templates/shelf/shelf.html:39 -#: bookwyrm/templatetags/shelf_tags.py:44 bookwyrm/views/shelf/shelf.py:53 +#: bookwyrm/templatetags/shelf_tags.py:46 bookwyrm/views/shelf/shelf.py:53 msgid "All books" msgstr "Alle Bücher" -#: bookwyrm/templates/shelf/shelf.html:96 +#: bookwyrm/templates/shelf/shelf.html:97 #, python-format msgid "%(formatted_count)s book" msgid_plural "%(formatted_count)s books" msgstr[0] "%(formatted_count)s Buch" msgstr[1] "%(formatted_count)s Bücher" -#: bookwyrm/templates/shelf/shelf.html:103 +#: bookwyrm/templates/shelf/shelf.html:104 #, python-format msgid "(showing %(start)s-%(end)s)" msgstr "(Anzeige: %(start)s&endash;%(end)s)" -#: bookwyrm/templates/shelf/shelf.html:115 +#: bookwyrm/templates/shelf/shelf.html:116 msgid "Edit shelf" msgstr "Regal bearbeiten" -#: bookwyrm/templates/shelf/shelf.html:123 +#: bookwyrm/templates/shelf/shelf.html:124 msgid "Delete shelf" msgstr "Regal löschen" -#: bookwyrm/templates/shelf/shelf.html:151 -#: bookwyrm/templates/shelf/shelf.html:177 +#: bookwyrm/templates/shelf/shelf.html:152 +#: bookwyrm/templates/shelf/shelf.html:178 msgid "Shelved" msgstr "Ins Regal gestellt" -#: bookwyrm/templates/shelf/shelf.html:152 -#: bookwyrm/templates/shelf/shelf.html:180 +#: bookwyrm/templates/shelf/shelf.html:153 +#: bookwyrm/templates/shelf/shelf.html:181 msgid "Started" msgstr "Gestartet" -#: bookwyrm/templates/shelf/shelf.html:153 -#: bookwyrm/templates/shelf/shelf.html:183 +#: bookwyrm/templates/shelf/shelf.html:154 +#: bookwyrm/templates/shelf/shelf.html:184 msgid "Finished" msgstr "Abgeschlossen" -#: bookwyrm/templates/shelf/shelf.html:209 +#: bookwyrm/templates/shelf/shelf.html:154 +#: bookwyrm/templates/shelf/shelf.html:184 +msgid "Until" +msgstr "Bis" + +#: bookwyrm/templates/shelf/shelf.html:210 msgid "This shelf is empty." msgstr "Dieses Regal ist leer." @@ -4666,7 +4690,7 @@ msgstr "Ziel setzen" #: bookwyrm/templates/snippets/goal_progress.html:7 msgctxt "Goal successfully completed" msgid "Success!" -msgstr "" +msgstr "Erfolg!" #: bookwyrm/templates/snippets/goal_progress.html:9 #, python-format @@ -4728,7 +4752,7 @@ msgid "(Optional)" msgstr "(Optional)" #: bookwyrm/templates/snippets/reading_modals/progress_update_modal.html:6 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:54 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:61 msgid "Update progress" msgstr "Zwischenstand" @@ -4737,6 +4761,17 @@ msgstr "Zwischenstand" msgid "Start \"%(book_title)s\"" msgstr "„%(book_title)s“ beginnen" +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:6 +#, python-format +msgid "Stop Reading \"%(book_title)s\"" +msgstr "" + +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:32 +#: bookwyrm/templates/snippets/shelf_selector.html:54 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:21 +msgid "Stopped reading" +msgstr "" + #: bookwyrm/templates/snippets/reading_modals/want_to_read_modal.html:6 #, python-format msgid "Want to Read \"%(book_title)s\"" @@ -4784,23 +4819,23 @@ msgstr "Buch verschieben" #: bookwyrm/templates/snippets/shelf_selector.html:39 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:17 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:24 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:33 msgid "Start reading" msgstr "Zu lesen beginnen" -#: bookwyrm/templates/snippets/shelf_selector.html:54 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:31 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:38 +#: bookwyrm/templates/snippets/shelf_selector.html:61 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:38 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:55 msgid "Want to read" msgstr "Auf Leseliste setzen" -#: bookwyrm/templates/snippets/shelf_selector.html:75 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:66 +#: bookwyrm/templates/snippets/shelf_selector.html:82 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:73 #, python-format msgid "Remove from %(name)s" msgstr "Aus %(name)s entfernen" -#: bookwyrm/templates/snippets/shelf_selector.html:88 +#: bookwyrm/templates/snippets/shelf_selector.html:95 msgid "Remove from" msgstr "Entfernen aus" @@ -4808,7 +4843,12 @@ msgstr "Entfernen aus" msgid "More shelves" msgstr "Mehr Regale" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:31 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:31 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:48 +msgid "Stop reading" +msgstr "" + +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:40 msgid "Finish reading" msgstr "Lesen abschließen" @@ -4903,6 +4943,16 @@ msgstr "hat %(book)s von %(book)s" msgstr "hat %(book)s besprochen" +#: bookwyrm/templates/snippets/status/headers/stopped_reading.html:10 +#, python-format +msgid "stopped reading %(book)s by %(author_name)s" +msgstr "" + +#: bookwyrm/templates/snippets/status/headers/stopped_reading.html:17 +#, python-format +msgid "stopped reading %(book)s" +msgstr "" + #: bookwyrm/templates/snippets/status/headers/to_read.html:10 #, python-format msgid "wants to read %(book)s by %(author_name)s" @@ -5043,29 +5093,29 @@ msgstr "%(username)s folgt niemandem" msgid "Edit profile" msgstr "Profil bearbeiten" -#: bookwyrm/templates/user/user.html:37 +#: bookwyrm/templates/user/user.html:38 #, python-format msgid "View all %(size)s" msgstr "Alle %(size)s anzeigen" -#: bookwyrm/templates/user/user.html:51 +#: bookwyrm/templates/user/user.html:52 msgid "View all books" msgstr "Alle Bücher anzeigen" -#: bookwyrm/templates/user/user.html:58 +#: bookwyrm/templates/user/user.html:59 #, python-format msgid "%(current_year)s Reading Goal" msgstr "Leseziel %(current_year)s" -#: bookwyrm/templates/user/user.html:65 +#: bookwyrm/templates/user/user.html:66 msgid "User Activity" msgstr "Benutzer*innenaktivität" -#: bookwyrm/templates/user/user.html:69 +#: bookwyrm/templates/user/user.html:70 msgid "RSS feed" msgstr "RSS-Feed" -#: bookwyrm/templates/user/user.html:80 +#: bookwyrm/templates/user/user.html:81 msgid "No activities yet!" msgstr "Noch keine Aktivitäten!" diff --git a/locale/en_US/LC_MESSAGES/django.po b/locale/en_US/LC_MESSAGES/django.po index 4b96725bf..2ea1905ca 100644 --- a/locale/en_US/LC_MESSAGES/django.po +++ b/locale/en_US/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.0.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-05-31 23:50+0000\n" +"POT-Creation-Date: 2022-06-30 16:55+0000\n" "PO-Revision-Date: 2021-02-28 17:19-0800\n" "Last-Translator: Mouse Reeve \n" "Language-Team: English \n" @@ -4870,11 +4870,15 @@ msgstr "" msgid "(%(percent)s%%)" msgstr "" -#: bookwyrm/templates/snippets/status/content_status.html:126 +#: bookwyrm/templates/snippets/status/content_status.html:116 +msgid "page" +msgstr "" + +#: bookwyrm/templates/snippets/status/content_status.html:129 msgid "Open image in new window" msgstr "" -#: bookwyrm/templates/snippets/status/content_status.html:145 +#: bookwyrm/templates/snippets/status/content_status.html:148 msgid "Hide status" msgstr "" diff --git a/locale/es_ES/LC_MESSAGES/django.mo b/locale/es_ES/LC_MESSAGES/django.mo index ac3c879c224b7d0ec19c665c5026d0f1457921b1..dc20de07a6bf4c16d18155a47658b91302090b0b 100644 GIT binary patch delta 25 hcmZ2{mv!-7)(y2cxy*D83>6FvtV~Tex8IbR3IK;$3C92c delta 25 hcmZ2{mv!-7)(y2cxlDD9OcV?ZtqjaIx8IbR3IK<63CI8d diff --git a/locale/es_ES/LC_MESSAGES/django.po b/locale/es_ES/LC_MESSAGES/django.po index 92dc13654..dc8f4bb26 100644 --- a/locale/es_ES/LC_MESSAGES/django.po +++ b/locale/es_ES/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: bookwyrm\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-05-23 21:04+0000\n" -"PO-Revision-Date: 2022-05-24 01:06\n" +"POT-Creation-Date: 2022-05-31 23:50+0000\n" +"PO-Revision-Date: 2022-06-01 00:55\n" "Last-Translator: Mouse Reeve \n" "Language-Team: Spanish\n" "Language: es\n" @@ -46,6 +46,10 @@ msgstr "Sin límite" msgid "Reading finish date cannot be before start date." msgstr "La fecha final de lectura no puede ser anterior a la fecha de inicio." +#: bookwyrm/forms/forms.py:59 +msgid "Reading stopped date cannot be before start date." +msgstr "" + #: bookwyrm/forms/landing.py:32 msgid "User with this username already exists" msgstr "Este nombre de usuario ya está en uso." @@ -70,8 +74,8 @@ msgstr "Orden de la lista" msgid "Book Title" msgstr "Título" -#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:155 -#: bookwyrm/templates/shelf/shelf.html:187 +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:156 +#: bookwyrm/templates/shelf/shelf.html:188 #: bookwyrm/templates/snippets/create_status/review.html:32 msgid "Rating" msgstr "Valoración" @@ -1075,7 +1079,7 @@ msgid "Add Another Author" msgstr "Añadir Otro Autor" #: bookwyrm/templates/book/edit/edit_book_form.html:220 -#: bookwyrm/templates/shelf/shelf.html:146 +#: bookwyrm/templates/shelf/shelf.html:147 msgid "Cover" msgstr "Portada" @@ -1709,13 +1713,13 @@ msgstr "Añadir a tus libros" #: bookwyrm/templates/get_started/book_preview.html:10 #: bookwyrm/templates/shelf/shelf.html:86 bookwyrm/templates/user/user.html:33 -#: bookwyrm/templatetags/shelf_tags.py:46 +#: bookwyrm/templatetags/shelf_tags.py:48 msgid "To Read" msgstr "Para leer" #: bookwyrm/templates/get_started/book_preview.html:11 #: bookwyrm/templates/shelf/shelf.html:87 bookwyrm/templates/user/user.html:34 -#: bookwyrm/templatetags/shelf_tags.py:48 +#: bookwyrm/templatetags/shelf_tags.py:50 msgid "Currently Reading" msgstr "Leyendo actualmente" @@ -1724,10 +1728,15 @@ msgstr "Leyendo actualmente" #: bookwyrm/templates/snippets/shelf_selector.html:47 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12 -#: bookwyrm/templates/user/user.html:35 bookwyrm/templatetags/shelf_tags.py:50 +#: bookwyrm/templates/user/user.html:35 bookwyrm/templatetags/shelf_tags.py:52 msgid "Read" msgstr "Leído" +#: bookwyrm/templates/get_started/book_preview.html:13 +#: bookwyrm/templates/shelf/shelf.html:89 bookwyrm/templates/user/user.html:36 +msgid "Stopped Reading" +msgstr "" + #: bookwyrm/templates/get_started/books.html:6 msgid "What are you reading?" msgstr "¿Qué estás leyendo?" @@ -2055,8 +2064,8 @@ msgid "Row" msgstr "Fila" #: bookwyrm/templates/import/import_status.html:103 -#: bookwyrm/templates/shelf/shelf.html:147 -#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:148 +#: bookwyrm/templates/shelf/shelf.html:170 msgid "Title" msgstr "Título" @@ -2069,8 +2078,8 @@ msgid "Openlibrary key" msgstr "Clave de OpenLibrary" #: bookwyrm/templates/import/import_status.html:114 -#: bookwyrm/templates/shelf/shelf.html:148 -#: bookwyrm/templates/shelf/shelf.html:172 +#: bookwyrm/templates/shelf/shelf.html:149 +#: bookwyrm/templates/shelf/shelf.html:173 msgid "Author" msgstr "Autor/Autora" @@ -2988,6 +2997,11 @@ msgstr "Terminar \"%(book_title)s\"" msgid "Start \"%(book_title)s\"" msgstr "Empezar \"%(book_title)s\"" +#: bookwyrm/templates/reading_progress/stop.html:5 +#, python-format +msgid "Stop Reading \"%(book_title)s\"" +msgstr "" + #: bookwyrm/templates/reading_progress/want.html:5 #, python-format msgid "Want to Read \"%(book_title)s\"" @@ -3012,6 +3026,7 @@ msgstr "Actualizar fechas de lectura de «%(title)s»" #: bookwyrm/templates/readthrough/readthrough_modal.html:38 #: bookwyrm/templates/snippets/reading_modals/finish_reading_modal.html:24 #: bookwyrm/templates/snippets/reading_modals/start_reading_modal.html:21 +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:24 msgid "Started reading" msgstr "Lectura se empezó" @@ -3020,7 +3035,7 @@ msgstr "Lectura se empezó" msgid "Progress" msgstr "Progreso" -#: bookwyrm/templates/readthrough/readthrough_form.html:24 +#: bookwyrm/templates/readthrough/readthrough_form.html:25 #: bookwyrm/templates/readthrough/readthrough_modal.html:63 #: bookwyrm/templates/snippets/reading_modals/finish_reading_modal.html:32 msgid "Finished reading" @@ -3034,23 +3049,27 @@ msgstr "Actualizaciones de progreso:" msgid "finished" msgstr "terminado" -#: bookwyrm/templates/readthrough/readthrough_list.html:25 +#: bookwyrm/templates/readthrough/readthrough_list.html:16 +msgid "stopped" +msgstr "" + +#: bookwyrm/templates/readthrough/readthrough_list.html:27 msgid "Show all updates" msgstr "Mostrar todas las actualizaciones" -#: bookwyrm/templates/readthrough/readthrough_list.html:41 +#: bookwyrm/templates/readthrough/readthrough_list.html:43 msgid "Delete this progress update" msgstr "Eliminar esta actualización de progreso" -#: bookwyrm/templates/readthrough/readthrough_list.html:53 +#: bookwyrm/templates/readthrough/readthrough_list.html:55 msgid "started" msgstr "empezado" -#: bookwyrm/templates/readthrough/readthrough_list.html:60 +#: bookwyrm/templates/readthrough/readthrough_list.html:62 msgid "Edit read dates" msgstr "Editar fechas de lectura" -#: bookwyrm/templates/readthrough/readthrough_list.html:68 +#: bookwyrm/templates/readthrough/readthrough_list.html:70 msgid "Delete these read dates" msgstr "Eliminar estas fechas de lectura" @@ -4359,46 +4378,51 @@ msgid "User profile" msgstr "Perfil de usuario" #: bookwyrm/templates/shelf/shelf.html:39 -#: bookwyrm/templatetags/shelf_tags.py:44 bookwyrm/views/shelf/shelf.py:53 +#: bookwyrm/templatetags/shelf_tags.py:46 bookwyrm/views/shelf/shelf.py:53 msgid "All books" msgstr "Todos los libros" -#: bookwyrm/templates/shelf/shelf.html:96 +#: bookwyrm/templates/shelf/shelf.html:97 #, python-format msgid "%(formatted_count)s book" msgid_plural "%(formatted_count)s books" msgstr[0] "%(formatted_count)s libro" msgstr[1] "%(formatted_count)s libros" -#: bookwyrm/templates/shelf/shelf.html:103 +#: bookwyrm/templates/shelf/shelf.html:104 #, python-format msgid "(showing %(start)s-%(end)s)" msgstr "(mostrando %(start)s-%(end)s)" -#: bookwyrm/templates/shelf/shelf.html:115 +#: bookwyrm/templates/shelf/shelf.html:116 msgid "Edit shelf" msgstr "Editar estantería" -#: bookwyrm/templates/shelf/shelf.html:123 +#: bookwyrm/templates/shelf/shelf.html:124 msgid "Delete shelf" msgstr "Eliminar estantería" -#: bookwyrm/templates/shelf/shelf.html:151 -#: bookwyrm/templates/shelf/shelf.html:177 +#: bookwyrm/templates/shelf/shelf.html:152 +#: bookwyrm/templates/shelf/shelf.html:178 msgid "Shelved" msgstr "Archivado" -#: bookwyrm/templates/shelf/shelf.html:152 -#: bookwyrm/templates/shelf/shelf.html:180 +#: bookwyrm/templates/shelf/shelf.html:153 +#: bookwyrm/templates/shelf/shelf.html:181 msgid "Started" msgstr "Empezado" -#: bookwyrm/templates/shelf/shelf.html:153 -#: bookwyrm/templates/shelf/shelf.html:183 +#: bookwyrm/templates/shelf/shelf.html:154 +#: bookwyrm/templates/shelf/shelf.html:184 msgid "Finished" msgstr "Terminado" -#: bookwyrm/templates/shelf/shelf.html:209 +#: bookwyrm/templates/shelf/shelf.html:154 +#: bookwyrm/templates/shelf/shelf.html:184 +msgid "Until" +msgstr "" + +#: bookwyrm/templates/shelf/shelf.html:210 msgid "This shelf is empty." msgstr "Esta estantería está vacía." @@ -4728,7 +4752,7 @@ msgid "(Optional)" msgstr "(Opcional)" #: bookwyrm/templates/snippets/reading_modals/progress_update_modal.html:6 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:54 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:61 msgid "Update progress" msgstr "Actualizar progreso" @@ -4737,6 +4761,17 @@ msgstr "Actualizar progreso" msgid "Start \"%(book_title)s\"" msgstr "Empezar \"%(book_title)s\"" +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:6 +#, python-format +msgid "Stop Reading \"%(book_title)s\"" +msgstr "" + +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:32 +#: bookwyrm/templates/snippets/shelf_selector.html:54 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:21 +msgid "Stopped reading" +msgstr "" + #: bookwyrm/templates/snippets/reading_modals/want_to_read_modal.html:6 #, python-format msgid "Want to Read \"%(book_title)s\"" @@ -4784,23 +4819,23 @@ msgstr "Mover libro" #: bookwyrm/templates/snippets/shelf_selector.html:39 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:17 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:24 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:33 msgid "Start reading" msgstr "Empezar a leer" -#: bookwyrm/templates/snippets/shelf_selector.html:54 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:31 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:38 +#: bookwyrm/templates/snippets/shelf_selector.html:61 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:38 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:55 msgid "Want to read" msgstr "Quiero leer" -#: bookwyrm/templates/snippets/shelf_selector.html:75 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:66 +#: bookwyrm/templates/snippets/shelf_selector.html:82 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:73 #, python-format msgid "Remove from %(name)s" msgstr "Quitar de %(name)s" -#: bookwyrm/templates/snippets/shelf_selector.html:88 +#: bookwyrm/templates/snippets/shelf_selector.html:95 msgid "Remove from" msgstr "Eliminar de" @@ -4808,7 +4843,12 @@ msgstr "Eliminar de" msgid "More shelves" msgstr "Más estanterías" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:31 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:31 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:48 +msgid "Stop reading" +msgstr "" + +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:40 msgid "Finish reading" msgstr "Terminar de leer" @@ -4903,6 +4943,16 @@ msgstr "reseñó %(book)s de %(book)s" msgstr "reseñó a %(book)s" +#: bookwyrm/templates/snippets/status/headers/stopped_reading.html:10 +#, python-format +msgid "stopped reading %(book)s by %(author_name)s" +msgstr "" + +#: bookwyrm/templates/snippets/status/headers/stopped_reading.html:17 +#, python-format +msgid "stopped reading %(book)s" +msgstr "" + #: bookwyrm/templates/snippets/status/headers/to_read.html:10 #, python-format msgid "wants to read %(book)s by %(author_name)s" @@ -5043,29 +5093,29 @@ msgstr "%(username)s no sigue a nadie" msgid "Edit profile" msgstr "Editar perfil" -#: bookwyrm/templates/user/user.html:37 +#: bookwyrm/templates/user/user.html:38 #, python-format msgid "View all %(size)s" msgstr "Ver los %(size)s" -#: bookwyrm/templates/user/user.html:51 +#: bookwyrm/templates/user/user.html:52 msgid "View all books" msgstr "Ver todos los libros" -#: bookwyrm/templates/user/user.html:58 +#: bookwyrm/templates/user/user.html:59 #, python-format msgid "%(current_year)s Reading Goal" msgstr "Objetivo de Lectura de %(current_year)s" -#: bookwyrm/templates/user/user.html:65 +#: bookwyrm/templates/user/user.html:66 msgid "User Activity" msgstr "Actividad del usuario" -#: bookwyrm/templates/user/user.html:69 +#: bookwyrm/templates/user/user.html:70 msgid "RSS feed" msgstr "Feed RSS" -#: bookwyrm/templates/user/user.html:80 +#: bookwyrm/templates/user/user.html:81 msgid "No activities yet!" msgstr "¡Aún no actividades!" diff --git a/locale/fi_FI/LC_MESSAGES/django.mo b/locale/fi_FI/LC_MESSAGES/django.mo index a36c6c9337a59868d3f38cac2e617e96175c0262..4fdb39f56a7d5e04a20b6483aff0b4948632b982 100644 GIT binary patch delta 24205 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 V^jP7&E4Z>pV92hgojrc^_#d;tvVQ;o diff --git a/locale/fi_FI/LC_MESSAGES/django.po b/locale/fi_FI/LC_MESSAGES/django.po index 0241e1e41..bb26b0a0b 100644 --- a/locale/fi_FI/LC_MESSAGES/django.po +++ b/locale/fi_FI/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: bookwyrm\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-05-23 21:04+0000\n" -"PO-Revision-Date: 2022-05-24 01:06\n" +"POT-Creation-Date: 2022-05-31 23:50+0000\n" +"PO-Revision-Date: 2022-06-01 09:05\n" "Last-Translator: Mouse Reeve \n" "Language-Team: Finnish\n" "Language: fi\n" @@ -46,6 +46,10 @@ msgstr "rajattomasti" msgid "Reading finish date cannot be before start date." msgstr "Lopetuspäivä ei voi olla ennen aloituspäivää." +#: bookwyrm/forms/forms.py:59 +msgid "Reading stopped date cannot be before start date." +msgstr "Keskeytyspäivä ei voi olla ennen aloituspäivää." + #: bookwyrm/forms/landing.py:32 msgid "User with this username already exists" msgstr "Käyttäjänimi on jo varattu" @@ -70,8 +74,8 @@ msgstr "Lisäysjärjestys" msgid "Book Title" msgstr "Kirjan nimi" -#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:155 -#: bookwyrm/templates/shelf/shelf.html:187 +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:156 +#: bookwyrm/templates/shelf/shelf.html:188 #: bookwyrm/templates/snippets/create_status/review.html:32 msgid "Rating" msgstr "Arvosana" @@ -1075,7 +1079,7 @@ msgid "Add Another Author" msgstr "Yksi tekijä lisää" #: bookwyrm/templates/book/edit/edit_book_form.html:220 -#: bookwyrm/templates/shelf/shelf.html:146 +#: bookwyrm/templates/shelf/shelf.html:147 msgid "Cover" msgstr "Kansikuva" @@ -1709,13 +1713,13 @@ msgstr "Lisää omiin kirjoihin" #: bookwyrm/templates/get_started/book_preview.html:10 #: bookwyrm/templates/shelf/shelf.html:86 bookwyrm/templates/user/user.html:33 -#: bookwyrm/templatetags/shelf_tags.py:46 +#: bookwyrm/templatetags/shelf_tags.py:48 msgid "To Read" msgstr "Lukujono" #: bookwyrm/templates/get_started/book_preview.html:11 #: bookwyrm/templates/shelf/shelf.html:87 bookwyrm/templates/user/user.html:34 -#: bookwyrm/templatetags/shelf_tags.py:48 +#: bookwyrm/templatetags/shelf_tags.py:50 msgid "Currently Reading" msgstr "Luettavana" @@ -1724,10 +1728,15 @@ msgstr "Luettavana" #: bookwyrm/templates/snippets/shelf_selector.html:47 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12 -#: bookwyrm/templates/user/user.html:35 bookwyrm/templatetags/shelf_tags.py:50 +#: bookwyrm/templates/user/user.html:35 bookwyrm/templatetags/shelf_tags.py:52 msgid "Read" msgstr "Luettu" +#: bookwyrm/templates/get_started/book_preview.html:13 +#: bookwyrm/templates/shelf/shelf.html:89 bookwyrm/templates/user/user.html:36 +msgid "Stopped Reading" +msgstr "Keskeytti lukemisen" + #: bookwyrm/templates/get_started/books.html:6 msgid "What are you reading?" msgstr "Mitä luet?" @@ -2055,8 +2064,8 @@ msgid "Row" msgstr "Rivi" #: bookwyrm/templates/import/import_status.html:103 -#: bookwyrm/templates/shelf/shelf.html:147 -#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:148 +#: bookwyrm/templates/shelf/shelf.html:170 msgid "Title" msgstr "Nimi" @@ -2069,8 +2078,8 @@ msgid "Openlibrary key" msgstr "Openlibrary-avain" #: bookwyrm/templates/import/import_status.html:114 -#: bookwyrm/templates/shelf/shelf.html:148 -#: bookwyrm/templates/shelf/shelf.html:172 +#: bookwyrm/templates/shelf/shelf.html:149 +#: bookwyrm/templates/shelf/shelf.html:173 msgid "Author" msgstr "Tekijä" @@ -2988,6 +2997,11 @@ msgstr "Merkitse ”%(book_title)s” luetuksi" msgid "Start \"%(book_title)s\"" msgstr "Aloita ”%(book_title)s”" +#: bookwyrm/templates/reading_progress/stop.html:5 +#, python-format +msgid "Stop Reading \"%(book_title)s\"" +msgstr "Keskeytä teoksen ”%(book_title)s” lukeminen" + #: bookwyrm/templates/reading_progress/want.html:5 #, python-format msgid "Want to Read \"%(book_title)s\"" @@ -3012,6 +3026,7 @@ msgstr "Päivitä teoksen %(title)s lukuajankohtaa" #: bookwyrm/templates/readthrough/readthrough_modal.html:38 #: bookwyrm/templates/snippets/reading_modals/finish_reading_modal.html:24 #: bookwyrm/templates/snippets/reading_modals/start_reading_modal.html:21 +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:24 msgid "Started reading" msgstr "Alkoi lukea" @@ -3020,7 +3035,7 @@ msgstr "Alkoi lukea" msgid "Progress" msgstr "Eteneminen" -#: bookwyrm/templates/readthrough/readthrough_form.html:24 +#: bookwyrm/templates/readthrough/readthrough_form.html:25 #: bookwyrm/templates/readthrough/readthrough_modal.html:63 #: bookwyrm/templates/snippets/reading_modals/finish_reading_modal.html:32 msgid "Finished reading" @@ -3034,23 +3049,27 @@ msgstr "Etenemispäivitykset:" msgid "finished" msgstr "luettu" -#: bookwyrm/templates/readthrough/readthrough_list.html:25 +#: bookwyrm/templates/readthrough/readthrough_list.html:16 +msgid "stopped" +msgstr "keskeytetty" + +#: bookwyrm/templates/readthrough/readthrough_list.html:27 msgid "Show all updates" msgstr "Näytä kaikki päivitykset" -#: bookwyrm/templates/readthrough/readthrough_list.html:41 +#: bookwyrm/templates/readthrough/readthrough_list.html:43 msgid "Delete this progress update" msgstr "Poista etenemispäivitys" -#: bookwyrm/templates/readthrough/readthrough_list.html:53 +#: bookwyrm/templates/readthrough/readthrough_list.html:55 msgid "started" msgstr "aloitettu" -#: bookwyrm/templates/readthrough/readthrough_list.html:60 +#: bookwyrm/templates/readthrough/readthrough_list.html:62 msgid "Edit read dates" msgstr "Muokkaa lukuajankohtaa" -#: bookwyrm/templates/readthrough/readthrough_list.html:68 +#: bookwyrm/templates/readthrough/readthrough_list.html:70 msgid "Delete these read dates" msgstr "Poista lukuajankohta" @@ -4359,46 +4378,51 @@ msgid "User profile" msgstr "Käyttäjäprofiili" #: bookwyrm/templates/shelf/shelf.html:39 -#: bookwyrm/templatetags/shelf_tags.py:44 bookwyrm/views/shelf/shelf.py:53 +#: bookwyrm/templatetags/shelf_tags.py:46 bookwyrm/views/shelf/shelf.py:53 msgid "All books" msgstr "Kaikki kirjat" -#: bookwyrm/templates/shelf/shelf.html:96 +#: bookwyrm/templates/shelf/shelf.html:97 #, python-format msgid "%(formatted_count)s book" msgid_plural "%(formatted_count)s books" msgstr[0] "%(formatted_count)s kirja" msgstr[1] "%(formatted_count)s kirjaa" -#: bookwyrm/templates/shelf/shelf.html:103 +#: bookwyrm/templates/shelf/shelf.html:104 #, python-format msgid "(showing %(start)s-%(end)s)" msgstr "(näytetään %(start)s–%(end)s)" -#: bookwyrm/templates/shelf/shelf.html:115 +#: bookwyrm/templates/shelf/shelf.html:116 msgid "Edit shelf" msgstr "Muokkaa hyllyä" -#: bookwyrm/templates/shelf/shelf.html:123 +#: bookwyrm/templates/shelf/shelf.html:124 msgid "Delete shelf" msgstr "Poista hylly" -#: bookwyrm/templates/shelf/shelf.html:151 -#: bookwyrm/templates/shelf/shelf.html:177 +#: bookwyrm/templates/shelf/shelf.html:152 +#: bookwyrm/templates/shelf/shelf.html:178 msgid "Shelved" msgstr "Hyllytetty" -#: bookwyrm/templates/shelf/shelf.html:152 -#: bookwyrm/templates/shelf/shelf.html:180 +#: bookwyrm/templates/shelf/shelf.html:153 +#: bookwyrm/templates/shelf/shelf.html:181 msgid "Started" msgstr "Aloitettu" -#: bookwyrm/templates/shelf/shelf.html:153 -#: bookwyrm/templates/shelf/shelf.html:183 +#: bookwyrm/templates/shelf/shelf.html:154 +#: bookwyrm/templates/shelf/shelf.html:184 msgid "Finished" msgstr "Lopetettu" -#: bookwyrm/templates/shelf/shelf.html:209 +#: bookwyrm/templates/shelf/shelf.html:154 +#: bookwyrm/templates/shelf/shelf.html:184 +msgid "Until" +msgstr "Saakka" + +#: bookwyrm/templates/shelf/shelf.html:210 msgid "This shelf is empty." msgstr "Hylly on tyhjä." @@ -4728,7 +4752,7 @@ msgid "(Optional)" msgstr "(valinnainen)" #: bookwyrm/templates/snippets/reading_modals/progress_update_modal.html:6 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:54 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:61 msgid "Update progress" msgstr "Etenemispäivitys" @@ -4737,6 +4761,17 @@ msgstr "Etenemispäivitys" msgid "Start \"%(book_title)s\"" msgstr "Aloita %(book_title)s" +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:6 +#, python-format +msgid "Stop Reading \"%(book_title)s\"" +msgstr "Keskeytä teoksen ”%(book_title)s” lukeminen" + +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:32 +#: bookwyrm/templates/snippets/shelf_selector.html:54 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:21 +msgid "Stopped reading" +msgstr "Keskeytti lukemisen" + #: bookwyrm/templates/snippets/reading_modals/want_to_read_modal.html:6 #, python-format msgid "Want to Read \"%(book_title)s\"" @@ -4784,23 +4819,23 @@ msgstr "Siirrä kirja" #: bookwyrm/templates/snippets/shelf_selector.html:39 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:17 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:24 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:33 msgid "Start reading" msgstr "Aloita lukeminen" -#: bookwyrm/templates/snippets/shelf_selector.html:54 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:31 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:38 +#: bookwyrm/templates/snippets/shelf_selector.html:61 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:38 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:55 msgid "Want to read" msgstr "Lisää lukujonoon" -#: bookwyrm/templates/snippets/shelf_selector.html:75 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:66 +#: bookwyrm/templates/snippets/shelf_selector.html:82 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:73 #, python-format msgid "Remove from %(name)s" msgstr "Poista hyllystä %(name)s" -#: bookwyrm/templates/snippets/shelf_selector.html:88 +#: bookwyrm/templates/snippets/shelf_selector.html:95 msgid "Remove from" msgstr "Poista hyllystä" @@ -4808,7 +4843,12 @@ msgstr "Poista hyllystä" msgid "More shelves" msgstr "Lisää hyllyjä" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:31 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:31 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:48 +msgid "Stop reading" +msgstr "Keskeytä lukeminen" + +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:40 msgid "Finish reading" msgstr "Lopeta lukeminen" @@ -4903,6 +4943,16 @@ msgstr "kirjoitti arvion teoksesta %(author_name)s%(book)s" msgstr "kirjoitti arvion teoksesta %(book)s" +#: bookwyrm/templates/snippets/status/headers/stopped_reading.html:10 +#, python-format +msgid "stopped reading %(book)s by %(author_name)s" +msgstr "keskeytti teoksen %(author_name)s: %(book)s lukemisen" + +#: bookwyrm/templates/snippets/status/headers/stopped_reading.html:17 +#, python-format +msgid "stopped reading %(book)s" +msgstr "keskeytti teoksen %(book)s lukemisen" + #: bookwyrm/templates/snippets/status/headers/to_read.html:10 #, python-format msgid "wants to read %(book)s by %(author_name)s" @@ -5043,29 +5093,29 @@ msgstr "%(username)s ei seuraa muita käyttäjiä" msgid "Edit profile" msgstr "Muokkaa profiilia" -#: bookwyrm/templates/user/user.html:37 +#: bookwyrm/templates/user/user.html:38 #, python-format msgid "View all %(size)s" msgstr "Näytä kaikki %(size)s" -#: bookwyrm/templates/user/user.html:51 +#: bookwyrm/templates/user/user.html:52 msgid "View all books" msgstr "Näytä kaikki kirjat" -#: bookwyrm/templates/user/user.html:58 +#: bookwyrm/templates/user/user.html:59 #, python-format msgid "%(current_year)s Reading Goal" msgstr "Lukutavoite vuodelle %(current_year)s" -#: bookwyrm/templates/user/user.html:65 +#: bookwyrm/templates/user/user.html:66 msgid "User Activity" msgstr "Käyttäjän toiminta" -#: bookwyrm/templates/user/user.html:69 +#: bookwyrm/templates/user/user.html:70 msgid "RSS feed" msgstr "RSS-syöte" -#: bookwyrm/templates/user/user.html:80 +#: bookwyrm/templates/user/user.html:81 msgid "No activities yet!" msgstr "Ei toimintaa!" diff --git a/locale/fr_FR/LC_MESSAGES/django.mo b/locale/fr_FR/LC_MESSAGES/django.mo index 1414a05541850774156dd0c1b35482baaca20e5d..827080b0c093c10260aa2e1fdbd71ed2e4884906 100644 GIT binary patch delta 24228 zcmaLf1$0%{!mi=9kq{(6f_q3H2_ZlT4hilS2(HC~6nBbk+*;fV#jUs%hvKd+ULa_3 zD5W@s|NZuyoWp;|y?2c>d8V!DYwew+;|zO|@b|X~-8cLaOn10q5;#s~Tpi#z#}YbD zWCi6qPK&0FlM!2D4jhP~xDeCeNz8(`u^Kwf9H%T)$4H!rdGRFH#}D`o#x!@F{f^^y zHWGP6MsIR6VT%@y6M+L!9j(K(coi9&^8yQC>XwdE8Y^Qh9E;(26|-T|R*sVbb7MLz zf&N$rt79)uzT0v3DdKXRE0~&s7p)y<8+x@dH~xxQNMFLb_zHutYOKlcj=FCm2H+CR zjz=&nK18jQcU#BFfLT%LqS%!Foti{6(p6XxcVZI!%jSQ;oTQVsbDZRuAGK1Y@mp+) z!|@0PVzu^;(-pf~aZNcEsZ~+_WA}E!dI9J zb9ZC(SPzw6ia~e=6XI*@M@&UJUU#++)1o(KK_3jlL|D+4M|NlZl~K-SR6}3VF{m5b zpvrro8tRYnaX4yAMx!6DL3O+rli+zwhHheCdU-+9;QN8R0F}NiY2TS zPz^?-2GkhUaC=ONy{)5A_sv8#ybyzNJ!$}#F)7|ct@u+^eRrjvrl2 zqE@=U%^!zujcg(j?d2TQQY}O^uogArEvU0`5H-+?sD|&MI(~#2_y^PgyaqZ>am;`^ zY;{rht;I>W8`WRUL9D+D>JBm;v_=*5Mh#?uO^-o!Fu^(-b*Pr0R^|+9N$;U%_ymjK zM=Xj32b(k188xAwQ0=c8%=&A@+sM#NPM`*G4b|XnRD%y~`8%7R#J)FtQD-27H2}58 zxovqN)XGJnI*ztBv-us}L^4t^2sMyd)>Sx>^d8h!)Er_4QXkb}TU35m)J*!K208+H zK%8lq4igVGpN82{6DxzMuo7xO?j}TZ20Ea&qBm;9BTx;`u;q(wdL62PUDmUxy}pZi zG21Zn^wh*`q<5fJ@+xY;w@@8FMEY?%Z)}Cc!_CsAL>;b-s6Eey8c3*37eO^p)~0Kr zCeQ>mfp)0-`=Flp0k(V+>b|*{30GnoJ^zP^=*DZPkv_KRzfm2#MwkwgqZ-VJTIzhL z@=~aVtD}~@G3s&af!fmVQ7bwR)$w|a#gnLW>i$cZ9dDur7;luhKP9T3Ke|;ALPQ-EM(t%KRQ@njhm%kvUw~e? z3pMitsD{p>4)JA7fG<&xqzS)RD*L+16^VBx1r9&0o1_GpjPY=Cd9xorhcw5tiSfY7#UiD%BYz)LN9EGnXwCM zPrt{sxCFg%r}ZFeBBwABUP3K>9O?|X#+tK}8kNq48epWGh(=x+bz?(o3)H~cqh{C_ zb@)cu^4X}FEJSZyj)`$S>hauRJ&oFu+t&N2m41SHJl$_>M!IpPp#aoCa-$k5fEqw0 z)Qsw)R;CZ?v=2gmoQ@js7SwMX>eR`wMp!T8^M+Ts0AL>;BU2AB(T;84_z zm!Vc@Cu$2$pz7a64fHMQkU2k?dVZLgWB_VFVK!X?laj7r^J}B$`ENl)9rQspI105# z6HrUH5H+J^sE*d52Cxq`lMASs-bBst1!@AHQ3J>^-h3M_fGTf~+PXgI`TQS9L?fGs z5jY36#HUd!Z~--=N0n%DRGc>0_w*3sHId^g)T9M=Eix*M#9-to6x2XCVrfQ!4XLr{DB6Q;wxsD>|FAEP?{gnGRE zf3i!A`AFACO=y(OpJZKx+S<+Nk9#o`Z~esjE0S!U*_$G$5!XS_o}(HZfm+%LsJ&f` zTCr8A!?gjmQrl2Vd>FNbzvH)f4Rv3o`KG;SRCyye5mjh~dGQpg;g6`Lj<>*k>Lo%w z-~QHc)R`%bYPdEQz(!aa$D=wpjT+!3)I@GrAE54Y|4l?Ae~%f_d!bqSK-3v1fm(@Z zn{J6}us3GFftVg=UQK!blwrn@5;RC1v97k>8?>7H3YJzd7iQLB$^zXbTqKXkq%n}vBaMI;b zThkl!<8WL43#x(rr~#fsHGIpKKeWC^ZBhKCrkyOP0p_;p2y`o>G!Zpa$yR7!)6G#^ z(*-s2;WjiE8&ZWRIOIs25wZW#-p+Wl`^mPRm$-bugTaEI13* z(H7JS>_>I*5;eeh%gs#vP)nQl&BR;hk6Qv(I1Q1bYs;0 z?oLFsMBkwro`8Ch{AeqjMy<>rsE!_?2J{wHKiMiX(Day-bQVY)EO{tuZwsJiQq$%)M|IH7=J!FZ;3(9YS%+Gwo2UW&iF&-B zq55&HF)QWgk^Rq1#Gis7OoEj#DaN2yra9)oo~RklLN&Yxeef`9K!r6{$_!{cQyQmRALpAsrwGzJT%*td(Jw}n34eOvL z&=WO*!RUkIQ0>mb6u1C&XxF1#8C!|yvx z38zMlP8#yK+7;UBi*9n@p^1U0ba8_aVXgnGV9q0UA< z)P3DB6#JoOycpH)2GoFdq6T;ZHIU0T|JDZ9zY!TP$k2_|Hk!R`gu0&q44IL=^z3Jac zw9D*mN>oR|sD{IBx;Scvs)L^I{{x7qfsv@anqbrOQKx?eCdVD94vyLM6HG(;18QKtd(F4!Ak>5^pk`bL z)lPHt!)~bh!}qfO+KX9asG-%UL$cp`8g=7U)BvBLPWLO+%v0?%D^?smhYrPK)OAupJ6x=XYF(Ig_20fely}LYwYQg04c)ipPq8rR4_FH$4w$7JjzdVV zLM?UJLGz7gF@}=9f^{&#Aznt<5UXQq_hFWWNK4F$dr>cvI4pyHNBAJZx|j!-V>Y~i z+3^+j$8<-{*X}78PI?b&rq59mNqEeBc%?xNyaZN7_YXw01(z@kAEVxU>5rSG%!%5P zaGQ?AK+=`42X;iA<{P%W_zAoBs2SHmy+@X#&QOMvro9kkfNrNC5zVM7Cc|&BF7`z) zJc;V)cdU*TPnj3eRMgY49z#_RwN-C05&nxcFyU$Qn~yrE^di&>|Aq1N{0E*fU$29( z6$K5^4|k#(JdG*vJbL3@EQC+7Ee4)7-w(!NGScfX1b1OgyoXh>;5ptQ=td3XfYS8u z`2J@0x*n>7nOF@MU{ZX7n)zF6h2Ks26bvW-25QApoHw>XE&X;Ziar<2gesyx=|<>- z{n4$AF+?=epHTx?hg!mIHh(YXCVd#2;@>tMeUaBJ=>e$wl3y~PA?Yv==^m)Vy#Te9 zpHYvY*Ja0Pf&Q0Se|0pJjDk28V{s2EKgSi5ABM_riG%P6s>2Fb&0f~T)})7`^6#M^ zK0`evu0PC+D-fT%I766&{KD5+{~#hwuA7g~VVI8e2Gl7(hB^~ZQF~eIhFSXgScUXs z?2U!u`1uf5;Zcmb$swg9uUqDj2HrLkDTUgyUYH)2x{2f@vImRcT~tSz@0g|Qi1|q$ zN7eg?I*b8#%{QP3)C6i^UF?OK@fg-%0Dqz;RPaw`j@3~eN8UH>x$6;$A!7h$!P6Lk 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 KcVAb3*Z%-Pj(6?= delta 23702 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 diff --git a/locale/fr_FR/LC_MESSAGES/django.po b/locale/fr_FR/LC_MESSAGES/django.po index 7ec537032..f1cbc5362 100644 --- a/locale/fr_FR/LC_MESSAGES/django.po +++ b/locale/fr_FR/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: bookwyrm\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-05-23 21:04+0000\n" -"PO-Revision-Date: 2022-05-24 01:06\n" +"POT-Creation-Date: 2022-05-31 23:50+0000\n" +"PO-Revision-Date: 2022-06-10 17:57\n" "Last-Translator: Mouse Reeve \n" "Language-Team: French\n" "Language: fr\n" @@ -46,6 +46,10 @@ msgstr "Sans limite" msgid "Reading finish date cannot be before start date." msgstr "La date de fin de lecture ne peut pas être antérieure à la date de début." +#: bookwyrm/forms/forms.py:59 +msgid "Reading stopped date cannot be before start date." +msgstr "La date de fin de lecture ne peut pas être antérieure à la date de début." + #: bookwyrm/forms/landing.py:32 msgid "User with this username already exists" msgstr "Un compte du même nom existe déjà" @@ -70,8 +74,8 @@ msgstr "Ordre de la liste" msgid "Book Title" msgstr "Titre du livre" -#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:155 -#: bookwyrm/templates/shelf/shelf.html:187 +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:156 +#: bookwyrm/templates/shelf/shelf.html:188 #: bookwyrm/templates/snippets/create_status/review.html:32 msgid "Rating" msgstr "Note" @@ -1075,7 +1079,7 @@ msgid "Add Another Author" msgstr "Ajouter un autre auteur ou autrice" #: bookwyrm/templates/book/edit/edit_book_form.html:220 -#: bookwyrm/templates/shelf/shelf.html:146 +#: bookwyrm/templates/shelf/shelf.html:147 msgid "Cover" msgstr "Couverture" @@ -1709,13 +1713,13 @@ msgstr "Ajouter à vos livres" #: bookwyrm/templates/get_started/book_preview.html:10 #: bookwyrm/templates/shelf/shelf.html:86 bookwyrm/templates/user/user.html:33 -#: bookwyrm/templatetags/shelf_tags.py:46 +#: bookwyrm/templatetags/shelf_tags.py:48 msgid "To Read" msgstr "À lire" #: bookwyrm/templates/get_started/book_preview.html:11 #: bookwyrm/templates/shelf/shelf.html:87 bookwyrm/templates/user/user.html:34 -#: bookwyrm/templatetags/shelf_tags.py:48 +#: bookwyrm/templatetags/shelf_tags.py:50 msgid "Currently Reading" msgstr "Lectures en cours" @@ -1724,10 +1728,15 @@ msgstr "Lectures en cours" #: bookwyrm/templates/snippets/shelf_selector.html:47 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12 -#: bookwyrm/templates/user/user.html:35 bookwyrm/templatetags/shelf_tags.py:50 +#: bookwyrm/templates/user/user.html:35 bookwyrm/templatetags/shelf_tags.py:52 msgid "Read" msgstr "Lu" +#: bookwyrm/templates/get_started/book_preview.html:13 +#: bookwyrm/templates/shelf/shelf.html:89 bookwyrm/templates/user/user.html:36 +msgid "Stopped Reading" +msgstr "Lecture interrompue" + #: bookwyrm/templates/get_started/books.html:6 msgid "What are you reading?" msgstr "Que lisez‑vous ?" @@ -2055,8 +2064,8 @@ msgid "Row" msgstr "Ligne" #: bookwyrm/templates/import/import_status.html:103 -#: bookwyrm/templates/shelf/shelf.html:147 -#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:148 +#: bookwyrm/templates/shelf/shelf.html:170 msgid "Title" msgstr "Titre" @@ -2069,8 +2078,8 @@ msgid "Openlibrary key" msgstr "Clé Openlibrary" #: bookwyrm/templates/import/import_status.html:114 -#: bookwyrm/templates/shelf/shelf.html:148 -#: bookwyrm/templates/shelf/shelf.html:172 +#: bookwyrm/templates/shelf/shelf.html:149 +#: bookwyrm/templates/shelf/shelf.html:173 msgid "Author" msgstr "Auteur/autrice" @@ -2988,6 +2997,11 @@ msgstr "Terminer \"%(book_title)s\"" msgid "Start \"%(book_title)s\"" msgstr "Commencer \"%(book_title)s\"" +#: bookwyrm/templates/reading_progress/stop.html:5 +#, python-format +msgid "Stop Reading \"%(book_title)s\"" +msgstr "Interrompre la lecture de « %(book_title)s »" + #: bookwyrm/templates/reading_progress/want.html:5 #, python-format msgid "Want to Read \"%(book_title)s\"" @@ -3012,6 +3026,7 @@ msgstr "Mettre à jour les dates de lecture pour « %(title)s »" #: bookwyrm/templates/readthrough/readthrough_modal.html:38 #: bookwyrm/templates/snippets/reading_modals/finish_reading_modal.html:24 #: bookwyrm/templates/snippets/reading_modals/start_reading_modal.html:21 +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:24 msgid "Started reading" msgstr "Lecture commencée le" @@ -3020,7 +3035,7 @@ msgstr "Lecture commencée le" msgid "Progress" msgstr "Progression" -#: bookwyrm/templates/readthrough/readthrough_form.html:24 +#: bookwyrm/templates/readthrough/readthrough_form.html:25 #: bookwyrm/templates/readthrough/readthrough_modal.html:63 #: bookwyrm/templates/snippets/reading_modals/finish_reading_modal.html:32 msgid "Finished reading" @@ -3034,23 +3049,27 @@ msgstr "Progression :" msgid "finished" msgstr "terminé" -#: bookwyrm/templates/readthrough/readthrough_list.html:25 +#: bookwyrm/templates/readthrough/readthrough_list.html:16 +msgid "stopped" +msgstr "interrompu" + +#: bookwyrm/templates/readthrough/readthrough_list.html:27 msgid "Show all updates" msgstr "Montrer toutes les progressions" -#: bookwyrm/templates/readthrough/readthrough_list.html:41 +#: bookwyrm/templates/readthrough/readthrough_list.html:43 msgid "Delete this progress update" msgstr "Supprimer cette mise à jour" -#: bookwyrm/templates/readthrough/readthrough_list.html:53 +#: bookwyrm/templates/readthrough/readthrough_list.html:55 msgid "started" msgstr "commencé" -#: bookwyrm/templates/readthrough/readthrough_list.html:60 +#: bookwyrm/templates/readthrough/readthrough_list.html:62 msgid "Edit read dates" msgstr "Modifier les date de lecture" -#: bookwyrm/templates/readthrough/readthrough_list.html:68 +#: bookwyrm/templates/readthrough/readthrough_list.html:70 msgid "Delete these read dates" msgstr "Supprimer ces dates de lecture" @@ -4359,46 +4378,51 @@ msgid "User profile" msgstr "Profil utilisateur·rice" #: bookwyrm/templates/shelf/shelf.html:39 -#: bookwyrm/templatetags/shelf_tags.py:44 bookwyrm/views/shelf/shelf.py:53 +#: bookwyrm/templatetags/shelf_tags.py:46 bookwyrm/views/shelf/shelf.py:53 msgid "All books" msgstr "Tous les livres" -#: bookwyrm/templates/shelf/shelf.html:96 +#: bookwyrm/templates/shelf/shelf.html:97 #, python-format msgid "%(formatted_count)s book" msgid_plural "%(formatted_count)s books" msgstr[0] "%(formatted_count)s livre" msgstr[1] "%(formatted_count)s livres" -#: bookwyrm/templates/shelf/shelf.html:103 +#: bookwyrm/templates/shelf/shelf.html:104 #, python-format msgid "(showing %(start)s-%(end)s)" msgstr "(affichage de %(start)s-%(end)s)" -#: bookwyrm/templates/shelf/shelf.html:115 +#: bookwyrm/templates/shelf/shelf.html:116 msgid "Edit shelf" msgstr "Modifier l’étagère" -#: bookwyrm/templates/shelf/shelf.html:123 +#: bookwyrm/templates/shelf/shelf.html:124 msgid "Delete shelf" msgstr "Supprimer l’étagère" -#: bookwyrm/templates/shelf/shelf.html:151 -#: bookwyrm/templates/shelf/shelf.html:177 +#: bookwyrm/templates/shelf/shelf.html:152 +#: bookwyrm/templates/shelf/shelf.html:178 msgid "Shelved" msgstr "Date d’ajout" -#: bookwyrm/templates/shelf/shelf.html:152 -#: bookwyrm/templates/shelf/shelf.html:180 +#: bookwyrm/templates/shelf/shelf.html:153 +#: bookwyrm/templates/shelf/shelf.html:181 msgid "Started" msgstr "Commencé" -#: bookwyrm/templates/shelf/shelf.html:153 -#: bookwyrm/templates/shelf/shelf.html:183 +#: bookwyrm/templates/shelf/shelf.html:154 +#: bookwyrm/templates/shelf/shelf.html:184 msgid "Finished" msgstr "Terminé" -#: bookwyrm/templates/shelf/shelf.html:209 +#: bookwyrm/templates/shelf/shelf.html:154 +#: bookwyrm/templates/shelf/shelf.html:184 +msgid "Until" +msgstr "Jusqu’à" + +#: bookwyrm/templates/shelf/shelf.html:210 msgid "This shelf is empty." msgstr "Cette étagère est vide" @@ -4728,7 +4752,7 @@ msgid "(Optional)" msgstr "(Facultatif)" #: bookwyrm/templates/snippets/reading_modals/progress_update_modal.html:6 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:54 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:61 msgid "Update progress" msgstr "Progression de la mise à jour" @@ -4737,6 +4761,17 @@ msgstr "Progression de la mise à jour" msgid "Start \"%(book_title)s\"" msgstr "Commencer « %(book_title)s »" +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:6 +#, python-format +msgid "Stop Reading \"%(book_title)s\"" +msgstr "Interrompre la lecture de « %(book_title)s »" + +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:32 +#: bookwyrm/templates/snippets/shelf_selector.html:54 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:21 +msgid "Stopped reading" +msgstr "Lecture interrompue" + #: bookwyrm/templates/snippets/reading_modals/want_to_read_modal.html:6 #, python-format msgid "Want to Read \"%(book_title)s\"" @@ -4784,23 +4819,23 @@ msgstr "Déplacer le livre" #: bookwyrm/templates/snippets/shelf_selector.html:39 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:17 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:24 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:33 msgid "Start reading" msgstr "Commencer la lecture" -#: bookwyrm/templates/snippets/shelf_selector.html:54 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:31 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:38 +#: bookwyrm/templates/snippets/shelf_selector.html:61 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:38 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:55 msgid "Want to read" msgstr "Je veux le lire" -#: bookwyrm/templates/snippets/shelf_selector.html:75 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:66 +#: bookwyrm/templates/snippets/shelf_selector.html:82 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:73 #, python-format msgid "Remove from %(name)s" msgstr "Retirer de %(name)s" -#: bookwyrm/templates/snippets/shelf_selector.html:88 +#: bookwyrm/templates/snippets/shelf_selector.html:95 msgid "Remove from" msgstr "Retirer de" @@ -4808,7 +4843,12 @@ msgstr "Retirer de" msgid "More shelves" msgstr "Plus d’étagères" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:31 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:31 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:48 +msgid "Stop reading" +msgstr "Interrompre la lecture" + +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:40 msgid "Finish reading" msgstr "Terminer la lecture" @@ -4903,6 +4943,16 @@ msgstr "a publié une critique de %(book)s par %(book)s" msgstr "a critiqué %(book)s" +#: bookwyrm/templates/snippets/status/headers/stopped_reading.html:10 +#, python-format +msgid "stopped reading %(book)s by %(author_name)s" +msgstr "a interrompu la lecture de %(book)s par %(author_name)s" + +#: bookwyrm/templates/snippets/status/headers/stopped_reading.html:17 +#, python-format +msgid "stopped reading %(book)s" +msgstr "a interrompu la lecture de %(book)s" + #: bookwyrm/templates/snippets/status/headers/to_read.html:10 #, python-format msgid "wants to read %(book)s by %(author_name)s" @@ -5043,29 +5093,29 @@ msgstr "%(username)s ne suit personne" msgid "Edit profile" msgstr "Modifier le profil" -#: bookwyrm/templates/user/user.html:37 +#: bookwyrm/templates/user/user.html:38 #, python-format msgid "View all %(size)s" msgstr "Voir les %(size)s" -#: bookwyrm/templates/user/user.html:51 +#: bookwyrm/templates/user/user.html:52 msgid "View all books" msgstr "Voir tous les livres" -#: bookwyrm/templates/user/user.html:58 +#: bookwyrm/templates/user/user.html:59 #, python-format msgid "%(current_year)s Reading Goal" msgstr "Défi lecture pour %(current_year)s" -#: bookwyrm/templates/user/user.html:65 +#: bookwyrm/templates/user/user.html:66 msgid "User Activity" msgstr "Activité du compte" -#: bookwyrm/templates/user/user.html:69 +#: bookwyrm/templates/user/user.html:70 msgid "RSS feed" msgstr "Flux RSS" -#: bookwyrm/templates/user/user.html:80 +#: bookwyrm/templates/user/user.html:81 msgid "No activities yet!" msgstr "Aucune activité pour l’instant !" diff --git a/locale/gl_ES/LC_MESSAGES/django.mo b/locale/gl_ES/LC_MESSAGES/django.mo index 7f76d9eef71720793e7517b3f59f9bb4709b56a8..08eca4a48ab8511f830eb5b0abf6834411c66cff 100644 GIT binary patch delta 24163 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\n" "Language-Team: Galician\n" "Language: gl\n" @@ -46,6 +46,10 @@ msgstr "Sen límite" msgid "Reading finish date cannot be before start date." msgstr "A data final da lectura non pode ser anterior á de inicio." +#: bookwyrm/forms/forms.py:59 +msgid "Reading stopped date cannot be before start date." +msgstr "A data do fin da lectura non pode ser anterior á de inicio." + #: bookwyrm/forms/landing.py:32 msgid "User with this username already exists" msgstr "Xa existe unha usuaria con este identificador" @@ -70,8 +74,8 @@ msgstr "Orde da lista" msgid "Book Title" msgstr "Título do libro" -#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:155 -#: bookwyrm/templates/shelf/shelf.html:187 +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:156 +#: bookwyrm/templates/shelf/shelf.html:188 #: bookwyrm/templates/snippets/create_status/review.html:32 msgid "Rating" msgstr "Puntuación" @@ -1075,7 +1079,7 @@ msgid "Add Another Author" msgstr "Engade outra Autora" #: bookwyrm/templates/book/edit/edit_book_form.html:220 -#: bookwyrm/templates/shelf/shelf.html:146 +#: bookwyrm/templates/shelf/shelf.html:147 msgid "Cover" msgstr "Portada" @@ -1709,13 +1713,13 @@ msgstr "Engadir aos teus libros" #: bookwyrm/templates/get_started/book_preview.html:10 #: bookwyrm/templates/shelf/shelf.html:86 bookwyrm/templates/user/user.html:33 -#: bookwyrm/templatetags/shelf_tags.py:46 +#: bookwyrm/templatetags/shelf_tags.py:48 msgid "To Read" msgstr "Pendentes" #: bookwyrm/templates/get_started/book_preview.html:11 #: bookwyrm/templates/shelf/shelf.html:87 bookwyrm/templates/user/user.html:34 -#: bookwyrm/templatetags/shelf_tags.py:48 +#: bookwyrm/templatetags/shelf_tags.py:50 msgid "Currently Reading" msgstr "Lectura actual" @@ -1724,10 +1728,15 @@ msgstr "Lectura actual" #: bookwyrm/templates/snippets/shelf_selector.html:47 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12 -#: bookwyrm/templates/user/user.html:35 bookwyrm/templatetags/shelf_tags.py:50 +#: bookwyrm/templates/user/user.html:35 bookwyrm/templatetags/shelf_tags.py:52 msgid "Read" msgstr "Lido" +#: bookwyrm/templates/get_started/book_preview.html:13 +#: bookwyrm/templates/shelf/shelf.html:89 bookwyrm/templates/user/user.html:36 +msgid "Stopped Reading" +msgstr "Deixei de ler" + #: bookwyrm/templates/get_started/books.html:6 msgid "What are you reading?" msgstr "Que estás a ler?" @@ -2055,8 +2064,8 @@ msgid "Row" msgstr "Fila" #: bookwyrm/templates/import/import_status.html:103 -#: bookwyrm/templates/shelf/shelf.html:147 -#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:148 +#: bookwyrm/templates/shelf/shelf.html:170 msgid "Title" msgstr "Título" @@ -2069,8 +2078,8 @@ msgid "Openlibrary key" msgstr "Chave en Openlibrary" #: bookwyrm/templates/import/import_status.html:114 -#: bookwyrm/templates/shelf/shelf.html:148 -#: bookwyrm/templates/shelf/shelf.html:172 +#: bookwyrm/templates/shelf/shelf.html:149 +#: bookwyrm/templates/shelf/shelf.html:173 msgid "Author" msgstr "Autor" @@ -2988,6 +2997,11 @@ msgstr "Acabei \"%(book_title)s\"" msgid "Start \"%(book_title)s\"" msgstr "Comecei \"%(book_title)s\"" +#: bookwyrm/templates/reading_progress/stop.html:5 +#, python-format +msgid "Stop Reading \"%(book_title)s\"" +msgstr "Deixar de ler \"%(book_title)s\"" + #: bookwyrm/templates/reading_progress/want.html:5 #, python-format msgid "Want to Read \"%(book_title)s\"" @@ -3012,6 +3026,7 @@ msgstr "Actualizar as datas de lectura para \"%(title)s\"" #: bookwyrm/templates/readthrough/readthrough_modal.html:38 #: bookwyrm/templates/snippets/reading_modals/finish_reading_modal.html:24 #: bookwyrm/templates/snippets/reading_modals/start_reading_modal.html:21 +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:24 msgid "Started reading" msgstr "Comecei a ler" @@ -3020,7 +3035,7 @@ msgstr "Comecei a ler" msgid "Progress" msgstr "Progreso" -#: bookwyrm/templates/readthrough/readthrough_form.html:24 +#: bookwyrm/templates/readthrough/readthrough_form.html:25 #: bookwyrm/templates/readthrough/readthrough_modal.html:63 #: bookwyrm/templates/snippets/reading_modals/finish_reading_modal.html:32 msgid "Finished reading" @@ -3034,23 +3049,27 @@ msgstr "Actualizacións da lectura:" msgid "finished" msgstr "rematado" -#: bookwyrm/templates/readthrough/readthrough_list.html:25 +#: bookwyrm/templates/readthrough/readthrough_list.html:16 +msgid "stopped" +msgstr "detido" + +#: bookwyrm/templates/readthrough/readthrough_list.html:27 msgid "Show all updates" msgstr "Mostrar tódalas actualizacións" -#: bookwyrm/templates/readthrough/readthrough_list.html:41 +#: bookwyrm/templates/readthrough/readthrough_list.html:43 msgid "Delete this progress update" msgstr "Eliminar esta actualización da lectura" -#: bookwyrm/templates/readthrough/readthrough_list.html:53 +#: bookwyrm/templates/readthrough/readthrough_list.html:55 msgid "started" msgstr "iniciado" -#: bookwyrm/templates/readthrough/readthrough_list.html:60 +#: bookwyrm/templates/readthrough/readthrough_list.html:62 msgid "Edit read dates" msgstr "Editar datas da lectura" -#: bookwyrm/templates/readthrough/readthrough_list.html:68 +#: bookwyrm/templates/readthrough/readthrough_list.html:70 msgid "Delete these read dates" msgstr "Eliminar estas datas da lectura" @@ -4359,46 +4378,51 @@ msgid "User profile" msgstr "Perfil da usuaria" #: bookwyrm/templates/shelf/shelf.html:39 -#: bookwyrm/templatetags/shelf_tags.py:44 bookwyrm/views/shelf/shelf.py:53 +#: bookwyrm/templatetags/shelf_tags.py:46 bookwyrm/views/shelf/shelf.py:53 msgid "All books" msgstr "Tódolos libros" -#: bookwyrm/templates/shelf/shelf.html:96 +#: bookwyrm/templates/shelf/shelf.html:97 #, python-format msgid "%(formatted_count)s book" msgid_plural "%(formatted_count)s books" msgstr[0] "%(formatted_count)s libro" msgstr[1] "%(formatted_count)s libros" -#: bookwyrm/templates/shelf/shelf.html:103 +#: bookwyrm/templates/shelf/shelf.html:104 #, python-format msgid "(showing %(start)s-%(end)s)" msgstr "(mostrando %(start)s-%(end)s)" -#: bookwyrm/templates/shelf/shelf.html:115 +#: bookwyrm/templates/shelf/shelf.html:116 msgid "Edit shelf" msgstr "Editar estante" -#: bookwyrm/templates/shelf/shelf.html:123 +#: bookwyrm/templates/shelf/shelf.html:124 msgid "Delete shelf" msgstr "Eliminar estante" -#: bookwyrm/templates/shelf/shelf.html:151 -#: bookwyrm/templates/shelf/shelf.html:177 +#: bookwyrm/templates/shelf/shelf.html:152 +#: bookwyrm/templates/shelf/shelf.html:178 msgid "Shelved" msgstr "No estante" -#: bookwyrm/templates/shelf/shelf.html:152 -#: bookwyrm/templates/shelf/shelf.html:180 +#: bookwyrm/templates/shelf/shelf.html:153 +#: bookwyrm/templates/shelf/shelf.html:181 msgid "Started" msgstr "Comezado" -#: bookwyrm/templates/shelf/shelf.html:153 -#: bookwyrm/templates/shelf/shelf.html:183 +#: bookwyrm/templates/shelf/shelf.html:154 +#: bookwyrm/templates/shelf/shelf.html:184 msgid "Finished" msgstr "Rematado" -#: bookwyrm/templates/shelf/shelf.html:209 +#: bookwyrm/templates/shelf/shelf.html:154 +#: bookwyrm/templates/shelf/shelf.html:184 +msgid "Until" +msgstr "Ata" + +#: bookwyrm/templates/shelf/shelf.html:210 msgid "This shelf is empty." msgstr "Este estante esta baleiro." @@ -4728,7 +4752,7 @@ msgid "(Optional)" msgstr "(Optativo)" #: bookwyrm/templates/snippets/reading_modals/progress_update_modal.html:6 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:54 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:61 msgid "Update progress" msgstr "Actualización do progreso" @@ -4737,6 +4761,17 @@ msgstr "Actualización do progreso" msgid "Start \"%(book_title)s\"" msgstr "Comecei a ler \"%(book_title)s\"" +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:6 +#, python-format +msgid "Stop Reading \"%(book_title)s\"" +msgstr "Deixar de ler \"%(book_title)s\"" + +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:32 +#: bookwyrm/templates/snippets/shelf_selector.html:54 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:21 +msgid "Stopped reading" +msgstr "Deixei de ler" + #: bookwyrm/templates/snippets/reading_modals/want_to_read_modal.html:6 #, python-format msgid "Want to Read \"%(book_title)s\"" @@ -4784,23 +4819,23 @@ msgstr "Mover libro" #: bookwyrm/templates/snippets/shelf_selector.html:39 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:17 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:24 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:33 msgid "Start reading" msgstr "Comezar a ler" -#: bookwyrm/templates/snippets/shelf_selector.html:54 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:31 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:38 +#: bookwyrm/templates/snippets/shelf_selector.html:61 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:38 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:55 msgid "Want to read" msgstr "Quero ler" -#: bookwyrm/templates/snippets/shelf_selector.html:75 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:66 +#: bookwyrm/templates/snippets/shelf_selector.html:82 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:73 #, python-format msgid "Remove from %(name)s" msgstr "Eliminar de %(name)s" -#: bookwyrm/templates/snippets/shelf_selector.html:88 +#: bookwyrm/templates/snippets/shelf_selector.html:95 msgid "Remove from" msgstr "Eliminar de" @@ -4808,7 +4843,12 @@ msgstr "Eliminar de" msgid "More shelves" msgstr "Máis estantes" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:31 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:31 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:48 +msgid "Stop reading" +msgstr "Deixar de ler" + +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:40 msgid "Finish reading" msgstr "Rematar a lectura" @@ -4903,6 +4943,16 @@ msgstr "recensionou %(book)s de %(book)s" msgstr "recensionou %(book)s" +#: bookwyrm/templates/snippets/status/headers/stopped_reading.html:10 +#, python-format +msgid "stopped reading %(book)s by %(author_name)s" +msgstr "deixei de ler %(book)s de %(author_name)s" + +#: bookwyrm/templates/snippets/status/headers/stopped_reading.html:17 +#, python-format +msgid "stopped reading %(book)s" +msgstr "deixei de ler %(book)s" + #: bookwyrm/templates/snippets/status/headers/to_read.html:10 #, python-format msgid "wants to read %(book)s by %(author_name)s" @@ -5043,29 +5093,29 @@ msgstr "%(username)s non segue a ninguén" msgid "Edit profile" msgstr "Editar perfil" -#: bookwyrm/templates/user/user.html:37 +#: bookwyrm/templates/user/user.html:38 #, python-format msgid "View all %(size)s" msgstr "Ver tódolos %(size)s" -#: bookwyrm/templates/user/user.html:51 +#: bookwyrm/templates/user/user.html:52 msgid "View all books" msgstr "Ver tódolos libros" -#: bookwyrm/templates/user/user.html:58 +#: bookwyrm/templates/user/user.html:59 #, python-format msgid "%(current_year)s Reading Goal" msgstr "Obxectivo de Lectura para %(current_year)s" -#: bookwyrm/templates/user/user.html:65 +#: bookwyrm/templates/user/user.html:66 msgid "User Activity" msgstr "Actividade da usuaria" -#: bookwyrm/templates/user/user.html:69 +#: bookwyrm/templates/user/user.html:70 msgid "RSS feed" msgstr "Fonte RSS" -#: bookwyrm/templates/user/user.html:80 +#: bookwyrm/templates/user/user.html:81 msgid "No activities yet!" msgstr "Sen actividade!" diff --git a/locale/it_IT/LC_MESSAGES/django.mo b/locale/it_IT/LC_MESSAGES/django.mo index 25657558b66666de4c3e924b32accca50c522b3f..97519011a01c19ea7ebe7f36b861c56d01caabd4 100644 GIT binary patch delta 25 hcmX?lgZ1bQ)(y2cxy*D83>6FvtV~Tex8K}12>^}v3ZMW0 delta 25 hcmX?lgZ1bQ)(y2cxlDD9OcV?ZtqjaIx8K}12>^}~3ZVc1 diff --git a/locale/it_IT/LC_MESSAGES/django.po b/locale/it_IT/LC_MESSAGES/django.po index 5e53007b2..9ee240bf2 100644 --- a/locale/it_IT/LC_MESSAGES/django.po +++ b/locale/it_IT/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: bookwyrm\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-05-23 21:04+0000\n" -"PO-Revision-Date: 2022-05-24 01:06\n" +"POT-Creation-Date: 2022-05-31 23:50+0000\n" +"PO-Revision-Date: 2022-06-01 00:55\n" "Last-Translator: Mouse Reeve \n" "Language-Team: Italian\n" "Language: it\n" @@ -46,6 +46,10 @@ msgstr "Illimitato" msgid "Reading finish date cannot be before start date." msgstr "La data di fine lettura non può essere precedente alla data di inizio." +#: bookwyrm/forms/forms.py:59 +msgid "Reading stopped date cannot be before start date." +msgstr "" + #: bookwyrm/forms/landing.py:32 msgid "User with this username already exists" msgstr "Esiste già un utente con questo nome utente" @@ -70,8 +74,8 @@ msgstr "Ordina Lista" msgid "Book Title" msgstr "Titolo del libro" -#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:155 -#: bookwyrm/templates/shelf/shelf.html:187 +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:156 +#: bookwyrm/templates/shelf/shelf.html:188 #: bookwyrm/templates/snippets/create_status/review.html:32 msgid "Rating" msgstr "Valutazione" @@ -1075,7 +1079,7 @@ msgid "Add Another Author" msgstr "Aggiungi un altro autore" #: bookwyrm/templates/book/edit/edit_book_form.html:220 -#: bookwyrm/templates/shelf/shelf.html:146 +#: bookwyrm/templates/shelf/shelf.html:147 msgid "Cover" msgstr "Copertina" @@ -1709,13 +1713,13 @@ msgstr "Aggiungi ai tuoi libri" #: bookwyrm/templates/get_started/book_preview.html:10 #: bookwyrm/templates/shelf/shelf.html:86 bookwyrm/templates/user/user.html:33 -#: bookwyrm/templatetags/shelf_tags.py:46 +#: bookwyrm/templatetags/shelf_tags.py:48 msgid "To Read" msgstr "Da leggere" #: bookwyrm/templates/get_started/book_preview.html:11 #: bookwyrm/templates/shelf/shelf.html:87 bookwyrm/templates/user/user.html:34 -#: bookwyrm/templatetags/shelf_tags.py:48 +#: bookwyrm/templatetags/shelf_tags.py:50 msgid "Currently Reading" msgstr "Letture correnti" @@ -1724,10 +1728,15 @@ msgstr "Letture correnti" #: bookwyrm/templates/snippets/shelf_selector.html:47 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12 -#: bookwyrm/templates/user/user.html:35 bookwyrm/templatetags/shelf_tags.py:50 +#: bookwyrm/templates/user/user.html:35 bookwyrm/templatetags/shelf_tags.py:52 msgid "Read" msgstr "Letti" +#: bookwyrm/templates/get_started/book_preview.html:13 +#: bookwyrm/templates/shelf/shelf.html:89 bookwyrm/templates/user/user.html:36 +msgid "Stopped Reading" +msgstr "" + #: bookwyrm/templates/get_started/books.html:6 msgid "What are you reading?" msgstr "Cosa stai leggendo?" @@ -2055,8 +2064,8 @@ msgid "Row" msgstr "Riga" #: bookwyrm/templates/import/import_status.html:103 -#: bookwyrm/templates/shelf/shelf.html:147 -#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:148 +#: bookwyrm/templates/shelf/shelf.html:170 msgid "Title" msgstr "Titolo" @@ -2069,8 +2078,8 @@ msgid "Openlibrary key" msgstr "Chiave OpenLibrary" #: bookwyrm/templates/import/import_status.html:114 -#: bookwyrm/templates/shelf/shelf.html:148 -#: bookwyrm/templates/shelf/shelf.html:172 +#: bookwyrm/templates/shelf/shelf.html:149 +#: bookwyrm/templates/shelf/shelf.html:173 msgid "Author" msgstr "Autore" @@ -2988,6 +2997,11 @@ msgstr "Termina \"%(book_title)s\"" msgid "Start \"%(book_title)s\"" msgstr "Inizia \"%(book_title)s\"" +#: bookwyrm/templates/reading_progress/stop.html:5 +#, python-format +msgid "Stop Reading \"%(book_title)s\"" +msgstr "" + #: bookwyrm/templates/reading_progress/want.html:5 #, python-format msgid "Want to Read \"%(book_title)s\"" @@ -3012,6 +3026,7 @@ msgstr "Aggiorna date di lettura per \"%(title)s\"" #: bookwyrm/templates/readthrough/readthrough_modal.html:38 #: bookwyrm/templates/snippets/reading_modals/finish_reading_modal.html:24 #: bookwyrm/templates/snippets/reading_modals/start_reading_modal.html:21 +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:24 msgid "Started reading" msgstr "Inizia la lettura" @@ -3020,7 +3035,7 @@ msgstr "Inizia la lettura" msgid "Progress" msgstr "Avanzamento" -#: bookwyrm/templates/readthrough/readthrough_form.html:24 +#: bookwyrm/templates/readthrough/readthrough_form.html:25 #: bookwyrm/templates/readthrough/readthrough_modal.html:63 #: bookwyrm/templates/snippets/reading_modals/finish_reading_modal.html:32 msgid "Finished reading" @@ -3034,23 +3049,27 @@ msgstr "Aggiornamento progressi:" msgid "finished" msgstr "completato" -#: bookwyrm/templates/readthrough/readthrough_list.html:25 +#: bookwyrm/templates/readthrough/readthrough_list.html:16 +msgid "stopped" +msgstr "" + +#: bookwyrm/templates/readthrough/readthrough_list.html:27 msgid "Show all updates" msgstr "Mostra tutti gli aggiornamenti" -#: bookwyrm/templates/readthrough/readthrough_list.html:41 +#: bookwyrm/templates/readthrough/readthrough_list.html:43 msgid "Delete this progress update" msgstr "Elimina questo aggiornamento" -#: bookwyrm/templates/readthrough/readthrough_list.html:53 +#: bookwyrm/templates/readthrough/readthrough_list.html:55 msgid "started" msgstr "iniziato" -#: bookwyrm/templates/readthrough/readthrough_list.html:60 +#: bookwyrm/templates/readthrough/readthrough_list.html:62 msgid "Edit read dates" msgstr "Modifica data di lettura" -#: bookwyrm/templates/readthrough/readthrough_list.html:68 +#: bookwyrm/templates/readthrough/readthrough_list.html:70 msgid "Delete these read dates" msgstr "Elimina queste date di lettura" @@ -4359,46 +4378,51 @@ msgid "User profile" msgstr "Profilo utente" #: bookwyrm/templates/shelf/shelf.html:39 -#: bookwyrm/templatetags/shelf_tags.py:44 bookwyrm/views/shelf/shelf.py:53 +#: bookwyrm/templatetags/shelf_tags.py:46 bookwyrm/views/shelf/shelf.py:53 msgid "All books" msgstr "Tutti i libri" -#: bookwyrm/templates/shelf/shelf.html:96 +#: bookwyrm/templates/shelf/shelf.html:97 #, python-format msgid "%(formatted_count)s book" msgid_plural "%(formatted_count)s books" msgstr[0] "%(formatted_count)s libro" msgstr[1] "%(formatted_count)s libri" -#: bookwyrm/templates/shelf/shelf.html:103 +#: bookwyrm/templates/shelf/shelf.html:104 #, python-format msgid "(showing %(start)s-%(end)s)" msgstr "(mostra %(start)s-%(end)s)" -#: bookwyrm/templates/shelf/shelf.html:115 +#: bookwyrm/templates/shelf/shelf.html:116 msgid "Edit shelf" msgstr "Modifica scaffale" -#: bookwyrm/templates/shelf/shelf.html:123 +#: bookwyrm/templates/shelf/shelf.html:124 msgid "Delete shelf" msgstr "Elimina scaffale" -#: bookwyrm/templates/shelf/shelf.html:151 -#: bookwyrm/templates/shelf/shelf.html:177 +#: bookwyrm/templates/shelf/shelf.html:152 +#: bookwyrm/templates/shelf/shelf.html:178 msgid "Shelved" msgstr "Scaffali" -#: bookwyrm/templates/shelf/shelf.html:152 -#: bookwyrm/templates/shelf/shelf.html:180 +#: bookwyrm/templates/shelf/shelf.html:153 +#: bookwyrm/templates/shelf/shelf.html:181 msgid "Started" msgstr "Iniziato" -#: bookwyrm/templates/shelf/shelf.html:153 -#: bookwyrm/templates/shelf/shelf.html:183 +#: bookwyrm/templates/shelf/shelf.html:154 +#: bookwyrm/templates/shelf/shelf.html:184 msgid "Finished" msgstr "Completato" -#: bookwyrm/templates/shelf/shelf.html:209 +#: bookwyrm/templates/shelf/shelf.html:154 +#: bookwyrm/templates/shelf/shelf.html:184 +msgid "Until" +msgstr "" + +#: bookwyrm/templates/shelf/shelf.html:210 msgid "This shelf is empty." msgstr "Questo scaffale è vuoto." @@ -4728,7 +4752,7 @@ msgid "(Optional)" msgstr "(Opzionale)" #: bookwyrm/templates/snippets/reading_modals/progress_update_modal.html:6 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:54 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:61 msgid "Update progress" msgstr "Aggiornamento in corso" @@ -4737,6 +4761,17 @@ msgstr "Aggiornamento in corso" msgid "Start \"%(book_title)s\"" msgstr "Inizia \"%(book_title)s \"" +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:6 +#, python-format +msgid "Stop Reading \"%(book_title)s\"" +msgstr "" + +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:32 +#: bookwyrm/templates/snippets/shelf_selector.html:54 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:21 +msgid "Stopped reading" +msgstr "" + #: bookwyrm/templates/snippets/reading_modals/want_to_read_modal.html:6 #, python-format msgid "Want to Read \"%(book_title)s\"" @@ -4784,23 +4819,23 @@ msgstr "Sposta libro" #: bookwyrm/templates/snippets/shelf_selector.html:39 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:17 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:24 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:33 msgid "Start reading" msgstr "Inizia la lettura" -#: bookwyrm/templates/snippets/shelf_selector.html:54 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:31 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:38 +#: bookwyrm/templates/snippets/shelf_selector.html:61 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:38 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:55 msgid "Want to read" msgstr "Vuoi leggere" -#: bookwyrm/templates/snippets/shelf_selector.html:75 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:66 +#: bookwyrm/templates/snippets/shelf_selector.html:82 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:73 #, python-format msgid "Remove from %(name)s" msgstr "Rimuovi da %(name)s" -#: bookwyrm/templates/snippets/shelf_selector.html:88 +#: bookwyrm/templates/snippets/shelf_selector.html:95 msgid "Remove from" msgstr "Rimuovi da" @@ -4808,7 +4843,12 @@ msgstr "Rimuovi da" msgid "More shelves" msgstr "Altri scaffali" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:31 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:31 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:48 +msgid "Stop reading" +msgstr "" + +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:40 msgid "Finish reading" msgstr "Finito di leggere" @@ -4903,6 +4943,16 @@ msgstr "ha recensito %(book)s di %(book)s" msgstr "ha recensito %(book)s" +#: bookwyrm/templates/snippets/status/headers/stopped_reading.html:10 +#, python-format +msgid "stopped reading %(book)s by %(author_name)s" +msgstr "" + +#: bookwyrm/templates/snippets/status/headers/stopped_reading.html:17 +#, python-format +msgid "stopped reading %(book)s" +msgstr "" + #: bookwyrm/templates/snippets/status/headers/to_read.html:10 #, python-format msgid "wants to read %(book)s by %(author_name)s" @@ -5043,29 +5093,29 @@ msgstr "%(username)s non sta seguendo nessun utente" msgid "Edit profile" msgstr "Modifica profilo" -#: bookwyrm/templates/user/user.html:37 +#: bookwyrm/templates/user/user.html:38 #, python-format msgid "View all %(size)s" msgstr "Visualizza tutti i %(size)s" -#: bookwyrm/templates/user/user.html:51 +#: bookwyrm/templates/user/user.html:52 msgid "View all books" msgstr "Visualizza tutti i libri" -#: bookwyrm/templates/user/user.html:58 +#: bookwyrm/templates/user/user.html:59 #, python-format msgid "%(current_year)s Reading Goal" msgstr "Obiettivo di lettura %(current_year)s" -#: bookwyrm/templates/user/user.html:65 +#: bookwyrm/templates/user/user.html:66 msgid "User Activity" msgstr "Attività dell’utente" -#: bookwyrm/templates/user/user.html:69 +#: bookwyrm/templates/user/user.html:70 msgid "RSS feed" msgstr "Feed RSS" -#: bookwyrm/templates/user/user.html:80 +#: bookwyrm/templates/user/user.html:81 msgid "No activities yet!" msgstr "Ancora nessuna attività!" diff --git a/locale/lt_LT/LC_MESSAGES/django.mo b/locale/lt_LT/LC_MESSAGES/django.mo index cccee2cfc7740a9e736856d27b0052d4492deca3..91350fa48d824d18b0aa12728b334123d679613e 100644 GIT binary patch delta 25 hcmX^2iuK$p)(y2cxy*D83>6FvtV~Tex8FQI8vv5y3g`d; delta 25 hcmX^2iuK$p)(y2cxlDD9OcV?ZtqjaIx8FQI8vv623h4j< diff --git a/locale/lt_LT/LC_MESSAGES/django.po b/locale/lt_LT/LC_MESSAGES/django.po index a2a83ca86..0f33bc60c 100644 --- a/locale/lt_LT/LC_MESSAGES/django.po +++ b/locale/lt_LT/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: bookwyrm\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-05-23 21:04+0000\n" -"PO-Revision-Date: 2022-05-24 01:06\n" +"POT-Creation-Date: 2022-05-31 23:50+0000\n" +"PO-Revision-Date: 2022-06-01 00:55\n" "Last-Translator: Mouse Reeve \n" "Language-Team: Lithuanian\n" "Language: lt\n" @@ -46,6 +46,10 @@ msgstr "Neribota" msgid "Reading finish date cannot be before start date." msgstr "Skaitymo pabaigos data negali būti prieš skaitymo pradžios datą." +#: bookwyrm/forms/forms.py:59 +msgid "Reading stopped date cannot be before start date." +msgstr "" + #: bookwyrm/forms/landing.py:32 msgid "User with this username already exists" msgstr "Toks naudotojo vardas jau egzistuoja" @@ -70,8 +74,8 @@ msgstr "Kaip pridėta į sąrašą" msgid "Book Title" msgstr "Knygos antraštė" -#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:155 -#: bookwyrm/templates/shelf/shelf.html:187 +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:156 +#: bookwyrm/templates/shelf/shelf.html:188 #: bookwyrm/templates/snippets/create_status/review.html:32 msgid "Rating" msgstr "Įvertinimas" @@ -1087,7 +1091,7 @@ msgid "Add Another Author" msgstr "Pridėti dar vieną autorių" #: bookwyrm/templates/book/edit/edit_book_form.html:220 -#: bookwyrm/templates/shelf/shelf.html:146 +#: bookwyrm/templates/shelf/shelf.html:147 msgid "Cover" msgstr "Viršelis" @@ -1725,13 +1729,13 @@ msgstr "Pridėti prie savo knygų" #: bookwyrm/templates/get_started/book_preview.html:10 #: bookwyrm/templates/shelf/shelf.html:86 bookwyrm/templates/user/user.html:33 -#: bookwyrm/templatetags/shelf_tags.py:46 +#: bookwyrm/templatetags/shelf_tags.py:48 msgid "To Read" msgstr "Norimos perskaityti" #: bookwyrm/templates/get_started/book_preview.html:11 #: bookwyrm/templates/shelf/shelf.html:87 bookwyrm/templates/user/user.html:34 -#: bookwyrm/templatetags/shelf_tags.py:48 +#: bookwyrm/templatetags/shelf_tags.py:50 msgid "Currently Reading" msgstr "Šiuo metu skaitomos" @@ -1740,10 +1744,15 @@ msgstr "Šiuo metu skaitomos" #: bookwyrm/templates/snippets/shelf_selector.html:47 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12 -#: bookwyrm/templates/user/user.html:35 bookwyrm/templatetags/shelf_tags.py:50 +#: bookwyrm/templates/user/user.html:35 bookwyrm/templatetags/shelf_tags.py:52 msgid "Read" msgstr "Perskaitytos" +#: bookwyrm/templates/get_started/book_preview.html:13 +#: bookwyrm/templates/shelf/shelf.html:89 bookwyrm/templates/user/user.html:36 +msgid "Stopped Reading" +msgstr "" + #: bookwyrm/templates/get_started/books.html:6 msgid "What are you reading?" msgstr "Ką skaitome?" @@ -2079,8 +2088,8 @@ msgid "Row" msgstr "Eilutė" #: bookwyrm/templates/import/import_status.html:103 -#: bookwyrm/templates/shelf/shelf.html:147 -#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:148 +#: bookwyrm/templates/shelf/shelf.html:170 msgid "Title" msgstr "Pavadinimas" @@ -2093,8 +2102,8 @@ msgid "Openlibrary key" msgstr "„Openlibrary“ raktas" #: bookwyrm/templates/import/import_status.html:114 -#: bookwyrm/templates/shelf/shelf.html:148 -#: bookwyrm/templates/shelf/shelf.html:172 +#: bookwyrm/templates/shelf/shelf.html:149 +#: bookwyrm/templates/shelf/shelf.html:173 msgid "Author" msgstr "Autorius" @@ -3012,6 +3021,11 @@ msgstr "Užbaigti „%(book_title)s“" msgid "Start \"%(book_title)s\"" msgstr "Pradėti „%(book_title)s“" +#: bookwyrm/templates/reading_progress/stop.html:5 +#, python-format +msgid "Stop Reading \"%(book_title)s\"" +msgstr "" + #: bookwyrm/templates/reading_progress/want.html:5 #, python-format msgid "Want to Read \"%(book_title)s\"" @@ -3036,6 +3050,7 @@ msgstr "Atnaujinkite knygos „%(title)s“ skaitymo datas" #: bookwyrm/templates/readthrough/readthrough_modal.html:38 #: bookwyrm/templates/snippets/reading_modals/finish_reading_modal.html:24 #: bookwyrm/templates/snippets/reading_modals/start_reading_modal.html:21 +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:24 msgid "Started reading" msgstr "Pradėjo skaityti" @@ -3044,7 +3059,7 @@ msgstr "Pradėjo skaityti" msgid "Progress" msgstr "Progresas" -#: bookwyrm/templates/readthrough/readthrough_form.html:24 +#: bookwyrm/templates/readthrough/readthrough_form.html:25 #: bookwyrm/templates/readthrough/readthrough_modal.html:63 #: bookwyrm/templates/snippets/reading_modals/finish_reading_modal.html:32 msgid "Finished reading" @@ -3058,23 +3073,27 @@ msgstr "Informacija apie progresą:" msgid "finished" msgstr "baigta" -#: bookwyrm/templates/readthrough/readthrough_list.html:25 +#: bookwyrm/templates/readthrough/readthrough_list.html:16 +msgid "stopped" +msgstr "" + +#: bookwyrm/templates/readthrough/readthrough_list.html:27 msgid "Show all updates" msgstr "Rodyti visus naujinius" -#: bookwyrm/templates/readthrough/readthrough_list.html:41 +#: bookwyrm/templates/readthrough/readthrough_list.html:43 msgid "Delete this progress update" msgstr "Ištrinti progreso naujinį" -#: bookwyrm/templates/readthrough/readthrough_list.html:53 +#: bookwyrm/templates/readthrough/readthrough_list.html:55 msgid "started" msgstr "pradėta" -#: bookwyrm/templates/readthrough/readthrough_list.html:60 +#: bookwyrm/templates/readthrough/readthrough_list.html:62 msgid "Edit read dates" msgstr "Redaguoti skaitymo datas" -#: bookwyrm/templates/readthrough/readthrough_list.html:68 +#: bookwyrm/templates/readthrough/readthrough_list.html:70 msgid "Delete these read dates" msgstr "Ištrinti šias skaitymo datas" @@ -4391,11 +4410,11 @@ msgid "User profile" msgstr "Nario paskyra" #: bookwyrm/templates/shelf/shelf.html:39 -#: bookwyrm/templatetags/shelf_tags.py:44 bookwyrm/views/shelf/shelf.py:53 +#: bookwyrm/templatetags/shelf_tags.py:46 bookwyrm/views/shelf/shelf.py:53 msgid "All books" msgstr "Visos knygos" -#: bookwyrm/templates/shelf/shelf.html:96 +#: bookwyrm/templates/shelf/shelf.html:97 #, python-format msgid "%(formatted_count)s book" msgid_plural "%(formatted_count)s books" @@ -4404,35 +4423,40 @@ msgstr[1] "%(formatted_count)s knygos" msgstr[2] "%(formatted_count)s knygų" msgstr[3] "%(formatted_count)s knygos" -#: bookwyrm/templates/shelf/shelf.html:103 +#: bookwyrm/templates/shelf/shelf.html:104 #, python-format msgid "(showing %(start)s-%(end)s)" msgstr "(rodoma %(start)s–%(end)s)" -#: bookwyrm/templates/shelf/shelf.html:115 +#: bookwyrm/templates/shelf/shelf.html:116 msgid "Edit shelf" msgstr "Redaguoti lentyną" -#: bookwyrm/templates/shelf/shelf.html:123 +#: bookwyrm/templates/shelf/shelf.html:124 msgid "Delete shelf" msgstr "Ištrinti lentyną" -#: bookwyrm/templates/shelf/shelf.html:151 -#: bookwyrm/templates/shelf/shelf.html:177 +#: bookwyrm/templates/shelf/shelf.html:152 +#: bookwyrm/templates/shelf/shelf.html:178 msgid "Shelved" msgstr "Sudėta į lentynas" -#: bookwyrm/templates/shelf/shelf.html:152 -#: bookwyrm/templates/shelf/shelf.html:180 +#: bookwyrm/templates/shelf/shelf.html:153 +#: bookwyrm/templates/shelf/shelf.html:181 msgid "Started" msgstr "Pradėta" -#: bookwyrm/templates/shelf/shelf.html:153 -#: bookwyrm/templates/shelf/shelf.html:183 +#: bookwyrm/templates/shelf/shelf.html:154 +#: bookwyrm/templates/shelf/shelf.html:184 msgid "Finished" msgstr "Baigta" -#: bookwyrm/templates/shelf/shelf.html:209 +#: bookwyrm/templates/shelf/shelf.html:154 +#: bookwyrm/templates/shelf/shelf.html:184 +msgid "Until" +msgstr "" + +#: bookwyrm/templates/shelf/shelf.html:210 msgid "This shelf is empty." msgstr "Ši lentyna tuščia." @@ -4774,7 +4798,7 @@ msgid "(Optional)" msgstr "(Nebūtina)" #: bookwyrm/templates/snippets/reading_modals/progress_update_modal.html:6 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:54 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:61 msgid "Update progress" msgstr "Atnaujinti progresą" @@ -4783,6 +4807,17 @@ msgstr "Atnaujinti progresą" msgid "Start \"%(book_title)s\"" msgstr "Pradėti „%(book_title)s“" +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:6 +#, python-format +msgid "Stop Reading \"%(book_title)s\"" +msgstr "" + +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:32 +#: bookwyrm/templates/snippets/shelf_selector.html:54 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:21 +msgid "Stopped reading" +msgstr "" + #: bookwyrm/templates/snippets/reading_modals/want_to_read_modal.html:6 #, python-format msgid "Want to Read \"%(book_title)s\"" @@ -4830,23 +4865,23 @@ msgstr "Perkelti knygą" #: bookwyrm/templates/snippets/shelf_selector.html:39 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:17 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:24 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:33 msgid "Start reading" msgstr "Pradėti skaityti" -#: bookwyrm/templates/snippets/shelf_selector.html:54 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:31 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:38 +#: bookwyrm/templates/snippets/shelf_selector.html:61 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:38 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:55 msgid "Want to read" msgstr "Noriu perskaityti" -#: bookwyrm/templates/snippets/shelf_selector.html:75 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:66 +#: bookwyrm/templates/snippets/shelf_selector.html:82 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:73 #, python-format msgid "Remove from %(name)s" msgstr "Pašalinti iš %(name)s" -#: bookwyrm/templates/snippets/shelf_selector.html:88 +#: bookwyrm/templates/snippets/shelf_selector.html:95 msgid "Remove from" msgstr "Panaikinti iš" @@ -4854,7 +4889,12 @@ msgstr "Panaikinti iš" msgid "More shelves" msgstr "Daugiau lentynų" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:31 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:31 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:48 +msgid "Stop reading" +msgstr "" + +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:40 msgid "Finish reading" msgstr "Baigti skaityti" @@ -4949,6 +4989,16 @@ msgstr "apžvelgė autoriaus %(author_name)s kny msgid "reviewed %(book)s" msgstr "apžvelgė %(book)s" +#: bookwyrm/templates/snippets/status/headers/stopped_reading.html:10 +#, python-format +msgid "stopped reading %(book)s by %(author_name)s" +msgstr "" + +#: bookwyrm/templates/snippets/status/headers/stopped_reading.html:17 +#, python-format +msgid "stopped reading %(book)s" +msgstr "" + #: bookwyrm/templates/snippets/status/headers/to_read.html:10 #, python-format msgid "wants to read %(book)s by %(author_name)s" @@ -5089,29 +5139,29 @@ msgstr "%(username)s nieko neseka" msgid "Edit profile" msgstr "Redaguoti paskyrą" -#: bookwyrm/templates/user/user.html:37 +#: bookwyrm/templates/user/user.html:38 #, python-format msgid "View all %(size)s" msgstr "Žiūrėti visas %(size)s" -#: bookwyrm/templates/user/user.html:51 +#: bookwyrm/templates/user/user.html:52 msgid "View all books" msgstr "Žiūrėti visas knygas" -#: bookwyrm/templates/user/user.html:58 +#: bookwyrm/templates/user/user.html:59 #, python-format msgid "%(current_year)s Reading Goal" msgstr "%(current_year)s skaitymo tikslas" -#: bookwyrm/templates/user/user.html:65 +#: bookwyrm/templates/user/user.html:66 msgid "User Activity" msgstr "Naudotojo aktyvumas" -#: bookwyrm/templates/user/user.html:69 +#: bookwyrm/templates/user/user.html:70 msgid "RSS feed" msgstr "RSS srautas" -#: bookwyrm/templates/user/user.html:80 +#: bookwyrm/templates/user/user.html:81 msgid "No activities yet!" msgstr "Įrašų dar nėra" diff --git a/locale/no_NO/LC_MESSAGES/django.mo b/locale/no_NO/LC_MESSAGES/django.mo index 5ed2511ca983f6df576a7eecf3a41cbd3f52325e..b7357cd251b9dda4234bdd81d7c354b4967af6d6 100644 GIT binary patch delta 25 hcmccgn&r}KmJJ*CbD8NH7%CVTSecq`-o0PE3;>jj3Qqt4 delta 25 hcmccgn&r}KmJJ*CbD8QInJ5?-S{aya-o0PE3;>j;3Qzz5 diff --git a/locale/no_NO/LC_MESSAGES/django.po b/locale/no_NO/LC_MESSAGES/django.po index 3d94300af..4434f489b 100644 --- a/locale/no_NO/LC_MESSAGES/django.po +++ b/locale/no_NO/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: bookwyrm\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-05-23 21:04+0000\n" -"PO-Revision-Date: 2022-05-24 01:06\n" +"POT-Creation-Date: 2022-05-31 23:50+0000\n" +"PO-Revision-Date: 2022-06-01 00:55\n" "Last-Translator: Mouse Reeve \n" "Language-Team: Norwegian\n" "Language: no\n" @@ -46,6 +46,10 @@ msgstr "Ubegrenset" msgid "Reading finish date cannot be before start date." msgstr "Sluttdato kan ikke være før startdato." +#: bookwyrm/forms/forms.py:59 +msgid "Reading stopped date cannot be before start date." +msgstr "" + #: bookwyrm/forms/landing.py:32 msgid "User with this username already exists" msgstr "" @@ -70,8 +74,8 @@ msgstr "Liste rekkefølge" msgid "Book Title" msgstr "Boktittel" -#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:155 -#: bookwyrm/templates/shelf/shelf.html:187 +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:156 +#: bookwyrm/templates/shelf/shelf.html:188 #: bookwyrm/templates/snippets/create_status/review.html:32 msgid "Rating" msgstr "Vurdering" @@ -1075,7 +1079,7 @@ msgid "Add Another Author" msgstr "Legg til enda en forfatter" #: bookwyrm/templates/book/edit/edit_book_form.html:220 -#: bookwyrm/templates/shelf/shelf.html:146 +#: bookwyrm/templates/shelf/shelf.html:147 msgid "Cover" msgstr "Omslag" @@ -1709,13 +1713,13 @@ msgstr "Legg til i bøkene dine" #: bookwyrm/templates/get_started/book_preview.html:10 #: bookwyrm/templates/shelf/shelf.html:86 bookwyrm/templates/user/user.html:33 -#: bookwyrm/templatetags/shelf_tags.py:46 +#: bookwyrm/templatetags/shelf_tags.py:48 msgid "To Read" msgstr "Å lese" #: bookwyrm/templates/get_started/book_preview.html:11 #: bookwyrm/templates/shelf/shelf.html:87 bookwyrm/templates/user/user.html:34 -#: bookwyrm/templatetags/shelf_tags.py:48 +#: bookwyrm/templatetags/shelf_tags.py:50 msgid "Currently Reading" msgstr "Leser nå" @@ -1724,10 +1728,15 @@ msgstr "Leser nå" #: bookwyrm/templates/snippets/shelf_selector.html:47 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12 -#: bookwyrm/templates/user/user.html:35 bookwyrm/templatetags/shelf_tags.py:50 +#: bookwyrm/templates/user/user.html:35 bookwyrm/templatetags/shelf_tags.py:52 msgid "Read" msgstr "Lest" +#: bookwyrm/templates/get_started/book_preview.html:13 +#: bookwyrm/templates/shelf/shelf.html:89 bookwyrm/templates/user/user.html:36 +msgid "Stopped Reading" +msgstr "" + #: bookwyrm/templates/get_started/books.html:6 msgid "What are you reading?" msgstr "Hva er det du leser nå?" @@ -2055,8 +2064,8 @@ msgid "Row" msgstr "Rad" #: bookwyrm/templates/import/import_status.html:103 -#: bookwyrm/templates/shelf/shelf.html:147 -#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:148 +#: bookwyrm/templates/shelf/shelf.html:170 msgid "Title" msgstr "Tittel" @@ -2069,8 +2078,8 @@ msgid "Openlibrary key" msgstr "Openlibrary nøkkel" #: bookwyrm/templates/import/import_status.html:114 -#: bookwyrm/templates/shelf/shelf.html:148 -#: bookwyrm/templates/shelf/shelf.html:172 +#: bookwyrm/templates/shelf/shelf.html:149 +#: bookwyrm/templates/shelf/shelf.html:173 msgid "Author" msgstr "Forfatter" @@ -2988,6 +2997,11 @@ msgstr "Fullfør \"%(book_title)s\"" msgid "Start \"%(book_title)s\"" msgstr "Start \"%(book_title)s" +#: bookwyrm/templates/reading_progress/stop.html:5 +#, python-format +msgid "Stop Reading \"%(book_title)s\"" +msgstr "" + #: bookwyrm/templates/reading_progress/want.html:5 #, python-format msgid "Want to Read \"%(book_title)s\"" @@ -3012,6 +3026,7 @@ msgstr "Oppdatér lesedatoer for \"%(title)s\"" #: bookwyrm/templates/readthrough/readthrough_modal.html:38 #: bookwyrm/templates/snippets/reading_modals/finish_reading_modal.html:24 #: bookwyrm/templates/snippets/reading_modals/start_reading_modal.html:21 +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:24 msgid "Started reading" msgstr "Begynte å lese" @@ -3020,7 +3035,7 @@ msgstr "Begynte å lese" msgid "Progress" msgstr "Fremdrift" -#: bookwyrm/templates/readthrough/readthrough_form.html:24 +#: bookwyrm/templates/readthrough/readthrough_form.html:25 #: bookwyrm/templates/readthrough/readthrough_modal.html:63 #: bookwyrm/templates/snippets/reading_modals/finish_reading_modal.html:32 msgid "Finished reading" @@ -3034,23 +3049,27 @@ msgstr "Fremdriftsoppdateringer:" msgid "finished" msgstr "ferdig" -#: bookwyrm/templates/readthrough/readthrough_list.html:25 +#: bookwyrm/templates/readthrough/readthrough_list.html:16 +msgid "stopped" +msgstr "" + +#: bookwyrm/templates/readthrough/readthrough_list.html:27 msgid "Show all updates" msgstr "Vis alle oppdateringer" -#: bookwyrm/templates/readthrough/readthrough_list.html:41 +#: bookwyrm/templates/readthrough/readthrough_list.html:43 msgid "Delete this progress update" msgstr "Slett denne fremgangsoppdateringen" -#: bookwyrm/templates/readthrough/readthrough_list.html:53 +#: bookwyrm/templates/readthrough/readthrough_list.html:55 msgid "started" msgstr "startet" -#: bookwyrm/templates/readthrough/readthrough_list.html:60 +#: bookwyrm/templates/readthrough/readthrough_list.html:62 msgid "Edit read dates" msgstr "Rediger lesedatoer" -#: bookwyrm/templates/readthrough/readthrough_list.html:68 +#: bookwyrm/templates/readthrough/readthrough_list.html:70 msgid "Delete these read dates" msgstr "Slett disse lesedatoene" @@ -4357,46 +4376,51 @@ msgid "User profile" msgstr "Brukerprofil" #: bookwyrm/templates/shelf/shelf.html:39 -#: bookwyrm/templatetags/shelf_tags.py:44 bookwyrm/views/shelf/shelf.py:53 +#: bookwyrm/templatetags/shelf_tags.py:46 bookwyrm/views/shelf/shelf.py:53 msgid "All books" msgstr "Alle bøker" -#: bookwyrm/templates/shelf/shelf.html:96 +#: bookwyrm/templates/shelf/shelf.html:97 #, python-format msgid "%(formatted_count)s book" msgid_plural "%(formatted_count)s books" msgstr[0] "%(formatted_count)s bok" msgstr[1] "%(formatted_count)s bøker" -#: bookwyrm/templates/shelf/shelf.html:103 +#: bookwyrm/templates/shelf/shelf.html:104 #, python-format msgid "(showing %(start)s-%(end)s)" msgstr "(viser %(start)s-%(end)s)" -#: bookwyrm/templates/shelf/shelf.html:115 +#: bookwyrm/templates/shelf/shelf.html:116 msgid "Edit shelf" msgstr "Rediger hylle" -#: bookwyrm/templates/shelf/shelf.html:123 +#: bookwyrm/templates/shelf/shelf.html:124 msgid "Delete shelf" msgstr "Slett hylle" -#: bookwyrm/templates/shelf/shelf.html:151 -#: bookwyrm/templates/shelf/shelf.html:177 +#: bookwyrm/templates/shelf/shelf.html:152 +#: bookwyrm/templates/shelf/shelf.html:178 msgid "Shelved" msgstr "Lagt på hylla" -#: bookwyrm/templates/shelf/shelf.html:152 -#: bookwyrm/templates/shelf/shelf.html:180 +#: bookwyrm/templates/shelf/shelf.html:153 +#: bookwyrm/templates/shelf/shelf.html:181 msgid "Started" msgstr "Startet" -#: bookwyrm/templates/shelf/shelf.html:153 -#: bookwyrm/templates/shelf/shelf.html:183 +#: bookwyrm/templates/shelf/shelf.html:154 +#: bookwyrm/templates/shelf/shelf.html:184 msgid "Finished" msgstr "Fullført" -#: bookwyrm/templates/shelf/shelf.html:209 +#: bookwyrm/templates/shelf/shelf.html:154 +#: bookwyrm/templates/shelf/shelf.html:184 +msgid "Until" +msgstr "" + +#: bookwyrm/templates/shelf/shelf.html:210 msgid "This shelf is empty." msgstr "Denne hylla er tom." @@ -4726,7 +4750,7 @@ msgid "(Optional)" msgstr "(Valgfritt)" #: bookwyrm/templates/snippets/reading_modals/progress_update_modal.html:6 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:54 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:61 msgid "Update progress" msgstr "Oppdater fremgang" @@ -4735,6 +4759,17 @@ msgstr "Oppdater fremgang" msgid "Start \"%(book_title)s\"" msgstr "Start \"%(book_title)s\"" +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:6 +#, python-format +msgid "Stop Reading \"%(book_title)s\"" +msgstr "" + +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:32 +#: bookwyrm/templates/snippets/shelf_selector.html:54 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:21 +msgid "Stopped reading" +msgstr "" + #: bookwyrm/templates/snippets/reading_modals/want_to_read_modal.html:6 #, python-format msgid "Want to Read \"%(book_title)s\"" @@ -4782,23 +4817,23 @@ msgstr "Flytt bok" #: bookwyrm/templates/snippets/shelf_selector.html:39 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:17 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:24 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:33 msgid "Start reading" msgstr "Begynn å lese" -#: bookwyrm/templates/snippets/shelf_selector.html:54 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:31 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:38 +#: bookwyrm/templates/snippets/shelf_selector.html:61 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:38 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:55 msgid "Want to read" msgstr "Ønsker å lese" -#: bookwyrm/templates/snippets/shelf_selector.html:75 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:66 +#: bookwyrm/templates/snippets/shelf_selector.html:82 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:73 #, python-format msgid "Remove from %(name)s" msgstr "Fjern fra %(name)s" -#: bookwyrm/templates/snippets/shelf_selector.html:88 +#: bookwyrm/templates/snippets/shelf_selector.html:95 msgid "Remove from" msgstr "Fjern fra" @@ -4806,7 +4841,12 @@ msgstr "Fjern fra" msgid "More shelves" msgstr "Flere hyller" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:31 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:31 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:48 +msgid "Stop reading" +msgstr "" + +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:40 msgid "Finish reading" msgstr "Fullfør lesing" @@ -4901,6 +4941,16 @@ msgstr "anmeldte %(book)s av %(book)s" msgstr "anmeldte %(book)s" +#: bookwyrm/templates/snippets/status/headers/stopped_reading.html:10 +#, python-format +msgid "stopped reading %(book)s by %(author_name)s" +msgstr "" + +#: bookwyrm/templates/snippets/status/headers/stopped_reading.html:17 +#, python-format +msgid "stopped reading %(book)s" +msgstr "" + #: bookwyrm/templates/snippets/status/headers/to_read.html:10 #, python-format msgid "wants to read %(book)s by %(author_name)s" @@ -5041,29 +5091,29 @@ msgstr "%(username)s følger ingen andre medlemmer" msgid "Edit profile" msgstr "Rediger profil" -#: bookwyrm/templates/user/user.html:37 +#: bookwyrm/templates/user/user.html:38 #, python-format msgid "View all %(size)s" msgstr "Vis alle %(size)s" -#: bookwyrm/templates/user/user.html:51 +#: bookwyrm/templates/user/user.html:52 msgid "View all books" msgstr "Se alle bøker" -#: bookwyrm/templates/user/user.html:58 +#: bookwyrm/templates/user/user.html:59 #, python-format msgid "%(current_year)s Reading Goal" msgstr "%(current_year)s lesemål" -#: bookwyrm/templates/user/user.html:65 +#: bookwyrm/templates/user/user.html:66 msgid "User Activity" msgstr "Brukeraktivitet" -#: bookwyrm/templates/user/user.html:69 +#: bookwyrm/templates/user/user.html:70 msgid "RSS feed" msgstr "RSS strøm" -#: bookwyrm/templates/user/user.html:80 +#: bookwyrm/templates/user/user.html:81 msgid "No activities yet!" msgstr "Ingen aktivitet enda!" diff --git a/locale/pt_BR/LC_MESSAGES/django.mo b/locale/pt_BR/LC_MESSAGES/django.mo index a67f03752977dd5bf848eb84e8426cff2b52f4c2..917f0cd45500c157b2d0c5e668b08f3d42ed3a21 100644 GIT binary patch delta 25 hcmX?liS_6u)(y2cxy*D83>6FvtV~Tex8K~?4*-nj3XuQ+ delta 25 hcmX?liS_6u)(y2cxlDD9OcV?ZtqjaIx8K~?4*-n;3X%W- diff --git a/locale/pt_BR/LC_MESSAGES/django.po b/locale/pt_BR/LC_MESSAGES/django.po index 371e46ec6..aa0534052 100644 --- a/locale/pt_BR/LC_MESSAGES/django.po +++ b/locale/pt_BR/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: bookwyrm\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-05-23 21:04+0000\n" -"PO-Revision-Date: 2022-05-24 01:06\n" +"POT-Creation-Date: 2022-05-31 23:50+0000\n" +"PO-Revision-Date: 2022-06-01 00:55\n" "Last-Translator: Mouse Reeve \n" "Language-Team: Portuguese, Brazilian\n" "Language: pt\n" @@ -46,6 +46,10 @@ msgstr "Ilimitado" msgid "Reading finish date cannot be before start date." msgstr "A data de término da leitura não pode ser anterior a de início." +#: bookwyrm/forms/forms.py:59 +msgid "Reading stopped date cannot be before start date." +msgstr "" + #: bookwyrm/forms/landing.py:32 msgid "User with this username already exists" msgstr "Um usuário com este nome já existe" @@ -70,8 +74,8 @@ msgstr "Ordem de inserção" msgid "Book Title" msgstr "Título do livro" -#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:155 -#: bookwyrm/templates/shelf/shelf.html:187 +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:156 +#: bookwyrm/templates/shelf/shelf.html:188 #: bookwyrm/templates/snippets/create_status/review.html:32 msgid "Rating" msgstr "Avaliação" @@ -1075,7 +1079,7 @@ msgid "Add Another Author" msgstr "Adicionar outro/a autor/a" #: bookwyrm/templates/book/edit/edit_book_form.html:220 -#: bookwyrm/templates/shelf/shelf.html:146 +#: bookwyrm/templates/shelf/shelf.html:147 msgid "Cover" msgstr "Capa" @@ -1709,13 +1713,13 @@ msgstr "Adicionar aos seus livros" #: bookwyrm/templates/get_started/book_preview.html:10 #: bookwyrm/templates/shelf/shelf.html:86 bookwyrm/templates/user/user.html:33 -#: bookwyrm/templatetags/shelf_tags.py:46 +#: bookwyrm/templatetags/shelf_tags.py:48 msgid "To Read" msgstr "Quero ler" #: bookwyrm/templates/get_started/book_preview.html:11 #: bookwyrm/templates/shelf/shelf.html:87 bookwyrm/templates/user/user.html:34 -#: bookwyrm/templatetags/shelf_tags.py:48 +#: bookwyrm/templatetags/shelf_tags.py:50 msgid "Currently Reading" msgstr "Lendo atualmente" @@ -1724,10 +1728,15 @@ msgstr "Lendo atualmente" #: bookwyrm/templates/snippets/shelf_selector.html:47 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12 -#: bookwyrm/templates/user/user.html:35 bookwyrm/templatetags/shelf_tags.py:50 +#: bookwyrm/templates/user/user.html:35 bookwyrm/templatetags/shelf_tags.py:52 msgid "Read" msgstr "Lido" +#: bookwyrm/templates/get_started/book_preview.html:13 +#: bookwyrm/templates/shelf/shelf.html:89 bookwyrm/templates/user/user.html:36 +msgid "Stopped Reading" +msgstr "" + #: bookwyrm/templates/get_started/books.html:6 msgid "What are you reading?" msgstr "O que você está lendo?" @@ -2055,8 +2064,8 @@ msgid "Row" msgstr "Linha" #: bookwyrm/templates/import/import_status.html:103 -#: bookwyrm/templates/shelf/shelf.html:147 -#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:148 +#: bookwyrm/templates/shelf/shelf.html:170 msgid "Title" msgstr "Título" @@ -2069,8 +2078,8 @@ msgid "Openlibrary key" msgstr "Chave Openlibrary" #: bookwyrm/templates/import/import_status.html:114 -#: bookwyrm/templates/shelf/shelf.html:148 -#: bookwyrm/templates/shelf/shelf.html:172 +#: bookwyrm/templates/shelf/shelf.html:149 +#: bookwyrm/templates/shelf/shelf.html:173 msgid "Author" msgstr "Autor/a" @@ -2988,6 +2997,11 @@ msgstr "Terminar \"%(book_title)s\"" msgid "Start \"%(book_title)s\"" msgstr "Começar \"%(book_title)s\"" +#: bookwyrm/templates/reading_progress/stop.html:5 +#, python-format +msgid "Stop Reading \"%(book_title)s\"" +msgstr "" + #: bookwyrm/templates/reading_progress/want.html:5 #, python-format msgid "Want to Read \"%(book_title)s\"" @@ -3012,6 +3026,7 @@ msgstr "Atualizar datas de leitura de \"%(title)s\"" #: bookwyrm/templates/readthrough/readthrough_modal.html:38 #: bookwyrm/templates/snippets/reading_modals/finish_reading_modal.html:24 #: bookwyrm/templates/snippets/reading_modals/start_reading_modal.html:21 +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:24 msgid "Started reading" msgstr "Começou a ler" @@ -3020,7 +3035,7 @@ msgstr "Começou a ler" msgid "Progress" msgstr "Andamento" -#: bookwyrm/templates/readthrough/readthrough_form.html:24 +#: bookwyrm/templates/readthrough/readthrough_form.html:25 #: bookwyrm/templates/readthrough/readthrough_modal.html:63 #: bookwyrm/templates/snippets/reading_modals/finish_reading_modal.html:32 msgid "Finished reading" @@ -3034,23 +3049,27 @@ msgstr "Registro de leitura:" msgid "finished" msgstr "terminado" -#: bookwyrm/templates/readthrough/readthrough_list.html:25 +#: bookwyrm/templates/readthrough/readthrough_list.html:16 +msgid "stopped" +msgstr "" + +#: bookwyrm/templates/readthrough/readthrough_list.html:27 msgid "Show all updates" msgstr "Mostrar andamento da leitura" -#: bookwyrm/templates/readthrough/readthrough_list.html:41 +#: bookwyrm/templates/readthrough/readthrough_list.html:43 msgid "Delete this progress update" msgstr "Excluir esta atualização de andamento" -#: bookwyrm/templates/readthrough/readthrough_list.html:53 +#: bookwyrm/templates/readthrough/readthrough_list.html:55 msgid "started" msgstr "iniciado" -#: bookwyrm/templates/readthrough/readthrough_list.html:60 +#: bookwyrm/templates/readthrough/readthrough_list.html:62 msgid "Edit read dates" msgstr "Editar registro de leitura" -#: bookwyrm/templates/readthrough/readthrough_list.html:68 +#: bookwyrm/templates/readthrough/readthrough_list.html:70 msgid "Delete these read dates" msgstr "Excluir estas datas de leitura" @@ -4359,46 +4378,51 @@ msgid "User profile" msgstr "Perfil do usuário" #: bookwyrm/templates/shelf/shelf.html:39 -#: bookwyrm/templatetags/shelf_tags.py:44 bookwyrm/views/shelf/shelf.py:53 +#: bookwyrm/templatetags/shelf_tags.py:46 bookwyrm/views/shelf/shelf.py:53 msgid "All books" msgstr "Todos os livros" -#: bookwyrm/templates/shelf/shelf.html:96 +#: bookwyrm/templates/shelf/shelf.html:97 #, python-format msgid "%(formatted_count)s book" msgid_plural "%(formatted_count)s books" msgstr[0] "%(formatted_count)s livro" msgstr[1] "%(formatted_count)s livros" -#: bookwyrm/templates/shelf/shelf.html:103 +#: bookwyrm/templates/shelf/shelf.html:104 #, python-format msgid "(showing %(start)s-%(end)s)" msgstr "(mostrando %(start)s-%(end)s)" -#: bookwyrm/templates/shelf/shelf.html:115 +#: bookwyrm/templates/shelf/shelf.html:116 msgid "Edit shelf" msgstr "Editar estante" -#: bookwyrm/templates/shelf/shelf.html:123 +#: bookwyrm/templates/shelf/shelf.html:124 msgid "Delete shelf" msgstr "Excluir estante" -#: bookwyrm/templates/shelf/shelf.html:151 -#: bookwyrm/templates/shelf/shelf.html:177 +#: bookwyrm/templates/shelf/shelf.html:152 +#: bookwyrm/templates/shelf/shelf.html:178 msgid "Shelved" msgstr "Adicionado" -#: bookwyrm/templates/shelf/shelf.html:152 -#: bookwyrm/templates/shelf/shelf.html:180 +#: bookwyrm/templates/shelf/shelf.html:153 +#: bookwyrm/templates/shelf/shelf.html:181 msgid "Started" msgstr "Iniciado" -#: bookwyrm/templates/shelf/shelf.html:153 -#: bookwyrm/templates/shelf/shelf.html:183 +#: bookwyrm/templates/shelf/shelf.html:154 +#: bookwyrm/templates/shelf/shelf.html:184 msgid "Finished" msgstr "Terminado" -#: bookwyrm/templates/shelf/shelf.html:209 +#: bookwyrm/templates/shelf/shelf.html:154 +#: bookwyrm/templates/shelf/shelf.html:184 +msgid "Until" +msgstr "" + +#: bookwyrm/templates/shelf/shelf.html:210 msgid "This shelf is empty." msgstr "Esta estante está vazia." @@ -4728,7 +4752,7 @@ msgid "(Optional)" msgstr "(Opcional)" #: bookwyrm/templates/snippets/reading_modals/progress_update_modal.html:6 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:54 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:61 msgid "Update progress" msgstr "Atualizar andamento" @@ -4737,6 +4761,17 @@ msgstr "Atualizar andamento" msgid "Start \"%(book_title)s\"" msgstr "Começar \"%(book_title)s\"" +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:6 +#, python-format +msgid "Stop Reading \"%(book_title)s\"" +msgstr "" + +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:32 +#: bookwyrm/templates/snippets/shelf_selector.html:54 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:21 +msgid "Stopped reading" +msgstr "" + #: bookwyrm/templates/snippets/reading_modals/want_to_read_modal.html:6 #, python-format msgid "Want to Read \"%(book_title)s\"" @@ -4784,23 +4819,23 @@ msgstr "Mover livro" #: bookwyrm/templates/snippets/shelf_selector.html:39 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:17 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:24 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:33 msgid "Start reading" msgstr "Começar a ler" -#: bookwyrm/templates/snippets/shelf_selector.html:54 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:31 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:38 +#: bookwyrm/templates/snippets/shelf_selector.html:61 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:38 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:55 msgid "Want to read" msgstr "Quero ler" -#: bookwyrm/templates/snippets/shelf_selector.html:75 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:66 +#: bookwyrm/templates/snippets/shelf_selector.html:82 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:73 #, python-format msgid "Remove from %(name)s" msgstr "Remover de %(name)s" -#: bookwyrm/templates/snippets/shelf_selector.html:88 +#: bookwyrm/templates/snippets/shelf_selector.html:95 msgid "Remove from" msgstr "Remover de" @@ -4808,7 +4843,12 @@ msgstr "Remover de" msgid "More shelves" msgstr "Mais estantes" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:31 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:31 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:48 +msgid "Stop reading" +msgstr "" + +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:40 msgid "Finish reading" msgstr "Terminar de ler" @@ -4903,6 +4943,16 @@ msgstr "resenhou %(book)s de %(book)s" msgstr "resenhou %(book)s" +#: bookwyrm/templates/snippets/status/headers/stopped_reading.html:10 +#, python-format +msgid "stopped reading %(book)s by %(author_name)s" +msgstr "" + +#: bookwyrm/templates/snippets/status/headers/stopped_reading.html:17 +#, python-format +msgid "stopped reading %(book)s" +msgstr "" + #: bookwyrm/templates/snippets/status/headers/to_read.html:10 #, python-format msgid "wants to read %(book)s by %(author_name)s" @@ -5043,29 +5093,29 @@ msgstr "%(username)s não segue ninguém" msgid "Edit profile" msgstr "Editar perfil" -#: bookwyrm/templates/user/user.html:37 +#: bookwyrm/templates/user/user.html:38 #, python-format msgid "View all %(size)s" msgstr "Ver todos os %(size)s" -#: bookwyrm/templates/user/user.html:51 +#: bookwyrm/templates/user/user.html:52 msgid "View all books" msgstr "Ver todos os livros" -#: bookwyrm/templates/user/user.html:58 +#: bookwyrm/templates/user/user.html:59 #, python-format msgid "%(current_year)s Reading Goal" msgstr "Meta de leitura para %(current_year)s" -#: bookwyrm/templates/user/user.html:65 +#: bookwyrm/templates/user/user.html:66 msgid "User Activity" msgstr "Atividade do usuário" -#: bookwyrm/templates/user/user.html:69 +#: bookwyrm/templates/user/user.html:70 msgid "RSS feed" msgstr "Feed RSS" -#: bookwyrm/templates/user/user.html:80 +#: bookwyrm/templates/user/user.html:81 msgid "No activities yet!" msgstr "Nenhuma atividade ainda!" diff --git a/locale/pt_PT/LC_MESSAGES/django.mo b/locale/pt_PT/LC_MESSAGES/django.mo index 640fa53364f694b3920832f90c1245d5261bcb29..07b9f009f22aff959a24c2043023b6f6c0c35380 100644 GIT binary patch delta 25 hcmeymg!StZ)(sJ-xy*D83>6FvtV~TeC!H2<2LOls348zm delta 25 hcmeymg!StZ)(sJ-xlDD9OcV?ZtqjaIC!H2<2LOl{34H(n diff --git a/locale/pt_PT/LC_MESSAGES/django.po b/locale/pt_PT/LC_MESSAGES/django.po index fa7c865aa..cdfb2b890 100644 --- a/locale/pt_PT/LC_MESSAGES/django.po +++ b/locale/pt_PT/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: bookwyrm\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-05-23 21:04+0000\n" -"PO-Revision-Date: 2022-05-24 01:06\n" +"POT-Creation-Date: 2022-05-31 23:50+0000\n" +"PO-Revision-Date: 2022-06-01 00:55\n" "Last-Translator: Mouse Reeve \n" "Language-Team: Portuguese\n" "Language: pt\n" @@ -46,6 +46,10 @@ msgstr "Ilimitado" msgid "Reading finish date cannot be before start date." msgstr "A data final de leitura não pode ser anterior à data de início." +#: bookwyrm/forms/forms.py:59 +msgid "Reading stopped date cannot be before start date." +msgstr "" + #: bookwyrm/forms/landing.py:32 msgid "User with this username already exists" msgstr "Já existe um utilizador com este nome" @@ -70,8 +74,8 @@ msgstr "Ordem da Lista" msgid "Book Title" msgstr "Título do livro" -#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:155 -#: bookwyrm/templates/shelf/shelf.html:187 +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:156 +#: bookwyrm/templates/shelf/shelf.html:188 #: bookwyrm/templates/snippets/create_status/review.html:32 msgid "Rating" msgstr "Classificação" @@ -1075,7 +1079,7 @@ msgid "Add Another Author" msgstr "Adicionar outro autor(a)" #: bookwyrm/templates/book/edit/edit_book_form.html:220 -#: bookwyrm/templates/shelf/shelf.html:146 +#: bookwyrm/templates/shelf/shelf.html:147 msgid "Cover" msgstr "Capa" @@ -1709,13 +1713,13 @@ msgstr "Adicionar aos teus livros" #: bookwyrm/templates/get_started/book_preview.html:10 #: bookwyrm/templates/shelf/shelf.html:86 bookwyrm/templates/user/user.html:33 -#: bookwyrm/templatetags/shelf_tags.py:46 +#: bookwyrm/templatetags/shelf_tags.py:48 msgid "To Read" msgstr "Para Ler" #: bookwyrm/templates/get_started/book_preview.html:11 #: bookwyrm/templates/shelf/shelf.html:87 bookwyrm/templates/user/user.html:34 -#: bookwyrm/templatetags/shelf_tags.py:48 +#: bookwyrm/templatetags/shelf_tags.py:50 msgid "Currently Reading" msgstr "Leituras atuais" @@ -1724,10 +1728,15 @@ msgstr "Leituras atuais" #: bookwyrm/templates/snippets/shelf_selector.html:47 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12 -#: bookwyrm/templates/user/user.html:35 bookwyrm/templatetags/shelf_tags.py:50 +#: bookwyrm/templates/user/user.html:35 bookwyrm/templatetags/shelf_tags.py:52 msgid "Read" msgstr "Lido" +#: bookwyrm/templates/get_started/book_preview.html:13 +#: bookwyrm/templates/shelf/shelf.html:89 bookwyrm/templates/user/user.html:36 +msgid "Stopped Reading" +msgstr "" + #: bookwyrm/templates/get_started/books.html:6 msgid "What are you reading?" msgstr "O que andas a ler?" @@ -2055,8 +2064,8 @@ msgid "Row" msgstr "Linha" #: bookwyrm/templates/import/import_status.html:103 -#: bookwyrm/templates/shelf/shelf.html:147 -#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:148 +#: bookwyrm/templates/shelf/shelf.html:170 msgid "Title" msgstr "Título" @@ -2069,8 +2078,8 @@ msgid "Openlibrary key" msgstr "Id da Openlibrary" #: bookwyrm/templates/import/import_status.html:114 -#: bookwyrm/templates/shelf/shelf.html:148 -#: bookwyrm/templates/shelf/shelf.html:172 +#: bookwyrm/templates/shelf/shelf.html:149 +#: bookwyrm/templates/shelf/shelf.html:173 msgid "Author" msgstr "Autor(a)" @@ -2988,6 +2997,11 @@ msgstr "Concluir \"%(book_title)s\"" msgid "Start \"%(book_title)s\"" msgstr "Começar \"%(book_title)s\"" +#: bookwyrm/templates/reading_progress/stop.html:5 +#, python-format +msgid "Stop Reading \"%(book_title)s\"" +msgstr "" + #: bookwyrm/templates/reading_progress/want.html:5 #, python-format msgid "Want to Read \"%(book_title)s\"" @@ -3012,6 +3026,7 @@ msgstr "Atualizar datas de leitura para \"%(title)s\"" #: bookwyrm/templates/readthrough/readthrough_modal.html:38 #: bookwyrm/templates/snippets/reading_modals/finish_reading_modal.html:24 #: bookwyrm/templates/snippets/reading_modals/start_reading_modal.html:21 +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:24 msgid "Started reading" msgstr "Leitura iniciada" @@ -3020,7 +3035,7 @@ msgstr "Leitura iniciada" msgid "Progress" msgstr "Progresso" -#: bookwyrm/templates/readthrough/readthrough_form.html:24 +#: bookwyrm/templates/readthrough/readthrough_form.html:25 #: bookwyrm/templates/readthrough/readthrough_modal.html:63 #: bookwyrm/templates/snippets/reading_modals/finish_reading_modal.html:32 msgid "Finished reading" @@ -3034,23 +3049,27 @@ msgstr "Atualizações do progresso:" msgid "finished" msgstr "concluído" -#: bookwyrm/templates/readthrough/readthrough_list.html:25 +#: bookwyrm/templates/readthrough/readthrough_list.html:16 +msgid "stopped" +msgstr "" + +#: bookwyrm/templates/readthrough/readthrough_list.html:27 msgid "Show all updates" msgstr "Mostrar todas as atualizações" -#: bookwyrm/templates/readthrough/readthrough_list.html:41 +#: bookwyrm/templates/readthrough/readthrough_list.html:43 msgid "Delete this progress update" msgstr "Excluir esta atualização do progresso" -#: bookwyrm/templates/readthrough/readthrough_list.html:53 +#: bookwyrm/templates/readthrough/readthrough_list.html:55 msgid "started" msgstr "iniciado" -#: bookwyrm/templates/readthrough/readthrough_list.html:60 +#: bookwyrm/templates/readthrough/readthrough_list.html:62 msgid "Edit read dates" msgstr "Editar datas de leitura" -#: bookwyrm/templates/readthrough/readthrough_list.html:68 +#: bookwyrm/templates/readthrough/readthrough_list.html:70 msgid "Delete these read dates" msgstr "Excluir estas datas de leitura" @@ -4359,46 +4378,51 @@ msgid "User profile" msgstr "Perfil de utilizador" #: bookwyrm/templates/shelf/shelf.html:39 -#: bookwyrm/templatetags/shelf_tags.py:44 bookwyrm/views/shelf/shelf.py:53 +#: bookwyrm/templatetags/shelf_tags.py:46 bookwyrm/views/shelf/shelf.py:53 msgid "All books" msgstr "Todos os livros" -#: bookwyrm/templates/shelf/shelf.html:96 +#: bookwyrm/templates/shelf/shelf.html:97 #, python-format msgid "%(formatted_count)s book" msgid_plural "%(formatted_count)s books" msgstr[0] "%(formatted_count)s livro" msgstr[1] "%(formatted_count)s livros" -#: bookwyrm/templates/shelf/shelf.html:103 +#: bookwyrm/templates/shelf/shelf.html:104 #, python-format msgid "(showing %(start)s-%(end)s)" msgstr "(a exibir %(start)s-%(end)s)" -#: bookwyrm/templates/shelf/shelf.html:115 +#: bookwyrm/templates/shelf/shelf.html:116 msgid "Edit shelf" msgstr "Editar prateleira" -#: bookwyrm/templates/shelf/shelf.html:123 +#: bookwyrm/templates/shelf/shelf.html:124 msgid "Delete shelf" msgstr "Apagar prateleira" -#: bookwyrm/templates/shelf/shelf.html:151 -#: bookwyrm/templates/shelf/shelf.html:177 +#: bookwyrm/templates/shelf/shelf.html:152 +#: bookwyrm/templates/shelf/shelf.html:178 msgid "Shelved" msgstr "Arquivado" -#: bookwyrm/templates/shelf/shelf.html:152 -#: bookwyrm/templates/shelf/shelf.html:180 +#: bookwyrm/templates/shelf/shelf.html:153 +#: bookwyrm/templates/shelf/shelf.html:181 msgid "Started" msgstr "Iniciado" -#: bookwyrm/templates/shelf/shelf.html:153 -#: bookwyrm/templates/shelf/shelf.html:183 +#: bookwyrm/templates/shelf/shelf.html:154 +#: bookwyrm/templates/shelf/shelf.html:184 msgid "Finished" msgstr "Concluído" -#: bookwyrm/templates/shelf/shelf.html:209 +#: bookwyrm/templates/shelf/shelf.html:154 +#: bookwyrm/templates/shelf/shelf.html:184 +msgid "Until" +msgstr "" + +#: bookwyrm/templates/shelf/shelf.html:210 msgid "This shelf is empty." msgstr "Esta prateleira está vazia." @@ -4728,7 +4752,7 @@ msgid "(Optional)" msgstr "(Opcional)" #: bookwyrm/templates/snippets/reading_modals/progress_update_modal.html:6 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:54 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:61 msgid "Update progress" msgstr "Atualizar progresso" @@ -4737,6 +4761,17 @@ msgstr "Atualizar progresso" msgid "Start \"%(book_title)s\"" msgstr "Começar \"%(book_title)s\"" +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:6 +#, python-format +msgid "Stop Reading \"%(book_title)s\"" +msgstr "" + +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:32 +#: bookwyrm/templates/snippets/shelf_selector.html:54 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:21 +msgid "Stopped reading" +msgstr "" + #: bookwyrm/templates/snippets/reading_modals/want_to_read_modal.html:6 #, python-format msgid "Want to Read \"%(book_title)s\"" @@ -4784,23 +4819,23 @@ msgstr "Mover livro" #: bookwyrm/templates/snippets/shelf_selector.html:39 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:17 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:24 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:33 msgid "Start reading" msgstr "Começar a ler" -#: bookwyrm/templates/snippets/shelf_selector.html:54 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:31 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:38 +#: bookwyrm/templates/snippets/shelf_selector.html:61 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:38 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:55 msgid "Want to read" msgstr "Quero ler" -#: bookwyrm/templates/snippets/shelf_selector.html:75 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:66 +#: bookwyrm/templates/snippets/shelf_selector.html:82 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:73 #, python-format msgid "Remove from %(name)s" msgstr "Remover de %(name)s" -#: bookwyrm/templates/snippets/shelf_selector.html:88 +#: bookwyrm/templates/snippets/shelf_selector.html:95 msgid "Remove from" msgstr "Remover de" @@ -4808,7 +4843,12 @@ msgstr "Remover de" msgid "More shelves" msgstr "Mais prateleiras" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:31 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:31 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:48 +msgid "Stop reading" +msgstr "" + +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:40 msgid "Finish reading" msgstr "Terminar leitura" @@ -4903,6 +4943,16 @@ msgstr "" msgid "reviewed %(book)s" msgstr "criticou %(book)s" +#: bookwyrm/templates/snippets/status/headers/stopped_reading.html:10 +#, python-format +msgid "stopped reading %(book)s by %(author_name)s" +msgstr "" + +#: bookwyrm/templates/snippets/status/headers/stopped_reading.html:17 +#, python-format +msgid "stopped reading %(book)s" +msgstr "" + #: bookwyrm/templates/snippets/status/headers/to_read.html:10 #, python-format msgid "wants to read %(book)s by %(author_name)s" @@ -5043,29 +5093,29 @@ msgstr "%(username)s não está a seguir ninguém" msgid "Edit profile" msgstr "Editar perfil" -#: bookwyrm/templates/user/user.html:37 +#: bookwyrm/templates/user/user.html:38 #, python-format msgid "View all %(size)s" msgstr "Ver todas as %(size)s" -#: bookwyrm/templates/user/user.html:51 +#: bookwyrm/templates/user/user.html:52 msgid "View all books" msgstr "Ver todos os livros" -#: bookwyrm/templates/user/user.html:58 +#: bookwyrm/templates/user/user.html:59 #, python-format msgid "%(current_year)s Reading Goal" msgstr "Objetivo de leitura de %(current_year)s" -#: bookwyrm/templates/user/user.html:65 +#: bookwyrm/templates/user/user.html:66 msgid "User Activity" msgstr "Atividade do Utilizador" -#: bookwyrm/templates/user/user.html:69 +#: bookwyrm/templates/user/user.html:70 msgid "RSS feed" msgstr "RSS Feed" -#: bookwyrm/templates/user/user.html:80 +#: bookwyrm/templates/user/user.html:81 msgid "No activities yet!" msgstr "Ainda sem atividade!" diff --git a/locale/ro_RO/LC_MESSAGES/django.mo b/locale/ro_RO/LC_MESSAGES/django.mo index e9b278ecbb2e3d98a75cc249f521826394ea599b..4134a5e337cb04a3f7bff620e4712f8b40c42ef7 100644 GIT binary patch delta 25 hcmezNnDyIZ)(y2cxy*D83>6FvtV~Tex8Ka40RWgy3eNxl delta 25 hcmezNnDyIZ)(y2cxlDD9OcV?ZtqjaIx8Ka40RWh23eW%m diff --git a/locale/ro_RO/LC_MESSAGES/django.po b/locale/ro_RO/LC_MESSAGES/django.po index 8d20397dd..0270a93fa 100644 --- a/locale/ro_RO/LC_MESSAGES/django.po +++ b/locale/ro_RO/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: bookwyrm\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-05-23 21:04+0000\n" -"PO-Revision-Date: 2022-05-24 01:06\n" +"POT-Creation-Date: 2022-05-31 23:50+0000\n" +"PO-Revision-Date: 2022-06-01 00:55\n" "Last-Translator: Mouse Reeve \n" "Language-Team: Romanian\n" "Language: ro\n" @@ -46,6 +46,10 @@ msgstr "Nelimitat" msgid "Reading finish date cannot be before start date." msgstr "Data de terminare a lecturii nu poate fi înainte de data de început." +#: bookwyrm/forms/forms.py:59 +msgid "Reading stopped date cannot be before start date." +msgstr "" + #: bookwyrm/forms/landing.py:32 msgid "User with this username already exists" msgstr "Un utilizator cu acest nume există deja" @@ -70,8 +74,8 @@ msgstr "Ordonează după listă" msgid "Book Title" msgstr "Titlul cărții" -#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:155 -#: bookwyrm/templates/shelf/shelf.html:187 +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:156 +#: bookwyrm/templates/shelf/shelf.html:188 #: bookwyrm/templates/snippets/create_status/review.html:32 msgid "Rating" msgstr "Rating" @@ -1081,7 +1085,7 @@ msgid "Add Another Author" msgstr "Adăugați un alt autor" #: bookwyrm/templates/book/edit/edit_book_form.html:220 -#: bookwyrm/templates/shelf/shelf.html:146 +#: bookwyrm/templates/shelf/shelf.html:147 msgid "Cover" msgstr "Copertă" @@ -1717,13 +1721,13 @@ msgstr "Adăugați la cărțile dvs." #: bookwyrm/templates/get_started/book_preview.html:10 #: bookwyrm/templates/shelf/shelf.html:86 bookwyrm/templates/user/user.html:33 -#: bookwyrm/templatetags/shelf_tags.py:46 +#: bookwyrm/templatetags/shelf_tags.py:48 msgid "To Read" msgstr "De citit" #: bookwyrm/templates/get_started/book_preview.html:11 #: bookwyrm/templates/shelf/shelf.html:87 bookwyrm/templates/user/user.html:34 -#: bookwyrm/templatetags/shelf_tags.py:48 +#: bookwyrm/templatetags/shelf_tags.py:50 msgid "Currently Reading" msgstr "Lectură în curs" @@ -1732,10 +1736,15 @@ msgstr "Lectură în curs" #: bookwyrm/templates/snippets/shelf_selector.html:47 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12 -#: bookwyrm/templates/user/user.html:35 bookwyrm/templatetags/shelf_tags.py:50 +#: bookwyrm/templates/user/user.html:35 bookwyrm/templatetags/shelf_tags.py:52 msgid "Read" msgstr "Citite" +#: bookwyrm/templates/get_started/book_preview.html:13 +#: bookwyrm/templates/shelf/shelf.html:89 bookwyrm/templates/user/user.html:36 +msgid "Stopped Reading" +msgstr "" + #: bookwyrm/templates/get_started/books.html:6 msgid "What are you reading?" msgstr "Ce citiți?" @@ -2067,8 +2076,8 @@ msgid "Row" msgstr "Linie" #: bookwyrm/templates/import/import_status.html:103 -#: bookwyrm/templates/shelf/shelf.html:147 -#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:148 +#: bookwyrm/templates/shelf/shelf.html:170 msgid "Title" msgstr "Titlu" @@ -2081,8 +2090,8 @@ msgid "Openlibrary key" msgstr "Cheie OpenLibrary" #: bookwyrm/templates/import/import_status.html:114 -#: bookwyrm/templates/shelf/shelf.html:148 -#: bookwyrm/templates/shelf/shelf.html:172 +#: bookwyrm/templates/shelf/shelf.html:149 +#: bookwyrm/templates/shelf/shelf.html:173 msgid "Author" msgstr "Autor" @@ -3000,6 +3009,11 @@ msgstr "Terminați „%(book_title)s”" msgid "Start \"%(book_title)s\"" msgstr "Începeți „%(book_title)s”" +#: bookwyrm/templates/reading_progress/stop.html:5 +#, python-format +msgid "Stop Reading \"%(book_title)s\"" +msgstr "" + #: bookwyrm/templates/reading_progress/want.html:5 #, python-format msgid "Want to Read \"%(book_title)s\"" @@ -3024,6 +3038,7 @@ msgstr "Actualizați datele de lectură pentru „%(title)s”" #: bookwyrm/templates/readthrough/readthrough_modal.html:38 #: bookwyrm/templates/snippets/reading_modals/finish_reading_modal.html:24 #: bookwyrm/templates/snippets/reading_modals/start_reading_modal.html:21 +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:24 msgid "Started reading" msgstr "A început lectura" @@ -3032,7 +3047,7 @@ msgstr "A început lectura" msgid "Progress" msgstr "Progres" -#: bookwyrm/templates/readthrough/readthrough_form.html:24 +#: bookwyrm/templates/readthrough/readthrough_form.html:25 #: bookwyrm/templates/readthrough/readthrough_modal.html:63 #: bookwyrm/templates/snippets/reading_modals/finish_reading_modal.html:32 msgid "Finished reading" @@ -3046,23 +3061,27 @@ msgstr "Progresie:" msgid "finished" msgstr "terminat" -#: bookwyrm/templates/readthrough/readthrough_list.html:25 +#: bookwyrm/templates/readthrough/readthrough_list.html:16 +msgid "stopped" +msgstr "" + +#: bookwyrm/templates/readthrough/readthrough_list.html:27 msgid "Show all updates" msgstr "Afișați toate actualizările" -#: bookwyrm/templates/readthrough/readthrough_list.html:41 +#: bookwyrm/templates/readthrough/readthrough_list.html:43 msgid "Delete this progress update" msgstr "Ștergeți această actualizare" -#: bookwyrm/templates/readthrough/readthrough_list.html:53 +#: bookwyrm/templates/readthrough/readthrough_list.html:55 msgid "started" msgstr "începută" -#: bookwyrm/templates/readthrough/readthrough_list.html:60 +#: bookwyrm/templates/readthrough/readthrough_list.html:62 msgid "Edit read dates" msgstr "Editați datele de lectură" -#: bookwyrm/templates/readthrough/readthrough_list.html:68 +#: bookwyrm/templates/readthrough/readthrough_list.html:70 msgid "Delete these read dates" msgstr "Ștergeți aceste date de lectură" @@ -4375,11 +4394,11 @@ msgid "User profile" msgstr "Profilul utilizatorului" #: bookwyrm/templates/shelf/shelf.html:39 -#: bookwyrm/templatetags/shelf_tags.py:44 bookwyrm/views/shelf/shelf.py:53 +#: bookwyrm/templatetags/shelf_tags.py:46 bookwyrm/views/shelf/shelf.py:53 msgid "All books" msgstr "Toate cărțile" -#: bookwyrm/templates/shelf/shelf.html:96 +#: bookwyrm/templates/shelf/shelf.html:97 #, python-format msgid "%(formatted_count)s book" msgid_plural "%(formatted_count)s books" @@ -4387,35 +4406,40 @@ msgstr[0] "%(formatted_count)s carte" msgstr[1] "" msgstr[2] "%(formatted_count)s cărți" -#: bookwyrm/templates/shelf/shelf.html:103 +#: bookwyrm/templates/shelf/shelf.html:104 #, python-format msgid "(showing %(start)s-%(end)s)" msgstr "(se afișează %(start)s-%(end)s)" -#: bookwyrm/templates/shelf/shelf.html:115 +#: bookwyrm/templates/shelf/shelf.html:116 msgid "Edit shelf" msgstr "Editați raft" -#: bookwyrm/templates/shelf/shelf.html:123 +#: bookwyrm/templates/shelf/shelf.html:124 msgid "Delete shelf" msgstr "Ștergeți raft" -#: bookwyrm/templates/shelf/shelf.html:151 -#: bookwyrm/templates/shelf/shelf.html:177 +#: bookwyrm/templates/shelf/shelf.html:152 +#: bookwyrm/templates/shelf/shelf.html:178 msgid "Shelved" msgstr "Pusă pe raft" -#: bookwyrm/templates/shelf/shelf.html:152 -#: bookwyrm/templates/shelf/shelf.html:180 +#: bookwyrm/templates/shelf/shelf.html:153 +#: bookwyrm/templates/shelf/shelf.html:181 msgid "Started" msgstr "Începută" -#: bookwyrm/templates/shelf/shelf.html:153 -#: bookwyrm/templates/shelf/shelf.html:183 +#: bookwyrm/templates/shelf/shelf.html:154 +#: bookwyrm/templates/shelf/shelf.html:184 msgid "Finished" msgstr "Terminată" -#: bookwyrm/templates/shelf/shelf.html:209 +#: bookwyrm/templates/shelf/shelf.html:154 +#: bookwyrm/templates/shelf/shelf.html:184 +msgid "Until" +msgstr "" + +#: bookwyrm/templates/shelf/shelf.html:210 msgid "This shelf is empty." msgstr "Acest raft este gol." @@ -4751,7 +4775,7 @@ msgid "(Optional)" msgstr "(Opțional)" #: bookwyrm/templates/snippets/reading_modals/progress_update_modal.html:6 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:54 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:61 msgid "Update progress" msgstr "Actualizați progresul" @@ -4760,6 +4784,17 @@ msgstr "Actualizați progresul" msgid "Start \"%(book_title)s\"" msgstr "Începeți „%(book_title)s”" +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:6 +#, python-format +msgid "Stop Reading \"%(book_title)s\"" +msgstr "" + +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:32 +#: bookwyrm/templates/snippets/shelf_selector.html:54 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:21 +msgid "Stopped reading" +msgstr "" + #: bookwyrm/templates/snippets/reading_modals/want_to_read_modal.html:6 #, python-format msgid "Want to Read \"%(book_title)s\"" @@ -4807,23 +4842,23 @@ msgstr "Mutați carte" #: bookwyrm/templates/snippets/shelf_selector.html:39 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:17 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:24 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:33 msgid "Start reading" msgstr "Începeți să citiți" -#: bookwyrm/templates/snippets/shelf_selector.html:54 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:31 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:38 +#: bookwyrm/templates/snippets/shelf_selector.html:61 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:38 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:55 msgid "Want to read" msgstr "Vreau să citesc" -#: bookwyrm/templates/snippets/shelf_selector.html:75 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:66 +#: bookwyrm/templates/snippets/shelf_selector.html:82 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:73 #, python-format msgid "Remove from %(name)s" msgstr "Înlăturați de pe %(name)s" -#: bookwyrm/templates/snippets/shelf_selector.html:88 +#: bookwyrm/templates/snippets/shelf_selector.html:95 msgid "Remove from" msgstr "Înlăturați din" @@ -4831,7 +4866,12 @@ msgstr "Înlăturați din" msgid "More shelves" msgstr "Mai multe rafturi" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:31 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:31 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:48 +msgid "Stop reading" +msgstr "" + +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:40 msgid "Finish reading" msgstr "Terminați de citit" @@ -4926,6 +4966,16 @@ msgstr "a evaluat %(book)s de %(book)s" msgstr "a evaluat %(book)s" +#: bookwyrm/templates/snippets/status/headers/stopped_reading.html:10 +#, python-format +msgid "stopped reading %(book)s by %(author_name)s" +msgstr "" + +#: bookwyrm/templates/snippets/status/headers/stopped_reading.html:17 +#, python-format +msgid "stopped reading %(book)s" +msgstr "" + #: bookwyrm/templates/snippets/status/headers/to_read.html:10 #, python-format msgid "wants to read %(book)s by %(author_name)s" @@ -5066,29 +5116,29 @@ msgstr "%(username)s nu urmărește pe nimeni" msgid "Edit profile" msgstr "Editați profil" -#: bookwyrm/templates/user/user.html:37 +#: bookwyrm/templates/user/user.html:38 #, python-format msgid "View all %(size)s" msgstr "Vizualizați toate %(size)s" -#: bookwyrm/templates/user/user.html:51 +#: bookwyrm/templates/user/user.html:52 msgid "View all books" msgstr "Vizualizați toate cărțile" -#: bookwyrm/templates/user/user.html:58 +#: bookwyrm/templates/user/user.html:59 #, python-format msgid "%(current_year)s Reading Goal" msgstr "Obiectivul de lectură din %(current_year)s" -#: bookwyrm/templates/user/user.html:65 +#: bookwyrm/templates/user/user.html:66 msgid "User Activity" msgstr "Activitatea utilizatorului" -#: bookwyrm/templates/user/user.html:69 +#: bookwyrm/templates/user/user.html:70 msgid "RSS feed" msgstr "Flux RSS" -#: bookwyrm/templates/user/user.html:80 +#: bookwyrm/templates/user/user.html:81 msgid "No activities yet!" msgstr "Încă nicio activitate!" diff --git a/locale/sv_SE/LC_MESSAGES/django.mo b/locale/sv_SE/LC_MESSAGES/django.mo index 0779ff8e38ab3604aaefede79a801676e6d7ed26..e565450b1c0af541b4d62126c8bf3c95028778b2 100644 GIT binary patch delta 25 hcmbPmiFLvy)(xCDxy*D83>6FvtV~Te3*Y?P4*+?w34Q\n" "Language-Team: Swedish\n" "Language: sv\n" @@ -46,6 +46,10 @@ msgstr "Obegränsad" msgid "Reading finish date cannot be before start date." msgstr "Slutdatum för läsning kan inte vara före startdatum." +#: bookwyrm/forms/forms.py:59 +msgid "Reading stopped date cannot be before start date." +msgstr "" + #: bookwyrm/forms/landing.py:32 msgid "User with this username already exists" msgstr "En användare med det användarnamnet existerar redan" @@ -70,8 +74,8 @@ msgstr "Listordning" msgid "Book Title" msgstr "Bokens titel" -#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:155 -#: bookwyrm/templates/shelf/shelf.html:187 +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:156 +#: bookwyrm/templates/shelf/shelf.html:188 #: bookwyrm/templates/snippets/create_status/review.html:32 msgid "Rating" msgstr "Betyg" @@ -1075,7 +1079,7 @@ msgid "Add Another Author" msgstr "Lägg till en annan författare" #: bookwyrm/templates/book/edit/edit_book_form.html:220 -#: bookwyrm/templates/shelf/shelf.html:146 +#: bookwyrm/templates/shelf/shelf.html:147 msgid "Cover" msgstr "Omslag" @@ -1709,13 +1713,13 @@ msgstr "Lägg till i dina böcker" #: bookwyrm/templates/get_started/book_preview.html:10 #: bookwyrm/templates/shelf/shelf.html:86 bookwyrm/templates/user/user.html:33 -#: bookwyrm/templatetags/shelf_tags.py:46 +#: bookwyrm/templatetags/shelf_tags.py:48 msgid "To Read" msgstr "Att läsa" #: bookwyrm/templates/get_started/book_preview.html:11 #: bookwyrm/templates/shelf/shelf.html:87 bookwyrm/templates/user/user.html:34 -#: bookwyrm/templatetags/shelf_tags.py:48 +#: bookwyrm/templatetags/shelf_tags.py:50 msgid "Currently Reading" msgstr "Läser just nu" @@ -1724,10 +1728,15 @@ msgstr "Läser just nu" #: bookwyrm/templates/snippets/shelf_selector.html:47 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12 -#: bookwyrm/templates/user/user.html:35 bookwyrm/templatetags/shelf_tags.py:50 +#: bookwyrm/templates/user/user.html:35 bookwyrm/templatetags/shelf_tags.py:52 msgid "Read" msgstr "Lästa" +#: bookwyrm/templates/get_started/book_preview.html:13 +#: bookwyrm/templates/shelf/shelf.html:89 bookwyrm/templates/user/user.html:36 +msgid "Stopped Reading" +msgstr "" + #: bookwyrm/templates/get_started/books.html:6 msgid "What are you reading?" msgstr "Vad läser du?" @@ -2055,8 +2064,8 @@ msgid "Row" msgstr "Rad" #: bookwyrm/templates/import/import_status.html:103 -#: bookwyrm/templates/shelf/shelf.html:147 -#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:148 +#: bookwyrm/templates/shelf/shelf.html:170 msgid "Title" msgstr "Titel" @@ -2069,8 +2078,8 @@ msgid "Openlibrary key" msgstr "Openlibrary-nyckel" #: bookwyrm/templates/import/import_status.html:114 -#: bookwyrm/templates/shelf/shelf.html:148 -#: bookwyrm/templates/shelf/shelf.html:172 +#: bookwyrm/templates/shelf/shelf.html:149 +#: bookwyrm/templates/shelf/shelf.html:173 msgid "Author" msgstr "Författare" @@ -2988,6 +2997,11 @@ msgstr "Avsluta \"%(book_title)s\"" msgid "Start \"%(book_title)s\"" msgstr "Påbörja \"%(book_title)s\"" +#: bookwyrm/templates/reading_progress/stop.html:5 +#, python-format +msgid "Stop Reading \"%(book_title)s\"" +msgstr "" + #: bookwyrm/templates/reading_progress/want.html:5 #, python-format msgid "Want to Read \"%(book_title)s\"" @@ -3012,6 +3026,7 @@ msgstr "Uppdatera läsdatum för \"%(title)s\"" #: bookwyrm/templates/readthrough/readthrough_modal.html:38 #: bookwyrm/templates/snippets/reading_modals/finish_reading_modal.html:24 #: bookwyrm/templates/snippets/reading_modals/start_reading_modal.html:21 +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:24 msgid "Started reading" msgstr "Började läsa" @@ -3020,7 +3035,7 @@ msgstr "Började läsa" msgid "Progress" msgstr "Förlopp" -#: bookwyrm/templates/readthrough/readthrough_form.html:24 +#: bookwyrm/templates/readthrough/readthrough_form.html:25 #: bookwyrm/templates/readthrough/readthrough_modal.html:63 #: bookwyrm/templates/snippets/reading_modals/finish_reading_modal.html:32 msgid "Finished reading" @@ -3034,23 +3049,27 @@ msgstr "Förloppsuppdateringar:" msgid "finished" msgstr "avslutad" -#: bookwyrm/templates/readthrough/readthrough_list.html:25 +#: bookwyrm/templates/readthrough/readthrough_list.html:16 +msgid "stopped" +msgstr "" + +#: bookwyrm/templates/readthrough/readthrough_list.html:27 msgid "Show all updates" msgstr "Visa alla uppdateringar" -#: bookwyrm/templates/readthrough/readthrough_list.html:41 +#: bookwyrm/templates/readthrough/readthrough_list.html:43 msgid "Delete this progress update" msgstr "Ta bort den här förloppsuppdateringen" -#: bookwyrm/templates/readthrough/readthrough_list.html:53 +#: bookwyrm/templates/readthrough/readthrough_list.html:55 msgid "started" msgstr "påbörjades" -#: bookwyrm/templates/readthrough/readthrough_list.html:60 +#: bookwyrm/templates/readthrough/readthrough_list.html:62 msgid "Edit read dates" msgstr "Redigera läsdatum" -#: bookwyrm/templates/readthrough/readthrough_list.html:68 +#: bookwyrm/templates/readthrough/readthrough_list.html:70 msgid "Delete these read dates" msgstr "Ta bort de här läsdatumen" @@ -4359,46 +4378,51 @@ msgid "User profile" msgstr "Användarprofil" #: bookwyrm/templates/shelf/shelf.html:39 -#: bookwyrm/templatetags/shelf_tags.py:44 bookwyrm/views/shelf/shelf.py:53 +#: bookwyrm/templatetags/shelf_tags.py:46 bookwyrm/views/shelf/shelf.py:53 msgid "All books" msgstr "Alla böcker" -#: bookwyrm/templates/shelf/shelf.html:96 +#: bookwyrm/templates/shelf/shelf.html:97 #, python-format msgid "%(formatted_count)s book" msgid_plural "%(formatted_count)s books" msgstr[0] "%(formatted_count)s bok" msgstr[1] "%(formatted_count)s böcker" -#: bookwyrm/templates/shelf/shelf.html:103 +#: bookwyrm/templates/shelf/shelf.html:104 #, python-format msgid "(showing %(start)s-%(end)s)" msgstr "(visar %(start)s-%(end)s)" -#: bookwyrm/templates/shelf/shelf.html:115 +#: bookwyrm/templates/shelf/shelf.html:116 msgid "Edit shelf" msgstr "Redigera hylla" -#: bookwyrm/templates/shelf/shelf.html:123 +#: bookwyrm/templates/shelf/shelf.html:124 msgid "Delete shelf" msgstr "Ta bort hylla" -#: bookwyrm/templates/shelf/shelf.html:151 -#: bookwyrm/templates/shelf/shelf.html:177 +#: bookwyrm/templates/shelf/shelf.html:152 +#: bookwyrm/templates/shelf/shelf.html:178 msgid "Shelved" msgstr "Lagd på hyllan" -#: bookwyrm/templates/shelf/shelf.html:152 -#: bookwyrm/templates/shelf/shelf.html:180 +#: bookwyrm/templates/shelf/shelf.html:153 +#: bookwyrm/templates/shelf/shelf.html:181 msgid "Started" msgstr "Påbörjade" -#: bookwyrm/templates/shelf/shelf.html:153 -#: bookwyrm/templates/shelf/shelf.html:183 +#: bookwyrm/templates/shelf/shelf.html:154 +#: bookwyrm/templates/shelf/shelf.html:184 msgid "Finished" msgstr "Avslutade" -#: bookwyrm/templates/shelf/shelf.html:209 +#: bookwyrm/templates/shelf/shelf.html:154 +#: bookwyrm/templates/shelf/shelf.html:184 +msgid "Until" +msgstr "" + +#: bookwyrm/templates/shelf/shelf.html:210 msgid "This shelf is empty." msgstr "Den här hyllan är tom." @@ -4728,7 +4752,7 @@ msgid "(Optional)" msgstr "(Valfritt)" #: bookwyrm/templates/snippets/reading_modals/progress_update_modal.html:6 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:54 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:61 msgid "Update progress" msgstr "Uppdateringsförlopp" @@ -4737,6 +4761,17 @@ msgstr "Uppdateringsförlopp" msgid "Start \"%(book_title)s\"" msgstr "Börja \"%(book_title)s\"" +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:6 +#, python-format +msgid "Stop Reading \"%(book_title)s\"" +msgstr "" + +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:32 +#: bookwyrm/templates/snippets/shelf_selector.html:54 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:21 +msgid "Stopped reading" +msgstr "" + #: bookwyrm/templates/snippets/reading_modals/want_to_read_modal.html:6 #, python-format msgid "Want to Read \"%(book_title)s\"" @@ -4784,23 +4819,23 @@ msgstr "Flytta boken" #: bookwyrm/templates/snippets/shelf_selector.html:39 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:17 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:24 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:33 msgid "Start reading" msgstr "Börja läsa" -#: bookwyrm/templates/snippets/shelf_selector.html:54 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:31 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:38 +#: bookwyrm/templates/snippets/shelf_selector.html:61 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:38 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:55 msgid "Want to read" msgstr "Vill läsa" -#: bookwyrm/templates/snippets/shelf_selector.html:75 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:66 +#: bookwyrm/templates/snippets/shelf_selector.html:82 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:73 #, python-format msgid "Remove from %(name)s" msgstr "Ta bort från %(name)s" -#: bookwyrm/templates/snippets/shelf_selector.html:88 +#: bookwyrm/templates/snippets/shelf_selector.html:95 msgid "Remove from" msgstr "Ta bort från" @@ -4808,7 +4843,12 @@ msgstr "Ta bort från" msgid "More shelves" msgstr "Mer hyllor" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:31 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:31 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:48 +msgid "Stop reading" +msgstr "" + +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:40 msgid "Finish reading" msgstr "Sluta läs" @@ -4903,6 +4943,16 @@ msgstr "recenserade %(book)s av %(book)s" msgstr "recenserade %(book)s" +#: bookwyrm/templates/snippets/status/headers/stopped_reading.html:10 +#, python-format +msgid "stopped reading %(book)s by %(author_name)s" +msgstr "" + +#: bookwyrm/templates/snippets/status/headers/stopped_reading.html:17 +#, python-format +msgid "stopped reading %(book)s" +msgstr "" + #: bookwyrm/templates/snippets/status/headers/to_read.html:10 #, python-format msgid "wants to read %(book)s by %(author_name)s" @@ -5043,29 +5093,29 @@ msgstr "%(username)s följer inte någon användare" msgid "Edit profile" msgstr "Redigera profil" -#: bookwyrm/templates/user/user.html:37 +#: bookwyrm/templates/user/user.html:38 #, python-format msgid "View all %(size)s" msgstr "Visa alla %(size)s" -#: bookwyrm/templates/user/user.html:51 +#: bookwyrm/templates/user/user.html:52 msgid "View all books" msgstr "Visa alla böcker" -#: bookwyrm/templates/user/user.html:58 +#: bookwyrm/templates/user/user.html:59 #, python-format msgid "%(current_year)s Reading Goal" msgstr "%(current_year)s läsmål" -#: bookwyrm/templates/user/user.html:65 +#: bookwyrm/templates/user/user.html:66 msgid "User Activity" msgstr "Användaraktivitet" -#: bookwyrm/templates/user/user.html:69 +#: bookwyrm/templates/user/user.html:70 msgid "RSS feed" msgstr "RSS-flöde" -#: bookwyrm/templates/user/user.html:80 +#: bookwyrm/templates/user/user.html:81 msgid "No activities yet!" msgstr "Inga aktiviteter än!" diff --git a/locale/zh_Hans/LC_MESSAGES/django.mo b/locale/zh_Hans/LC_MESSAGES/django.mo index 4c2a6c1f556905de752d63e136b4b7d802a1c56c..992a6957659f17dfe86ca464906e6abe1c4f8d6f 100644 GIT binary patch delta 25 hcmZ3soORi9)(y2cxy*D83>6FvtV~Tex8Ibn0swwf2}u9| delta 25 hcmZ3soORi9)(y2cxlDD9OcV?ZtqjaIx8Ibn0sww)2}%F} diff --git a/locale/zh_Hans/LC_MESSAGES/django.po b/locale/zh_Hans/LC_MESSAGES/django.po index 8bd28ceab..5eb151b0a 100644 --- a/locale/zh_Hans/LC_MESSAGES/django.po +++ b/locale/zh_Hans/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: bookwyrm\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-05-23 21:04+0000\n" -"PO-Revision-Date: 2022-05-24 01:06\n" +"POT-Creation-Date: 2022-05-31 23:50+0000\n" +"PO-Revision-Date: 2022-06-01 00:55\n" "Last-Translator: Mouse Reeve \n" "Language-Team: Chinese Simplified\n" "Language: zh\n" @@ -46,6 +46,10 @@ msgstr "不受限" msgid "Reading finish date cannot be before start date." msgstr "读完日期不得早于开始日期。" +#: bookwyrm/forms/forms.py:59 +msgid "Reading stopped date cannot be before start date." +msgstr "" + #: bookwyrm/forms/landing.py:32 msgid "User with this username already exists" msgstr "使用此用户名的用户已存在" @@ -70,8 +74,8 @@ msgstr "列表顺序" msgid "Book Title" msgstr "书名" -#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:155 -#: bookwyrm/templates/shelf/shelf.html:187 +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:156 +#: bookwyrm/templates/shelf/shelf.html:188 #: bookwyrm/templates/snippets/create_status/review.html:32 msgid "Rating" msgstr "评价" @@ -1069,7 +1073,7 @@ msgid "Add Another Author" msgstr "添加其他作者" #: bookwyrm/templates/book/edit/edit_book_form.html:220 -#: bookwyrm/templates/shelf/shelf.html:146 +#: bookwyrm/templates/shelf/shelf.html:147 msgid "Cover" msgstr "封面" @@ -1701,13 +1705,13 @@ msgstr "添加到您的书籍中" #: bookwyrm/templates/get_started/book_preview.html:10 #: bookwyrm/templates/shelf/shelf.html:86 bookwyrm/templates/user/user.html:33 -#: bookwyrm/templatetags/shelf_tags.py:46 +#: bookwyrm/templatetags/shelf_tags.py:48 msgid "To Read" msgstr "想读" #: bookwyrm/templates/get_started/book_preview.html:11 #: bookwyrm/templates/shelf/shelf.html:87 bookwyrm/templates/user/user.html:34 -#: bookwyrm/templatetags/shelf_tags.py:48 +#: bookwyrm/templatetags/shelf_tags.py:50 msgid "Currently Reading" msgstr "在读" @@ -1716,10 +1720,15 @@ msgstr "在读" #: bookwyrm/templates/snippets/shelf_selector.html:47 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12 -#: bookwyrm/templates/user/user.html:35 bookwyrm/templatetags/shelf_tags.py:50 +#: bookwyrm/templates/user/user.html:35 bookwyrm/templatetags/shelf_tags.py:52 msgid "Read" msgstr "读过" +#: bookwyrm/templates/get_started/book_preview.html:13 +#: bookwyrm/templates/shelf/shelf.html:89 bookwyrm/templates/user/user.html:36 +msgid "Stopped Reading" +msgstr "" + #: bookwyrm/templates/get_started/books.html:6 msgid "What are you reading?" msgstr "你在阅读什么?" @@ -2043,8 +2052,8 @@ msgid "Row" msgstr "行" #: bookwyrm/templates/import/import_status.html:103 -#: bookwyrm/templates/shelf/shelf.html:147 -#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:148 +#: bookwyrm/templates/shelf/shelf.html:170 msgid "Title" msgstr "标题" @@ -2057,8 +2066,8 @@ msgid "Openlibrary key" msgstr "Openlibrary key" #: bookwyrm/templates/import/import_status.html:114 -#: bookwyrm/templates/shelf/shelf.html:148 -#: bookwyrm/templates/shelf/shelf.html:172 +#: bookwyrm/templates/shelf/shelf.html:149 +#: bookwyrm/templates/shelf/shelf.html:173 msgid "Author" msgstr "作者" @@ -2976,6 +2985,11 @@ msgstr "完成《%(book_title)s》" msgid "Start \"%(book_title)s\"" msgstr "开始《%(book_title)s》" +#: bookwyrm/templates/reading_progress/stop.html:5 +#, python-format +msgid "Stop Reading \"%(book_title)s\"" +msgstr "" + #: bookwyrm/templates/reading_progress/want.html:5 #, python-format msgid "Want to Read \"%(book_title)s\"" @@ -3000,6 +3014,7 @@ msgstr "更新 “%(title)s” 的阅读日期" #: bookwyrm/templates/readthrough/readthrough_modal.html:38 #: bookwyrm/templates/snippets/reading_modals/finish_reading_modal.html:24 #: bookwyrm/templates/snippets/reading_modals/start_reading_modal.html:21 +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:24 msgid "Started reading" msgstr "已开始阅读" @@ -3008,7 +3023,7 @@ msgstr "已开始阅读" msgid "Progress" msgstr "进度" -#: bookwyrm/templates/readthrough/readthrough_form.html:24 +#: bookwyrm/templates/readthrough/readthrough_form.html:25 #: bookwyrm/templates/readthrough/readthrough_modal.html:63 #: bookwyrm/templates/snippets/reading_modals/finish_reading_modal.html:32 msgid "Finished reading" @@ -3022,23 +3037,27 @@ msgstr "进度更新:" msgid "finished" msgstr "已完成" -#: bookwyrm/templates/readthrough/readthrough_list.html:25 +#: bookwyrm/templates/readthrough/readthrough_list.html:16 +msgid "stopped" +msgstr "" + +#: bookwyrm/templates/readthrough/readthrough_list.html:27 msgid "Show all updates" msgstr "显示所有更新" -#: bookwyrm/templates/readthrough/readthrough_list.html:41 +#: bookwyrm/templates/readthrough/readthrough_list.html:43 msgid "Delete this progress update" msgstr "删除此进度更新" -#: bookwyrm/templates/readthrough/readthrough_list.html:53 +#: bookwyrm/templates/readthrough/readthrough_list.html:55 msgid "started" msgstr "已开始" -#: bookwyrm/templates/readthrough/readthrough_list.html:60 +#: bookwyrm/templates/readthrough/readthrough_list.html:62 msgid "Edit read dates" msgstr "编辑阅读日期" -#: bookwyrm/templates/readthrough/readthrough_list.html:68 +#: bookwyrm/templates/readthrough/readthrough_list.html:70 msgid "Delete these read dates" msgstr "删除这些阅读日期" @@ -4343,45 +4362,50 @@ msgid "User profile" msgstr "用户个人资料" #: bookwyrm/templates/shelf/shelf.html:39 -#: bookwyrm/templatetags/shelf_tags.py:44 bookwyrm/views/shelf/shelf.py:53 +#: bookwyrm/templatetags/shelf_tags.py:46 bookwyrm/views/shelf/shelf.py:53 msgid "All books" msgstr "所有书目" -#: bookwyrm/templates/shelf/shelf.html:96 +#: bookwyrm/templates/shelf/shelf.html:97 #, python-format msgid "%(formatted_count)s book" msgid_plural "%(formatted_count)s books" msgstr[0] "%(formatted_count)s 本书籍" -#: bookwyrm/templates/shelf/shelf.html:103 +#: bookwyrm/templates/shelf/shelf.html:104 #, python-format msgid "(showing %(start)s-%(end)s)" msgstr "(正在显示 %(start)s 到 %(end)s)" -#: bookwyrm/templates/shelf/shelf.html:115 +#: bookwyrm/templates/shelf/shelf.html:116 msgid "Edit shelf" msgstr "编辑书架" -#: bookwyrm/templates/shelf/shelf.html:123 +#: bookwyrm/templates/shelf/shelf.html:124 msgid "Delete shelf" msgstr "删除书架" -#: bookwyrm/templates/shelf/shelf.html:151 -#: bookwyrm/templates/shelf/shelf.html:177 +#: bookwyrm/templates/shelf/shelf.html:152 +#: bookwyrm/templates/shelf/shelf.html:178 msgid "Shelved" msgstr "上架时间" -#: bookwyrm/templates/shelf/shelf.html:152 -#: bookwyrm/templates/shelf/shelf.html:180 +#: bookwyrm/templates/shelf/shelf.html:153 +#: bookwyrm/templates/shelf/shelf.html:181 msgid "Started" msgstr "开始时间" -#: bookwyrm/templates/shelf/shelf.html:153 -#: bookwyrm/templates/shelf/shelf.html:183 +#: bookwyrm/templates/shelf/shelf.html:154 +#: bookwyrm/templates/shelf/shelf.html:184 msgid "Finished" msgstr "完成时间" -#: bookwyrm/templates/shelf/shelf.html:209 +#: bookwyrm/templates/shelf/shelf.html:154 +#: bookwyrm/templates/shelf/shelf.html:184 +msgid "Until" +msgstr "" + +#: bookwyrm/templates/shelf/shelf.html:210 msgid "This shelf is empty." msgstr "此书架是空的。" @@ -4705,7 +4729,7 @@ msgid "(Optional)" msgstr "(可选)" #: bookwyrm/templates/snippets/reading_modals/progress_update_modal.html:6 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:54 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:61 msgid "Update progress" msgstr "更新进度" @@ -4714,6 +4738,17 @@ msgstr "更新进度" msgid "Start \"%(book_title)s\"" msgstr "开始《%(book_title)s》" +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:6 +#, python-format +msgid "Stop Reading \"%(book_title)s\"" +msgstr "" + +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:32 +#: bookwyrm/templates/snippets/shelf_selector.html:54 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:21 +msgid "Stopped reading" +msgstr "" + #: bookwyrm/templates/snippets/reading_modals/want_to_read_modal.html:6 #, python-format msgid "Want to Read \"%(book_title)s\"" @@ -4761,23 +4796,23 @@ msgstr "移动书目" #: bookwyrm/templates/snippets/shelf_selector.html:39 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:17 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:24 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:33 msgid "Start reading" msgstr "开始阅读" -#: bookwyrm/templates/snippets/shelf_selector.html:54 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:31 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:38 +#: bookwyrm/templates/snippets/shelf_selector.html:61 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:38 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:55 msgid "Want to read" msgstr "想要阅读" -#: bookwyrm/templates/snippets/shelf_selector.html:75 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:66 +#: bookwyrm/templates/snippets/shelf_selector.html:82 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:73 #, python-format msgid "Remove from %(name)s" msgstr "从 %(name)s 移除" -#: bookwyrm/templates/snippets/shelf_selector.html:88 +#: bookwyrm/templates/snippets/shelf_selector.html:95 msgid "Remove from" msgstr "移除自" @@ -4785,7 +4820,12 @@ msgstr "移除自" msgid "More shelves" msgstr "更多书架" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:31 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:31 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:48 +msgid "Stop reading" +msgstr "" + +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:40 msgid "Finish reading" msgstr "完成阅读" @@ -4880,6 +4920,16 @@ msgstr "写了 %(author_name)s%(book)s" msgstr "为 %(book)s 撰写了书评" +#: bookwyrm/templates/snippets/status/headers/stopped_reading.html:10 +#, python-format +msgid "stopped reading %(book)s by %(author_name)s" +msgstr "" + +#: bookwyrm/templates/snippets/status/headers/stopped_reading.html:17 +#, python-format +msgid "stopped reading %(book)s" +msgstr "" + #: bookwyrm/templates/snippets/status/headers/to_read.html:10 #, python-format msgid "wants to read %(book)s by %(author_name)s" @@ -5020,29 +5070,29 @@ msgstr "%(username)s 没有关注任何用户" msgid "Edit profile" msgstr "编辑个人资料" -#: bookwyrm/templates/user/user.html:37 +#: bookwyrm/templates/user/user.html:38 #, python-format msgid "View all %(size)s" msgstr "查看所有 %(size)s 本" -#: bookwyrm/templates/user/user.html:51 +#: bookwyrm/templates/user/user.html:52 msgid "View all books" msgstr "查看所有书目" -#: bookwyrm/templates/user/user.html:58 +#: bookwyrm/templates/user/user.html:59 #, python-format msgid "%(current_year)s Reading Goal" msgstr "%(current_year)s 阅读目标" -#: bookwyrm/templates/user/user.html:65 +#: bookwyrm/templates/user/user.html:66 msgid "User Activity" msgstr "用户活动" -#: bookwyrm/templates/user/user.html:69 +#: bookwyrm/templates/user/user.html:70 msgid "RSS feed" msgstr "RSS 流" -#: bookwyrm/templates/user/user.html:80 +#: bookwyrm/templates/user/user.html:81 msgid "No activities yet!" msgstr "还没有活动!" diff --git a/locale/zh_Hant/LC_MESSAGES/django.mo b/locale/zh_Hant/LC_MESSAGES/django.mo index 20be041a8670213f5d046504898a50751bba77e8..50dfadffcd25abf1102e2433aea4a1b756694f13 100644 GIT binary patch delta 25 gcmZ2DlWE~hrVTo=TxPlkh6)A-R;H$#&0@3l0cscrga7~l delta 25 gcmZ2DlWE~hrVTo=T&B84CJF|IRt9F9&0@3l0ctY`g#Z8m diff --git a/locale/zh_Hant/LC_MESSAGES/django.po b/locale/zh_Hant/LC_MESSAGES/django.po index 14ad19a24..429a7f0b1 100644 --- a/locale/zh_Hant/LC_MESSAGES/django.po +++ b/locale/zh_Hant/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: bookwyrm\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-05-23 21:04+0000\n" -"PO-Revision-Date: 2022-05-24 01:06\n" +"POT-Creation-Date: 2022-05-31 23:50+0000\n" +"PO-Revision-Date: 2022-06-01 00:55\n" "Last-Translator: Mouse Reeve \n" "Language-Team: Chinese Traditional\n" "Language: zh\n" @@ -46,6 +46,10 @@ msgstr "不受限" msgid "Reading finish date cannot be before start date." msgstr "" +#: bookwyrm/forms/forms.py:59 +msgid "Reading stopped date cannot be before start date." +msgstr "" + #: bookwyrm/forms/landing.py:32 msgid "User with this username already exists" msgstr "" @@ -70,8 +74,8 @@ msgstr "列表順序" msgid "Book Title" msgstr "書名" -#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:155 -#: bookwyrm/templates/shelf/shelf.html:187 +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:156 +#: bookwyrm/templates/shelf/shelf.html:188 #: bookwyrm/templates/snippets/create_status/review.html:32 msgid "Rating" msgstr "評價" @@ -1069,7 +1073,7 @@ msgid "Add Another Author" msgstr "" #: bookwyrm/templates/book/edit/edit_book_form.html:220 -#: bookwyrm/templates/shelf/shelf.html:146 +#: bookwyrm/templates/shelf/shelf.html:147 msgid "Cover" msgstr "封面" @@ -1701,13 +1705,13 @@ msgstr "" #: bookwyrm/templates/get_started/book_preview.html:10 #: bookwyrm/templates/shelf/shelf.html:86 bookwyrm/templates/user/user.html:33 -#: bookwyrm/templatetags/shelf_tags.py:46 +#: bookwyrm/templatetags/shelf_tags.py:48 msgid "To Read" msgstr "想讀" #: bookwyrm/templates/get_started/book_preview.html:11 #: bookwyrm/templates/shelf/shelf.html:87 bookwyrm/templates/user/user.html:34 -#: bookwyrm/templatetags/shelf_tags.py:48 +#: bookwyrm/templatetags/shelf_tags.py:50 msgid "Currently Reading" msgstr "在讀" @@ -1716,10 +1720,15 @@ msgstr "在讀" #: bookwyrm/templates/snippets/shelf_selector.html:47 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12 -#: bookwyrm/templates/user/user.html:35 bookwyrm/templatetags/shelf_tags.py:50 +#: bookwyrm/templates/user/user.html:35 bookwyrm/templatetags/shelf_tags.py:52 msgid "Read" msgstr "讀過" +#: bookwyrm/templates/get_started/book_preview.html:13 +#: bookwyrm/templates/shelf/shelf.html:89 bookwyrm/templates/user/user.html:36 +msgid "Stopped Reading" +msgstr "" + #: bookwyrm/templates/get_started/books.html:6 msgid "What are you reading?" msgstr "你在閱讀什麼?" @@ -2043,8 +2052,8 @@ msgid "Row" msgstr "" #: bookwyrm/templates/import/import_status.html:103 -#: bookwyrm/templates/shelf/shelf.html:147 -#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:148 +#: bookwyrm/templates/shelf/shelf.html:170 msgid "Title" msgstr "標題" @@ -2057,8 +2066,8 @@ msgid "Openlibrary key" msgstr "" #: bookwyrm/templates/import/import_status.html:114 -#: bookwyrm/templates/shelf/shelf.html:148 -#: bookwyrm/templates/shelf/shelf.html:172 +#: bookwyrm/templates/shelf/shelf.html:149 +#: bookwyrm/templates/shelf/shelf.html:173 msgid "Author" msgstr "作者" @@ -2976,6 +2985,11 @@ msgstr "" msgid "Start \"%(book_title)s\"" msgstr "" +#: bookwyrm/templates/reading_progress/stop.html:5 +#, python-format +msgid "Stop Reading \"%(book_title)s\"" +msgstr "" + #: bookwyrm/templates/reading_progress/want.html:5 #, python-format msgid "Want to Read \"%(book_title)s\"" @@ -3000,6 +3014,7 @@ msgstr "" #: bookwyrm/templates/readthrough/readthrough_modal.html:38 #: bookwyrm/templates/snippets/reading_modals/finish_reading_modal.html:24 #: bookwyrm/templates/snippets/reading_modals/start_reading_modal.html:21 +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:24 msgid "Started reading" msgstr "已開始閱讀" @@ -3008,7 +3023,7 @@ msgstr "已開始閱讀" msgid "Progress" msgstr "進度" -#: bookwyrm/templates/readthrough/readthrough_form.html:24 +#: bookwyrm/templates/readthrough/readthrough_form.html:25 #: bookwyrm/templates/readthrough/readthrough_modal.html:63 #: bookwyrm/templates/snippets/reading_modals/finish_reading_modal.html:32 msgid "Finished reading" @@ -3022,23 +3037,27 @@ msgstr "進度更新:" msgid "finished" msgstr "已完成" -#: bookwyrm/templates/readthrough/readthrough_list.html:25 +#: bookwyrm/templates/readthrough/readthrough_list.html:16 +msgid "stopped" +msgstr "" + +#: bookwyrm/templates/readthrough/readthrough_list.html:27 msgid "Show all updates" msgstr "顯示所有更新" -#: bookwyrm/templates/readthrough/readthrough_list.html:41 +#: bookwyrm/templates/readthrough/readthrough_list.html:43 msgid "Delete this progress update" msgstr "刪除此進度更新" -#: bookwyrm/templates/readthrough/readthrough_list.html:53 +#: bookwyrm/templates/readthrough/readthrough_list.html:55 msgid "started" msgstr "已開始" -#: bookwyrm/templates/readthrough/readthrough_list.html:60 +#: bookwyrm/templates/readthrough/readthrough_list.html:62 msgid "Edit read dates" msgstr "編輯閱讀日期" -#: bookwyrm/templates/readthrough/readthrough_list.html:68 +#: bookwyrm/templates/readthrough/readthrough_list.html:70 msgid "Delete these read dates" msgstr "刪除這些閱讀日期" @@ -4341,45 +4360,50 @@ msgid "User profile" msgstr "" #: bookwyrm/templates/shelf/shelf.html:39 -#: bookwyrm/templatetags/shelf_tags.py:44 bookwyrm/views/shelf/shelf.py:53 +#: bookwyrm/templatetags/shelf_tags.py:46 bookwyrm/views/shelf/shelf.py:53 msgid "All books" msgstr "所有書目" -#: bookwyrm/templates/shelf/shelf.html:96 +#: bookwyrm/templates/shelf/shelf.html:97 #, python-format msgid "%(formatted_count)s book" msgid_plural "%(formatted_count)s books" msgstr[0] "" -#: bookwyrm/templates/shelf/shelf.html:103 +#: bookwyrm/templates/shelf/shelf.html:104 #, python-format msgid "(showing %(start)s-%(end)s)" msgstr "" -#: bookwyrm/templates/shelf/shelf.html:115 +#: bookwyrm/templates/shelf/shelf.html:116 msgid "Edit shelf" msgstr "編輯書架" -#: bookwyrm/templates/shelf/shelf.html:123 +#: bookwyrm/templates/shelf/shelf.html:124 msgid "Delete shelf" msgstr "刪除書架" -#: bookwyrm/templates/shelf/shelf.html:151 -#: bookwyrm/templates/shelf/shelf.html:177 +#: bookwyrm/templates/shelf/shelf.html:152 +#: bookwyrm/templates/shelf/shelf.html:178 msgid "Shelved" msgstr "上架時間" -#: bookwyrm/templates/shelf/shelf.html:152 -#: bookwyrm/templates/shelf/shelf.html:180 +#: bookwyrm/templates/shelf/shelf.html:153 +#: bookwyrm/templates/shelf/shelf.html:181 msgid "Started" msgstr "開始時間" -#: bookwyrm/templates/shelf/shelf.html:153 -#: bookwyrm/templates/shelf/shelf.html:183 +#: bookwyrm/templates/shelf/shelf.html:154 +#: bookwyrm/templates/shelf/shelf.html:184 msgid "Finished" msgstr "完成時間" -#: bookwyrm/templates/shelf/shelf.html:209 +#: bookwyrm/templates/shelf/shelf.html:154 +#: bookwyrm/templates/shelf/shelf.html:184 +msgid "Until" +msgstr "" + +#: bookwyrm/templates/shelf/shelf.html:210 msgid "This shelf is empty." msgstr "此書架是空的。" @@ -4703,7 +4727,7 @@ msgid "(Optional)" msgstr "" #: bookwyrm/templates/snippets/reading_modals/progress_update_modal.html:6 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:54 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:61 msgid "Update progress" msgstr "更新進度" @@ -4712,6 +4736,17 @@ msgstr "更新進度" msgid "Start \"%(book_title)s\"" msgstr "開始 \"%(book_title)s\"" +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:6 +#, python-format +msgid "Stop Reading \"%(book_title)s\"" +msgstr "" + +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:32 +#: bookwyrm/templates/snippets/shelf_selector.html:54 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:21 +msgid "Stopped reading" +msgstr "" + #: bookwyrm/templates/snippets/reading_modals/want_to_read_modal.html:6 #, python-format msgid "Want to Read \"%(book_title)s\"" @@ -4759,23 +4794,23 @@ msgstr "移動書目" #: bookwyrm/templates/snippets/shelf_selector.html:39 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:17 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:24 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:33 msgid "Start reading" msgstr "開始閱讀" -#: bookwyrm/templates/snippets/shelf_selector.html:54 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:31 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:38 +#: bookwyrm/templates/snippets/shelf_selector.html:61 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:38 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:55 msgid "Want to read" msgstr "想要閱讀" -#: bookwyrm/templates/snippets/shelf_selector.html:75 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:66 +#: bookwyrm/templates/snippets/shelf_selector.html:82 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:73 #, python-format msgid "Remove from %(name)s" msgstr "從 %(name)s 移除" -#: bookwyrm/templates/snippets/shelf_selector.html:88 +#: bookwyrm/templates/snippets/shelf_selector.html:95 msgid "Remove from" msgstr "" @@ -4783,7 +4818,12 @@ msgstr "" msgid "More shelves" msgstr "更多書架" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:31 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:31 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:48 +msgid "Stop reading" +msgstr "" + +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:40 msgid "Finish reading" msgstr "完成閱讀" @@ -4878,6 +4918,16 @@ msgstr "" msgid "reviewed %(book)s" msgstr "" +#: bookwyrm/templates/snippets/status/headers/stopped_reading.html:10 +#, python-format +msgid "stopped reading %(book)s by %(author_name)s" +msgstr "" + +#: bookwyrm/templates/snippets/status/headers/stopped_reading.html:17 +#, python-format +msgid "stopped reading %(book)s" +msgstr "" + #: bookwyrm/templates/snippets/status/headers/to_read.html:10 #, python-format msgid "wants to read %(book)s by %(author_name)s" @@ -5018,29 +5068,29 @@ msgstr "%(username)s 沒有關注任何使用者" msgid "Edit profile" msgstr "編輯使用者資料" -#: bookwyrm/templates/user/user.html:37 +#: bookwyrm/templates/user/user.html:38 #, python-format msgid "View all %(size)s" msgstr "檢視所有 %(size)s 本" -#: bookwyrm/templates/user/user.html:51 +#: bookwyrm/templates/user/user.html:52 msgid "View all books" msgstr "檢視所有書目" -#: bookwyrm/templates/user/user.html:58 +#: bookwyrm/templates/user/user.html:59 #, python-format msgid "%(current_year)s Reading Goal" msgstr "" -#: bookwyrm/templates/user/user.html:65 +#: bookwyrm/templates/user/user.html:66 msgid "User Activity" msgstr "使用者活動" -#: bookwyrm/templates/user/user.html:69 +#: bookwyrm/templates/user/user.html:70 msgid "RSS feed" msgstr "RSS 訂閱" -#: bookwyrm/templates/user/user.html:80 +#: bookwyrm/templates/user/user.html:81 msgid "No activities yet!" msgstr "還沒有活動!" From f5d6a18ce0acea6a6ece14e09096c110cd49da21 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sat, 2 Jul 2022 10:49:57 -0700 Subject: [PATCH 06/15] Alphabetize list of software options in federated instances list --- bookwyrm/views/admin/federation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bookwyrm/views/admin/federation.py b/bookwyrm/views/admin/federation.py index cb05b779e..9c413ec53 100644 --- a/bookwyrm/views/admin/federation.py +++ b/bookwyrm/views/admin/federation.py @@ -60,7 +60,7 @@ class Federation(View): "sort": sort, "software_options": models.FederatedServer.objects.values_list( "application_type", flat=True - ).distinct(), + ).distinct().order_by("application_type"), "form": forms.ServerForm(), } return TemplateResponse(request, "settings/federation/instance_list.html", data) From f68c80dfff0ba6d0223c0d834849156b3f65ee36 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sat, 2 Jul 2022 10:50:17 -0700 Subject: [PATCH 07/15] Adds line length and import-error to .pylintrc --- .pylintrc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.pylintrc b/.pylintrc index 7f92d0168..464638853 100644 --- a/.pylintrc +++ b/.pylintrc @@ -3,4 +3,7 @@ ignore=migrations load-plugins=pylint.extensions.no_self_use [MESSAGES CONTROL] -disable=E1101,E1135,E1136,R0903,R0901,R0902,W0707,W0511,W0406,R0401,R0801,C3001 +disable=E1101,E1135,E1136,R0903,R0901,R0902,W0707,W0511,W0406,R0401,R0801,C3001,import-error + +[FORMAT] +max-line-length=88 From cbb979242d70c363b58a6ab50163024566c01709 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sat, 2 Jul 2022 10:56:18 -0700 Subject: [PATCH 08/15] Revert "Use async requests for broadcasting" --- bookwyrm/models/activitypub_mixin.py | 57 +++++++++++----------------- 1 file changed, 23 insertions(+), 34 deletions(-) diff --git a/bookwyrm/models/activitypub_mixin.py b/bookwyrm/models/activitypub_mixin.py index 56f9da208..402cb040b 100644 --- a/bookwyrm/models/activitypub_mixin.py +++ b/bookwyrm/models/activitypub_mixin.py @@ -1,5 +1,4 @@ """ activitypub model functionality """ -import asyncio from base64 import b64encode from collections import namedtuple from functools import reduce @@ -7,8 +6,9 @@ import json import operator import logging from uuid import uuid4 +import requests +from requests.exceptions import RequestException -import aiohttp from Crypto.PublicKey import RSA from Crypto.Signature import pkcs1_15 from Crypto.Hash import SHA256 @@ -510,22 +510,15 @@ def broadcast_task(sender_id, activity, recipients): """the celery task for broadcast""" user_model = apps.get_model("bookwyrm.User", require_ready=True) sender = user_model.objects.get(id=sender_id) - asyncio.run(async_broadcast(recipients, sender, activity)) + for recipient in recipients: + try: + sign_and_send(sender, activity, recipient) + except RequestException: + pass -async def async_broadcast(recipients, sender, data): - """Send all the broadcasts simultaneously""" - timeout = aiohttp.ClientTimeout(total=10) - async with aiohttp.ClientSession(timeout=timeout) as session: - tasks = [] - for recipient in recipients: - tasks.append( - asyncio.ensure_future(sign_and_send(session, sender, data, recipient)) - ) - - -async def sign_and_send(session, sender, data, destination): - """Sign the messages and send them in an asynchronous bundle""" +def sign_and_send(sender, data, destination): + """crpyto whatever and http junk""" now = http_date() if not sender.key_pair.private_key: @@ -533,25 +526,21 @@ async def sign_and_send(session, sender, data, destination): raise ValueError("No private key found for sender") digest = make_digest(data) - headers = { - "Date": now, - "Digest": digest, - "Signature": make_signature(sender, destination, now, digest), - "Content-Type": "application/activity+json; charset=utf-8", - "User-Agent": USER_AGENT, - } - try: - async with session.post(destination, data=data, headers=headers) as response: - if not response.ok: - logger.exception( - "Failed to send broadcast to %s: %s", destination, response.reason - ) - return await response - except asyncio.TimeoutError: - logger.info("Connection timed out for url: %s", destination) - except aiohttp.ClientError as err: - logger.exception(err) + response = requests.post( + destination, + data=data, + headers={ + "Date": now, + "Digest": digest, + "Signature": make_signature(sender, destination, now, digest), + "Content-Type": "application/activity+json; charset=utf-8", + "User-Agent": USER_AGENT, + }, + ) + if not response.ok: + response.raise_for_status() + return response # pylint: disable=unused-argument From e0a67f5e18ec5efb594772aee4ff825e5c23044f Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sat, 2 Jul 2022 11:06:48 -0700 Subject: [PATCH 09/15] Uses := syntax in user admin view I learned this! It's cool. --- bookwyrm/views/admin/user_admin.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/bookwyrm/views/admin/user_admin.py b/bookwyrm/views/admin/user_admin.py index df716d2cb..f1bb87a88 100644 --- a/bookwyrm/views/admin/user_admin.py +++ b/bookwyrm/views/admin/user_admin.py @@ -22,19 +22,16 @@ class UserAdminList(View): def get(self, request, status="local"): """list of users""" filters = {} - server = request.GET.get("server") - if server: + if server := request.GET.get("server"): server = models.FederatedServer.objects.filter(server_name=server).first() filters["federated_server"] = server filters["federated_server__isnull"] = False - username = request.GET.get("username") - if username: + if username := request.GET.get("username"): filters["username__icontains"] = username scope = request.GET.get("scope") if scope and scope == "local": filters["local"] = True - email = request.GET.get("email") - if email: + if email := request.GET.get("email"): filters["email__endswith"] = email filters["local"] = status == "local" From 13e23a868d6180ca28cc02204627c8f89ad19fe2 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sat, 2 Jul 2022 11:07:11 -0700 Subject: [PATCH 10/15] Adds instance name filter to federated instance list view This lets you look for a specific server in your (probably very long) instance list. --- .../templates/settings/federation/instance_filters.html | 1 + bookwyrm/views/admin/federation.py | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/bookwyrm/templates/settings/federation/instance_filters.html b/bookwyrm/templates/settings/federation/instance_filters.html index 46ae0c1cf..d6af7e91f 100644 --- a/bookwyrm/templates/settings/federation/instance_filters.html +++ b/bookwyrm/templates/settings/federation/instance_filters.html @@ -2,6 +2,7 @@ {% block filter_fields %} {% include 'settings/federation/software_filter.html' %} +{% include 'settings/users/server_filter.html' %} {% endblock %} diff --git a/bookwyrm/views/admin/federation.py b/bookwyrm/views/admin/federation.py index 9c413ec53..88bd43aac 100644 --- a/bookwyrm/views/admin/federation.py +++ b/bookwyrm/views/admin/federation.py @@ -29,6 +29,8 @@ class Federation(View): filters = {} if software := request.GET.get("application_type"): filters["application_type"] = software + if server := request.GET.get("server"): + filters["server_name"] = server servers = models.FederatedServer.objects.filter(status=status, **filters) @@ -60,7 +62,9 @@ class Federation(View): "sort": sort, "software_options": models.FederatedServer.objects.values_list( "application_type", flat=True - ).distinct().order_by("application_type"), + ) + .distinct() + .order_by("application_type"), "form": forms.ServerForm(), } return TemplateResponse(request, "settings/federation/instance_list.html", data) From 94a6675dc47843f7f7fe049a047d1dc2e9c42a59 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sat, 2 Jul 2022 12:07:22 -0700 Subject: [PATCH 11/15] Pylint fixes --- bookwyrm/importers/calibre_import.py | 2 +- bookwyrm/tests/test_postgres.py | 1 + bookwyrm/utils/isni.py | 2 +- docker-compose.yml | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/bookwyrm/importers/calibre_import.py b/bookwyrm/importers/calibre_import.py index 7395e2f7b..5426e9333 100644 --- a/bookwyrm/importers/calibre_import.py +++ b/bookwyrm/importers/calibre_import.py @@ -24,5 +24,5 @@ class CalibreImporter(Importer): super().__init__(*args, **kwargs) def get_shelf(self, normalized_row): - # Calibre export does not indicate which shelf to use. Go with a default one for now + # Calibre export does not indicate which shelf to use. Use a default one for now return Shelf.TO_READ diff --git a/bookwyrm/tests/test_postgres.py b/bookwyrm/tests/test_postgres.py index 624512575..94a8090f4 100644 --- a/bookwyrm/tests/test_postgres.py +++ b/bookwyrm/tests/test_postgres.py @@ -34,6 +34,7 @@ class PostgresTriggers(TestCase): ) book.authors.add(author) book.refresh_from_db() + # pylint: disable=line-too-long self.assertEqual( book.search_vector, "'cool':5B 'goodby':3A 'long':2A 'name':9 'rays':7C 'seri':8 'the':6C 'wow':4B", diff --git a/bookwyrm/utils/isni.py b/bookwyrm/utils/isni.py index 180c5e388..ea0364e55 100644 --- a/bookwyrm/utils/isni.py +++ b/bookwyrm/utils/isni.py @@ -106,7 +106,7 @@ def find_authors_by_name(name_string, description=False): if titles: # some of the "titles" in ISNI are a little ...iffy - # '@' is used by ISNI/OCLC to index the starting point ignoring stop words + # @ is used by ISNI/OCLC to index the starting point ignoring stop words # (e.g. "The @Government of no one") title_elements = [ e diff --git a/docker-compose.yml b/docker-compose.yml index c5ff1f21b..c654374b9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -89,7 +89,7 @@ services: command: celery -A celerywyrm flower --basic_auth=${FLOWER_USER}:${FLOWER_PASSWORD} env_file: .env ports: - - ${FLOWER_PORT} + - ${FLOWER_PORT}:${FLOWER_PORT} volumes: - .:/app networks: From 3ad0a5d07357d60597667605ec12e43f7606b90a Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sat, 2 Jul 2022 13:06:29 -0700 Subject: [PATCH 12/15] Use update_fields to limit `remove_list_task`s If we know what fields were updated, we can avoid running this task. This also adds some mocks where they are needed for the list view. --- bookwyrm/lists_stream.py | 17 +++++++++++------ bookwyrm/models/list.py | 4 ++-- bookwyrm/tests/views/lists/test_curate.py | 4 +++- bookwyrm/tests/views/lists/test_embed.py | 4 +++- bookwyrm/tests/views/lists/test_list.py | 14 ++++++++------ bookwyrm/tests/views/lists/test_list_item.py | 4 +++- bookwyrm/tests/views/lists/test_lists.py | 18 +++++++++++++----- 7 files changed, 43 insertions(+), 22 deletions(-) diff --git a/bookwyrm/lists_stream.py b/bookwyrm/lists_stream.py index c40d2b534..0977ad8c2 100644 --- a/bookwyrm/lists_stream.py +++ b/bookwyrm/lists_stream.py @@ -114,15 +114,20 @@ class ListsStream(RedisStore): @receiver(signals.post_save, sender=models.List) # pylint: disable=unused-argument -def add_list_on_create(sender, instance, created, *args, **kwargs): +def add_list_on_create(sender, instance, created, *args, update_fields=None, **kwargs): """add newly created lists streams""" - if not created: - # the privacy may have changed, so we need to re-do the whole thing - remove_list_task.delay(instance.id, re_add=True) + if created: + # when creating new things, gotta wait on the transaction + transaction.on_commit(lambda: add_list_on_create_command(instance.id)) return - # when creating new things, gotta wait on the transaction - transaction.on_commit(lambda: add_list_on_create_command(instance.id)) + # if update_fields was specified, we can check if privacy was updated, but if + # it wasn't specified (ie, by an activitypub update), there's no way to know + if update_fields and "privacy" not in update_fields: + return + + # the privacy may have changed, so we need to re-do the whole thing + remove_list_task.delay(instance.id, re_add=True) @receiver(signals.post_delete, sender=models.List) diff --git a/bookwyrm/models/list.py b/bookwyrm/models/list.py index ea524cc54..0195020e0 100644 --- a/bookwyrm/models/list.py +++ b/bookwyrm/models/list.py @@ -129,7 +129,7 @@ class List(OrderedCollectionMixin, BookWyrmModel): """on save, update embed_key and avoid clash with existing code""" if not self.embed_key: self.embed_key = uuid.uuid4() - return super().save(*args, **kwargs) + super().save(*args, **kwargs) class ListItem(CollectionItemMixin, BookWyrmModel): @@ -156,7 +156,7 @@ class ListItem(CollectionItemMixin, BookWyrmModel): super().save(*args, **kwargs) # tick the updated date on the parent list self.book_list.updated_date = timezone.now() - self.book_list.save(broadcast=False) + self.book_list.save(broadcast=False, update_fields=["updated_date"]) list_owner = self.book_list.user model = apps.get_model("bookwyrm.Notification", require_ready=True) diff --git a/bookwyrm/tests/views/lists/test_curate.py b/bookwyrm/tests/views/lists/test_curate.py index 9be8c2a15..9f3427b2c 100644 --- a/bookwyrm/tests/views/lists/test_curate.py +++ b/bookwyrm/tests/views/lists/test_curate.py @@ -36,7 +36,9 @@ class ListViews(TestCase): parent_work=work, ) - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"): + with patch( + "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" + ), patch("bookwyrm.lists_stream.remove_list_task.delay"): self.list = models.List.objects.create( name="Test List", user=self.local_user ) diff --git a/bookwyrm/tests/views/lists/test_embed.py b/bookwyrm/tests/views/lists/test_embed.py index dc61736d3..4191ffe0d 100644 --- a/bookwyrm/tests/views/lists/test_embed.py +++ b/bookwyrm/tests/views/lists/test_embed.py @@ -36,7 +36,9 @@ class ListViews(TestCase): parent_work=work, ) - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"): + with patch( + "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" + ), patch("bookwyrm.lists_stream.remove_list_task.delay"): self.list = models.List.objects.create( name="Test List", user=self.local_user ) diff --git a/bookwyrm/tests/views/lists/test_list.py b/bookwyrm/tests/views/lists/test_list.py index bcec0822f..98b0a461a 100644 --- a/bookwyrm/tests/views/lists/test_list.py +++ b/bookwyrm/tests/views/lists/test_list.py @@ -65,7 +65,9 @@ class ListViews(TestCase): parent_work=work_four, ) - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"): + with patch( + "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" + ), patch("bookwyrm.lists_stream.remove_list_task.delay"): self.list = models.List.objects.create( name="Test List", user=self.local_user ) @@ -244,7 +246,7 @@ class ListViews(TestCase): with patch( "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" - ) as mock: + ) as mock, patch("bookwyrm.lists_stream.remove_list_task.delay"): result = view(request, self.list.id) self.assertEqual(mock.call_count, 1) @@ -596,7 +598,7 @@ class ListViews(TestCase): def test_add_book_outsider(self): """put a book on a list""" self.list.curation = "open" - self.list.save(broadcast=False) + self.list.save(broadcast=False, update_fields=["curation"]) request = self.factory.post( "", { @@ -625,7 +627,7 @@ class ListViews(TestCase): def test_add_book_pending(self): """put a book on a list awaiting approval""" self.list.curation = "curated" - self.list.save(broadcast=False) + self.list.save(broadcast=False, update_fields=["curation"]) request = self.factory.post( "", { @@ -658,7 +660,7 @@ class ListViews(TestCase): def test_add_book_self_curated(self): """put a book on a list automatically approved""" self.list.curation = "curated" - self.list.save(broadcast=False) + self.list.save(broadcast=False, update_fields=["curation"]) request = self.factory.post( "", { @@ -687,7 +689,7 @@ class ListViews(TestCase): def test_add_book_permission_denied(self): """you can't add to that list""" self.list.curation = "closed" - self.list.save(broadcast=False) + self.list.save(broadcast=False, update_fields=["curation"]) request = self.factory.post( "", { diff --git a/bookwyrm/tests/views/lists/test_list_item.py b/bookwyrm/tests/views/lists/test_list_item.py index 50be3c286..b95282bef 100644 --- a/bookwyrm/tests/views/lists/test_list_item.py +++ b/bookwyrm/tests/views/lists/test_list_item.py @@ -32,7 +32,9 @@ class ListItemViews(TestCase): remote_id="https://example.com/book/1", parent_work=work, ) - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"): + with patch( + "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" + ), patch("bookwyrm.lists_stream.remove_list_task.delay"): self.list = models.List.objects.create( name="Test List", user=self.local_user ) diff --git a/bookwyrm/tests/views/lists/test_lists.py b/bookwyrm/tests/views/lists/test_lists.py index f65d2e4c2..c2263b933 100644 --- a/bookwyrm/tests/views/lists/test_lists.py +++ b/bookwyrm/tests/views/lists/test_lists.py @@ -39,7 +39,9 @@ class ListViews(TestCase): view = views.Lists.as_view() with patch( "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" - ), patch("bookwyrm.lists_stream.add_list_task.delay"): + ), patch("bookwyrm.lists_stream.add_list_task.delay"), patch( + "bookwyrm.lists_stream.remove_list_task.delay" + ): models.List.objects.create(name="Public list", user=self.local_user) models.List.objects.create( name="Private list", privacy="direct", user=self.local_user @@ -62,7 +64,9 @@ class ListViews(TestCase): def test_saved_lists_page(self): """there are so many views, this just makes sure it LOADS""" view = views.SavedLists.as_view() - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"): + with patch( + "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" + ), patch("bookwyrm.lists_stream.remove_list_task.delay"): booklist = models.List.objects.create( name="Public list", user=self.local_user ) @@ -82,7 +86,9 @@ class ListViews(TestCase): def test_saved_lists_page_empty(self): """there are so many views, this just makes sure it LOADS""" view = views.SavedLists.as_view() - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"): + with patch( + "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" + ), patch("bookwyrm.lists_stream.remove_list_task.delay"): models.List.objects.create(name="Public list", user=self.local_user) models.List.objects.create( name="Private list", privacy="direct", user=self.local_user @@ -108,7 +114,9 @@ class ListViews(TestCase): def test_user_lists_page(self): """there are so many views, this just makes sure it LOADS""" view = views.UserLists.as_view() - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"): + with patch( + "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" + ), patch("bookwyrm.lists_stream.remove_list_task.delay"): models.List.objects.create(name="Public list", user=self.local_user) models.List.objects.create( name="Private list", privacy="direct", user=self.local_user @@ -146,7 +154,7 @@ class ListViews(TestCase): request.user = self.local_user with patch( "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" - ) as mock: + ) as mock, patch("bookwyrm.lists_stream.remove_list_task.delay"): result = view(request) self.assertEqual(mock.call_count, 1) From 495bf203b073bc0bf8c7538ae74fc4ce239f1e74 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sat, 2 Jul 2022 13:45:53 -0700 Subject: [PATCH 13/15] Mocks inbox and search tests --- bookwyrm/tests/views/inbox/test_inbox_remove.py | 4 +++- bookwyrm/tests/views/inbox/test_inbox_update.py | 7 +++++-- bookwyrm/tests/views/test_search.py | 4 +++- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/bookwyrm/tests/views/inbox/test_inbox_remove.py b/bookwyrm/tests/views/inbox/test_inbox_remove.py index 53288e0d3..d7b3f6778 100644 --- a/bookwyrm/tests/views/inbox/test_inbox_remove.py +++ b/bookwyrm/tests/views/inbox/test_inbox_remove.py @@ -75,7 +75,9 @@ class InboxRemove(TestCase): def test_handle_remove_book_from_list(self): """listing a book""" - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"): + with patch( + "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" + ), patch("bookwyrm.lists_stream.remove_list_task.delay"): booklist = models.List.objects.create( name="test list", user=self.local_user, diff --git a/bookwyrm/tests/views/inbox/test_inbox_update.py b/bookwyrm/tests/views/inbox/test_inbox_update.py index 18b2e5d59..e8593c2be 100644 --- a/bookwyrm/tests/views/inbox/test_inbox_update.py +++ b/bookwyrm/tests/views/inbox/test_inbox_update.py @@ -50,7 +50,9 @@ class InboxUpdate(TestCase): def test_update_list(self): """a new list""" - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"): + with patch( + "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" + ), patch("bookwyrm.lists_stream.remove_list_task.delay"): book_list = models.List.objects.create( name="hi", remote_id="https://example.com/list/22", user=self.local_user ) @@ -69,7 +71,8 @@ class InboxUpdate(TestCase): "curation": "curated", "@context": "https://www.w3.org/ns/activitystreams", } - views.inbox.activity_task(activity) + with patch("bookwyrm.lists_stream.remove_list_task.delay"): + views.inbox.activity_task(activity) book_list.refresh_from_db() self.assertEqual(book_list.name, "Test List") self.assertEqual(book_list.curation, "curated") diff --git a/bookwyrm/tests/views/test_search.py b/bookwyrm/tests/views/test_search.py index 51166f2fa..d6e00edb6 100644 --- a/bookwyrm/tests/views/test_search.py +++ b/bookwyrm/tests/views/test_search.py @@ -140,7 +140,9 @@ class Views(TestCase): def test_search_lists(self): """searches remote connectors""" - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"): + with patch( + "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" + ), patch("bookwyrm.lists_stream.remove_list_task.delay"): booklist = models.List.objects.create( user=self.local_user, name="test list" ) From 46421f9672d73d8414d638cac391faa90b3c698a Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sat, 2 Jul 2022 13:48:15 -0700 Subject: [PATCH 14/15] Mocks for lists model --- bookwyrm/tests/models/test_list.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/bookwyrm/tests/models/test_list.py b/bookwyrm/tests/models/test_list.py index e4ecfe897..de6957b57 100644 --- a/bookwyrm/tests/models/test_list.py +++ b/bookwyrm/tests/models/test_list.py @@ -23,7 +23,9 @@ class List(TestCase): def test_remote_id(self, _): """shelves use custom remote ids""" - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"): + with patch( + "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" + ), patch("bookwyrm.lists_stream.remove_list_task.delay"): book_list = models.List.objects.create( name="Test List", user=self.local_user ) @@ -32,7 +34,9 @@ class List(TestCase): def test_to_activity(self, _): """jsonify it""" - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"): + with patch( + "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" + ), patch("bookwyrm.lists_stream.remove_list_task.delay"): book_list = models.List.objects.create( name="Test List", user=self.local_user ) @@ -46,7 +50,9 @@ class List(TestCase): def test_list_item(self, _): """a list entry""" - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"): + with patch( + "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" + ), patch("bookwyrm.lists_stream.remove_list_task.delay"): book_list = models.List.objects.create( name="Test List", user=self.local_user, privacy="unlisted" ) @@ -64,7 +70,9 @@ class List(TestCase): def test_list_item_pending(self, _): """a list entry""" - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"): + with patch( + "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" + ), patch("bookwyrm.lists_stream.remove_list_task.delay"): book_list = models.List.objects.create( name="Test List", user=self.local_user ) @@ -84,7 +92,9 @@ class List(TestCase): def test_embed_key(self, _): """embed_key should never be empty""" - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"): + with patch( + "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" + ), patch("bookwyrm.lists_stream.remove_list_task.delay"): book_list = models.List.objects.create( name="Test List", user=self.local_user ) From 6e70ceb094ed5ea0139b8ac7d689e476eca3350f Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sat, 2 Jul 2022 19:43:59 -0700 Subject: [PATCH 15/15] More mocks --- bookwyrm/tests/lists_stream/test_signals.py | 14 ++++++++------ bookwyrm/tests/lists_stream/test_stream.py | 1 + bookwyrm/tests/lists_stream/test_tasks.py | 4 +++- bookwyrm/tests/models/test_group.py | 9 ++++++--- 4 files changed, 18 insertions(+), 10 deletions(-) diff --git a/bookwyrm/tests/lists_stream/test_signals.py b/bookwyrm/tests/lists_stream/test_signals.py index f82dba3a4..96f1ae231 100644 --- a/bookwyrm/tests/lists_stream/test_signals.py +++ b/bookwyrm/tests/lists_stream/test_signals.py @@ -32,9 +32,10 @@ class ListsStreamSignals(TestCase): def test_add_list_on_create_command(self, _): """a new lists has entered""" - book_list = models.List.objects.create( - user=self.remote_user, name="hi", privacy="public" - ) + with patch("bookwyrm.lists_stream.remove_list_task.delay"): + book_list = models.List.objects.create( + user=self.remote_user, name="hi", privacy="public" + ) with patch("bookwyrm.lists_stream.add_list_task.delay") as mock: lists_stream.add_list_on_create_command(book_list.id) self.assertEqual(mock.call_count, 1) @@ -43,9 +44,10 @@ class ListsStreamSignals(TestCase): def test_remove_list_on_delete(self, _): """delete a list""" - book_list = models.List.objects.create( - user=self.remote_user, name="hi", privacy="public" - ) + with patch("bookwyrm.lists_stream.remove_list_task.delay"): + book_list = models.List.objects.create( + user=self.remote_user, name="hi", privacy="public" + ) with patch("bookwyrm.lists_stream.remove_list_task.delay") as mock: lists_stream.remove_list_on_delete(models.List, book_list) args = mock.call_args[0] diff --git a/bookwyrm/tests/lists_stream/test_stream.py b/bookwyrm/tests/lists_stream/test_stream.py index 4d8aa52b2..0e87c7436 100644 --- a/bookwyrm/tests/lists_stream/test_stream.py +++ b/bookwyrm/tests/lists_stream/test_stream.py @@ -11,6 +11,7 @@ from bookwyrm import lists_stream, models @patch("bookwyrm.activitystreams.add_book_statuses_task.delay") @patch("bookwyrm.suggested_users.rerank_suggestions_task.delay") @patch("bookwyrm.activitystreams.populate_stream_task.delay") +@patch("bookwyrm.lists_stream.remove_list_task.delay") class ListsStream(TestCase): """using redis to build activity streams""" diff --git a/bookwyrm/tests/lists_stream/test_tasks.py b/bookwyrm/tests/lists_stream/test_tasks.py index 1da36b71b..55c5d98c8 100644 --- a/bookwyrm/tests/lists_stream/test_tasks.py +++ b/bookwyrm/tests/lists_stream/test_tasks.py @@ -35,7 +35,9 @@ class Activitystreams(TestCase): inbox="https://example.com/users/rat/inbox", outbox="https://example.com/users/rat/outbox", ) - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"): + with patch( + "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" + ), patch("bookwyrm.lists_stream.remove_list_task.delay"): self.list = models.List.objects.create( user=self.local_user, name="hi", privacy="public" ) diff --git a/bookwyrm/tests/models/test_group.py b/bookwyrm/tests/models/test_group.py index 8739f7fee..86cafaa39 100644 --- a/bookwyrm/tests/models/test_group.py +++ b/bookwyrm/tests/models/test_group.py @@ -80,7 +80,9 @@ class Group(TestCase): """follower-only group booklists should not be excluded from group booklist listing for group members who do not follower list owner""" - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"): + with patch( + "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" + ), patch("bookwyrm.lists_stream.remove_list_task.delay"): followers_list = models.List.objects.create( name="Followers List", curation="group", @@ -101,8 +103,9 @@ class Group(TestCase): """private group booklists should not be excluded from group booklist listing for group members""" - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"): - + with patch( + "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" + ), patch("bookwyrm.lists_stream.remove_list_task.delay"): private_list = models.List.objects.create( name="Private List", privacy="direct",