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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 diff --git a/locale/de_DE/LC_MESSAGES/django.po b/locale/de_DE/LC_MESSAGES/django.po index 0775ccaff..21b885252 100644 --- a/locale/de_DE/LC_MESSAGES/django.po +++ b/locale/de_DE/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-19 10:11\n" "Last-Translator: Mouse Reeve \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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 delta 23702 zcmZp?&3fiCYyCYTmZ=O33=AGD3=A?13=AW<)bENHH)l%#3DW zP+?$T*b>dapvAzza5I{LL6m`kfhC54L6(7mK`MrU!JC1B!6Jr%!HI!^p(Tca!G?i> z;dl%KgC0m-ECWLr0|SF`ECWM40|P@>ECa(K28McuSFsEXuNW8@*2Xa~NHZ`n%!p@T zFalW=53%TZJOhIm0|SFl0t15*0|SF*0t16F0|SFk0t15s0|P@t0s}(;0|Uds1O^5J zkh(+$26+Ys2IoWu27U$xhU7#B25|-khT=p91_cHNhVDcL1|J3nhBaXEdIpA{AO<4? zgJ2Q^g9yliWCn&E3=9l*$qKPaq+EO7deVod`V8Xz_ z@Hv%%fs28GK_d+!Zk)!zpbGL)8Uq6#0|P^58YHAD(ij-B7#J9)q%klwgDgyAU{GdY zU}#QfV8~}+U|0^N#WNTf@)#Hx+A|m!f*BYXzGW~lBrq^Acx5s$)Tb~oFs#mGV2EO1 zU=YY+V2EU3V93s5V2EL0U^toui94li28Lt?28O_F28Kii28ONK3=Fyq3=HBq3=Dz{ z3=FP03=E|V3=H8p3=BF93=C&;ARhUZ196~!E+pt@m zfkB;tf#C(ze1Rec25trh2FW5w6ss0N98_NqmFO&j_i=dGMo3sgGd>~#nNRE7iyI;Fl2)gRT(57&nkmBU{4uD zdOB_>i@nfdN#6@|8mzvZS1W;X4BZgL?(Ur}mYQp!ckV@Ixy>7Beu!S28dN zf%1P^CBy-hm5?CpsAOP}U|?XFTnVvgO(n$VTPhhC3K$p|PE|q*7V9dAgQBV+QIk;x z37N_&h`ydG1_l;T`A`KhZ)O!Fq&Gpu4^=TR)PoYm@hV7MUao=!)lH}Y&!85(tAeDB zKUENi@>N3&maT?ZtW*tgxN$Ya0e0043|64>q8gIeda5D%o>en2OkiMO_*xCIudRlm z9$cdJ)IcnlT?3I=TLW>(W+?wa4a9Vsbyd=XJBA3 zsbyfW0Oj{uNSaz&3kk8SwGi_k*VaQ^{Gk@&6XrUI14QZ|21?aI3{{$m%1A$OFstyvz$x!*+I*7+g>mU}lL+Pnd@x}FZkm_}79mF9Qp!DN928Mo6Sq(L) ztsdf#zIup-^PmOS@_L9*)$ z{T{6ldm>sH80taQVnQp#qP$i}T-HN1?1E}I(F$?-jaEnqeQAX__&3xbjy6al7HES+ zopu{2Xc-s`+8{o6YlDPfL>ok3N*l!Cg>4M=;A*kD4HDO_P>Bgpg|ndI%c1lpD7_a- zpMa{n+y?R41E}~1sD;0w4r6bJgqTu0BqXETA?g#`>mhMn*bWJShIU9$O>BqwbbdRe zRlKYn5~qjTAq|u}?T{e;45k0HLwv;A0SQ|E4oJ|8cReq2PA)gg3@fAkSLLY((;{< zkXGr0WY2nisDOVb#Gt57h!2uGAqHi4LL5-v3Gq=+CnRLnbwX16)=o&Zd$tqe;CE1S z{&qq_l&uSr7R0+CA*w=Rf9zFiCq;S3B6iCvJ6#?CHCklpKogwW?M zNE9%4L)6Q3LmX<*4M}7c-4JzN-H?!o>V`Nd1!1ei z>xRVHv2IAv-Ry>h%sr?@&!GFZfuSDMJigKk@!{QGh|8Wq={LO$3?2*&44---4zlip z#JN)+gdYW^6Z;?`kkJQ8E0ui^2ekD;a?6xHNEEH^gE(|=AEZ1v*~d^1?xQ`03ViK@ zI7F}?61P(Q3=GE@7#NiLAsS!yL*&2qL*n{hKPV0v82BbY(uB$ch(#6?AQpQ~fH)*^ z0wgN(q4IT5{)7qj5Ci5Wki;iH6%v=KQyCbn85kHWr$U0ZbSlJ0T~i_5>?u3Pf>@9} z3larovmjB^1vOyCEJ)mModro`yJkUrcxM*GA@62Ef|zkOBPe7K73X3n2RHwH82JZnOZBN*xwJf^m7oQvuiQWrvkcE&=8i`FiLxO^*= zzYj_uTL?*1=N3Xj;_gDo5X@VsyznB3e(6OJ{mP3V4%b-(aflt1_E-c7k)TDOG*QpM z5V;7FxKbBE>g|d}khCy&5yYaMiy*n;Bv=Cj!xgAO51`_&7D1xyE7aiMPzNwAhWMO& zF~mZF#SjOIFNSzTelY`sH7Nh=S#OHgxeECI(Y!~G?Y0!?Ts19%wEV=1J3C|U|JzjG-=J$UeV z-cpD~dzM0ceqt%af}cwv4&qn_2|9^okhoP?21%@%%OD23EQ3^5dCMSi-Lec~LEkdS zIN{=DkVJZF8N{B)%OK{zUj}Xe|62wrSa_F1EYe>NvB-Qm#D@;cAwKkl@`IN{f;0ij zPhZZ!(8s{QP_i5{0?NDsVvYfnwpanlO%5v{V@x3{Ah{)?9;%>m1!TCqa|I;P9D`~& zy#iwK{S^?GKV1QF(8m>!xc#>R;$xnb5C@5^goK#vN=WM0T?r}i?4kUGl@R?!Dx0b6RJ_&(}r>urpkP8*B zSq%xop4E^vvvoBjq@JyYIN;4{NVfj68f*~*`x;0{NkD0(HK35GXJF7-1IgdMYak&J zu?7+}DQh6*LFF2V59h6c7<^<6Bt*`vfjH>a8i>PRu7L#kC#VH1Ya!W?Z!Kg-L}M+a zEttI)QbJB%%fO%n%K!V>pDnCh_8c$jQToAHgZ}AY0E{f zgLt5F9mE4I>mUxCunuDGJgEL<>mX@l8Xlmr_I!HEo3e~`~9^xaB^$?3? z*FzknyB-p!c2Ifm^$-V#tcMsJ2j!=(hgh5sRad?qlDit#L+X}A>mk{3*LsF}@FddZ z^$?%Eglc5j0I8OFHb8u0z5!y9>jsE}{5L=x62AfB&>X0E=>|w6vlXiE{su@Cy@jg( zvjGyKoEsq_D7_InoMyBUVxjd$Na{@62r0ojH$p7jvyp+p5;Ux~k%8eN0|NuwCJ6t= zCP)D!v>DREvDpmqVb*4dc++N3B4c1!vl-%$vzsANb!Rgq#Gcnf8SgeTFnBRAFnop5 z4qG7Yf$lAkrqZr03=9zr3=B86KrAra%D}LRfq}tuDl|2xLKitE>zzNF#-}XSVAH!aV#p-(@ab~a=5+cES zAyE>$mw}-SG#j=T5;eE>LJE|JP<5R9Ao_*(L83?o%GccoN%dy?Ac@dpAH@9deGCls zpb5pQeUR$2b05TI^Y=ko!CUr0d~|sq#K#Yz2EEw_No@b1>IL^hqCjmw#2l;rkhBp1 zrDOI(9FVae;=ro?kVM_QpP?Q+mAY_0BnVIJhXnc6{SXW9?uYpN1yuaqen^q}4Qi3V z0mvx1+5rZJX$%Yu+YUe+?0XOra?uANX(#m{#GKND5c%qZkU65xgY}Tf;{yjFK`D5M zfuRA^={y7p>RpE*Ef~YYkhGD07&3)A=`aJsZUzR1XNMt^$%~FKFvKx1FuXqk2|2%` zkn$t)2>YCgvy zL0Wqp;*-h8A(heM;}D0RJPs*0q)tGhAoT>K0aAGa5~9maKtgi!2}qRegYr+EfaIq7 zt0x#3iWnFeex87&=A4rd4JS@Qg6i@~h>sthgcKmAryz-F`6-Bj+fG3oc<2kGE zEdFr{GF#4i8j@I}PDAWTJPir4E2qH)Q9Xm=8A$f9I|B*gs56kbYCQu<3*BcJ7<@sq zVP_yC7!RR*gR_tzt~<-Xz{J47u<*ZAr=>(hXnPZ^9&5m3=9ms7a$G`ya3_P zzW|Br#}^ocL4w}>GGz36 z_GO5Vu3UyxD$g%NqKM-PgfDgl;#2c05C_;^frOwNRNU_hByELUfy|6HTw!3S*JfZ~ zxO;_xVG;ua1LswU#yM9ZmB-Snkkra>4U)R`u0i6m_ZlP{PPqnINU-i2#3KIdkdaRD z>yQ}^pX&?^wG0dlo32C5HMjwZGRqr~^#nOL80x|E^A~PFe0K8&BsaXd0V$#QZZa@@ zWMp74yb1B4@@+_}b-4{mD;c*Tb;0D@kX*6)HpJqKw;34h85kJM?=UdLGB7Zd-(g^| zWnf^qdIz$ALHI5MLkJeVbeWGV%&2d;*%TqAp;A%4XV0#Yf2Z%q1Brfmg z5FbQ7hcqlQpF^T*@pDKNZF>%x@4NXNl7?JgKrFuT0#cx{zGPr11})Qh30ai#CSr*!2dIO<%oXV8~!#U7y28MEmdIpC5?;(vw^AC_j zGw}n&z>6Osas287#OL}SA-N*+BgE%NK0?Hwe}rT^#ZQn_uKo!Ur3O&G*C$B+5B>xx zqT@e7LbMnp56b_|pCGkW&nHOHJM9xBu`K)qamXI10au~)!%vXx_VyDb7kvE$Nt_Cw zA=RwuXNU#vP=5GlNK|G*#mhfKitzT&3=H+4^*hs`3RirFxNsL#;W?=Iz0VK}K75Aw zjP(m7t;m0Y@D08|(uCI+h`QJ>;If^e=nEuq_J4sm?BEwj$$I$mU4q82I83!~uW)K#E6Q=l5={)1$r)ldZ+p#~iJ z2MMw>{~!)~2&KP6)${&`Brf6q5TB|3hp03B4_RpF{vXn?Sq>FvW?*EP4_XPuz{tP` z%KtkV7{SZ!4lpo+eQ+8q!NBl@ff2lL@HGP?c#@i#5u%P4N=q;@f(NgZ85zNg&KwyT z!Hdg685zNoTCt3b3~mez47rSq4DO%>jf{-o6;*#28NqAD^q3eK_(1vJk%8 zV1@X^i4~&J7s^k9%I8Aqa#l!?H?lH=1)R z*crjg^5obd7V1O!=Ijt3d$2?73t?vjFH()KXJ-WWfIu{8!Qe7>h{c=PA#t{g9pZqC z><|asXNOq)hMf_-a_T=+oR0$%V$x9BfCCbxu26m=2gJu^9FRob#lZ-!Me7%HKwQeh z386(eAug5SgjlG-2}u*CoDiS8Liv82kW?MV332c;PDlu>g{s>QHSYi?BY5%Z2~J4b zdB+KHI0F|rr0N;?xgb7N;DY!}kBbr9W^?3%D4fp)39@xujNq}Nom>!yo#%r1_zqP6 zM=nP2ipT$45Ra&HGlEyc>T^TP4d#Y8APvf|;0Bpr&%n?P6_~{hb`ir`uml6cKB$JX z+>j8s50!rp6=&dqI6#O8Vz4?7B+4v#AnF5nAVHnL1BvTO9!78@bS4kPLDzX08AL(( z{}m4;ZWwqW5+b~ixKrnah&%H#f)@^lL&Xbu8Nn-=dwC%tv5prKLc4h(QFjb#&Lv(( z@N(RzQ2j!D5OZ|+AojTNF+#@wBl#G?3k5UzAaR_>2MLLCK2Q)bFm&)iO2X-UknFS` zDt`{D{yvm`!3RkLAED}hLup}tNE*@RhnR1~4>8x8pRt|+w7%C1Dp0}?Nej*V5T8us zhgdupD!-MV5xlhe2-Lu5{E*!9mY)%9j)(xn;dTNLhxiLXq9#%R;_z$%M(|?xE&)hd zS}ITvaoKJGh{1;h7{NWECjyM%#pLCJkdkYKAjF{4f{>uUD+n>*pCClPh!7+#NDD#I zfPoOi0q#N&2L%d2Jd`8^iLyK)h{vkyg&=V}SqM^@EEj?V%~2sp99EA^NMhv_1?#V85D|s=P!dWji9(8EZ76Lh$_QSBVh)vW5QPMBCsclcC?j}D_A*h3 z2UdwfLS%<1#KA|P>Mug&Ux-3N=9?&}U;^boF^EPrF-RIP5ra4&Obp_a7%@hMOAHJQ zDPj#heX8%DF2~2H2;5tYUGiC zBrqKwKOp0SUSk35bFD5)g;BNI)FaB>@TQ84{4V-73KdUQe_~0#XjV zhng=V3DK`7$;eO-T0ZYA330inB*XzRl90rdCke5*7b-tp5@PTwNl3_SgsR^Ol|L;B zNzC^oA=&X0)FK%vh`6B?BX|#ps}!WDo+HIr56+KAq#!=HF9mVHTPa8g{Fj0_L_!*3 zfH{=*mWHI6cxi}_Go&F7Yn6uR>yc&z57RG|h9uT<8AkA6^lTYM@D`4bG7x**Wa}Y5 zkC253WXnPfs+ENVQHv}@!%SI-Mek%Gan3CVDHkN<7#R*TFfdp{>Hl(&G;&xT;*j(5 z5cMzQA?AOThv;KhUes=x?d zC4UQQ5SJn(oBAt4vSX?u#GE;b5cMk*A&GRaBBTVot_Ue_>OVmR1e72JkG2w|ma!hRUmP%t^$!aP=WZ|M+IVVk_tq9feOUu z^(u_uy(CjqARapfRmY(U%I@_H3}UK~ps-Md#BrD^B=r`nLdyENs*tjJpDM)1*Hj^i z>M@jNSA%3zZ8b&)S5R6|gQ#m%g9Le>8pJ^>)F2Mrt_I1DN7Wb^96{yJCpAb%!9*S6 zqiS_X5jTCT3x-~5Kr9Z{gjm?835k*!nh=N0(}V=|E=@=jUC@N2jYpagi@s_? zLg1e!BY2CIixwo!Ow@unaE=xvq*iG`%-^NOSP$+p9npfs?HMgloG>uF(Sk$?pEe{8 zb+jQCI%-2gAXpocO|!Hi4lC4#=!ZrU2Hv+k){iAS-vi$fN0i*32UvSYoK9wT@^Ua%e{NH^<2T)ImSQh6NHgIM@e4-$85 z`Va%e^dY%LRUcx3lRh{PsSokkaeasbZtFuF`a~aE|G&|PSnyFF z;(&kp5Q|t1AaO5h05Mq00Fs@oq5Mz-h(ps1Ao`08Ao}YKAQrV5K#JIY14zr~iUFki zEouk}S$9KF+p(U3A;}OT(P;>YtKEi-;2nz>4I!zU!3Yvm!bT8-b&Mbun;JoU>SzS% zbjBJ%9NYm_H`fS~MwS^df;Xe=HG)L#S0ji=B#apu1VH)U2*d#G?=yxJI3dOmi%N|l zL0e}GH5jUHt}&!QT4xN&p2v(Kx#Ns6Bg1kA28Mga5DVK(AR)33N*^_Wc<77?IOrMf zn=mregZAq^F@g9<&=k^*mNkVqAkq|KaFQuRzQhz_Km(MXYzm30Wl;6oOd$sEH-#kH zBc_lw6_L_*&ZVu6z-BqSm%A*r|0k`X+kvC9%-;4i3p4l9U-(pC@)6|Epq zreg&OVmm8HiRfj;2wq>1X$8rSTdW|7vHpY=ByqilN-$VMTqa@-QK$l?Evz99^s$CG zFy0#Cqf%>#1rx0yLB7EnlE1fGL$d9DYe>jlu!cD3mNg`eJhKKnw4UL$H6%a&wT2X> z5;hPYIoN;|Ft|bK2pfn4vTPs@tF?hxIMD`T;S3u{lq|4;ShNz#-)aMKz&;yD8aZJD z3E3AmpeU|qVBoZchtfAQrB$gE(Zp9VCd4*+B}TJ9dyb z=eCDrPf2@5hMk~Yt@e!It=9Yw5QhdiKoW7Y1H^(A4xk=s*`pB1v+A1Zlbp zB#3ieAQqHC)it<4d^XXAk>La*1H%dzNK_TNLG(AcK^iu#Zje6Wd#LzlH%JKlaI1$f zSll5#5O9YCwX8eDh1%|rkg;A^JWBZE)VvGgw$bgNFu%H4GDS%A4qoO_klP-+y^4A?E?uZD<6mhgM7eg zq@E$e2jYO0K9Iz=8>;atRN+e>hy(sZ4HEE$7$6U&O?@HyynP{QA=MX>*lK(s`sP8^ zt@ni#SVw&!QSi_gRNmAxFud`F)ZZe0khrt=gCw>fKZsAF{UB)|*$<*I%Map{Qa?!A z>Gfk|*abQv!H*HN6@VecACeZ{`a`0GEdUY{0s#>7R01F&tP{YEkn zj*bT~GW3GZ0SI7Z=wM)AXbgn3WVnJD8SEGs82p1EWqDr^BX|wi%^*hbLZqHxM)0im zi(p8R92x@2|0N+1^|L}4!Mo_6hA@H~B&MN^ko|wTp^zR;btof4B?AM){7{HS$uJ0Q z9|j4T)G$a~R)j$+kM=M~8*fz@BZDUc1H+FnNK`n5LkgmpaEQ+v!yzFxH5`(L7DD;! z!Wrwq*<@EZBSRZ#w|Y1uc#&v+1VqE#2#AF*BN)NUYkovPCKkdYAwjz*5)zchA|Y{o zEfUnGV_8GpZh9fnzizH3vj9f={uCi-yGc zs%S`@ZH#6FADOT-8WL4fF^u5#Jozz<;B|qAVjvd&iGg%BIbtCWwTp!mV2fiR=B$i` zB=(K55c3b$$3o)tR4l~joN*8zmB&GXu00N7!R$DQ!>-0bf?6>i;)CpXh=VrAL(&LG z0z{o}0>ncz6Ck5!%M&0Le@K8d_n8tI!Rra@lM)%hXFcprgmjN3k|0wjVM!42T}hB2 z6i;RZuVl(ghQ#rPWJoqUl?<`yO){kX_>~Otu|x_a7s;hSf?hoZ5@kjykOIyo1>6*? zXDCR4q{hoBjNpw!+^LWd*qsWgEKa9FT0T~35Pnq}q%41#21%T6(;$gfI2~d^Z#u-h z>FJE%Wj*K985yb>7#PelAm(n$fQ0Cw4A2ZnJp;p^3~1`kgv4P*CL|HHWI~F_)tQV8 zj0_A6=b0H8Oc@y%RxvOz+-7EA2n7j(PS0RsU=UzpU}%BzgP9l@J~1&c++|{5c*n%R z(9O)iV8aBNgmeWR9sxSY0(3S6BLjn6JtG5yGHCe{cwP^5CI$n;b7lqxMn(n(bEr7z zERWexjR}klpw&2_*%OAD%nS@g%nS_aObiUnppE_v3=Fpz7#La^85k}?9Ro7)F_gWU znSnu;iGkrK69dCKMg|5g7SQ?&(4;XF1A{r#0yahlhULr*3}=`a81^$UFoZ%KkFf@Q%2-@`ywX_IyWCjalZC?S@7Z;%Fi^E3|>%uAiHOPN>yeC1{aok28L@$65h-V z3=f$hQ|=&zAl%Eyz~I8nz+lG2z#zlOz#s|@YLFZZZ(wF%h+<-35MgFuSjfo0pvK6+ z@PdhfA)kqXp^=e+!I+VOL5Z1xA&rTFp^u4yA&H5BK@8+cQ2Fo9%)ns5!oXn8$iVO( zv__X1a-K^BNCC_S1_p*B%nS?%85tP9GB7Y`GchoDAURx}k%8elGXsMkGXukIsJ`dW z&;c27AF6gDBLl+{(1Jv$n)(AsiXMPYy#V=wk%3_!NC60g&IDp)U`T)(@Eb`z2NMHB zITHgz4l@J893}>EWwixl8x(J1VqkayRqxIMS*Ew0iGkrWsB(jd*E1YuVqj=xVqnN- zVqoZj2r^7%WMIgHTFA!4!0?=jf#C-zF)=YPG%zwSh_f&-@GvughvkJm>3v*L2`@?3~QMf7^IjO7&4d{7;2ap80IrGFg#&oV6X?tLp4YtvHh7D z7{r+w7$g}P7|uY&--FT-BV@%?7Dx;f{~*0~P#*|E6W1Onzm1uJp@Wfu;VLvL?lCYh z+=sG3`as8bs4_D!EP$%-WQMFI1Rb>mk{4!VV3@_kz@W&&z_1dk1|$x`!Hf(H^`KoV z3z;CR+CYM*L9SzltX2i_w}Dp0ffx)73{#mI7}S{=7&I6e82T9*7z~gcG84+)1hvEl zN`oe~-9W()<%3R8f*Qx*$H-96pvcI;Z~+t)P*H7W28J)7C3#Q{zd);57#SFtpnQ+l%PSUDKSG9u54pw zV0Z&Egn@y<36%f6m>3w6nHU%fK?#bHfgu7EN6=_6Vqsu-%EZ7>$H)L`*fLl#F)(~* zWMJ42I%o>X(IE3!pbk91%)s!Efq~&6C|yBA1+3=9#l z_~&P4U~mOFf{B6QBh;X9sAgd%$XdV>CI$vks2J!3EE^UEhHgg4VKX4ZLD-3rfuW9p zfk6W5xJr;7M#y?kKB&18EDQ`?PlHYlMnGBDhNDgqrsbpUjr6jbvoCdfikZbk-%$xvUE zf(ja_d=evMJ!m@v149)f19(kX52$azzyLm~YdWYxf|{+##K7>No|%E+4>M$W?GLB~ zXpKMUh_rQJ7eY+7WMN=nhVntDq}^j=U~prGtPcjMSjEV|5X;2CAk4x5o{$2Gf$%=i zk!;Ki3@@RMRc2;jaA#s*n8eJ$Fprsmp+1_Kf#EX~1H(pU1_l{s28P9;JkG?xAj!*GXukG2FMajP!~Izk%3_`$YjuwYoH^xK#2|N@Rgv%#=rm`{rJGlz_6Qd0=AR}6t8R{86F)}bXLVb1)N>75i7POLW5i1_pLU$b!;iAiYfB)9e_&f@(r$28J$B zy${t3I%*BXWM^VvH~|Vt76yi1CI*IOj0_B~L0JiOlv*z{1A_?@14AMs149WT1A`pg zg$xW6K})ouF24kI7|6gdP^*TKfuWs|fuR{xh(Xn?0O@CjoS5dw$iVQ5k%8ea0|UcJ z&_QJk3=AhgQOgWjf(_fCk)c- z&&a@_!^FVg0u^s$Vqho&HN_a~A?vZ-pqfF7L3lBg-vZ)*y4)b2voJ8sXJla51!_7o zF)-9HGBE69W&kY%f~sO*kY-_ENCAZeQuKlLi-8n?PTG@$Iv|aif#CrY14COq69dB+ zCI*HZ%nS@GK&luZ>o$#{3ZFoOT9A=}!4oP5QWgSbgANpY$IQTx0;&laAR7)QGBYr6 zAvr)As`dmE1H%)VPasI2{ki_ znSr4V)OuoO0IhFgxXR4H&;zRd7#J8nSo(HBLjHJBrh`q!!@Yu zK}W114A7X1A_yS97z5+h+tq~ zhyo=*=6VK(37~8Q6AV!^@6DV z%#b}HVW4IhBLl+%kRSsC!y6_Bh9l4r(P3c#595HPK>6=1BLjmsBLjmNBLhPQs5)j~ zV5nw>?9a1eW&mvqW4I4i4I$PsF)(z3@-!1q8B6y>Tp0^zZ^=R zWMp7?%gDeG3FSkTF(ffFFieD60uxgK^%J1#44|O~lFI|N|3D0Vs0LAH1_oPZ28L)R z28Pw3W-~OXA46%7+EY-q&lwmP_@L}xphO1hsDOeW6mn4Y+)NA%>zNoBrhy#G%)lVR z!obi0l}lu1V5k7azY0_Uloj_eGBCt3F)-AE+WDaJ8ESzLsB_80z@WqeIVlx%ie(uS z1H)ucxd3VnGcz#Ug!&NVNYLq)?->~w?tnO;P6<@*7?cJHOM=D>K$gm|FfbTGEh=MX zU@%7tqGm=025V*phX0HV49Uz444h0147Z>T=7p*QZCn8vSOH4yP`OD=3=FI+3=A_E z85lH~85nLcGBD(W@;*o*0|SE$69YpOsKQ$cDtMrlgXFd{GBB7jGcfD|H5xz(je&vT z0jTfJz`)?h!oa}6!oZNp%)l^#k%1u-90mr4&7cMe)PATC14A=Zg9Zx&gE}ai@Aq z1+GAYkqgv20Tnuo3=F?ODHPPAVPs(V26dP&l;#Ba7&P1hDu_UR17-$>*^CSfTbUUc zjG<~kd&@w^XM)C;Kqu-#L+1lX5Y(svjsN&EF)*k>EeDBjhAIjG6`@drPBAkuuz-fy zKs6hvlfuZr@B|c`%nS_Ep=v;SUxP-@p!@=;nMEMSgBqYvb2(WU7_KlfFjO-!Fw6qg z{~(P4ObiU)KnV`S0a?Jz!0;0^l)}Kkkjl)!Fb!%b=vYpWl1flr05$LcC?1&^7!pC_ zL!h%^85kIjfr?{L76YA@3mP|IVPFsdr7chm2?}8b1_oAU28L&#_y;Yq2N?>&pwlYr zKm&##4irCv(lE-2iGkrP69dChr~`I0GcfFc`nHmhf#Ena19%vJ9w_^Pd=7QIF$)8O z7Dyg6hQtUtH3?)tLl!dw!(^!GMxdrMBLl-SkR_nq&QME0(z`*G28hAHz%U1N^b*uy zHx>ql)65JEQcylfNjwt+gC{6@K>b3H0BFpInSo&m)VwvI;ujSE^FS>dP*n+PNP@By zv_Jt-eo$XkGcqt-W?*1&U}0d$Wny56U}Rvh0x1C1^H4P)I~FlPwpcndGcbgJy6jK~ z{a^;|^b&()514Ah@14BL|149op1H*C9KoQjN zyUYv>hnN`{u7djSj0_A%p$1=JU|^WV%)rnDSVqY9I?(yhvMdY?XFxWA4wYtNV31{IVED<%z%Z3*b6kwN z$L8%znz=Wx*)W59v)7*6GMi7_JjKXms%vDTU|?uvV77VA?fTH|0fvm_yxa5a85eVJ Qm+)p3Q`r7Gn{gT=0JFfde*gdg 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 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 aL3Q=?!ZJn;E`;oK=3K_K?HuKdRg3^Zj(6?= delta 23702 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

$-pCLY- z^%)WsyFWwBx&IlG%RYRDq%r0%3=H+4rB%{jAQDDjAc@Kq%1{0RF|Z8E@BIQvObfn1 zg8TrKe-*0l>la8pFZ>mfs8zp0<`bR1Ld>uI3USDUuM7;83=9klzcSQ=7Z6E*gCr{5 zZ;&8z{01p9!@ohYVKS6I;~OMsmwbbS!2WNL5Ig=2;;^&dAVK~18zcmOeS;)k&hL== zUh+F6=mWk(92))|I&Gf$9TFs!P>G394U4}+^7$<&U+4!U8+!hLI3)iE1A{$iHQNsc zhU1{689yNP|D>M~3pf6REZKPR6XM{=Uyu+@`~^uf74=X?<1dJdx}f|yzd)&zfnn({ zNJm2NHv@wk0|P_EZ%7Eu{|!kCTcPy+-wX^h85kH&{$^k}4QeC)VPJ4!WMI($3kiXe ze~_SW`3DKvssA7$RKM^a#77(cL8{+t{~#7H{)cD~{||{8jsK7W#O6N(!(@;{{zHpu zs5(9dM)1-rc?L%CDmP;WM(`pwUj|0-QmhCDM(}F5cm_uBa=bbQM$l5MdWLBXjNm@t zJct0p76wM}lBzvW{&@yQ@JgraPzzo_)&F5&1h4%PVua|IU}OZZCDCJK1h1a4Wn=`e z3k+jq1UJo=GeXQ^V`2o2*fWSTfgD!Pz_5V{qG3A|#NrD~jNnS?F_iy?i4nYb>^~F4 zN4(4sT7sDoyj)M2nGw7&F@hQFBZg{bh!2~Y8NsXFW-~J~xH2#>JYZ%7N1+-EB&2d# z7#RdX`M;5c5xj11G7H2f+gU&^V_-PT0x|Fk3&iDjSQx7AXBtp(Q&xyNM^;8~E8CkD5;a9ox`&mKp&qn$a~V{@5mrb@yk=ztuk~bM zV`SJ4S`oduT?(b!p!9Soy@CT00z07woP*MjI2gf;O}}w4g4d22 zb25TgMkaGIg4c?kvWa4~|*9WkzY2t$Jl6697~kf3zrf~0{!E=XKPaWR4y zp%!sL5?Ln~#K$wB{MB3#5A1^SPjf*M=PfQsh& zMBM})NEEK%VPxoGU|^^}$^$Vth!^7XR9=YBOL-x2TgMBD`%Yd+Vw=bd@#$P%M(~Kp zI$nr_UqIzQLDm0*>SyDFq$NQ)kdWEL56KM| z`9Th;XJGgNW-u^t2|x^#5dcXrFz7@1jsg&uhd}w+P`VCEPlVD-1Rz1X9jg8cRQ$C7 zB+C8?FoOGnQi71Q5hKXRAO*_*NrDgyYXu>3)h`GMiKT)NpY9iA1g~s9F31R8AMisE z5)#@%;2>o17lK4hq!1*eQiUM;N`)91K&xkKg&=8Rxez2Vo)UtD&?>6MuP|dh*k{5bkPvVYf%qUy1fnoa1QK+4B9MZqON0@;_X(&(I7nTBkpZ;o z-AV!y!tD}}0lB=L zkdo?|G{gbiG7y)F$S^XT1FhqifrP{d8HhvJWg&ciSx6#PlZAw&lPn}|qh%o$7Ry4? z&_t;CI;i?%AbC*!e9$ z+D;LYm=Y8raZ{)WiQ{HPNF2_D@;5{2lZp_F?<+za_E`~}m>2|=AU+dQVr00*z`&rY z1Su&Qlo`QeLMqCP;4K{O$`E_*DAz;c?wv9u&bd?|iB4Dr5(QE!kTTmy1(JwLR3O=O zt_mY~r^6-{Mus~K3=H>G7#YqpFfi;~LB(flLQ1-g znh=BcYeEw1X-$ZMPc$J8XR7(rez;Mxmh+ou#SolT@;z1#8a1_=vC~HGpZmtbU z&0bJ`kTyg^sy4);Zf%GUmS{s9c3PVeyb0wBRGvu(qF!1D5_OI`U<()`bs$lds{=`t zvveSFe_02V-9h93I*`=Jr3Y?I`bs-_NM;D}#f#H%aB&fgZLM&3# zgOrR`dXNyx*Mp?3YCT8@OxJ^?iA{Qtv~*C9k--X-|6hR^pwy}lDbo}5AwFx;hlI=q zeTadF^mJe2=TAChK1=|iIC50vIIfCRCG0VL6B8bF%kW(JTD-UFqN7%)QC|DQ2{ z#MKQ0NRK7e5E8_z3?Uje8$v3V-G&e!JvW3{z-$D`4I)Mmb(%(u;C26oMvM&Zpk?<) z5C?97())}cL4U#sqW_i=V?DT&_}YjOyf^Ec5hTdPjTynaSFDX8i7D9_67;pkkPw(` z49RAzj3H@agE7Qm*Nq`T``H-cU>Org$at7Q92jN-iHbNANJv+j)I+k-Y!iq@7oiGY zn?Qo@vk4?57)&89<}`(*5h+thJ~lRmL{)$(q}-^3(ygYDDC;qWWbYYJdW9*(K|7%8 zj@3gIo`qU)(-aZ{uS_8>v8EZsL3U=4)a`8sDT?&f z336~f1H)rWNRa=rgjlR#1yN{d1@Un*lrFY{_@vniqHcl}q}*5tRe!_^5;fnT>iDc7 ziBj4cQlgq$LrTgfYe>|twPs`x2j%}0AO>iFz#7t&`e6+TA{`ruPt0r}QDScc4l)K` z8%U8I0hO#}*UZ%x;^2B)hkn&`jEhJ5>v}I(d2kp&V zZwrZnd$x=Wp!L2VY$0)IX$SFvs~v=&XvYX1fXKCjq=6{Yr_2536gFQrHjy)vK>g*vwxeH2PvWEouD|<*b{cR6% zfT#n+VLA?w{BGd@3EC6~NJ!N?KpfcR011Hw4vY-t3=9mb93a)Nk|VVKk934o9;J>D zi)K4QDvdRckVJRW5n|C>M~KgULdAugAQr1RLCTRJCx}HIPLQ&Gk`pAv7CJ$qY?~7# z7hH3KguuOeCrBIZIaHyVGbD(togo_hoFOG)o-@RvY0i+KKI9B>*d-|a%o$?fFK38_ z%r20)mvDjPb5$2c@cLhO7l_BExj-CTf7k_5g8g)XxLn;8;&MY*NKiYtLQ1+QS4fbT zyFzNeK37OkZ+3+^>>O0zFIR{MINcx)k#U2VYv=}v3Trn=Ng3z{4(WP^2scO~%XEV{ zq}2@)cbnZHLA4K}kl~mc#Ng|05Qn{j8pPrb@j16UM7@YR*kA@3C|}nd;s8^3$k>p* zJH$iz?jU>X85nxpAwjtUs&EgKKIRU|ju+e^K4I~I7$oTd;VXMUvZaLwB&gjyAW;+S z!3f?xo9qE89}ajxLhP{z#2yY$h(}~R85yKO`Cs1?;$v@5NZf>ZLK0)MC!`=+=?Tdl zw>=rbgUxR}85#bAHj{cWg121jdP5vq=?$sA*Lp*8&nIt)Ib1%FG-TidNxTt05Qi7~ zFhbV<*ZV+%uEPg1QaQngkpVPYea#1Au%<7>fLLEf2GD-tR$oZmzw%{dc*MZK!0N}y zU<=x8>Id<$nm?qo>FEz?oKEwHl&~ND8NnNsMFSv-a%KQyJ$MPl?f{6(!~-F;K_H}r z@(hFoxql$Ufss)0#6U~msn!9?4-0{``LaSFW%2OByT5qjzNXShIhd6v~I3$}L42O8^L^ve%--fE=j(}w6dX)%> zLDmrvpLj(;EXlg{KI4=_7@TN$J4<|)J zqHujA#GIXxkPtZ?32rUdGdzGwh(>|(BLjna6eJ{^qaY4Sih^itkAgUKW)#FnE21D4 z?v8>)(fKHd!B3+gKKlig7mS9eSB-|~w}^%~+&vo9Gpc7`2#$titHNlA%Qr?tLf{~j zJ|7J!VD3gkeDW+B61N|sAr=b6FoGu(RAU$!mN76e?2Ca|m>LUFUl9v2uPGK1f)ipP z1=NgKMh1OQ{$Cjj8S%Us3mLCdj$>q)!@$7c8^;J zrPClKV^A6-)yJnnf<6n%FH2*r2lrMR(;z{(A&rrt5oBOGM8oNHNKjo%hZL#L(;30b zY+W)Saep}j612}VAi3jf2E^wAnGkW~Oh)iY2acJL+^{H<5j-iqG7}P#N?G*~7v^R` zEUL<41P`%xXF)XV%Yr!MXci-QbJ~S0NK|NKL+F}ph)*wMLt4-5IgpkPR}N&r!8!+G z&b%B*!Lu|6l4e%tK+@EK`W#3QpUhzdpV{yesvt8Ll6dNJA#v4_3mH1uo(rkRIr1Qr zN#S{n;Mwqbd62UI50rMyhgi^-&j>ztqdy-KV$bp!!JAKiaar#GqqEkP`1!5hSSp6hZ0;u40H!jfx>5Yf%hwh%1!uR}ASR zMi+xeTI(666+?XZwV07%9s>h|N(m&994-MXU^rg_2~xdMM)2_07fK3uYm>3vZp!{Ga28K^e3=DUf z7#Q9$F)(y9GcedNK^8T*f)0-W9b^GI8-kI6L9U*Wfk7Fxe2Ia9p#w@kXJ%kvWMp74 zhw?#ZdCZ1tOkiXHt;S*CVq{>L$;`k|#LU2u&cwjL4BF_=zyKcgY6Yz$fjS0s%En_T zdo?oygDevR!%rp#hINb#3|cIp^H&%c7^X8ZFqlIvU}I!pSkBDAaE6J2VLuZCLnzb{ z>5L2vX^adE#f%ILznK^qE;BJO@Gvnj7(oqR%D})-05t=2{0hio5C+YTgU*kMWn^Gb zWMW|0!pOj|5F`P?^$eC!O#+Mz3=JR`f_A+_Ed?!1(`A9I?JIy`K7$Uqfr!^L9A;u*Xk}tx$Yx?- z=z$0_Ol4$X$b(wQ#>BwzoQZ+q2Ll6xJre^%10w^2I12*<4>JS9CD1N6Mh1p-sM;x@ zWqeEw;Nkjfj0_Bm7#SEGK%ojscuWl7$?Tm>kTqbSjql*}AIHeRU3u`m>C#qm>3x5GczzeVPs&ihw25XmqKFuGcz!VGczzqGBPln zfr`Her6Wej2?<#sF;M)2G}=LZAOuZZd!YO_W(I~1Mh1qf(5Scv8f=ELLHa<)cc?Nm zFf4$o?_`FomI58M1d~~! zWEKefF*4LMC^9lITmS_HNCcF!nHdl?Lj)*}pwVE&!ocv9iGiVxk%7U7k%7UAiGkreBLl;J&_Pp3 zjs}^>0(Ia4W(J0T3=9kpLFoz_DxgsnkeVBe3=IF67#RLDF))}hGcZKJ;-8Urg zg7h##)_d|n&6QwbVCaIf>n|`dFg#>pVAuxI4O%t}wZH_b;1dJn@F+!Q1_phop`c3Z zB~<-)W(M%&(oN8LQBb|>q3R5o85p`jW<$kI7$NJx4nyUaGcnXNq%uO*Y=%ND1fAam zHJd>dRDLrsFvx@QJQD*$1tSB4DiZ_4Rt5%!cTh#3X%{FHgR)^{V0gpKz@P&)8>C5*i}|!!4*H&>>U@KnF^JbTTk7ykcSi_jI`#85kx* zeNhT3XrS^*j0_Bcprf`J7#OM;85q`p4kiMfp2hRa?(A*k7!ObiSU>X{iB{xCyU zK>mPAfY$hfj!0Vvb|J)MOBMzOW+)$YO4>a}1_n1~$ogQAidBpZ46#fM48kl742MAi zP`nRxBpWjW!%L`Rm6;hB+?f~{CNVQG%wuL?sE=l5VED|$z_5{-fkB3ufnhNyk25ha zNHQ}pNP~RI%)s!P0kY5#)WwcwWMEhfHT)pxh%HcJgF1XAD6xT-W->4^d|+l^*v-hm zAk56baGsHYL63!j!5Y+NfaWZa5v|M&^$edF85kU)K061cCqZ31i-Cb*5i~JF2vy(D#J~^^HAfKchvtuz)-@- zz#s>AA!McUU8u`1K^+D%FbveHVPs%vXJlY#1{GpZH7h{+nIR{pIWjUZykcZv_zPMa z2s)^Yfq~%!C~BD@OR&M^j{*||!+k~uh9;;1XPFro`k)r6L1_yn28Je3>StnLmL0?Pj& z4R4`w1Y(15C#X>YH3Yjpr2 z{TUe;beI?zT%h8OObiS~pr#mOJ!JKx8&oq$F$gb)@wOFB4~3N7c&FH1qKF&>rin}$jo430QV#1nHd=Bm>3uwkmNw}pk=xsItr8k znd=!CCV;XLNQ8lbVFjp72Rb;6fq{Vus_`wT+-GKBcnazlurM&NL8F8n8pI!=dO_5F zX2_n9Fi6=1BLjmsBLjmNBLhPQs5)j~ zV5nw>?9a1eW?9UHOrueFNe}6 z85tPfGBPkkLitc-3`xuk3=^T2z{FHQ{RF5w18As$Qfx(uUfgzfS zfnhbM*$fTp$50xi_7qg@bI_&(DEk*Ek%2lYpx_6E98^6w69dC~CI*ISAjdK@Fo>`) zFmyoW5}6qoDnRkC0u=yd#eIwn3~@{h47H$kKB#<#S|9}KTrx2*D6v3JN(G%_S;oY` zFd0-XfLg=M3=B7+J_I=ubh;&I;|geP2#CKCDt8P@gTy33V+J5gWmp&(451d4F*7ij zBLz`2BLjmqGXukaMh1ptW(EdMCI*IEPzUou)p0@%tpKHVsN5tb1_o9Z28J1o3=Epg z3=Fpz85r_Gc^_mm0|SE$69YpOsKQ$cDtMrlgXFd{GBB7jGcfD|H5xz(4Ky(c>bo;A zFgUU>FmSLiFk~__Fic=%V8{en40VJS$S{xrP^`_uz;GTkPQc8-u$Ga5;Sbb~TBrj9 z8Nu5(>cNM_ykTTu*vrhou$h5@VJ{N{gAS-N0_AH)1_oD ziXA97FfuUwWPog^11+VW4LU#+RM{{vFw6!O+l&khj7$s+7nvEr5~%%9AqIwKs0Ixd1_pIdaD!x+85oKg7#KW2shOF9 zfsX~UVGXop3nUH0b}S4GCM*mLmp}=a5psy_4^WGlg@NG|Oc9g@9pkzN)c<3J3S5B( zBNwQ50xEPE85n+nQYffJ!^pt!4eBsmC=EI{W%$-=;Jg^_`wnu&p77O4IQ zX$)XuVE6_~a3BuI0%it=pP-=>(85Dz28L-+LqW%Kf|OK(>H?^N2SD-2%)pQc8Xp3k z4a>m5a12x&gR&Utv|P}*0Sg0z04QyNYDiEBgJ#W`85o{{;(sH^L?{NGR#^ucFog0! z6ljVKM8mKX69dCpCI*J1PzUU0W?^=&011H*A<$o86fpzH_oIn?pSEDQ`x28LxIOF+Awp_YK;c7rMn5QBjMJVCJ?YOos%1H)-% z1_mi8AEYFniGjfr6g{ARAxHo;=EKauumoz}8c^{IivM|_mJO(?1T`c3=9g)pshLe3=CFK7YQ;mFqASgFyu2bF!V4pFdPRB6hRHY%gn%Vh?#-m zDyaX?$iQ$EYVZ}%atme#h9)RKl8J#~3aBavwHKh~sxU%!L9#;mAcrnyVqgda=>dhm zJPQNEat6ru8_4SjdO&J9K%H0? z28Owy`T*o(CI$w3X2|}cBTNhozd;EbG$6^uz~Hw7lo&w40cyEI4N(BK(?Dl+FfuS~ z0JYsflg*5fZFHdXp=DVZ7|wuf0`+v67#L)k85n*tGB8YK+8h_7?y-6Ml4kDBYc|Z_ z-t4vKw#?=eH%~Egnd%yuC>R)88JKOJb6YlUJG&L58~^sto{Tko+p8iN7b$MPS;bhz F2mqOkz&ii{ 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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 delta 23701 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 diff --git a/locale/gl_ES/LC_MESSAGES/django.po b/locale/gl_ES/LC_MESSAGES/django.po index 13ae25253..ac0d16262 100644 --- a/locale/gl_ES/LC_MESSAGES/django.po +++ b/locale/gl_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 04:46\n" "Last-Translator: Mouse Reeve \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",