diff --git a/bookwyrm/connectors/abstract_connector.py b/bookwyrm/connectors/abstract_connector.py index 18ccb942c..606678150 100644 --- a/bookwyrm/connectors/abstract_connector.py +++ b/bookwyrm/connectors/abstract_connector.py @@ -30,7 +30,6 @@ class AbstractMinimalConnector(ABC): "covers_url", "search_url", "isbn_search_url", - "max_query_count", "name", "identifier", "local", @@ -102,13 +101,6 @@ class AbstractConnector(AbstractMinimalConnector): # title we handle separately. self.book_mappings = [] - def is_available(self): - """check if you're allowed to use this connector""" - if self.max_query_count is not None: - if self.connector.query_count >= self.max_query_count: - return False - return True - def get_or_create_book(self, remote_id): """translate arbitrary json into an Activitypub dataclass""" # first, check if we have the origin_id saved diff --git a/bookwyrm/connectors/connector_manager.py b/bookwyrm/connectors/connector_manager.py index 43489669b..95c5959df 100644 --- a/bookwyrm/connectors/connector_manager.py +++ b/bookwyrm/connectors/connector_manager.py @@ -87,7 +87,7 @@ def first_search_result(query, min_confidence=0.1): def get_connectors(): """load all connectors""" - for info in models.Connector.objects.order_by("priority").all(): + for info in models.Connector.objects.filter(active=True).order_by("priority").all(): yield load_connector(info) diff --git a/bookwyrm/migrations/0074_auto_20210511_1829.py b/bookwyrm/migrations/0074_auto_20210511_1829.py new file mode 100644 index 000000000..287a51ad6 --- /dev/null +++ b/bookwyrm/migrations/0074_auto_20210511_1829.py @@ -0,0 +1,48 @@ +# Generated by Django 3.2 on 2021-05-11 18:29 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("bookwyrm", "0073_sitesettings_footer_item"), + ] + + operations = [ + migrations.RemoveField( + model_name="connector", + name="max_query_count", + ), + migrations.RemoveField( + model_name="connector", + name="politeness_delay", + ), + migrations.RemoveField( + model_name="connector", + name="query_count", + ), + migrations.RemoveField( + model_name="connector", + name="query_count_expiry", + ), + migrations.AddField( + model_name="connector", + name="active", + field=models.BooleanField(default=True), + ), + migrations.AddField( + model_name="connector", + name="deactivation_reason", + field=models.CharField( + blank=True, + choices=[ + ("self_deletion", "Self Deletion"), + ("moderator_deletion", "Moderator Deletion"), + ("domain_block", "Domain Block"), + ], + max_length=255, + null=True, + ), + ), + ] diff --git a/bookwyrm/models/base_model.py b/bookwyrm/models/base_model.py index e85ff7338..2cb7c0365 100644 --- a/bookwyrm/models/base_model.py +++ b/bookwyrm/models/base_model.py @@ -6,6 +6,16 @@ from bookwyrm.settings import DOMAIN from .fields import RemoteIdField +DeactivationReason = models.TextChoices( + "DeactivationReason", + [ + "self_deletion", + "moderator_deletion", + "domain_block", + ], +) + + class BookWyrmModel(models.Model): """shared fields""" diff --git a/bookwyrm/models/connector.py b/bookwyrm/models/connector.py index 625cdbed9..2d6717908 100644 --- a/bookwyrm/models/connector.py +++ b/bookwyrm/models/connector.py @@ -2,7 +2,7 @@ from django.db import models from bookwyrm.connectors.settings import CONNECTORS -from .base_model import BookWyrmModel +from .base_model import BookWyrmModel, DeactivationReason ConnectorFiles = models.TextChoices("ConnectorFiles", CONNECTORS) @@ -17,6 +17,10 @@ class Connector(BookWyrmModel): local = models.BooleanField(default=False) connector_file = models.CharField(max_length=255, choices=ConnectorFiles.choices) api_key = models.CharField(max_length=255, null=True, blank=True) + active = models.BooleanField(default=True) + deactivation_reason = models.CharField( + max_length=255, choices=DeactivationReason.choices, null=True, blank=True + ) base_url = models.CharField(max_length=255) books_url = models.CharField(max_length=255) @@ -24,13 +28,6 @@ class Connector(BookWyrmModel): search_url = models.CharField(max_length=255, null=True, blank=True) isbn_search_url = models.CharField(max_length=255, null=True, blank=True) - politeness_delay = models.IntegerField(null=True, blank=True) # seconds - max_query_count = models.IntegerField(null=True, blank=True) - # how many queries executed in a unit of time, like a day - query_count = models.IntegerField(default=0) - # when to reset the query count back to 0 (ie, after 1 day) - query_count_expiry = models.DateTimeField(auto_now_add=True, blank=True) - def __str__(self): return "{} ({})".format( self.identifier, diff --git a/bookwyrm/models/federated_server.py b/bookwyrm/models/federated_server.py index 7d446ca0d..e297c46c4 100644 --- a/bookwyrm/models/federated_server.py +++ b/bookwyrm/models/federated_server.py @@ -1,5 +1,6 @@ """ connections to external ActivityPub servers """ from urllib.parse import urlparse +from django.apps import apps from django.db import models from .base_model import BookWyrmModel @@ -34,6 +35,13 @@ class FederatedServer(BookWyrmModel): is_active=False, deactivation_reason="domain_block" ) + # check for related connectors + if self.application_type == "bookwyrm": + connector_model = apps.get_model("bookwyrm.Connector", require_ready=True) + connector_model.objects.filter( + identifier=self.server_name, active=True + ).update(active=False, deactivation_reason="domain_block") + def unblock(self): """unblock a server""" self.status = "federated" @@ -43,6 +51,15 @@ class FederatedServer(BookWyrmModel): is_active=True, deactivation_reason=None ) + # check for related connectors + if self.application_type == "bookwyrm": + connector_model = apps.get_model("bookwyrm.Connector", require_ready=True) + connector_model.objects.filter( + identifier=self.server_name, + active=False, + deactivation_reason="domain_block", + ).update(active=True, deactivation_reason=None) + @classmethod def is_blocked(cls, url): """look up if a domain is blocked""" diff --git a/bookwyrm/models/user.py b/bookwyrm/models/user.py index 5f0e64e3b..7d821c5ba 100644 --- a/bookwyrm/models/user.py +++ b/bookwyrm/models/user.py @@ -19,21 +19,11 @@ from bookwyrm.signatures import create_key_pair from bookwyrm.tasks import app from bookwyrm.utils import regex from .activitypub_mixin import OrderedCollectionPageMixin, ActivitypubMixin -from .base_model import BookWyrmModel +from .base_model import BookWyrmModel, DeactivationReason from .federated_server import FederatedServer from . import fields, Review -DeactivationReason = models.TextChoices( - "DeactivationReason", - [ - "self_deletion", - "moderator_deletion", - "domain_block", - ], -) - - class User(OrderedCollectionPageMixin, AbstractUser): """a user who wants to read books""" diff --git a/bookwyrm/templates/author.html b/bookwyrm/templates/author.html deleted file mode 100644 index a7ea9db56..000000000 --- a/bookwyrm/templates/author.html +++ /dev/null @@ -1,40 +0,0 @@ -{% extends 'layout.html' %} -{% load i18n %} -{% load bookwyrm_tags %} - -{% block title %}{{ author.name }}{% endblock %} - -{% block content %} -
-
-
-

{{ author.name }}

-
- {% if request.user.is_authenticated and perms.bookwyrm.edit_book %} - - {% endif %} -
-
- -
- {% if author.bio %} - {{ author.bio | to_markdown | safe }} - {% endif %} - - {% if author.wikipedia_link %} -

{% trans "Wikipedia" %}

- {% endif %} -
- -
-

{% blocktrans with name=author.name %}Books by {{ name }}{% endblocktrans %}

- {% include 'snippets/book_tiles.html' with books=books %} -
-{% endblock %} - diff --git a/bookwyrm/templates/author/author.html b/bookwyrm/templates/author/author.html new file mode 100644 index 000000000..67f8792c9 --- /dev/null +++ b/bookwyrm/templates/author/author.html @@ -0,0 +1,83 @@ +{% extends 'layout.html' %} +{% load i18n %} +{% load markdown %} +{% load humanize %} + +{% block title %}{{ author.name }}{% endblock %} + +{% block content %} +
+
+
+

{{ author.name }}

+
+ {% if request.user.is_authenticated and perms.bookwyrm.edit_book %} + + {% endif %} +
+
+ +
+ {% if author.aliases or author.born or author.died or author.wikipedia_link %} +
+
+
+ {% if author.aliases %} +
+
{% trans "Aliases:" %}
+
{{ author.aliases|join:', ' }}
+
+ {% endif %} + {% if author.born %} +
+
{% trans "Born:" %}
+
{{ author.born|naturalday }}
+
+ {% endif %} + {% if author.aliases %} +
+
{% trans "Died:" %}
+
{{ author.died|naturalday }}
+
+ {% endif %} +
+ + {% if author.wikipedia_link %} +

{% trans "Wikipedia" %}

+ {% endif %} + {% if author.openlibrary_key %} +

+ {% trans "View on OpenLibrary" %} +

+ {% endif %} + {% if author.inventaire_id %} +

+ {% trans "View on Inventaire" %} +

+ {% endif %} +
+
+ {% endif %} +
+ {% if author.bio %} + {{ author.bio|to_markdown|safe }} + {% endif %} +
+
+ +
+

{% blocktrans with name=author.name %}Books by {{ name }}{% endblocktrans %}

+
+ {% for book in books %} +
+ {% include 'discover/small-book.html' with book=book %} +
+ {% endfor %} +
+
+{% endblock %} diff --git a/bookwyrm/templates/edit_author.html b/bookwyrm/templates/author/edit_author.html similarity index 56% rename from bookwyrm/templates/edit_author.html rename to bookwyrm/templates/author/edit_author.html index b575bbb2f..010d36efc 100644 --- a/bookwyrm/templates/edit_author.html +++ b/bookwyrm/templates/author/edit_author.html @@ -29,44 +29,64 @@

{% trans "Metadata" %}

-

{{ form.name }}

+

{{ form.name }}

{% for error in form.name.errors %}

{{ error | escape }}

{% endfor %} -

{{ form.bio }}

+

+ + {{ form.aliases }} + {% trans "Separate multiple values with commas." %} +

+ {% for error in form.aliases.errors %} +

{{ error | escape }}

+ {% endfor %} + +

{{ form.bio }}

{% for error in form.bio.errors %}

{{ error | escape }}

{% endfor %} -

{{ form.wikipedia_link }}

+

{{ form.wikipedia_link }}

{% for error in form.wikipedia_link.errors %}

{{ error | escape }}

{% endfor %} -

{{ form.born }}

+

+ + +

{% for error in form.born.errors %}

{{ error | escape }}

{% endfor %} -

{{ form.died }}

+

+ + +

{% for error in form.died.errors %}

{{ error | escape }}

{% endfor %}

{% trans "Author Identifiers" %}

-

{{ form.openlibrary_key }}

+

{{ form.openlibrary_key }}

{% for error in form.openlibrary_key.errors %}

{{ error | escape }}

{% endfor %} -

{{ form.librarything_key }}

+

{{ form.inventaire_id }}

+ {% for error in form.inventaire_id.errors %} +

{{ error | escape }}

+ {% endfor %} + +

{{ form.librarything_key }}

{% for error in form.librarything_key.errors %}

{{ error | escape }}

{% endfor %} -

{{ form.goodreads_key }}

+

{{ form.goodreads_key }}

{% for error in form.goodreads_key.errors %}

{{ error | escape }}

{% endfor %} diff --git a/bookwyrm/templates/book/book.html b/bookwyrm/templates/book/book.html index 40da64861..ff027a3dc 100644 --- a/bookwyrm/templates/book/book.html +++ b/bookwyrm/templates/book/book.html @@ -38,9 +38,8 @@ {% if user_authenticated and can_edit_book %} {% endif %} @@ -163,12 +162,9 @@
{% trans "Add read dates" as button_text %} - {% include 'snippets/toggle/open_button.html' with text=button_text icon="plus" class="is-small" controls_text="add-readthrough" %} + {% include 'snippets/toggle/open_button.html' with text=button_text icon_with_text="plus" class="is-small" controls_text="add-readthrough" focus="add-readthrough-focus" %}
- {% if not readthroughs.exists %} -

{% trans "You don't have any reading activity for this book." %}

- {% endif %}
+ {% if not readthroughs.exists %} +

{% trans "You don't have any reading activity for this book." %}

+ {% endif %} {% for readthrough in readthroughs %} {% include 'snippets/readthrough.html' with readthrough=readthrough %} {% endfor %} @@ -195,7 +194,7 @@ {% endif %}
{% if request.user.is_authenticated %} - {% if user_statuses.review_count or user_statuses.comment_count or user_stuatses.quotation_count %} + {% if user_statuses.review_count or user_statuses.comment_count or user_statuses.quotation_count %}
diff --git a/bookwyrm/templates/book/editions.html b/bookwyrm/templates/book/editions.html index 775b05c86..17d5474c4 100644 --- a/bookwyrm/templates/book/editions.html +++ b/bookwyrm/templates/book/editions.html @@ -1,6 +1,5 @@ {% extends 'layout.html' %} {% load i18n %} -{% load bookwyrm_tags %} {% block title %}{% blocktrans with book_title=work.title %}Editions of {{ book_title }}{% endblocktrans %}{% endblock %} diff --git a/bookwyrm/templates/book/rating.html b/bookwyrm/templates/book/rating.html new file mode 100644 index 000000000..c0af67fab --- /dev/null +++ b/bookwyrm/templates/book/rating.html @@ -0,0 +1,22 @@ +{% load i18n %}{% load status_display %} +
+
+
+ {% include 'snippets/avatar.html' with user=user %} +
+ +
+
+ {{ user.display_name }} +
+
+

{% trans "rated it" %}

+ + {% include 'snippets/stars.html' with rating=rating.rating %} +
+
+ {{ rating.published_date|published_date }} +
+
+
+
diff --git a/bookwyrm/templates/components/dropdown.html b/bookwyrm/templates/components/dropdown.html index 96dce8232..35caa55b5 100644 --- a/bookwyrm/templates/components/dropdown.html +++ b/bookwyrm/templates/components/dropdown.html @@ -1,5 +1,5 @@ {% spaceless %} -{% load bookwyrm_tags %} +{% load utilities %} {% with 0|uuid as uuid %}
@@ -19,7 +20,7 @@
{% if user.summary %} - {{ user.summary | to_markdown | safe | truncatechars_html:40 }} + {{ user.summary|to_markdown|safe|truncatechars_html:40 }} {% else %} {% endif %}
diff --git a/bookwyrm/templates/discover/landing_layout.html b/bookwyrm/templates/discover/landing_layout.html index 8e507531e..946482cbb 100644 --- a/bookwyrm/templates/discover/landing_layout.html +++ b/bookwyrm/templates/discover/landing_layout.html @@ -1,6 +1,6 @@ {% extends 'layout.html' %} {% load i18n %} -{% load bookwyrm_tags %} +{% load markdown %} {% block title %}{% trans "Welcome" %}{% endblock %} @@ -49,7 +49,7 @@ {% else %}

{% trans "This instance is closed" %}

-

{{ site.registration_closed_text | safe}}

+

{{ site.registration_closed_text|safe}}

{% if site.allow_invite_requests %} {% if request_received %} @@ -64,7 +64,7 @@ {% for error in request_form.email.errors %} -

{{ error | escape }}

+

{{ error|escape }}

{% endfor %} @@ -80,7 +80,7 @@ {% include 'user/user_preview.html' with user=request.user %} {% if request.user.summary %}
- {{ request.user.summary | to_markdown | safe }} + {{ request.user.summary|to_markdown|safe }}
{% endif %} diff --git a/bookwyrm/templates/discover/large-book.html b/bookwyrm/templates/discover/large-book.html index 7def6e138..93026991e 100644 --- a/bookwyrm/templates/discover/large-book.html +++ b/bookwyrm/templates/discover/large-book.html @@ -1,5 +1,5 @@ - {% load bookwyrm_tags %} +{% load markdown %} {% load i18n %} {% if book %} diff --git a/bookwyrm/templates/feed/feed.html b/bookwyrm/templates/feed/feed.html index f106b4cee..21e71ae18 100644 --- a/bookwyrm/templates/feed/feed.html +++ b/bookwyrm/templates/feed/feed.html @@ -1,7 +1,6 @@ {% extends 'feed/feed_layout.html' %} {% load i18n %} -{% load bookwyrm_tags %} -{% load humanize %} + {% block panel %}

diff --git a/bookwyrm/templates/feed/feed_layout.html b/bookwyrm/templates/feed/feed_layout.html index 75fc1951a..3c6b65a1b 100644 --- a/bookwyrm/templates/feed/feed_layout.html +++ b/bookwyrm/templates/feed/feed_layout.html @@ -1,6 +1,5 @@ {% extends 'layout.html' %} {% load i18n %} -{% load bookwyrm_tags %} {% block title %}{% trans "Updates" %}{% endblock %} diff --git a/bookwyrm/templates/feed/suggested_users.html b/bookwyrm/templates/feed/suggested_users.html index 721ba3d9f..eb146f7eb 100644 --- a/bookwyrm/templates/feed/suggested_users.html +++ b/bookwyrm/templates/feed/suggested_users.html @@ -1,5 +1,5 @@ {% load i18n %} -{% load bookwyrm_tags %} +{% load utilities %} {% load humanize %}
{% for user in suggested_users %} diff --git a/bookwyrm/templates/feed/thread.html b/bookwyrm/templates/feed/thread.html index 18ab6ea38..793cddfcd 100644 --- a/bookwyrm/templates/feed/thread.html +++ b/bookwyrm/templates/feed/thread.html @@ -1,4 +1,4 @@ -{% load bookwyrm_tags %} +{% load status_display %}
{% with depth=depth|add:1 %} diff --git a/bookwyrm/templates/goal.html b/bookwyrm/templates/goal.html index 22aba08e4..134f419fc 100644 --- a/bookwyrm/templates/goal.html +++ b/bookwyrm/templates/goal.html @@ -9,7 +9,7 @@ {% if is_self and goal %}
{% trans "Edit Goal" as button_text %} - {% include 'snippets/toggle/open_button.html' with text=button_text icon="pencil" controls_text="show-edit-goal" focus="edit-form-header" %} + {% include 'snippets/toggle/open_button.html' with text=button_text icon_with_text="pencil" controls_text="show-edit-goal" focus="edit-form-header" %}
{% endif %}
diff --git a/bookwyrm/templates/import_status.html b/bookwyrm/templates/import_status.html index e06392a8e..b1145611d 100644 --- a/bookwyrm/templates/import_status.html +++ b/bookwyrm/templates/import_status.html @@ -1,6 +1,5 @@ {% extends 'layout.html' %} {% load i18n %} -{% load bookwyrm_tags %} {% load humanize %} {% block title %}{% trans "Import Status" %}{% endblock %} @@ -54,8 +53,8 @@

{{ item.fail_reason }}. @@ -90,8 +89,8 @@

  • Line {{ item.index }}: - {{ item.data|dict_key:'Title' }} by - {{ item.data|dict_key:'Author' }} + {{ item.data.Title }} by + {{ item.data.Author }}

    {{ item.fail_reason }}. @@ -130,10 +129,10 @@ {% endif %} - {{ item.data|dict_key:'Title' }} + {{ item.data.Title }} - {{ item.data|dict_key:'Author' }} + {{ item.data.Author }} {% if item.book %} diff --git a/bookwyrm/templates/layout.html b/bookwyrm/templates/layout.html index bc6544012..3a4fd6c85 100644 --- a/bookwyrm/templates/layout.html +++ b/bookwyrm/templates/layout.html @@ -1,4 +1,4 @@ -{% load bookwyrm_tags %} +{% load layout %} {% load i18n %} @@ -214,7 +214,7 @@

    {% endif %}

    - {% trans 'BookWyrm is open source software. You can contribute or report issues on GitHub.' %} + {% blocktrans %}BookWyrm's source code is freely available. You can contribute or report issues on GitHub.{% endblocktrans %}

  • {% if site.footer_item %} diff --git a/bookwyrm/templates/lists/list.html b/bookwyrm/templates/lists/list.html index 2902f793f..d740ee80f 100644 --- a/bookwyrm/templates/lists/list.html +++ b/bookwyrm/templates/lists/list.html @@ -1,12 +1,13 @@ {% extends 'lists/list_layout.html' %} {% load i18n %} {% load bookwyrm_tags %} +{% load markdown %} {% block panel %} {% if request.user == list.user and pending_count %}

    - {{ pending_count }} book{{ pending_count | pluralize }} awaiting your approval + {{ pending_count }} book{{ pending_count|pluralize }} awaiting your approval

    {% endif %} @@ -50,9 +51,9 @@

    {% include 'snippets/stars.html' with rating=item.book|rating:request.user %}

    -

    +

    {{ book|book_description|to_markdown|default:""|safe|truncatewords_html:20 }} -

    +
    {% include 'snippets/shelve_button/shelve_button.html' %} diff --git a/bookwyrm/templates/lists/list_items.html b/bookwyrm/templates/lists/list_items.html index b59e2a96a..8cbf6ee50 100644 --- a/bookwyrm/templates/lists/list_items.html +++ b/bookwyrm/templates/lists/list_items.html @@ -1,4 +1,4 @@ -{% load bookwyrm_tags %} +{% load markdown %}
    {% for list in lists %}
    @@ -22,7 +22,7 @@ {% endwith %}
    -
    +
    {% if list.description %} {{ list.description|to_markdown|safe|truncatechars_html:30 }} {% else %} diff --git a/bookwyrm/templates/lists/list_layout.html b/bookwyrm/templates/lists/list_layout.html index c0899c84e..993587ca2 100644 --- a/bookwyrm/templates/lists/list_layout.html +++ b/bookwyrm/templates/lists/list_layout.html @@ -1,6 +1,5 @@ {% extends 'layout.html' %} {% load i18n %} -{% load bookwyrm_tags %} {% block title %}{{ list.name }}{% endblock %} @@ -16,7 +15,7 @@ {% if request.user == list.user %}
    {% trans "Edit List" as button_text %} - {% include 'snippets/toggle/open_button.html' with text=button_text icon="pencil" controls_text="edit-list" focus="edit-list-header" %} + {% include 'snippets/toggle/open_button.html' with text=button_text icon_with_text="pencil" controls_text="edit-list" focus="edit-list-header" %}
    {% endif %} diff --git a/bookwyrm/templates/lists/lists.html b/bookwyrm/templates/lists/lists.html index a7a548110..e39d5fde3 100644 --- a/bookwyrm/templates/lists/lists.html +++ b/bookwyrm/templates/lists/lists.html @@ -1,5 +1,5 @@ {% extends 'layout.html' %} -{% load bookwyrm_tags %} +{% load utilities %} {% load i18n %} {% block title %}{% trans "Lists" %}{% endblock %} @@ -18,7 +18,7 @@ {% if request.user.is_authenticated %}
    {% trans "Create List" as button_text %} - {% include 'snippets/toggle/open_button.html' with controls_text="create-list" icon="plus" text=button_text focus="create-list-header" %} + {% include 'snippets/toggle/open_button.html' with controls_text="create-list" icon_with_text="plus" text=button_text focus="create-list-header" %}
    {% endif %} diff --git a/bookwyrm/templates/login.html b/bookwyrm/templates/login.html index 8ed5d0447..e3d0133cf 100644 --- a/bookwyrm/templates/login.html +++ b/bookwyrm/templates/login.html @@ -38,6 +38,9 @@
    +
    + +
    {% if site.allow_registration %}

    {% trans "Create an Account" %}

    @@ -50,15 +53,15 @@ {% endif %}
    +
    -
    -
    - {% include 'snippets/about.html' %} +
    +
    + {% include 'snippets/about.html' %} -

    - {% trans "More about this site" %} -

    -
    +

    + {% trans "More about this site" %} +

    {% endblock %} diff --git a/bookwyrm/templates/moderation/report.html b/bookwyrm/templates/moderation/report.html index 934799e33..db03850f8 100644 --- a/bookwyrm/templates/moderation/report.html +++ b/bookwyrm/templates/moderation/report.html @@ -1,6 +1,5 @@ {% extends 'settings/admin_layout.html' %} {% load i18n %} -{% load bookwyrm_tags %} {% load humanize %} {% block title %}{% blocktrans with report_id=report.id username=report.user.username %}Report #{{ report_id }}: {{ username }}{% endblocktrans %}{% endblock %} @@ -29,7 +28,7 @@ {{ comment.user.display_name }}
    diff --git a/bookwyrm/templates/notifications.html b/bookwyrm/templates/notifications.html index ed623b129..a51b2fdb0 100644 --- a/bookwyrm/templates/notifications.html +++ b/bookwyrm/templates/notifications.html @@ -1,7 +1,7 @@ {% extends 'layout.html' %} {% load i18n %} -{% load humanize %} {% load bookwyrm_tags %} +{% load humanize %} {% block title %}{% trans "Notifications" %}{% endblock %} diff --git a/bookwyrm/templates/search/book.html b/bookwyrm/templates/search/book.html index 9af8a3943..08e1dad28 100644 --- a/bookwyrm/templates/search/book.html +++ b/bookwyrm/templates/search/book.html @@ -7,7 +7,7 @@ {% with results|first as local_results %}

    diff --git a/bookwyrm/templates/snippets/follow_request_buttons.html b/bookwyrm/templates/snippets/follow_request_buttons.html index 42e691538..d91018027 100644 --- a/bookwyrm/templates/snippets/follow_request_buttons.html +++ b/bookwyrm/templates/snippets/follow_request_buttons.html @@ -1,6 +1,5 @@ {% load i18n %} -{% load bookwyrm_tags %} -{% if request.user|follow_request_exists:user %} +{% if request.user in user.follow_requests.all %}
    {% csrf_token %} diff --git a/bookwyrm/templates/snippets/form_rate_stars.html b/bookwyrm/templates/snippets/form_rate_stars.html index 3abebac04..a53733df1 100644 --- a/bookwyrm/templates/snippets/form_rate_stars.html +++ b/bookwyrm/templates/snippets/form_rate_stars.html @@ -1,6 +1,5 @@ {% spaceless %} {% load i18n %} -{% load bookwyrm_tags %}
    {% with 0|uuid as uuid %} {% if not no_label %} diff --git a/bookwyrm/templates/snippets/readthrough_form.html b/bookwyrm/templates/snippets/readthrough_form.html index c5be295e1..891e90715 100644 --- a/bookwyrm/templates/snippets/readthrough_form.html +++ b/bookwyrm/templates/snippets/readthrough_form.html @@ -3,7 +3,7 @@
    -
    diff --git a/bookwyrm/templates/user/relationships/layout.html b/bookwyrm/templates/user/relationships/layout.html index f36b304c7..0348d82fa 100644 --- a/bookwyrm/templates/user/relationships/layout.html +++ b/bookwyrm/templates/user/relationships/layout.html @@ -1,6 +1,6 @@ {% extends 'user/layout.html' %} {% load i18n %} -{% load bookwyrm_tags %} +{% load utilities %} {% block tabs %} {% with user|username as username %} diff --git a/bookwyrm/templates/user/shelf/shelf.html b/bookwyrm/templates/user/shelf/shelf.html index 639ab502f..79a27529a 100644 --- a/bookwyrm/templates/user/shelf/shelf.html +++ b/bookwyrm/templates/user/shelf/shelf.html @@ -1,5 +1,6 @@ {% extends 'user/layout.html' %} {% load bookwyrm_tags %} +{% load utilities %} {% load humanize %} {% load i18n %} @@ -35,7 +36,7 @@ {% if is_self %}
    {% trans "Create shelf" as button_text %} - {% include 'snippets/toggle/open_button.html' with text=button_text icon="plus" controls_text="create-shelf-form" focus="create-shelf-form-header" %} + {% include 'snippets/toggle/open_button.html' with text=button_text icon_with_text="plus" controls_text="create-shelf-form" focus="create-shelf-form-header" %}
    {% endif %}
    @@ -58,7 +59,7 @@ {% if is_self and shelf.id %}
    {% trans "Edit shelf" as button_text %} - {% include 'snippets/toggle/open_button.html' with text=button_text icon="pencil" controls_text="edit-shelf-form" focus="edit-shelf-form-header" %} + {% include 'snippets/toggle/open_button.html' with text=button_text icon_with_text="pencil" controls_text="edit-shelf-form" focus="edit-shelf-form-header" %}
    {% endif %}
    @@ -79,7 +80,9 @@ {% trans "Shelved" %} {% trans "Started" %} {% trans "Finished" %} - {% if ratings %}{% trans "Rating" %}{% endif %} + {% if request.user.is_authenticated %} + {% trans "Rating" %} + {% endif %} {% if shelf.user == request.user %} {% endif %} @@ -99,18 +102,18 @@ {% include 'snippets/authors.html' %} - {{ book.created_date | naturalday }} + {{ book.created_date|naturalday }} {% latest_read_through book user as read_through %} - {{ read_through.start_date | naturalday |default_if_none:""}} + {{ read_through.start_date|naturalday|default_if_none:""}} - {{ read_through.finish_date | naturalday |default_if_none:""}} + {{ read_through.finish_date|naturalday|default_if_none:""}} - {% if ratings %} + {% if request.user.is_authenticated %} - {% include 'snippets/stars.html' with rating=ratings|dict_key:book.id %} + {% include 'snippets/stars.html' with rating=book.rating %} {% endif %} {% if shelf.user == request.user %} diff --git a/bookwyrm/templates/user/user.html b/bookwyrm/templates/user/user.html index 99698575b..d2e9be3e2 100644 --- a/bookwyrm/templates/user/user.html +++ b/bookwyrm/templates/user/user.html @@ -1,6 +1,6 @@ {% extends 'user/layout.html' %} {% load i18n %} -{% load bookwyrm_tags %} +{% load utilities %} {% block title %}{{ user.display_name }}{% endblock %} @@ -12,9 +12,8 @@ {% if is_self %}
    - - {% trans "Edit profile" %} - + + {% trans "Edit profile" %}
    {% endif %} @@ -59,8 +58,9 @@

    {% trans "User Activity" %}

    - - {% trans "RSS feed" %} + + + {% trans "RSS feed" %}
    diff --git a/bookwyrm/templates/user/user_preview.html b/bookwyrm/templates/user/user_preview.html index c450365bb..22d44c878 100644 --- a/bookwyrm/templates/user/user_preview.html +++ b/bookwyrm/templates/user/user_preview.html @@ -1,5 +1,6 @@ {% load i18n %} {% load humanize %} +{% load utilities %} {% load bookwyrm_tags %}
    diff --git a/bookwyrm/templates/user_admin/user.html b/bookwyrm/templates/user_admin/user.html index 463906501..c79c6971f 100644 --- a/bookwyrm/templates/user_admin/user.html +++ b/bookwyrm/templates/user_admin/user.html @@ -1,7 +1,5 @@ {% extends 'settings/admin_layout.html' %} {% load i18n %} -{% load bookwyrm_tags %} -{% load humanize %} {% block title %}{{ user.username }}{% endblock %} {% block header %}{{ user.username }}{% endblock %} diff --git a/bookwyrm/templates/user_admin/user_info.html b/bookwyrm/templates/user_admin/user_info.html index e5f5d5806..579b3af7e 100644 --- a/bookwyrm/templates/user_admin/user_info.html +++ b/bookwyrm/templates/user_admin/user_info.html @@ -1,5 +1,5 @@ {% load i18n %} -{% load bookwyrm_tags %} +{% load markdown %}

    {% trans "User details" %}

    @@ -7,7 +7,7 @@ {% include 'user/user_preview.html' with user=user %} {% if user.summary %}
    - {{ user.summary | to_markdown | safe }} + {{ user.summary|to_markdown|safe }}
    {% endif %} diff --git a/bookwyrm/templatetags/bookwyrm_tags.py b/bookwyrm/templatetags/bookwyrm_tags.py index eda3d1023..70228799f 100644 --- a/bookwyrm/templatetags/bookwyrm_tags.py +++ b/bookwyrm/templatetags/bookwyrm_tags.py @@ -1,22 +1,15 @@ """ template filters """ -from uuid import uuid4 - -from django import template, utils +from django import template from django.db.models import Avg from bookwyrm import models, views from bookwyrm.views.status import to_markdown +from bookwyrm.templatetags.utilities import get_user_identifier register = template.Library() -@register.filter(name="dict_key") -def dict_key(d, k): - """Returns the given key from a dictionary.""" - return d.get(k) or 0 - - @register.filter(name="rating") def get_rating(book, user): """get the overall rating of a book""" @@ -43,119 +36,12 @@ def get_user_rating(book, user): return 0 -@register.filter(name="username") -def get_user_identifier(user): - """use localname for local users, username for remote""" - return user.localname if user.localname else user.username - - -@register.filter(name="notification_count") -def get_notification_count(user): - """how many UNREAD notifications are there""" - return user.notification_set.filter(read=False).count() - - -@register.filter(name="replies") -def get_replies(status): - """get all direct replies to a status""" - # TODO: this limit could cause problems - return models.Status.objects.filter( - reply_parent=status, - deleted=False, - ).select_subclasses()[:10] - - -@register.filter(name="parent") -def get_parent(status): - """get the reply parent for a status""" - return ( - models.Status.objects.filter(id=status.reply_parent_id) - .select_subclasses() - .get() - ) - - -@register.filter(name="liked") -def get_user_liked(user, status): - """did the given user fav a status?""" - try: - models.Favorite.objects.get(user=user, status=status) - return True - except models.Favorite.DoesNotExist: - return False - - -@register.filter(name="boosted") -def get_user_boosted(user, status): - """did the given user fav a status?""" - return user.id in status.boosters.all().values_list("user", flat=True) - - -@register.filter(name="follow_request_exists") -def follow_request_exists(user, requester): - """see if there is a pending follow request for a user""" - try: - models.UserFollowRequest.objects.filter( - user_subject=requester, - user_object=user, - ).get() - return True - except models.UserFollowRequest.DoesNotExist: - return False - - -@register.filter(name="boosted_status") -def get_boosted(boost): - """load a boosted status. have to do this or it wont get foregin keys""" - return ( - models.Status.objects.select_subclasses() - .filter(id=boost.boosted_status.id) - .get() - ) - - @register.filter(name="book_description") def get_book_description(book): """use the work's text if the book doesn't have it""" return book.description or book.parent_work.description -@register.filter(name="uuid") -def get_uuid(identifier): - """for avoiding clashing ids when there are many forms""" - return "%s%s" % (identifier, uuid4()) - - -@register.filter(name="to_markdown") -def get_markdown(content): - """convert markdown to html""" - if content: - return to_markdown(content) - return None - - -@register.filter(name="mentions") -def get_mentions(status, user): - """people to @ in a reply: the parent and all mentions""" - mentions = set([status.user] + list(status.mention_users.all())) - return ( - " ".join("@" + get_user_identifier(m) for m in mentions if not m == user) + " " - ) - - -@register.filter(name="status_preview_name") -def get_status_preview_name(obj): - """text snippet with book context for a status""" - name = obj.__class__.__name__.lower() - if name == "review": - return "%s of %s" % (name, obj.book.title) - if name == "comment": - return "%s on %s" % (name, obj.book.title) - if name == "quotation": - return "%s from %s" % (name, obj.book.title) - return name - - @register.filter(name="next_shelf") def get_next_shelf(current_shelf): """shelf you'd use to update reading progress""" @@ -168,17 +54,6 @@ def get_next_shelf(current_shelf): return "to-read" -@register.filter(name="title") -def get_title(book): - """display the subtitle if the title is short""" - if not book: - return "" - title = book.title - if len(title) < 6 and book.subtitle: - title = "{:s}: {:s}".format(title, book.subtitle) - return title - - @register.simple_tag(takes_context=False) def related_status(notification): """for notifications""" @@ -212,31 +87,6 @@ def latest_read_through(book, user): ) -@register.simple_tag(takes_context=False) -def active_read_through(book, user): - """the most recent read activity""" - return ( - models.ReadThrough.objects.filter( - user=user, book=book, finish_date__isnull=True - ) - .order_by("-start_date") - .first() - ) - - -@register.simple_tag(takes_context=False) -def comparison_bool(str1, str2): - """idk why I need to write a tag for this, it reutrns a bool""" - return str1 == str2 - - -@register.simple_tag(takes_context=False) -def get_lang(): - """get current language, strip to the first two letters""" - language = utils.translation.get_language() - return language[0 : language.find("-")] - - @register.simple_tag(takes_context=True) def mutuals_count(context, user): """how many users that you follow, follow them""" diff --git a/bookwyrm/templatetags/interaction.py b/bookwyrm/templatetags/interaction.py new file mode 100644 index 000000000..6e8d0549c --- /dev/null +++ b/bookwyrm/templatetags/interaction.py @@ -0,0 +1,22 @@ +""" template filters for status interaction buttons """ +from django import template +from bookwyrm import models + + +register = template.Library() + + +@register.filter(name="liked") +def get_user_liked(user, status): + """did the given user fav a status?""" + try: + models.Favorite.objects.get(user=user, status=status) + return True + except models.Favorite.DoesNotExist: + return False + + +@register.filter(name="boosted") +def get_user_boosted(user, status): + """did the given user fav a status?""" + return user.id in status.boosters.all().values_list("user", flat=True) diff --git a/bookwyrm/templatetags/layout.py b/bookwyrm/templatetags/layout.py new file mode 100644 index 000000000..e0f1d8ba6 --- /dev/null +++ b/bookwyrm/templatetags/layout.py @@ -0,0 +1,12 @@ +""" template filters used for creating the layout""" +from django import template, utils + + +register = template.Library() + + +@register.simple_tag(takes_context=False) +def get_lang(): + """get current language, strip to the first two letters""" + language = utils.translation.get_language() + return language[0 : language.find("-")] diff --git a/bookwyrm/templatetags/markdown.py b/bookwyrm/templatetags/markdown.py new file mode 100644 index 000000000..370d60a1a --- /dev/null +++ b/bookwyrm/templatetags/markdown.py @@ -0,0 +1,14 @@ +""" template filters """ +from django import template +from bookwyrm.views.status import to_markdown + + +register = template.Library() + + +@register.filter(name="to_markdown") +def get_markdown(content): + """convert markdown to html""" + if content: + return to_markdown(content) + return None diff --git a/bookwyrm/templatetags/status_display.py b/bookwyrm/templatetags/status_display.py new file mode 100644 index 000000000..4d9984c86 --- /dev/null +++ b/bookwyrm/templatetags/status_display.py @@ -0,0 +1,59 @@ +""" template filters """ +from dateutil.relativedelta import relativedelta +from django import template +from django.contrib.humanize.templatetags.humanize import naturaltime, naturalday +from django.utils import timezone +from bookwyrm import models +from bookwyrm.templatetags.utilities import get_user_identifier + + +register = template.Library() + + +@register.filter(name="mentions") +def get_mentions(status, user): + """people to @ in a reply: the parent and all mentions""" + mentions = set([status.user] + list(status.mention_users.all())) + return ( + " ".join("@" + get_user_identifier(m) for m in mentions if not m == user) + " " + ) + + +@register.filter(name="replies") +def get_replies(status): + """get all direct replies to a status""" + # TODO: this limit could cause problems + return models.Status.objects.filter( + reply_parent=status, + deleted=False, + ).select_subclasses()[:10] + + +@register.filter(name="parent") +def get_parent(status): + """get the reply parent for a status""" + return ( + models.Status.objects.filter(id=status.reply_parent_id) + .select_subclasses() + .get() + ) + + +@register.filter(name="boosted_status") +def get_boosted(boost): + """load a boosted status. have to do this or it won't get foreign keys""" + return models.Status.objects.select_subclasses().get(id=boost.boosted_status.id) + + +@register.filter(name="published_date") +def get_published_date(date): + """less verbose combo of humanize filters""" + if not date: + return "" + now = timezone.now() + delta = relativedelta(now, date) + if delta.years: + return naturalday(date) + if delta.days: + return naturalday(date, "M j") + return naturaltime(date) diff --git a/bookwyrm/templatetags/utilities.py b/bookwyrm/templatetags/utilities.py new file mode 100644 index 000000000..f828397ea --- /dev/null +++ b/bookwyrm/templatetags/utilities.py @@ -0,0 +1,35 @@ +""" template filters for really common utilities """ +from uuid import uuid4 +from django import template + + +register = template.Library() + + +@register.filter(name="uuid") +def get_uuid(identifier): + """for avoiding clashing ids when there are many forms""" + return "%s%s" % (identifier, uuid4()) + + +@register.filter(name="username") +def get_user_identifier(user): + """use localname for local users, username for remote""" + return user.localname if user.localname else user.username + + +@register.filter(name="title") +def get_title(book): + """display the subtitle if the title is short""" + if not book: + return "" + title = book.title + if len(title) < 6 and book.subtitle: + title = "{:s}: {:s}".format(title, book.subtitle) + return title + + +@register.simple_tag(takes_context=False) +def comparison_bool(str1, str2): + """idk why I need to write a tag for this, it reutrns a bool""" + return str1 == str2 diff --git a/bookwyrm/tests/connectors/test_abstract_connector.py b/bookwyrm/tests/connectors/test_abstract_connector.py index 4497b4e5e..5c50e4b73 100644 --- a/bookwyrm/tests/connectors/test_abstract_connector.py +++ b/bookwyrm/tests/connectors/test_abstract_connector.py @@ -84,13 +84,6 @@ class AbstractConnector(TestCase): """barebones connector for search with defaults""" self.assertIsInstance(self.connector.book_mappings, list) - def test_is_available(self): - """this isn't used....""" - self.assertTrue(self.connector.is_available()) - self.connector.max_query_count = 1 - self.connector.connector.query_count = 2 - self.assertFalse(self.connector.is_available()) - def test_get_or_create_book_existing(self): """find an existing book by remote/origin id""" self.assertEqual(models.Book.objects.count(), 1) diff --git a/bookwyrm/tests/connectors/test_abstract_minimal_connector.py b/bookwyrm/tests/connectors/test_abstract_minimal_connector.py index bc5625c95..846291399 100644 --- a/bookwyrm/tests/connectors/test_abstract_minimal_connector.py +++ b/bookwyrm/tests/connectors/test_abstract_minimal_connector.py @@ -53,7 +53,6 @@ class AbstractConnector(TestCase): self.assertEqual(connector.isbn_search_url, "https://example.com/isbn?q=") self.assertIsNone(connector.name) self.assertEqual(connector.identifier, "example.com") - self.assertIsNone(connector.max_query_count) self.assertFalse(connector.local) @responses.activate diff --git a/bookwyrm/tests/connectors/test_inventaire_connector.py b/bookwyrm/tests/connectors/test_inventaire_connector.py index 71e407e95..c66f0400d 100644 --- a/bookwyrm/tests/connectors/test_inventaire_connector.py +++ b/bookwyrm/tests/connectors/test_inventaire_connector.py @@ -64,7 +64,7 @@ class Inventaire(TestCase): ) self.assertEqual( formatted.cover, - "https://covers.inventaire.io/img/entities/ddb32e115a28dcc0465023869ba19f6868ec4042", + "https://covers.inventaire.io/img/entities/ddb32", ) def test_get_cover_url(self): @@ -74,18 +74,18 @@ class Inventaire(TestCase): self.assertEqual(result, "https://covers.inventaire.io/img/entities/d46a8") cover_blob = { - "url": "https://commons.wikimedia.org/wiki/Special:FilePath/The%20Moonstone%201st%20ed.jpg?width=1000", + "url": "https://commons.wikimedia.org/wiki/d.jpg?width=1000", "file": "The Moonstone 1st ed.jpg", "credits": { "text": "Wikimedia Commons", - "url": "https://commons.wikimedia.org/wiki/File:The Moonstone 1st ed.jpg", + "url": "https://commons.wikimedia.org/wiki/File:The Moonstone.jpg", }, } result = self.connector.get_cover_url(cover_blob) self.assertEqual( result, - "https://commons.wikimedia.org/wiki/Special:FilePath/The%20Moonstone%201st%20ed.jpg?width=1000", + "https://commons.wikimedia.org/wiki/d.jpg?width=1000", ) @responses.activate diff --git a/bookwyrm/tests/data/inventaire_search.json b/bookwyrm/tests/data/inventaire_search.json index e80e593aa..cbdb14159 100644 --- a/bookwyrm/tests/data/inventaire_search.json +++ b/bookwyrm/tests/data/inventaire_search.json @@ -7,7 +7,7 @@ "label": "The Stories of Vladimir Nabokov", "description": "book by Vladimir Nabokov", "image": [ - "ddb32e115a28dcc0465023869ba19f6868ec4042" + "ddb32" ], "_score": 25.180836, "_popularity": 4 diff --git a/bookwyrm/tests/test_templatetags.py b/bookwyrm/tests/test_templatetags.py index a92e887a3..4b1aa5946 100644 --- a/bookwyrm/tests/test_templatetags.py +++ b/bookwyrm/tests/test_templatetags.py @@ -2,12 +2,17 @@ import re from unittest.mock import patch -from dateutil.relativedelta import relativedelta from django.test import TestCase from django.utils import timezone from bookwyrm import models -from bookwyrm.templatetags import bookwyrm_tags +from bookwyrm.templatetags import ( + bookwyrm_tags, + interaction, + markdown, + status_display, + utilities, +) @patch("bookwyrm.activitystreams.ActivityStream.add_status") @@ -33,12 +38,6 @@ class TemplateTags(TestCase): ) self.book = models.Edition.objects.create(title="Test Book") - def test_dict_key(self, _): - """just getting a value out of a dict""" - test_dict = {"a": 1, "b": 3} - self.assertEqual(bookwyrm_tags.dict_key(test_dict, "a"), 1) - self.assertEqual(bookwyrm_tags.dict_key(test_dict, "c"), 0) - def test_get_user_rating(self, _): """get a user's most recent rating of a book""" with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): @@ -52,27 +51,14 @@ class TemplateTags(TestCase): def test_get_user_identifer_local(self, _): """fall back to the simplest uid available""" self.assertNotEqual(self.user.username, self.user.localname) - self.assertEqual(bookwyrm_tags.get_user_identifier(self.user), "mouse") + self.assertEqual(utilities.get_user_identifier(self.user), "mouse") def test_get_user_identifer_remote(self, _): """for a remote user, should be their full username""" self.assertEqual( - bookwyrm_tags.get_user_identifier(self.remote_user), "rat@example.com" + utilities.get_user_identifier(self.remote_user), "rat@example.com" ) - def test_get_notification_count(self, _): - """just countin'""" - self.assertEqual(bookwyrm_tags.get_notification_count(self.user), 0) - - models.Notification.objects.create(user=self.user, notification_type="FAVORITE") - models.Notification.objects.create(user=self.user, notification_type="MENTION") - - models.Notification.objects.create( - user=self.remote_user, notification_type="FOLLOW" - ) - - self.assertEqual(bookwyrm_tags.get_notification_count(self.user), 2) - def test_get_replies(self, _): """direct replies to a status""" with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): @@ -95,7 +81,7 @@ class TemplateTags(TestCase): deleted_date=timezone.now(), ) - replies = bookwyrm_tags.get_replies(parent) + replies = status_display.get_replies(parent) self.assertEqual(len(replies), 2) self.assertTrue(first_child in replies) self.assertTrue(second_child in replies) @@ -111,7 +97,7 @@ class TemplateTags(TestCase): reply_parent=parent, user=self.user, content="hi" ) - result = bookwyrm_tags.get_parent(child) + result = status_display.get_parent(child) self.assertEqual(result, parent) self.assertIsInstance(result, models.Review) @@ -119,44 +105,26 @@ class TemplateTags(TestCase): """did a user like a status""" status = models.Review.objects.create(user=self.remote_user, book=self.book) - self.assertFalse(bookwyrm_tags.get_user_liked(self.user, status)) + self.assertFalse(interaction.get_user_liked(self.user, status)) with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): models.Favorite.objects.create(user=self.user, status=status) - self.assertTrue(bookwyrm_tags.get_user_liked(self.user, status)) + self.assertTrue(interaction.get_user_liked(self.user, status)) def test_get_user_boosted(self, _): """did a user boost a status""" status = models.Review.objects.create(user=self.remote_user, book=self.book) - self.assertFalse(bookwyrm_tags.get_user_boosted(self.user, status)) + self.assertFalse(interaction.get_user_boosted(self.user, status)) with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): models.Boost.objects.create(user=self.user, boosted_status=status) - self.assertTrue(bookwyrm_tags.get_user_boosted(self.user, status)) - - def test_follow_request_exists(self, _): - """does a user want to follow""" - self.assertFalse( - bookwyrm_tags.follow_request_exists(self.user, self.remote_user) - ) - - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): - models.UserFollowRequest.objects.create( - user_subject=self.user, user_object=self.remote_user - ) - - self.assertFalse( - bookwyrm_tags.follow_request_exists(self.user, self.remote_user) - ) - self.assertTrue( - bookwyrm_tags.follow_request_exists(self.remote_user, self.user) - ) + self.assertTrue(interaction.get_user_boosted(self.user, status)) def test_get_boosted(self, _): """load a boosted status""" with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): status = models.Review.objects.create(user=self.remote_user, book=self.book) boost = models.Boost.objects.create(user=self.user, boosted_status=status) - boosted = bookwyrm_tags.get_boosted(boost) + boosted = status_display.get_boosted(boost) self.assertIsInstance(boosted, models.Review) self.assertEqual(boosted, status) @@ -178,48 +146,23 @@ class TemplateTags(TestCase): def test_get_uuid(self, _): """uuid functionality""" - uuid = bookwyrm_tags.get_uuid("hi") + uuid = utilities.get_uuid("hi") self.assertTrue(re.match(r"hi[A-Za-z0-9\-]", uuid)) def test_get_markdown(self, _): """mardown format data""" - result = bookwyrm_tags.get_markdown("_hi_") + result = markdown.get_markdown("_hi_") self.assertEqual(result, "

    hi

    ") - result = bookwyrm_tags.get_markdown("_hi_") + result = markdown.get_markdown("_hi_") self.assertEqual(result, "

    hi

    ") def test_get_mentions(self, _): """list of people mentioned""" status = models.Status.objects.create(content="hi", user=self.remote_user) - result = bookwyrm_tags.get_mentions(status, self.user) + result = status_display.get_mentions(status, self.user) self.assertEqual(result, "@rat@example.com ") - def test_get_status_preview_name(self, _): - """status context string""" - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): - status = models.Status.objects.create(content="hi", user=self.user) - result = bookwyrm_tags.get_status_preview_name(status) - self.assertEqual(result, "status") - - status = models.Review.objects.create( - content="hi", user=self.user, book=self.book - ) - result = bookwyrm_tags.get_status_preview_name(status) - self.assertEqual(result, "review of Test Book") - - status = models.Comment.objects.create( - content="hi", user=self.user, book=self.book - ) - result = bookwyrm_tags.get_status_preview_name(status) - self.assertEqual(result, "comment on Test Book") - - status = models.Quotation.objects.create( - content="hi", user=self.user, book=self.book - ) - result = bookwyrm_tags.get_status_preview_name(status) - self.assertEqual(result, "quotation from Test Book") - def test_related_status(self, _): """gets the subclass model for a notification status""" with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): diff --git a/bookwyrm/tests/views/test_book.py b/bookwyrm/tests/views/test_book.py index 2acdb369f..909718ec3 100644 --- a/bookwyrm/tests/views/test_book.py +++ b/bookwyrm/tests/views/test_book.py @@ -59,7 +59,6 @@ class BookViews(TestCase): result.render() self.assertEqual(result.status_code, 200) - request = self.factory.get("") with patch("bookwyrm.views.books.is_api_request") as is_api: is_api.return_value = True result = view(request, self.book.id) diff --git a/bookwyrm/tests/views/test_federation.py b/bookwyrm/tests/views/test_federation.py index f17f7624b..4469040ee 100644 --- a/bookwyrm/tests/views/test_federation.py +++ b/bookwyrm/tests/views/test_federation.py @@ -60,7 +60,12 @@ class FederationViews(TestCase): def test_server_page_block(self): """block a server""" - server = models.FederatedServer.objects.create(server_name="hi.there.com") + server = models.FederatedServer.objects.create( + server_name="hi.there.com", application_type="bookwyrm" + ) + connector = models.Connector.objects.get( + identifier="hi.there.com", + ) self.remote_user.federated_server = server self.remote_user.save() @@ -72,17 +77,32 @@ class FederationViews(TestCase): request.user.is_superuser = True view(request, server.id) + server.refresh_from_db() self.remote_user.refresh_from_db() self.assertEqual(server.status, "blocked") + # and the user was deactivated self.assertFalse(self.remote_user.is_active) + self.assertEqual(self.remote_user.deactivation_reason, "domain_block") + + # and the connector was disabled + connector.refresh_from_db() + self.assertFalse(connector.active) + self.assertEqual(connector.deactivation_reason, "domain_block") def test_server_page_unblock(self): """unblock a server""" server = models.FederatedServer.objects.create( - server_name="hi.there.com", status="blocked" + server_name="hi.there.com", status="blocked", application_type="bookwyrm" ) + connector = models.Connector.objects.get( + identifier="hi.there.com", + ) + connector.active = False + connector.deactivation_reason = "domain_block" + connector.save() + self.remote_user.federated_server = server self.remote_user.is_active = False self.remote_user.deactivation_reason = "domain_block" @@ -96,8 +116,15 @@ class FederationViews(TestCase): server.refresh_from_db() self.remote_user.refresh_from_db() self.assertEqual(server.status, "federated") + # and the user was re-activated self.assertTrue(self.remote_user.is_active) + self.assertIsNone(self.remote_user.deactivation_reason) + + # and the connector was re-enabled + connector.refresh_from_db() + self.assertTrue(connector.active) + self.assertIsNone(connector.deactivation_reason) def test_add_view_get(self): """there are so many views, this just makes sure it LOADS""" diff --git a/bookwyrm/tests/views/test_list.py b/bookwyrm/tests/views/test_list.py index 3de35b1ed..d6ad0e865 100644 --- a/bookwyrm/tests/views/test_list.py +++ b/bookwyrm/tests/views/test_list.py @@ -122,6 +122,14 @@ class ListViews(TestCase): view = views.List.as_view() request = self.factory.get("") request.user = self.local_user + with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): + models.ListItem.objects.create( + book_list=self.list, + user=self.local_user, + book=self.book, + approved=True, + order=1, + ) with patch("bookwyrm.views.list.is_api_request") as is_api: is_api.return_value = False @@ -130,6 +138,81 @@ class ListViews(TestCase): result.render() self.assertEqual(result.status_code, 200) + def test_list_page_sorted(self): + """there are so many views, this just makes sure it LOADS""" + view = views.List.as_view() + with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): + for (i, book) in enumerate([self.book, self.book_two, self.book_three]): + models.ListItem.objects.create( + book_list=self.list, + user=self.local_user, + book=book, + approved=True, + order=i + 1, + ) + + request = self.factory.get("/?sort_by=order") + request.user = self.local_user + with patch("bookwyrm.views.list.is_api_request") as is_api: + is_api.return_value = False + result = view(request, self.list.id) + self.assertIsInstance(result, TemplateResponse) + result.render() + self.assertEqual(result.status_code, 200) + + request = self.factory.get("/?sort_by=title") + request.user = self.local_user + with patch("bookwyrm.views.list.is_api_request") as is_api: + is_api.return_value = False + result = view(request, self.list.id) + self.assertIsInstance(result, TemplateResponse) + result.render() + self.assertEqual(result.status_code, 200) + + request = self.factory.get("/?sort_by=rating") + request.user = self.local_user + with patch("bookwyrm.views.list.is_api_request") as is_api: + is_api.return_value = False + result = view(request, self.list.id) + self.assertIsInstance(result, TemplateResponse) + result.render() + self.assertEqual(result.status_code, 200) + + request = self.factory.get("/?sort_by=sdkfh") + request.user = self.local_user + with patch("bookwyrm.views.list.is_api_request") as is_api: + is_api.return_value = False + result = view(request, self.list.id) + self.assertIsInstance(result, TemplateResponse) + result.render() + self.assertEqual(result.status_code, 200) + + def test_list_page_empty(self): + """there are so many views, this just makes sure it LOADS""" + view = views.List.as_view() + request = self.factory.get("") + request.user = self.local_user + + with patch("bookwyrm.views.list.is_api_request") as is_api: + is_api.return_value = False + result = view(request, self.list.id) + self.assertIsInstance(result, TemplateResponse) + result.render() + self.assertEqual(result.status_code, 200) + + def test_list_page_logged_out(self): + """there are so many views, this just makes sure it LOADS""" + view = views.List.as_view() + with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): + models.ListItem.objects.create( + book_list=self.list, + user=self.local_user, + book=self.book, + approved=True, + order=1, + ) + + request = self.factory.get("") request.user = self.anonymous_user with patch("bookwyrm.views.list.is_api_request") as is_api: is_api.return_value = False @@ -138,12 +221,32 @@ class ListViews(TestCase): result.render() self.assertEqual(result.status_code, 200) + def test_list_page_json_view(self): + """there are so many views, this just makes sure it LOADS""" + view = views.List.as_view() + request = self.factory.get("") + request.user = self.local_user + with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): + models.ListItem.objects.create( + book_list=self.list, + user=self.local_user, + book=self.book, + approved=True, + order=1, + ) + with patch("bookwyrm.views.list.is_api_request") as is_api: is_api.return_value = True result = view(request, self.list.id) self.assertIsInstance(result, ActivitypubResponse) self.assertEqual(result.status_code, 200) + def test_list_page_json_view_page(self): + """there are so many views, this just makes sure it LOADS""" + view = views.List.as_view() + request = self.factory.get("") + request.user = self.local_user + request = self.factory.get("/?page=1") request.user = self.local_user with patch("bookwyrm.views.list.is_api_request") as is_api: @@ -204,466 +307,34 @@ class ListViews(TestCase): result = view(request, self.list.id) self.assertEqual(result.status_code, 302) - def test_curate_approve(self): - """approve a pending item""" - view = views.Curate.as_view() + 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.delay"): - pending = models.ListItem.objects.create( - book_list=self.list, - user=self.local_user, - book=self.book, - approved=False, - order=1, + models.List.objects.create(name="Public list", user=self.local_user) + models.List.objects.create( + name="Private list", privacy="direct", user=self.local_user ) - - request = self.factory.post( - "", - { - "item": pending.id, - "approved": "true", - }, - ) + request = self.factory.get("") request.user = self.local_user - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay") as mock: - view(request, self.list.id) + result = view(request, self.local_user.localname) + self.assertIsInstance(result, TemplateResponse) + result.render() + self.assertEqual(result.status_code, 200) - self.assertEqual(mock.call_count, 2) - activity = json.loads(mock.call_args[0][1]) - self.assertEqual(activity["type"], "Add") - self.assertEqual(activity["actor"], self.local_user.remote_id) - self.assertEqual(activity["target"], self.list.remote_id) - - pending.refresh_from_db() - self.assertEqual(self.list.books.count(), 1) - self.assertEqual(self.list.listitem_set.first(), pending) - self.assertTrue(pending.approved) - - def test_curate_reject(self): - """approve a pending item""" - view = views.Curate.as_view() + def test_user_lists_page_logged_out(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.delay"): - pending = models.ListItem.objects.create( - book_list=self.list, - user=self.local_user, - book=self.book, - approved=False, - order=1, + models.List.objects.create(name="Public list", user=self.local_user) + models.List.objects.create( + name="Private list", privacy="direct", user=self.local_user ) + request = self.factory.get("") + request.user = self.anonymous_user - request = self.factory.post( - "", - { - "item": pending.id, - "approved": "false", - }, - ) - request.user = self.local_user - - view(request, self.list.id) - - self.assertFalse(self.list.books.exists()) - self.assertFalse(models.ListItem.objects.exists()) - - def test_add_book(self): - """put a book on a list""" - request = self.factory.post( - "", - { - "book": self.book.id, - "list": self.list.id, - }, - ) - request.user = self.local_user - - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay") as mock: - views.list.add_book(request) - self.assertEqual(mock.call_count, 1) - activity = json.loads(mock.call_args[0][1]) - self.assertEqual(activity["type"], "Add") - self.assertEqual(activity["actor"], self.local_user.remote_id) - self.assertEqual(activity["target"], self.list.remote_id) - - item = self.list.listitem_set.get() - self.assertEqual(item.book, self.book) - self.assertEqual(item.user, self.local_user) - self.assertTrue(item.approved) - - def test_add_two_books(self): - """ - Putting two books on the list. The first should have an order value of - 1 and the second should have an order value of 2. - """ - request_one = self.factory.post( - "", - { - "book": self.book.id, - "list": self.list.id, - }, - ) - request_one.user = self.local_user - - request_two = self.factory.post( - "", - { - "book": self.book_two.id, - "list": self.list.id, - }, - ) - request_two.user = self.local_user - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): - views.list.add_book(request_one) - views.list.add_book(request_two) - - items = self.list.listitem_set.order_by("order").all() - self.assertEqual(items[0].book, self.book) - self.assertEqual(items[1].book, self.book_two) - self.assertEqual(items[0].order, 1) - self.assertEqual(items[1].order, 2) - - def test_add_three_books_and_remove_second(self): - """ - Put three books on a list and then remove the one in the middle. The - ordering of the list should adjust to not have a gap. - """ - request_one = self.factory.post( - "", - { - "book": self.book.id, - "list": self.list.id, - }, - ) - request_one.user = self.local_user - - request_two = self.factory.post( - "", - { - "book": self.book_two.id, - "list": self.list.id, - }, - ) - request_two.user = self.local_user - - request_three = self.factory.post( - "", - { - "book": self.book_three.id, - "list": self.list.id, - }, - ) - request_three.user = self.local_user - - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): - views.list.add_book(request_one) - views.list.add_book(request_two) - views.list.add_book(request_three) - - items = self.list.listitem_set.order_by("order").all() - self.assertEqual(items[0].book, self.book) - self.assertEqual(items[1].book, self.book_two) - self.assertEqual(items[2].book, self.book_three) - self.assertEqual(items[0].order, 1) - self.assertEqual(items[1].order, 2) - self.assertEqual(items[2].order, 3) - - remove_request = self.factory.post("", {"item": items[1].id}) - remove_request.user = self.local_user - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): - views.list.remove_book(remove_request, self.list.id) - items = self.list.listitem_set.order_by("order").all() - self.assertEqual(items[0].book, self.book) - self.assertEqual(items[1].book, self.book_three) - self.assertEqual(items[0].order, 1) - self.assertEqual(items[1].order, 2) - - def test_adding_book_with_a_pending_book(self): - """ - When a list contains any pending books, the pending books should have - be at the end of the list by order. If a book is added while a book is - pending, its order should precede the pending books. - """ - request = self.factory.post( - "", - { - "book": self.book_three.id, - "list": self.list.id, - }, - ) - request.user = self.local_user - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): - models.ListItem.objects.create( - book_list=self.list, - user=self.local_user, - book=self.book, - approved=True, - order=1, - ) - models.ListItem.objects.create( - book_list=self.list, - user=self.rat, - book=self.book_two, - approved=False, - order=2, - ) - views.list.add_book(request) - - items = self.list.listitem_set.order_by("order").all() - self.assertEqual(items[0].book, self.book) - self.assertEqual(items[0].order, 1) - self.assertTrue(items[0].approved) - - self.assertEqual(items[1].book, self.book_three) - self.assertEqual(items[1].order, 2) - self.assertTrue(items[1].approved) - - self.assertEqual(items[2].book, self.book_two) - self.assertEqual(items[2].order, 3) - self.assertFalse(items[2].approved) - - def test_approving_one_pending_book_from_multiple(self): - """ - When a list contains any pending books, the pending books should have - be at the end of the list by order. If a pending book is approved, then - its order should be at the end of the approved books and before the - remaining pending books. - """ - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): - models.ListItem.objects.create( - book_list=self.list, - user=self.local_user, - book=self.book, - approved=True, - order=1, - ) - models.ListItem.objects.create( - book_list=self.list, - user=self.local_user, - book=self.book_two, - approved=True, - order=2, - ) - models.ListItem.objects.create( - book_list=self.list, - user=self.rat, - book=self.book_three, - approved=False, - order=3, - ) - to_be_approved = models.ListItem.objects.create( - book_list=self.list, - user=self.rat, - book=self.book_four, - approved=False, - order=4, - ) - - view = views.Curate.as_view() - request = self.factory.post( - "", - { - "item": to_be_approved.id, - "approved": "true", - }, - ) - request.user = self.local_user - - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): - view(request, self.list.id) - - items = self.list.listitem_set.order_by("order").all() - self.assertEqual(items[0].book, self.book) - self.assertEqual(items[0].order, 1) - self.assertTrue(items[0].approved) - - self.assertEqual(items[1].book, self.book_two) - self.assertEqual(items[1].order, 2) - self.assertTrue(items[1].approved) - - self.assertEqual(items[2].book, self.book_four) - self.assertEqual(items[2].order, 3) - self.assertTrue(items[2].approved) - - self.assertEqual(items[3].book, self.book_three) - self.assertEqual(items[3].order, 4) - self.assertFalse(items[3].approved) - - def test_add_three_books_and_move_last_to_first(self): - """ - Put three books on the list and move the last book to the first - position. - """ - request_one = self.factory.post( - "", - { - "book": self.book.id, - "list": self.list.id, - }, - ) - request_one.user = self.local_user - - request_two = self.factory.post( - "", - { - "book": self.book_two.id, - "list": self.list.id, - }, - ) - request_two.user = self.local_user - - request_three = self.factory.post( - "", - { - "book": self.book_three.id, - "list": self.list.id, - }, - ) - request_three.user = self.local_user - - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): - views.list.add_book(request_one) - views.list.add_book(request_two) - views.list.add_book(request_three) - - items = self.list.listitem_set.order_by("order").all() - self.assertEqual(items[0].book, self.book) - self.assertEqual(items[1].book, self.book_two) - self.assertEqual(items[2].book, self.book_three) - self.assertEqual(items[0].order, 1) - self.assertEqual(items[1].order, 2) - self.assertEqual(items[2].order, 3) - - set_position_request = self.factory.post("", {"position": 1}) - set_position_request.user = self.local_user - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): - views.list.set_book_position(set_position_request, items[2].id) - items = self.list.listitem_set.order_by("order").all() - self.assertEqual(items[0].book, self.book_three) - self.assertEqual(items[1].book, self.book) - self.assertEqual(items[2].book, self.book_two) - self.assertEqual(items[0].order, 1) - self.assertEqual(items[1].order, 2) - self.assertEqual(items[2].order, 3) - - def test_add_book_outsider(self): - """put a book on a list""" - self.list.curation = "open" - self.list.save(broadcast=False) - request = self.factory.post( - "", - { - "book": self.book.id, - "list": self.list.id, - }, - ) - request.user = self.rat - - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay") as mock: - views.list.add_book(request) - self.assertEqual(mock.call_count, 1) - activity = json.loads(mock.call_args[0][1]) - self.assertEqual(activity["type"], "Add") - self.assertEqual(activity["actor"], self.rat.remote_id) - self.assertEqual(activity["target"], self.list.remote_id) - - item = self.list.listitem_set.get() - self.assertEqual(item.book, self.book) - self.assertEqual(item.user, self.rat) - self.assertTrue(item.approved) - - def test_add_book_pending(self): - """put a book on a list awaiting approval""" - self.list.curation = "curated" - self.list.save(broadcast=False) - request = self.factory.post( - "", - { - "book": self.book.id, - "list": self.list.id, - }, - ) - request.user = self.rat - - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay") as mock: - views.list.add_book(request) - - self.assertEqual(mock.call_count, 1) - activity = json.loads(mock.call_args[0][1]) - - self.assertEqual(activity["type"], "Add") - self.assertEqual(activity["actor"], self.rat.remote_id) - self.assertEqual(activity["target"], self.list.remote_id) - - item = self.list.listitem_set.get() - self.assertEqual(activity["object"]["id"], item.remote_id) - - self.assertEqual(item.book, self.book) - self.assertEqual(item.user, self.rat) - self.assertFalse(item.approved) - - def test_add_book_self_curated(self): - """put a book on a list automatically approved""" - self.list.curation = "curated" - self.list.save(broadcast=False) - request = self.factory.post( - "", - { - "book": self.book.id, - "list": self.list.id, - }, - ) - request.user = self.local_user - - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay") as mock: - views.list.add_book(request) - self.assertEqual(mock.call_count, 1) - activity = json.loads(mock.call_args[0][1]) - self.assertEqual(activity["type"], "Add") - self.assertEqual(activity["actor"], self.local_user.remote_id) - self.assertEqual(activity["target"], self.list.remote_id) - - item = self.list.listitem_set.get() - self.assertEqual(item.book, self.book) - self.assertEqual(item.user, self.local_user) - self.assertTrue(item.approved) - - def test_remove_book(self): - """take an item off a list""" - - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): - item = models.ListItem.objects.create( - book_list=self.list, - user=self.local_user, - book=self.book, - order=1, - ) - self.assertTrue(self.list.listitem_set.exists()) - - request = self.factory.post( - "", - { - "item": item.id, - }, - ) - request.user = self.local_user - - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): - views.list.remove_book(request, self.list.id) - self.assertFalse(self.list.listitem_set.exists()) - - def test_remove_book_unauthorized(self): - """take an item off a list""" - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): - item = models.ListItem.objects.create( - book_list=self.list, user=self.local_user, book=self.book, order=1 - ) - self.assertTrue(self.list.listitem_set.exists()) - request = self.factory.post( - "", - { - "item": item.id, - }, - ) - request.user = self.rat - - views.list.remove_book(request, self.list.id) - self.assertTrue(self.list.listitem_set.exists()) + result = view(request, self.local_user.username) + self.assertIsInstance(result, TemplateResponse) + result.render() + self.assertEqual(result.status_code, 200) diff --git a/bookwyrm/tests/views/test_list_actions.py b/bookwyrm/tests/views/test_list_actions.py new file mode 100644 index 000000000..30c44a2cb --- /dev/null +++ b/bookwyrm/tests/views/test_list_actions.py @@ -0,0 +1,529 @@ +""" test for app action functionality """ +import json +from unittest.mock import patch + +from django.contrib.auth.models import AnonymousUser +from django.test import TestCase +from django.test.client import RequestFactory + +from bookwyrm import models, views + +# pylint: disable=unused-argument +class ListActionViews(TestCase): + """tag views""" + + def setUp(self): + """we need basic test data and mocks""" + self.factory = RequestFactory() + self.local_user = models.User.objects.create_user( + "mouse@local.com", + "mouse@mouse.com", + "mouseword", + local=True, + localname="mouse", + remote_id="https://example.com/users/mouse", + ) + self.rat = models.User.objects.create_user( + "rat@local.com", + "rat@rat.com", + "ratword", + local=True, + localname="rat", + remote_id="https://example.com/users/rat", + ) + work = models.Work.objects.create(title="Work") + self.book = models.Edition.objects.create( + title="Example Edition", + remote_id="https://example.com/book/1", + parent_work=work, + ) + work_two = models.Work.objects.create(title="Labori") + self.book_two = models.Edition.objects.create( + title="Example Edition 2", + remote_id="https://example.com/book/2", + parent_work=work_two, + ) + work_three = models.Work.objects.create(title="Trabajar") + self.book_three = models.Edition.objects.create( + title="Example Edition 3", + remote_id="https://example.com/book/3", + parent_work=work_three, + ) + work_four = models.Work.objects.create(title="Travailler") + self.book_four = models.Edition.objects.create( + title="Example Edition 4", + remote_id="https://example.com/book/4", + parent_work=work_four, + ) + + with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): + self.list = models.List.objects.create( + name="Test List", user=self.local_user + ) + self.anonymous_user = AnonymousUser + self.anonymous_user.is_authenticated = False + models.SiteSettings.objects.create() + + def test_curate_approve(self): + """approve a pending item""" + view = views.Curate.as_view() + with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): + pending = models.ListItem.objects.create( + book_list=self.list, + user=self.local_user, + book=self.book, + approved=False, + order=1, + ) + + request = self.factory.post( + "", + { + "item": pending.id, + "approved": "true", + }, + ) + request.user = self.local_user + + with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay") as mock: + view(request, self.list.id) + + self.assertEqual(mock.call_count, 2) + activity = json.loads(mock.call_args[0][1]) + self.assertEqual(activity["type"], "Add") + self.assertEqual(activity["actor"], self.local_user.remote_id) + self.assertEqual(activity["target"], self.list.remote_id) + + pending.refresh_from_db() + self.assertEqual(self.list.books.count(), 1) + self.assertEqual(self.list.listitem_set.first(), pending) + self.assertTrue(pending.approved) + + def test_curate_reject(self): + """approve a pending item""" + view = views.Curate.as_view() + with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): + pending = models.ListItem.objects.create( + book_list=self.list, + user=self.local_user, + book=self.book, + approved=False, + order=1, + ) + + request = self.factory.post( + "", + { + "item": pending.id, + "approved": "false", + }, + ) + request.user = self.local_user + + view(request, self.list.id) + + self.assertFalse(self.list.books.exists()) + self.assertFalse(models.ListItem.objects.exists()) + + def test_add_book(self): + """put a book on a list""" + request = self.factory.post( + "", + { + "book": self.book.id, + "list": self.list.id, + }, + ) + request.user = self.local_user + + with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay") as mock: + views.list.add_book(request) + self.assertEqual(mock.call_count, 1) + activity = json.loads(mock.call_args[0][1]) + self.assertEqual(activity["type"], "Add") + self.assertEqual(activity["actor"], self.local_user.remote_id) + self.assertEqual(activity["target"], self.list.remote_id) + + item = self.list.listitem_set.get() + self.assertEqual(item.book, self.book) + self.assertEqual(item.user, self.local_user) + self.assertTrue(item.approved) + + def test_add_two_books(self): + """ + Putting two books on the list. The first should have an order value of + 1 and the second should have an order value of 2. + """ + request_one = self.factory.post( + "", + { + "book": self.book.id, + "list": self.list.id, + }, + ) + request_one.user = self.local_user + + request_two = self.factory.post( + "", + { + "book": self.book_two.id, + "list": self.list.id, + }, + ) + request_two.user = self.local_user + with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): + views.list.add_book(request_one) + views.list.add_book(request_two) + + items = self.list.listitem_set.order_by("order").all() + self.assertEqual(items[0].book, self.book) + self.assertEqual(items[1].book, self.book_two) + self.assertEqual(items[0].order, 1) + self.assertEqual(items[1].order, 2) + + def test_add_three_books_and_remove_second(self): + """ + Put three books on a list and then remove the one in the middle. The + ordering of the list should adjust to not have a gap. + """ + request_one = self.factory.post( + "", + { + "book": self.book.id, + "list": self.list.id, + }, + ) + request_one.user = self.local_user + + request_two = self.factory.post( + "", + { + "book": self.book_two.id, + "list": self.list.id, + }, + ) + request_two.user = self.local_user + + request_three = self.factory.post( + "", + { + "book": self.book_three.id, + "list": self.list.id, + }, + ) + request_three.user = self.local_user + + with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): + views.list.add_book(request_one) + views.list.add_book(request_two) + views.list.add_book(request_three) + + items = self.list.listitem_set.order_by("order").all() + self.assertEqual(items[0].book, self.book) + self.assertEqual(items[1].book, self.book_two) + self.assertEqual(items[2].book, self.book_three) + self.assertEqual(items[0].order, 1) + self.assertEqual(items[1].order, 2) + self.assertEqual(items[2].order, 3) + + remove_request = self.factory.post("", {"item": items[1].id}) + remove_request.user = self.local_user + with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): + views.list.remove_book(remove_request, self.list.id) + items = self.list.listitem_set.order_by("order").all() + self.assertEqual(items[0].book, self.book) + self.assertEqual(items[1].book, self.book_three) + self.assertEqual(items[0].order, 1) + self.assertEqual(items[1].order, 2) + + def test_adding_book_with_a_pending_book(self): + """ + When a list contains any pending books, the pending books should have + be at the end of the list by order. If a book is added while a book is + pending, its order should precede the pending books. + """ + request = self.factory.post( + "", + { + "book": self.book_three.id, + "list": self.list.id, + }, + ) + request.user = self.local_user + with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): + models.ListItem.objects.create( + book_list=self.list, + user=self.local_user, + book=self.book, + approved=True, + order=1, + ) + models.ListItem.objects.create( + book_list=self.list, + user=self.rat, + book=self.book_two, + approved=False, + order=2, + ) + views.list.add_book(request) + + items = self.list.listitem_set.order_by("order").all() + self.assertEqual(items[0].book, self.book) + self.assertEqual(items[0].order, 1) + self.assertTrue(items[0].approved) + + self.assertEqual(items[1].book, self.book_three) + self.assertEqual(items[1].order, 2) + self.assertTrue(items[1].approved) + + self.assertEqual(items[2].book, self.book_two) + self.assertEqual(items[2].order, 3) + self.assertFalse(items[2].approved) + + def test_approving_one_pending_book_from_multiple(self): + """ + When a list contains any pending books, the pending books should have + be at the end of the list by order. If a pending book is approved, then + its order should be at the end of the approved books and before the + remaining pending books. + """ + with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): + models.ListItem.objects.create( + book_list=self.list, + user=self.local_user, + book=self.book, + approved=True, + order=1, + ) + models.ListItem.objects.create( + book_list=self.list, + user=self.local_user, + book=self.book_two, + approved=True, + order=2, + ) + models.ListItem.objects.create( + book_list=self.list, + user=self.rat, + book=self.book_three, + approved=False, + order=3, + ) + to_be_approved = models.ListItem.objects.create( + book_list=self.list, + user=self.rat, + book=self.book_four, + approved=False, + order=4, + ) + + view = views.Curate.as_view() + request = self.factory.post( + "", + { + "item": to_be_approved.id, + "approved": "true", + }, + ) + request.user = self.local_user + + with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): + view(request, self.list.id) + + items = self.list.listitem_set.order_by("order").all() + self.assertEqual(items[0].book, self.book) + self.assertEqual(items[0].order, 1) + self.assertTrue(items[0].approved) + + self.assertEqual(items[1].book, self.book_two) + self.assertEqual(items[1].order, 2) + self.assertTrue(items[1].approved) + + self.assertEqual(items[2].book, self.book_four) + self.assertEqual(items[2].order, 3) + self.assertTrue(items[2].approved) + + self.assertEqual(items[3].book, self.book_three) + self.assertEqual(items[3].order, 4) + self.assertFalse(items[3].approved) + + def test_add_three_books_and_move_last_to_first(self): + """ + Put three books on the list and move the last book to the first + position. + """ + request_one = self.factory.post( + "", + { + "book": self.book.id, + "list": self.list.id, + }, + ) + request_one.user = self.local_user + + request_two = self.factory.post( + "", + { + "book": self.book_two.id, + "list": self.list.id, + }, + ) + request_two.user = self.local_user + + request_three = self.factory.post( + "", + { + "book": self.book_three.id, + "list": self.list.id, + }, + ) + request_three.user = self.local_user + + with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): + views.list.add_book(request_one) + views.list.add_book(request_two) + views.list.add_book(request_three) + + items = self.list.listitem_set.order_by("order").all() + self.assertEqual(items[0].book, self.book) + self.assertEqual(items[1].book, self.book_two) + self.assertEqual(items[2].book, self.book_three) + self.assertEqual(items[0].order, 1) + self.assertEqual(items[1].order, 2) + self.assertEqual(items[2].order, 3) + + set_position_request = self.factory.post("", {"position": 1}) + set_position_request.user = self.local_user + with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): + views.list.set_book_position(set_position_request, items[2].id) + items = self.list.listitem_set.order_by("order").all() + self.assertEqual(items[0].book, self.book_three) + self.assertEqual(items[1].book, self.book) + self.assertEqual(items[2].book, self.book_two) + self.assertEqual(items[0].order, 1) + self.assertEqual(items[1].order, 2) + self.assertEqual(items[2].order, 3) + + def test_add_book_outsider(self): + """put a book on a list""" + self.list.curation = "open" + self.list.save(broadcast=False) + request = self.factory.post( + "", + { + "book": self.book.id, + "list": self.list.id, + }, + ) + request.user = self.rat + + with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay") as mock: + views.list.add_book(request) + self.assertEqual(mock.call_count, 1) + activity = json.loads(mock.call_args[0][1]) + self.assertEqual(activity["type"], "Add") + self.assertEqual(activity["actor"], self.rat.remote_id) + self.assertEqual(activity["target"], self.list.remote_id) + + item = self.list.listitem_set.get() + self.assertEqual(item.book, self.book) + self.assertEqual(item.user, self.rat) + self.assertTrue(item.approved) + + def test_add_book_pending(self): + """put a book on a list awaiting approval""" + self.list.curation = "curated" + self.list.save(broadcast=False) + request = self.factory.post( + "", + { + "book": self.book.id, + "list": self.list.id, + }, + ) + request.user = self.rat + + with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay") as mock: + views.list.add_book(request) + + self.assertEqual(mock.call_count, 1) + activity = json.loads(mock.call_args[0][1]) + + self.assertEqual(activity["type"], "Add") + self.assertEqual(activity["actor"], self.rat.remote_id) + self.assertEqual(activity["target"], self.list.remote_id) + + item = self.list.listitem_set.get() + self.assertEqual(activity["object"]["id"], item.remote_id) + + self.assertEqual(item.book, self.book) + self.assertEqual(item.user, self.rat) + self.assertFalse(item.approved) + + def test_add_book_self_curated(self): + """put a book on a list automatically approved""" + self.list.curation = "curated" + self.list.save(broadcast=False) + request = self.factory.post( + "", + { + "book": self.book.id, + "list": self.list.id, + }, + ) + request.user = self.local_user + + with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay") as mock: + views.list.add_book(request) + self.assertEqual(mock.call_count, 1) + activity = json.loads(mock.call_args[0][1]) + self.assertEqual(activity["type"], "Add") + self.assertEqual(activity["actor"], self.local_user.remote_id) + self.assertEqual(activity["target"], self.list.remote_id) + + item = self.list.listitem_set.get() + self.assertEqual(item.book, self.book) + self.assertEqual(item.user, self.local_user) + self.assertTrue(item.approved) + + def test_remove_book(self): + """take an item off a list""" + + with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): + item = models.ListItem.objects.create( + book_list=self.list, + user=self.local_user, + book=self.book, + order=1, + ) + self.assertTrue(self.list.listitem_set.exists()) + + request = self.factory.post( + "", + { + "item": item.id, + }, + ) + request.user = self.local_user + + with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): + views.list.remove_book(request, self.list.id) + self.assertFalse(self.list.listitem_set.exists()) + + def test_remove_book_unauthorized(self): + """take an item off a list""" + with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): + item = models.ListItem.objects.create( + book_list=self.list, user=self.local_user, book=self.book, order=1 + ) + self.assertTrue(self.list.listitem_set.exists()) + request = self.factory.post( + "", + { + "item": item.id, + }, + ) + request.user = self.rat + + views.list.remove_book(request, self.list.id) + self.assertTrue(self.list.listitem_set.exists()) diff --git a/bookwyrm/views/author.py b/bookwyrm/views/author.py index 41298161c..e51dc7d83 100644 --- a/bookwyrm/views/author.py +++ b/bookwyrm/views/author.py @@ -29,7 +29,7 @@ class Author(View): "author": author, "books": [b.default_edition for b in books], } - return TemplateResponse(request, "author.html", data) + return TemplateResponse(request, "author/author.html", data) @method_decorator(login_required, name="dispatch") @@ -43,7 +43,7 @@ class EditAuthor(View): """info about a book""" author = get_object_or_404(models.Author, id=author_id) data = {"author": author, "form": forms.AuthorForm(instance=author)} - return TemplateResponse(request, "edit_author.html", data) + return TemplateResponse(request, "author/edit_author.html", data) def post(self, request, author_id): """edit a author cool""" @@ -52,7 +52,7 @@ class EditAuthor(View): form = forms.AuthorForm(request.POST, request.FILES, instance=author) if not form.is_valid(): data = {"author": author, "form": form} - return TemplateResponse(request, "edit_author.html", data) + return TemplateResponse(request, "author/edit_author.html", data) author = form.save() return redirect("/author/%s" % author.id) diff --git a/bookwyrm/views/books.py b/bookwyrm/views/books.py index 6005c9fde..fee22e89a 100644 --- a/bookwyrm/views/books.py +++ b/bookwyrm/views/books.py @@ -30,6 +30,7 @@ class Book(View): def get(self, request, book_id, user_statuses=False): """info about a book""" + user_statuses = user_statuses if request.user.is_authenticated else False try: book = models.Book.objects.select_subclasses().get(id=book_id) except models.Book.DoesNotExist: @@ -51,9 +52,9 @@ class Book(View): ) # the reviews to show - if user_statuses and request.user.is_authenticated: + if user_statuses: if user_statuses == "review": - queryset = book.review_set + queryset = book.review_set.select_subclasses() elif user_statuses == "comment": queryset = book.comment_set else: @@ -67,7 +68,9 @@ class Book(View): "book": book, "statuses": paginated.get_page(request.GET.get("page")), "review_count": reviews.count(), - "ratings": reviews.filter(Q(content__isnull=True) | Q(content="")), + "ratings": reviews.filter(Q(content__isnull=True) | Q(content="")) + if not user_statuses + else None, "rating": reviews.aggregate(Avg("rating"))["rating__avg"], "lists": privacy_filter( request.user, book.list_set.filter(listitem__approved=True) diff --git a/bookwyrm/views/list.py b/bookwyrm/views/list.py index bfd617907..75bb5d48c 100644 --- a/bookwyrm/views/list.py +++ b/bookwyrm/views/list.py @@ -5,7 +5,7 @@ from urllib.parse import urlencode from django.contrib.auth.decorators import login_required from django.core.paginator import Paginator from django.db import IntegrityError, transaction -from django.db.models import Avg, Count, Q, Max +from django.db.models import Avg, Count, DecimalField, Q, Max from django.db.models.functions import Coalesce from django.http import HttpResponseNotFound, HttpResponseBadRequest, HttpResponse from django.shortcuts import get_object_or_404, redirect @@ -108,31 +108,23 @@ class List(View): if direction not in ("ascending", "descending"): direction = "ascending" - internal_sort_by = { + directional_sort_by = { "order": "order", "title": "book__title", "rating": "average_rating", - } - directional_sort_by = internal_sort_by[sort_by] + }[sort_by] if direction == "descending": directional_sort_by = "-" + directional_sort_by - if sort_by == "order": - items = book_list.listitem_set.filter(approved=True).order_by( - directional_sort_by - ) - elif sort_by == "title": - items = book_list.listitem_set.filter(approved=True).order_by( - directional_sort_by - ) - elif sort_by == "rating": - items = ( - book_list.listitem_set.annotate( - average_rating=Avg(Coalesce("book__review__rating", 0)) + items = book_list.listitem_set + if sort_by == "rating": + items = items.annotate( + average_rating=Avg( + Coalesce("book__review__rating", 0.0), + output_field=DecimalField(), ) - .filter(approved=True) - .order_by(directional_sort_by) ) + items = items.filter(approved=True).order_by(directional_sort_by) paginated = Paginator(items, PAGE_LENGTH) diff --git a/bookwyrm/views/shelf.py b/bookwyrm/views/shelf.py index 5312ac212..758e290ed 100644 --- a/bookwyrm/views/shelf.py +++ b/bookwyrm/views/shelf.py @@ -2,6 +2,7 @@ from collections import namedtuple from django.db import IntegrityError +from django.db.models import Count, OuterRef, Subquery, F, Q from django.contrib.auth.decorators import login_required from django.core.paginator import Paginator from django.http import HttpResponseBadRequest, HttpResponseNotFound @@ -37,30 +38,41 @@ class Shelf(View): return HttpResponseNotFound() if not shelf.visible_to_user(request.user): return HttpResponseNotFound() + books = shelf.books # this is a constructed "all books" view, with a fake "shelf" obj else: FakeShelf = namedtuple( "Shelf", ("identifier", "name", "user", "books", "privacy") ) books = models.Edition.objects.filter( + # privacy is ensured because the shelves are already filtered above shelfbook__shelf__in=shelves.all() ).distinct() shelf = FakeShelf("all", _("All books"), user, books, "public") - is_self = request.user == user - if is_api_request(request): return ActivitypubResponse(shelf.to_activity(**request.GET)) + reviews = privacy_filter( + request.user, + models.Review.objects.filter( + user=user, + rating__isnull=False, + book__id=OuterRef("id"), + ), + ).order_by("-published_date") + + books = books.annotate(rating=Subquery(reviews.values("rating")[:1])) + paginated = Paginator( - shelf.books.order_by("-updated_date"), + books.order_by("-updated_date"), PAGE_LENGTH, ) page = paginated.get_page(request.GET.get("page")) data = { "user": user, - "is_self": is_self, + "is_self": request.user == user, "shelves": shelves.all(), "shelf": shelf, "books": page, diff --git a/locale/de_DE/LC_MESSAGES/django.po b/locale/de_DE/LC_MESSAGES/django.po index 7f274af9d..7b9a929da 100644 --- a/locale/de_DE/LC_MESSAGES/django.po +++ b/locale/de_DE/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: 2021-05-10 13:23-0700\n" +"POT-Creation-Date: 2021-05-14 15:12-0700\n" "PO-Revision-Date: 2021-03-02 17:19-0800\n" "Last-Translator: Mouse Reeve \n" "Language-Team: English \n" @@ -61,13 +61,13 @@ msgstr "" msgid "Book Title" msgstr "Titel" -#: bookwyrm/forms.py:295 bookwyrm/templates/snippets/create_status_form.html:31 -#: bookwyrm/templates/user/shelf/shelf.html:82 -#: bookwyrm/templates/user/shelf/shelf.html:112 +#: bookwyrm/forms.py:295 bookwyrm/templates/snippets/create_status_form.html:34 +#: bookwyrm/templates/user/shelf/shelf.html:84 +#: bookwyrm/templates/user/shelf/shelf.html:115 msgid "Rating" msgstr "" -#: bookwyrm/forms.py:297 bookwyrm/templates/lists/list.html:100 +#: bookwyrm/forms.py:297 bookwyrm/templates/lists/list.html:101 msgid "Sort By" msgstr "" @@ -141,19 +141,157 @@ msgstr "" msgid "Something went wrong! Sorry about that." msgstr "Etwas lief schief. Entschuldigung!" -#: bookwyrm/templates/author.html:16 bookwyrm/templates/author.html:17 +#: bookwyrm/templates/author/author.html:17 +#: bookwyrm/templates/author/author.html:18 msgid "Edit Author" msgstr "Autor*in editieren" -#: bookwyrm/templates/author.html:31 +#: bookwyrm/templates/author/author.html:33 +#: bookwyrm/templates/author/edit_author.html:38 +msgid "Aliases:" +msgstr "" + +#: bookwyrm/templates/author/author.html:39 +msgid "Born:" +msgstr "" + +#: bookwyrm/templates/author/author.html:45 +msgid "Died:" +msgstr "" + +#: bookwyrm/templates/author/author.html:52 msgid "Wikipedia" msgstr "" -#: bookwyrm/templates/author.html:36 +#: bookwyrm/templates/author/author.html:56 +#: bookwyrm/templates/book/book.html:81 +msgid "View on OpenLibrary" +msgstr "In OpenLibrary ansehen" + +#: bookwyrm/templates/author/author.html:61 +#: bookwyrm/templates/book/book.html:84 +#, fuzzy +#| msgid "View on OpenLibrary" +msgid "View on Inventaire" +msgstr "In OpenLibrary ansehen" + +#: bookwyrm/templates/author/author.html:75 #, python-format msgid "Books by %(name)s" msgstr "Bücher von %(name)s" +#: bookwyrm/templates/author/edit_author.html:5 +#, fuzzy +#| msgid "Edit Author" +msgid "Edit Author:" +msgstr "Autor*in editieren" + +#: bookwyrm/templates/author/edit_author.html:13 +#: bookwyrm/templates/book/edit_book.html:18 +msgid "Added:" +msgstr "Hinzugefügt:" + +#: bookwyrm/templates/author/edit_author.html:14 +#: bookwyrm/templates/book/edit_book.html:19 +msgid "Updated:" +msgstr "Aktualisiert:" + +#: bookwyrm/templates/author/edit_author.html:15 +#: bookwyrm/templates/book/edit_book.html:20 +msgid "Last edited by:" +msgstr "Zuletzt bearbeitet von:" + +#: bookwyrm/templates/author/edit_author.html:31 +#: bookwyrm/templates/book/edit_book.html:90 +msgid "Metadata" +msgstr "Metadaten" + +#: bookwyrm/templates/author/edit_author.html:32 +#: bookwyrm/templates/lists/form.html:8 +#: bookwyrm/templates/user/shelf/create_shelf_form.html:13 +#: bookwyrm/templates/user/shelf/edit_shelf_form.html:14 +msgid "Name:" +msgstr "" + +#: bookwyrm/templates/author/edit_author.html:40 +#: bookwyrm/templates/book/edit_book.html:128 +#: bookwyrm/templates/book/edit_book.html:165 +#, fuzzy +#| msgid "Separate multiple publishers with commas." +msgid "Separate multiple values with commas." +msgstr "Mehrere Herausgeber:innen durch Kommata trennen" + +#: bookwyrm/templates/author/edit_author.html:46 +msgid "Bio:" +msgstr "" + +#: bookwyrm/templates/author/edit_author.html:51 +msgid "Wikipedia link:" +msgstr "Wikipedialink:" + +#: bookwyrm/templates/author/edit_author.html:57 +msgid "Birth date:" +msgstr "Geburtsdatum:" + +#: bookwyrm/templates/author/edit_author.html:65 +msgid "Death date:" +msgstr "Todesdatum:" + +#: bookwyrm/templates/author/edit_author.html:73 +msgid "Author Identifiers" +msgstr "Autor*innenidentifikatoren" + +#: bookwyrm/templates/author/edit_author.html:74 +#: bookwyrm/templates/book/edit_book.html:223 +msgid "Openlibrary key:" +msgstr "" + +#: bookwyrm/templates/author/edit_author.html:79 +#, fuzzy +#| msgid "View on OpenLibrary" +msgid "Inventaire ID:" +msgstr "In OpenLibrary ansehen" + +#: bookwyrm/templates/author/edit_author.html:84 +msgid "Librarything key:" +msgstr "" + +#: bookwyrm/templates/author/edit_author.html:89 +msgid "Goodreads key:" +msgstr "" + +#: bookwyrm/templates/author/edit_author.html:98 +#: bookwyrm/templates/book/book.html:127 +#: bookwyrm/templates/book/edit_book.html:241 +#: bookwyrm/templates/lists/form.html:42 +#: bookwyrm/templates/preferences/edit_user.html:70 +#: bookwyrm/templates/settings/edit_server.html:68 +#: bookwyrm/templates/settings/federated_server.html:94 +#: bookwyrm/templates/settings/site.html:97 +#: bookwyrm/templates/snippets/readthrough.html:77 +#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:42 +#: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:42 +#: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:34 +#: bookwyrm/templates/user_admin/user_moderation_actions.html:38 +msgid "Save" +msgstr "Speichern" + +#: bookwyrm/templates/author/edit_author.html:99 +#: bookwyrm/templates/book/book.html:128 bookwyrm/templates/book/book.html:180 +#: bookwyrm/templates/book/cover_modal.html:32 +#: bookwyrm/templates/book/edit_book.html:242 +#: bookwyrm/templates/moderation/report_modal.html:34 +#: bookwyrm/templates/settings/federated_server.html:95 +#: bookwyrm/templates/snippets/delete_readthrough_modal.html:17 +#: bookwyrm/templates/snippets/goal_form.html:32 +#: bookwyrm/templates/snippets/readthrough.html:78 +#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:43 +#: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:43 +#: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:35 +#: bookwyrm/templates/snippets/shelve_button/want_to_read_modal.html:28 +msgid "Cancel" +msgstr "Abbrechen" + #: bookwyrm/templates/book/book.html:33 #: bookwyrm/templates/discover/large-book.html:25 #: bookwyrm/templates/discover/small-book.html:19 @@ -175,16 +313,6 @@ msgstr "Cover hinzufügen" msgid "Failed to load cover" msgstr "Laden fehlgeschlagen" -#: bookwyrm/templates/book/book.html:81 -msgid "View on OpenLibrary" -msgstr "In OpenLibrary ansehen" - -#: bookwyrm/templates/book/book.html:84 -#, fuzzy -#| msgid "View on OpenLibrary" -msgid "View on Inventaire" -msgstr "In OpenLibrary ansehen" - #: bookwyrm/templates/book/book.html:104 #, python-format msgid "(%(review_count)s review)" @@ -202,37 +330,6 @@ msgstr "Beschreibung hinzufügen" msgid "Description:" msgstr "Beschreibung:" -#: bookwyrm/templates/book/book.html:127 -#: bookwyrm/templates/book/edit_book.html:249 -#: bookwyrm/templates/edit_author.html:78 bookwyrm/templates/lists/form.html:42 -#: bookwyrm/templates/preferences/edit_user.html:70 -#: bookwyrm/templates/settings/edit_server.html:68 -#: bookwyrm/templates/settings/federated_server.html:93 -#: bookwyrm/templates/settings/site.html:97 -#: bookwyrm/templates/snippets/readthrough.html:77 -#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:50 -#: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:42 -#: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:38 -#: bookwyrm/templates/user_admin/user_moderation_actions.html:38 -msgid "Save" -msgstr "Speichern" - -#: bookwyrm/templates/book/book.html:128 bookwyrm/templates/book/book.html:180 -#: bookwyrm/templates/book/cover_modal.html:32 -#: bookwyrm/templates/book/edit_book.html:250 -#: bookwyrm/templates/edit_author.html:79 -#: bookwyrm/templates/moderation/report_modal.html:34 -#: bookwyrm/templates/settings/federated_server.html:94 -#: bookwyrm/templates/snippets/delete_readthrough_modal.html:17 -#: bookwyrm/templates/snippets/goal_form.html:32 -#: bookwyrm/templates/snippets/readthrough.html:78 -#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:51 -#: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:43 -#: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:39 -#: bookwyrm/templates/snippets/shelve_button/want_to_read_modal.html:28 -msgid "Cancel" -msgstr "Abbrechen" - #: bookwyrm/templates/book/book.html:137 #, fuzzy, python-format #| msgid "%(title)s by " @@ -307,7 +404,7 @@ msgstr "Orte" #: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/search/layout.html:25 #: bookwyrm/templates/search/layout.html:50 -#: bookwyrm/templates/user/layout.html:67 +#: bookwyrm/templates/user/layout.html:68 msgid "Lists" msgstr "Listen" @@ -319,7 +416,7 @@ msgstr "Zur Liste" #: bookwyrm/templates/book/book.html:320 #: bookwyrm/templates/book/cover_modal.html:31 -#: bookwyrm/templates/lists/list.html:163 +#: bookwyrm/templates/lists/list.html:164 msgid "Add" msgstr "Hinzufügen" @@ -328,24 +425,24 @@ msgid "ISBN:" msgstr "" #: bookwyrm/templates/book/book_identifiers.html:15 -#: bookwyrm/templates/book/edit_book.html:235 +#: bookwyrm/templates/book/edit_book.html:227 msgid "OCLC Number:" msgstr "OCLC Nummer:" #: bookwyrm/templates/book/book_identifiers.html:22 -#: bookwyrm/templates/book/edit_book.html:239 +#: bookwyrm/templates/book/edit_book.html:231 msgid "ASIN:" msgstr "" #: bookwyrm/templates/book/cover_modal.html:17 -#: bookwyrm/templates/book/edit_book.html:187 +#: bookwyrm/templates/book/edit_book.html:179 #, fuzzy #| msgid "Add cover" msgid "Upload cover:" msgstr "Cover hinzufügen" #: bookwyrm/templates/book/cover_modal.html:23 -#: bookwyrm/templates/book/edit_book.html:193 +#: bookwyrm/templates/book/edit_book.html:185 msgid "Load cover from url:" msgstr "Cover von URL laden:" @@ -363,21 +460,6 @@ msgstr "Editionen von %(book_title)s" msgid "Add Book" msgstr "Bücher hinzufügen" -#: bookwyrm/templates/book/edit_book.html:18 -#: bookwyrm/templates/edit_author.html:13 -msgid "Added:" -msgstr "Hinzugefügt:" - -#: bookwyrm/templates/book/edit_book.html:19 -#: bookwyrm/templates/edit_author.html:14 -msgid "Updated:" -msgstr "Aktualisiert:" - -#: bookwyrm/templates/book/edit_book.html:20 -#: bookwyrm/templates/edit_author.html:15 -msgid "Last edited by:" -msgstr "Zuletzt bearbeitet von:" - #: bookwyrm/templates/book/edit_book.html:40 msgid "Confirm Book Info" msgstr "Buchinfo bestätigen" @@ -420,11 +502,6 @@ msgstr "Bestätigen" msgid "Back" msgstr "Zurück" -#: bookwyrm/templates/book/edit_book.html:90 -#: bookwyrm/templates/edit_author.html:31 -msgid "Metadata" -msgstr "Metadaten" - #: bookwyrm/templates/book/edit_book.html:92 msgid "Title:" msgstr "Titel:" @@ -447,81 +524,72 @@ msgstr "Seriennummer:" msgid "Publisher:" msgstr "Veröffentlicht" -#: bookwyrm/templates/book/edit_book.html:128 -msgid "Separate multiple publishers with commas." -msgstr "Mehrere Herausgeber:innen durch Kommata trennen" - #: bookwyrm/templates/book/edit_book.html:135 msgid "First published date:" msgstr "Erstveröffentlichungsdatum:" -#: bookwyrm/templates/book/edit_book.html:147 +#: bookwyrm/templates/book/edit_book.html:143 msgid "Published date:" msgstr "Veröffentlichungsdatum:" -#: bookwyrm/templates/book/edit_book.html:160 +#: bookwyrm/templates/book/edit_book.html:152 #, fuzzy #| msgid "Author" msgid "Authors" msgstr "Autor*in" -#: bookwyrm/templates/book/edit_book.html:166 +#: bookwyrm/templates/book/edit_book.html:158 #, fuzzy, python-format #| msgid "Direct Messages with %(username)s" msgid "Remove %(name)s" msgstr "Direktnachrichten mit %(username)s" -#: bookwyrm/templates/book/edit_book.html:171 +#: bookwyrm/templates/book/edit_book.html:163 #, fuzzy #| msgid "Edit Author" msgid "Add Authors:" msgstr "Autor*in editieren" -#: bookwyrm/templates/book/edit_book.html:172 +#: bookwyrm/templates/book/edit_book.html:164 msgid "John Doe, Jane Smith" msgstr "" -#: bookwyrm/templates/book/edit_book.html:178 -#: bookwyrm/templates/user/shelf/shelf.html:76 +#: bookwyrm/templates/book/edit_book.html:170 +#: bookwyrm/templates/user/shelf/shelf.html:77 msgid "Cover" msgstr "" -#: bookwyrm/templates/book/edit_book.html:206 +#: bookwyrm/templates/book/edit_book.html:198 msgid "Physical Properties" msgstr "Physikalische Eigenschaften" -#: bookwyrm/templates/book/edit_book.html:207 +#: bookwyrm/templates/book/edit_book.html:199 #: bookwyrm/templates/book/format_filter.html:5 msgid "Format:" msgstr "" -#: bookwyrm/templates/book/edit_book.html:215 +#: bookwyrm/templates/book/edit_book.html:207 msgid "Pages:" msgstr "Seiten:" -#: bookwyrm/templates/book/edit_book.html:222 +#: bookwyrm/templates/book/edit_book.html:214 msgid "Book Identifiers" msgstr "Buchidentifikatoren" -#: bookwyrm/templates/book/edit_book.html:223 +#: bookwyrm/templates/book/edit_book.html:215 msgid "ISBN 13:" msgstr "" -#: bookwyrm/templates/book/edit_book.html:227 +#: bookwyrm/templates/book/edit_book.html:219 msgid "ISBN 10:" msgstr "" -#: bookwyrm/templates/book/edit_book.html:231 -#: bookwyrm/templates/edit_author.html:59 -msgid "Openlibrary key:" -msgstr "" - -#: bookwyrm/templates/book/editions.html:5 +#: bookwyrm/templates/book/editions.html:4 #, python-format msgid "Editions of %(book_title)s" msgstr "Editionen von %(book_title)s" -#: bookwyrm/templates/book/editions.html:9 +#: bookwyrm/templates/book/editions.html:8 #, python-format msgid "Editions of \"%(work_title)s\"" msgstr "Editionen von \"%(work_title)s\"" @@ -574,7 +642,7 @@ msgstr "Veröffentlicht von %(publisher)s." #: bookwyrm/templates/components/inline_form.html:8 #: bookwyrm/templates/components/modal.html:11 -#: bookwyrm/templates/feed/feed_layout.html:70 +#: bookwyrm/templates/feed/feed_layout.html:69 #: bookwyrm/templates/get_started/layout.html:19 #: bookwyrm/templates/get_started/layout.html:52 #: bookwyrm/templates/search/book.html:32 @@ -640,7 +708,7 @@ msgstr "Vorschlagen" msgid "Recently active" msgstr "" -#: bookwyrm/templates/directory/user_card.html:32 +#: bookwyrm/templates/directory/user_card.html:33 #, fuzzy #| msgid "followed you" msgid "follower you follow" @@ -648,7 +716,7 @@ msgid_plural "followers you follow" msgstr[0] "folgt dir" msgstr[1] "folgt dir" -#: bookwyrm/templates/directory/user_card.html:39 +#: bookwyrm/templates/directory/user_card.html:40 #, fuzzy #| msgid "Your shelves" msgid "book on your shelves" @@ -656,11 +724,11 @@ msgid_plural "books on your shelves" msgstr[0] "Deine Regale" msgstr[1] "Deine Regale" -#: bookwyrm/templates/directory/user_card.html:47 +#: bookwyrm/templates/directory/user_card.html:48 msgid "posts" msgstr "" -#: bookwyrm/templates/directory/user_card.html:53 +#: bookwyrm/templates/directory/user_card.html:54 msgid "last active" msgstr "" @@ -748,46 +816,6 @@ msgstr "Absenden" msgid "Your Account" msgstr "Dein Account" -#: bookwyrm/templates/edit_author.html:5 -#, fuzzy -#| msgid "Edit Author" -msgid "Edit Author:" -msgstr "Autor*in editieren" - -#: bookwyrm/templates/edit_author.html:32 bookwyrm/templates/lists/form.html:8 -#: bookwyrm/templates/user/shelf/create_shelf_form.html:13 -#: bookwyrm/templates/user/shelf/edit_shelf_form.html:14 -msgid "Name:" -msgstr "" - -#: bookwyrm/templates/edit_author.html:37 -msgid "Bio:" -msgstr "" - -#: bookwyrm/templates/edit_author.html:42 -msgid "Wikipedia link:" -msgstr "Wikipedialink:" - -#: bookwyrm/templates/edit_author.html:47 -msgid "Birth date:" -msgstr "Geburtsdatum:" - -#: bookwyrm/templates/edit_author.html:52 -msgid "Death date:" -msgstr "Todesdatum:" - -#: bookwyrm/templates/edit_author.html:58 -msgid "Author Identifiers" -msgstr "Autor*innenidentifikatoren" - -#: bookwyrm/templates/edit_author.html:64 -msgid "Librarything key:" -msgstr "" - -#: bookwyrm/templates/edit_author.html:69 -msgid "Goodreads key:" -msgstr "" - #: bookwyrm/templates/email/html_layout.html:15 #: bookwyrm/templates/email/text_layout.html:2 msgid "Hi there," @@ -872,82 +900,82 @@ msgstr "Alle Nachrichten" msgid "You have no messages right now." msgstr "Du hast momentan keine Nachrichten." -#: bookwyrm/templates/feed/feed.html:9 +#: bookwyrm/templates/feed/feed.html:8 msgid "Home Timeline" msgstr "" -#: bookwyrm/templates/feed/feed.html:11 +#: bookwyrm/templates/feed/feed.html:10 msgid "Local Timeline" msgstr "" -#: bookwyrm/templates/feed/feed.html:13 +#: bookwyrm/templates/feed/feed.html:12 #, fuzzy #| msgid "Federated Servers" msgid "Federated Timeline" msgstr "Föderierende Server" -#: bookwyrm/templates/feed/feed.html:19 +#: bookwyrm/templates/feed/feed.html:18 msgid "Home" msgstr "" -#: bookwyrm/templates/feed/feed.html:22 +#: bookwyrm/templates/feed/feed.html:21 msgid "Local" msgstr "Lokal" -#: bookwyrm/templates/feed/feed.html:25 +#: bookwyrm/templates/feed/feed.html:24 #: bookwyrm/templates/settings/edit_server.html:40 msgid "Federated" msgstr "Föderiert" -#: bookwyrm/templates/feed/feed.html:33 +#: bookwyrm/templates/feed/feed.html:32 #, python-format msgid "load 0 unread status(es)" msgstr "" -#: bookwyrm/templates/feed/feed.html:48 +#: bookwyrm/templates/feed/feed.html:47 msgid "There aren't any activities right now! Try following a user to get started" msgstr "Hier sind noch keine Aktivitäten! Folge anderen, um loszulegen" -#: bookwyrm/templates/feed/feed.html:56 +#: bookwyrm/templates/feed/feed.html:55 #: bookwyrm/templates/get_started/users.html:6 msgid "Who to follow" msgstr "" -#: bookwyrm/templates/feed/feed_layout.html:5 +#: bookwyrm/templates/feed/feed_layout.html:4 msgid "Updates" msgstr "" -#: bookwyrm/templates/feed/feed_layout.html:11 +#: bookwyrm/templates/feed/feed_layout.html:10 #: bookwyrm/templates/layout.html:59 #: bookwyrm/templates/user/shelf/books_header.html:3 msgid "Your books" msgstr "Deine Bücher" -#: bookwyrm/templates/feed/feed_layout.html:13 +#: bookwyrm/templates/feed/feed_layout.html:12 msgid "There are no books here right now! Try searching for a book to get started" msgstr "Hier sind noch keine Bücher! Versuche nach Büchern zu suchen um loszulegen" -#: bookwyrm/templates/feed/feed_layout.html:24 -#: bookwyrm/templates/user/shelf/shelf.html:28 +#: bookwyrm/templates/feed/feed_layout.html:23 +#: bookwyrm/templates/user/shelf/shelf.html:29 #, fuzzy #| msgid "Read" msgid "To Read" msgstr "Auf der Leseliste" -#: bookwyrm/templates/feed/feed_layout.html:25 -#: bookwyrm/templates/user/shelf/shelf.html:28 +#: bookwyrm/templates/feed/feed_layout.html:24 +#: bookwyrm/templates/user/shelf/shelf.html:29 #, fuzzy #| msgid "Start reading" msgid "Currently Reading" msgstr "Gerade lesend" -#: bookwyrm/templates/feed/feed_layout.html:26 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:11 -#: bookwyrm/templates/user/shelf/shelf.html:28 +#: bookwyrm/templates/feed/feed_layout.html:25 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:13 +#: bookwyrm/templates/user/shelf/shelf.html:29 msgid "Read" msgstr "Gelesen" -#: bookwyrm/templates/feed/feed_layout.html:88 bookwyrm/templates/goal.html:26 +#: bookwyrm/templates/feed/feed_layout.html:87 bookwyrm/templates/goal.html:26 #: bookwyrm/templates/snippets/goal_card.html:6 #, python-format msgid "%(year)s Reading Goal" @@ -980,7 +1008,7 @@ msgid "What are you reading?" msgstr "Zu lesen angefangen" #: bookwyrm/templates/get_started/books.html:9 -#: bookwyrm/templates/lists/list.html:119 +#: bookwyrm/templates/lists/list.html:120 msgid "Search for a book" msgstr "Nach einem Buch suchen" @@ -1000,7 +1028,7 @@ msgstr "" #: bookwyrm/templates/get_started/users.html:18 #: bookwyrm/templates/get_started/users.html:19 #: bookwyrm/templates/layout.html:38 bookwyrm/templates/layout.html:39 -#: bookwyrm/templates/lists/list.html:123 +#: bookwyrm/templates/lists/list.html:124 #: bookwyrm/templates/search/layout.html:4 #: bookwyrm/templates/search/layout.html:9 msgid "Search" @@ -1019,7 +1047,7 @@ msgid "Popular on %(site_name)s" msgstr "Über %(site_name)s" #: bookwyrm/templates/get_started/books.html:58 -#: bookwyrm/templates/lists/list.html:136 +#: bookwyrm/templates/lists/list.html:137 msgid "No books found" msgstr "Keine Bücher gefunden" @@ -1152,95 +1180,95 @@ msgstr "Bücher importieren" msgid "Data source:" msgstr "Datenquelle" -#: bookwyrm/templates/import.html:29 +#: bookwyrm/templates/import.html:32 msgid "Data file:" msgstr "" -#: bookwyrm/templates/import.html:37 +#: bookwyrm/templates/import.html:40 msgid "Include reviews" msgstr "Bewertungen importieren" -#: bookwyrm/templates/import.html:42 +#: bookwyrm/templates/import.html:45 msgid "Privacy setting for imported reviews:" msgstr "Datenschutzeinstellung für importierte Bewertungen" -#: bookwyrm/templates/import.html:48 +#: bookwyrm/templates/import.html:51 #: bookwyrm/templates/settings/server_blocklist.html:64 msgid "Import" msgstr "Importieren" -#: bookwyrm/templates/import.html:53 +#: bookwyrm/templates/import.html:56 msgid "Recent Imports" msgstr "Aktuelle Importe" -#: bookwyrm/templates/import.html:55 +#: bookwyrm/templates/import.html:58 msgid "No recent imports" msgstr "Keine aktuellen Importe" -#: bookwyrm/templates/import_status.html:6 -#: bookwyrm/templates/import_status.html:10 +#: bookwyrm/templates/import_status.html:5 +#: bookwyrm/templates/import_status.html:9 msgid "Import Status" msgstr "Importstatus" -#: bookwyrm/templates/import_status.html:13 +#: bookwyrm/templates/import_status.html:12 msgid "Import started:" msgstr "Import gestartet:" -#: bookwyrm/templates/import_status.html:17 +#: bookwyrm/templates/import_status.html:16 msgid "Import completed:" msgstr "Import abgeschlossen:" -#: bookwyrm/templates/import_status.html:20 +#: bookwyrm/templates/import_status.html:19 msgid "TASK FAILED" msgstr "AUFGABE GESCHEITERT" -#: bookwyrm/templates/import_status.html:26 +#: bookwyrm/templates/import_status.html:25 msgid "Import still in progress." msgstr "Import läuft noch." -#: bookwyrm/templates/import_status.html:28 +#: bookwyrm/templates/import_status.html:27 msgid "(Hit reload to update!)" msgstr "(Aktualisiere für ein Update!)" -#: bookwyrm/templates/import_status.html:35 +#: bookwyrm/templates/import_status.html:34 msgid "Failed to load" msgstr "Laden fehlgeschlagen" -#: bookwyrm/templates/import_status.html:44 +#: bookwyrm/templates/import_status.html:43 #, python-format msgid "Jump to the bottom of the list to select the %(failed_count)s items which failed to import." msgstr "Zum Ende der Liste springen, um die %(failed_count)s Einträge, deren Import fehlschlug, auszuwählen." -#: bookwyrm/templates/import_status.html:79 +#: bookwyrm/templates/import_status.html:78 msgid "Select all" msgstr "Alle auswählen" -#: bookwyrm/templates/import_status.html:82 +#: bookwyrm/templates/import_status.html:81 msgid "Retry items" msgstr "Punkte erneut versuchen" -#: bookwyrm/templates/import_status.html:108 +#: bookwyrm/templates/import_status.html:107 msgid "Successfully imported" msgstr "Erfolgreich importiert" -#: bookwyrm/templates/import_status.html:112 +#: bookwyrm/templates/import_status.html:111 msgid "Book" msgstr "Buch" -#: bookwyrm/templates/import_status.html:115 -#: bookwyrm/templates/snippets/create_status_form.html:10 -#: bookwyrm/templates/user/shelf/shelf.html:77 -#: bookwyrm/templates/user/shelf/shelf.html:95 +#: bookwyrm/templates/import_status.html:114 +#: bookwyrm/templates/snippets/create_status_form.html:13 +#: bookwyrm/templates/user/shelf/shelf.html:78 +#: bookwyrm/templates/user/shelf/shelf.html:98 msgid "Title" msgstr "Titel" -#: bookwyrm/templates/import_status.html:118 -#: bookwyrm/templates/user/shelf/shelf.html:78 -#: bookwyrm/templates/user/shelf/shelf.html:98 +#: bookwyrm/templates/import_status.html:117 +#: bookwyrm/templates/user/shelf/shelf.html:79 +#: bookwyrm/templates/user/shelf/shelf.html:101 msgid "Author" msgstr "Autor*in" -#: bookwyrm/templates/import_status.html:141 +#: bookwyrm/templates/import_status.html:140 msgid "Imported" msgstr "Importiert" @@ -1351,7 +1379,8 @@ msgid "Support %(site_name)s on % msgstr "%(site_name)s auf %(support_title)s unterstützen" #: bookwyrm/templates/layout.html:217 -msgid "BookWyrm is open source software. You can contribute or report issues on GitHub." +#| msgid "BookWyrm is open source software. You can contribute or report issues on GitHub." +msgid "BookWyrm's source code is freely available. You can contribute or report issues on GitHub." msgstr "BookWyrm ist open source Software. Du kannst dich auf GitHub beteiligen oder etwas melden." #: bookwyrm/templates/lists/create_form.html:5 @@ -1396,7 +1425,7 @@ msgid "Discard" msgstr "Ablehnen" #: bookwyrm/templates/lists/edit_form.html:5 -#: bookwyrm/templates/lists/list_layout.html:18 +#: bookwyrm/templates/lists/list_layout.html:17 msgid "Edit List" msgstr "Liste bearbeiten" @@ -1430,77 +1459,77 @@ msgstr "Offen" msgid "Anyone can add books to this list" msgstr "Alle können Bücher hinzufügen" -#: bookwyrm/templates/lists/list.html:19 +#: bookwyrm/templates/lists/list.html:20 msgid "You successfully suggested a book for this list!" msgstr "" -#: bookwyrm/templates/lists/list.html:21 +#: bookwyrm/templates/lists/list.html:22 #, fuzzy #| msgid "Anyone can add books to this list" msgid "You successfully added a book to this list!" msgstr "Alle können Bücher hinzufügen" -#: bookwyrm/templates/lists/list.html:27 +#: bookwyrm/templates/lists/list.html:28 msgid "This list is currently empty" msgstr "Diese Liste ist momentan leer" -#: bookwyrm/templates/lists/list.html:64 +#: bookwyrm/templates/lists/list.html:65 #, fuzzy, python-format #| msgid "Direct Messages with %(username)s" msgid "Added by %(username)s" msgstr "Direktnachrichten mit %(username)s" -#: bookwyrm/templates/lists/list.html:76 +#: bookwyrm/templates/lists/list.html:77 #, fuzzy #| msgid "Started" msgid "Set" msgstr "Gestartet" -#: bookwyrm/templates/lists/list.html:79 +#: bookwyrm/templates/lists/list.html:80 #, fuzzy #| msgid "List curation:" msgid "List position" msgstr "Listenkuratierung:" -#: bookwyrm/templates/lists/list.html:85 +#: bookwyrm/templates/lists/list.html:86 #: bookwyrm/templates/snippets/shelf_selector.html:26 msgid "Remove" msgstr "Entfernen" -#: bookwyrm/templates/lists/list.html:98 bookwyrm/templates/lists/list.html:110 +#: bookwyrm/templates/lists/list.html:99 bookwyrm/templates/lists/list.html:111 #, fuzzy #| msgid "Your Lists" msgid "Sort List" msgstr "Deine Listen" -#: bookwyrm/templates/lists/list.html:104 +#: bookwyrm/templates/lists/list.html:105 #, fuzzy #| msgid "List curation:" msgid "Direction" msgstr "Listenkuratierung:" -#: bookwyrm/templates/lists/list.html:115 +#: bookwyrm/templates/lists/list.html:116 msgid "Add Books" msgstr "Bücher hinzufügen" -#: bookwyrm/templates/lists/list.html:115 +#: bookwyrm/templates/lists/list.html:116 msgid "Suggest Books" msgstr "Bücher vorschlagen" -#: bookwyrm/templates/lists/list.html:124 +#: bookwyrm/templates/lists/list.html:125 msgid "search" msgstr "suchen" -#: bookwyrm/templates/lists/list.html:130 +#: bookwyrm/templates/lists/list.html:131 msgid "Clear search" msgstr "Suche leeren" -#: bookwyrm/templates/lists/list.html:135 +#: bookwyrm/templates/lists/list.html:136 #, python-format msgid "No books found matching the query \"%(query)s\"" msgstr "Keine passenden Bücher zu \"%(query)s\" gefunden" -#: bookwyrm/templates/lists/list.html:163 +#: bookwyrm/templates/lists/list.html:164 msgid "Suggest" msgstr "Vorschlagen" @@ -1525,38 +1554,38 @@ msgstr "Kontaktiere für eine Einladung eine*n Admin" msgid "More about this site" msgstr "Mehr über diese Seite" +#: bookwyrm/templates/moderation/report.html:5 #: bookwyrm/templates/moderation/report.html:6 -#: bookwyrm/templates/moderation/report.html:7 #: bookwyrm/templates/moderation/report_preview.html:6 #, python-format msgid "Report #%(report_id)s: %(username)s" msgstr "Meldung #%(report_id)s: %(username)s" -#: bookwyrm/templates/moderation/report.html:11 +#: bookwyrm/templates/moderation/report.html:10 msgid "Back to reports" msgstr "Zurück zu den Meldungen" -#: bookwyrm/templates/moderation/report.html:23 +#: bookwyrm/templates/moderation/report.html:22 msgid "Moderator Comments" msgstr "Moderator:innenkommentare" -#: bookwyrm/templates/moderation/report.html:41 +#: bookwyrm/templates/moderation/report.html:40 #: bookwyrm/templates/snippets/create_status.html:28 -#: bookwyrm/templates/snippets/create_status_form.html:63 +#: bookwyrm/templates/snippets/create_status_form.html:66 msgid "Comment" msgstr "Kommentieren" -#: bookwyrm/templates/moderation/report.html:46 +#: bookwyrm/templates/moderation/report.html:45 #, fuzzy #| msgid "Delete status" msgid "Reported statuses" msgstr "Post löschen" -#: bookwyrm/templates/moderation/report.html:48 +#: bookwyrm/templates/moderation/report.html:47 msgid "No statuses reported" msgstr "Keine Beiträge gemeldet" -#: bookwyrm/templates/moderation/report.html:54 +#: bookwyrm/templates/moderation/report.html:53 #, fuzzy #| msgid "Statuses has been deleted" msgid "Status has been deleted" @@ -1848,7 +1877,7 @@ msgstr "Suche" #: bookwyrm/templates/search/layout.html:21 #: bookwyrm/templates/search/layout.html:42 -#: bookwyrm/templates/user/layout.html:73 +#: bookwyrm/templates/user/layout.html:74 #, fuzzy #| msgid "Book" msgid "Books" @@ -1925,7 +1954,7 @@ msgid "Add server" msgstr "Cover hinzufügen" #: bookwyrm/templates/settings/edit_server.html:7 -#: bookwyrm/templates/settings/federated_server.html:12 +#: bookwyrm/templates/settings/federated_server.html:13 #: bookwyrm/templates/settings/server_blocklist.html:7 #, fuzzy #| msgid "Back to reports" @@ -1946,7 +1975,7 @@ msgid "Instance:" msgstr "Instanzname" #: bookwyrm/templates/settings/edit_server.html:37 -#: bookwyrm/templates/settings/federated_server.html:29 +#: bookwyrm/templates/settings/federated_server.html:30 #: bookwyrm/templates/user_admin/user_info.html:34 #, fuzzy #| msgid "Import Status" @@ -1954,20 +1983,20 @@ msgid "Status:" msgstr "Importstatus" #: bookwyrm/templates/settings/edit_server.html:41 -#: bookwyrm/templates/settings/federated_server.html:9 +#: bookwyrm/templates/settings/federated_server.html:10 #, fuzzy #| msgid "Blocked Users" msgid "Blocked" msgstr "Blockierte Nutzer*innen" #: bookwyrm/templates/settings/edit_server.html:48 -#: bookwyrm/templates/settings/federated_server.html:21 +#: bookwyrm/templates/settings/federated_server.html:22 #: bookwyrm/templates/user_admin/user_info.html:26 msgid "Software:" msgstr "" #: bookwyrm/templates/settings/edit_server.html:55 -#: bookwyrm/templates/settings/federated_server.html:25 +#: bookwyrm/templates/settings/federated_server.html:26 #: bookwyrm/templates/user_admin/user_info.html:30 #, fuzzy #| msgid "Description:" @@ -1978,81 +2007,81 @@ msgstr "Beschreibung:" msgid "Notes:" msgstr "" -#: bookwyrm/templates/settings/federated_server.html:18 +#: bookwyrm/templates/settings/federated_server.html:19 msgid "Details" msgstr "" -#: bookwyrm/templates/settings/federated_server.html:36 -#: bookwyrm/templates/user/layout.html:55 +#: bookwyrm/templates/settings/federated_server.html:37 +#: bookwyrm/templates/user/layout.html:56 msgid "Activity" msgstr "Aktivität" -#: bookwyrm/templates/settings/federated_server.html:39 +#: bookwyrm/templates/settings/federated_server.html:40 msgid "Users:" msgstr "" -#: bookwyrm/templates/settings/federated_server.html:42 -#: bookwyrm/templates/settings/federated_server.html:49 +#: bookwyrm/templates/settings/federated_server.html:43 +#: bookwyrm/templates/settings/federated_server.html:50 msgid "View all" msgstr "" -#: bookwyrm/templates/settings/federated_server.html:46 +#: bookwyrm/templates/settings/federated_server.html:47 #, fuzzy #| msgid "Recent Imports" msgid "Reports:" msgstr "Aktuelle Importe" -#: bookwyrm/templates/settings/federated_server.html:53 +#: bookwyrm/templates/settings/federated_server.html:54 #, fuzzy #| msgid "followed you" msgid "Followed by us:" msgstr "folgt dir" -#: bookwyrm/templates/settings/federated_server.html:59 +#: bookwyrm/templates/settings/federated_server.html:60 #, fuzzy #| msgid "followed you" msgid "Followed by them:" msgstr "folgt dir" -#: bookwyrm/templates/settings/federated_server.html:65 +#: bookwyrm/templates/settings/federated_server.html:66 #, fuzzy #| msgid "Blocked Users" msgid "Blocked by us:" msgstr "Blockierte Nutzer*innen" -#: bookwyrm/templates/settings/federated_server.html:77 +#: bookwyrm/templates/settings/federated_server.html:78 #: bookwyrm/templates/user_admin/user_info.html:39 msgid "Notes" msgstr "" -#: bookwyrm/templates/settings/federated_server.html:80 +#: bookwyrm/templates/settings/federated_server.html:81 #, fuzzy #| msgid "Edit Book" msgid "Edit" msgstr "Buch editieren" -#: bookwyrm/templates/settings/federated_server.html:100 +#: bookwyrm/templates/settings/federated_server.html:101 #: bookwyrm/templates/user_admin/user_moderation_actions.html:3 #, fuzzy #| msgid "Notifications" msgid "Actions" msgstr "Benachrichtigungen" -#: bookwyrm/templates/settings/federated_server.html:104 +#: bookwyrm/templates/settings/federated_server.html:105 #: bookwyrm/templates/snippets/block_button.html:5 msgid "Block" msgstr "" -#: bookwyrm/templates/settings/federated_server.html:105 +#: bookwyrm/templates/settings/federated_server.html:106 msgid "All users from this instance will be deactivated." msgstr "" -#: bookwyrm/templates/settings/federated_server.html:110 +#: bookwyrm/templates/settings/federated_server.html:111 #: bookwyrm/templates/snippets/block_button.html:10 msgid "Un-block" msgstr "" -#: bookwyrm/templates/settings/federated_server.html:111 +#: bookwyrm/templates/settings/federated_server.html:112 msgid "All users from this instance will be re-activated." msgstr "" @@ -2281,7 +2310,7 @@ msgstr "Folgeanfragen" msgid "Registration closed text:" msgstr "Registrierungen geschlossen text" -#: bookwyrm/templates/snippets/book_cover.html:32 +#: bookwyrm/templates/snippets/book_cover.html:31 #, fuzzy #| msgid "Add cover" msgid "No cover" @@ -2292,15 +2321,15 @@ msgstr "Cover hinzufügen" msgid "%(title)s by " msgstr "%(title)s von " -#: bookwyrm/templates/snippets/boost_button.html:8 #: bookwyrm/templates/snippets/boost_button.html:9 +#: bookwyrm/templates/snippets/boost_button.html:10 #, fuzzy #| msgid "boosted" msgid "Boost" msgstr "teilt" -#: bookwyrm/templates/snippets/boost_button.html:15 #: bookwyrm/templates/snippets/boost_button.html:16 +#: bookwyrm/templates/snippets/boost_button.html:17 #, fuzzy #| msgid "Un-boost status" msgid "Un-boost" @@ -2322,72 +2351,72 @@ msgstr "Bewerten" msgid "Quote" msgstr "Zitieren" -#: bookwyrm/templates/snippets/create_status_form.html:20 +#: bookwyrm/templates/snippets/create_status_form.html:23 #, fuzzy #| msgid "Comment" msgid "Comment:" msgstr "Kommentieren" -#: bookwyrm/templates/snippets/create_status_form.html:22 +#: bookwyrm/templates/snippets/create_status_form.html:25 #, fuzzy #| msgid "Quote" msgid "Quote:" msgstr "Zitieren" -#: bookwyrm/templates/snippets/create_status_form.html:24 +#: bookwyrm/templates/snippets/create_status_form.html:27 #, fuzzy #| msgid "Review" msgid "Review:" msgstr "Bewerten" -#: bookwyrm/templates/snippets/create_status_form.html:53 -#: bookwyrm/templates/snippets/status/layout.html:30 +#: bookwyrm/templates/snippets/create_status_form.html:56 +#: bookwyrm/templates/snippets/status/layout.html:29 +#: bookwyrm/templates/snippets/status/layout.html:47 #: bookwyrm/templates/snippets/status/layout.html:48 -#: bookwyrm/templates/snippets/status/layout.html:49 msgid "Reply" msgstr "Antwort" -#: bookwyrm/templates/snippets/create_status_form.html:53 +#: bookwyrm/templates/snippets/create_status_form.html:56 #, fuzzy #| msgid "Footer Content" msgid "Content" msgstr "Inhalt des Footers" -#: bookwyrm/templates/snippets/create_status_form.html:77 +#: bookwyrm/templates/snippets/create_status_form.html:80 #: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:16 msgid "Progress:" msgstr "Fortschritt:" -#: bookwyrm/templates/snippets/create_status_form.html:85 -#: bookwyrm/templates/snippets/readthrough_form.html:26 +#: bookwyrm/templates/snippets/create_status_form.html:88 +#: bookwyrm/templates/snippets/readthrough_form.html:22 #: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:30 msgid "pages" msgstr "Seiten" -#: bookwyrm/templates/snippets/create_status_form.html:86 -#: bookwyrm/templates/snippets/readthrough_form.html:27 +#: bookwyrm/templates/snippets/create_status_form.html:89 +#: bookwyrm/templates/snippets/readthrough_form.html:23 #: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:31 msgid "percent" msgstr "Prozent" -#: bookwyrm/templates/snippets/create_status_form.html:92 +#: bookwyrm/templates/snippets/create_status_form.html:95 #: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:36 #, python-format msgid "of %(pages)s pages" msgstr "von %(pages)s Seiten" -#: bookwyrm/templates/snippets/create_status_form.html:107 +#: bookwyrm/templates/snippets/create_status_form.html:110 msgid "Include spoiler alert" msgstr "Spoileralarm aktivieren" -#: bookwyrm/templates/snippets/create_status_form.html:114 +#: bookwyrm/templates/snippets/create_status_form.html:117 #: bookwyrm/templates/snippets/privacy-icons.html:15 #: bookwyrm/templates/snippets/privacy-icons.html:16 #: bookwyrm/templates/snippets/privacy_select.html:19 msgid "Private" msgstr "Privat" -#: bookwyrm/templates/snippets/create_status_form.html:125 +#: bookwyrm/templates/snippets/create_status_form.html:128 msgid "Post" msgstr "Absenden" @@ -2401,17 +2430,17 @@ msgid "You are deleting this readthrough and its %(count)s associated progress u msgstr "Du löscht diesen Leseforschritt und %(count)s zugehörige Fortschrittsupdates." #: bookwyrm/templates/snippets/delete_readthrough_modal.html:15 -#: bookwyrm/templates/snippets/follow_request_buttons.html:13 +#: bookwyrm/templates/snippets/follow_request_buttons.html:12 msgid "Delete" msgstr "Löschen" -#: bookwyrm/templates/snippets/fav_button.html:7 #: bookwyrm/templates/snippets/fav_button.html:9 +#: bookwyrm/templates/snippets/fav_button.html:11 msgid "Like" msgstr "" -#: bookwyrm/templates/snippets/fav_button.html:15 -#: bookwyrm/templates/snippets/fav_button.html:16 +#: bookwyrm/templates/snippets/fav_button.html:17 +#: bookwyrm/templates/snippets/fav_button.html:18 #, fuzzy #| msgid "Un-like status" msgid "Un-like" @@ -2451,11 +2480,11 @@ msgstr "Folgeanfrage senden" msgid "Unfollow" msgstr "Entfolgen" -#: bookwyrm/templates/snippets/follow_request_buttons.html:8 +#: bookwyrm/templates/snippets/follow_request_buttons.html:7 msgid "Accept" msgstr "Annehmen" -#: bookwyrm/templates/snippets/form_rate_stars.html:20 +#: bookwyrm/templates/snippets/form_rate_stars.html:19 #: bookwyrm/templates/snippets/stars.html:13 msgid "No rating" msgstr "Kein Rating" @@ -2505,8 +2534,8 @@ msgid "Goal privacy:" msgstr "Sichtbarkeit des Ziels" #: bookwyrm/templates/snippets/goal_form.html:26 -#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:45 -#: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:33 +#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:37 +#: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:29 #: bookwyrm/templates/snippets/shelve_button/want_to_read_modal.html:20 msgid "Post to feed" msgstr "Posten" @@ -2619,12 +2648,12 @@ msgstr "Diese Lesedaten löschen" msgid "Started reading" msgstr "Zu lesen angefangen" -#: bookwyrm/templates/snippets/readthrough_form.html:18 +#: bookwyrm/templates/snippets/readthrough_form.html:14 msgid "Progress" msgstr "Fortschritt" -#: bookwyrm/templates/snippets/readthrough_form.html:34 -#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:29 +#: bookwyrm/templates/snippets/readthrough_form.html:30 +#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:25 msgid "Finished reading" msgstr "Lesen abgeschlossen" @@ -2632,29 +2661,29 @@ msgstr "Lesen abgeschlossen" msgid "Sign Up" msgstr "Registrieren" -#: bookwyrm/templates/snippets/report_button.html:5 +#: bookwyrm/templates/snippets/report_button.html:6 #, fuzzy #| msgid "Import" msgid "Report" msgstr "Importieren" #: bookwyrm/templates/snippets/rss_title.html:5 -#: bookwyrm/templates/snippets/status/status_header.html:34 +#: bookwyrm/templates/snippets/status/status_header.html:35 msgid "rated" msgstr "" #: bookwyrm/templates/snippets/rss_title.html:7 -#: bookwyrm/templates/snippets/status/status_header.html:36 +#: bookwyrm/templates/snippets/status/status_header.html:37 msgid "reviewed" msgstr "bewertete" #: bookwyrm/templates/snippets/rss_title.html:9 -#: bookwyrm/templates/snippets/status/status_header.html:38 +#: bookwyrm/templates/snippets/status/status_header.html:39 msgid "commented on" msgstr "kommentierte" #: bookwyrm/templates/snippets/rss_title.html:11 -#: bookwyrm/templates/snippets/status/status_header.html:40 +#: bookwyrm/templates/snippets/status/status_header.html:41 msgid "quoted" msgstr "zitierte" @@ -2674,7 +2703,7 @@ msgid "Finish \"%(book_title)s\"" msgstr "\"%(book_title)s\" abschließen" #: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:5 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:34 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:36 #, fuzzy #| msgid "Progress" msgid "Update progress" @@ -2684,20 +2713,20 @@ msgstr "Fortschritt" msgid "More shelves" msgstr "Mehr Regale" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:8 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:10 msgid "Start reading" msgstr "Zu lesen beginnen" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:13 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:15 msgid "Finish reading" msgstr "Lesen abschließen" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:16 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:18 #: bookwyrm/templates/snippets/shelve_button/want_to_read_modal.html:26 msgid "Want to read" msgstr "Auf Leseliste setzen" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:45 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:47 #, fuzzy, python-format #| msgid "Lists: %(username)s" msgid "Remove from %(name)s" @@ -2713,40 +2742,40 @@ msgstr "\"%(book_title)s\" beginnen" msgid "Want to Read \"%(book_title)s\"" msgstr "\"%(book_title)s\" auf Leseliste setzen" -#: bookwyrm/templates/snippets/status/content_status.html:70 -#: bookwyrm/templates/snippets/trimmed_text.html:14 +#: bookwyrm/templates/snippets/status/content_status.html:71 +#: bookwyrm/templates/snippets/trimmed_text.html:15 msgid "Show more" msgstr "Mehr anzeigen" -#: bookwyrm/templates/snippets/status/content_status.html:85 -#: bookwyrm/templates/snippets/trimmed_text.html:29 +#: bookwyrm/templates/snippets/status/content_status.html:86 +#: bookwyrm/templates/snippets/trimmed_text.html:30 msgid "Show less" msgstr "Weniger anzeigen" -#: bookwyrm/templates/snippets/status/content_status.html:115 +#: bookwyrm/templates/snippets/status/content_status.html:116 msgid "Open image in new window" msgstr "Bild in neuem Fenster öffnen" -#: bookwyrm/templates/snippets/status/layout.html:22 +#: bookwyrm/templates/snippets/status/layout.html:21 #: bookwyrm/templates/snippets/status/status_options.html:17 msgid "Delete status" msgstr "Post löschen" +#: bookwyrm/templates/snippets/status/layout.html:51 #: bookwyrm/templates/snippets/status/layout.html:52 -#: bookwyrm/templates/snippets/status/layout.html:53 msgid "Boost status" msgstr "Status teilen" +#: bookwyrm/templates/snippets/status/layout.html:55 #: bookwyrm/templates/snippets/status/layout.html:56 -#: bookwyrm/templates/snippets/status/layout.html:57 msgid "Like status" msgstr "Status favorisieren" -#: bookwyrm/templates/snippets/status/status.html:9 +#: bookwyrm/templates/snippets/status/status.html:10 msgid "boosted" msgstr "teilt" -#: bookwyrm/templates/snippets/status/status_header.html:44 +#: bookwyrm/templates/snippets/status/status_header.html:45 #, fuzzy, python-format #| msgid "replied to your status" msgid "replied to %(username)s's status" @@ -2785,15 +2814,15 @@ msgstr "Zu lesen angefangen" msgid "Sorted descending" msgstr "Zu lesen angefangen" -#: bookwyrm/templates/user/layout.html:12 bookwyrm/templates/user/user.html:10 +#: bookwyrm/templates/user/layout.html:13 bookwyrm/templates/user/user.html:10 msgid "User Profile" msgstr "Benutzerprofil" -#: bookwyrm/templates/user/layout.html:36 +#: bookwyrm/templates/user/layout.html:37 msgid "Follow Requests" msgstr "Folgeanfragen" -#: bookwyrm/templates/user/layout.html:61 +#: bookwyrm/templates/user/layout.html:62 msgid "Reading Goal" msgstr "Leseziel" @@ -2840,40 +2869,40 @@ msgstr "Regal bearbeiten" msgid "Update shelf" msgstr "Regal aktualisieren" -#: bookwyrm/templates/user/shelf/shelf.html:24 bookwyrm/views/shelf.py:48 +#: bookwyrm/templates/user/shelf/shelf.html:25 bookwyrm/views/shelf.py:51 #, fuzzy #| msgid "books" msgid "All books" msgstr "Bücher" -#: bookwyrm/templates/user/shelf/shelf.html:37 +#: bookwyrm/templates/user/shelf/shelf.html:38 msgid "Create shelf" msgstr "Regal erstellen" -#: bookwyrm/templates/user/shelf/shelf.html:60 +#: bookwyrm/templates/user/shelf/shelf.html:61 msgid "Edit shelf" msgstr "Regal bearbeiten" -#: bookwyrm/templates/user/shelf/shelf.html:79 -#: bookwyrm/templates/user/shelf/shelf.html:101 +#: bookwyrm/templates/user/shelf/shelf.html:80 +#: bookwyrm/templates/user/shelf/shelf.html:104 msgid "Shelved" msgstr "Ins Regal gestellt" -#: bookwyrm/templates/user/shelf/shelf.html:80 -#: bookwyrm/templates/user/shelf/shelf.html:105 +#: bookwyrm/templates/user/shelf/shelf.html:81 +#: bookwyrm/templates/user/shelf/shelf.html:108 msgid "Started" msgstr "Gestartet" -#: bookwyrm/templates/user/shelf/shelf.html:81 -#: bookwyrm/templates/user/shelf/shelf.html:108 +#: bookwyrm/templates/user/shelf/shelf.html:82 +#: bookwyrm/templates/user/shelf/shelf.html:111 msgid "Finished" msgstr "Abgeschlossen" -#: bookwyrm/templates/user/shelf/shelf.html:134 +#: bookwyrm/templates/user/shelf/shelf.html:137 msgid "This shelf is empty." msgstr "Dieses Regal ist leer." -#: bookwyrm/templates/user/shelf/shelf.html:140 +#: bookwyrm/templates/user/shelf/shelf.html:143 msgid "Delete shelf" msgstr "Regal löschen" @@ -2903,24 +2932,24 @@ msgstr "" msgid "No activities yet!" msgstr "Noch keine Aktivitäten!" -#: bookwyrm/templates/user/user_preview.html:14 +#: bookwyrm/templates/user/user_preview.html:15 #, python-format msgid "Joined %(date)s" msgstr "Beigetreten %(date)s" -#: bookwyrm/templates/user/user_preview.html:18 +#: bookwyrm/templates/user/user_preview.html:19 #, python-format msgid "%(counter)s follower" msgid_plural "%(counter)s followers" msgstr[0] "%(counter)s Folgende*r" msgstr[1] "%(counter)s Folgende" -#: bookwyrm/templates/user/user_preview.html:19 +#: bookwyrm/templates/user/user_preview.html:20 #, python-format msgid "%(counter)s following" msgstr "Folgt %(counter)s" -#: bookwyrm/templates/user/user_preview.html:25 +#: bookwyrm/templates/user/user_preview.html:26 #, fuzzy, python-format #| msgid "followed you" msgid "%(mutuals_display)s follower you follow" @@ -2928,7 +2957,7 @@ msgid_plural "%(mutuals_display)s followers you follow" msgstr[0] "folgt dir" msgstr[1] "folgt dir" -#: bookwyrm/templates/user_admin/user.html:11 +#: bookwyrm/templates/user_admin/user.html:9 #, fuzzy #| msgid "Back to reports" msgid "Back to users" @@ -3009,17 +3038,22 @@ msgstr "" msgid "Access level:" msgstr "" -#: bookwyrm/views/password.py:32 +#: bookwyrm/views/password.py:30 bookwyrm/views/password.py:35 #, fuzzy #| msgid "A user with that username already exists." msgid "No user with that email address was found." msgstr "Dieser Benutzename ist bereits vergeben." -#: bookwyrm/views/password.py:41 +#: bookwyrm/views/password.py:44 #, python-format msgid "A password reset link sent to %s" msgstr "" +#, fuzzy +#~| msgid "Book" +#~ msgid "BookWyrm\\" +#~ msgstr "Buch" + #, fuzzy #~| msgid "Show more" #~ msgid "Show" diff --git a/locale/en_US/LC_MESSAGES/django.po b/locale/en_US/LC_MESSAGES/django.po index dac6e2539..a27ae380d 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: 2021-05-10 13:23-0700\n" +"POT-Creation-Date: 2021-05-14 15:12-0700\n" "PO-Revision-Date: 2021-02-28 17:19-0800\n" "Last-Translator: Mouse Reeve \n" "Language-Team: English \n" @@ -55,13 +55,13 @@ msgstr "" msgid "Book Title" msgstr "" -#: bookwyrm/forms.py:295 bookwyrm/templates/snippets/create_status_form.html:31 -#: bookwyrm/templates/user/shelf/shelf.html:82 -#: bookwyrm/templates/user/shelf/shelf.html:112 +#: bookwyrm/forms.py:295 bookwyrm/templates/snippets/create_status_form.html:34 +#: bookwyrm/templates/user/shelf/shelf.html:84 +#: bookwyrm/templates/user/shelf/shelf.html:115 msgid "Rating" msgstr "" -#: bookwyrm/forms.py:297 bookwyrm/templates/lists/list.html:100 +#: bookwyrm/forms.py:297 bookwyrm/templates/lists/list.html:101 msgid "Sort By" msgstr "" @@ -131,19 +131,149 @@ msgstr "" msgid "Something went wrong! Sorry about that." msgstr "" -#: bookwyrm/templates/author.html:16 bookwyrm/templates/author.html:17 +#: bookwyrm/templates/author/author.html:17 +#: bookwyrm/templates/author/author.html:18 msgid "Edit Author" msgstr "" -#: bookwyrm/templates/author.html:31 +#: bookwyrm/templates/author/author.html:33 +#: bookwyrm/templates/author/edit_author.html:38 +msgid "Aliases:" +msgstr "" + +#: bookwyrm/templates/author/author.html:39 +msgid "Born:" +msgstr "" + +#: bookwyrm/templates/author/author.html:45 +msgid "Died:" +msgstr "" + +#: bookwyrm/templates/author/author.html:52 msgid "Wikipedia" msgstr "" -#: bookwyrm/templates/author.html:36 +#: bookwyrm/templates/author/author.html:56 +#: bookwyrm/templates/book/book.html:81 +msgid "View on OpenLibrary" +msgstr "" + +#: bookwyrm/templates/author/author.html:61 +#: bookwyrm/templates/book/book.html:84 +msgid "View on Inventaire" +msgstr "" + +#: bookwyrm/templates/author/author.html:75 #, python-format msgid "Books by %(name)s" msgstr "" +#: bookwyrm/templates/author/edit_author.html:5 +msgid "Edit Author:" +msgstr "" + +#: bookwyrm/templates/author/edit_author.html:13 +#: bookwyrm/templates/book/edit_book.html:18 +msgid "Added:" +msgstr "" + +#: bookwyrm/templates/author/edit_author.html:14 +#: bookwyrm/templates/book/edit_book.html:19 +msgid "Updated:" +msgstr "" + +#: bookwyrm/templates/author/edit_author.html:15 +#: bookwyrm/templates/book/edit_book.html:20 +msgid "Last edited by:" +msgstr "" + +#: bookwyrm/templates/author/edit_author.html:31 +#: bookwyrm/templates/book/edit_book.html:90 +msgid "Metadata" +msgstr "" + +#: bookwyrm/templates/author/edit_author.html:32 +#: bookwyrm/templates/lists/form.html:8 +#: bookwyrm/templates/user/shelf/create_shelf_form.html:13 +#: bookwyrm/templates/user/shelf/edit_shelf_form.html:14 +msgid "Name:" +msgstr "" + +#: bookwyrm/templates/author/edit_author.html:40 +#: bookwyrm/templates/book/edit_book.html:128 +#: bookwyrm/templates/book/edit_book.html:165 +msgid "Separate multiple values with commas." +msgstr "" + +#: bookwyrm/templates/author/edit_author.html:46 +msgid "Bio:" +msgstr "" + +#: bookwyrm/templates/author/edit_author.html:51 +msgid "Wikipedia link:" +msgstr "" + +#: bookwyrm/templates/author/edit_author.html:57 +msgid "Birth date:" +msgstr "" + +#: bookwyrm/templates/author/edit_author.html:65 +msgid "Death date:" +msgstr "" + +#: bookwyrm/templates/author/edit_author.html:73 +msgid "Author Identifiers" +msgstr "" + +#: bookwyrm/templates/author/edit_author.html:74 +#: bookwyrm/templates/book/edit_book.html:223 +msgid "Openlibrary key:" +msgstr "" + +#: bookwyrm/templates/author/edit_author.html:79 +msgid "Inventaire ID:" +msgstr "" + +#: bookwyrm/templates/author/edit_author.html:84 +msgid "Librarything key:" +msgstr "" + +#: bookwyrm/templates/author/edit_author.html:89 +msgid "Goodreads key:" +msgstr "" + +#: bookwyrm/templates/author/edit_author.html:98 +#: bookwyrm/templates/book/book.html:127 +#: bookwyrm/templates/book/edit_book.html:241 +#: bookwyrm/templates/lists/form.html:42 +#: bookwyrm/templates/preferences/edit_user.html:70 +#: bookwyrm/templates/settings/edit_server.html:68 +#: bookwyrm/templates/settings/federated_server.html:94 +#: bookwyrm/templates/settings/site.html:97 +#: bookwyrm/templates/snippets/readthrough.html:77 +#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:42 +#: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:42 +#: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:34 +#: bookwyrm/templates/user_admin/user_moderation_actions.html:38 +msgid "Save" +msgstr "" + +#: bookwyrm/templates/author/edit_author.html:99 +#: bookwyrm/templates/book/book.html:128 bookwyrm/templates/book/book.html:180 +#: bookwyrm/templates/book/cover_modal.html:32 +#: bookwyrm/templates/book/edit_book.html:242 +#: bookwyrm/templates/moderation/report_modal.html:34 +#: bookwyrm/templates/settings/federated_server.html:95 +#: bookwyrm/templates/snippets/delete_readthrough_modal.html:17 +#: bookwyrm/templates/snippets/goal_form.html:32 +#: bookwyrm/templates/snippets/readthrough.html:78 +#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:43 +#: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:43 +#: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:35 +#: bookwyrm/templates/snippets/shelve_button/want_to_read_modal.html:28 +msgid "Cancel" +msgstr "" + #: bookwyrm/templates/book/book.html:33 #: bookwyrm/templates/discover/large-book.html:25 #: bookwyrm/templates/discover/small-book.html:19 @@ -163,14 +293,6 @@ msgstr "" msgid "Failed to load cover" msgstr "" -#: bookwyrm/templates/book/book.html:81 -msgid "View on OpenLibrary" -msgstr "" - -#: bookwyrm/templates/book/book.html:84 -msgid "View on Inventaire" -msgstr "" - #: bookwyrm/templates/book/book.html:104 #, python-format msgid "(%(review_count)s review)" @@ -188,37 +310,6 @@ msgstr "" msgid "Description:" msgstr "" -#: bookwyrm/templates/book/book.html:127 -#: bookwyrm/templates/book/edit_book.html:249 -#: bookwyrm/templates/edit_author.html:78 bookwyrm/templates/lists/form.html:42 -#: bookwyrm/templates/preferences/edit_user.html:70 -#: bookwyrm/templates/settings/edit_server.html:68 -#: bookwyrm/templates/settings/federated_server.html:93 -#: bookwyrm/templates/settings/site.html:97 -#: bookwyrm/templates/snippets/readthrough.html:77 -#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:50 -#: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:42 -#: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:38 -#: bookwyrm/templates/user_admin/user_moderation_actions.html:38 -msgid "Save" -msgstr "" - -#: bookwyrm/templates/book/book.html:128 bookwyrm/templates/book/book.html:180 -#: bookwyrm/templates/book/cover_modal.html:32 -#: bookwyrm/templates/book/edit_book.html:250 -#: bookwyrm/templates/edit_author.html:79 -#: bookwyrm/templates/moderation/report_modal.html:34 -#: bookwyrm/templates/settings/federated_server.html:94 -#: bookwyrm/templates/snippets/delete_readthrough_modal.html:17 -#: bookwyrm/templates/snippets/goal_form.html:32 -#: bookwyrm/templates/snippets/readthrough.html:78 -#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:51 -#: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:43 -#: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:39 -#: bookwyrm/templates/snippets/shelve_button/want_to_read_modal.html:28 -msgid "Cancel" -msgstr "" - #: bookwyrm/templates/book/book.html:137 #, python-format msgid "%(count)s editions" @@ -282,7 +373,7 @@ msgstr "" #: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/search/layout.html:25 #: bookwyrm/templates/search/layout.html:50 -#: bookwyrm/templates/user/layout.html:67 +#: bookwyrm/templates/user/layout.html:68 msgid "Lists" msgstr "" @@ -292,7 +383,7 @@ msgstr "" #: bookwyrm/templates/book/book.html:320 #: bookwyrm/templates/book/cover_modal.html:31 -#: bookwyrm/templates/lists/list.html:163 +#: bookwyrm/templates/lists/list.html:164 msgid "Add" msgstr "" @@ -301,22 +392,22 @@ msgid "ISBN:" msgstr "" #: bookwyrm/templates/book/book_identifiers.html:15 -#: bookwyrm/templates/book/edit_book.html:235 +#: bookwyrm/templates/book/edit_book.html:227 msgid "OCLC Number:" msgstr "" #: bookwyrm/templates/book/book_identifiers.html:22 -#: bookwyrm/templates/book/edit_book.html:239 +#: bookwyrm/templates/book/edit_book.html:231 msgid "ASIN:" msgstr "" #: bookwyrm/templates/book/cover_modal.html:17 -#: bookwyrm/templates/book/edit_book.html:187 +#: bookwyrm/templates/book/edit_book.html:179 msgid "Upload cover:" msgstr "" #: bookwyrm/templates/book/cover_modal.html:23 -#: bookwyrm/templates/book/edit_book.html:193 +#: bookwyrm/templates/book/edit_book.html:185 msgid "Load cover from url:" msgstr "" @@ -331,21 +422,6 @@ msgstr "" msgid "Add Book" msgstr "" -#: bookwyrm/templates/book/edit_book.html:18 -#: bookwyrm/templates/edit_author.html:13 -msgid "Added:" -msgstr "" - -#: bookwyrm/templates/book/edit_book.html:19 -#: bookwyrm/templates/edit_author.html:14 -msgid "Updated:" -msgstr "" - -#: bookwyrm/templates/book/edit_book.html:20 -#: bookwyrm/templates/edit_author.html:15 -msgid "Last edited by:" -msgstr "" - #: bookwyrm/templates/book/edit_book.html:40 msgid "Confirm Book Info" msgstr "" @@ -387,11 +463,6 @@ msgstr "" msgid "Back" msgstr "" -#: bookwyrm/templates/book/edit_book.html:90 -#: bookwyrm/templates/edit_author.html:31 -msgid "Metadata" -msgstr "" - #: bookwyrm/templates/book/edit_book.html:92 msgid "Title:" msgstr "" @@ -412,76 +483,67 @@ msgstr "" msgid "Publisher:" msgstr "" -#: bookwyrm/templates/book/edit_book.html:128 -msgid "Separate multiple publishers with commas." -msgstr "" - #: bookwyrm/templates/book/edit_book.html:135 msgid "First published date:" msgstr "" -#: bookwyrm/templates/book/edit_book.html:147 +#: bookwyrm/templates/book/edit_book.html:143 msgid "Published date:" msgstr "" -#: bookwyrm/templates/book/edit_book.html:160 +#: bookwyrm/templates/book/edit_book.html:152 msgid "Authors" msgstr "" -#: bookwyrm/templates/book/edit_book.html:166 +#: bookwyrm/templates/book/edit_book.html:158 #, python-format msgid "Remove %(name)s" msgstr "" -#: bookwyrm/templates/book/edit_book.html:171 +#: bookwyrm/templates/book/edit_book.html:163 msgid "Add Authors:" msgstr "" -#: bookwyrm/templates/book/edit_book.html:172 +#: bookwyrm/templates/book/edit_book.html:164 msgid "John Doe, Jane Smith" msgstr "" -#: bookwyrm/templates/book/edit_book.html:178 -#: bookwyrm/templates/user/shelf/shelf.html:76 +#: bookwyrm/templates/book/edit_book.html:170 +#: bookwyrm/templates/user/shelf/shelf.html:77 msgid "Cover" msgstr "" -#: bookwyrm/templates/book/edit_book.html:206 +#: bookwyrm/templates/book/edit_book.html:198 msgid "Physical Properties" msgstr "" -#: bookwyrm/templates/book/edit_book.html:207 +#: bookwyrm/templates/book/edit_book.html:199 #: bookwyrm/templates/book/format_filter.html:5 msgid "Format:" msgstr "" -#: bookwyrm/templates/book/edit_book.html:215 +#: bookwyrm/templates/book/edit_book.html:207 msgid "Pages:" msgstr "" -#: bookwyrm/templates/book/edit_book.html:222 +#: bookwyrm/templates/book/edit_book.html:214 msgid "Book Identifiers" msgstr "" -#: bookwyrm/templates/book/edit_book.html:223 +#: bookwyrm/templates/book/edit_book.html:215 msgid "ISBN 13:" msgstr "" -#: bookwyrm/templates/book/edit_book.html:227 +#: bookwyrm/templates/book/edit_book.html:219 msgid "ISBN 10:" msgstr "" -#: bookwyrm/templates/book/edit_book.html:231 -#: bookwyrm/templates/edit_author.html:59 -msgid "Openlibrary key:" -msgstr "" - -#: bookwyrm/templates/book/editions.html:5 +#: bookwyrm/templates/book/editions.html:4 #, python-format msgid "Editions of %(book_title)s" msgstr "" -#: bookwyrm/templates/book/editions.html:9 +#: bookwyrm/templates/book/editions.html:8 #, python-format msgid "Editions of \"%(work_title)s\"" msgstr "" @@ -532,7 +594,7 @@ msgstr "" #: bookwyrm/templates/components/inline_form.html:8 #: bookwyrm/templates/components/modal.html:11 -#: bookwyrm/templates/feed/feed_layout.html:70 +#: bookwyrm/templates/feed/feed_layout.html:69 #: bookwyrm/templates/get_started/layout.html:19 #: bookwyrm/templates/get_started/layout.html:52 #: bookwyrm/templates/search/book.html:32 @@ -587,23 +649,23 @@ msgstr "" msgid "Recently active" msgstr "" -#: bookwyrm/templates/directory/user_card.html:32 +#: bookwyrm/templates/directory/user_card.html:33 msgid "follower you follow" msgid_plural "followers you follow" msgstr[0] "" msgstr[1] "" -#: bookwyrm/templates/directory/user_card.html:39 +#: bookwyrm/templates/directory/user_card.html:40 msgid "book on your shelves" msgid_plural "books on your shelves" msgstr[0] "" msgstr[1] "" -#: bookwyrm/templates/directory/user_card.html:47 +#: bookwyrm/templates/directory/user_card.html:48 msgid "posts" msgstr "" -#: bookwyrm/templates/directory/user_card.html:53 +#: bookwyrm/templates/directory/user_card.html:54 msgid "last active" msgstr "" @@ -689,44 +751,6 @@ msgstr "" msgid "Your Account" msgstr "" -#: bookwyrm/templates/edit_author.html:5 -msgid "Edit Author:" -msgstr "" - -#: bookwyrm/templates/edit_author.html:32 bookwyrm/templates/lists/form.html:8 -#: bookwyrm/templates/user/shelf/create_shelf_form.html:13 -#: bookwyrm/templates/user/shelf/edit_shelf_form.html:14 -msgid "Name:" -msgstr "" - -#: bookwyrm/templates/edit_author.html:37 -msgid "Bio:" -msgstr "" - -#: bookwyrm/templates/edit_author.html:42 -msgid "Wikipedia link:" -msgstr "" - -#: bookwyrm/templates/edit_author.html:47 -msgid "Birth date:" -msgstr "" - -#: bookwyrm/templates/edit_author.html:52 -msgid "Death date:" -msgstr "" - -#: bookwyrm/templates/edit_author.html:58 -msgid "Author Identifiers" -msgstr "" - -#: bookwyrm/templates/edit_author.html:64 -msgid "Librarything key:" -msgstr "" - -#: bookwyrm/templates/edit_author.html:69 -msgid "Goodreads key:" -msgstr "" - #: bookwyrm/templates/email/html_layout.html:15 #: bookwyrm/templates/email/text_layout.html:2 msgid "Hi there," @@ -807,76 +831,76 @@ msgstr "" msgid "You have no messages right now." msgstr "" -#: bookwyrm/templates/feed/feed.html:9 +#: bookwyrm/templates/feed/feed.html:8 msgid "Home Timeline" msgstr "" -#: bookwyrm/templates/feed/feed.html:11 +#: bookwyrm/templates/feed/feed.html:10 msgid "Local Timeline" msgstr "" -#: bookwyrm/templates/feed/feed.html:13 +#: bookwyrm/templates/feed/feed.html:12 msgid "Federated Timeline" msgstr "" -#: bookwyrm/templates/feed/feed.html:19 +#: bookwyrm/templates/feed/feed.html:18 msgid "Home" msgstr "" -#: bookwyrm/templates/feed/feed.html:22 +#: bookwyrm/templates/feed/feed.html:21 msgid "Local" msgstr "" -#: bookwyrm/templates/feed/feed.html:25 +#: bookwyrm/templates/feed/feed.html:24 #: bookwyrm/templates/settings/edit_server.html:40 msgid "Federated" msgstr "" -#: bookwyrm/templates/feed/feed.html:33 +#: bookwyrm/templates/feed/feed.html:32 #, python-format msgid "load 0 unread status(es)" msgstr "" -#: bookwyrm/templates/feed/feed.html:48 +#: bookwyrm/templates/feed/feed.html:47 msgid "There aren't any activities right now! Try following a user to get started" msgstr "" -#: bookwyrm/templates/feed/feed.html:56 +#: bookwyrm/templates/feed/feed.html:55 #: bookwyrm/templates/get_started/users.html:6 msgid "Who to follow" msgstr "" -#: bookwyrm/templates/feed/feed_layout.html:5 +#: bookwyrm/templates/feed/feed_layout.html:4 msgid "Updates" msgstr "" -#: bookwyrm/templates/feed/feed_layout.html:11 +#: bookwyrm/templates/feed/feed_layout.html:10 #: bookwyrm/templates/layout.html:59 #: bookwyrm/templates/user/shelf/books_header.html:3 msgid "Your books" msgstr "" -#: bookwyrm/templates/feed/feed_layout.html:13 +#: bookwyrm/templates/feed/feed_layout.html:12 msgid "There are no books here right now! Try searching for a book to get started" msgstr "" -#: bookwyrm/templates/feed/feed_layout.html:24 -#: bookwyrm/templates/user/shelf/shelf.html:28 +#: bookwyrm/templates/feed/feed_layout.html:23 +#: bookwyrm/templates/user/shelf/shelf.html:29 msgid "To Read" msgstr "" -#: bookwyrm/templates/feed/feed_layout.html:25 -#: bookwyrm/templates/user/shelf/shelf.html:28 +#: bookwyrm/templates/feed/feed_layout.html:24 +#: bookwyrm/templates/user/shelf/shelf.html:29 msgid "Currently Reading" msgstr "" -#: bookwyrm/templates/feed/feed_layout.html:26 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:11 -#: bookwyrm/templates/user/shelf/shelf.html:28 +#: bookwyrm/templates/feed/feed_layout.html:25 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:13 +#: bookwyrm/templates/user/shelf/shelf.html:29 msgid "Read" msgstr "" -#: bookwyrm/templates/feed/feed_layout.html:88 bookwyrm/templates/goal.html:26 +#: bookwyrm/templates/feed/feed_layout.html:87 bookwyrm/templates/goal.html:26 #: bookwyrm/templates/snippets/goal_card.html:6 #, python-format msgid "%(year)s Reading Goal" @@ -906,7 +930,7 @@ msgid "What are you reading?" msgstr "" #: bookwyrm/templates/get_started/books.html:9 -#: bookwyrm/templates/lists/list.html:119 +#: bookwyrm/templates/lists/list.html:120 msgid "Search for a book" msgstr "" @@ -926,7 +950,7 @@ msgstr "" #: bookwyrm/templates/get_started/users.html:18 #: bookwyrm/templates/get_started/users.html:19 #: bookwyrm/templates/layout.html:38 bookwyrm/templates/layout.html:39 -#: bookwyrm/templates/lists/list.html:123 +#: bookwyrm/templates/lists/list.html:124 #: bookwyrm/templates/search/layout.html:4 #: bookwyrm/templates/search/layout.html:9 msgid "Search" @@ -942,7 +966,7 @@ msgid "Popular on %(site_name)s" msgstr "" #: bookwyrm/templates/get_started/books.html:58 -#: bookwyrm/templates/lists/list.html:136 +#: bookwyrm/templates/lists/list.html:137 msgid "No books found" msgstr "" @@ -1062,95 +1086,95 @@ msgstr "" msgid "Data source:" msgstr "" -#: bookwyrm/templates/import.html:29 +#: bookwyrm/templates/import.html:32 msgid "Data file:" msgstr "" -#: bookwyrm/templates/import.html:37 +#: bookwyrm/templates/import.html:40 msgid "Include reviews" msgstr "" -#: bookwyrm/templates/import.html:42 +#: bookwyrm/templates/import.html:45 msgid "Privacy setting for imported reviews:" msgstr "" -#: bookwyrm/templates/import.html:48 +#: bookwyrm/templates/import.html:51 #: bookwyrm/templates/settings/server_blocklist.html:64 msgid "Import" msgstr "" -#: bookwyrm/templates/import.html:53 +#: bookwyrm/templates/import.html:56 msgid "Recent Imports" msgstr "" -#: bookwyrm/templates/import.html:55 +#: bookwyrm/templates/import.html:58 msgid "No recent imports" msgstr "" -#: bookwyrm/templates/import_status.html:6 -#: bookwyrm/templates/import_status.html:10 +#: bookwyrm/templates/import_status.html:5 +#: bookwyrm/templates/import_status.html:9 msgid "Import Status" msgstr "" -#: bookwyrm/templates/import_status.html:13 +#: bookwyrm/templates/import_status.html:12 msgid "Import started:" msgstr "" -#: bookwyrm/templates/import_status.html:17 +#: bookwyrm/templates/import_status.html:16 msgid "Import completed:" msgstr "" -#: bookwyrm/templates/import_status.html:20 +#: bookwyrm/templates/import_status.html:19 msgid "TASK FAILED" msgstr "" -#: bookwyrm/templates/import_status.html:26 +#: bookwyrm/templates/import_status.html:25 msgid "Import still in progress." msgstr "" -#: bookwyrm/templates/import_status.html:28 +#: bookwyrm/templates/import_status.html:27 msgid "(Hit reload to update!)" msgstr "" -#: bookwyrm/templates/import_status.html:35 +#: bookwyrm/templates/import_status.html:34 msgid "Failed to load" msgstr "" -#: bookwyrm/templates/import_status.html:44 +#: bookwyrm/templates/import_status.html:43 #, python-format msgid "Jump to the bottom of the list to select the %(failed_count)s items which failed to import." msgstr "" -#: bookwyrm/templates/import_status.html:79 +#: bookwyrm/templates/import_status.html:78 msgid "Select all" msgstr "" -#: bookwyrm/templates/import_status.html:82 +#: bookwyrm/templates/import_status.html:81 msgid "Retry items" msgstr "" -#: bookwyrm/templates/import_status.html:108 +#: bookwyrm/templates/import_status.html:107 msgid "Successfully imported" msgstr "" -#: bookwyrm/templates/import_status.html:112 +#: bookwyrm/templates/import_status.html:111 msgid "Book" msgstr "" -#: bookwyrm/templates/import_status.html:115 -#: bookwyrm/templates/snippets/create_status_form.html:10 -#: bookwyrm/templates/user/shelf/shelf.html:77 -#: bookwyrm/templates/user/shelf/shelf.html:95 +#: bookwyrm/templates/import_status.html:114 +#: bookwyrm/templates/snippets/create_status_form.html:13 +#: bookwyrm/templates/user/shelf/shelf.html:78 +#: bookwyrm/templates/user/shelf/shelf.html:98 msgid "Title" msgstr "" -#: bookwyrm/templates/import_status.html:118 -#: bookwyrm/templates/user/shelf/shelf.html:78 -#: bookwyrm/templates/user/shelf/shelf.html:98 +#: bookwyrm/templates/import_status.html:117 +#: bookwyrm/templates/user/shelf/shelf.html:79 +#: bookwyrm/templates/user/shelf/shelf.html:101 msgid "Author" msgstr "" -#: bookwyrm/templates/import_status.html:141 +#: bookwyrm/templates/import_status.html:140 msgid "Imported" msgstr "" @@ -1259,7 +1283,7 @@ msgid "Support %(site_name)s on % msgstr "" #: bookwyrm/templates/layout.html:217 -msgid "BookWyrm is open source software. You can contribute or report issues on GitHub." +msgid "BookWyrm's source code is freely available. You can contribute or report issues on GitHub." msgstr "" #: bookwyrm/templates/lists/create_form.html:5 @@ -1302,7 +1326,7 @@ msgid "Discard" msgstr "" #: bookwyrm/templates/lists/edit_form.html:5 -#: bookwyrm/templates/lists/list_layout.html:18 +#: bookwyrm/templates/lists/list_layout.html:17 msgid "Edit List" msgstr "" @@ -1336,66 +1360,66 @@ msgstr "" msgid "Anyone can add books to this list" msgstr "" -#: bookwyrm/templates/lists/list.html:19 +#: bookwyrm/templates/lists/list.html:20 msgid "You successfully suggested a book for this list!" msgstr "" -#: bookwyrm/templates/lists/list.html:21 +#: bookwyrm/templates/lists/list.html:22 msgid "You successfully added a book to this list!" msgstr "" -#: bookwyrm/templates/lists/list.html:27 +#: bookwyrm/templates/lists/list.html:28 msgid "This list is currently empty" msgstr "" -#: bookwyrm/templates/lists/list.html:64 +#: bookwyrm/templates/lists/list.html:65 #, python-format msgid "Added by %(username)s" msgstr "" -#: bookwyrm/templates/lists/list.html:76 +#: bookwyrm/templates/lists/list.html:77 msgid "Set" msgstr "" -#: bookwyrm/templates/lists/list.html:79 +#: bookwyrm/templates/lists/list.html:80 msgid "List position" msgstr "" -#: bookwyrm/templates/lists/list.html:85 +#: bookwyrm/templates/lists/list.html:86 #: bookwyrm/templates/snippets/shelf_selector.html:26 msgid "Remove" msgstr "" -#: bookwyrm/templates/lists/list.html:98 bookwyrm/templates/lists/list.html:110 +#: bookwyrm/templates/lists/list.html:99 bookwyrm/templates/lists/list.html:111 msgid "Sort List" msgstr "" -#: bookwyrm/templates/lists/list.html:104 +#: bookwyrm/templates/lists/list.html:105 msgid "Direction" msgstr "" -#: bookwyrm/templates/lists/list.html:115 +#: bookwyrm/templates/lists/list.html:116 msgid "Add Books" msgstr "" -#: bookwyrm/templates/lists/list.html:115 +#: bookwyrm/templates/lists/list.html:116 msgid "Suggest Books" msgstr "" -#: bookwyrm/templates/lists/list.html:124 +#: bookwyrm/templates/lists/list.html:125 msgid "search" msgstr "" -#: bookwyrm/templates/lists/list.html:130 +#: bookwyrm/templates/lists/list.html:131 msgid "Clear search" msgstr "" -#: bookwyrm/templates/lists/list.html:135 +#: bookwyrm/templates/lists/list.html:136 #, python-format msgid "No books found matching the query \"%(query)s\"" msgstr "" -#: bookwyrm/templates/lists/list.html:163 +#: bookwyrm/templates/lists/list.html:164 msgid "Suggest" msgstr "" @@ -1420,36 +1444,36 @@ msgstr "" msgid "More about this site" msgstr "" +#: bookwyrm/templates/moderation/report.html:5 #: bookwyrm/templates/moderation/report.html:6 -#: bookwyrm/templates/moderation/report.html:7 #: bookwyrm/templates/moderation/report_preview.html:6 #, python-format msgid "Report #%(report_id)s: %(username)s" msgstr "" -#: bookwyrm/templates/moderation/report.html:11 +#: bookwyrm/templates/moderation/report.html:10 msgid "Back to reports" msgstr "" -#: bookwyrm/templates/moderation/report.html:23 +#: bookwyrm/templates/moderation/report.html:22 msgid "Moderator Comments" msgstr "" -#: bookwyrm/templates/moderation/report.html:41 +#: bookwyrm/templates/moderation/report.html:40 #: bookwyrm/templates/snippets/create_status.html:28 -#: bookwyrm/templates/snippets/create_status_form.html:63 +#: bookwyrm/templates/snippets/create_status_form.html:66 msgid "Comment" msgstr "" -#: bookwyrm/templates/moderation/report.html:46 +#: bookwyrm/templates/moderation/report.html:45 msgid "Reported statuses" msgstr "" -#: bookwyrm/templates/moderation/report.html:48 +#: bookwyrm/templates/moderation/report.html:47 msgid "No statuses reported" msgstr "" -#: bookwyrm/templates/moderation/report.html:54 +#: bookwyrm/templates/moderation/report.html:53 msgid "Status has been deleted" msgstr "" @@ -1718,7 +1742,7 @@ msgstr "" #: bookwyrm/templates/search/layout.html:21 #: bookwyrm/templates/search/layout.html:42 -#: bookwyrm/templates/user/layout.html:73 +#: bookwyrm/templates/user/layout.html:74 msgid "Books" msgstr "" @@ -1790,7 +1814,7 @@ msgid "Add server" msgstr "" #: bookwyrm/templates/settings/edit_server.html:7 -#: bookwyrm/templates/settings/federated_server.html:12 +#: bookwyrm/templates/settings/federated_server.html:13 #: bookwyrm/templates/settings/server_blocklist.html:7 msgid "Back to server list" msgstr "" @@ -1805,24 +1829,24 @@ msgid "Instance:" msgstr "" #: bookwyrm/templates/settings/edit_server.html:37 -#: bookwyrm/templates/settings/federated_server.html:29 +#: bookwyrm/templates/settings/federated_server.html:30 #: bookwyrm/templates/user_admin/user_info.html:34 msgid "Status:" msgstr "" #: bookwyrm/templates/settings/edit_server.html:41 -#: bookwyrm/templates/settings/federated_server.html:9 +#: bookwyrm/templates/settings/federated_server.html:10 msgid "Blocked" msgstr "" #: bookwyrm/templates/settings/edit_server.html:48 -#: bookwyrm/templates/settings/federated_server.html:21 +#: bookwyrm/templates/settings/federated_server.html:22 #: bookwyrm/templates/user_admin/user_info.html:26 msgid "Software:" msgstr "" #: bookwyrm/templates/settings/edit_server.html:55 -#: bookwyrm/templates/settings/federated_server.html:25 +#: bookwyrm/templates/settings/federated_server.html:26 #: bookwyrm/templates/user_admin/user_info.html:30 msgid "Version:" msgstr "" @@ -1831,69 +1855,69 @@ msgstr "" msgid "Notes:" msgstr "" -#: bookwyrm/templates/settings/federated_server.html:18 +#: bookwyrm/templates/settings/federated_server.html:19 msgid "Details" msgstr "" -#: bookwyrm/templates/settings/federated_server.html:36 -#: bookwyrm/templates/user/layout.html:55 +#: bookwyrm/templates/settings/federated_server.html:37 +#: bookwyrm/templates/user/layout.html:56 msgid "Activity" msgstr "" -#: bookwyrm/templates/settings/federated_server.html:39 +#: bookwyrm/templates/settings/federated_server.html:40 msgid "Users:" msgstr "" -#: bookwyrm/templates/settings/federated_server.html:42 -#: bookwyrm/templates/settings/federated_server.html:49 +#: bookwyrm/templates/settings/federated_server.html:43 +#: bookwyrm/templates/settings/federated_server.html:50 msgid "View all" msgstr "" -#: bookwyrm/templates/settings/federated_server.html:46 +#: bookwyrm/templates/settings/federated_server.html:47 msgid "Reports:" msgstr "" -#: bookwyrm/templates/settings/federated_server.html:53 +#: bookwyrm/templates/settings/federated_server.html:54 msgid "Followed by us:" msgstr "" -#: bookwyrm/templates/settings/federated_server.html:59 +#: bookwyrm/templates/settings/federated_server.html:60 msgid "Followed by them:" msgstr "" -#: bookwyrm/templates/settings/federated_server.html:65 +#: bookwyrm/templates/settings/federated_server.html:66 msgid "Blocked by us:" msgstr "" -#: bookwyrm/templates/settings/federated_server.html:77 +#: bookwyrm/templates/settings/federated_server.html:78 #: bookwyrm/templates/user_admin/user_info.html:39 msgid "Notes" msgstr "" -#: bookwyrm/templates/settings/federated_server.html:80 +#: bookwyrm/templates/settings/federated_server.html:81 msgid "Edit" msgstr "" -#: bookwyrm/templates/settings/federated_server.html:100 +#: bookwyrm/templates/settings/federated_server.html:101 #: bookwyrm/templates/user_admin/user_moderation_actions.html:3 msgid "Actions" msgstr "" -#: bookwyrm/templates/settings/federated_server.html:104 +#: bookwyrm/templates/settings/federated_server.html:105 #: bookwyrm/templates/snippets/block_button.html:5 msgid "Block" msgstr "" -#: bookwyrm/templates/settings/federated_server.html:105 +#: bookwyrm/templates/settings/federated_server.html:106 msgid "All users from this instance will be deactivated." msgstr "" -#: bookwyrm/templates/settings/federated_server.html:110 +#: bookwyrm/templates/settings/federated_server.html:111 #: bookwyrm/templates/snippets/block_button.html:10 msgid "Un-block" msgstr "" -#: bookwyrm/templates/settings/federated_server.html:111 +#: bookwyrm/templates/settings/federated_server.html:112 msgid "All users from this instance will be re-activated." msgstr "" @@ -2100,7 +2124,7 @@ msgstr "" msgid "Registration closed text:" msgstr "" -#: bookwyrm/templates/snippets/book_cover.html:32 +#: bookwyrm/templates/snippets/book_cover.html:31 msgid "No cover" msgstr "" @@ -2109,13 +2133,13 @@ msgstr "" msgid "%(title)s by " msgstr "" -#: bookwyrm/templates/snippets/boost_button.html:8 #: bookwyrm/templates/snippets/boost_button.html:9 +#: bookwyrm/templates/snippets/boost_button.html:10 msgid "Boost" msgstr "" -#: bookwyrm/templates/snippets/boost_button.html:15 #: bookwyrm/templates/snippets/boost_button.html:16 +#: bookwyrm/templates/snippets/boost_button.html:17 msgid "Un-boost" msgstr "" @@ -2135,64 +2159,64 @@ msgstr "" msgid "Quote" msgstr "" -#: bookwyrm/templates/snippets/create_status_form.html:20 +#: bookwyrm/templates/snippets/create_status_form.html:23 msgid "Comment:" msgstr "" -#: bookwyrm/templates/snippets/create_status_form.html:22 +#: bookwyrm/templates/snippets/create_status_form.html:25 msgid "Quote:" msgstr "" -#: bookwyrm/templates/snippets/create_status_form.html:24 +#: bookwyrm/templates/snippets/create_status_form.html:27 msgid "Review:" msgstr "" -#: bookwyrm/templates/snippets/create_status_form.html:53 -#: bookwyrm/templates/snippets/status/layout.html:30 +#: bookwyrm/templates/snippets/create_status_form.html:56 +#: bookwyrm/templates/snippets/status/layout.html:29 +#: bookwyrm/templates/snippets/status/layout.html:47 #: bookwyrm/templates/snippets/status/layout.html:48 -#: bookwyrm/templates/snippets/status/layout.html:49 msgid "Reply" msgstr "" -#: bookwyrm/templates/snippets/create_status_form.html:53 +#: bookwyrm/templates/snippets/create_status_form.html:56 msgid "Content" msgstr "" -#: bookwyrm/templates/snippets/create_status_form.html:77 +#: bookwyrm/templates/snippets/create_status_form.html:80 #: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:16 msgid "Progress:" msgstr "" -#: bookwyrm/templates/snippets/create_status_form.html:85 -#: bookwyrm/templates/snippets/readthrough_form.html:26 +#: bookwyrm/templates/snippets/create_status_form.html:88 +#: bookwyrm/templates/snippets/readthrough_form.html:22 #: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:30 msgid "pages" msgstr "" -#: bookwyrm/templates/snippets/create_status_form.html:86 -#: bookwyrm/templates/snippets/readthrough_form.html:27 +#: bookwyrm/templates/snippets/create_status_form.html:89 +#: bookwyrm/templates/snippets/readthrough_form.html:23 #: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:31 msgid "percent" msgstr "" -#: bookwyrm/templates/snippets/create_status_form.html:92 +#: bookwyrm/templates/snippets/create_status_form.html:95 #: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:36 #, python-format msgid "of %(pages)s pages" msgstr "" -#: bookwyrm/templates/snippets/create_status_form.html:107 +#: bookwyrm/templates/snippets/create_status_form.html:110 msgid "Include spoiler alert" msgstr "" -#: bookwyrm/templates/snippets/create_status_form.html:114 +#: bookwyrm/templates/snippets/create_status_form.html:117 #: bookwyrm/templates/snippets/privacy-icons.html:15 #: bookwyrm/templates/snippets/privacy-icons.html:16 #: bookwyrm/templates/snippets/privacy_select.html:19 msgid "Private" msgstr "" -#: bookwyrm/templates/snippets/create_status_form.html:125 +#: bookwyrm/templates/snippets/create_status_form.html:128 msgid "Post" msgstr "" @@ -2206,17 +2230,17 @@ msgid "You are deleting this readthrough and its %(count)s associated progress u msgstr "" #: bookwyrm/templates/snippets/delete_readthrough_modal.html:15 -#: bookwyrm/templates/snippets/follow_request_buttons.html:13 +#: bookwyrm/templates/snippets/follow_request_buttons.html:12 msgid "Delete" msgstr "" -#: bookwyrm/templates/snippets/fav_button.html:7 #: bookwyrm/templates/snippets/fav_button.html:9 +#: bookwyrm/templates/snippets/fav_button.html:11 msgid "Like" msgstr "" -#: bookwyrm/templates/snippets/fav_button.html:15 -#: bookwyrm/templates/snippets/fav_button.html:16 +#: bookwyrm/templates/snippets/fav_button.html:17 +#: bookwyrm/templates/snippets/fav_button.html:18 msgid "Un-like" msgstr "" @@ -2248,11 +2272,11 @@ msgstr "" msgid "Unfollow" msgstr "" -#: bookwyrm/templates/snippets/follow_request_buttons.html:8 +#: bookwyrm/templates/snippets/follow_request_buttons.html:7 msgid "Accept" msgstr "" -#: bookwyrm/templates/snippets/form_rate_stars.html:20 +#: bookwyrm/templates/snippets/form_rate_stars.html:19 #: bookwyrm/templates/snippets/stars.html:13 msgid "No rating" msgstr "" @@ -2301,8 +2325,8 @@ msgid "Goal privacy:" msgstr "" #: bookwyrm/templates/snippets/goal_form.html:26 -#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:45 -#: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:33 +#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:37 +#: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:29 #: bookwyrm/templates/snippets/shelve_button/want_to_read_modal.html:20 msgid "Post to feed" msgstr "" @@ -2413,12 +2437,12 @@ msgstr "" msgid "Started reading" msgstr "" -#: bookwyrm/templates/snippets/readthrough_form.html:18 +#: bookwyrm/templates/snippets/readthrough_form.html:14 msgid "Progress" msgstr "" -#: bookwyrm/templates/snippets/readthrough_form.html:34 -#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:29 +#: bookwyrm/templates/snippets/readthrough_form.html:30 +#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:25 msgid "Finished reading" msgstr "" @@ -2426,27 +2450,27 @@ msgstr "" msgid "Sign Up" msgstr "" -#: bookwyrm/templates/snippets/report_button.html:5 +#: bookwyrm/templates/snippets/report_button.html:6 msgid "Report" msgstr "" #: bookwyrm/templates/snippets/rss_title.html:5 -#: bookwyrm/templates/snippets/status/status_header.html:34 +#: bookwyrm/templates/snippets/status/status_header.html:35 msgid "rated" msgstr "" #: bookwyrm/templates/snippets/rss_title.html:7 -#: bookwyrm/templates/snippets/status/status_header.html:36 +#: bookwyrm/templates/snippets/status/status_header.html:37 msgid "reviewed" msgstr "" #: bookwyrm/templates/snippets/rss_title.html:9 -#: bookwyrm/templates/snippets/status/status_header.html:38 +#: bookwyrm/templates/snippets/status/status_header.html:39 msgid "commented on" msgstr "" #: bookwyrm/templates/snippets/rss_title.html:11 -#: bookwyrm/templates/snippets/status/status_header.html:40 +#: bookwyrm/templates/snippets/status/status_header.html:41 msgid "quoted" msgstr "" @@ -2464,7 +2488,7 @@ msgid "Finish \"%(book_title)s\"" msgstr "" #: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:5 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:34 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:36 msgid "Update progress" msgstr "" @@ -2472,20 +2496,20 @@ msgstr "" msgid "More shelves" msgstr "" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:8 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:10 msgid "Start reading" msgstr "" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:13 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:15 msgid "Finish reading" msgstr "" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:16 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:18 #: bookwyrm/templates/snippets/shelve_button/want_to_read_modal.html:26 msgid "Want to read" msgstr "" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:45 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:47 #, python-format msgid "Remove from %(name)s" msgstr "" @@ -2500,40 +2524,40 @@ msgstr "" msgid "Want to Read \"%(book_title)s\"" msgstr "" -#: bookwyrm/templates/snippets/status/content_status.html:70 -#: bookwyrm/templates/snippets/trimmed_text.html:14 +#: bookwyrm/templates/snippets/status/content_status.html:71 +#: bookwyrm/templates/snippets/trimmed_text.html:15 msgid "Show more" msgstr "" -#: bookwyrm/templates/snippets/status/content_status.html:85 -#: bookwyrm/templates/snippets/trimmed_text.html:29 +#: bookwyrm/templates/snippets/status/content_status.html:86 +#: bookwyrm/templates/snippets/trimmed_text.html:30 msgid "Show less" msgstr "" -#: bookwyrm/templates/snippets/status/content_status.html:115 +#: bookwyrm/templates/snippets/status/content_status.html:116 msgid "Open image in new window" msgstr "" -#: bookwyrm/templates/snippets/status/layout.html:22 +#: bookwyrm/templates/snippets/status/layout.html:21 #: bookwyrm/templates/snippets/status/status_options.html:17 msgid "Delete status" msgstr "" +#: bookwyrm/templates/snippets/status/layout.html:51 #: bookwyrm/templates/snippets/status/layout.html:52 -#: bookwyrm/templates/snippets/status/layout.html:53 msgid "Boost status" msgstr "" +#: bookwyrm/templates/snippets/status/layout.html:55 #: bookwyrm/templates/snippets/status/layout.html:56 -#: bookwyrm/templates/snippets/status/layout.html:57 msgid "Like status" msgstr "" -#: bookwyrm/templates/snippets/status/status.html:9 +#: bookwyrm/templates/snippets/status/status.html:10 msgid "boosted" msgstr "" -#: bookwyrm/templates/snippets/status/status_header.html:44 +#: bookwyrm/templates/snippets/status/status_header.html:45 #, python-format msgid "replied to %(username)s's status" msgstr "" @@ -2565,15 +2589,15 @@ msgstr "" msgid "Sorted descending" msgstr "" -#: bookwyrm/templates/user/layout.html:12 bookwyrm/templates/user/user.html:10 +#: bookwyrm/templates/user/layout.html:13 bookwyrm/templates/user/user.html:10 msgid "User Profile" msgstr "" -#: bookwyrm/templates/user/layout.html:36 +#: bookwyrm/templates/user/layout.html:37 msgid "Follow Requests" msgstr "" -#: bookwyrm/templates/user/layout.html:61 +#: bookwyrm/templates/user/layout.html:62 msgid "Reading Goal" msgstr "" @@ -2619,38 +2643,38 @@ msgstr "" msgid "Update shelf" msgstr "" -#: bookwyrm/templates/user/shelf/shelf.html:24 bookwyrm/views/shelf.py:48 +#: bookwyrm/templates/user/shelf/shelf.html:25 bookwyrm/views/shelf.py:51 msgid "All books" msgstr "" -#: bookwyrm/templates/user/shelf/shelf.html:37 +#: bookwyrm/templates/user/shelf/shelf.html:38 msgid "Create shelf" msgstr "" -#: bookwyrm/templates/user/shelf/shelf.html:60 +#: bookwyrm/templates/user/shelf/shelf.html:61 msgid "Edit shelf" msgstr "" -#: bookwyrm/templates/user/shelf/shelf.html:79 -#: bookwyrm/templates/user/shelf/shelf.html:101 -msgid "Shelved" -msgstr "" - #: bookwyrm/templates/user/shelf/shelf.html:80 -#: bookwyrm/templates/user/shelf/shelf.html:105 -msgid "Started" +#: bookwyrm/templates/user/shelf/shelf.html:104 +msgid "Shelved" msgstr "" #: bookwyrm/templates/user/shelf/shelf.html:81 #: bookwyrm/templates/user/shelf/shelf.html:108 +msgid "Started" +msgstr "" + +#: bookwyrm/templates/user/shelf/shelf.html:82 +#: bookwyrm/templates/user/shelf/shelf.html:111 msgid "Finished" msgstr "" -#: bookwyrm/templates/user/shelf/shelf.html:134 +#: bookwyrm/templates/user/shelf/shelf.html:137 msgid "This shelf is empty." msgstr "" -#: bookwyrm/templates/user/shelf/shelf.html:140 +#: bookwyrm/templates/user/shelf/shelf.html:143 msgid "Delete shelf" msgstr "" @@ -2679,31 +2703,31 @@ msgstr "" msgid "No activities yet!" msgstr "" -#: bookwyrm/templates/user/user_preview.html:14 +#: bookwyrm/templates/user/user_preview.html:15 #, python-format msgid "Joined %(date)s" msgstr "" -#: bookwyrm/templates/user/user_preview.html:18 +#: bookwyrm/templates/user/user_preview.html:19 #, python-format msgid "%(counter)s follower" msgid_plural "%(counter)s followers" msgstr[0] "" msgstr[1] "" -#: bookwyrm/templates/user/user_preview.html:19 +#: bookwyrm/templates/user/user_preview.html:20 #, python-format msgid "%(counter)s following" msgstr "" -#: bookwyrm/templates/user/user_preview.html:25 +#: bookwyrm/templates/user/user_preview.html:26 #, python-format msgid "%(mutuals_display)s follower you follow" msgid_plural "%(mutuals_display)s followers you follow" msgstr[0] "" msgstr[1] "" -#: bookwyrm/templates/user_admin/user.html:11 +#: bookwyrm/templates/user_admin/user.html:9 msgid "Back to users" msgstr "" @@ -2770,11 +2794,11 @@ msgstr "" msgid "Access level:" msgstr "" -#: bookwyrm/views/password.py:32 +#: bookwyrm/views/password.py:30 bookwyrm/views/password.py:35 msgid "No user with that email address was found." msgstr "" -#: bookwyrm/views/password.py:41 +#: bookwyrm/views/password.py:44 #, python-format msgid "A password reset link sent to %s" msgstr "" diff --git a/locale/es/LC_MESSAGES/django.po b/locale/es/LC_MESSAGES/django.po index 864c9dbb7..d426b0294 100644 --- a/locale/es/LC_MESSAGES/django.po +++ b/locale/es/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: 2021-05-10 13:23-0700\n" +"POT-Creation-Date: 2021-05-14 15:12-0700\n" "PO-Revision-Date: 2021-03-19 11:49+0800\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -55,13 +55,13 @@ msgstr "Orden de la lista" msgid "Book Title" msgstr "Título" -#: bookwyrm/forms.py:295 bookwyrm/templates/snippets/create_status_form.html:31 -#: bookwyrm/templates/user/shelf/shelf.html:82 -#: bookwyrm/templates/user/shelf/shelf.html:112 +#: bookwyrm/forms.py:295 bookwyrm/templates/snippets/create_status_form.html:34 +#: bookwyrm/templates/user/shelf/shelf.html:84 +#: bookwyrm/templates/user/shelf/shelf.html:115 msgid "Rating" msgstr "Calificación" -#: bookwyrm/forms.py:297 bookwyrm/templates/lists/list.html:100 +#: bookwyrm/forms.py:297 bookwyrm/templates/lists/list.html:101 msgid "Sort By" msgstr "Ordenar por" @@ -131,19 +131,155 @@ msgstr "Error de servidor" msgid "Something went wrong! Sorry about that." msgstr "¡Algo salió mal! Disculpa." -#: bookwyrm/templates/author.html:16 bookwyrm/templates/author.html:17 +#: bookwyrm/templates/author/author.html:17 +#: bookwyrm/templates/author/author.html:18 msgid "Edit Author" msgstr "Editar Autor/Autora" -#: bookwyrm/templates/author.html:31 +#: bookwyrm/templates/author/author.html:33 +#: bookwyrm/templates/author/edit_author.html:38 +msgid "Aliases:" +msgstr "" + +#: bookwyrm/templates/author/author.html:39 +msgid "Born:" +msgstr "" + +#: bookwyrm/templates/author/author.html:45 +msgid "Died:" +msgstr "" + +#: bookwyrm/templates/author/author.html:52 msgid "Wikipedia" msgstr "Wikipedia" -#: bookwyrm/templates/author.html:36 +#: bookwyrm/templates/author/author.html:56 +#: bookwyrm/templates/book/book.html:81 +msgid "View on OpenLibrary" +msgstr "Ver en OpenLibrary" + +#: bookwyrm/templates/author/author.html:61 +#: bookwyrm/templates/book/book.html:84 +#, fuzzy +#| msgid "View on OpenLibrary" +msgid "View on Inventaire" +msgstr "Ver en OpenLibrary" + +#: bookwyrm/templates/author/author.html:75 #, python-format msgid "Books by %(name)s" msgstr "Libros de %(name)s" +#: bookwyrm/templates/author/edit_author.html:5 +msgid "Edit Author:" +msgstr "Editar Autor/Autora/Autore:" + +#: bookwyrm/templates/author/edit_author.html:13 +#: bookwyrm/templates/book/edit_book.html:18 +msgid "Added:" +msgstr "Agregado:" + +#: bookwyrm/templates/author/edit_author.html:14 +#: bookwyrm/templates/book/edit_book.html:19 +msgid "Updated:" +msgstr "Actualizado:" + +#: bookwyrm/templates/author/edit_author.html:15 +#: bookwyrm/templates/book/edit_book.html:20 +msgid "Last edited by:" +msgstr "Editado más recientemente por:" + +#: bookwyrm/templates/author/edit_author.html:31 +#: bookwyrm/templates/book/edit_book.html:90 +msgid "Metadata" +msgstr "Metadatos" + +#: bookwyrm/templates/author/edit_author.html:32 +#: bookwyrm/templates/lists/form.html:8 +#: bookwyrm/templates/user/shelf/create_shelf_form.html:13 +#: bookwyrm/templates/user/shelf/edit_shelf_form.html:14 +msgid "Name:" +msgstr "Nombre:" + +#: bookwyrm/templates/author/edit_author.html:40 +#: bookwyrm/templates/book/edit_book.html:128 +#: bookwyrm/templates/book/edit_book.html:165 +#, fuzzy +#| msgid "Separate multiple publishers with commas." +msgid "Separate multiple values with commas." +msgstr "Separar varios editores con comas." + +#: bookwyrm/templates/author/edit_author.html:46 +msgid "Bio:" +msgstr "Bio:" + +#: bookwyrm/templates/author/edit_author.html:51 +msgid "Wikipedia link:" +msgstr "Enlace de Wikipedia:" + +#: bookwyrm/templates/author/edit_author.html:57 +msgid "Birth date:" +msgstr "Fecha de nacimiento:" + +#: bookwyrm/templates/author/edit_author.html:65 +msgid "Death date:" +msgstr "Fecha de muerte:" + +#: bookwyrm/templates/author/edit_author.html:73 +msgid "Author Identifiers" +msgstr "Identificadores de autor/autora" + +#: bookwyrm/templates/author/edit_author.html:74 +#: bookwyrm/templates/book/edit_book.html:223 +msgid "Openlibrary key:" +msgstr "Clave OpenLibrary:" + +#: bookwyrm/templates/author/edit_author.html:79 +#, fuzzy +#| msgid "View on OpenLibrary" +msgid "Inventaire ID:" +msgstr "Ver en OpenLibrary" + +#: bookwyrm/templates/author/edit_author.html:84 +msgid "Librarything key:" +msgstr "Clave Librarything:" + +#: bookwyrm/templates/author/edit_author.html:89 +msgid "Goodreads key:" +msgstr "Clave Goodreads:" + +#: bookwyrm/templates/author/edit_author.html:98 +#: bookwyrm/templates/book/book.html:127 +#: bookwyrm/templates/book/edit_book.html:241 +#: bookwyrm/templates/lists/form.html:42 +#: bookwyrm/templates/preferences/edit_user.html:70 +#: bookwyrm/templates/settings/edit_server.html:68 +#: bookwyrm/templates/settings/federated_server.html:94 +#: bookwyrm/templates/settings/site.html:97 +#: bookwyrm/templates/snippets/readthrough.html:77 +#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:42 +#: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:42 +#: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:34 +#: bookwyrm/templates/user_admin/user_moderation_actions.html:38 +msgid "Save" +msgstr "Guardar" + +#: bookwyrm/templates/author/edit_author.html:99 +#: bookwyrm/templates/book/book.html:128 bookwyrm/templates/book/book.html:180 +#: bookwyrm/templates/book/cover_modal.html:32 +#: bookwyrm/templates/book/edit_book.html:242 +#: bookwyrm/templates/moderation/report_modal.html:34 +#: bookwyrm/templates/settings/federated_server.html:95 +#: bookwyrm/templates/snippets/delete_readthrough_modal.html:17 +#: bookwyrm/templates/snippets/goal_form.html:32 +#: bookwyrm/templates/snippets/readthrough.html:78 +#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:43 +#: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:43 +#: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:35 +#: bookwyrm/templates/snippets/shelve_button/want_to_read_modal.html:28 +msgid "Cancel" +msgstr "Cancelar" + #: bookwyrm/templates/book/book.html:33 #: bookwyrm/templates/discover/large-book.html:25 #: bookwyrm/templates/discover/small-book.html:19 @@ -163,16 +299,6 @@ msgstr "Agregar portada" msgid "Failed to load cover" msgstr "No se pudo cargar la portada" -#: bookwyrm/templates/book/book.html:81 -msgid "View on OpenLibrary" -msgstr "Ver en OpenLibrary" - -#: bookwyrm/templates/book/book.html:84 -#, fuzzy -#| msgid "View on OpenLibrary" -msgid "View on Inventaire" -msgstr "Ver en OpenLibrary" - #: bookwyrm/templates/book/book.html:104 #, python-format msgid "(%(review_count)s review)" @@ -190,37 +316,6 @@ msgstr "Agregar descripción" msgid "Description:" msgstr "Descripción:" -#: bookwyrm/templates/book/book.html:127 -#: bookwyrm/templates/book/edit_book.html:249 -#: bookwyrm/templates/edit_author.html:78 bookwyrm/templates/lists/form.html:42 -#: bookwyrm/templates/preferences/edit_user.html:70 -#: bookwyrm/templates/settings/edit_server.html:68 -#: bookwyrm/templates/settings/federated_server.html:93 -#: bookwyrm/templates/settings/site.html:97 -#: bookwyrm/templates/snippets/readthrough.html:77 -#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:50 -#: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:42 -#: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:38 -#: bookwyrm/templates/user_admin/user_moderation_actions.html:38 -msgid "Save" -msgstr "Guardar" - -#: bookwyrm/templates/book/book.html:128 bookwyrm/templates/book/book.html:180 -#: bookwyrm/templates/book/cover_modal.html:32 -#: bookwyrm/templates/book/edit_book.html:250 -#: bookwyrm/templates/edit_author.html:79 -#: bookwyrm/templates/moderation/report_modal.html:34 -#: bookwyrm/templates/settings/federated_server.html:94 -#: bookwyrm/templates/snippets/delete_readthrough_modal.html:17 -#: bookwyrm/templates/snippets/goal_form.html:32 -#: bookwyrm/templates/snippets/readthrough.html:78 -#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:51 -#: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:43 -#: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:39 -#: bookwyrm/templates/snippets/shelve_button/want_to_read_modal.html:28 -msgid "Cancel" -msgstr "Cancelar" - #: bookwyrm/templates/book/book.html:137 #, python-format msgid "%(count)s editions" @@ -292,7 +387,7 @@ msgstr "Lugares" #: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/search/layout.html:25 #: bookwyrm/templates/search/layout.html:50 -#: bookwyrm/templates/user/layout.html:67 +#: bookwyrm/templates/user/layout.html:68 msgid "Lists" msgstr "Listas" @@ -302,7 +397,7 @@ msgstr "Agregar a lista" #: bookwyrm/templates/book/book.html:320 #: bookwyrm/templates/book/cover_modal.html:31 -#: bookwyrm/templates/lists/list.html:163 +#: bookwyrm/templates/lists/list.html:164 msgid "Add" msgstr "Agregar" @@ -311,22 +406,22 @@ msgid "ISBN:" msgstr "ISBN:" #: bookwyrm/templates/book/book_identifiers.html:15 -#: bookwyrm/templates/book/edit_book.html:235 +#: bookwyrm/templates/book/edit_book.html:227 msgid "OCLC Number:" msgstr "Número OCLC:" #: bookwyrm/templates/book/book_identifiers.html:22 -#: bookwyrm/templates/book/edit_book.html:239 +#: bookwyrm/templates/book/edit_book.html:231 msgid "ASIN:" msgstr "ASIN:" #: bookwyrm/templates/book/cover_modal.html:17 -#: bookwyrm/templates/book/edit_book.html:187 +#: bookwyrm/templates/book/edit_book.html:179 msgid "Upload cover:" msgstr "Subir portada:" #: bookwyrm/templates/book/cover_modal.html:23 -#: bookwyrm/templates/book/edit_book.html:193 +#: bookwyrm/templates/book/edit_book.html:185 msgid "Load cover from url:" msgstr "Agregar portada de url:" @@ -341,21 +436,6 @@ msgstr "Editar \"%(book_title)s\"" msgid "Add Book" msgstr "Agregar libro" -#: bookwyrm/templates/book/edit_book.html:18 -#: bookwyrm/templates/edit_author.html:13 -msgid "Added:" -msgstr "Agregado:" - -#: bookwyrm/templates/book/edit_book.html:19 -#: bookwyrm/templates/edit_author.html:14 -msgid "Updated:" -msgstr "Actualizado:" - -#: bookwyrm/templates/book/edit_book.html:20 -#: bookwyrm/templates/edit_author.html:15 -msgid "Last edited by:" -msgstr "Editado más recientemente por:" - #: bookwyrm/templates/book/edit_book.html:40 msgid "Confirm Book Info" msgstr "Confirmar información de libro" @@ -397,11 +477,6 @@ msgstr "Confirmar" msgid "Back" msgstr "Volver" -#: bookwyrm/templates/book/edit_book.html:90 -#: bookwyrm/templates/edit_author.html:31 -msgid "Metadata" -msgstr "Metadatos" - #: bookwyrm/templates/book/edit_book.html:92 msgid "Title:" msgstr "Título:" @@ -422,76 +497,67 @@ msgstr "Número de serie:" msgid "Publisher:" msgstr "Editorial:" -#: bookwyrm/templates/book/edit_book.html:128 -msgid "Separate multiple publishers with commas." -msgstr "Separar varios editores con comas." - #: bookwyrm/templates/book/edit_book.html:135 msgid "First published date:" msgstr "Fecha de primera publicación:" -#: bookwyrm/templates/book/edit_book.html:147 +#: bookwyrm/templates/book/edit_book.html:143 msgid "Published date:" msgstr "Fecha de publicación:" -#: bookwyrm/templates/book/edit_book.html:160 +#: bookwyrm/templates/book/edit_book.html:152 msgid "Authors" msgstr "Autores" -#: bookwyrm/templates/book/edit_book.html:166 +#: bookwyrm/templates/book/edit_book.html:158 #, python-format msgid "Remove %(name)s" msgstr "Eliminar %(name)s" -#: bookwyrm/templates/book/edit_book.html:171 +#: bookwyrm/templates/book/edit_book.html:163 msgid "Add Authors:" msgstr "Agregar Autores:" -#: bookwyrm/templates/book/edit_book.html:172 +#: bookwyrm/templates/book/edit_book.html:164 msgid "John Doe, Jane Smith" msgstr "Juan Nadie, Natalia Natalia" -#: bookwyrm/templates/book/edit_book.html:178 -#: bookwyrm/templates/user/shelf/shelf.html:76 +#: bookwyrm/templates/book/edit_book.html:170 +#: bookwyrm/templates/user/shelf/shelf.html:77 msgid "Cover" msgstr "Portada:" -#: bookwyrm/templates/book/edit_book.html:206 +#: bookwyrm/templates/book/edit_book.html:198 msgid "Physical Properties" msgstr "Propiedades físicas:" -#: bookwyrm/templates/book/edit_book.html:207 +#: bookwyrm/templates/book/edit_book.html:199 #: bookwyrm/templates/book/format_filter.html:5 msgid "Format:" msgstr "Formato:" -#: bookwyrm/templates/book/edit_book.html:215 +#: bookwyrm/templates/book/edit_book.html:207 msgid "Pages:" msgstr "Páginas:" -#: bookwyrm/templates/book/edit_book.html:222 +#: bookwyrm/templates/book/edit_book.html:214 msgid "Book Identifiers" msgstr "Identificadores de libro" -#: bookwyrm/templates/book/edit_book.html:223 +#: bookwyrm/templates/book/edit_book.html:215 msgid "ISBN 13:" msgstr "ISBN 13:" -#: bookwyrm/templates/book/edit_book.html:227 +#: bookwyrm/templates/book/edit_book.html:219 msgid "ISBN 10:" msgstr "ISBN 10:" -#: bookwyrm/templates/book/edit_book.html:231 -#: bookwyrm/templates/edit_author.html:59 -msgid "Openlibrary key:" -msgstr "Clave OpenLibrary:" - -#: bookwyrm/templates/book/editions.html:5 +#: bookwyrm/templates/book/editions.html:4 #, python-format msgid "Editions of %(book_title)s" msgstr "Ediciones de %(book_title)s" -#: bookwyrm/templates/book/editions.html:9 +#: bookwyrm/templates/book/editions.html:8 #, python-format msgid "Editions of \"%(work_title)s\"" msgstr "Ediciones de \"%(work_title)s\"" @@ -542,7 +608,7 @@ msgstr "Publicado por %(publisher)s." #: bookwyrm/templates/components/inline_form.html:8 #: bookwyrm/templates/components/modal.html:11 -#: bookwyrm/templates/feed/feed_layout.html:70 +#: bookwyrm/templates/feed/feed_layout.html:69 #: bookwyrm/templates/get_started/layout.html:19 #: bookwyrm/templates/get_started/layout.html:52 #: bookwyrm/templates/search/book.html:32 @@ -597,23 +663,23 @@ msgstr "Sugerido" msgid "Recently active" msgstr "Activ@ recientemente" -#: bookwyrm/templates/directory/user_card.html:32 +#: bookwyrm/templates/directory/user_card.html:33 msgid "follower you follow" msgid_plural "followers you follow" msgstr[0] "seguidor que tu sigues" msgstr[1] "seguidores que tu sigues" -#: bookwyrm/templates/directory/user_card.html:39 +#: bookwyrm/templates/directory/user_card.html:40 msgid "book on your shelves" msgid_plural "books on your shelves" msgstr[0] "libro en tus estantes" msgstr[1] "libro en tus estantes" -#: bookwyrm/templates/directory/user_card.html:47 +#: bookwyrm/templates/directory/user_card.html:48 msgid "posts" msgstr "publicaciones" -#: bookwyrm/templates/directory/user_card.html:53 +#: bookwyrm/templates/directory/user_card.html:54 msgid "last active" msgstr "actividad reciente" @@ -699,44 +765,6 @@ msgstr "Enviar" msgid "Your Account" msgstr "Tu cuenta" -#: bookwyrm/templates/edit_author.html:5 -msgid "Edit Author:" -msgstr "Editar Autor/Autora/Autore:" - -#: bookwyrm/templates/edit_author.html:32 bookwyrm/templates/lists/form.html:8 -#: bookwyrm/templates/user/shelf/create_shelf_form.html:13 -#: bookwyrm/templates/user/shelf/edit_shelf_form.html:14 -msgid "Name:" -msgstr "Nombre:" - -#: bookwyrm/templates/edit_author.html:37 -msgid "Bio:" -msgstr "Bio:" - -#: bookwyrm/templates/edit_author.html:42 -msgid "Wikipedia link:" -msgstr "Enlace de Wikipedia:" - -#: bookwyrm/templates/edit_author.html:47 -msgid "Birth date:" -msgstr "Fecha de nacimiento:" - -#: bookwyrm/templates/edit_author.html:52 -msgid "Death date:" -msgstr "Fecha de muerte:" - -#: bookwyrm/templates/edit_author.html:58 -msgid "Author Identifiers" -msgstr "Identificadores de autor/autora" - -#: bookwyrm/templates/edit_author.html:64 -msgid "Librarything key:" -msgstr "Clave Librarything:" - -#: bookwyrm/templates/edit_author.html:69 -msgid "Goodreads key:" -msgstr "Clave Goodreads:" - #: bookwyrm/templates/email/html_layout.html:15 #: bookwyrm/templates/email/text_layout.html:2 msgid "Hi there," @@ -817,76 +845,76 @@ msgstr "Todos los mensajes" msgid "You have no messages right now." msgstr "No tienes ningún mensaje en este momento." -#: bookwyrm/templates/feed/feed.html:9 +#: bookwyrm/templates/feed/feed.html:8 msgid "Home Timeline" msgstr "Línea temporal de hogar" -#: bookwyrm/templates/feed/feed.html:11 +#: bookwyrm/templates/feed/feed.html:10 msgid "Local Timeline" msgstr "Línea temporal local" -#: bookwyrm/templates/feed/feed.html:13 +#: bookwyrm/templates/feed/feed.html:12 msgid "Federated Timeline" msgstr "Línea temporal federalizado" -#: bookwyrm/templates/feed/feed.html:19 +#: bookwyrm/templates/feed/feed.html:18 msgid "Home" msgstr "Hogar" -#: bookwyrm/templates/feed/feed.html:22 +#: bookwyrm/templates/feed/feed.html:21 msgid "Local" msgstr "Local" -#: bookwyrm/templates/feed/feed.html:25 +#: bookwyrm/templates/feed/feed.html:24 #: bookwyrm/templates/settings/edit_server.html:40 msgid "Federated" msgstr "Federalizado" -#: bookwyrm/templates/feed/feed.html:33 +#: bookwyrm/templates/feed/feed.html:32 #, python-format msgid "load 0 unread status(es)" msgstr "cargar 0 status(es) no leídos" -#: bookwyrm/templates/feed/feed.html:48 +#: bookwyrm/templates/feed/feed.html:47 msgid "There aren't any activities right now! Try following a user to get started" msgstr "¡No hay actividad ahora mismo! Sigue a otro usuario para empezar" -#: bookwyrm/templates/feed/feed.html:56 +#: bookwyrm/templates/feed/feed.html:55 #: bookwyrm/templates/get_started/users.html:6 msgid "Who to follow" msgstr "A quién seguir" -#: bookwyrm/templates/feed/feed_layout.html:5 +#: bookwyrm/templates/feed/feed_layout.html:4 msgid "Updates" msgstr "Actualizaciones" -#: bookwyrm/templates/feed/feed_layout.html:11 +#: bookwyrm/templates/feed/feed_layout.html:10 #: bookwyrm/templates/layout.html:59 #: bookwyrm/templates/user/shelf/books_header.html:3 msgid "Your books" msgstr "Tus libros" -#: bookwyrm/templates/feed/feed_layout.html:13 +#: bookwyrm/templates/feed/feed_layout.html:12 msgid "There are no books here right now! Try searching for a book to get started" msgstr "¡No hay ningún libro aqui ahorita! Busca a un libro para empezar" -#: bookwyrm/templates/feed/feed_layout.html:24 -#: bookwyrm/templates/user/shelf/shelf.html:28 +#: bookwyrm/templates/feed/feed_layout.html:23 +#: bookwyrm/templates/user/shelf/shelf.html:29 msgid "To Read" msgstr "Para leer" -#: bookwyrm/templates/feed/feed_layout.html:25 -#: bookwyrm/templates/user/shelf/shelf.html:28 +#: bookwyrm/templates/feed/feed_layout.html:24 +#: bookwyrm/templates/user/shelf/shelf.html:29 msgid "Currently Reading" msgstr "Leyendo actualmente" -#: bookwyrm/templates/feed/feed_layout.html:26 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:11 -#: bookwyrm/templates/user/shelf/shelf.html:28 +#: bookwyrm/templates/feed/feed_layout.html:25 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:13 +#: bookwyrm/templates/user/shelf/shelf.html:29 msgid "Read" msgstr "Leido" -#: bookwyrm/templates/feed/feed_layout.html:88 bookwyrm/templates/goal.html:26 +#: bookwyrm/templates/feed/feed_layout.html:87 bookwyrm/templates/goal.html:26 #: bookwyrm/templates/snippets/goal_card.html:6 #, python-format msgid "%(year)s Reading Goal" @@ -916,7 +944,7 @@ msgid "What are you reading?" msgstr "¿Qué estás leyendo?" #: bookwyrm/templates/get_started/books.html:9 -#: bookwyrm/templates/lists/list.html:119 +#: bookwyrm/templates/lists/list.html:120 msgid "Search for a book" msgstr "Buscar libros" @@ -936,7 +964,7 @@ msgstr "Puedes agregar libros cuando comiences a usar %(site_name)s." #: bookwyrm/templates/get_started/users.html:18 #: bookwyrm/templates/get_started/users.html:19 #: bookwyrm/templates/layout.html:38 bookwyrm/templates/layout.html:39 -#: bookwyrm/templates/lists/list.html:123 +#: bookwyrm/templates/lists/list.html:124 #: bookwyrm/templates/search/layout.html:4 #: bookwyrm/templates/search/layout.html:9 msgid "Search" @@ -952,7 +980,7 @@ msgid "Popular on %(site_name)s" msgstr "Popular en %(site_name)s" #: bookwyrm/templates/get_started/books.html:58 -#: bookwyrm/templates/lists/list.html:136 +#: bookwyrm/templates/lists/list.html:137 msgid "No books found" msgstr "No se encontró ningún libro" @@ -1072,95 +1100,95 @@ msgstr "Importar libros" msgid "Data source:" msgstr "Fuente de datos:" -#: bookwyrm/templates/import.html:29 +#: bookwyrm/templates/import.html:32 msgid "Data file:" msgstr "Archivo de datos:" -#: bookwyrm/templates/import.html:37 +#: bookwyrm/templates/import.html:40 msgid "Include reviews" msgstr "Incluir reseñas" -#: bookwyrm/templates/import.html:42 +#: bookwyrm/templates/import.html:45 msgid "Privacy setting for imported reviews:" msgstr "Configuración de privacidad para las reseñas importadas:" -#: bookwyrm/templates/import.html:48 +#: bookwyrm/templates/import.html:51 #: bookwyrm/templates/settings/server_blocklist.html:64 msgid "Import" msgstr "Importar" -#: bookwyrm/templates/import.html:53 +#: bookwyrm/templates/import.html:56 msgid "Recent Imports" msgstr "Importaciones recientes" -#: bookwyrm/templates/import.html:55 +#: bookwyrm/templates/import.html:58 msgid "No recent imports" msgstr "No hay ninguna importación reciente" -#: bookwyrm/templates/import_status.html:6 -#: bookwyrm/templates/import_status.html:10 +#: bookwyrm/templates/import_status.html:5 +#: bookwyrm/templates/import_status.html:9 msgid "Import Status" msgstr "Status de importación" -#: bookwyrm/templates/import_status.html:13 +#: bookwyrm/templates/import_status.html:12 msgid "Import started:" msgstr "Importación ha empezado:" -#: bookwyrm/templates/import_status.html:17 +#: bookwyrm/templates/import_status.html:16 msgid "Import completed:" msgstr "Importación ha terminado:" -#: bookwyrm/templates/import_status.html:20 +#: bookwyrm/templates/import_status.html:19 msgid "TASK FAILED" msgstr "TAREA FALLÓ" -#: bookwyrm/templates/import_status.html:26 +#: bookwyrm/templates/import_status.html:25 msgid "Import still in progress." msgstr "Importación todavia en progreso" -#: bookwyrm/templates/import_status.html:28 +#: bookwyrm/templates/import_status.html:27 msgid "(Hit reload to update!)" msgstr "(¡Refresca para actualizar!)" -#: bookwyrm/templates/import_status.html:35 +#: bookwyrm/templates/import_status.html:34 msgid "Failed to load" msgstr "No se pudo cargar" -#: bookwyrm/templates/import_status.html:44 +#: bookwyrm/templates/import_status.html:43 #, python-format msgid "Jump to the bottom of the list to select the %(failed_count)s items which failed to import." msgstr "Saltar al final de la lista para seleccionar los %(failed_count)s artículos que no se pudieron importar." -#: bookwyrm/templates/import_status.html:79 +#: bookwyrm/templates/import_status.html:78 msgid "Select all" msgstr "Seleccionar todo" -#: bookwyrm/templates/import_status.html:82 +#: bookwyrm/templates/import_status.html:81 msgid "Retry items" msgstr "Reintentar ítems" -#: bookwyrm/templates/import_status.html:108 +#: bookwyrm/templates/import_status.html:107 msgid "Successfully imported" msgstr "Importado exitosamente" -#: bookwyrm/templates/import_status.html:112 +#: bookwyrm/templates/import_status.html:111 msgid "Book" msgstr "Libro" -#: bookwyrm/templates/import_status.html:115 -#: bookwyrm/templates/snippets/create_status_form.html:10 -#: bookwyrm/templates/user/shelf/shelf.html:77 -#: bookwyrm/templates/user/shelf/shelf.html:95 +#: bookwyrm/templates/import_status.html:114 +#: bookwyrm/templates/snippets/create_status_form.html:13 +#: bookwyrm/templates/user/shelf/shelf.html:78 +#: bookwyrm/templates/user/shelf/shelf.html:98 msgid "Title" msgstr "Título" -#: bookwyrm/templates/import_status.html:118 -#: bookwyrm/templates/user/shelf/shelf.html:78 -#: bookwyrm/templates/user/shelf/shelf.html:98 +#: bookwyrm/templates/import_status.html:117 +#: bookwyrm/templates/user/shelf/shelf.html:79 +#: bookwyrm/templates/user/shelf/shelf.html:101 msgid "Author" msgstr "Autor/Autora" -#: bookwyrm/templates/import_status.html:141 +#: bookwyrm/templates/import_status.html:140 msgid "Imported" msgstr "Importado" @@ -1271,7 +1299,8 @@ msgid "Support %(site_name)s on % msgstr "Apoyar %(site_name)s en %(support_title)s" #: bookwyrm/templates/layout.html:217 -msgid "BookWyrm is open source software. You can contribute or report issues on GitHub." +#| msgid "BookWyrm is open source software. You can contribute or report issues on GitHub." +msgid "BookWyrm's source code is freely available. You can contribute or report issues on GitHub." msgstr "BookWyrm es software de código abierto. Puedes contribuir o reportar problemas en GitHub." #: bookwyrm/templates/lists/create_form.html:5 @@ -1314,7 +1343,7 @@ msgid "Discard" msgstr "Desechar" #: bookwyrm/templates/lists/edit_form.html:5 -#: bookwyrm/templates/lists/list_layout.html:18 +#: bookwyrm/templates/lists/list_layout.html:17 msgid "Edit List" msgstr "Editar lista" @@ -1348,68 +1377,68 @@ msgstr "Abierto" msgid "Anyone can add books to this list" msgstr "Cualquer usuario puede agregar libros a esta lista" -#: bookwyrm/templates/lists/list.html:19 +#: bookwyrm/templates/lists/list.html:20 msgid "You successfully suggested a book for this list!" msgstr "" -#: bookwyrm/templates/lists/list.html:21 +#: bookwyrm/templates/lists/list.html:22 #, fuzzy #| msgid "Anyone can add books to this list" msgid "You successfully added a book to this list!" msgstr "Cualquer usuario puede agregar libros a esta lista" -#: bookwyrm/templates/lists/list.html:27 +#: bookwyrm/templates/lists/list.html:28 msgid "This list is currently empty" msgstr "Esta lista está vacia" -#: bookwyrm/templates/lists/list.html:64 +#: bookwyrm/templates/lists/list.html:65 #, python-format msgid "Added by %(username)s" msgstr "Agregado por %(username)s" -#: bookwyrm/templates/lists/list.html:76 +#: bookwyrm/templates/lists/list.html:77 msgid "Set" msgstr "Establecido" -#: bookwyrm/templates/lists/list.html:79 +#: bookwyrm/templates/lists/list.html:80 msgid "List position" msgstr "Posición" -#: bookwyrm/templates/lists/list.html:85 +#: bookwyrm/templates/lists/list.html:86 #: bookwyrm/templates/snippets/shelf_selector.html:26 msgid "Remove" msgstr "Quitar" -#: bookwyrm/templates/lists/list.html:98 bookwyrm/templates/lists/list.html:110 +#: bookwyrm/templates/lists/list.html:99 bookwyrm/templates/lists/list.html:111 msgid "Sort List" msgstr "Ordena la lista" -#: bookwyrm/templates/lists/list.html:104 +#: bookwyrm/templates/lists/list.html:105 msgid "Direction" msgstr "Dirección" -#: bookwyrm/templates/lists/list.html:115 +#: bookwyrm/templates/lists/list.html:116 msgid "Add Books" msgstr "Agregar libros" -#: bookwyrm/templates/lists/list.html:115 +#: bookwyrm/templates/lists/list.html:116 msgid "Suggest Books" msgstr "Sugerir libros" -#: bookwyrm/templates/lists/list.html:124 +#: bookwyrm/templates/lists/list.html:125 msgid "search" msgstr "buscar" -#: bookwyrm/templates/lists/list.html:130 +#: bookwyrm/templates/lists/list.html:131 msgid "Clear search" msgstr "Borrar búsqueda" -#: bookwyrm/templates/lists/list.html:135 +#: bookwyrm/templates/lists/list.html:136 #, python-format msgid "No books found matching the query \"%(query)s\"" msgstr "No se encontró ningún libro correspondiente a la búsqueda: \"%(query)s\"" -#: bookwyrm/templates/lists/list.html:163 +#: bookwyrm/templates/lists/list.html:164 msgid "Suggest" msgstr "Sugerir" @@ -1434,36 +1463,36 @@ msgstr "Contactar a unx administradorx para recibir una invitación" msgid "More about this site" msgstr "Más sobre este sitio" +#: bookwyrm/templates/moderation/report.html:5 #: bookwyrm/templates/moderation/report.html:6 -#: bookwyrm/templates/moderation/report.html:7 #: bookwyrm/templates/moderation/report_preview.html:6 #, python-format msgid "Report #%(report_id)s: %(username)s" msgstr "Reportar #%(report_id)s: %(username)s" -#: bookwyrm/templates/moderation/report.html:11 +#: bookwyrm/templates/moderation/report.html:10 msgid "Back to reports" msgstr "Volver a los informes" -#: bookwyrm/templates/moderation/report.html:23 +#: bookwyrm/templates/moderation/report.html:22 msgid "Moderator Comments" msgstr "Comentarios de moderador" -#: bookwyrm/templates/moderation/report.html:41 +#: bookwyrm/templates/moderation/report.html:40 #: bookwyrm/templates/snippets/create_status.html:28 -#: bookwyrm/templates/snippets/create_status_form.html:63 +#: bookwyrm/templates/snippets/create_status_form.html:66 msgid "Comment" msgstr "Comentario" -#: bookwyrm/templates/moderation/report.html:46 +#: bookwyrm/templates/moderation/report.html:45 msgid "Reported statuses" msgstr "Statuses reportados" -#: bookwyrm/templates/moderation/report.html:48 +#: bookwyrm/templates/moderation/report.html:47 msgid "No statuses reported" msgstr "Ningún estatus reportado" -#: bookwyrm/templates/moderation/report.html:54 +#: bookwyrm/templates/moderation/report.html:53 msgid "Status has been deleted" msgstr "Status ha sido eliminado" @@ -1741,7 +1770,7 @@ msgstr "Buscar" #: bookwyrm/templates/search/layout.html:21 #: bookwyrm/templates/search/layout.html:42 -#: bookwyrm/templates/user/layout.html:73 +#: bookwyrm/templates/user/layout.html:74 msgid "Books" msgstr "Libros" @@ -1814,7 +1843,7 @@ msgid "Add server" msgstr "Agregar servidor" #: bookwyrm/templates/settings/edit_server.html:7 -#: bookwyrm/templates/settings/federated_server.html:12 +#: bookwyrm/templates/settings/federated_server.html:13 #: bookwyrm/templates/settings/server_blocklist.html:7 msgid "Back to server list" msgstr "Volver a la lista de servidores" @@ -1829,24 +1858,24 @@ msgid "Instance:" msgstr "Instancia:" #: bookwyrm/templates/settings/edit_server.html:37 -#: bookwyrm/templates/settings/federated_server.html:29 +#: bookwyrm/templates/settings/federated_server.html:30 #: bookwyrm/templates/user_admin/user_info.html:34 msgid "Status:" msgstr "Status:" #: bookwyrm/templates/settings/edit_server.html:41 -#: bookwyrm/templates/settings/federated_server.html:9 +#: bookwyrm/templates/settings/federated_server.html:10 msgid "Blocked" msgstr "Bloqueado" #: bookwyrm/templates/settings/edit_server.html:48 -#: bookwyrm/templates/settings/federated_server.html:21 +#: bookwyrm/templates/settings/federated_server.html:22 #: bookwyrm/templates/user_admin/user_info.html:26 msgid "Software:" msgstr "Software:" #: bookwyrm/templates/settings/edit_server.html:55 -#: bookwyrm/templates/settings/federated_server.html:25 +#: bookwyrm/templates/settings/federated_server.html:26 #: bookwyrm/templates/user_admin/user_info.html:30 msgid "Version:" msgstr "Versión:" @@ -1855,69 +1884,69 @@ msgstr "Versión:" msgid "Notes:" msgstr "Notas:" -#: bookwyrm/templates/settings/federated_server.html:18 +#: bookwyrm/templates/settings/federated_server.html:19 msgid "Details" msgstr "Detalles" -#: bookwyrm/templates/settings/federated_server.html:36 -#: bookwyrm/templates/user/layout.html:55 +#: bookwyrm/templates/settings/federated_server.html:37 +#: bookwyrm/templates/user/layout.html:56 msgid "Activity" msgstr "Actividad" -#: bookwyrm/templates/settings/federated_server.html:39 +#: bookwyrm/templates/settings/federated_server.html:40 msgid "Users:" msgstr "Usuarios:" -#: bookwyrm/templates/settings/federated_server.html:42 -#: bookwyrm/templates/settings/federated_server.html:49 +#: bookwyrm/templates/settings/federated_server.html:43 +#: bookwyrm/templates/settings/federated_server.html:50 msgid "View all" msgstr "Ver todos" -#: bookwyrm/templates/settings/federated_server.html:46 +#: bookwyrm/templates/settings/federated_server.html:47 msgid "Reports:" msgstr "Informes:" -#: bookwyrm/templates/settings/federated_server.html:53 +#: bookwyrm/templates/settings/federated_server.html:54 msgid "Followed by us:" msgstr "Seguido por nosotros:" -#: bookwyrm/templates/settings/federated_server.html:59 +#: bookwyrm/templates/settings/federated_server.html:60 msgid "Followed by them:" msgstr "Seguido por ellos:" -#: bookwyrm/templates/settings/federated_server.html:65 +#: bookwyrm/templates/settings/federated_server.html:66 msgid "Blocked by us:" msgstr "Bloqueado por nosotros:" -#: bookwyrm/templates/settings/federated_server.html:77 +#: bookwyrm/templates/settings/federated_server.html:78 #: bookwyrm/templates/user_admin/user_info.html:39 msgid "Notes" msgstr "Notas" -#: bookwyrm/templates/settings/federated_server.html:80 +#: bookwyrm/templates/settings/federated_server.html:81 msgid "Edit" msgstr "Editar" -#: bookwyrm/templates/settings/federated_server.html:100 +#: bookwyrm/templates/settings/federated_server.html:101 #: bookwyrm/templates/user_admin/user_moderation_actions.html:3 msgid "Actions" msgstr "Acciones" -#: bookwyrm/templates/settings/federated_server.html:104 +#: bookwyrm/templates/settings/federated_server.html:105 #: bookwyrm/templates/snippets/block_button.html:5 msgid "Block" msgstr "Bloquear" -#: bookwyrm/templates/settings/federated_server.html:105 +#: bookwyrm/templates/settings/federated_server.html:106 msgid "All users from this instance will be deactivated." msgstr "Todos los usuarios en esta instancia serán desactivados." -#: bookwyrm/templates/settings/federated_server.html:110 +#: bookwyrm/templates/settings/federated_server.html:111 #: bookwyrm/templates/snippets/block_button.html:10 msgid "Un-block" msgstr "Desbloquear" -#: bookwyrm/templates/settings/federated_server.html:111 +#: bookwyrm/templates/settings/federated_server.html:112 msgid "All users from this instance will be re-activated." msgstr "Todos los usuarios en esta instancia serán re-activados." @@ -2124,7 +2153,7 @@ msgstr "Permitir solicitudes de invitación:" msgid "Registration closed text:" msgstr "Texto de registración cerrada:" -#: bookwyrm/templates/snippets/book_cover.html:32 +#: bookwyrm/templates/snippets/book_cover.html:31 msgid "No cover" msgstr "Sin portada" @@ -2133,15 +2162,15 @@ msgstr "Sin portada" msgid "%(title)s by " msgstr "%(title)s por " -#: bookwyrm/templates/snippets/boost_button.html:8 #: bookwyrm/templates/snippets/boost_button.html:9 +#: bookwyrm/templates/snippets/boost_button.html:10 #, fuzzy #| msgid "boosted" msgid "Boost" msgstr "respaldó" -#: bookwyrm/templates/snippets/boost_button.html:15 #: bookwyrm/templates/snippets/boost_button.html:16 +#: bookwyrm/templates/snippets/boost_button.html:17 #, fuzzy #| msgid "Un-boost status" msgid "Un-boost" @@ -2163,66 +2192,66 @@ msgstr "Reseña" msgid "Quote" msgstr "Cita" -#: bookwyrm/templates/snippets/create_status_form.html:20 +#: bookwyrm/templates/snippets/create_status_form.html:23 msgid "Comment:" msgstr "Comentario:" -#: bookwyrm/templates/snippets/create_status_form.html:22 +#: bookwyrm/templates/snippets/create_status_form.html:25 msgid "Quote:" msgstr "Cita:" -#: bookwyrm/templates/snippets/create_status_form.html:24 +#: bookwyrm/templates/snippets/create_status_form.html:27 msgid "Review:" msgstr "Reseña:" -#: bookwyrm/templates/snippets/create_status_form.html:53 -#: bookwyrm/templates/snippets/status/layout.html:30 +#: bookwyrm/templates/snippets/create_status_form.html:56 +#: bookwyrm/templates/snippets/status/layout.html:29 +#: bookwyrm/templates/snippets/status/layout.html:47 #: bookwyrm/templates/snippets/status/layout.html:48 -#: bookwyrm/templates/snippets/status/layout.html:49 msgid "Reply" msgstr "Respuesta" -#: bookwyrm/templates/snippets/create_status_form.html:53 +#: bookwyrm/templates/snippets/create_status_form.html:56 #, fuzzy #| msgid "Footer Content" msgid "Content" msgstr "Contenido del pie de página" -#: bookwyrm/templates/snippets/create_status_form.html:77 +#: bookwyrm/templates/snippets/create_status_form.html:80 #: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:16 msgid "Progress:" msgstr "Progreso:" -#: bookwyrm/templates/snippets/create_status_form.html:85 -#: bookwyrm/templates/snippets/readthrough_form.html:26 +#: bookwyrm/templates/snippets/create_status_form.html:88 +#: bookwyrm/templates/snippets/readthrough_form.html:22 #: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:30 msgid "pages" msgstr "páginas" -#: bookwyrm/templates/snippets/create_status_form.html:86 -#: bookwyrm/templates/snippets/readthrough_form.html:27 +#: bookwyrm/templates/snippets/create_status_form.html:89 +#: bookwyrm/templates/snippets/readthrough_form.html:23 #: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:31 msgid "percent" msgstr "por ciento" -#: bookwyrm/templates/snippets/create_status_form.html:92 +#: bookwyrm/templates/snippets/create_status_form.html:95 #: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:36 #, python-format msgid "of %(pages)s pages" msgstr "de %(pages)s páginas" -#: bookwyrm/templates/snippets/create_status_form.html:107 +#: bookwyrm/templates/snippets/create_status_form.html:110 msgid "Include spoiler alert" msgstr "Incluir alerta de spoiler" -#: bookwyrm/templates/snippets/create_status_form.html:114 +#: bookwyrm/templates/snippets/create_status_form.html:117 #: bookwyrm/templates/snippets/privacy-icons.html:15 #: bookwyrm/templates/snippets/privacy-icons.html:16 #: bookwyrm/templates/snippets/privacy_select.html:19 msgid "Private" msgstr "Privada" -#: bookwyrm/templates/snippets/create_status_form.html:125 +#: bookwyrm/templates/snippets/create_status_form.html:128 msgid "Post" msgstr "Compartir" @@ -2236,17 +2265,17 @@ msgid "You are deleting this readthrough and its %(count)s associated progress u msgstr "Estás eliminando esta lectura y sus %(count)s actualizaciones de progreso asociados." #: bookwyrm/templates/snippets/delete_readthrough_modal.html:15 -#: bookwyrm/templates/snippets/follow_request_buttons.html:13 +#: bookwyrm/templates/snippets/follow_request_buttons.html:12 msgid "Delete" msgstr "Eliminar" -#: bookwyrm/templates/snippets/fav_button.html:7 #: bookwyrm/templates/snippets/fav_button.html:9 +#: bookwyrm/templates/snippets/fav_button.html:11 msgid "Like" msgstr "" -#: bookwyrm/templates/snippets/fav_button.html:15 -#: bookwyrm/templates/snippets/fav_button.html:16 +#: bookwyrm/templates/snippets/fav_button.html:17 +#: bookwyrm/templates/snippets/fav_button.html:18 #, fuzzy #| msgid "Un-like status" msgid "Un-like" @@ -2280,11 +2309,11 @@ msgstr "Des-enviar solicitud de seguidor" msgid "Unfollow" msgstr "Dejar de seguir" -#: bookwyrm/templates/snippets/follow_request_buttons.html:8 +#: bookwyrm/templates/snippets/follow_request_buttons.html:7 msgid "Accept" msgstr "Aceptar" -#: bookwyrm/templates/snippets/form_rate_stars.html:20 +#: bookwyrm/templates/snippets/form_rate_stars.html:19 #: bookwyrm/templates/snippets/stars.html:13 msgid "No rating" msgstr "No calificación" @@ -2333,8 +2362,8 @@ msgid "Goal privacy:" msgstr "Privacidad de meta:" #: bookwyrm/templates/snippets/goal_form.html:26 -#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:45 -#: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:33 +#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:37 +#: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:29 #: bookwyrm/templates/snippets/shelve_button/want_to_read_modal.html:20 msgid "Post to feed" msgstr "Compartir con tu feed" @@ -2446,12 +2475,12 @@ msgstr "Eliminar estas fechas de lectura" msgid "Started reading" msgstr "Lectura se empezó" -#: bookwyrm/templates/snippets/readthrough_form.html:18 +#: bookwyrm/templates/snippets/readthrough_form.html:14 msgid "Progress" msgstr "Progreso" -#: bookwyrm/templates/snippets/readthrough_form.html:34 -#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:29 +#: bookwyrm/templates/snippets/readthrough_form.html:30 +#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:25 msgid "Finished reading" msgstr "Lectura se terminó" @@ -2459,27 +2488,27 @@ msgstr "Lectura se terminó" msgid "Sign Up" msgstr "Inscribirse" -#: bookwyrm/templates/snippets/report_button.html:5 +#: bookwyrm/templates/snippets/report_button.html:6 msgid "Report" msgstr "Reportar" #: bookwyrm/templates/snippets/rss_title.html:5 -#: bookwyrm/templates/snippets/status/status_header.html:34 +#: bookwyrm/templates/snippets/status/status_header.html:35 msgid "rated" msgstr "calificó" #: bookwyrm/templates/snippets/rss_title.html:7 -#: bookwyrm/templates/snippets/status/status_header.html:36 +#: bookwyrm/templates/snippets/status/status_header.html:37 msgid "reviewed" msgstr "reseñó" #: bookwyrm/templates/snippets/rss_title.html:9 -#: bookwyrm/templates/snippets/status/status_header.html:38 +#: bookwyrm/templates/snippets/status/status_header.html:39 msgid "commented on" msgstr "comentó en" #: bookwyrm/templates/snippets/rss_title.html:11 -#: bookwyrm/templates/snippets/status/status_header.html:40 +#: bookwyrm/templates/snippets/status/status_header.html:41 msgid "quoted" msgstr "citó" @@ -2497,7 +2526,7 @@ msgid "Finish \"%(book_title)s\"" msgstr "Terminar \"%(book_title)s\"" #: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:5 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:34 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:36 msgid "Update progress" msgstr "Progreso de actualización" @@ -2505,20 +2534,20 @@ msgstr "Progreso de actualización" msgid "More shelves" msgstr "Más estantes" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:8 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:10 msgid "Start reading" msgstr "Empezar leer" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:13 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:15 msgid "Finish reading" msgstr "Terminar de leer" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:16 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:18 #: bookwyrm/templates/snippets/shelve_button/want_to_read_modal.html:26 msgid "Want to read" msgstr "Quiero leer" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:45 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:47 #, python-format msgid "Remove from %(name)s" msgstr "Quitar de %(name)s" @@ -2533,40 +2562,40 @@ msgstr "Empezar \"%(book_title)s\"" msgid "Want to Read \"%(book_title)s\"" msgstr "Quiero leer \"%(book_title)s\"" -#: bookwyrm/templates/snippets/status/content_status.html:70 -#: bookwyrm/templates/snippets/trimmed_text.html:14 +#: bookwyrm/templates/snippets/status/content_status.html:71 +#: bookwyrm/templates/snippets/trimmed_text.html:15 msgid "Show more" msgstr "Mostrar más" -#: bookwyrm/templates/snippets/status/content_status.html:85 -#: bookwyrm/templates/snippets/trimmed_text.html:29 +#: bookwyrm/templates/snippets/status/content_status.html:86 +#: bookwyrm/templates/snippets/trimmed_text.html:30 msgid "Show less" msgstr "Mostrar menos" -#: bookwyrm/templates/snippets/status/content_status.html:115 +#: bookwyrm/templates/snippets/status/content_status.html:116 msgid "Open image in new window" msgstr "Abrir imagen en una nueva ventana" -#: bookwyrm/templates/snippets/status/layout.html:22 +#: bookwyrm/templates/snippets/status/layout.html:21 #: bookwyrm/templates/snippets/status/status_options.html:17 msgid "Delete status" msgstr "Eliminar status" +#: bookwyrm/templates/snippets/status/layout.html:51 #: bookwyrm/templates/snippets/status/layout.html:52 -#: bookwyrm/templates/snippets/status/layout.html:53 msgid "Boost status" msgstr "Status de respaldo" +#: bookwyrm/templates/snippets/status/layout.html:55 #: bookwyrm/templates/snippets/status/layout.html:56 -#: bookwyrm/templates/snippets/status/layout.html:57 msgid "Like status" msgstr "Me gusta status" -#: bookwyrm/templates/snippets/status/status.html:9 +#: bookwyrm/templates/snippets/status/status.html:10 msgid "boosted" msgstr "respaldó" -#: bookwyrm/templates/snippets/status/status_header.html:44 +#: bookwyrm/templates/snippets/status/status_header.html:45 #, python-format msgid "replied to %(username)s's status" msgstr "respondió al status de %(username)s " @@ -2598,15 +2627,15 @@ msgstr "En orden ascendente" msgid "Sorted descending" msgstr "En orden descendente" -#: bookwyrm/templates/user/layout.html:12 bookwyrm/templates/user/user.html:10 +#: bookwyrm/templates/user/layout.html:13 bookwyrm/templates/user/user.html:10 msgid "User Profile" msgstr "Perfil de usuario" -#: bookwyrm/templates/user/layout.html:36 +#: bookwyrm/templates/user/layout.html:37 msgid "Follow Requests" msgstr "Solicitudes de seguidor" -#: bookwyrm/templates/user/layout.html:61 +#: bookwyrm/templates/user/layout.html:62 msgid "Reading Goal" msgstr "Meta de lectura" @@ -2652,38 +2681,38 @@ msgstr "Editar estante" msgid "Update shelf" msgstr "Actualizar estante" -#: bookwyrm/templates/user/shelf/shelf.html:24 bookwyrm/views/shelf.py:48 +#: bookwyrm/templates/user/shelf/shelf.html:25 bookwyrm/views/shelf.py:51 msgid "All books" msgstr "Todos los libros" -#: bookwyrm/templates/user/shelf/shelf.html:37 +#: bookwyrm/templates/user/shelf/shelf.html:38 msgid "Create shelf" msgstr "Crear estante" -#: bookwyrm/templates/user/shelf/shelf.html:60 +#: bookwyrm/templates/user/shelf/shelf.html:61 msgid "Edit shelf" msgstr "Editar estante" -#: bookwyrm/templates/user/shelf/shelf.html:79 -#: bookwyrm/templates/user/shelf/shelf.html:101 +#: bookwyrm/templates/user/shelf/shelf.html:80 +#: bookwyrm/templates/user/shelf/shelf.html:104 msgid "Shelved" msgstr "Archivado" -#: bookwyrm/templates/user/shelf/shelf.html:80 -#: bookwyrm/templates/user/shelf/shelf.html:105 +#: bookwyrm/templates/user/shelf/shelf.html:81 +#: bookwyrm/templates/user/shelf/shelf.html:108 msgid "Started" msgstr "Empezado" -#: bookwyrm/templates/user/shelf/shelf.html:81 -#: bookwyrm/templates/user/shelf/shelf.html:108 +#: bookwyrm/templates/user/shelf/shelf.html:82 +#: bookwyrm/templates/user/shelf/shelf.html:111 msgid "Finished" msgstr "Terminado" -#: bookwyrm/templates/user/shelf/shelf.html:134 +#: bookwyrm/templates/user/shelf/shelf.html:137 msgid "This shelf is empty." msgstr "Este estante está vacio." -#: bookwyrm/templates/user/shelf/shelf.html:140 +#: bookwyrm/templates/user/shelf/shelf.html:143 msgid "Delete shelf" msgstr "Eliminar estante" @@ -2712,24 +2741,24 @@ msgstr "Feed RSS" msgid "No activities yet!" msgstr "¡Aún no actividades!" -#: bookwyrm/templates/user/user_preview.html:14 +#: bookwyrm/templates/user/user_preview.html:15 #, python-format msgid "Joined %(date)s" msgstr "Unido %(date)s" -#: bookwyrm/templates/user/user_preview.html:18 +#: bookwyrm/templates/user/user_preview.html:19 #, python-format msgid "%(counter)s follower" msgid_plural "%(counter)s followers" msgstr[0] "%(counter)s seguidor" msgstr[1] "%(counter)s seguidores" -#: bookwyrm/templates/user/user_preview.html:19 +#: bookwyrm/templates/user/user_preview.html:20 #, python-format msgid "%(counter)s following" msgstr "%(counter)s siguiendo" -#: bookwyrm/templates/user/user_preview.html:25 +#: bookwyrm/templates/user/user_preview.html:26 #, fuzzy, python-format #| msgid "%(mutuals)s follower you follow" #| msgid_plural "%(mutuals)s followers you follow" @@ -2738,7 +2767,7 @@ msgid_plural "%(mutuals_display)s followers you follow" msgstr[0] "%(mutuals)s seguidor que sigues" msgstr[1] "%(mutuals)s seguidores que sigues" -#: bookwyrm/templates/user_admin/user.html:11 +#: bookwyrm/templates/user_admin/user.html:9 msgid "Back to users" msgstr "Volver a usuarios" @@ -2805,15 +2834,20 @@ msgstr "Des-suspender usuario" msgid "Access level:" msgstr "Nivel de acceso:" -#: bookwyrm/views/password.py:32 +#: bookwyrm/views/password.py:30 bookwyrm/views/password.py:35 msgid "No user with that email address was found." msgstr "No se pudo encontrar un usuario con esa dirección de correo electrónico." -#: bookwyrm/views/password.py:41 +#: bookwyrm/views/password.py:44 #, python-format msgid "A password reset link sent to %s" msgstr "Un enlace para reestablecer tu contraseña se enviará a %s" +#, fuzzy +#~| msgid "BookWyrm users" +#~ msgid "BookWyrm\\" +#~ msgstr "Usuarios de BookWyrm" + #, fuzzy #~| msgid "Show more" #~ msgid "Show" diff --git a/locale/fr_FR/LC_MESSAGES/django.po b/locale/fr_FR/LC_MESSAGES/django.po index cb6c74d17..6362adcc2 100644 --- a/locale/fr_FR/LC_MESSAGES/django.po +++ b/locale/fr_FR/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.1.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-10 13:23-0700\n" +"POT-Creation-Date: 2021-05-14 15:12-0700\n" "PO-Revision-Date: 2021-04-05 12:44+0100\n" "Last-Translator: Fabien Basmaison \n" "Language-Team: Mouse Reeve \n" @@ -57,13 +57,13 @@ msgstr "" msgid "Book Title" msgstr "Titre" -#: bookwyrm/forms.py:295 bookwyrm/templates/snippets/create_status_form.html:31 -#: bookwyrm/templates/user/shelf/shelf.html:82 -#: bookwyrm/templates/user/shelf/shelf.html:112 +#: bookwyrm/forms.py:295 bookwyrm/templates/snippets/create_status_form.html:34 +#: bookwyrm/templates/user/shelf/shelf.html:84 +#: bookwyrm/templates/user/shelf/shelf.html:115 msgid "Rating" msgstr "Note" -#: bookwyrm/forms.py:297 bookwyrm/templates/lists/list.html:100 +#: bookwyrm/forms.py:297 bookwyrm/templates/lists/list.html:101 msgid "Sort By" msgstr "" @@ -137,19 +137,155 @@ msgstr "Erreur côté serveur" msgid "Something went wrong! Sorry about that." msgstr "Une erreur s’est produite ; désolé !" -#: bookwyrm/templates/author.html:16 bookwyrm/templates/author.html:17 +#: bookwyrm/templates/author/author.html:17 +#: bookwyrm/templates/author/author.html:18 msgid "Edit Author" msgstr "Modifier l’auteur ou autrice" -#: bookwyrm/templates/author.html:31 +#: bookwyrm/templates/author/author.html:33 +#: bookwyrm/templates/author/edit_author.html:38 +msgid "Aliases:" +msgstr "" + +#: bookwyrm/templates/author/author.html:39 +msgid "Born:" +msgstr "" + +#: bookwyrm/templates/author/author.html:45 +msgid "Died:" +msgstr "" + +#: bookwyrm/templates/author/author.html:52 msgid "Wikipedia" msgstr "Wikipedia" -#: bookwyrm/templates/author.html:36 +#: bookwyrm/templates/author/author.html:56 +#: bookwyrm/templates/book/book.html:81 +msgid "View on OpenLibrary" +msgstr "Voir sur OpenLibrary" + +#: bookwyrm/templates/author/author.html:61 +#: bookwyrm/templates/book/book.html:84 +#, fuzzy +#| msgid "View on OpenLibrary" +msgid "View on Inventaire" +msgstr "Voir sur OpenLibrary" + +#: bookwyrm/templates/author/author.html:75 #, python-format msgid "Books by %(name)s" msgstr "Livres par %(name)s" +#: bookwyrm/templates/author/edit_author.html:5 +msgid "Edit Author:" +msgstr "Modifier l’auteur ou l’autrice :" + +#: bookwyrm/templates/author/edit_author.html:13 +#: bookwyrm/templates/book/edit_book.html:18 +msgid "Added:" +msgstr "AJouté :" + +#: bookwyrm/templates/author/edit_author.html:14 +#: bookwyrm/templates/book/edit_book.html:19 +msgid "Updated:" +msgstr "Mis à jour :" + +#: bookwyrm/templates/author/edit_author.html:15 +#: bookwyrm/templates/book/edit_book.html:20 +msgid "Last edited by:" +msgstr "Dernière modification par :" + +#: bookwyrm/templates/author/edit_author.html:31 +#: bookwyrm/templates/book/edit_book.html:90 +msgid "Metadata" +msgstr "Métadonnées" + +#: bookwyrm/templates/author/edit_author.html:32 +#: bookwyrm/templates/lists/form.html:8 +#: bookwyrm/templates/user/shelf/create_shelf_form.html:13 +#: bookwyrm/templates/user/shelf/edit_shelf_form.html:14 +msgid "Name:" +msgstr "Nom :" + +#: bookwyrm/templates/author/edit_author.html:40 +#: bookwyrm/templates/book/edit_book.html:128 +#: bookwyrm/templates/book/edit_book.html:165 +#, fuzzy +#| msgid "Separate multiple publishers with commas." +msgid "Separate multiple values with commas." +msgstr "Séparez plusieurs éditeurs par une virgule." + +#: bookwyrm/templates/author/edit_author.html:46 +msgid "Bio:" +msgstr "Bio :" + +#: bookwyrm/templates/author/edit_author.html:51 +msgid "Wikipedia link:" +msgstr "Wikipedia :" + +#: bookwyrm/templates/author/edit_author.html:57 +msgid "Birth date:" +msgstr "Date de naissance :" + +#: bookwyrm/templates/author/edit_author.html:65 +msgid "Death date:" +msgstr "Date de décès :" + +#: bookwyrm/templates/author/edit_author.html:73 +msgid "Author Identifiers" +msgstr "Identifiants de l’auteur ou autrice" + +#: bookwyrm/templates/author/edit_author.html:74 +#: bookwyrm/templates/book/edit_book.html:223 +msgid "Openlibrary key:" +msgstr "Clé Openlibrary :" + +#: bookwyrm/templates/author/edit_author.html:79 +#, fuzzy +#| msgid "View on OpenLibrary" +msgid "Inventaire ID:" +msgstr "Voir sur OpenLibrary" + +#: bookwyrm/templates/author/edit_author.html:84 +msgid "Librarything key:" +msgstr "Clé Librarything :" + +#: bookwyrm/templates/author/edit_author.html:89 +msgid "Goodreads key:" +msgstr "Clé Goodreads :" + +#: bookwyrm/templates/author/edit_author.html:98 +#: bookwyrm/templates/book/book.html:127 +#: bookwyrm/templates/book/edit_book.html:241 +#: bookwyrm/templates/lists/form.html:42 +#: bookwyrm/templates/preferences/edit_user.html:70 +#: bookwyrm/templates/settings/edit_server.html:68 +#: bookwyrm/templates/settings/federated_server.html:94 +#: bookwyrm/templates/settings/site.html:97 +#: bookwyrm/templates/snippets/readthrough.html:77 +#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:42 +#: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:42 +#: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:34 +#: bookwyrm/templates/user_admin/user_moderation_actions.html:38 +msgid "Save" +msgstr "Enregistrer" + +#: bookwyrm/templates/author/edit_author.html:99 +#: bookwyrm/templates/book/book.html:128 bookwyrm/templates/book/book.html:180 +#: bookwyrm/templates/book/cover_modal.html:32 +#: bookwyrm/templates/book/edit_book.html:242 +#: bookwyrm/templates/moderation/report_modal.html:34 +#: bookwyrm/templates/settings/federated_server.html:95 +#: bookwyrm/templates/snippets/delete_readthrough_modal.html:17 +#: bookwyrm/templates/snippets/goal_form.html:32 +#: bookwyrm/templates/snippets/readthrough.html:78 +#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:43 +#: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:43 +#: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:35 +#: bookwyrm/templates/snippets/shelve_button/want_to_read_modal.html:28 +msgid "Cancel" +msgstr "Annuler" + #: bookwyrm/templates/book/book.html:33 #: bookwyrm/templates/discover/large-book.html:25 #: bookwyrm/templates/discover/small-book.html:19 @@ -169,16 +305,6 @@ msgstr "Ajouter une couverture" msgid "Failed to load cover" msgstr "La couverture n’a pu être chargée" -#: bookwyrm/templates/book/book.html:81 -msgid "View on OpenLibrary" -msgstr "Voir sur OpenLibrary" - -#: bookwyrm/templates/book/book.html:84 -#, fuzzy -#| msgid "View on OpenLibrary" -msgid "View on Inventaire" -msgstr "Voir sur OpenLibrary" - #: bookwyrm/templates/book/book.html:104 #, python-format msgid "(%(review_count)s review)" @@ -196,37 +322,6 @@ msgstr "Ajouter une description" msgid "Description:" msgstr "Description :" -#: bookwyrm/templates/book/book.html:127 -#: bookwyrm/templates/book/edit_book.html:249 -#: bookwyrm/templates/edit_author.html:78 bookwyrm/templates/lists/form.html:42 -#: bookwyrm/templates/preferences/edit_user.html:70 -#: bookwyrm/templates/settings/edit_server.html:68 -#: bookwyrm/templates/settings/federated_server.html:93 -#: bookwyrm/templates/settings/site.html:97 -#: bookwyrm/templates/snippets/readthrough.html:77 -#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:50 -#: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:42 -#: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:38 -#: bookwyrm/templates/user_admin/user_moderation_actions.html:38 -msgid "Save" -msgstr "Enregistrer" - -#: bookwyrm/templates/book/book.html:128 bookwyrm/templates/book/book.html:180 -#: bookwyrm/templates/book/cover_modal.html:32 -#: bookwyrm/templates/book/edit_book.html:250 -#: bookwyrm/templates/edit_author.html:79 -#: bookwyrm/templates/moderation/report_modal.html:34 -#: bookwyrm/templates/settings/federated_server.html:94 -#: bookwyrm/templates/snippets/delete_readthrough_modal.html:17 -#: bookwyrm/templates/snippets/goal_form.html:32 -#: bookwyrm/templates/snippets/readthrough.html:78 -#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:51 -#: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:43 -#: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:39 -#: bookwyrm/templates/snippets/shelve_button/want_to_read_modal.html:28 -msgid "Cancel" -msgstr "Annuler" - #: bookwyrm/templates/book/book.html:137 #, python-format msgid "%(count)s editions" @@ -298,7 +393,7 @@ msgstr "Lieux" #: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/search/layout.html:25 #: bookwyrm/templates/search/layout.html:50 -#: bookwyrm/templates/user/layout.html:67 +#: bookwyrm/templates/user/layout.html:68 msgid "Lists" msgstr "Listes" @@ -308,7 +403,7 @@ msgstr "Ajouter à la liste" #: bookwyrm/templates/book/book.html:320 #: bookwyrm/templates/book/cover_modal.html:31 -#: bookwyrm/templates/lists/list.html:163 +#: bookwyrm/templates/lists/list.html:164 msgid "Add" msgstr "Ajouter" @@ -317,22 +412,22 @@ msgid "ISBN:" msgstr "ISBN :" #: bookwyrm/templates/book/book_identifiers.html:15 -#: bookwyrm/templates/book/edit_book.html:235 +#: bookwyrm/templates/book/edit_book.html:227 msgid "OCLC Number:" msgstr "Numéro OCLC :" #: bookwyrm/templates/book/book_identifiers.html:22 -#: bookwyrm/templates/book/edit_book.html:239 +#: bookwyrm/templates/book/edit_book.html:231 msgid "ASIN:" msgstr "ASIN :" #: bookwyrm/templates/book/cover_modal.html:17 -#: bookwyrm/templates/book/edit_book.html:187 +#: bookwyrm/templates/book/edit_book.html:179 msgid "Upload cover:" msgstr "Charger une couverture :" #: bookwyrm/templates/book/cover_modal.html:23 -#: bookwyrm/templates/book/edit_book.html:193 +#: bookwyrm/templates/book/edit_book.html:185 msgid "Load cover from url:" msgstr "Charger la couverture depuis une URL :" @@ -347,21 +442,6 @@ msgstr "Modifier « %(book_title)s »" msgid "Add Book" msgstr "Ajouter un livre" -#: bookwyrm/templates/book/edit_book.html:18 -#: bookwyrm/templates/edit_author.html:13 -msgid "Added:" -msgstr "AJouté :" - -#: bookwyrm/templates/book/edit_book.html:19 -#: bookwyrm/templates/edit_author.html:14 -msgid "Updated:" -msgstr "Mis à jour :" - -#: bookwyrm/templates/book/edit_book.html:20 -#: bookwyrm/templates/edit_author.html:15 -msgid "Last edited by:" -msgstr "Dernière modification par :" - #: bookwyrm/templates/book/edit_book.html:40 msgid "Confirm Book Info" msgstr "Confirmer les informations de ce livre" @@ -403,11 +483,6 @@ msgstr "Confirmer" msgid "Back" msgstr "Retour" -#: bookwyrm/templates/book/edit_book.html:90 -#: bookwyrm/templates/edit_author.html:31 -msgid "Metadata" -msgstr "Métadonnées" - #: bookwyrm/templates/book/edit_book.html:92 msgid "Title:" msgstr "Titre :" @@ -428,76 +503,67 @@ msgstr "Numéro dans la série :" msgid "Publisher:" msgstr "Éditeur :" -#: bookwyrm/templates/book/edit_book.html:128 -msgid "Separate multiple publishers with commas." -msgstr "Séparez plusieurs éditeurs par une virgule." - #: bookwyrm/templates/book/edit_book.html:135 msgid "First published date:" msgstr "Première date de publication :" -#: bookwyrm/templates/book/edit_book.html:147 +#: bookwyrm/templates/book/edit_book.html:143 msgid "Published date:" msgstr "Date de publication :" -#: bookwyrm/templates/book/edit_book.html:160 +#: bookwyrm/templates/book/edit_book.html:152 msgid "Authors" msgstr "Auteurs ou autrices" -#: bookwyrm/templates/book/edit_book.html:166 +#: bookwyrm/templates/book/edit_book.html:158 #, python-format msgid "Remove %(name)s" msgstr "Supprimer %(name)s" -#: bookwyrm/templates/book/edit_book.html:171 +#: bookwyrm/templates/book/edit_book.html:163 msgid "Add Authors:" msgstr "Ajouter des auteurs ou autrices :" -#: bookwyrm/templates/book/edit_book.html:172 +#: bookwyrm/templates/book/edit_book.html:164 msgid "John Doe, Jane Smith" msgstr "Claude Dupont, Dominique Durand" -#: bookwyrm/templates/book/edit_book.html:178 -#: bookwyrm/templates/user/shelf/shelf.html:76 +#: bookwyrm/templates/book/edit_book.html:170 +#: bookwyrm/templates/user/shelf/shelf.html:77 msgid "Cover" msgstr "Couverture" -#: bookwyrm/templates/book/edit_book.html:206 +#: bookwyrm/templates/book/edit_book.html:198 msgid "Physical Properties" msgstr "Propriétés physiques" -#: bookwyrm/templates/book/edit_book.html:207 +#: bookwyrm/templates/book/edit_book.html:199 #: bookwyrm/templates/book/format_filter.html:5 msgid "Format:" msgstr "Format :" -#: bookwyrm/templates/book/edit_book.html:215 +#: bookwyrm/templates/book/edit_book.html:207 msgid "Pages:" msgstr "Pages :" -#: bookwyrm/templates/book/edit_book.html:222 +#: bookwyrm/templates/book/edit_book.html:214 msgid "Book Identifiers" msgstr "Identifiants du livre" -#: bookwyrm/templates/book/edit_book.html:223 +#: bookwyrm/templates/book/edit_book.html:215 msgid "ISBN 13:" msgstr "ISBN 13 :" -#: bookwyrm/templates/book/edit_book.html:227 +#: bookwyrm/templates/book/edit_book.html:219 msgid "ISBN 10:" msgstr "ISBN 10 :" -#: bookwyrm/templates/book/edit_book.html:231 -#: bookwyrm/templates/edit_author.html:59 -msgid "Openlibrary key:" -msgstr "Clé Openlibrary :" - -#: bookwyrm/templates/book/editions.html:5 +#: bookwyrm/templates/book/editions.html:4 #, python-format msgid "Editions of %(book_title)s" msgstr "Éditions de %(book_title)s" -#: bookwyrm/templates/book/editions.html:9 +#: bookwyrm/templates/book/editions.html:8 #, python-format msgid "Editions of \"%(work_title)s\"" msgstr "Éditions de « %(work_title)s »" @@ -548,7 +614,7 @@ msgstr "Publié par %(publisher)s." #: bookwyrm/templates/components/inline_form.html:8 #: bookwyrm/templates/components/modal.html:11 -#: bookwyrm/templates/feed/feed_layout.html:70 +#: bookwyrm/templates/feed/feed_layout.html:69 #: bookwyrm/templates/get_started/layout.html:19 #: bookwyrm/templates/get_started/layout.html:52 #: bookwyrm/templates/search/book.html:32 @@ -603,23 +669,23 @@ msgstr "Suggéré" msgid "Recently active" msgstr "Actif récemment" -#: bookwyrm/templates/directory/user_card.html:32 +#: bookwyrm/templates/directory/user_card.html:33 msgid "follower you follow" msgid_plural "followers you follow" msgstr[0] "compte auquel vous êtes abonné(e)" msgstr[1] "comptes auxquels vous êtes abonné(e)" -#: bookwyrm/templates/directory/user_card.html:39 +#: bookwyrm/templates/directory/user_card.html:40 msgid "book on your shelves" msgid_plural "books on your shelves" msgstr[0] "livre sur vos étagères" msgstr[1] "livres sur vos étagères" -#: bookwyrm/templates/directory/user_card.html:47 +#: bookwyrm/templates/directory/user_card.html:48 msgid "posts" msgstr "publications" -#: bookwyrm/templates/directory/user_card.html:53 +#: bookwyrm/templates/directory/user_card.html:54 msgid "last active" msgstr "dernière activité" @@ -705,44 +771,6 @@ msgstr "Valider" msgid "Your Account" msgstr "Votre compte" -#: bookwyrm/templates/edit_author.html:5 -msgid "Edit Author:" -msgstr "Modifier l’auteur ou l’autrice :" - -#: bookwyrm/templates/edit_author.html:32 bookwyrm/templates/lists/form.html:8 -#: bookwyrm/templates/user/shelf/create_shelf_form.html:13 -#: bookwyrm/templates/user/shelf/edit_shelf_form.html:14 -msgid "Name:" -msgstr "Nom :" - -#: bookwyrm/templates/edit_author.html:37 -msgid "Bio:" -msgstr "Bio :" - -#: bookwyrm/templates/edit_author.html:42 -msgid "Wikipedia link:" -msgstr "Wikipedia :" - -#: bookwyrm/templates/edit_author.html:47 -msgid "Birth date:" -msgstr "Date de naissance :" - -#: bookwyrm/templates/edit_author.html:52 -msgid "Death date:" -msgstr "Date de décès :" - -#: bookwyrm/templates/edit_author.html:58 -msgid "Author Identifiers" -msgstr "Identifiants de l’auteur ou autrice" - -#: bookwyrm/templates/edit_author.html:64 -msgid "Librarything key:" -msgstr "Clé Librarything :" - -#: bookwyrm/templates/edit_author.html:69 -msgid "Goodreads key:" -msgstr "Clé Goodreads :" - #: bookwyrm/templates/email/html_layout.html:15 #: bookwyrm/templates/email/text_layout.html:2 msgid "Hi there," @@ -823,76 +851,76 @@ msgstr "Tous les messages" msgid "You have no messages right now." msgstr "Vous n’avez aucun message pour l’instant." -#: bookwyrm/templates/feed/feed.html:9 +#: bookwyrm/templates/feed/feed.html:8 msgid "Home Timeline" msgstr "Mon fil d’actualité" -#: bookwyrm/templates/feed/feed.html:11 +#: bookwyrm/templates/feed/feed.html:10 msgid "Local Timeline" msgstr "Fil d’actualité local" -#: bookwyrm/templates/feed/feed.html:13 +#: bookwyrm/templates/feed/feed.html:12 msgid "Federated Timeline" msgstr "Fil d’actualité des instances fédérées" -#: bookwyrm/templates/feed/feed.html:19 +#: bookwyrm/templates/feed/feed.html:18 msgid "Home" msgstr "Accueil" -#: bookwyrm/templates/feed/feed.html:22 +#: bookwyrm/templates/feed/feed.html:21 msgid "Local" msgstr "Local" -#: bookwyrm/templates/feed/feed.html:25 +#: bookwyrm/templates/feed/feed.html:24 #: bookwyrm/templates/settings/edit_server.html:40 msgid "Federated" msgstr "Fédéré" -#: bookwyrm/templates/feed/feed.html:33 +#: bookwyrm/templates/feed/feed.html:32 #, python-format msgid "load 0 unread status(es)" msgstr "charger le(s) 0 statut(s) non lu(s)" -#: bookwyrm/templates/feed/feed.html:48 +#: bookwyrm/templates/feed/feed.html:47 msgid "There aren't any activities right now! Try following a user to get started" msgstr "Aucune activité pour l’instant ! Abonnez‑vous à quelqu’un pour commencer" -#: bookwyrm/templates/feed/feed.html:56 +#: bookwyrm/templates/feed/feed.html:55 #: bookwyrm/templates/get_started/users.html:6 msgid "Who to follow" msgstr "À qui s’abonner" -#: bookwyrm/templates/feed/feed_layout.html:5 +#: bookwyrm/templates/feed/feed_layout.html:4 msgid "Updates" msgstr "Mises à jour" -#: bookwyrm/templates/feed/feed_layout.html:11 +#: bookwyrm/templates/feed/feed_layout.html:10 #: bookwyrm/templates/layout.html:59 #: bookwyrm/templates/user/shelf/books_header.html:3 msgid "Your books" msgstr "Vos livres" -#: bookwyrm/templates/feed/feed_layout.html:13 +#: bookwyrm/templates/feed/feed_layout.html:12 msgid "There are no books here right now! Try searching for a book to get started" msgstr "Aucun livre ici pour l’instant ! Cherchez un livre pour commencer" -#: bookwyrm/templates/feed/feed_layout.html:24 -#: bookwyrm/templates/user/shelf/shelf.html:28 +#: bookwyrm/templates/feed/feed_layout.html:23 +#: bookwyrm/templates/user/shelf/shelf.html:29 msgid "To Read" msgstr "À lire" -#: bookwyrm/templates/feed/feed_layout.html:25 -#: bookwyrm/templates/user/shelf/shelf.html:28 +#: bookwyrm/templates/feed/feed_layout.html:24 +#: bookwyrm/templates/user/shelf/shelf.html:29 msgid "Currently Reading" msgstr "En train de lire" -#: bookwyrm/templates/feed/feed_layout.html:26 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:11 -#: bookwyrm/templates/user/shelf/shelf.html:28 +#: bookwyrm/templates/feed/feed_layout.html:25 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:13 +#: bookwyrm/templates/user/shelf/shelf.html:29 msgid "Read" msgstr "Lu" -#: bookwyrm/templates/feed/feed_layout.html:88 bookwyrm/templates/goal.html:26 +#: bookwyrm/templates/feed/feed_layout.html:87 bookwyrm/templates/goal.html:26 #: bookwyrm/templates/snippets/goal_card.html:6 #, python-format msgid "%(year)s Reading Goal" @@ -922,7 +950,7 @@ msgid "What are you reading?" msgstr "Que lisez‑vous ?" #: bookwyrm/templates/get_started/books.html:9 -#: bookwyrm/templates/lists/list.html:119 +#: bookwyrm/templates/lists/list.html:120 msgid "Search for a book" msgstr "Chercher un livre" @@ -942,7 +970,7 @@ msgstr "Vous pourrez ajouter des livres lorsque vous commencerez à utiliser %(s #: bookwyrm/templates/get_started/users.html:18 #: bookwyrm/templates/get_started/users.html:19 #: bookwyrm/templates/layout.html:38 bookwyrm/templates/layout.html:39 -#: bookwyrm/templates/lists/list.html:123 +#: bookwyrm/templates/lists/list.html:124 #: bookwyrm/templates/search/layout.html:4 #: bookwyrm/templates/search/layout.html:9 msgid "Search" @@ -958,7 +986,7 @@ msgid "Popular on %(site_name)s" msgstr "Populaire sur %(site_name)s" #: bookwyrm/templates/get_started/books.html:58 -#: bookwyrm/templates/lists/list.html:136 +#: bookwyrm/templates/lists/list.html:137 msgid "No books found" msgstr "Aucun livre trouvé" @@ -1078,95 +1106,95 @@ msgstr "Importer des livres" msgid "Data source:" msgstr "Source de données :" -#: bookwyrm/templates/import.html:29 +#: bookwyrm/templates/import.html:32 msgid "Data file:" msgstr "Fichier de données :" -#: bookwyrm/templates/import.html:37 +#: bookwyrm/templates/import.html:40 msgid "Include reviews" msgstr "Importer les critiques" -#: bookwyrm/templates/import.html:42 +#: bookwyrm/templates/import.html:45 msgid "Privacy setting for imported reviews:" msgstr "Confidentialité des critiques importées :" -#: bookwyrm/templates/import.html:48 +#: bookwyrm/templates/import.html:51 #: bookwyrm/templates/settings/server_blocklist.html:64 msgid "Import" msgstr "Importer" -#: bookwyrm/templates/import.html:53 +#: bookwyrm/templates/import.html:56 msgid "Recent Imports" msgstr "Importations récentes" -#: bookwyrm/templates/import.html:55 +#: bookwyrm/templates/import.html:58 msgid "No recent imports" msgstr "Aucune importation récente" -#: bookwyrm/templates/import_status.html:6 -#: bookwyrm/templates/import_status.html:10 +#: bookwyrm/templates/import_status.html:5 +#: bookwyrm/templates/import_status.html:9 msgid "Import Status" msgstr "Statut de l’importation" -#: bookwyrm/templates/import_status.html:13 +#: bookwyrm/templates/import_status.html:12 msgid "Import started:" msgstr "Importation en cours :" -#: bookwyrm/templates/import_status.html:17 +#: bookwyrm/templates/import_status.html:16 msgid "Import completed:" msgstr "Importation terminé :" -#: bookwyrm/templates/import_status.html:20 +#: bookwyrm/templates/import_status.html:19 msgid "TASK FAILED" msgstr "la tâche a échoué" -#: bookwyrm/templates/import_status.html:26 +#: bookwyrm/templates/import_status.html:25 msgid "Import still in progress." msgstr "L’importation est toujours en cours" -#: bookwyrm/templates/import_status.html:28 +#: bookwyrm/templates/import_status.html:27 msgid "(Hit reload to update!)" msgstr "(Rechargez la page pour mettre à jour !" -#: bookwyrm/templates/import_status.html:35 +#: bookwyrm/templates/import_status.html:34 msgid "Failed to load" msgstr "Items non importés" -#: bookwyrm/templates/import_status.html:44 +#: bookwyrm/templates/import_status.html:43 #, python-format msgid "Jump to the bottom of the list to select the %(failed_count)s items which failed to import." msgstr "Sauter en bas de liste pour sélectionner les %(failed_count)s items n’ayant pu être importés." -#: bookwyrm/templates/import_status.html:79 +#: bookwyrm/templates/import_status.html:78 msgid "Select all" msgstr "Tout sélectionner" -#: bookwyrm/templates/import_status.html:82 +#: bookwyrm/templates/import_status.html:81 msgid "Retry items" msgstr "Essayer d’importer les items sélectionnés de nouveau" -#: bookwyrm/templates/import_status.html:108 +#: bookwyrm/templates/import_status.html:107 msgid "Successfully imported" msgstr "Importation réussie" -#: bookwyrm/templates/import_status.html:112 +#: bookwyrm/templates/import_status.html:111 msgid "Book" msgstr "Livre" -#: bookwyrm/templates/import_status.html:115 -#: bookwyrm/templates/snippets/create_status_form.html:10 -#: bookwyrm/templates/user/shelf/shelf.html:77 -#: bookwyrm/templates/user/shelf/shelf.html:95 +#: bookwyrm/templates/import_status.html:114 +#: bookwyrm/templates/snippets/create_status_form.html:13 +#: bookwyrm/templates/user/shelf/shelf.html:78 +#: bookwyrm/templates/user/shelf/shelf.html:98 msgid "Title" msgstr "Titre" -#: bookwyrm/templates/import_status.html:118 -#: bookwyrm/templates/user/shelf/shelf.html:78 -#: bookwyrm/templates/user/shelf/shelf.html:98 +#: bookwyrm/templates/import_status.html:117 +#: bookwyrm/templates/user/shelf/shelf.html:79 +#: bookwyrm/templates/user/shelf/shelf.html:101 msgid "Author" msgstr "Auteur ou autrice" -#: bookwyrm/templates/import_status.html:141 +#: bookwyrm/templates/import_status.html:140 msgid "Imported" msgstr "Importé" @@ -1277,7 +1305,8 @@ msgid "Support %(site_name)s on % msgstr "Soutenez %(site_name)s avec %(support_title)s" #: bookwyrm/templates/layout.html:217 -msgid "BookWyrm is open source software. You can contribute or report issues on GitHub." +#| msgid "BookWyrm is open source software. You can contribute or report issues on GitHub." +msgid "BookWyrm's source code is freely available. You can contribute or report issues on GitHub." msgstr "BookWyrm est un logiciel libre. Vous pouvez contribuer ou faire des rapports de bogues via GitHub." #: bookwyrm/templates/lists/create_form.html:5 @@ -1320,7 +1349,7 @@ msgid "Discard" msgstr "Rejeter" #: bookwyrm/templates/lists/edit_form.html:5 -#: bookwyrm/templates/lists/list_layout.html:18 +#: bookwyrm/templates/lists/list_layout.html:17 msgid "Edit List" msgstr "Modifier la liste" @@ -1354,76 +1383,76 @@ msgstr "Ouverte" msgid "Anyone can add books to this list" msgstr "N’importe qui peut suggérer des livres" -#: bookwyrm/templates/lists/list.html:19 +#: bookwyrm/templates/lists/list.html:20 msgid "You successfully suggested a book for this list!" msgstr "" -#: bookwyrm/templates/lists/list.html:21 +#: bookwyrm/templates/lists/list.html:22 #, fuzzy #| msgid "Anyone can add books to this list" msgid "You successfully added a book to this list!" msgstr "N’importe qui peut suggérer des livres" -#: bookwyrm/templates/lists/list.html:27 +#: bookwyrm/templates/lists/list.html:28 msgid "This list is currently empty" msgstr "Cette liste est vide actuellement" -#: bookwyrm/templates/lists/list.html:64 +#: bookwyrm/templates/lists/list.html:65 #, python-format msgid "Added by %(username)s" msgstr "Ajoutée par %(username)s" -#: bookwyrm/templates/lists/list.html:76 +#: bookwyrm/templates/lists/list.html:77 #, fuzzy #| msgid "Sent" msgid "Set" msgstr "Envoyé(e)s" -#: bookwyrm/templates/lists/list.html:79 +#: bookwyrm/templates/lists/list.html:80 #, fuzzy #| msgid "List curation:" msgid "List position" msgstr "Modération de la liste :" -#: bookwyrm/templates/lists/list.html:85 +#: bookwyrm/templates/lists/list.html:86 #: bookwyrm/templates/snippets/shelf_selector.html:26 msgid "Remove" msgstr "Supprimer" -#: bookwyrm/templates/lists/list.html:98 bookwyrm/templates/lists/list.html:110 +#: bookwyrm/templates/lists/list.html:99 bookwyrm/templates/lists/list.html:111 #, fuzzy #| msgid "Your Lists" msgid "Sort List" msgstr "Vos listes" -#: bookwyrm/templates/lists/list.html:104 +#: bookwyrm/templates/lists/list.html:105 #, fuzzy #| msgid "Directory" msgid "Direction" msgstr "Répertoire" -#: bookwyrm/templates/lists/list.html:115 +#: bookwyrm/templates/lists/list.html:116 msgid "Add Books" msgstr "Ajouter des livres" -#: bookwyrm/templates/lists/list.html:115 +#: bookwyrm/templates/lists/list.html:116 msgid "Suggest Books" msgstr "Suggérer des livres" -#: bookwyrm/templates/lists/list.html:124 +#: bookwyrm/templates/lists/list.html:125 msgid "search" msgstr "Chercher" -#: bookwyrm/templates/lists/list.html:130 +#: bookwyrm/templates/lists/list.html:131 msgid "Clear search" msgstr "Vider la requête" -#: bookwyrm/templates/lists/list.html:135 +#: bookwyrm/templates/lists/list.html:136 #, python-format msgid "No books found matching the query \"%(query)s\"" msgstr "Aucun livre trouvé pour la requête « %(query)s »" -#: bookwyrm/templates/lists/list.html:163 +#: bookwyrm/templates/lists/list.html:164 msgid "Suggest" msgstr "Suggérer" @@ -1448,36 +1477,36 @@ msgstr "Contacter un administrateur pour obtenir une invitation" msgid "More about this site" msgstr "En savoir plus sur ce site" +#: bookwyrm/templates/moderation/report.html:5 #: bookwyrm/templates/moderation/report.html:6 -#: bookwyrm/templates/moderation/report.html:7 #: bookwyrm/templates/moderation/report_preview.html:6 #, python-format msgid "Report #%(report_id)s: %(username)s" msgstr "Signalement #%(report_id)s : %(username)s" -#: bookwyrm/templates/moderation/report.html:11 +#: bookwyrm/templates/moderation/report.html:10 msgid "Back to reports" msgstr "Retour aux signalements" -#: bookwyrm/templates/moderation/report.html:23 +#: bookwyrm/templates/moderation/report.html:22 msgid "Moderator Comments" msgstr "Commentaires de l’équipe de modération" -#: bookwyrm/templates/moderation/report.html:41 +#: bookwyrm/templates/moderation/report.html:40 #: bookwyrm/templates/snippets/create_status.html:28 -#: bookwyrm/templates/snippets/create_status_form.html:63 +#: bookwyrm/templates/snippets/create_status_form.html:66 msgid "Comment" msgstr "Commentaire" -#: bookwyrm/templates/moderation/report.html:46 +#: bookwyrm/templates/moderation/report.html:45 msgid "Reported statuses" msgstr "Statuts signalés" -#: bookwyrm/templates/moderation/report.html:48 +#: bookwyrm/templates/moderation/report.html:47 msgid "No statuses reported" msgstr "Aucun statut signalé" -#: bookwyrm/templates/moderation/report.html:54 +#: bookwyrm/templates/moderation/report.html:53 #, fuzzy #| msgid "Statuses has been deleted" msgid "Status has been deleted" @@ -1757,7 +1786,7 @@ msgstr "Chercher" #: bookwyrm/templates/search/layout.html:21 #: bookwyrm/templates/search/layout.html:42 -#: bookwyrm/templates/user/layout.html:73 +#: bookwyrm/templates/user/layout.html:74 msgid "Books" msgstr "Livres" @@ -1832,7 +1861,7 @@ msgid "Add server" msgstr "Ajouter une couverture" #: bookwyrm/templates/settings/edit_server.html:7 -#: bookwyrm/templates/settings/federated_server.html:12 +#: bookwyrm/templates/settings/federated_server.html:13 #: bookwyrm/templates/settings/server_blocklist.html:7 msgid "Back to server list" msgstr "Retour à la liste des serveurs" @@ -1851,26 +1880,26 @@ msgid "Instance:" msgstr "Nom de l’instance :" #: bookwyrm/templates/settings/edit_server.html:37 -#: bookwyrm/templates/settings/federated_server.html:29 +#: bookwyrm/templates/settings/federated_server.html:30 #: bookwyrm/templates/user_admin/user_info.html:34 msgid "Status:" msgstr "Statut :" #: bookwyrm/templates/settings/edit_server.html:41 -#: bookwyrm/templates/settings/federated_server.html:9 +#: bookwyrm/templates/settings/federated_server.html:10 #, fuzzy #| msgid "Block" msgid "Blocked" msgstr "Bloquer" #: bookwyrm/templates/settings/edit_server.html:48 -#: bookwyrm/templates/settings/federated_server.html:21 +#: bookwyrm/templates/settings/federated_server.html:22 #: bookwyrm/templates/user_admin/user_info.html:26 msgid "Software:" msgstr "Logiciel :" #: bookwyrm/templates/settings/edit_server.html:55 -#: bookwyrm/templates/settings/federated_server.html:25 +#: bookwyrm/templates/settings/federated_server.html:26 #: bookwyrm/templates/user_admin/user_info.html:30 msgid "Version:" msgstr "Description :" @@ -1879,71 +1908,71 @@ msgstr "Description :" msgid "Notes:" msgstr "" -#: bookwyrm/templates/settings/federated_server.html:18 +#: bookwyrm/templates/settings/federated_server.html:19 msgid "Details" msgstr "Détails" -#: bookwyrm/templates/settings/federated_server.html:36 -#: bookwyrm/templates/user/layout.html:55 +#: bookwyrm/templates/settings/federated_server.html:37 +#: bookwyrm/templates/user/layout.html:56 msgid "Activity" msgstr "Activité" -#: bookwyrm/templates/settings/federated_server.html:39 +#: bookwyrm/templates/settings/federated_server.html:40 msgid "Users:" msgstr "Comptes :" -#: bookwyrm/templates/settings/federated_server.html:42 -#: bookwyrm/templates/settings/federated_server.html:49 +#: bookwyrm/templates/settings/federated_server.html:43 +#: bookwyrm/templates/settings/federated_server.html:50 msgid "View all" msgstr "Voir tous" -#: bookwyrm/templates/settings/federated_server.html:46 +#: bookwyrm/templates/settings/federated_server.html:47 msgid "Reports:" msgstr "Signalements :" -#: bookwyrm/templates/settings/federated_server.html:53 +#: bookwyrm/templates/settings/federated_server.html:54 msgid "Followed by us:" msgstr "Suivi par nous :" -#: bookwyrm/templates/settings/federated_server.html:59 +#: bookwyrm/templates/settings/federated_server.html:60 msgid "Followed by them:" msgstr "Suivi par eux :" -#: bookwyrm/templates/settings/federated_server.html:65 +#: bookwyrm/templates/settings/federated_server.html:66 msgid "Blocked by us:" msgstr "Bloqués par nous :" -#: bookwyrm/templates/settings/federated_server.html:77 +#: bookwyrm/templates/settings/federated_server.html:78 #: bookwyrm/templates/user_admin/user_info.html:39 msgid "Notes" msgstr "" -#: bookwyrm/templates/settings/federated_server.html:80 +#: bookwyrm/templates/settings/federated_server.html:81 #, fuzzy #| msgid "Edit Book" msgid "Edit" msgstr "Modifier le livre" -#: bookwyrm/templates/settings/federated_server.html:100 +#: bookwyrm/templates/settings/federated_server.html:101 #: bookwyrm/templates/user_admin/user_moderation_actions.html:3 msgid "Actions" msgstr "Actions" -#: bookwyrm/templates/settings/federated_server.html:104 +#: bookwyrm/templates/settings/federated_server.html:105 #: bookwyrm/templates/snippets/block_button.html:5 msgid "Block" msgstr "Bloquer" -#: bookwyrm/templates/settings/federated_server.html:105 +#: bookwyrm/templates/settings/federated_server.html:106 msgid "All users from this instance will be deactivated." msgstr "" -#: bookwyrm/templates/settings/federated_server.html:110 +#: bookwyrm/templates/settings/federated_server.html:111 #: bookwyrm/templates/snippets/block_button.html:10 msgid "Un-block" msgstr "Débloquer" -#: bookwyrm/templates/settings/federated_server.html:111 +#: bookwyrm/templates/settings/federated_server.html:112 msgid "All users from this instance will be re-activated." msgstr "" @@ -2154,7 +2183,7 @@ msgstr "Autoriser les demandes d’invitation :" msgid "Registration closed text:" msgstr "Texte affiché lorsque les enregistrements sont clos :" -#: bookwyrm/templates/snippets/book_cover.html:32 +#: bookwyrm/templates/snippets/book_cover.html:31 msgid "No cover" msgstr "Aucune couverture" @@ -2163,15 +2192,15 @@ msgstr "Aucune couverture" msgid "%(title)s by " msgstr "%(title)s par " -#: bookwyrm/templates/snippets/boost_button.html:8 #: bookwyrm/templates/snippets/boost_button.html:9 +#: bookwyrm/templates/snippets/boost_button.html:10 #, fuzzy #| msgid "boosted" msgid "Boost" msgstr "partagé" -#: bookwyrm/templates/snippets/boost_button.html:15 #: bookwyrm/templates/snippets/boost_button.html:16 +#: bookwyrm/templates/snippets/boost_button.html:17 #, fuzzy #| msgid "Un-boost status" msgid "Un-boost" @@ -2193,66 +2222,66 @@ msgstr "Critique" msgid "Quote" msgstr "Citation" -#: bookwyrm/templates/snippets/create_status_form.html:20 +#: bookwyrm/templates/snippets/create_status_form.html:23 msgid "Comment:" msgstr "Commentaire :" -#: bookwyrm/templates/snippets/create_status_form.html:22 +#: bookwyrm/templates/snippets/create_status_form.html:25 msgid "Quote:" msgstr "Citation :" -#: bookwyrm/templates/snippets/create_status_form.html:24 +#: bookwyrm/templates/snippets/create_status_form.html:27 msgid "Review:" msgstr "Critique :" -#: bookwyrm/templates/snippets/create_status_form.html:53 -#: bookwyrm/templates/snippets/status/layout.html:30 +#: bookwyrm/templates/snippets/create_status_form.html:56 +#: bookwyrm/templates/snippets/status/layout.html:29 +#: bookwyrm/templates/snippets/status/layout.html:47 #: bookwyrm/templates/snippets/status/layout.html:48 -#: bookwyrm/templates/snippets/status/layout.html:49 msgid "Reply" msgstr "Répondre" -#: bookwyrm/templates/snippets/create_status_form.html:53 +#: bookwyrm/templates/snippets/create_status_form.html:56 #, fuzzy #| msgid "Footer Content" msgid "Content" msgstr "Contenu du pied de page" -#: bookwyrm/templates/snippets/create_status_form.html:77 +#: bookwyrm/templates/snippets/create_status_form.html:80 #: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:16 msgid "Progress:" msgstr "Progression :" -#: bookwyrm/templates/snippets/create_status_form.html:85 -#: bookwyrm/templates/snippets/readthrough_form.html:26 +#: bookwyrm/templates/snippets/create_status_form.html:88 +#: bookwyrm/templates/snippets/readthrough_form.html:22 #: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:30 msgid "pages" msgstr "pages" -#: bookwyrm/templates/snippets/create_status_form.html:86 -#: bookwyrm/templates/snippets/readthrough_form.html:27 +#: bookwyrm/templates/snippets/create_status_form.html:89 +#: bookwyrm/templates/snippets/readthrough_form.html:23 #: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:31 msgid "percent" msgstr "pourcent" -#: bookwyrm/templates/snippets/create_status_form.html:92 +#: bookwyrm/templates/snippets/create_status_form.html:95 #: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:36 #, python-format msgid "of %(pages)s pages" msgstr "sur %(pages)s pages" -#: bookwyrm/templates/snippets/create_status_form.html:107 +#: bookwyrm/templates/snippets/create_status_form.html:110 msgid "Include spoiler alert" msgstr "Afficher une alerte spoiler" -#: bookwyrm/templates/snippets/create_status_form.html:114 +#: bookwyrm/templates/snippets/create_status_form.html:117 #: bookwyrm/templates/snippets/privacy-icons.html:15 #: bookwyrm/templates/snippets/privacy-icons.html:16 #: bookwyrm/templates/snippets/privacy_select.html:19 msgid "Private" msgstr "Privé" -#: bookwyrm/templates/snippets/create_status_form.html:125 +#: bookwyrm/templates/snippets/create_status_form.html:128 msgid "Post" msgstr "Publier" @@ -2266,17 +2295,17 @@ msgid "You are deleting this readthrough and its %(count)s associated progress u msgstr "Vous avez supprimé ce résumé et ses %(count)s progressions associées." #: bookwyrm/templates/snippets/delete_readthrough_modal.html:15 -#: bookwyrm/templates/snippets/follow_request_buttons.html:13 +#: bookwyrm/templates/snippets/follow_request_buttons.html:12 msgid "Delete" msgstr "Supprimer" -#: bookwyrm/templates/snippets/fav_button.html:7 #: bookwyrm/templates/snippets/fav_button.html:9 +#: bookwyrm/templates/snippets/fav_button.html:11 msgid "Like" msgstr "" -#: bookwyrm/templates/snippets/fav_button.html:15 -#: bookwyrm/templates/snippets/fav_button.html:16 +#: bookwyrm/templates/snippets/fav_button.html:17 +#: bookwyrm/templates/snippets/fav_button.html:18 #, fuzzy #| msgid "Un-like status" msgid "Un-like" @@ -2310,11 +2339,11 @@ msgstr "Annuler la demande d’abonnement" msgid "Unfollow" msgstr "Se désabonner" -#: bookwyrm/templates/snippets/follow_request_buttons.html:8 +#: bookwyrm/templates/snippets/follow_request_buttons.html:7 msgid "Accept" msgstr "Accepter" -#: bookwyrm/templates/snippets/form_rate_stars.html:20 +#: bookwyrm/templates/snippets/form_rate_stars.html:19 #: bookwyrm/templates/snippets/stars.html:13 msgid "No rating" msgstr "Aucune note" @@ -2363,8 +2392,8 @@ msgid "Goal privacy:" msgstr "Confidentialité du défi :" #: bookwyrm/templates/snippets/goal_form.html:26 -#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:45 -#: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:33 +#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:37 +#: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:29 #: bookwyrm/templates/snippets/shelve_button/want_to_read_modal.html:20 msgid "Post to feed" msgstr "Publier sur le fil d’actualité" @@ -2475,12 +2504,12 @@ msgstr "Supprimer ces dates de lecture" msgid "Started reading" msgstr "Lecture commencée le" -#: bookwyrm/templates/snippets/readthrough_form.html:18 +#: bookwyrm/templates/snippets/readthrough_form.html:14 msgid "Progress" msgstr "Progression" -#: bookwyrm/templates/snippets/readthrough_form.html:34 -#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:29 +#: bookwyrm/templates/snippets/readthrough_form.html:30 +#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:25 msgid "Finished reading" msgstr "Lecture terminée le" @@ -2488,27 +2517,27 @@ msgstr "Lecture terminée le" msgid "Sign Up" msgstr "S’enregistrer" -#: bookwyrm/templates/snippets/report_button.html:5 +#: bookwyrm/templates/snippets/report_button.html:6 msgid "Report" msgstr "Signaler" #: bookwyrm/templates/snippets/rss_title.html:5 -#: bookwyrm/templates/snippets/status/status_header.html:34 +#: bookwyrm/templates/snippets/status/status_header.html:35 msgid "rated" msgstr "a noté" #: bookwyrm/templates/snippets/rss_title.html:7 -#: bookwyrm/templates/snippets/status/status_header.html:36 +#: bookwyrm/templates/snippets/status/status_header.html:37 msgid "reviewed" msgstr "a écrit une critique de" #: bookwyrm/templates/snippets/rss_title.html:9 -#: bookwyrm/templates/snippets/status/status_header.html:38 +#: bookwyrm/templates/snippets/status/status_header.html:39 msgid "commented on" msgstr "a commenté" #: bookwyrm/templates/snippets/rss_title.html:11 -#: bookwyrm/templates/snippets/status/status_header.html:40 +#: bookwyrm/templates/snippets/status/status_header.html:41 msgid "quoted" msgstr "a cité" @@ -2526,7 +2555,7 @@ msgid "Finish \"%(book_title)s\"" msgstr "Terminer « %(book_title)s »" #: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:5 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:34 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:36 msgid "Update progress" msgstr "Progression de la mise à jour" @@ -2534,20 +2563,20 @@ msgstr "Progression de la mise à jour" msgid "More shelves" msgstr "Plus d’étagères" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:8 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:10 msgid "Start reading" msgstr "Commencer la lecture" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:13 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:15 msgid "Finish reading" msgstr "Terminer la lecture" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:16 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:18 #: bookwyrm/templates/snippets/shelve_button/want_to_read_modal.html:26 msgid "Want to read" msgstr "Je veux le lire" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:45 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:47 #, python-format msgid "Remove from %(name)s" msgstr "Retirer de %(name)s" @@ -2562,40 +2591,40 @@ msgstr "Commencer « %(book_title)s »" msgid "Want to Read \"%(book_title)s\"" msgstr "A envie de lire « %(book_title)s »" -#: bookwyrm/templates/snippets/status/content_status.html:70 -#: bookwyrm/templates/snippets/trimmed_text.html:14 +#: bookwyrm/templates/snippets/status/content_status.html:71 +#: bookwyrm/templates/snippets/trimmed_text.html:15 msgid "Show more" msgstr "Déplier" -#: bookwyrm/templates/snippets/status/content_status.html:85 -#: bookwyrm/templates/snippets/trimmed_text.html:29 +#: bookwyrm/templates/snippets/status/content_status.html:86 +#: bookwyrm/templates/snippets/trimmed_text.html:30 msgid "Show less" msgstr "Replier" -#: bookwyrm/templates/snippets/status/content_status.html:115 +#: bookwyrm/templates/snippets/status/content_status.html:116 msgid "Open image in new window" msgstr "Ouvrir l’image dans une nouvelle fenêtre" -#: bookwyrm/templates/snippets/status/layout.html:22 +#: bookwyrm/templates/snippets/status/layout.html:21 #: bookwyrm/templates/snippets/status/status_options.html:17 msgid "Delete status" msgstr "Supprimer le statut" +#: bookwyrm/templates/snippets/status/layout.html:51 #: bookwyrm/templates/snippets/status/layout.html:52 -#: bookwyrm/templates/snippets/status/layout.html:53 msgid "Boost status" msgstr "Partager le statut" +#: bookwyrm/templates/snippets/status/layout.html:55 #: bookwyrm/templates/snippets/status/layout.html:56 -#: bookwyrm/templates/snippets/status/layout.html:57 msgid "Like status" msgstr "Ajouter le statut aux favoris" -#: bookwyrm/templates/snippets/status/status.html:9 +#: bookwyrm/templates/snippets/status/status.html:10 msgid "boosted" msgstr "partagé" -#: bookwyrm/templates/snippets/status/status_header.html:44 +#: bookwyrm/templates/snippets/status/status_header.html:45 #, python-format msgid "replied to %(username)s's status" msgstr "a répondu au statut de %(username)s" @@ -2627,15 +2656,15 @@ msgstr "Trié par ordre croissant" msgid "Sorted descending" msgstr "Trié par ordre décroissant" -#: bookwyrm/templates/user/layout.html:12 bookwyrm/templates/user/user.html:10 +#: bookwyrm/templates/user/layout.html:13 bookwyrm/templates/user/user.html:10 msgid "User Profile" msgstr "Profil" -#: bookwyrm/templates/user/layout.html:36 +#: bookwyrm/templates/user/layout.html:37 msgid "Follow Requests" msgstr "Demandes d’abonnement" -#: bookwyrm/templates/user/layout.html:61 +#: bookwyrm/templates/user/layout.html:62 msgid "Reading Goal" msgstr "Défi lecture" @@ -2681,38 +2710,38 @@ msgstr "Modifier l’étagère" msgid "Update shelf" msgstr "Mettre l’étagère à jour" -#: bookwyrm/templates/user/shelf/shelf.html:24 bookwyrm/views/shelf.py:48 +#: bookwyrm/templates/user/shelf/shelf.html:25 bookwyrm/views/shelf.py:51 msgid "All books" msgstr "Tous les livres" -#: bookwyrm/templates/user/shelf/shelf.html:37 +#: bookwyrm/templates/user/shelf/shelf.html:38 msgid "Create shelf" msgstr "Créer l’étagère" -#: bookwyrm/templates/user/shelf/shelf.html:60 +#: bookwyrm/templates/user/shelf/shelf.html:61 msgid "Edit shelf" msgstr "Modifier l’étagère" -#: bookwyrm/templates/user/shelf/shelf.html:79 -#: bookwyrm/templates/user/shelf/shelf.html:101 +#: bookwyrm/templates/user/shelf/shelf.html:80 +#: bookwyrm/templates/user/shelf/shelf.html:104 msgid "Shelved" msgstr "Ajouté à une étagère" -#: bookwyrm/templates/user/shelf/shelf.html:80 -#: bookwyrm/templates/user/shelf/shelf.html:105 +#: bookwyrm/templates/user/shelf/shelf.html:81 +#: bookwyrm/templates/user/shelf/shelf.html:108 msgid "Started" msgstr "Commencé" -#: bookwyrm/templates/user/shelf/shelf.html:81 -#: bookwyrm/templates/user/shelf/shelf.html:108 +#: bookwyrm/templates/user/shelf/shelf.html:82 +#: bookwyrm/templates/user/shelf/shelf.html:111 msgid "Finished" msgstr "Terminé" -#: bookwyrm/templates/user/shelf/shelf.html:134 +#: bookwyrm/templates/user/shelf/shelf.html:137 msgid "This shelf is empty." msgstr "Cette étagère est vide" -#: bookwyrm/templates/user/shelf/shelf.html:140 +#: bookwyrm/templates/user/shelf/shelf.html:143 msgid "Delete shelf" msgstr "Supprimer l’étagère" @@ -2741,24 +2770,24 @@ msgstr "Flux RSS" msgid "No activities yet!" msgstr "Aucune activité pour l’instant !" -#: bookwyrm/templates/user/user_preview.html:14 +#: bookwyrm/templates/user/user_preview.html:15 #, python-format msgid "Joined %(date)s" msgstr "Enregistré(e) %(date)s" -#: bookwyrm/templates/user/user_preview.html:18 +#: bookwyrm/templates/user/user_preview.html:19 #, python-format msgid "%(counter)s follower" msgid_plural "%(counter)s followers" msgstr[0] "%(counter)s abonnement" msgstr[1] "%(counter)s abonnements" -#: bookwyrm/templates/user/user_preview.html:19 +#: bookwyrm/templates/user/user_preview.html:20 #, python-format msgid "%(counter)s following" msgstr "%(counter)s abonnements" -#: bookwyrm/templates/user/user_preview.html:25 +#: bookwyrm/templates/user/user_preview.html:26 #, fuzzy, python-format #| msgid "%(mutuals)s follower you follow" #| msgid_plural "%(mutuals)s followers you follow" @@ -2767,7 +2796,7 @@ msgid_plural "%(mutuals_display)s followers you follow" msgstr[0] "%(mutuals)s abonnement auxquel vous êtes abonné(e)" msgstr[1] "%(mutuals)s abonnements auxquels vous êtes abonné(e)" -#: bookwyrm/templates/user_admin/user.html:11 +#: bookwyrm/templates/user_admin/user.html:9 #, fuzzy #| msgid "Back to reports" msgid "Back to users" @@ -2840,15 +2869,20 @@ msgstr "" msgid "Access level:" msgstr "" -#: bookwyrm/views/password.py:32 +#: bookwyrm/views/password.py:30 bookwyrm/views/password.py:35 msgid "No user with that email address was found." msgstr "Aucun compte avec cette adresse email n’a été trouvé." -#: bookwyrm/views/password.py:41 +#: bookwyrm/views/password.py:44 #, python-format msgid "A password reset link sent to %s" msgstr "Un lien de réinitialisation a été envoyé à %s." +#, fuzzy +#~| msgid "BookWyrm users" +#~ msgid "BookWyrm\\" +#~ msgstr "Comptes BookWyrm" + #, fuzzy #~| msgid "Show more" #~ msgid "Show" diff --git a/locale/zh_Hans/LC_MESSAGES/django.po b/locale/zh_Hans/LC_MESSAGES/django.po index a6fdfa75e..0f399924e 100644 --- a/locale/zh_Hans/LC_MESSAGES/django.po +++ b/locale/zh_Hans/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.1.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-10 13:23-0700\n" +"POT-Creation-Date: 2021-05-14 15:12-0700\n" "PO-Revision-Date: 2021-03-20 00:56+0000\n" "Last-Translator: Kana \n" "Language-Team: Mouse Reeve \n" @@ -57,13 +57,13 @@ msgstr "" msgid "Book Title" msgstr "标题" -#: bookwyrm/forms.py:295 bookwyrm/templates/snippets/create_status_form.html:31 -#: bookwyrm/templates/user/shelf/shelf.html:82 -#: bookwyrm/templates/user/shelf/shelf.html:112 +#: bookwyrm/forms.py:295 bookwyrm/templates/snippets/create_status_form.html:34 +#: bookwyrm/templates/user/shelf/shelf.html:84 +#: bookwyrm/templates/user/shelf/shelf.html:115 msgid "Rating" msgstr "评价" -#: bookwyrm/forms.py:297 bookwyrm/templates/lists/list.html:100 +#: bookwyrm/forms.py:297 bookwyrm/templates/lists/list.html:101 msgid "Sort By" msgstr "" @@ -137,19 +137,155 @@ msgstr "服务器错误" msgid "Something went wrong! Sorry about that." msgstr "某些东西出错了!对不起啦。" -#: bookwyrm/templates/author.html:16 bookwyrm/templates/author.html:17 +#: bookwyrm/templates/author/author.html:17 +#: bookwyrm/templates/author/author.html:18 msgid "Edit Author" msgstr "编辑作者" -#: bookwyrm/templates/author.html:31 +#: bookwyrm/templates/author/author.html:33 +#: bookwyrm/templates/author/edit_author.html:38 +msgid "Aliases:" +msgstr "" + +#: bookwyrm/templates/author/author.html:39 +msgid "Born:" +msgstr "" + +#: bookwyrm/templates/author/author.html:45 +msgid "Died:" +msgstr "" + +#: bookwyrm/templates/author/author.html:52 msgid "Wikipedia" msgstr "维基百科" -#: bookwyrm/templates/author.html:36 +#: bookwyrm/templates/author/author.html:56 +#: bookwyrm/templates/book/book.html:81 +msgid "View on OpenLibrary" +msgstr "在 OpenLibrary 查看" + +#: bookwyrm/templates/author/author.html:61 +#: bookwyrm/templates/book/book.html:84 +#, fuzzy +#| msgid "View on OpenLibrary" +msgid "View on Inventaire" +msgstr "在 OpenLibrary 查看" + +#: bookwyrm/templates/author/author.html:75 #, python-format msgid "Books by %(name)s" msgstr "%(name)s 所著的书" +#: bookwyrm/templates/author/edit_author.html:5 +msgid "Edit Author:" +msgstr "编辑作者:" + +#: bookwyrm/templates/author/edit_author.html:13 +#: bookwyrm/templates/book/edit_book.html:18 +msgid "Added:" +msgstr "添加了:" + +#: bookwyrm/templates/author/edit_author.html:14 +#: bookwyrm/templates/book/edit_book.html:19 +msgid "Updated:" +msgstr "更新了:" + +#: bookwyrm/templates/author/edit_author.html:15 +#: bookwyrm/templates/book/edit_book.html:20 +msgid "Last edited by:" +msgstr "最后编辑人:" + +#: bookwyrm/templates/author/edit_author.html:31 +#: bookwyrm/templates/book/edit_book.html:90 +msgid "Metadata" +msgstr "元数据" + +#: bookwyrm/templates/author/edit_author.html:32 +#: bookwyrm/templates/lists/form.html:8 +#: bookwyrm/templates/user/shelf/create_shelf_form.html:13 +#: bookwyrm/templates/user/shelf/edit_shelf_form.html:14 +msgid "Name:" +msgstr "名称:" + +#: bookwyrm/templates/author/edit_author.html:40 +#: bookwyrm/templates/book/edit_book.html:128 +#: bookwyrm/templates/book/edit_book.html:165 +#, fuzzy +#| msgid "Separate multiple publishers with commas." +msgid "Separate multiple values with commas." +msgstr "请用英文逗号(,)分开多个出版社。" + +#: bookwyrm/templates/author/edit_author.html:46 +msgid "Bio:" +msgstr "简介:" + +#: bookwyrm/templates/author/edit_author.html:51 +msgid "Wikipedia link:" +msgstr "维基百科链接:" + +#: bookwyrm/templates/author/edit_author.html:57 +msgid "Birth date:" +msgstr "出生日期:" + +#: bookwyrm/templates/author/edit_author.html:65 +msgid "Death date:" +msgstr "死亡日期:" + +#: bookwyrm/templates/author/edit_author.html:73 +msgid "Author Identifiers" +msgstr "作者标识号:" + +#: bookwyrm/templates/author/edit_author.html:74 +#: bookwyrm/templates/book/edit_book.html:223 +msgid "Openlibrary key:" +msgstr "Openlibrary key:" + +#: bookwyrm/templates/author/edit_author.html:79 +#, fuzzy +#| msgid "View on OpenLibrary" +msgid "Inventaire ID:" +msgstr "在 OpenLibrary 查看" + +#: bookwyrm/templates/author/edit_author.html:84 +msgid "Librarything key:" +msgstr "Librarything key:" + +#: bookwyrm/templates/author/edit_author.html:89 +msgid "Goodreads key:" +msgstr "Goodreads key:" + +#: bookwyrm/templates/author/edit_author.html:98 +#: bookwyrm/templates/book/book.html:127 +#: bookwyrm/templates/book/edit_book.html:241 +#: bookwyrm/templates/lists/form.html:42 +#: bookwyrm/templates/preferences/edit_user.html:70 +#: bookwyrm/templates/settings/edit_server.html:68 +#: bookwyrm/templates/settings/federated_server.html:94 +#: bookwyrm/templates/settings/site.html:97 +#: bookwyrm/templates/snippets/readthrough.html:77 +#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:42 +#: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:42 +#: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:34 +#: bookwyrm/templates/user_admin/user_moderation_actions.html:38 +msgid "Save" +msgstr "保存" + +#: bookwyrm/templates/author/edit_author.html:99 +#: bookwyrm/templates/book/book.html:128 bookwyrm/templates/book/book.html:180 +#: bookwyrm/templates/book/cover_modal.html:32 +#: bookwyrm/templates/book/edit_book.html:242 +#: bookwyrm/templates/moderation/report_modal.html:34 +#: bookwyrm/templates/settings/federated_server.html:95 +#: bookwyrm/templates/snippets/delete_readthrough_modal.html:17 +#: bookwyrm/templates/snippets/goal_form.html:32 +#: bookwyrm/templates/snippets/readthrough.html:78 +#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:43 +#: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:43 +#: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:35 +#: bookwyrm/templates/snippets/shelve_button/want_to_read_modal.html:28 +msgid "Cancel" +msgstr "取消" + #: bookwyrm/templates/book/book.html:33 #: bookwyrm/templates/discover/large-book.html:25 #: bookwyrm/templates/discover/small-book.html:19 @@ -169,16 +305,6 @@ msgstr "添加封面" msgid "Failed to load cover" msgstr "加载封面失败" -#: bookwyrm/templates/book/book.html:81 -msgid "View on OpenLibrary" -msgstr "在 OpenLibrary 查看" - -#: bookwyrm/templates/book/book.html:84 -#, fuzzy -#| msgid "View on OpenLibrary" -msgid "View on Inventaire" -msgstr "在 OpenLibrary 查看" - #: bookwyrm/templates/book/book.html:104 #, python-format msgid "(%(review_count)s review)" @@ -195,37 +321,6 @@ msgstr "添加描述" msgid "Description:" msgstr "描述:" -#: bookwyrm/templates/book/book.html:127 -#: bookwyrm/templates/book/edit_book.html:249 -#: bookwyrm/templates/edit_author.html:78 bookwyrm/templates/lists/form.html:42 -#: bookwyrm/templates/preferences/edit_user.html:70 -#: bookwyrm/templates/settings/edit_server.html:68 -#: bookwyrm/templates/settings/federated_server.html:93 -#: bookwyrm/templates/settings/site.html:97 -#: bookwyrm/templates/snippets/readthrough.html:77 -#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:50 -#: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:42 -#: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:38 -#: bookwyrm/templates/user_admin/user_moderation_actions.html:38 -msgid "Save" -msgstr "保存" - -#: bookwyrm/templates/book/book.html:128 bookwyrm/templates/book/book.html:180 -#: bookwyrm/templates/book/cover_modal.html:32 -#: bookwyrm/templates/book/edit_book.html:250 -#: bookwyrm/templates/edit_author.html:79 -#: bookwyrm/templates/moderation/report_modal.html:34 -#: bookwyrm/templates/settings/federated_server.html:94 -#: bookwyrm/templates/snippets/delete_readthrough_modal.html:17 -#: bookwyrm/templates/snippets/goal_form.html:32 -#: bookwyrm/templates/snippets/readthrough.html:78 -#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:51 -#: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:43 -#: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:39 -#: bookwyrm/templates/snippets/shelve_button/want_to_read_modal.html:28 -msgid "Cancel" -msgstr "取消" - #: bookwyrm/templates/book/book.html:137 #, python-format msgid "%(count)s editions" @@ -297,7 +392,7 @@ msgstr "地点" #: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/search/layout.html:25 #: bookwyrm/templates/search/layout.html:50 -#: bookwyrm/templates/user/layout.html:67 +#: bookwyrm/templates/user/layout.html:68 msgid "Lists" msgstr "列表" @@ -307,7 +402,7 @@ msgstr "添加到列表" #: bookwyrm/templates/book/book.html:320 #: bookwyrm/templates/book/cover_modal.html:31 -#: bookwyrm/templates/lists/list.html:163 +#: bookwyrm/templates/lists/list.html:164 msgid "Add" msgstr "添加" @@ -316,22 +411,22 @@ msgid "ISBN:" msgstr "ISBN:" #: bookwyrm/templates/book/book_identifiers.html:15 -#: bookwyrm/templates/book/edit_book.html:235 +#: bookwyrm/templates/book/edit_book.html:227 msgid "OCLC Number:" msgstr "OCLC 号:" #: bookwyrm/templates/book/book_identifiers.html:22 -#: bookwyrm/templates/book/edit_book.html:239 +#: bookwyrm/templates/book/edit_book.html:231 msgid "ASIN:" msgstr "ASIN:" #: bookwyrm/templates/book/cover_modal.html:17 -#: bookwyrm/templates/book/edit_book.html:187 +#: bookwyrm/templates/book/edit_book.html:179 msgid "Upload cover:" msgstr "上传封面:" #: bookwyrm/templates/book/cover_modal.html:23 -#: bookwyrm/templates/book/edit_book.html:193 +#: bookwyrm/templates/book/edit_book.html:185 msgid "Load cover from url:" msgstr "从网址加载封面:" @@ -346,21 +441,6 @@ msgstr "编辑 \"%(book_title)s\"" msgid "Add Book" msgstr "添加书目" -#: bookwyrm/templates/book/edit_book.html:18 -#: bookwyrm/templates/edit_author.html:13 -msgid "Added:" -msgstr "添加了:" - -#: bookwyrm/templates/book/edit_book.html:19 -#: bookwyrm/templates/edit_author.html:14 -msgid "Updated:" -msgstr "更新了:" - -#: bookwyrm/templates/book/edit_book.html:20 -#: bookwyrm/templates/edit_author.html:15 -msgid "Last edited by:" -msgstr "最后编辑人:" - #: bookwyrm/templates/book/edit_book.html:40 msgid "Confirm Book Info" msgstr "确认书目信息" @@ -402,11 +482,6 @@ msgstr "确认" msgid "Back" msgstr "返回" -#: bookwyrm/templates/book/edit_book.html:90 -#: bookwyrm/templates/edit_author.html:31 -msgid "Metadata" -msgstr "元数据" - #: bookwyrm/templates/book/edit_book.html:92 msgid "Title:" msgstr "标题:" @@ -427,76 +502,67 @@ msgstr "系列编号:" msgid "Publisher:" msgstr "出版社:" -#: bookwyrm/templates/book/edit_book.html:128 -msgid "Separate multiple publishers with commas." -msgstr "请用英文逗号(,)分开多个出版社。" - #: bookwyrm/templates/book/edit_book.html:135 msgid "First published date:" msgstr "初版时间:" -#: bookwyrm/templates/book/edit_book.html:147 +#: bookwyrm/templates/book/edit_book.html:143 msgid "Published date:" msgstr "出版时间:" -#: bookwyrm/templates/book/edit_book.html:160 +#: bookwyrm/templates/book/edit_book.html:152 msgid "Authors" msgstr "作者" -#: bookwyrm/templates/book/edit_book.html:166 +#: bookwyrm/templates/book/edit_book.html:158 #, python-format msgid "Remove %(name)s" msgstr "移除 %(name)s" -#: bookwyrm/templates/book/edit_book.html:171 +#: bookwyrm/templates/book/edit_book.html:163 msgid "Add Authors:" msgstr "添加作者:" -#: bookwyrm/templates/book/edit_book.html:172 +#: bookwyrm/templates/book/edit_book.html:164 msgid "John Doe, Jane Smith" msgstr "张三, 李四" -#: bookwyrm/templates/book/edit_book.html:178 -#: bookwyrm/templates/user/shelf/shelf.html:76 +#: bookwyrm/templates/book/edit_book.html:170 +#: bookwyrm/templates/user/shelf/shelf.html:77 msgid "Cover" msgstr "封面" -#: bookwyrm/templates/book/edit_book.html:206 +#: bookwyrm/templates/book/edit_book.html:198 msgid "Physical Properties" msgstr "实体性质" -#: bookwyrm/templates/book/edit_book.html:207 +#: bookwyrm/templates/book/edit_book.html:199 #: bookwyrm/templates/book/format_filter.html:5 msgid "Format:" msgstr "格式:" -#: bookwyrm/templates/book/edit_book.html:215 +#: bookwyrm/templates/book/edit_book.html:207 msgid "Pages:" msgstr "页数:" -#: bookwyrm/templates/book/edit_book.html:222 +#: bookwyrm/templates/book/edit_book.html:214 msgid "Book Identifiers" msgstr "书目标识号" -#: bookwyrm/templates/book/edit_book.html:223 +#: bookwyrm/templates/book/edit_book.html:215 msgid "ISBN 13:" msgstr "ISBN 13:" -#: bookwyrm/templates/book/edit_book.html:227 +#: bookwyrm/templates/book/edit_book.html:219 msgid "ISBN 10:" msgstr "ISBN 10:" -#: bookwyrm/templates/book/edit_book.html:231 -#: bookwyrm/templates/edit_author.html:59 -msgid "Openlibrary key:" -msgstr "Openlibrary key:" - -#: bookwyrm/templates/book/editions.html:5 +#: bookwyrm/templates/book/editions.html:4 #, python-format msgid "Editions of %(book_title)s" msgstr "%(book_title)s 的各版本" -#: bookwyrm/templates/book/editions.html:9 +#: bookwyrm/templates/book/editions.html:8 #, python-format msgid "Editions of \"%(work_title)s\"" msgstr "\"%(work_title)s\" 的各版本" @@ -547,7 +613,7 @@ msgstr "由 %(publisher)s 出版。" #: bookwyrm/templates/components/inline_form.html:8 #: bookwyrm/templates/components/modal.html:11 -#: bookwyrm/templates/feed/feed_layout.html:70 +#: bookwyrm/templates/feed/feed_layout.html:69 #: bookwyrm/templates/get_started/layout.html:19 #: bookwyrm/templates/get_started/layout.html:52 #: bookwyrm/templates/search/book.html:32 @@ -604,21 +670,21 @@ msgstr "受推荐" msgid "Recently active" msgstr "最近活跃" -#: bookwyrm/templates/directory/user_card.html:32 +#: bookwyrm/templates/directory/user_card.html:33 msgid "follower you follow" msgid_plural "followers you follow" msgstr[0] "你关注的关注者" -#: bookwyrm/templates/directory/user_card.html:39 +#: bookwyrm/templates/directory/user_card.html:40 msgid "book on your shelves" msgid_plural "books on your shelves" msgstr[0] "你书架上的书" -#: bookwyrm/templates/directory/user_card.html:47 +#: bookwyrm/templates/directory/user_card.html:48 msgid "posts" msgstr "发文" -#: bookwyrm/templates/directory/user_card.html:53 +#: bookwyrm/templates/directory/user_card.html:54 msgid "last active" msgstr "最后活跃" @@ -704,44 +770,6 @@ msgstr "提交" msgid "Your Account" msgstr "你的帐号" -#: bookwyrm/templates/edit_author.html:5 -msgid "Edit Author:" -msgstr "编辑作者:" - -#: bookwyrm/templates/edit_author.html:32 bookwyrm/templates/lists/form.html:8 -#: bookwyrm/templates/user/shelf/create_shelf_form.html:13 -#: bookwyrm/templates/user/shelf/edit_shelf_form.html:14 -msgid "Name:" -msgstr "名称:" - -#: bookwyrm/templates/edit_author.html:37 -msgid "Bio:" -msgstr "简介:" - -#: bookwyrm/templates/edit_author.html:42 -msgid "Wikipedia link:" -msgstr "维基百科链接:" - -#: bookwyrm/templates/edit_author.html:47 -msgid "Birth date:" -msgstr "出生日期:" - -#: bookwyrm/templates/edit_author.html:52 -msgid "Death date:" -msgstr "死亡日期:" - -#: bookwyrm/templates/edit_author.html:58 -msgid "Author Identifiers" -msgstr "作者标识号:" - -#: bookwyrm/templates/edit_author.html:64 -msgid "Librarything key:" -msgstr "Librarything key:" - -#: bookwyrm/templates/edit_author.html:69 -msgid "Goodreads key:" -msgstr "Goodreads key:" - #: bookwyrm/templates/email/html_layout.html:15 #: bookwyrm/templates/email/text_layout.html:2 msgid "Hi there," @@ -822,76 +850,76 @@ msgstr "所有消息" msgid "You have no messages right now." msgstr "你现在没有消息。" -#: bookwyrm/templates/feed/feed.html:9 +#: bookwyrm/templates/feed/feed.html:8 msgid "Home Timeline" msgstr "主页时间线" -#: bookwyrm/templates/feed/feed.html:11 +#: bookwyrm/templates/feed/feed.html:10 msgid "Local Timeline" msgstr "本地时间线" -#: bookwyrm/templates/feed/feed.html:13 +#: bookwyrm/templates/feed/feed.html:12 msgid "Federated Timeline" msgstr "跨站时间线" -#: bookwyrm/templates/feed/feed.html:19 +#: bookwyrm/templates/feed/feed.html:18 msgid "Home" msgstr "主页" -#: bookwyrm/templates/feed/feed.html:22 +#: bookwyrm/templates/feed/feed.html:21 msgid "Local" msgstr "本站" -#: bookwyrm/templates/feed/feed.html:25 +#: bookwyrm/templates/feed/feed.html:24 #: bookwyrm/templates/settings/edit_server.html:40 msgid "Federated" msgstr "跨站" -#: bookwyrm/templates/feed/feed.html:33 +#: bookwyrm/templates/feed/feed.html:32 #, python-format msgid "load 0 unread status(es)" msgstr "加载 0 条未读状态" -#: bookwyrm/templates/feed/feed.html:48 +#: bookwyrm/templates/feed/feed.html:47 msgid "There aren't any activities right now! Try following a user to get started" msgstr "现在还没有任何活动!尝试着从关注一个用户开始吧" -#: bookwyrm/templates/feed/feed.html:56 +#: bookwyrm/templates/feed/feed.html:55 #: bookwyrm/templates/get_started/users.html:6 msgid "Who to follow" msgstr "可以关注的人" -#: bookwyrm/templates/feed/feed_layout.html:5 +#: bookwyrm/templates/feed/feed_layout.html:4 msgid "Updates" msgstr "更新" -#: bookwyrm/templates/feed/feed_layout.html:11 +#: bookwyrm/templates/feed/feed_layout.html:10 #: bookwyrm/templates/layout.html:59 #: bookwyrm/templates/user/shelf/books_header.html:3 msgid "Your books" msgstr "你的书目" -#: bookwyrm/templates/feed/feed_layout.html:13 +#: bookwyrm/templates/feed/feed_layout.html:12 msgid "There are no books here right now! Try searching for a book to get started" msgstr "现在这里还没有任何书目!尝试着从搜索某本书开始吧" -#: bookwyrm/templates/feed/feed_layout.html:24 -#: bookwyrm/templates/user/shelf/shelf.html:28 +#: bookwyrm/templates/feed/feed_layout.html:23 +#: bookwyrm/templates/user/shelf/shelf.html:29 msgid "To Read" msgstr "想读" -#: bookwyrm/templates/feed/feed_layout.html:25 -#: bookwyrm/templates/user/shelf/shelf.html:28 +#: bookwyrm/templates/feed/feed_layout.html:24 +#: bookwyrm/templates/user/shelf/shelf.html:29 msgid "Currently Reading" msgstr "在读" -#: bookwyrm/templates/feed/feed_layout.html:26 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:11 -#: bookwyrm/templates/user/shelf/shelf.html:28 +#: bookwyrm/templates/feed/feed_layout.html:25 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:13 +#: bookwyrm/templates/user/shelf/shelf.html:29 msgid "Read" msgstr "读过" -#: bookwyrm/templates/feed/feed_layout.html:88 bookwyrm/templates/goal.html:26 +#: bookwyrm/templates/feed/feed_layout.html:87 bookwyrm/templates/goal.html:26 #: bookwyrm/templates/snippets/goal_card.html:6 #, python-format msgid "%(year)s Reading Goal" @@ -919,7 +947,7 @@ msgid "What are you reading?" msgstr "你在阅读什么?" #: bookwyrm/templates/get_started/books.html:9 -#: bookwyrm/templates/lists/list.html:119 +#: bookwyrm/templates/lists/list.html:120 msgid "Search for a book" msgstr "搜索书目" @@ -939,7 +967,7 @@ msgstr "你可以在开始使用 %(site_name)s 后添加书目。" #: bookwyrm/templates/get_started/users.html:18 #: bookwyrm/templates/get_started/users.html:19 #: bookwyrm/templates/layout.html:38 bookwyrm/templates/layout.html:39 -#: bookwyrm/templates/lists/list.html:123 +#: bookwyrm/templates/lists/list.html:124 #: bookwyrm/templates/search/layout.html:4 #: bookwyrm/templates/search/layout.html:9 msgid "Search" @@ -955,7 +983,7 @@ msgid "Popular on %(site_name)s" msgstr "%(site_name)s 上的热门" #: bookwyrm/templates/get_started/books.html:58 -#: bookwyrm/templates/lists/list.html:136 +#: bookwyrm/templates/lists/list.html:137 msgid "No books found" msgstr "没有找到书目" @@ -1075,95 +1103,95 @@ msgstr "导入书目" msgid "Data source:" msgstr "数据来源:" -#: bookwyrm/templates/import.html:29 +#: bookwyrm/templates/import.html:32 msgid "Data file:" msgstr "数据文件:" -#: bookwyrm/templates/import.html:37 +#: bookwyrm/templates/import.html:40 msgid "Include reviews" msgstr "纳入书评" -#: bookwyrm/templates/import.html:42 +#: bookwyrm/templates/import.html:45 msgid "Privacy setting for imported reviews:" msgstr "导入书评的隐私设定" -#: bookwyrm/templates/import.html:48 +#: bookwyrm/templates/import.html:51 #: bookwyrm/templates/settings/server_blocklist.html:64 msgid "Import" msgstr "导入" -#: bookwyrm/templates/import.html:53 +#: bookwyrm/templates/import.html:56 msgid "Recent Imports" msgstr "最近的导入" -#: bookwyrm/templates/import.html:55 +#: bookwyrm/templates/import.html:58 msgid "No recent imports" msgstr "无最近的导入" -#: bookwyrm/templates/import_status.html:6 -#: bookwyrm/templates/import_status.html:10 +#: bookwyrm/templates/import_status.html:5 +#: bookwyrm/templates/import_status.html:9 msgid "Import Status" msgstr "导入状态" -#: bookwyrm/templates/import_status.html:13 +#: bookwyrm/templates/import_status.html:12 msgid "Import started:" msgstr "导入开始:" -#: bookwyrm/templates/import_status.html:17 +#: bookwyrm/templates/import_status.html:16 msgid "Import completed:" msgstr "导入完成:" -#: bookwyrm/templates/import_status.html:20 +#: bookwyrm/templates/import_status.html:19 msgid "TASK FAILED" msgstr "任务失败" -#: bookwyrm/templates/import_status.html:26 +#: bookwyrm/templates/import_status.html:25 msgid "Import still in progress." msgstr "还在导入中。" -#: bookwyrm/templates/import_status.html:28 +#: bookwyrm/templates/import_status.html:27 msgid "(Hit reload to update!)" msgstr "(按下重新加载来更新!)" -#: bookwyrm/templates/import_status.html:35 +#: bookwyrm/templates/import_status.html:34 msgid "Failed to load" msgstr "加载失败" -#: bookwyrm/templates/import_status.html:44 +#: bookwyrm/templates/import_status.html:43 #, python-format msgid "Jump to the bottom of the list to select the %(failed_count)s items which failed to import." msgstr "跳转至列表底部来选取 %(failed_count)s 个导入失败的项目。" -#: bookwyrm/templates/import_status.html:79 +#: bookwyrm/templates/import_status.html:78 msgid "Select all" msgstr "全选" -#: bookwyrm/templates/import_status.html:82 +#: bookwyrm/templates/import_status.html:81 msgid "Retry items" msgstr "重试项目" -#: bookwyrm/templates/import_status.html:108 +#: bookwyrm/templates/import_status.html:107 msgid "Successfully imported" msgstr "成功导入了" -#: bookwyrm/templates/import_status.html:112 +#: bookwyrm/templates/import_status.html:111 msgid "Book" msgstr "书目" -#: bookwyrm/templates/import_status.html:115 -#: bookwyrm/templates/snippets/create_status_form.html:10 -#: bookwyrm/templates/user/shelf/shelf.html:77 -#: bookwyrm/templates/user/shelf/shelf.html:95 +#: bookwyrm/templates/import_status.html:114 +#: bookwyrm/templates/snippets/create_status_form.html:13 +#: bookwyrm/templates/user/shelf/shelf.html:78 +#: bookwyrm/templates/user/shelf/shelf.html:98 msgid "Title" msgstr "标题" -#: bookwyrm/templates/import_status.html:118 -#: bookwyrm/templates/user/shelf/shelf.html:78 -#: bookwyrm/templates/user/shelf/shelf.html:98 +#: bookwyrm/templates/import_status.html:117 +#: bookwyrm/templates/user/shelf/shelf.html:79 +#: bookwyrm/templates/user/shelf/shelf.html:101 msgid "Author" msgstr "作者" -#: bookwyrm/templates/import_status.html:141 +#: bookwyrm/templates/import_status.html:140 msgid "Imported" msgstr "已导入" @@ -1274,7 +1302,8 @@ msgid "Support %(site_name)s on % msgstr "在 %(support_title)s 上支持 %(site_name)s" #: bookwyrm/templates/layout.html:217 -msgid "BookWyrm is open source software. You can contribute or report issues on GitHub." +#| msgid "BookWyrm is open source software. You can contribute or report issues on GitHub." +msgid "BookWyrm's source code is freely available. You can contribute or report issues on GitHub." msgstr "BookWyrm 是开源软件。你可以在 GitHub 贡献或报告问题。" #: bookwyrm/templates/lists/create_form.html:5 @@ -1317,7 +1346,7 @@ msgid "Discard" msgstr "削除" #: bookwyrm/templates/lists/edit_form.html:5 -#: bookwyrm/templates/lists/list_layout.html:18 +#: bookwyrm/templates/lists/list_layout.html:17 msgid "Edit List" msgstr "编辑列表" @@ -1351,76 +1380,76 @@ msgstr "开放" msgid "Anyone can add books to this list" msgstr "任何人都可以向此列表中添加书目" -#: bookwyrm/templates/lists/list.html:19 +#: bookwyrm/templates/lists/list.html:20 msgid "You successfully suggested a book for this list!" msgstr "" -#: bookwyrm/templates/lists/list.html:21 +#: bookwyrm/templates/lists/list.html:22 #, fuzzy #| msgid "Anyone can add books to this list" msgid "You successfully added a book to this list!" msgstr "任何人都可以向此列表中添加书目" -#: bookwyrm/templates/lists/list.html:27 +#: bookwyrm/templates/lists/list.html:28 msgid "This list is currently empty" msgstr "此列表当前是空的" -#: bookwyrm/templates/lists/list.html:64 +#: bookwyrm/templates/lists/list.html:65 #, python-format msgid "Added by %(username)s" msgstr "由 %(username)s 添加" -#: bookwyrm/templates/lists/list.html:76 +#: bookwyrm/templates/lists/list.html:77 #, fuzzy #| msgid "Sent" msgid "Set" msgstr "已发送" -#: bookwyrm/templates/lists/list.html:79 +#: bookwyrm/templates/lists/list.html:80 #, fuzzy #| msgid "List curation:" msgid "List position" msgstr "列表策展:" -#: bookwyrm/templates/lists/list.html:85 +#: bookwyrm/templates/lists/list.html:86 #: bookwyrm/templates/snippets/shelf_selector.html:26 msgid "Remove" msgstr "移除" -#: bookwyrm/templates/lists/list.html:98 bookwyrm/templates/lists/list.html:110 +#: bookwyrm/templates/lists/list.html:99 bookwyrm/templates/lists/list.html:111 #, fuzzy #| msgid "Your Lists" msgid "Sort List" msgstr "你的列表" -#: bookwyrm/templates/lists/list.html:104 +#: bookwyrm/templates/lists/list.html:105 #, fuzzy #| msgid "Directory" msgid "Direction" msgstr "目录" -#: bookwyrm/templates/lists/list.html:115 +#: bookwyrm/templates/lists/list.html:116 msgid "Add Books" msgstr "添加书目" -#: bookwyrm/templates/lists/list.html:115 +#: bookwyrm/templates/lists/list.html:116 msgid "Suggest Books" msgstr "推荐书目" -#: bookwyrm/templates/lists/list.html:124 +#: bookwyrm/templates/lists/list.html:125 msgid "search" msgstr "搜索" -#: bookwyrm/templates/lists/list.html:130 +#: bookwyrm/templates/lists/list.html:131 msgid "Clear search" msgstr "清除搜索" -#: bookwyrm/templates/lists/list.html:135 +#: bookwyrm/templates/lists/list.html:136 #, python-format msgid "No books found matching the query \"%(query)s\"" msgstr "没有符合 \"%(query)s\" 请求的书目" -#: bookwyrm/templates/lists/list.html:163 +#: bookwyrm/templates/lists/list.html:164 msgid "Suggest" msgstr "推荐" @@ -1445,36 +1474,36 @@ msgstr "联系管理员以取得邀请" msgid "More about this site" msgstr "关于本站点的更多" +#: bookwyrm/templates/moderation/report.html:5 #: bookwyrm/templates/moderation/report.html:6 -#: bookwyrm/templates/moderation/report.html:7 #: bookwyrm/templates/moderation/report_preview.html:6 #, python-format msgid "Report #%(report_id)s: %(username)s" msgstr "报告 #%(report_id)s: %(username)s" -#: bookwyrm/templates/moderation/report.html:11 +#: bookwyrm/templates/moderation/report.html:10 msgid "Back to reports" msgstr "回到报告" -#: bookwyrm/templates/moderation/report.html:23 +#: bookwyrm/templates/moderation/report.html:22 msgid "Moderator Comments" msgstr "监察员评论" -#: bookwyrm/templates/moderation/report.html:41 +#: bookwyrm/templates/moderation/report.html:40 #: bookwyrm/templates/snippets/create_status.html:28 -#: bookwyrm/templates/snippets/create_status_form.html:63 +#: bookwyrm/templates/snippets/create_status_form.html:66 msgid "Comment" msgstr "评论" -#: bookwyrm/templates/moderation/report.html:46 +#: bookwyrm/templates/moderation/report.html:45 msgid "Reported statuses" msgstr "被报告的状态" -#: bookwyrm/templates/moderation/report.html:48 +#: bookwyrm/templates/moderation/report.html:47 msgid "No statuses reported" msgstr "没有被报告的状态" -#: bookwyrm/templates/moderation/report.html:54 +#: bookwyrm/templates/moderation/report.html:53 #, fuzzy #| msgid "Statuses has been deleted" msgid "Status has been deleted" @@ -1754,7 +1783,7 @@ msgstr "搜索" #: bookwyrm/templates/search/layout.html:21 #: bookwyrm/templates/search/layout.html:42 -#: bookwyrm/templates/user/layout.html:73 +#: bookwyrm/templates/user/layout.html:74 msgid "Books" msgstr "书目" @@ -1829,7 +1858,7 @@ msgid "Add server" msgstr "添加封面" #: bookwyrm/templates/settings/edit_server.html:7 -#: bookwyrm/templates/settings/federated_server.html:12 +#: bookwyrm/templates/settings/federated_server.html:13 #: bookwyrm/templates/settings/server_blocklist.html:7 msgid "Back to server list" msgstr "回到服务器列表" @@ -1848,26 +1877,26 @@ msgid "Instance:" msgstr "实例名称" #: bookwyrm/templates/settings/edit_server.html:37 -#: bookwyrm/templates/settings/federated_server.html:29 +#: bookwyrm/templates/settings/federated_server.html:30 #: bookwyrm/templates/user_admin/user_info.html:34 msgid "Status:" msgstr "状态:" #: bookwyrm/templates/settings/edit_server.html:41 -#: bookwyrm/templates/settings/federated_server.html:9 +#: bookwyrm/templates/settings/federated_server.html:10 #, fuzzy #| msgid "Block" msgid "Blocked" msgstr "屏蔽" #: bookwyrm/templates/settings/edit_server.html:48 -#: bookwyrm/templates/settings/federated_server.html:21 +#: bookwyrm/templates/settings/federated_server.html:22 #: bookwyrm/templates/user_admin/user_info.html:26 msgid "Software:" msgstr "软件:" #: bookwyrm/templates/settings/edit_server.html:55 -#: bookwyrm/templates/settings/federated_server.html:25 +#: bookwyrm/templates/settings/federated_server.html:26 #: bookwyrm/templates/user_admin/user_info.html:30 msgid "Version:" msgstr "版本:" @@ -1876,71 +1905,71 @@ msgstr "版本:" msgid "Notes:" msgstr "" -#: bookwyrm/templates/settings/federated_server.html:18 +#: bookwyrm/templates/settings/federated_server.html:19 msgid "Details" msgstr "详细" -#: bookwyrm/templates/settings/federated_server.html:36 -#: bookwyrm/templates/user/layout.html:55 +#: bookwyrm/templates/settings/federated_server.html:37 +#: bookwyrm/templates/user/layout.html:56 msgid "Activity" msgstr "活动" -#: bookwyrm/templates/settings/federated_server.html:39 +#: bookwyrm/templates/settings/federated_server.html:40 msgid "Users:" msgstr "用户:" -#: bookwyrm/templates/settings/federated_server.html:42 -#: bookwyrm/templates/settings/federated_server.html:49 +#: bookwyrm/templates/settings/federated_server.html:43 +#: bookwyrm/templates/settings/federated_server.html:50 msgid "View all" msgstr "查看全部" -#: bookwyrm/templates/settings/federated_server.html:46 +#: bookwyrm/templates/settings/federated_server.html:47 msgid "Reports:" msgstr "报告:" -#: bookwyrm/templates/settings/federated_server.html:53 +#: bookwyrm/templates/settings/federated_server.html:54 msgid "Followed by us:" msgstr "我们关注了的:" -#: bookwyrm/templates/settings/federated_server.html:59 +#: bookwyrm/templates/settings/federated_server.html:60 msgid "Followed by them:" msgstr "TA 们关注了的:" -#: bookwyrm/templates/settings/federated_server.html:65 +#: bookwyrm/templates/settings/federated_server.html:66 msgid "Blocked by us:" msgstr "我们所屏蔽的:" -#: bookwyrm/templates/settings/federated_server.html:77 +#: bookwyrm/templates/settings/federated_server.html:78 #: bookwyrm/templates/user_admin/user_info.html:39 msgid "Notes" msgstr "" -#: bookwyrm/templates/settings/federated_server.html:80 +#: bookwyrm/templates/settings/federated_server.html:81 #, fuzzy #| msgid "Edit Book" msgid "Edit" msgstr "编辑书目" -#: bookwyrm/templates/settings/federated_server.html:100 +#: bookwyrm/templates/settings/federated_server.html:101 #: bookwyrm/templates/user_admin/user_moderation_actions.html:3 msgid "Actions" msgstr "动作" -#: bookwyrm/templates/settings/federated_server.html:104 +#: bookwyrm/templates/settings/federated_server.html:105 #: bookwyrm/templates/snippets/block_button.html:5 msgid "Block" msgstr "屏蔽" -#: bookwyrm/templates/settings/federated_server.html:105 +#: bookwyrm/templates/settings/federated_server.html:106 msgid "All users from this instance will be deactivated." msgstr "" -#: bookwyrm/templates/settings/federated_server.html:110 +#: bookwyrm/templates/settings/federated_server.html:111 #: bookwyrm/templates/snippets/block_button.html:10 msgid "Un-block" msgstr "取消屏蔽" -#: bookwyrm/templates/settings/federated_server.html:111 +#: bookwyrm/templates/settings/federated_server.html:112 msgid "All users from this instance will be re-activated." msgstr "" @@ -2155,7 +2184,7 @@ msgstr "允许请求邀请:" msgid "Registration closed text:" msgstr "注册关闭文字:" -#: bookwyrm/templates/snippets/book_cover.html:32 +#: bookwyrm/templates/snippets/book_cover.html:31 msgid "No cover" msgstr "没有封面" @@ -2164,15 +2193,15 @@ msgstr "没有封面" msgid "%(title)s by " msgstr "%(title)s 来自" -#: bookwyrm/templates/snippets/boost_button.html:8 #: bookwyrm/templates/snippets/boost_button.html:9 +#: bookwyrm/templates/snippets/boost_button.html:10 #, fuzzy #| msgid "boosted" msgid "Boost" msgstr "转发了" -#: bookwyrm/templates/snippets/boost_button.html:15 #: bookwyrm/templates/snippets/boost_button.html:16 +#: bookwyrm/templates/snippets/boost_button.html:17 #, fuzzy #| msgid "Un-boost status" msgid "Un-boost" @@ -2194,66 +2223,66 @@ msgstr "书评" msgid "Quote" msgstr "引用" -#: bookwyrm/templates/snippets/create_status_form.html:20 +#: bookwyrm/templates/snippets/create_status_form.html:23 msgid "Comment:" msgstr "评论:" -#: bookwyrm/templates/snippets/create_status_form.html:22 +#: bookwyrm/templates/snippets/create_status_form.html:25 msgid "Quote:" msgstr "引用:" -#: bookwyrm/templates/snippets/create_status_form.html:24 +#: bookwyrm/templates/snippets/create_status_form.html:27 msgid "Review:" msgstr "书评:" -#: bookwyrm/templates/snippets/create_status_form.html:53 -#: bookwyrm/templates/snippets/status/layout.html:30 +#: bookwyrm/templates/snippets/create_status_form.html:56 +#: bookwyrm/templates/snippets/status/layout.html:29 +#: bookwyrm/templates/snippets/status/layout.html:47 #: bookwyrm/templates/snippets/status/layout.html:48 -#: bookwyrm/templates/snippets/status/layout.html:49 msgid "Reply" msgstr "回复" -#: bookwyrm/templates/snippets/create_status_form.html:53 +#: bookwyrm/templates/snippets/create_status_form.html:56 #, fuzzy #| msgid "Footer Content" msgid "Content" msgstr "页脚内容" -#: bookwyrm/templates/snippets/create_status_form.html:77 +#: bookwyrm/templates/snippets/create_status_form.html:80 #: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:16 msgid "Progress:" msgstr "进度:" -#: bookwyrm/templates/snippets/create_status_form.html:85 -#: bookwyrm/templates/snippets/readthrough_form.html:26 +#: bookwyrm/templates/snippets/create_status_form.html:88 +#: bookwyrm/templates/snippets/readthrough_form.html:22 #: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:30 msgid "pages" msgstr "页数" -#: bookwyrm/templates/snippets/create_status_form.html:86 -#: bookwyrm/templates/snippets/readthrough_form.html:27 +#: bookwyrm/templates/snippets/create_status_form.html:89 +#: bookwyrm/templates/snippets/readthrough_form.html:23 #: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:31 msgid "percent" msgstr "百分比" -#: bookwyrm/templates/snippets/create_status_form.html:92 +#: bookwyrm/templates/snippets/create_status_form.html:95 #: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:36 #, python-format msgid "of %(pages)s pages" msgstr "全书 %(pages)s 页" -#: bookwyrm/templates/snippets/create_status_form.html:107 +#: bookwyrm/templates/snippets/create_status_form.html:110 msgid "Include spoiler alert" msgstr "加入剧透警告" -#: bookwyrm/templates/snippets/create_status_form.html:114 +#: bookwyrm/templates/snippets/create_status_form.html:117 #: bookwyrm/templates/snippets/privacy-icons.html:15 #: bookwyrm/templates/snippets/privacy-icons.html:16 #: bookwyrm/templates/snippets/privacy_select.html:19 msgid "Private" msgstr "私密" -#: bookwyrm/templates/snippets/create_status_form.html:125 +#: bookwyrm/templates/snippets/create_status_form.html:128 msgid "Post" msgstr "发布" @@ -2267,17 +2296,17 @@ msgid "You are deleting this readthrough and its %(count)s associated progress u msgstr "你正要删除这篇阅读经过以及与之相关的 %(count)s 次进度更新。" #: bookwyrm/templates/snippets/delete_readthrough_modal.html:15 -#: bookwyrm/templates/snippets/follow_request_buttons.html:13 +#: bookwyrm/templates/snippets/follow_request_buttons.html:12 msgid "Delete" msgstr "删除" -#: bookwyrm/templates/snippets/fav_button.html:7 #: bookwyrm/templates/snippets/fav_button.html:9 +#: bookwyrm/templates/snippets/fav_button.html:11 msgid "Like" msgstr "" -#: bookwyrm/templates/snippets/fav_button.html:15 -#: bookwyrm/templates/snippets/fav_button.html:16 +#: bookwyrm/templates/snippets/fav_button.html:17 +#: bookwyrm/templates/snippets/fav_button.html:18 #, fuzzy #| msgid "Un-like status" msgid "Un-like" @@ -2311,11 +2340,11 @@ msgstr "撤回关注请求" msgid "Unfollow" msgstr "取消关注" -#: bookwyrm/templates/snippets/follow_request_buttons.html:8 +#: bookwyrm/templates/snippets/follow_request_buttons.html:7 msgid "Accept" msgstr "接受" -#: bookwyrm/templates/snippets/form_rate_stars.html:20 +#: bookwyrm/templates/snippets/form_rate_stars.html:19 #: bookwyrm/templates/snippets/stars.html:13 msgid "No rating" msgstr "没有评价" @@ -2361,8 +2390,8 @@ msgid "Goal privacy:" msgstr "目标隐私:" #: bookwyrm/templates/snippets/goal_form.html:26 -#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:45 -#: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:33 +#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:37 +#: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:29 #: bookwyrm/templates/snippets/shelve_button/want_to_read_modal.html:20 msgid "Post to feed" msgstr "发布到消息流中" @@ -2473,12 +2502,12 @@ msgstr "删除这些阅读日期" msgid "Started reading" msgstr "已开始阅读" -#: bookwyrm/templates/snippets/readthrough_form.html:18 +#: bookwyrm/templates/snippets/readthrough_form.html:14 msgid "Progress" msgstr "进度" -#: bookwyrm/templates/snippets/readthrough_form.html:34 -#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:29 +#: bookwyrm/templates/snippets/readthrough_form.html:30 +#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:25 msgid "Finished reading" msgstr "已完成阅读" @@ -2486,27 +2515,27 @@ msgstr "已完成阅读" msgid "Sign Up" msgstr "注册" -#: bookwyrm/templates/snippets/report_button.html:5 +#: bookwyrm/templates/snippets/report_button.html:6 msgid "Report" msgstr "报告" #: bookwyrm/templates/snippets/rss_title.html:5 -#: bookwyrm/templates/snippets/status/status_header.html:34 +#: bookwyrm/templates/snippets/status/status_header.html:35 msgid "rated" msgstr "评价了" #: bookwyrm/templates/snippets/rss_title.html:7 -#: bookwyrm/templates/snippets/status/status_header.html:36 +#: bookwyrm/templates/snippets/status/status_header.html:37 msgid "reviewed" msgstr "写了书评给" #: bookwyrm/templates/snippets/rss_title.html:9 -#: bookwyrm/templates/snippets/status/status_header.html:38 +#: bookwyrm/templates/snippets/status/status_header.html:39 msgid "commented on" msgstr "评论了" #: bookwyrm/templates/snippets/rss_title.html:11 -#: bookwyrm/templates/snippets/status/status_header.html:40 +#: bookwyrm/templates/snippets/status/status_header.html:41 msgid "quoted" msgstr "引用了" @@ -2524,7 +2553,7 @@ msgid "Finish \"%(book_title)s\"" msgstr "完成 \"%(book_title)s\"" #: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:5 -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:34 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:36 msgid "Update progress" msgstr "更新进度" @@ -2532,20 +2561,20 @@ msgstr "更新进度" msgid "More shelves" msgstr "更多书架" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:8 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:10 msgid "Start reading" msgstr "开始阅读" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:13 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:15 msgid "Finish reading" msgstr "完成阅读" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:16 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:18 #: bookwyrm/templates/snippets/shelve_button/want_to_read_modal.html:26 msgid "Want to read" msgstr "想要阅读" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:45 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:47 #, python-format msgid "Remove from %(name)s" msgstr "从 %(name)s 移除" @@ -2560,40 +2589,40 @@ msgstr "开始 \"%(book_title)s\"" msgid "Want to Read \"%(book_title)s\"" msgstr "想要阅读 \"%(book_title)s\"" -#: bookwyrm/templates/snippets/status/content_status.html:70 -#: bookwyrm/templates/snippets/trimmed_text.html:14 +#: bookwyrm/templates/snippets/status/content_status.html:71 +#: bookwyrm/templates/snippets/trimmed_text.html:15 msgid "Show more" msgstr "显示更多" -#: bookwyrm/templates/snippets/status/content_status.html:85 -#: bookwyrm/templates/snippets/trimmed_text.html:29 +#: bookwyrm/templates/snippets/status/content_status.html:86 +#: bookwyrm/templates/snippets/trimmed_text.html:30 msgid "Show less" msgstr "显示更少" -#: bookwyrm/templates/snippets/status/content_status.html:115 +#: bookwyrm/templates/snippets/status/content_status.html:116 msgid "Open image in new window" msgstr "在新窗口中打开图像" -#: bookwyrm/templates/snippets/status/layout.html:22 +#: bookwyrm/templates/snippets/status/layout.html:21 #: bookwyrm/templates/snippets/status/status_options.html:17 msgid "Delete status" msgstr "删除发文" +#: bookwyrm/templates/snippets/status/layout.html:51 #: bookwyrm/templates/snippets/status/layout.html:52 -#: bookwyrm/templates/snippets/status/layout.html:53 msgid "Boost status" msgstr "转发状态" +#: bookwyrm/templates/snippets/status/layout.html:55 #: bookwyrm/templates/snippets/status/layout.html:56 -#: bookwyrm/templates/snippets/status/layout.html:57 msgid "Like status" msgstr "喜欢状态" -#: bookwyrm/templates/snippets/status/status.html:9 +#: bookwyrm/templates/snippets/status/status.html:10 msgid "boosted" msgstr "转发了" -#: bookwyrm/templates/snippets/status/status_header.html:44 +#: bookwyrm/templates/snippets/status/status_header.html:45 #, python-format msgid "replied to %(username)s's status" msgstr "回复了 %(username)s状态" @@ -2627,15 +2656,15 @@ msgstr "升序排序" msgid "Sorted descending" msgstr "降序排序" -#: bookwyrm/templates/user/layout.html:12 bookwyrm/templates/user/user.html:10 +#: bookwyrm/templates/user/layout.html:13 bookwyrm/templates/user/user.html:10 msgid "User Profile" msgstr "用户个人资料" -#: bookwyrm/templates/user/layout.html:36 +#: bookwyrm/templates/user/layout.html:37 msgid "Follow Requests" msgstr "关注请求" -#: bookwyrm/templates/user/layout.html:61 +#: bookwyrm/templates/user/layout.html:62 msgid "Reading Goal" msgstr "阅读目标" @@ -2681,38 +2710,38 @@ msgstr "编辑书架" msgid "Update shelf" msgstr "更新书架" -#: bookwyrm/templates/user/shelf/shelf.html:24 bookwyrm/views/shelf.py:48 +#: bookwyrm/templates/user/shelf/shelf.html:25 bookwyrm/views/shelf.py:51 msgid "All books" msgstr "所有书目" -#: bookwyrm/templates/user/shelf/shelf.html:37 +#: bookwyrm/templates/user/shelf/shelf.html:38 msgid "Create shelf" msgstr "创建书架" -#: bookwyrm/templates/user/shelf/shelf.html:60 +#: bookwyrm/templates/user/shelf/shelf.html:61 msgid "Edit shelf" msgstr "编辑书架" -#: bookwyrm/templates/user/shelf/shelf.html:79 -#: bookwyrm/templates/user/shelf/shelf.html:101 +#: bookwyrm/templates/user/shelf/shelf.html:80 +#: bookwyrm/templates/user/shelf/shelf.html:104 msgid "Shelved" msgstr "上架时间" -#: bookwyrm/templates/user/shelf/shelf.html:80 -#: bookwyrm/templates/user/shelf/shelf.html:105 +#: bookwyrm/templates/user/shelf/shelf.html:81 +#: bookwyrm/templates/user/shelf/shelf.html:108 msgid "Started" msgstr "开始时间" -#: bookwyrm/templates/user/shelf/shelf.html:81 -#: bookwyrm/templates/user/shelf/shelf.html:108 +#: bookwyrm/templates/user/shelf/shelf.html:82 +#: bookwyrm/templates/user/shelf/shelf.html:111 msgid "Finished" msgstr "完成时间" -#: bookwyrm/templates/user/shelf/shelf.html:134 +#: bookwyrm/templates/user/shelf/shelf.html:137 msgid "This shelf is empty." msgstr "此书架是空的。" -#: bookwyrm/templates/user/shelf/shelf.html:140 +#: bookwyrm/templates/user/shelf/shelf.html:143 msgid "Delete shelf" msgstr "删除书架" @@ -2741,23 +2770,23 @@ msgstr "RSS 流" msgid "No activities yet!" msgstr "还没有活动!" -#: bookwyrm/templates/user/user_preview.html:14 +#: bookwyrm/templates/user/user_preview.html:15 #, python-format msgid "Joined %(date)s" msgstr "在 %(date)s 加入" -#: bookwyrm/templates/user/user_preview.html:18 +#: bookwyrm/templates/user/user_preview.html:19 #, python-format msgid "%(counter)s follower" msgid_plural "%(counter)s followers" msgstr[0] "%(counter)s 个关注者" -#: bookwyrm/templates/user/user_preview.html:19 +#: bookwyrm/templates/user/user_preview.html:20 #, python-format msgid "%(counter)s following" msgstr "关注着 %(counter)s 人" -#: bookwyrm/templates/user/user_preview.html:25 +#: bookwyrm/templates/user/user_preview.html:26 #, fuzzy, python-format #| msgid "%(mutuals)s follower you follow" #| msgid_plural "%(mutuals)s followers you follow" @@ -2765,7 +2794,7 @@ msgid "%(mutuals_display)s follower you follow" msgid_plural "%(mutuals_display)s followers you follow" msgstr[0] "%(mutuals)s 个你也关注的关注者" -#: bookwyrm/templates/user_admin/user.html:11 +#: bookwyrm/templates/user_admin/user.html:9 #, fuzzy #| msgid "Back to reports" msgid "Back to users" @@ -2838,15 +2867,20 @@ msgstr "" msgid "Access level:" msgstr "" -#: bookwyrm/views/password.py:32 +#: bookwyrm/views/password.py:30 bookwyrm/views/password.py:35 msgid "No user with that email address was found." msgstr "没有找到使用该邮箱的用户。" -#: bookwyrm/views/password.py:41 +#: bookwyrm/views/password.py:44 #, python-format msgid "A password reset link sent to %s" msgstr "密码重置连接已发送给 %s" +#, fuzzy +#~| msgid "BookWyrm users" +#~ msgid "BookWyrm\\" +#~ msgstr "BookWyrm 用户" + #, fuzzy #~| msgid "Show more" #~ msgid "Show"