diff --git a/bookwyrm/activitystreams.py b/bookwyrm/activitystreams.py
index f843641f..4896e07d 100644
--- a/bookwyrm/activitystreams.py
+++ b/bookwyrm/activitystreams.py
@@ -8,7 +8,6 @@ from django.utils import timezone
from bookwyrm import models
from bookwyrm.redis_store import RedisStore, r
from bookwyrm.tasks import app
-from bookwyrm.views.helpers import privacy_filter
class ActivityStream(RedisStore):
@@ -43,7 +42,7 @@ class ActivityStream(RedisStore):
def add_user_statuses(self, viewer, user):
"""add a user's statuses to another user's feed"""
# only add the statuses that the viewer should be able to see (ie, not dms)
- statuses = privacy_filter(viewer, user.status_set.all())
+ statuses = models.Status.privacy_filter(viewer).filter(user=user)
self.bulk_add_objects_to_store(statuses, self.stream_id(viewer))
def remove_user_statuses(self, viewer, user):
@@ -113,9 +112,8 @@ class ActivityStream(RedisStore):
def get_statuses_for_user(self, user): # pylint: disable=no-self-use
"""given a user, what statuses should they see on this stream"""
- return privacy_filter(
+ return models.Status.privacy_filter(
user,
- models.Status.objects.select_subclasses(),
privacy_levels=["public", "unlisted", "followers"],
)
@@ -139,11 +137,15 @@ class HomeStream(ActivityStream):
).distinct()
def get_statuses_for_user(self, user):
- return privacy_filter(
+ return models.Status.privacy_filter(
user,
- models.Status.objects.select_subclasses(),
privacy_levels=["public", "unlisted", "followers"],
- following_only=True,
+ ).exclude(
+ ~Q( # remove everything except
+ Q(user__followers=user) # user following
+ | Q(user=user) # is self
+ | Q(mention_users=user) # mentions user
+ ),
)
@@ -160,11 +162,10 @@ class LocalStream(ActivityStream):
def get_statuses_for_user(self, user):
# all public statuses by a local user
- return privacy_filter(
+ return models.Status.privacy_filter(
user,
- models.Status.objects.select_subclasses().filter(user__local=True),
privacy_levels=["public"],
- )
+ ).filter(user__local=True)
class BooksStream(ActivityStream):
@@ -197,50 +198,53 @@ class BooksStream(ActivityStream):
books = user.shelfbook_set.values_list(
"book__parent_work__id", flat=True
).distinct()
- return privacy_filter(
- user,
- models.Status.objects.select_subclasses()
+ return (
+ models.Status.privacy_filter(
+ user,
+ privacy_levels=["public"],
+ )
.filter(
Q(comment__book__parent_work__id__in=books)
| Q(quotation__book__parent_work__id__in=books)
| Q(review__book__parent_work__id__in=books)
| Q(mention_books__parent_work__id__in=books)
)
- .distinct(),
- privacy_levels=["public"],
+ .distinct()
)
def add_book_statuses(self, user, book):
"""add statuses about a book to a user's feed"""
work = book.parent_work
- statuses = privacy_filter(
- user,
- models.Status.objects.select_subclasses()
+ statuses = (
+ models.Status.privacy_filter(
+ user,
+ privacy_levels=["public"],
+ )
.filter(
Q(comment__book__parent_work=work)
| Q(quotation__book__parent_work=work)
| Q(review__book__parent_work=work)
| Q(mention_books__parent_work=work)
)
- .distinct(),
- privacy_levels=["public"],
+ .distinct()
)
self.bulk_add_objects_to_store(statuses, self.stream_id(user))
def remove_book_statuses(self, user, book):
"""add statuses about a book to a user's feed"""
work = book.parent_work
- statuses = privacy_filter(
- user,
- models.Status.objects.select_subclasses()
+ statuses = (
+ models.Status.privacy_filter(
+ user,
+ privacy_levels=["public"],
+ )
.filter(
Q(comment__book__parent_work=work)
| Q(quotation__book__parent_work=work)
| Q(review__book__parent_work=work)
| Q(mention_books__parent_work=work)
)
- .distinct(),
- privacy_levels=["public"],
+ .distinct()
)
self.bulk_remove_objects_from_store(statuses, self.stream_id(user))
diff --git a/bookwyrm/forms.py b/bookwyrm/forms.py
index 5acde9ea..c112186a 100644
--- a/bookwyrm/forms.py
+++ b/bookwyrm/forms.py
@@ -144,6 +144,7 @@ class EditUserForm(CustomForm):
"default_post_privacy",
"discoverable",
"preferred_timezone",
+ "preferred_language",
]
help_texts = {f: None for f in fields}
diff --git a/bookwyrm/migrations/0106_user_preferred_language.py b/bookwyrm/migrations/0106_user_preferred_language.py
new file mode 100644
index 00000000..a77030a0
--- /dev/null
+++ b/bookwyrm/migrations/0106_user_preferred_language.py
@@ -0,0 +1,30 @@
+# Generated by Django 3.2.5 on 2021-10-06 19:17
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ("bookwyrm", "0105_alter_connector_connector_file"),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name="user",
+ name="preferred_language",
+ field=models.CharField(
+ blank=True,
+ choices=[
+ ("en-us", "English"),
+ ("de-de", "German"),
+ ("es", "Spanish"),
+ ("fr-fr", "French"),
+ ("zh-hans", "Simplified Chinese"),
+ ("zh-hant", "Traditional Chinese"),
+ ],
+ max_length=255,
+ null=True,
+ ),
+ ),
+ ]
diff --git a/bookwyrm/models/base_model.py b/bookwyrm/models/base_model.py
index ca32521a..b781a506 100644
--- a/bookwyrm/models/base_model.py
+++ b/bookwyrm/models/base_model.py
@@ -4,6 +4,7 @@ from Crypto import Random
from django.core.exceptions import PermissionDenied
from django.db import models
+from django.db.models import Q
from django.dispatch import receiver
from django.http import Http404
from django.utils.translation import gettext_lazy as _
@@ -105,6 +106,52 @@ class BookWyrmModel(models.Model):
raise PermissionDenied()
+ @classmethod
+ def privacy_filter(cls, viewer, privacy_levels=None):
+ """filter objects that have "user" and "privacy" fields"""
+ queryset = cls.objects
+ if hasattr(queryset, "select_subclasses"):
+ queryset = queryset.select_subclasses()
+
+ privacy_levels = privacy_levels or ["public", "unlisted", "followers", "direct"]
+ # you can't see followers only or direct messages if you're not logged in
+ if viewer.is_anonymous:
+ privacy_levels = [
+ p for p in privacy_levels if not p in ["followers", "direct"]
+ ]
+ else:
+ # exclude blocks from both directions
+ queryset = queryset.exclude(
+ Q(user__blocked_by=viewer) | Q(user__blocks=viewer)
+ )
+
+ # filter to only provided privacy levels
+ queryset = queryset.filter(privacy__in=privacy_levels)
+
+ if "followers" in privacy_levels:
+ queryset = cls.followers_filter(queryset, viewer)
+
+ # exclude direct messages not intended for the user
+ if "direct" in privacy_levels:
+ queryset = cls.direct_filter(queryset, viewer)
+
+ return queryset
+
+ @classmethod
+ def followers_filter(cls, queryset, viewer):
+ """Override-able filter for "followers" privacy level"""
+ return queryset.exclude(
+ ~Q( # user isn't following and it isn't their own status
+ Q(user__followers=viewer) | Q(user=viewer)
+ ),
+ privacy="followers", # and the status is followers only
+ )
+
+ @classmethod
+ def direct_filter(cls, queryset, viewer):
+ """Override-able filter for "direct" privacy level"""
+ return queryset.exclude(~Q(user=viewer), privacy="direct")
+
@receiver(models.signals.post_save)
# pylint: disable=unused-argument
diff --git a/bookwyrm/models/status.py b/bookwyrm/models/status.py
index 58488123..1325aa88 100644
--- a/bookwyrm/models/status.py
+++ b/bookwyrm/models/status.py
@@ -6,6 +6,7 @@ from django.apps import apps
from django.core.exceptions import PermissionDenied
from django.core.validators import MaxValueValidator, MinValueValidator
from django.db import models
+from django.db.models import Q
from django.dispatch import receiver
from django.template.loader import get_template
from django.utils import timezone
@@ -207,6 +208,18 @@ class Status(OrderedCollectionPageMixin, BookWyrmModel):
if isinstance(self, (GeneratedNote, ReviewRating)):
raise PermissionDenied()
+ @classmethod
+ def privacy_filter(cls, viewer, privacy_levels=None):
+ queryset = super().privacy_filter(viewer, privacy_levels=privacy_levels)
+ return queryset.filter(deleted=False)
+
+ @classmethod
+ def direct_filter(cls, queryset, viewer):
+ """Overridden filter for "direct" privacy level"""
+ return queryset.exclude(
+ ~Q(Q(user=viewer) | Q(mention_users=viewer)), privacy="direct"
+ )
+
class GeneratedNote(Status):
"""these are app-generated messages about user activity"""
diff --git a/bookwyrm/models/user.py b/bookwyrm/models/user.py
index 637baa6e..d7945843 100644
--- a/bookwyrm/models/user.py
+++ b/bookwyrm/models/user.py
@@ -17,7 +17,7 @@ from bookwyrm.connectors import get_data, ConnectorException
from bookwyrm.models.shelf import Shelf
from bookwyrm.models.status import Status, Review
from bookwyrm.preview_images import generate_user_preview_image_task
-from bookwyrm.settings import DOMAIN, ENABLE_PREVIEW_IMAGES, USE_HTTPS
+from bookwyrm.settings import DOMAIN, ENABLE_PREVIEW_IMAGES, USE_HTTPS, LANGUAGES
from bookwyrm.signatures import create_key_pair
from bookwyrm.tasks import app
from bookwyrm.utils import regex
@@ -133,6 +133,12 @@ class User(OrderedCollectionPageMixin, AbstractUser):
default=str(pytz.utc),
max_length=255,
)
+ preferred_language = models.CharField(
+ choices=LANGUAGES,
+ null=True,
+ blank=True,
+ max_length=255,
+ )
deactivation_reason = models.CharField(
max_length=255, choices=DeactivationReason, null=True, blank=True
)
diff --git a/bookwyrm/settings.py b/bookwyrm/settings.py
index 39469a7a..55b4c445 100644
--- a/bookwyrm/settings.py
+++ b/bookwyrm/settings.py
@@ -30,6 +30,7 @@ BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
LOCALE_PATHS = [
os.path.join(BASE_DIR, "locale"),
]
+LANGUAGE_COOKIE_NAME = env.str("LANGUAGE_COOKIE_NAME", "django_language")
DEFAULT_AUTO_FIELD = "django.db.models.AutoField"
@@ -161,11 +162,11 @@ AUTH_PASSWORD_VALIDATORS = [
LANGUAGE_CODE = "en-us"
LANGUAGES = [
("en-us", _("English")),
- ("de-de", _("German")),
- ("es", _("Spanish")),
- ("fr-fr", _("French")),
- ("zh-hans", _("Simplified Chinese")),
- ("zh-hant", _("Traditional Chinese")),
+ ("de-de", _("Deutsch (German)")), # German
+ ("es", _("Español (Spanish)")), # Spanish
+ ("fr-fr", _("Français (French)")), # French
+ ("zh-hans", _("简体中文 (Simplified Chinese)")), # Simplified Chinese
+ ("zh-hant", _("繁體中文 (Traditional Chinese)")), # Traditional Chinese
]
@@ -210,12 +211,13 @@ if USE_S3:
AWS_S3_OBJECT_PARAMETERS = {"CacheControl": "max-age=86400"}
# S3 Static settings
STATIC_LOCATION = "static"
- STATIC_URL = f"https://{AWS_S3_CUSTOM_DOMAIN}/{STATIC_LOCATION}/"
+ STATIC_URL = f"{PROTOCOL}://{AWS_S3_CUSTOM_DOMAIN}/{STATIC_LOCATION}/"
STATICFILES_STORAGE = "bookwyrm.storage_backends.StaticStorage"
# S3 Media settings
MEDIA_LOCATION = "images"
- MEDIA_URL = f"https://{AWS_S3_CUSTOM_DOMAIN}/{MEDIA_LOCATION}/"
+ MEDIA_URL = f"{PROTOCOL}://{AWS_S3_CUSTOM_DOMAIN}/{MEDIA_LOCATION}/"
MEDIA_FULL_URL = MEDIA_URL
+ STATIC_FULL_URL = STATIC_URL
DEFAULT_FILE_STORAGE = "bookwyrm.storage_backends.ImagesStorage"
# I don't know if it's used, but the site crashes without it
STATIC_ROOT = os.path.join(BASE_DIR, env("STATIC_ROOT", "static"))
@@ -225,4 +227,5 @@ else:
STATIC_ROOT = os.path.join(BASE_DIR, env("STATIC_ROOT", "static"))
MEDIA_URL = "/images/"
MEDIA_FULL_URL = f"{PROTOCOL}://{DOMAIN}{MEDIA_URL}"
+ STATIC_FULL_URL = f"{PROTOCOL}://{DOMAIN}{STATIC_URL}"
MEDIA_ROOT = os.path.join(BASE_DIR, env("MEDIA_ROOT", "images"))
diff --git a/bookwyrm/templates/lists/form.html b/bookwyrm/templates/lists/form.html
index 9a000d3f..336f1a8f 100644
--- a/bookwyrm/templates/lists/form.html
+++ b/bookwyrm/templates/lists/form.html
@@ -28,7 +28,7 @@
diff --git a/bookwyrm/templates/preferences/edit_user.html b/bookwyrm/templates/preferences/edit_user.html
index f3cabbc7..72c49dbe 100644
--- a/bookwyrm/templates/preferences/edit_user.html
+++ b/bookwyrm/templates/preferences/edit_user.html
@@ -91,6 +91,12 @@
{{ form.preferred_timezone }}
+
+
+
+ {{ form.preferred_language }}
+
+
diff --git a/bookwyrm/templates/snippets/generated_status/rating.html b/bookwyrm/templates/snippets/generated_status/rating.html
index 2e9fb601..4238be0e 100644
--- a/bookwyrm/templates/snippets/generated_status/rating.html
+++ b/bookwyrm/templates/snippets/generated_status/rating.html
@@ -1,6 +1,6 @@
{% load i18n %}{% load humanize %}{% load utilities %}
-{% blocktrans trimmed with title=book|book_title path=book.remote_id display_rating=rating|floatformat:"0" count counter=rating|add:0 %}
+{% blocktrans trimmed with title=book|book_title path=book.remote_id display_rating=rating|floatformat:"-1" count counter=rating|add:0 %}
rated {{ title }}: {{ display_rating }} star
{% plural %}
rated {{ title }}: {{ display_rating }} stars
diff --git a/bookwyrm/templates/snippets/generated_status/review_pure_name.html b/bookwyrm/templates/snippets/generated_status/review_pure_name.html
index 25960191..e54a818e 100644
--- a/bookwyrm/templates/snippets/generated_status/review_pure_name.html
+++ b/bookwyrm/templates/snippets/generated_status/review_pure_name.html
@@ -1,7 +1,7 @@
{% load i18n %}
{% if rating %}
-{% blocktrans with book_title=book.title|safe display_rating=rating|floatformat:"0" review_title=name|safe count counter=rating %}Review of "{{ book_title }}" ({{ display_rating }} star): {{ review_title }}{% plural %}Review of "{{ book_title }}" ({{ display_rating }} stars): {{ review_title }}{% endblocktrans %}
+{% blocktrans with book_title=book.title|safe display_rating=rating|floatformat:"-1" review_title=name|safe count counter=rating %}Review of "{{ book_title }}" ({{ display_rating }} star): {{ review_title }}{% plural %}Review of "{{ book_title }}" ({{ display_rating }} stars): {{ review_title }}{% endblocktrans %}
{% else %}
diff --git a/bookwyrm/templatetags/bookwyrm_tags.py b/bookwyrm/templatetags/bookwyrm_tags.py
index 2e03c13b..bccd8c75 100644
--- a/bookwyrm/templatetags/bookwyrm_tags.py
+++ b/bookwyrm/templatetags/bookwyrm_tags.py
@@ -2,7 +2,7 @@
from django import template
from django.db.models import Avg
-from bookwyrm import models, views
+from bookwyrm import models
register = template.Library()
@@ -11,8 +11,8 @@ register = template.Library()
@register.filter(name="rating")
def get_rating(book, user):
"""get the overall rating of a book"""
- queryset = views.helpers.privacy_filter(
- user, models.Review.objects.filter(book__parent_work__editions=book)
+ queryset = models.Review.privacy_filter(user).filter(
+ book__parent_work__editions=book
)
return queryset.aggregate(Avg("rating"))["rating__avg"]
diff --git a/bookwyrm/views/books/books.py b/bookwyrm/views/books/books.py
index 298ba5a3..e495da3e 100644
--- a/bookwyrm/views/books/books.py
+++ b/bookwyrm/views/books/books.py
@@ -16,7 +16,7 @@ from bookwyrm.activitypub import ActivitypubResponse
from bookwyrm.connectors import connector_manager
from bookwyrm.connectors.abstract_connector import get_image
from bookwyrm.settings import PAGE_LENGTH
-from bookwyrm.views.helpers import is_api_request, privacy_filter
+from bookwyrm.views.helpers import is_api_request
# pylint: disable=no-self-use
@@ -48,8 +48,8 @@ class Book(View):
raise Http404()
# all reviews for all editions of the book
- reviews = privacy_filter(
- request.user, models.Review.objects.filter(book__parent_work__editions=book)
+ reviews = models.Review.privacy_filter(request.user).filter(
+ book__parent_work__editions=book
)
# the reviews to show
@@ -66,12 +66,9 @@ class Book(View):
queryset = queryset.select_related("user").order_by("-published_date")
paginated = Paginator(queryset, PAGE_LENGTH)
- lists = privacy_filter(
- request.user,
- models.List.objects.filter(
- listitem__approved=True,
- listitem__book__in=book.parent_work.editions.all(),
- ),
+ lists = models.List.privacy_filter(request.user,).filter(
+ listitem__approved=True,
+ listitem__book__in=book.parent_work.editions.all(),
)
data = {
"book": book,
diff --git a/bookwyrm/views/feed.py b/bookwyrm/views/feed.py
index 7f1bc22c..8eff848c 100644
--- a/bookwyrm/views/feed.py
+++ b/bookwyrm/views/feed.py
@@ -13,7 +13,7 @@ from bookwyrm import activitystreams, forms, models
from bookwyrm.activitypub import ActivitypubResponse
from bookwyrm.settings import PAGE_LENGTH, STREAMS
from bookwyrm.suggested_users import suggested_users
-from .helpers import get_user_from_username, privacy_filter
+from .helpers import get_user_from_username
from .helpers import is_api_request, is_bookwyrm_request
@@ -56,11 +56,15 @@ class DirectMessage(View):
def get(self, request, username=None):
"""like a feed but for dms only"""
# remove fancy subclasses of status, keep just good ol' notes
- queryset = models.Status.objects.filter(
- review__isnull=True,
- comment__isnull=True,
- quotation__isnull=True,
- generatednote__isnull=True,
+ activities = (
+ models.Status.privacy_filter(request.user, privacy_levels=["direct"])
+ .filter(
+ review__isnull=True,
+ comment__isnull=True,
+ quotation__isnull=True,
+ generatednote__isnull=True,
+ )
+ .order_by("-published_date")
)
user = None
@@ -70,11 +74,7 @@ class DirectMessage(View):
except Http404:
pass
if user:
- queryset = queryset.filter(Q(user=user) | Q(mention_users=user))
-
- activities = privacy_filter(
- request.user, queryset, privacy_levels=["direct"]
- ).order_by("-published_date")
+ activities = activities.filter(Q(user=user) | Q(mention_users=user))
paginated = Paginator(activities, PAGE_LENGTH)
data = {
@@ -109,9 +109,11 @@ class Status(View):
status.to_activity(pure=not is_bookwyrm_request(request))
)
- visible_thread = privacy_filter(
- request.user, models.Status.objects.filter(thread_id=status.thread_id)
- ).values_list("id", flat=True)
+ visible_thread = (
+ models.Status.privacy_filter(request.user)
+ .filter(thread_id=status.thread_id)
+ .values_list("id", flat=True)
+ )
visible_thread = list(visible_thread)
ancestors = models.Status.objects.select_subclasses().raw(
diff --git a/bookwyrm/views/helpers.py b/bookwyrm/views/helpers.py
index 7e469f7f..f28d0102 100644
--- a/bookwyrm/views/helpers.py
+++ b/bookwyrm/views/helpers.py
@@ -6,11 +6,10 @@ import dateutil.tz
from dateutil.parser import ParserError
from requests import HTTPError
-from django.core.exceptions import FieldError
-from django.db.models import Q
from django.http import Http404
+from django.utils import translation
-from bookwyrm import activitypub, models
+from bookwyrm import activitypub, models, settings
from bookwyrm.connectors import ConnectorException, get_data
from bookwyrm.status import create_generated_note
from bookwyrm.utils import regex
@@ -50,56 +49,6 @@ def is_bookwyrm_request(request):
return True
-def privacy_filter(viewer, queryset, privacy_levels=None, following_only=False):
- """filter objects that have "user" and "privacy" fields"""
- privacy_levels = privacy_levels or ["public", "unlisted", "followers", "direct"]
- # if there'd a deleted field, exclude deleted items
- try:
- queryset = queryset.filter(deleted=False)
- except FieldError:
- pass
-
- # exclude blocks from both directions
- if not viewer.is_anonymous:
- queryset = queryset.exclude(Q(user__blocked_by=viewer) | Q(user__blocks=viewer))
-
- # you can't see followers only or direct messages if you're not logged in
- if viewer.is_anonymous:
- privacy_levels = [p for p in privacy_levels if not p in ["followers", "direct"]]
-
- # filter to only privided privacy levels
- queryset = queryset.filter(privacy__in=privacy_levels)
-
- # only include statuses the user follows
- if following_only:
- queryset = queryset.exclude(
- ~Q( # remove everythign except
- Q(user__followers=viewer)
- | Q(user=viewer) # user following
- | Q(mention_users=viewer) # is self # mentions user
- ),
- )
- # exclude followers-only statuses the user doesn't follow
- elif "followers" in privacy_levels:
- queryset = queryset.exclude(
- ~Q( # user isn't following and it isn't their own status
- Q(user__followers=viewer) | Q(user=viewer)
- ),
- privacy="followers", # and the status is followers only
- )
-
- # exclude direct messages not intended for the user
- if "direct" in privacy_levels:
- try:
- queryset = queryset.exclude(
- ~Q(Q(user=viewer) | Q(mention_users=viewer)), privacy="direct"
- )
- except FieldError:
- queryset = queryset.exclude(~Q(user=viewer), privacy="direct")
-
- return queryset
-
-
def handle_remote_webfinger(query):
"""webfingerin' other servers"""
user = None
@@ -196,3 +145,11 @@ def load_date_in_user_tz_as_utc(date_str: str, user: models.User) -> datetime:
return date.replace(tzinfo=user_tz).astimezone(dateutil.tz.UTC)
except ParserError:
return None
+
+
+def set_language(user, response):
+ """Updates a user's language"""
+ if user.preferred_language:
+ translation.activate(user.preferred_language)
+ response.set_cookie(settings.LANGUAGE_COOKIE_NAME, user.preferred_language)
+ return response
diff --git a/bookwyrm/views/list.py b/bookwyrm/views/list.py
index a9d77597..b01a0e0e 100644
--- a/bookwyrm/views/list.py
+++ b/bookwyrm/views/list.py
@@ -18,7 +18,7 @@ from django.views.decorators.http import require_POST
from bookwyrm import book_search, forms, models
from bookwyrm.activitypub import ActivitypubResponse
from bookwyrm.settings import PAGE_LENGTH
-from .helpers import is_api_request, privacy_filter
+from .helpers import is_api_request
from .helpers import get_user_from_username
@@ -30,9 +30,10 @@ class Lists(View):
"""display a book list"""
# hide lists with no approved books
lists = (
- models.List.objects.annotate(
- item_count=Count("listitem", filter=Q(listitem__approved=True))
+ models.List.privacy_filter(
+ request.user, privacy_levels=["public", "followers"]
)
+ .annotate(item_count=Count("listitem", filter=Q(listitem__approved=True)))
.filter(item_count__gt=0)
.select_related("user")
.prefetch_related("listitem_set")
@@ -40,10 +41,6 @@ class Lists(View):
.distinct()
)
- lists = privacy_filter(
- request.user, lists, privacy_levels=["public", "followers"]
- )
-
paginated = Paginator(lists, 12)
data = {
"lists": paginated.get_page(request.GET.get("page")),
@@ -89,8 +86,7 @@ class UserLists(View):
def get(self, request, username):
"""display a book list"""
user = get_user_from_username(request.user, username)
- lists = models.List.objects.filter(user=user)
- lists = privacy_filter(request.user, lists)
+ lists = models.List.privacy_filter(request.user).filter(user=user)
paginated = Paginator(lists, 12)
data = {
diff --git a/bookwyrm/views/login.py b/bookwyrm/views/login.py
index e96d421a..91fda35a 100644
--- a/bookwyrm/views/login.py
+++ b/bookwyrm/views/login.py
@@ -11,6 +11,7 @@ from django.views.decorators.debug import sensitive_variables, sensitive_post_pa
from bookwyrm import forms, models
from bookwyrm.settings import DOMAIN
+from bookwyrm.views.helpers import set_language
# pylint: disable=no-self-use
@@ -55,8 +56,8 @@ class Login(View):
login(request, user)
user.update_active_date()
if request.POST.get("first_login"):
- return redirect("get-started-profile")
- return redirect(request.GET.get("next", "/"))
+ return set_language(user, redirect("get-started-profile"))
+ return set_language(user, redirect(request.GET.get("next", "/")))
# maybe the user is pending email confirmation
if models.User.objects.filter(
diff --git a/bookwyrm/views/password.py b/bookwyrm/views/password.py
index ff2a0262..d3104ad4 100644
--- a/bookwyrm/views/password.py
+++ b/bookwyrm/views/password.py
@@ -38,7 +38,7 @@ class PasswordResetRequest(View):
# create a new reset code
code = models.PasswordReset.objects.create(user=user)
password_reset_email(code)
- data = {"message": _(f"A password reset link sent to {email}")}
+ data = {"message": _(f"A password reset link was sent to {email}")}
return TemplateResponse(request, "password_reset_request.html", data)
diff --git a/bookwyrm/views/preferences/edit_user.py b/bookwyrm/views/preferences/edit_user.py
index 275304d7..a1b5b363 100644
--- a/bookwyrm/views/preferences/edit_user.py
+++ b/bookwyrm/views/preferences/edit_user.py
@@ -11,6 +11,7 @@ from django.utils.decorators import method_decorator
from django.views import View
from bookwyrm import forms
+from bookwyrm.views.helpers import set_language
# pylint: disable=no-self-use
@@ -33,9 +34,9 @@ class EditUser(View):
data = {"form": form, "user": request.user}
return TemplateResponse(request, "preferences/edit_user.html", data)
- save_user_form(form)
+ user = save_user_form(form)
- return redirect("user-feed", request.user.localname)
+ return set_language(user, redirect("user-feed", request.user.localname))
def save_user_form(form):
diff --git a/bookwyrm/views/rss_feed.py b/bookwyrm/views/rss_feed.py
index 5faa1624..b924095c 100644
--- a/bookwyrm/views/rss_feed.py
+++ b/bookwyrm/views/rss_feed.py
@@ -4,7 +4,8 @@ from django.contrib.syndication.views import Feed
from django.template.loader import get_template
from django.utils.translation import gettext_lazy as _
-from .helpers import get_user_from_username, privacy_filter
+from bookwyrm import models
+from .helpers import get_user_from_username
# pylint: disable=no-self-use, unused-argument
class RssFeed(Feed):
@@ -35,11 +36,10 @@ class RssFeed(Feed):
def items(self, obj):
"""the user's activity feed"""
- return privacy_filter(
+ return models.Status.privacy_filter(
obj,
- obj.status_set.select_subclasses(),
privacy_levels=["public", "unlisted"],
- )
+ ).filter(user=obj)
def item_link(self, item):
"""link to the status"""
diff --git a/bookwyrm/views/search.py b/bookwyrm/views/search.py
index d131b399..7a56ae72 100644
--- a/bookwyrm/views/search.py
+++ b/bookwyrm/views/search.py
@@ -13,7 +13,7 @@ from bookwyrm.connectors import connector_manager
from bookwyrm.book_search import search, format_search_result
from bookwyrm.settings import PAGE_LENGTH
from bookwyrm.utils import regex
-from .helpers import is_api_request, privacy_filter
+from .helpers import is_api_request
from .helpers import handle_remote_webfinger
@@ -108,9 +108,8 @@ def user_search(query, viewer, *_):
def list_search(query, viewer, *_):
"""any relevent lists?"""
return (
- privacy_filter(
+ models.List.privacy_filter(
viewer,
- models.List.objects,
privacy_levels=["public", "followers"],
)
.annotate(
diff --git a/bookwyrm/views/shelf.py b/bookwyrm/views/shelf.py
index 35f660b5..37f320dc 100644
--- a/bookwyrm/views/shelf.py
+++ b/bookwyrm/views/shelf.py
@@ -17,7 +17,6 @@ from bookwyrm import forms, models
from bookwyrm.activitypub import ActivitypubResponse
from bookwyrm.settings import PAGE_LENGTH
from .helpers import is_api_request, get_user_from_username
-from .helpers import privacy_filter
# pylint: disable=no-self-use
@@ -33,7 +32,7 @@ class Shelf(View):
if is_self:
shelves = user.shelf_set.all()
else:
- shelves = privacy_filter(request.user, user.shelf_set).all()
+ shelves = models.Shelf.privacy_filter(request.user).filter(user=user).all()
# get the shelf and make sure the logged in user should be able to see it
if shelf_identifier:
@@ -58,16 +57,17 @@ class Shelf(View):
if is_api_request(request):
return ActivitypubResponse(shelf.to_activity(**request.GET))
- reviews = models.Review.objects.filter(
+ reviews = models.Review.objects
+ if not is_self:
+ reviews = models.Review.privacy_filter(request.user)
+
+ reviews = reviews.filter(
user=user,
rating__isnull=False,
book__id=OuterRef("id"),
deleted=False,
).order_by("-published_date")
- if not is_self:
- reviews = privacy_filter(request.user, reviews)
-
books = books.annotate(
rating=Subquery(reviews.values("rating")[:1]),
shelved_date=F("shelfbook__shelved_date"),
diff --git a/bookwyrm/views/user.py b/bookwyrm/views/user.py
index fb553228..0d8d385b 100644
--- a/bookwyrm/views/user.py
+++ b/bookwyrm/views/user.py
@@ -12,7 +12,6 @@ from bookwyrm import models
from bookwyrm.activitypub import ActivitypubResponse
from bookwyrm.settings import PAGE_LENGTH
from .helpers import get_user_from_username, is_api_request
-from .helpers import privacy_filter
# pylint: disable=no-self-use
@@ -56,10 +55,10 @@ class User(View):
# user's posts
activities = (
- privacy_filter(
+ models.Status.privacy_filter(
request.user,
- user.status_set.select_subclasses(),
)
+ .filter(user=user)
.select_related(
"user",
"reply_parent",
diff --git a/bookwyrm/views/wellknown.py b/bookwyrm/views/wellknown.py
index 0f860441..de4f7e62 100644
--- a/bookwyrm/views/wellknown.py
+++ b/bookwyrm/views/wellknown.py
@@ -9,7 +9,7 @@ from django.utils import timezone
from django.views.decorators.http import require_GET
from bookwyrm import models
-from bookwyrm.settings import DOMAIN, VERSION, MEDIA_FULL_URL
+from bookwyrm.settings import DOMAIN, VERSION, MEDIA_FULL_URL, STATIC_FULL_URL
@require_GET
@@ -93,8 +93,7 @@ def instance_info(_):
status_count = models.Status.objects.filter(user__local=True, deleted=False).count()
site = models.SiteSettings.get()
- logo_path = site.logo or "images/logo.png"
- logo = f"{MEDIA_FULL_URL}{logo_path}"
+ logo = get_image_url(site.logo, "logo.png")
return JsonResponse(
{
"uri": DOMAIN,
@@ -134,8 +133,14 @@ def host_meta(request):
def opensearch(request):
"""Open Search xml spec"""
site = models.SiteSettings.get()
- logo_path = site.favicon or "images/favicon.png"
- logo = f"{MEDIA_FULL_URL}{logo_path}"
+ image = get_image_url(site.favicon, "favicon.png")
return TemplateResponse(
- request, "opensearch.xml", {"image": logo, "DOMAIN": DOMAIN}
+ request, "opensearch.xml", {"image": image, "DOMAIN": DOMAIN}
)
+
+
+def get_image_url(obj, fallback):
+ """helper for loading the full path to an image"""
+ if obj:
+ return f"{MEDIA_FULL_URL}{obj}"
+ return f"{STATIC_FULL_URL}images/{fallback}"
diff --git a/bw-dev b/bw-dev
index f103de20..c9c2115c 100755
--- a/bw-dev
+++ b/bw-dev
@@ -105,6 +105,9 @@ case "$CMD" in
collectstatic)
runweb python manage.py collectstatic --no-input
;;
+ add_locale)
+ runweb django-admin makemessages --no-wrap --ignore=venv -l $@
+ ;;
makemessages)
runweb django-admin makemessages --no-wrap --ignore=venv --all $@
;;
@@ -167,7 +170,8 @@ case "$CMD" in
echo " test [path]"
echo " pytest [path]"
echo " collectstatic"
- echo " makemessages [locale]"
+ echo " add_locale [locale]"
+ echo " makemessages"
echo " compilemessages [locale]"
echo " build"
echo " clean"
diff --git a/crowdin.yml b/crowdin.yml
new file mode 100644
index 00000000..2704edb3
--- /dev/null
+++ b/crowdin.yml
@@ -0,0 +1,3 @@
+files:
+ - source: /locale/en_US/LC_MESSAGES/django.po
+ translation: /locale/%locale_with_underscore%/LC_MESSAGES/django.po
diff --git a/locale/de_DE/LC_MESSAGES/django.mo b/locale/de_DE/LC_MESSAGES/django.mo
index 62c8d07f..4ce83f72 100644
Binary files a/locale/de_DE/LC_MESSAGES/django.mo and b/locale/de_DE/LC_MESSAGES/django.mo differ
diff --git a/locale/de_DE/LC_MESSAGES/django.po b/locale/de_DE/LC_MESSAGES/django.po
index 4ee3b9f7..47826e87 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-09-29 18:32+0000\n"
+"POT-Creation-Date: 2021-10-06 23:57+0000\n"
"PO-Revision-Date: 2021-03-02 17:19-0800\n"
"Last-Translator: Mouse Reeve \n"
"Language-Team: English \n"
@@ -18,67 +18,67 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: bookwyrm/forms.py:241
+#: bookwyrm/forms.py:242
#, fuzzy
#| msgid "A user with that username already exists."
msgid "A user with this email already exists."
msgstr "Dieser Benutzename ist bereits vergeben."
-#: bookwyrm/forms.py:255
+#: bookwyrm/forms.py:256
msgid "One Day"
msgstr "Ein Tag"
-#: bookwyrm/forms.py:256
+#: bookwyrm/forms.py:257
msgid "One Week"
msgstr "Eine Woche"
-#: bookwyrm/forms.py:257
+#: bookwyrm/forms.py:258
msgid "One Month"
msgstr "Ein Monat"
-#: bookwyrm/forms.py:258
+#: bookwyrm/forms.py:259
msgid "Does Not Expire"
msgstr "Läuft nicht aus"
-#: bookwyrm/forms.py:262
+#: bookwyrm/forms.py:263
#, fuzzy, python-brace-format
#| msgid "Max uses"
msgid "{i} uses"
msgstr "Maximale Benutzungen"
-#: bookwyrm/forms.py:263
+#: bookwyrm/forms.py:264
#, fuzzy
#| msgid "Unlisted"
msgid "Unlimited"
msgstr "Ungelistet"
-#: bookwyrm/forms.py:325
+#: bookwyrm/forms.py:326
msgid "List Order"
msgstr "Reihenfolge der Liste"
-#: bookwyrm/forms.py:326
+#: bookwyrm/forms.py:327
#, fuzzy
#| msgid "Title"
msgid "Book Title"
msgstr "Titel"
-#: bookwyrm/forms.py:327 bookwyrm/templates/shelf/shelf.html:134
+#: bookwyrm/forms.py:328 bookwyrm/templates/shelf/shelf.html:134
#: bookwyrm/templates/shelf/shelf.html:165
#: bookwyrm/templates/snippets/create_status/review.html:33
msgid "Rating"
msgstr ""
-#: bookwyrm/forms.py:329 bookwyrm/templates/lists/list.html:109
+#: bookwyrm/forms.py:330 bookwyrm/templates/lists/list.html:109
msgid "Sort By"
msgstr "Sortieren nach"
-#: bookwyrm/forms.py:333
+#: bookwyrm/forms.py:334
#, fuzzy
#| msgid "Started reading"
msgid "Ascending"
msgstr "Zu lesen angefangen"
-#: bookwyrm/forms.py:334
+#: bookwyrm/forms.py:335
#, fuzzy
#| msgid "Started reading"
msgid "Descending"
@@ -92,29 +92,29 @@ msgstr ""
msgid "Could not find a match for book"
msgstr ""
-#: bookwyrm/models/base_model.py:16
+#: bookwyrm/models/base_model.py:17
#, fuzzy
#| msgid "Started reading"
msgid "Pending"
msgstr "Zu lesen angefangen"
-#: bookwyrm/models/base_model.py:17
+#: bookwyrm/models/base_model.py:18
msgid "Self deletion"
msgstr ""
-#: bookwyrm/models/base_model.py:18
+#: bookwyrm/models/base_model.py:19
#, fuzzy
#| msgid "Moderator Comments"
msgid "Moderator suspension"
msgstr "Moderator:innenkommentare"
-#: bookwyrm/models/base_model.py:19
+#: bookwyrm/models/base_model.py:20
#, fuzzy
#| msgid "List curation:"
msgid "Moderator deletion"
msgstr "Listenkuratierung:"
-#: bookwyrm/models/base_model.py:20
+#: bookwyrm/models/base_model.py:21
msgid "Domain block"
msgstr ""
@@ -177,21 +177,21 @@ msgstr "Username"
msgid "A user with that username already exists."
msgstr "Dieser Benutzename ist bereits vergeben."
-#: bookwyrm/settings.py:116
+#: bookwyrm/settings.py:117
msgid "Home Timeline"
msgstr ""
-#: bookwyrm/settings.py:116
+#: bookwyrm/settings.py:117
msgid "Home"
msgstr ""
-#: bookwyrm/settings.py:117
+#: bookwyrm/settings.py:118
#, fuzzy
#| msgid "Title"
msgid "Books Timeline"
msgstr "Titel"
-#: bookwyrm/settings.py:117 bookwyrm/templates/search/layout.html:21
+#: bookwyrm/settings.py:118 bookwyrm/templates/search/layout.html:21
#: bookwyrm/templates/search/layout.html:42
#: bookwyrm/templates/user/layout.html:81
#, fuzzy
@@ -199,28 +199,28 @@ msgstr "Titel"
msgid "Books"
msgstr "Buch"
-#: bookwyrm/settings.py:163
-msgid "English"
-msgstr "Englisch"
-
#: bookwyrm/settings.py:164
-msgid "German"
-msgstr "Deutsch"
+msgid "English"
+msgstr "English (Englisch)"
#: bookwyrm/settings.py:165
-msgid "Spanish"
-msgstr "Spanisch"
+msgid "Deutsch (German)"
+msgstr "Deutsch"
#: bookwyrm/settings.py:166
-msgid "French"
-msgstr "Französisch"
+msgid "Español (Spanish)"
+msgstr "Español (Spanisch)"
#: bookwyrm/settings.py:167
-msgid "Simplified Chinese"
-msgstr "Vereinfachtes Chinesisch"
+msgid "Français (French)"
+msgstr "Français (Französisch)"
#: bookwyrm/settings.py:168
-msgid "Traditional Chinese"
+msgid "简体中文 (Simplified Chinese)"
+msgstr "简体中文 (Vereinfachtes Chinesisch)"
+
+#: bookwyrm/settings.py:169
+msgid "繁體中文 (Traditional Chinese)"
msgstr ""
#: bookwyrm/templates/404.html:4 bookwyrm/templates/404.html:8
@@ -299,22 +299,22 @@ msgid "Edit Author:"
msgstr "Autor*in editieren"
#: bookwyrm/templates/author/edit_author.html:13
-#: bookwyrm/templates/book/edit_book.html:19
+#: bookwyrm/templates/book/edit/edit_book.html:18
msgid "Added:"
msgstr "Hinzugefügt:"
#: bookwyrm/templates/author/edit_author.html:14
-#: bookwyrm/templates/book/edit_book.html:24
+#: bookwyrm/templates/book/edit/edit_book.html:21
msgid "Updated:"
msgstr "Aktualisiert:"
#: bookwyrm/templates/author/edit_author.html:15
-#: bookwyrm/templates/book/edit_book.html:30
+#: bookwyrm/templates/book/edit/edit_book.html:25
msgid "Last edited by:"
msgstr "Zuletzt bearbeitet von:"
#: bookwyrm/templates/author/edit_author.html:31
-#: bookwyrm/templates/book/edit_book.html:124
+#: bookwyrm/templates/book/edit/edit_book_form.html:15
msgid "Metadata"
msgstr "Metadaten"
@@ -324,9 +324,9 @@ msgid "Name:"
msgstr ""
#: bookwyrm/templates/author/edit_author.html:43
-#: bookwyrm/templates/book/edit_book.html:169
-#: bookwyrm/templates/book/edit_book.html:178
-#: bookwyrm/templates/book/edit_book.html:221
+#: bookwyrm/templates/book/edit/edit_book_form.html:65
+#: bookwyrm/templates/book/edit/edit_book_form.html:79
+#: bookwyrm/templates/book/edit/edit_book_form.html:124
#, fuzzy
#| msgid "Separate multiple publishers with commas."
msgid "Separate multiple values with commas."
@@ -357,7 +357,7 @@ msgid "Openlibrary key:"
msgstr ""
#: bookwyrm/templates/author/edit_author.html:89
-#: bookwyrm/templates/book/edit_book.html:313
+#: bookwyrm/templates/book/edit/edit_book_form.html:224
#, fuzzy
#| msgid "View on OpenLibrary"
msgid "Inventaire ID:"
@@ -373,11 +373,11 @@ msgstr ""
#: bookwyrm/templates/author/edit_author.html:116
#: bookwyrm/templates/book/book.html:140
-#: bookwyrm/templates/book/edit_book.html:341
+#: bookwyrm/templates/book/edit/edit_book.html:110
#: bookwyrm/templates/book/readthrough.html:76
#: bookwyrm/templates/lists/bookmark_button.html:15
#: bookwyrm/templates/lists/form.html:44
-#: bookwyrm/templates/preferences/edit_user.html:118
+#: bookwyrm/templates/preferences/edit_user.html:124
#: bookwyrm/templates/settings/announcements/announcement_form.html:69
#: bookwyrm/templates/settings/federation/edit_instance.html:74
#: bookwyrm/templates/settings/federation/instance.html:87
@@ -391,7 +391,7 @@ msgstr "Speichern"
#: bookwyrm/templates/author/edit_author.html:117
#: bookwyrm/templates/book/book.html:141 bookwyrm/templates/book/book.html:190
#: bookwyrm/templates/book/cover_modal.html:32
-#: bookwyrm/templates/book/edit_book.html:342
+#: bookwyrm/templates/book/edit/edit_book.html:111
#: bookwyrm/templates/book/readthrough.html:77
#: bookwyrm/templates/lists/delete_list_modal.html:17
#: bookwyrm/templates/settings/federation/instance.html:88
@@ -434,7 +434,7 @@ msgid "Add Description"
msgstr "Beschreibung hinzufügen"
#: bookwyrm/templates/book/book.html:136
-#: bookwyrm/templates/book/edit_book.html:143
+#: bookwyrm/templates/book/edit/edit_book_form.html:34
#: bookwyrm/templates/lists/form.html:12 bookwyrm/templates/shelf/form.html:17
msgid "Description:"
msgstr "Beschreibung:"
@@ -473,39 +473,39 @@ msgstr "Erstellen"
msgid "You don't have any reading activity for this book."
msgstr "Du hast keine Leseaktivität für dieses Buch."
-#: bookwyrm/templates/book/book.html:216
+#: bookwyrm/templates/book/book.html:218
#, fuzzy
#| msgid "Review"
msgid "Reviews"
msgstr "Bewerten"
-#: bookwyrm/templates/book/book.html:221
+#: bookwyrm/templates/book/book.html:223
#, fuzzy
#| msgid "Your shelves"
msgid "Your reviews"
msgstr "Deine Regale"
-#: bookwyrm/templates/book/book.html:227
+#: bookwyrm/templates/book/book.html:229
#, fuzzy
#| msgid "Your Account"
msgid "Your comments"
msgstr "Dein Account"
-#: bookwyrm/templates/book/book.html:233
+#: bookwyrm/templates/book/book.html:235
#, fuzzy
#| msgid "Your books"
msgid "Your quotes"
msgstr "Deine Bücher"
-#: bookwyrm/templates/book/book.html:269
+#: bookwyrm/templates/book/book.html:271
msgid "Subjects"
msgstr "Themen"
-#: bookwyrm/templates/book/book.html:281
+#: bookwyrm/templates/book/book.html:283
msgid "Places"
msgstr "Orte"
-#: bookwyrm/templates/book/book.html:292 bookwyrm/templates/layout.html:75
+#: bookwyrm/templates/book/book.html:294 bookwyrm/templates/layout.html:75
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
#: bookwyrm/templates/search/layout.html:25
#: bookwyrm/templates/search/layout.html:50
@@ -513,13 +513,13 @@ msgstr "Orte"
msgid "Lists"
msgstr "Listen"
-#: bookwyrm/templates/book/book.html:303
+#: bookwyrm/templates/book/book.html:305
#, fuzzy
#| msgid "Go to list"
msgid "Add to list"
msgstr "Zur Liste"
-#: bookwyrm/templates/book/book.html:313
+#: bookwyrm/templates/book/book.html:315
#: bookwyrm/templates/book/cover_modal.html:31
#: bookwyrm/templates/lists/list.html:181
#: bookwyrm/templates/settings/email_blocklist/domain_form.html:26
@@ -527,221 +527,234 @@ msgstr "Zur Liste"
msgid "Add"
msgstr "Hinzufügen"
-#: bookwyrm/templates/book/book_identifiers.html:7
+#: bookwyrm/templates/book/book_identifiers.html:8
msgid "ISBN:"
msgstr ""
-#: bookwyrm/templates/book/book_identifiers.html:14
-#: bookwyrm/templates/book/edit_book.html:321
+#: bookwyrm/templates/book/book_identifiers.html:15
+#: bookwyrm/templates/book/edit/edit_book_form.html:232
msgid "OCLC Number:"
msgstr "OCLC Nummer:"
-#: bookwyrm/templates/book/book_identifiers.html:21
-#: bookwyrm/templates/book/edit_book.html:329
+#: bookwyrm/templates/book/book_identifiers.html:22
+#: bookwyrm/templates/book/edit/edit_book_form.html:240
msgid "ASIN:"
msgstr ""
#: bookwyrm/templates/book/cover_modal.html:17
-#: bookwyrm/templates/book/edit_book.html:236
+#: bookwyrm/templates/book/edit/edit_book_form.html:143
#, fuzzy
#| msgid "Add cover"
msgid "Upload cover:"
msgstr "Cover hinzufügen"
#: bookwyrm/templates/book/cover_modal.html:23
-#: bookwyrm/templates/book/edit_book.html:241
+#: bookwyrm/templates/book/edit/edit_book_form.html:148
msgid "Load cover from url:"
msgstr "Cover von URL laden:"
-#: bookwyrm/templates/book/edit_book.html:5
-#: bookwyrm/templates/book/edit_book.html:11
+#: bookwyrm/templates/book/edit/edit_book.html:5
+#: bookwyrm/templates/book/edit/edit_book.html:11
#, fuzzy, python-format
#| msgid "Editions of %(book_title)s"
msgid "Edit \"%(book_title)s\""
msgstr "Editionen von %(book_title)s"
-#: bookwyrm/templates/book/edit_book.html:5
-#: bookwyrm/templates/book/edit_book.html:13
+#: bookwyrm/templates/book/edit/edit_book.html:5
+#: bookwyrm/templates/book/edit/edit_book.html:13
#, fuzzy
#| msgid "Add Books"
msgid "Add Book"
msgstr "Bücher hinzufügen"
-#: bookwyrm/templates/book/edit_book.html:61
+#: bookwyrm/templates/book/edit/edit_book.html:47
msgid "Confirm Book Info"
msgstr "Buchinfo bestätigen"
-#: bookwyrm/templates/book/edit_book.html:69
+#: bookwyrm/templates/book/edit/edit_book.html:55
#, python-format
msgid "Is \"%(name)s\" an existing author?"
msgstr "Existiert \"%(name)s\" bereits als Autor:in?"
-#: bookwyrm/templates/book/edit_book.html:78
+#: bookwyrm/templates/book/edit/edit_book.html:64
#, fuzzy, python-format
#| msgid "Start \"%(book_title)s\""
msgid "Author of %(book_title)s"
msgstr "\"%(book_title)s\" beginnen"
-#: bookwyrm/templates/book/edit_book.html:82
+#: bookwyrm/templates/book/edit/edit_book.html:68
msgid "This is a new author"
msgstr "Neue:r Autor:in"
-#: bookwyrm/templates/book/edit_book.html:89
+#: bookwyrm/templates/book/edit/edit_book.html:75
#, python-format
msgid "Creating a new author: %(name)s"
msgstr "Neu als Autor:in erstellen: %(name)s"
-#: bookwyrm/templates/book/edit_book.html:96
+#: bookwyrm/templates/book/edit/edit_book.html:82
msgid "Is this an edition of an existing work?"
msgstr "Ist das eine Edition eines vorhandenen Werkes?"
-#: bookwyrm/templates/book/edit_book.html:104
+#: bookwyrm/templates/book/edit/edit_book.html:90
msgid "This is a new work"
msgstr "Dies ist ein neues Werk."
-#: bookwyrm/templates/book/edit_book.html:111
+#: bookwyrm/templates/book/edit/edit_book.html:97
#: bookwyrm/templates/password_reset.html:30
msgid "Confirm"
msgstr "Bestätigen"
-#: bookwyrm/templates/book/edit_book.html:113
-#: bookwyrm/templates/feed/status.html:8
+#: bookwyrm/templates/book/edit/edit_book.html:99
+#: bookwyrm/templates/feed/status.html:9
msgid "Back"
msgstr "Zurück"
-#: bookwyrm/templates/book/edit_book.html:127
+#: bookwyrm/templates/book/edit/edit_book_form.html:18
#: bookwyrm/templates/snippets/create_status/review.html:16
msgid "Title:"
msgstr "Titel:"
-#: bookwyrm/templates/book/edit_book.html:135
+#: bookwyrm/templates/book/edit/edit_book_form.html:26
msgid "Subtitle:"
msgstr "Untertitel:"
-#: bookwyrm/templates/book/edit_book.html:151
+#: bookwyrm/templates/book/edit/edit_book_form.html:44
msgid "Series:"
msgstr "Serie:"
-#: bookwyrm/templates/book/edit_book.html:159
+#: bookwyrm/templates/book/edit/edit_book_form.html:53
msgid "Series number:"
msgstr "Seriennummer:"
-#: bookwyrm/templates/book/edit_book.html:167
+#: bookwyrm/templates/book/edit/edit_book_form.html:63
#, fuzzy
#| msgid "Pages:"
msgid "Languages:"
msgstr "Seiten:"
-#: bookwyrm/templates/book/edit_book.html:176
+#: bookwyrm/templates/book/edit/edit_book_form.html:74
+#, fuzzy
+#| msgid "Public"
+msgid "Publication"
+msgstr "Öffentlich"
+
+#: bookwyrm/templates/book/edit/edit_book_form.html:77
#, fuzzy
#| msgid "Published"
msgid "Publisher:"
msgstr "Veröffentlicht"
-#: bookwyrm/templates/book/edit_book.html:185
+#: bookwyrm/templates/book/edit/edit_book_form.html:86
msgid "First published date:"
msgstr "Erstveröffentlichungsdatum:"
-#: bookwyrm/templates/book/edit_book.html:193
+#: bookwyrm/templates/book/edit/edit_book_form.html:94
msgid "Published date:"
msgstr "Veröffentlichungsdatum:"
-#: bookwyrm/templates/book/edit_book.html:202
+#: bookwyrm/templates/book/edit/edit_book_form.html:104
#, fuzzy
#| msgid "Author"
msgid "Authors"
msgstr "Autor*in"
-#: bookwyrm/templates/book/edit_book.html:209
+#: bookwyrm/templates/book/edit/edit_book_form.html:112
#, fuzzy, python-format
#| msgid "Lists: %(username)s"
msgid "Remove %(name)s"
msgstr "Listen: %(username)s"
-#: bookwyrm/templates/book/edit_book.html:212
+#: bookwyrm/templates/book/edit/edit_book_form.html:115
#, fuzzy, python-format
#| msgid "Lists: %(username)s"
msgid "Author page for %(name)s"
msgstr "Listen: %(username)s"
-#: bookwyrm/templates/book/edit_book.html:219
+#: bookwyrm/templates/book/edit/edit_book_form.html:122
#, fuzzy
#| msgid "Edit Author"
msgid "Add Authors:"
msgstr "Autor*in editieren"
-#: bookwyrm/templates/book/edit_book.html:220
+#: bookwyrm/templates/book/edit/edit_book_form.html:123
msgid "John Doe, Jane Smith"
msgstr "Max Mustermann, Maria Musterfrau"
-#: bookwyrm/templates/book/edit_book.html:227
+#: bookwyrm/templates/book/edit/edit_book_form.html:132
#: bookwyrm/templates/shelf/shelf.html:127
msgid "Cover"
msgstr ""
-#: bookwyrm/templates/book/edit_book.html:253
+#: bookwyrm/templates/book/edit/edit_book_form.html:161
msgid "Physical Properties"
msgstr "Physikalische Eigenschaften"
-#: bookwyrm/templates/book/edit_book.html:257
-#: bookwyrm/templates/book/format_filter.html:5
+#: bookwyrm/templates/book/edit/edit_book_form.html:166
+#: bookwyrm/templates/book/editions/format_filter.html:5
msgid "Format:"
msgstr ""
-#: bookwyrm/templates/book/edit_book.html:268
+#: bookwyrm/templates/book/edit/edit_book_form.html:177
msgid "Format details:"
msgstr ""
-#: bookwyrm/templates/book/edit_book.html:278
+#: bookwyrm/templates/book/edit/edit_book_form.html:187
msgid "Pages:"
msgstr "Seiten:"
-#: bookwyrm/templates/book/edit_book.html:287
+#: bookwyrm/templates/book/edit/edit_book_form.html:197
msgid "Book Identifiers"
msgstr "Buchidentifikatoren"
-#: bookwyrm/templates/book/edit_book.html:289
+#: bookwyrm/templates/book/edit/edit_book_form.html:200
msgid "ISBN 13:"
msgstr ""
-#: bookwyrm/templates/book/edit_book.html:297
+#: bookwyrm/templates/book/edit/edit_book_form.html:208
msgid "ISBN 10:"
msgstr ""
-#: bookwyrm/templates/book/edit_book.html:305
+#: bookwyrm/templates/book/edit/edit_book_form.html:216
msgid "Openlibrary ID:"
msgstr ""
-#: bookwyrm/templates/book/editions.html:4
+#: bookwyrm/templates/book/editions/editions.html:4
#, python-format
msgid "Editions of %(book_title)s"
msgstr "Editionen von %(book_title)s"
-#: bookwyrm/templates/book/editions.html:8
+#: bookwyrm/templates/book/editions/editions.html:8
#, python-format
msgid "Editions of \"%(work_title)s\""
msgstr "Editionen von \"%(work_title)s\""
-#: bookwyrm/templates/book/format_filter.html:8
-#: bookwyrm/templates/book/language_filter.html:8
+#: bookwyrm/templates/book/editions/format_filter.html:8
+#: bookwyrm/templates/book/editions/language_filter.html:8
msgid "Any"
msgstr "Beliebig"
-#: bookwyrm/templates/book/language_filter.html:5
+#: bookwyrm/templates/book/editions/language_filter.html:5
+#: bookwyrm/templates/preferences/edit_user.html:95
msgid "Language:"
msgstr "Sprache"
-#: bookwyrm/templates/book/publisher_info.html:22
+#: bookwyrm/templates/book/editions/search_filter.html:5
+#, fuzzy
+#| msgid "Search Results"
+msgid "Search editions"
+msgstr "Suchergebnisse"
+
+#: bookwyrm/templates/book/publisher_info.html:21
#, python-format
msgid "%(format)s"
msgstr ""
-#: bookwyrm/templates/book/publisher_info.html:24
+#: bookwyrm/templates/book/publisher_info.html:23
#, python-format
msgid "%(format)s, %(pages)s pages"
msgstr "%(format)s, %(pages)s Seiten"
-#: bookwyrm/templates/book/publisher_info.html:26
+#: bookwyrm/templates/book/publisher_info.html:25
#, python-format
msgid "%(pages)s pages"
msgstr "%(pages)s Seiten"
@@ -752,18 +765,18 @@ msgstr "%(pages)s Seiten"
msgid "%(languages)s language"
msgstr "%(pages)s Seiten"
-#: bookwyrm/templates/book/publisher_info.html:64
+#: bookwyrm/templates/book/publisher_info.html:65
#, python-format
msgid "Published %(date)s by %(publisher)s."
msgstr "Am %(date)s von %(publisher)s veröffentlicht."
-#: bookwyrm/templates/book/publisher_info.html:66
+#: bookwyrm/templates/book/publisher_info.html:67
#, fuzzy, python-format
#| msgid "Published date:"
msgid "Published %(date)s"
msgstr "Veröffentlichungsdatum:"
-#: bookwyrm/templates/book/publisher_info.html:68
+#: bookwyrm/templates/book/publisher_info.html:69
#, python-format
msgid "Published by %(publisher)s."
msgstr "Veröffentlicht von %(publisher)s."
@@ -801,19 +814,13 @@ msgstr "Lesedaten bearbeiten"
msgid "Delete these read dates"
msgstr "Diese Lesedaten löschen"
-#: bookwyrm/templates/book/search_filter.html:5
-#, fuzzy
-#| msgid "Search Results"
-msgid "Search editions"
-msgstr "Suchergebnisse"
-
#: bookwyrm/templates/components/inline_form.html:8
#: bookwyrm/templates/components/modal.html:11
#: bookwyrm/templates/components/tooltip.html:7
#: bookwyrm/templates/feed/layout.html:71
#: bookwyrm/templates/get_started/layout.html:20
#: bookwyrm/templates/get_started/layout.html:53
-#: bookwyrm/templates/search/book.html:32
+#: bookwyrm/templates/search/book.html:49
#: bookwyrm/templates/snippets/announcement.html:18
msgid "Close"
msgstr "Schließen"
@@ -1325,7 +1332,7 @@ msgid "Avatar:"
msgstr ""
#: bookwyrm/templates/get_started/profile.html:42
-#: bookwyrm/templates/preferences/edit_user.html:104
+#: bookwyrm/templates/preferences/edit_user.html:110
msgid "Manually approve followers:"
msgstr "Folgende manuell bestätigen"
@@ -1587,8 +1594,8 @@ msgid "Log out"
msgstr "Abmelden"
#: bookwyrm/templates/layout.html:147 bookwyrm/templates/layout.html:148
-#: bookwyrm/templates/notifications.html:6
-#: bookwyrm/templates/notifications.html:11
+#: bookwyrm/templates/notifications/notifications_page.html:5
+#: bookwyrm/templates/notifications/notifications_page.html:10
msgid "Notifications"
msgstr "Benachrichtigungen"
@@ -1743,9 +1750,10 @@ msgstr "Kuratiert"
msgid "Anyone can suggest books, subject to your approval"
msgstr "Alle können Bücher vorschlagen, du kannst diese bestätigen"
-#: bookwyrm/templates/lists/form.html:31 bookwyrm/templates/search/book.html:30
-#: bookwyrm/templates/settings/reports/reports.html:25
-#: bookwyrm/templates/snippets/announcement.html:16
+#: bookwyrm/templates/lists/form.html:31
+#, fuzzy
+#| msgid "Open"
+msgctxt "curation type"
msgid "Open"
msgstr "Offen"
@@ -1873,130 +1881,133 @@ msgstr "Passwort:"
msgid "More about this site"
msgstr "Mehr über diese Seite"
-#: bookwyrm/templates/notifications.html:16
-msgid "Delete notifications"
-msgstr "Benachrichtigungen löschen"
+#: bookwyrm/templates/notifications/items/add.html:24
+#, fuzzy, python-format
+#| msgid " added %(book_title)s to your list \"%(list_name)s\""
+msgid "added %(book_title)s to your list \"%(list_name)s\""
+msgstr "hat %(book_title)s zu deiner Liste \"%(list_name)s\" Hinzugefügt"
-#: bookwyrm/templates/notifications.html:25
-msgid "All"
-msgstr ""
+#: bookwyrm/templates/notifications/items/add.html:31
+#, fuzzy, python-format
+#| msgid " suggested adding %(book_title)s to your list \"%(list_name)s\""
+msgid "suggested adding %(book_title)s to your list \"%(list_name)s\""
+msgstr "hat %(book_title)s für deine Liste \"%(list_name)s\" vorgeschlagen"
-#: bookwyrm/templates/notifications.html:29
-#, fuzzy
-#| msgid "More options"
-msgid "Mentions"
-msgstr "Mehr Optionen"
-
-#: bookwyrm/templates/notifications.html:70
-#, python-format
-msgid "favorited your review of %(book_title)s"
-msgstr "hat deine Bewertung von %(book_title)s favorisiert"
-
-#: bookwyrm/templates/notifications.html:72
-#, python-format
-msgid "favorited your comment on %(book_title)s"
-msgstr "hat deinen Kommentar zu %(book_title)s favorisiert"
-
-#: bookwyrm/templates/notifications.html:74
-#, python-format
-msgid "favorited your quote from %(book_title)s"
-msgstr " hat dein Zitat aus %(book_title)s favorisiert"
-
-#: bookwyrm/templates/notifications.html:76
-#, python-format
-msgid "favorited your status"
-msgstr "hat deinen Status favorisiert"
-
-#: bookwyrm/templates/notifications.html:81
-#, python-format
-msgid "mentioned you in a review of %(book_title)s"
-msgstr "hat dich in einer Bewertung von %(book_title)s erwähnt"
-
-#: bookwyrm/templates/notifications.html:83
-#, python-format
-msgid "mentioned you in a comment on %(book_title)s"
-msgstr "hat dich in einem Kommentar zu %(book_title)s erwähnt"
-
-#: bookwyrm/templates/notifications.html:85
-#, python-format
-msgid "mentioned you in a quote from %(book_title)s"
-msgstr "hat dich in einem Zitat von %(book_title)s erwähnt"
-
-#: bookwyrm/templates/notifications.html:87
-#, python-format
-msgid "mentioned you in a status"
-msgstr "hat dich in einem Status erwähnt"
-
-#: bookwyrm/templates/notifications.html:92
-#, python-format
-msgid "replied to your review of %(book_title)s"
-msgstr "hat auf deine Bewertung von %(book_title)s geantwortet "
-
-#: bookwyrm/templates/notifications.html:94
-#, python-format
-msgid "replied to your comment on %(book_title)s"
-msgstr "hat auf deinen Kommentar zu %(book_title)s geantwortet"
-
-#: bookwyrm/templates/notifications.html:96
-#, python-format
-msgid "replied to your quote from %(book_title)s"
-msgstr "hat auf dein Zitat aus %(book_title)s geantwortet"
-
-#: bookwyrm/templates/notifications.html:98
-#, python-format
-msgid "replied to your status"
-msgstr "hat auf deinen Status geantwortet"
-
-#: bookwyrm/templates/notifications.html:102
-msgid "followed you"
-msgstr "folgt dir"
-
-#: bookwyrm/templates/notifications.html:105
-msgid "sent you a follow request"
-msgstr "hat dir eine Folgeanfrage geschickt"
-
-#: bookwyrm/templates/notifications.html:111
+#: bookwyrm/templates/notifications/items/boost.html:19
#, python-format
msgid "boosted your review of %(book_title)s"
msgstr "hat deine Bewertung von %(book_title)s geteilt"
-#: bookwyrm/templates/notifications.html:113
+#: bookwyrm/templates/notifications/items/boost.html:25
#, python-format
msgid "boosted your comment on%(book_title)s"
msgstr "hat deinen Kommentar zu%(book_title)s geteilt"
-#: bookwyrm/templates/notifications.html:115
+#: bookwyrm/templates/notifications/items/boost.html:31
#, python-format
msgid "boosted your quote from %(book_title)s"
msgstr "hat dein Zitat aus %(book_title)s geteilt"
-#: bookwyrm/templates/notifications.html:117
+#: bookwyrm/templates/notifications/items/boost.html:37
#, python-format
msgid "boosted your status"
msgstr "hat deinen Status geteilt"
-#: bookwyrm/templates/notifications.html:121
+#: bookwyrm/templates/notifications/items/fav.html:19
#, python-format
-msgid " added %(book_title)s to your list \"%(list_name)s\""
-msgstr "hat %(book_title)s zu deiner Liste \"%(list_name)s\" Hinzugefügt"
+msgid "favorited your review of %(book_title)s"
+msgstr "hat deine Bewertung von %(book_title)s favorisiert"
-#: bookwyrm/templates/notifications.html:123
+#: bookwyrm/templates/notifications/items/fav.html:25
+#, fuzzy, python-format
+#| msgid "favorited your comment on %(book_title)s"
+msgid "favorited your comment on%(book_title)s"
+msgstr "hat deinen Kommentar zu %(book_title)s favorisiert"
+
+#: bookwyrm/templates/notifications/items/fav.html:31
#, python-format
-msgid " suggested adding %(book_title)s to your list \"%(list_name)s\""
-msgstr "hat %(book_title)s für deine Liste \"%(list_name)s\" vorgeschlagen"
+msgid "favorited your quote from %(book_title)s"
+msgstr " hat dein Zitat aus %(book_title)s favorisiert"
-#: bookwyrm/templates/notifications.html:128
+#: bookwyrm/templates/notifications/items/fav.html:37
+#, python-format
+msgid "favorited your status"
+msgstr "hat deinen Status favorisiert"
+
+#: bookwyrm/templates/notifications/items/follow.html:15
+msgid "followed you"
+msgstr "folgt dir"
+
+#: bookwyrm/templates/notifications/items/follow_request.html:11
+msgid "sent you a follow request"
+msgstr "hat dir eine Folgeanfrage geschickt"
+
+#: bookwyrm/templates/notifications/items/import.html:14
#, fuzzy, python-format
#| msgid "Your import completed."
msgid "Your import completed."
msgstr "Dein Import ist abgeschlossen."
-#: bookwyrm/templates/notifications.html:131
+#: bookwyrm/templates/notifications/items/mention.html:20
+#, python-format
+msgid "mentioned you in a review of %(book_title)s"
+msgstr "hat dich in einer Bewertung von %(book_title)s erwähnt"
+
+#: bookwyrm/templates/notifications/items/mention.html:26
+#, python-format
+msgid "mentioned you in a comment on %(book_title)s"
+msgstr "hat dich in einem Kommentar zu %(book_title)s erwähnt"
+
+#: bookwyrm/templates/notifications/items/mention.html:32
+#, python-format
+msgid "mentioned you in a quote from %(book_title)s"
+msgstr "hat dich in einem Zitat von %(book_title)s erwähnt"
+
+#: bookwyrm/templates/notifications/items/mention.html:38
+#, python-format
+msgid "mentioned you in a status"
+msgstr "hat dich in einem Status erwähnt"
+
+#: bookwyrm/templates/notifications/items/reply.html:21
+#, python-format
+msgid "replied to your review of %(book_title)s"
+msgstr "hat auf deine Bewertung von %(book_title)s geantwortet "
+
+#: bookwyrm/templates/notifications/items/reply.html:27
+#, python-format
+msgid "replied to your comment on %(book_title)s"
+msgstr "hat auf deinen Kommentar zu %(book_title)s geantwortet"
+
+#: bookwyrm/templates/notifications/items/reply.html:33
+#, python-format
+msgid "replied to your quote from %(book_title)s"
+msgstr "hat auf dein Zitat aus %(book_title)s geantwortet"
+
+#: bookwyrm/templates/notifications/items/reply.html:39
+#, python-format
+msgid "replied to your status"
+msgstr "hat auf deinen Status geantwortet"
+
+#: bookwyrm/templates/notifications/items/report.html:15
#, python-format
msgid "A new report needs moderation."
msgstr "Eine neue Meldung muss moderiert werden."
-#: bookwyrm/templates/notifications.html:157
+#: bookwyrm/templates/notifications/notifications_page.html:18
+msgid "Delete notifications"
+msgstr "Benachrichtigungen löschen"
+
+#: bookwyrm/templates/notifications/notifications_page.html:29
+msgid "All"
+msgstr ""
+
+#: bookwyrm/templates/notifications/notifications_page.html:33
+#, fuzzy
+#| msgid "More options"
+msgid "Mentions"
+msgstr "Mehr Optionen"
+
+#: bookwyrm/templates/notifications/notifications_page.html:45
msgid "You're all caught up!"
msgstr "Du bist auf dem neusten Stand!"
@@ -2073,7 +2084,7 @@ msgid "Display preferences"
msgstr "E-Mail Einstellungen"
#: bookwyrm/templates/preferences/edit_user.html:14
-#: bookwyrm/templates/preferences/edit_user.html:100
+#: bookwyrm/templates/preferences/edit_user.html:106
#, fuzzy
#| msgid "Private"
msgid "Privacy"
@@ -2100,7 +2111,7 @@ msgstr "Dein Account wird im directory angezeigt und ev
msgid "Preferred Timezone: "
msgstr "Bevorzugte Zeitzone:"
-#: bookwyrm/templates/preferences/edit_user.html:110
+#: bookwyrm/templates/preferences/edit_user.html:116
#, fuzzy
#| msgid "Goal privacy:"
msgid "Default post privacy:"
@@ -2132,17 +2143,27 @@ msgstr "Editionen von %(book_title)s"
msgid "Want to Read \"%(book_title)s\""
msgstr "\"%(book_title)s\" auf Leseliste setzen"
-#: bookwyrm/templates/search/book.html:64
+#: bookwyrm/templates/search/book.html:47
+#: bookwyrm/templates/settings/reports/reports.html:25
+#: bookwyrm/templates/snippets/announcement.html:16
+msgid "Open"
+msgstr "Offen"
+
+#: bookwyrm/templates/search/book.html:85
+msgid "Import book"
+msgstr "Buch importieren"
+
+#: bookwyrm/templates/search/book.html:107
#, fuzzy
#| msgid "Show results from other catalogues"
msgid "Load results from other catalogues"
msgstr "Ergebnisse aus anderen Katalogen zeigen"
-#: bookwyrm/templates/search/book.html:68
+#: bookwyrm/templates/search/book.html:111
msgid "Manually add book"
msgstr "Buch manuell hinzufügen"
-#: bookwyrm/templates/search/book.html:73
+#: bookwyrm/templates/search/book.html:116
msgid "Log in to import or add books."
msgstr "Log dich ein, um Bücher zu importieren oder hinzuzufügen."
@@ -2320,13 +2341,14 @@ msgid "Dashboard"
msgstr ""
#: bookwyrm/templates/settings/dashboard/dashboard.html:15
+#: bookwyrm/templates/settings/dashboard/dashboard.html:100
#, fuzzy
#| msgid "Max uses"
msgid "Total users"
msgstr "Maximale Benutzungen"
#: bookwyrm/templates/settings/dashboard/dashboard.html:21
-#: bookwyrm/templates/settings/dashboard/dashboard_user_chart.html:12
+#: bookwyrm/templates/settings/dashboard/user_chart.html:16
msgid "Active this month"
msgstr ""
@@ -2337,6 +2359,7 @@ msgid "Statuses"
msgstr "Importstatus"
#: bookwyrm/templates/settings/dashboard/dashboard.html:33
+#: bookwyrm/templates/settings/dashboard/works_chart.html:11
msgid "Works"
msgstr ""
@@ -2376,25 +2399,35 @@ msgstr ""
msgid "Weeks"
msgstr "Eine Woche"
-#: bookwyrm/templates/settings/dashboard/dashboard.html:100
+#: bookwyrm/templates/settings/dashboard/dashboard.html:106
#, fuzzy
#| msgid "User Activity"
msgid "User signup activity"
msgstr "Nutzer*innenaktivität"
-#: bookwyrm/templates/settings/dashboard/dashboard.html:106
+#: bookwyrm/templates/settings/dashboard/dashboard.html:112
#, fuzzy
#| msgid "User Activity"
msgid "Status activity"
msgstr "Nutzer*innenaktivität"
-#: bookwyrm/templates/settings/dashboard/dashboard_status_chart.html:7
+#: bookwyrm/templates/settings/dashboard/dashboard.html:118
+msgid "Works created"
+msgstr ""
+
+#: bookwyrm/templates/settings/dashboard/registration_chart.html:10
+#, fuzzy
+#| msgid "Registration"
+msgid "Registrations"
+msgstr "Registrierung"
+
+#: bookwyrm/templates/settings/dashboard/status_chart.html:11
#, fuzzy
#| msgid "No statuses reported"
msgid "Statuses posted"
msgstr "Keine Beiträge gemeldet"
-#: bookwyrm/templates/settings/dashboard/dashboard_user_chart.html:7
+#: bookwyrm/templates/settings/dashboard/user_chart.html:11
msgid "Total"
msgstr ""
@@ -3182,7 +3215,7 @@ msgstr "Regal erstellen"
msgid "Edit Shelf"
msgstr "Regal bearbeiten"
-#: bookwyrm/templates/shelf/shelf.html:28 bookwyrm/views/shelf.py:56
+#: bookwyrm/templates/shelf/shelf.html:28 bookwyrm/views/shelf.py:55
#, fuzzy
#| msgid "books"
msgid "All books"
@@ -3303,9 +3336,9 @@ msgid "of %(pages)s pages"
msgstr "von %(pages)s Seiten"
#: bookwyrm/templates/snippets/create_status/content_field.html:17
-#: bookwyrm/templates/snippets/status/layout.html:31
-#: bookwyrm/templates/snippets/status/layout.html:49
-#: bookwyrm/templates/snippets/status/layout.html:50
+#: bookwyrm/templates/snippets/status/layout.html:34
+#: bookwyrm/templates/snippets/status/layout.html:52
+#: bookwyrm/templates/snippets/status/layout.html:53
msgid "Reply"
msgstr "Antwort"
@@ -3507,29 +3540,29 @@ msgstr[1] ""
msgid "Review of \"%(book_title)s\": %(review_title)s"
msgstr "Review von \"%(book_title)s\": %(review_title)s"
-#: bookwyrm/templates/snippets/goal_form.html:3
+#: bookwyrm/templates/snippets/goal_form.html:4
#, python-format
msgid "Set a goal for how many books you'll finish reading in %(year)s, and track your progress throughout the year."
msgstr "Setze dir ein Ziel, wie viele Bücher du %(year)s lesen wirst und behalte deinen Fortschritt über's Jahr im Auge."
-#: bookwyrm/templates/snippets/goal_form.html:12
+#: bookwyrm/templates/snippets/goal_form.html:16
msgid "Reading goal:"
msgstr "Leseziel:"
-#: bookwyrm/templates/snippets/goal_form.html:17
+#: bookwyrm/templates/snippets/goal_form.html:21
msgid "books"
msgstr "Bücher"
-#: bookwyrm/templates/snippets/goal_form.html:22
+#: bookwyrm/templates/snippets/goal_form.html:26
msgid "Goal privacy:"
msgstr "Sichtbarkeit des Ziels"
-#: bookwyrm/templates/snippets/goal_form.html:29
+#: bookwyrm/templates/snippets/goal_form.html:33
#: bookwyrm/templates/snippets/reading_modals/layout.html:13
msgid "Post to feed"
msgstr "Posten"
-#: bookwyrm/templates/snippets/goal_form.html:33
+#: bookwyrm/templates/snippets/goal_form.html:37
msgid "Set goal"
msgstr "Ziel setzen"
@@ -3670,10 +3703,6 @@ msgstr "Diese Meldung wird an die Moderator:innen von %(site_name)s weitergeleti
msgid "More info about this report:"
msgstr "Mehr über diese Seite"
-#: bookwyrm/templates/snippets/search_result_text.html:36
-msgid "Import book"
-msgstr "Buch importieren"
-
#: bookwyrm/templates/snippets/shelf_selector.html:4
#, fuzzy
#| msgid "Your books"
@@ -3786,18 +3815,18 @@ msgstr "Direktnachrichten mit %(username)s"
msgid "%(username)s wants to read %(book)s"
msgstr "hat auf deinen Status geantwortet"
-#: bookwyrm/templates/snippets/status/layout.html:21
+#: bookwyrm/templates/snippets/status/layout.html:24
#: bookwyrm/templates/snippets/status/status_options.html:17
msgid "Delete status"
msgstr "Post löschen"
-#: bookwyrm/templates/snippets/status/layout.html:53
-#: bookwyrm/templates/snippets/status/layout.html:54
+#: bookwyrm/templates/snippets/status/layout.html:56
+#: bookwyrm/templates/snippets/status/layout.html:57
msgid "Boost status"
msgstr "Status teilen"
-#: bookwyrm/templates/snippets/status/layout.html:57
-#: bookwyrm/templates/snippets/status/layout.html:58
+#: bookwyrm/templates/snippets/status/layout.html:60
+#: bookwyrm/templates/snippets/status/layout.html:61
msgid "Like status"
msgstr "Status favorisieren"
@@ -3999,7 +4028,7 @@ msgstr ""
msgid "Not a valid csv file"
msgstr "E-Mail Adresse"
-#: bookwyrm/views/login.py:68
+#: bookwyrm/views/login.py:69
msgid "Username or password are incorrect"
msgstr "Username oder Passwort sind falsch"
@@ -4010,12 +4039,11 @@ msgid "No user with that email address was found."
msgstr "Dieser Benutzename ist bereits vergeben."
#: bookwyrm/views/password.py:41
-#, fuzzy, python-brace-format
-#| msgid "A password reset link sent to %s"
-msgid "A password reset link sent to {email}"
-msgstr "Ein Passwortwiederherstellungslinl wurde zu %s gesendet"
+#, python-brace-format
+msgid "A password reset link was sent to {email}"
+msgstr "Ein Passwortwiederherstellungslinl wurde zu {email} gesendet"
-#: bookwyrm/views/rss_feed.py:34
+#: bookwyrm/views/rss_feed.py:35
#, python-brace-format
msgid "Status updates from {obj.display_name}"
msgstr "Status updates von {obj.display_name}"
diff --git a/locale/en_US/LC_MESSAGES/django.po b/locale/en_US/LC_MESSAGES/django.po
index 5a9a88b0..b67d50c5 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-09-29 18:32+0000\n"
+"POT-Creation-Date: 2021-10-06 23:57+0000\n"
"PO-Revision-Date: 2021-02-28 17:19-0800\n"
"Last-Translator: Mouse Reeve \n"
"Language-Team: English \n"
@@ -18,58 +18,58 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: bookwyrm/forms.py:241
+#: bookwyrm/forms.py:242
msgid "A user with this email already exists."
msgstr ""
-#: bookwyrm/forms.py:255
+#: bookwyrm/forms.py:256
msgid "One Day"
msgstr ""
-#: bookwyrm/forms.py:256
+#: bookwyrm/forms.py:257
msgid "One Week"
msgstr ""
-#: bookwyrm/forms.py:257
+#: bookwyrm/forms.py:258
msgid "One Month"
msgstr ""
-#: bookwyrm/forms.py:258
+#: bookwyrm/forms.py:259
msgid "Does Not Expire"
msgstr ""
-#: bookwyrm/forms.py:262
+#: bookwyrm/forms.py:263
#, python-brace-format
msgid "{i} uses"
msgstr ""
-#: bookwyrm/forms.py:263
+#: bookwyrm/forms.py:264
msgid "Unlimited"
msgstr ""
-#: bookwyrm/forms.py:325
+#: bookwyrm/forms.py:326
msgid "List Order"
msgstr ""
-#: bookwyrm/forms.py:326
+#: bookwyrm/forms.py:327
msgid "Book Title"
msgstr ""
-#: bookwyrm/forms.py:327 bookwyrm/templates/shelf/shelf.html:134
+#: bookwyrm/forms.py:328 bookwyrm/templates/shelf/shelf.html:134
#: bookwyrm/templates/shelf/shelf.html:165
#: bookwyrm/templates/snippets/create_status/review.html:33
msgid "Rating"
msgstr ""
-#: bookwyrm/forms.py:329 bookwyrm/templates/lists/list.html:109
+#: bookwyrm/forms.py:330 bookwyrm/templates/lists/list.html:109
msgid "Sort By"
msgstr ""
-#: bookwyrm/forms.py:333
+#: bookwyrm/forms.py:334
msgid "Ascending"
msgstr ""
-#: bookwyrm/forms.py:334
+#: bookwyrm/forms.py:335
msgid "Descending"
msgstr ""
@@ -81,23 +81,23 @@ msgstr ""
msgid "Could not find a match for book"
msgstr ""
-#: bookwyrm/models/base_model.py:16
+#: bookwyrm/models/base_model.py:17
msgid "Pending"
msgstr ""
-#: bookwyrm/models/base_model.py:17
+#: bookwyrm/models/base_model.py:18
msgid "Self deletion"
msgstr ""
-#: bookwyrm/models/base_model.py:18
+#: bookwyrm/models/base_model.py:19
msgid "Moderator suspension"
msgstr ""
-#: bookwyrm/models/base_model.py:19
+#: bookwyrm/models/base_model.py:20
msgid "Moderator deletion"
msgstr ""
-#: bookwyrm/models/base_model.py:20
+#: bookwyrm/models/base_model.py:21
msgid "Domain block"
msgstr ""
@@ -152,46 +152,46 @@ msgstr ""
msgid "A user with that username already exists."
msgstr ""
-#: bookwyrm/settings.py:116
+#: bookwyrm/settings.py:117
msgid "Home Timeline"
msgstr ""
-#: bookwyrm/settings.py:116
+#: bookwyrm/settings.py:117
msgid "Home"
msgstr ""
-#: bookwyrm/settings.py:117
+#: bookwyrm/settings.py:118
msgid "Books Timeline"
msgstr ""
-#: bookwyrm/settings.py:117 bookwyrm/templates/search/layout.html:21
+#: bookwyrm/settings.py:118 bookwyrm/templates/search/layout.html:21
#: bookwyrm/templates/search/layout.html:42
#: bookwyrm/templates/user/layout.html:81
msgid "Books"
msgstr ""
-#: bookwyrm/settings.py:163
+#: bookwyrm/settings.py:164
msgid "English"
msgstr ""
-#: bookwyrm/settings.py:164
-msgid "German"
-msgstr ""
-
#: bookwyrm/settings.py:165
-msgid "Spanish"
+msgid "Deutsch (German)"
msgstr ""
#: bookwyrm/settings.py:166
-msgid "French"
+msgid "Español (Spanish)"
msgstr ""
#: bookwyrm/settings.py:167
-msgid "Simplified Chinese"
+msgid "Français (French)"
msgstr ""
#: bookwyrm/settings.py:168
-msgid "Traditional Chinese"
+msgid "简体中文 (Simplified Chinese)"
+msgstr ""
+
+#: bookwyrm/settings.py:169
+msgid "繁體中文 (Traditional Chinese)"
msgstr ""
#: bookwyrm/templates/404.html:4 bookwyrm/templates/404.html:8
@@ -264,22 +264,22 @@ msgid "Edit Author:"
msgstr ""
#: bookwyrm/templates/author/edit_author.html:13
-#: bookwyrm/templates/book/edit_book.html:19
+#: bookwyrm/templates/book/edit/edit_book.html:18
msgid "Added:"
msgstr ""
#: bookwyrm/templates/author/edit_author.html:14
-#: bookwyrm/templates/book/edit_book.html:24
+#: bookwyrm/templates/book/edit/edit_book.html:21
msgid "Updated:"
msgstr ""
#: bookwyrm/templates/author/edit_author.html:15
-#: bookwyrm/templates/book/edit_book.html:30
+#: bookwyrm/templates/book/edit/edit_book.html:25
msgid "Last edited by:"
msgstr ""
#: bookwyrm/templates/author/edit_author.html:31
-#: bookwyrm/templates/book/edit_book.html:124
+#: bookwyrm/templates/book/edit/edit_book_form.html:15
msgid "Metadata"
msgstr ""
@@ -289,9 +289,9 @@ msgid "Name:"
msgstr ""
#: bookwyrm/templates/author/edit_author.html:43
-#: bookwyrm/templates/book/edit_book.html:169
-#: bookwyrm/templates/book/edit_book.html:178
-#: bookwyrm/templates/book/edit_book.html:221
+#: bookwyrm/templates/book/edit/edit_book_form.html:65
+#: bookwyrm/templates/book/edit/edit_book_form.html:79
+#: bookwyrm/templates/book/edit/edit_book_form.html:124
msgid "Separate multiple values with commas."
msgstr ""
@@ -320,7 +320,7 @@ msgid "Openlibrary key:"
msgstr ""
#: bookwyrm/templates/author/edit_author.html:89
-#: bookwyrm/templates/book/edit_book.html:313
+#: bookwyrm/templates/book/edit/edit_book_form.html:224
msgid "Inventaire ID:"
msgstr ""
@@ -334,11 +334,11 @@ msgstr ""
#: bookwyrm/templates/author/edit_author.html:116
#: bookwyrm/templates/book/book.html:140
-#: bookwyrm/templates/book/edit_book.html:341
+#: bookwyrm/templates/book/edit/edit_book.html:110
#: bookwyrm/templates/book/readthrough.html:76
#: bookwyrm/templates/lists/bookmark_button.html:15
#: bookwyrm/templates/lists/form.html:44
-#: bookwyrm/templates/preferences/edit_user.html:118
+#: bookwyrm/templates/preferences/edit_user.html:124
#: bookwyrm/templates/settings/announcements/announcement_form.html:69
#: bookwyrm/templates/settings/federation/edit_instance.html:74
#: bookwyrm/templates/settings/federation/instance.html:87
@@ -352,7 +352,7 @@ msgstr ""
#: bookwyrm/templates/author/edit_author.html:117
#: bookwyrm/templates/book/book.html:141 bookwyrm/templates/book/book.html:190
#: bookwyrm/templates/book/cover_modal.html:32
-#: bookwyrm/templates/book/edit_book.html:342
+#: bookwyrm/templates/book/edit/edit_book.html:111
#: bookwyrm/templates/book/readthrough.html:77
#: bookwyrm/templates/lists/delete_list_modal.html:17
#: bookwyrm/templates/settings/federation/instance.html:88
@@ -393,7 +393,7 @@ msgid "Add Description"
msgstr ""
#: bookwyrm/templates/book/book.html:136
-#: bookwyrm/templates/book/edit_book.html:143
+#: bookwyrm/templates/book/edit/edit_book_form.html:34
#: bookwyrm/templates/lists/form.html:12 bookwyrm/templates/shelf/form.html:17
msgid "Description:"
msgstr ""
@@ -429,31 +429,31 @@ msgstr ""
msgid "You don't have any reading activity for this book."
msgstr ""
-#: bookwyrm/templates/book/book.html:216
+#: bookwyrm/templates/book/book.html:218
msgid "Reviews"
msgstr ""
-#: bookwyrm/templates/book/book.html:221
+#: bookwyrm/templates/book/book.html:223
msgid "Your reviews"
msgstr ""
-#: bookwyrm/templates/book/book.html:227
+#: bookwyrm/templates/book/book.html:229
msgid "Your comments"
msgstr ""
-#: bookwyrm/templates/book/book.html:233
+#: bookwyrm/templates/book/book.html:235
msgid "Your quotes"
msgstr ""
-#: bookwyrm/templates/book/book.html:269
+#: bookwyrm/templates/book/book.html:271
msgid "Subjects"
msgstr ""
-#: bookwyrm/templates/book/book.html:281
+#: bookwyrm/templates/book/book.html:283
msgid "Places"
msgstr ""
-#: bookwyrm/templates/book/book.html:292 bookwyrm/templates/layout.html:75
+#: bookwyrm/templates/book/book.html:294 bookwyrm/templates/layout.html:75
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
#: bookwyrm/templates/search/layout.html:25
#: bookwyrm/templates/search/layout.html:50
@@ -461,11 +461,11 @@ msgstr ""
msgid "Lists"
msgstr ""
-#: bookwyrm/templates/book/book.html:303
+#: bookwyrm/templates/book/book.html:305
msgid "Add to list"
msgstr ""
-#: bookwyrm/templates/book/book.html:313
+#: bookwyrm/templates/book/book.html:315
#: bookwyrm/templates/book/cover_modal.html:31
#: bookwyrm/templates/lists/list.html:181
#: bookwyrm/templates/settings/email_blocklist/domain_form.html:26
@@ -473,205 +473,214 @@ msgstr ""
msgid "Add"
msgstr ""
-#: bookwyrm/templates/book/book_identifiers.html:7
+#: bookwyrm/templates/book/book_identifiers.html:8
msgid "ISBN:"
msgstr ""
-#: bookwyrm/templates/book/book_identifiers.html:14
-#: bookwyrm/templates/book/edit_book.html:321
+#: bookwyrm/templates/book/book_identifiers.html:15
+#: bookwyrm/templates/book/edit/edit_book_form.html:232
msgid "OCLC Number:"
msgstr ""
-#: bookwyrm/templates/book/book_identifiers.html:21
-#: bookwyrm/templates/book/edit_book.html:329
+#: bookwyrm/templates/book/book_identifiers.html:22
+#: bookwyrm/templates/book/edit/edit_book_form.html:240
msgid "ASIN:"
msgstr ""
#: bookwyrm/templates/book/cover_modal.html:17
-#: bookwyrm/templates/book/edit_book.html:236
+#: bookwyrm/templates/book/edit/edit_book_form.html:143
msgid "Upload cover:"
msgstr ""
#: bookwyrm/templates/book/cover_modal.html:23
-#: bookwyrm/templates/book/edit_book.html:241
+#: bookwyrm/templates/book/edit/edit_book_form.html:148
msgid "Load cover from url:"
msgstr ""
-#: bookwyrm/templates/book/edit_book.html:5
-#: bookwyrm/templates/book/edit_book.html:11
+#: bookwyrm/templates/book/edit/edit_book.html:5
+#: bookwyrm/templates/book/edit/edit_book.html:11
#, python-format
msgid "Edit \"%(book_title)s\""
msgstr ""
-#: bookwyrm/templates/book/edit_book.html:5
-#: bookwyrm/templates/book/edit_book.html:13
+#: bookwyrm/templates/book/edit/edit_book.html:5
+#: bookwyrm/templates/book/edit/edit_book.html:13
msgid "Add Book"
msgstr ""
-#: bookwyrm/templates/book/edit_book.html:61
+#: bookwyrm/templates/book/edit/edit_book.html:47
msgid "Confirm Book Info"
msgstr ""
-#: bookwyrm/templates/book/edit_book.html:69
+#: bookwyrm/templates/book/edit/edit_book.html:55
#, python-format
msgid "Is \"%(name)s\" an existing author?"
msgstr ""
-#: bookwyrm/templates/book/edit_book.html:78
+#: bookwyrm/templates/book/edit/edit_book.html:64
#, python-format
msgid "Author of %(book_title)s"
msgstr ""
-#: bookwyrm/templates/book/edit_book.html:82
+#: bookwyrm/templates/book/edit/edit_book.html:68
msgid "This is a new author"
msgstr ""
-#: bookwyrm/templates/book/edit_book.html:89
+#: bookwyrm/templates/book/edit/edit_book.html:75
#, python-format
msgid "Creating a new author: %(name)s"
msgstr ""
-#: bookwyrm/templates/book/edit_book.html:96
+#: bookwyrm/templates/book/edit/edit_book.html:82
msgid "Is this an edition of an existing work?"
msgstr ""
-#: bookwyrm/templates/book/edit_book.html:104
+#: bookwyrm/templates/book/edit/edit_book.html:90
msgid "This is a new work"
msgstr ""
-#: bookwyrm/templates/book/edit_book.html:111
+#: bookwyrm/templates/book/edit/edit_book.html:97
#: bookwyrm/templates/password_reset.html:30
msgid "Confirm"
msgstr ""
-#: bookwyrm/templates/book/edit_book.html:113
-#: bookwyrm/templates/feed/status.html:8
+#: bookwyrm/templates/book/edit/edit_book.html:99
+#: bookwyrm/templates/feed/status.html:9
msgid "Back"
msgstr ""
-#: bookwyrm/templates/book/edit_book.html:127
+#: bookwyrm/templates/book/edit/edit_book_form.html:18
#: bookwyrm/templates/snippets/create_status/review.html:16
msgid "Title:"
msgstr ""
-#: bookwyrm/templates/book/edit_book.html:135
+#: bookwyrm/templates/book/edit/edit_book_form.html:26
msgid "Subtitle:"
msgstr ""
-#: bookwyrm/templates/book/edit_book.html:151
+#: bookwyrm/templates/book/edit/edit_book_form.html:44
msgid "Series:"
msgstr ""
-#: bookwyrm/templates/book/edit_book.html:159
+#: bookwyrm/templates/book/edit/edit_book_form.html:53
msgid "Series number:"
msgstr ""
-#: bookwyrm/templates/book/edit_book.html:167
+#: bookwyrm/templates/book/edit/edit_book_form.html:63
msgid "Languages:"
msgstr ""
-#: bookwyrm/templates/book/edit_book.html:176
+#: bookwyrm/templates/book/edit/edit_book_form.html:74
+msgid "Publication"
+msgstr ""
+
+#: bookwyrm/templates/book/edit/edit_book_form.html:77
msgid "Publisher:"
msgstr ""
-#: bookwyrm/templates/book/edit_book.html:185
+#: bookwyrm/templates/book/edit/edit_book_form.html:86
msgid "First published date:"
msgstr ""
-#: bookwyrm/templates/book/edit_book.html:193
+#: bookwyrm/templates/book/edit/edit_book_form.html:94
msgid "Published date:"
msgstr ""
-#: bookwyrm/templates/book/edit_book.html:202
+#: bookwyrm/templates/book/edit/edit_book_form.html:104
msgid "Authors"
msgstr ""
-#: bookwyrm/templates/book/edit_book.html:209
+#: bookwyrm/templates/book/edit/edit_book_form.html:112
#, python-format
msgid "Remove %(name)s"
msgstr ""
-#: bookwyrm/templates/book/edit_book.html:212
+#: bookwyrm/templates/book/edit/edit_book_form.html:115
#, python-format
msgid "Author page for %(name)s"
msgstr ""
-#: bookwyrm/templates/book/edit_book.html:219
+#: bookwyrm/templates/book/edit/edit_book_form.html:122
msgid "Add Authors:"
msgstr ""
-#: bookwyrm/templates/book/edit_book.html:220
+#: bookwyrm/templates/book/edit/edit_book_form.html:123
msgid "John Doe, Jane Smith"
msgstr ""
-#: bookwyrm/templates/book/edit_book.html:227
+#: bookwyrm/templates/book/edit/edit_book_form.html:132
#: bookwyrm/templates/shelf/shelf.html:127
msgid "Cover"
msgstr ""
-#: bookwyrm/templates/book/edit_book.html:253
+#: bookwyrm/templates/book/edit/edit_book_form.html:161
msgid "Physical Properties"
msgstr ""
-#: bookwyrm/templates/book/edit_book.html:257
-#: bookwyrm/templates/book/format_filter.html:5
+#: bookwyrm/templates/book/edit/edit_book_form.html:166
+#: bookwyrm/templates/book/editions/format_filter.html:5
msgid "Format:"
msgstr ""
-#: bookwyrm/templates/book/edit_book.html:268
+#: bookwyrm/templates/book/edit/edit_book_form.html:177
msgid "Format details:"
msgstr ""
-#: bookwyrm/templates/book/edit_book.html:278
+#: bookwyrm/templates/book/edit/edit_book_form.html:187
msgid "Pages:"
msgstr ""
-#: bookwyrm/templates/book/edit_book.html:287
+#: bookwyrm/templates/book/edit/edit_book_form.html:197
msgid "Book Identifiers"
msgstr ""
-#: bookwyrm/templates/book/edit_book.html:289
+#: bookwyrm/templates/book/edit/edit_book_form.html:200
msgid "ISBN 13:"
msgstr ""
-#: bookwyrm/templates/book/edit_book.html:297
+#: bookwyrm/templates/book/edit/edit_book_form.html:208
msgid "ISBN 10:"
msgstr ""
-#: bookwyrm/templates/book/edit_book.html:305
+#: bookwyrm/templates/book/edit/edit_book_form.html:216
msgid "Openlibrary ID:"
msgstr ""
-#: bookwyrm/templates/book/editions.html:4
+#: bookwyrm/templates/book/editions/editions.html:4
#, python-format
msgid "Editions of %(book_title)s"
msgstr ""
-#: bookwyrm/templates/book/editions.html:8
+#: bookwyrm/templates/book/editions/editions.html:8
#, python-format
msgid "Editions of \"%(work_title)s\""
msgstr ""
-#: bookwyrm/templates/book/format_filter.html:8
-#: bookwyrm/templates/book/language_filter.html:8
+#: bookwyrm/templates/book/editions/format_filter.html:8
+#: bookwyrm/templates/book/editions/language_filter.html:8
msgid "Any"
msgstr ""
-#: bookwyrm/templates/book/language_filter.html:5
+#: bookwyrm/templates/book/editions/language_filter.html:5
+#: bookwyrm/templates/preferences/edit_user.html:95
msgid "Language:"
msgstr ""
-#: bookwyrm/templates/book/publisher_info.html:22
+#: bookwyrm/templates/book/editions/search_filter.html:5
+msgid "Search editions"
+msgstr ""
+
+#: bookwyrm/templates/book/publisher_info.html:21
#, python-format
msgid "%(format)s"
msgstr ""
-#: bookwyrm/templates/book/publisher_info.html:24
+#: bookwyrm/templates/book/publisher_info.html:23
#, python-format
msgid "%(format)s, %(pages)s pages"
msgstr ""
-#: bookwyrm/templates/book/publisher_info.html:26
+#: bookwyrm/templates/book/publisher_info.html:25
#, python-format
msgid "%(pages)s pages"
msgstr ""
@@ -681,17 +690,17 @@ msgstr ""
msgid "%(languages)s language"
msgstr ""
-#: bookwyrm/templates/book/publisher_info.html:64
+#: bookwyrm/templates/book/publisher_info.html:65
#, python-format
msgid "Published %(date)s by %(publisher)s."
msgstr ""
-#: bookwyrm/templates/book/publisher_info.html:66
+#: bookwyrm/templates/book/publisher_info.html:67
#, python-format
msgid "Published %(date)s"
msgstr ""
-#: bookwyrm/templates/book/publisher_info.html:68
+#: bookwyrm/templates/book/publisher_info.html:69
#, python-format
msgid "Published by %(publisher)s."
msgstr ""
@@ -729,17 +738,13 @@ msgstr ""
msgid "Delete these read dates"
msgstr ""
-#: bookwyrm/templates/book/search_filter.html:5
-msgid "Search editions"
-msgstr ""
-
#: bookwyrm/templates/components/inline_form.html:8
#: bookwyrm/templates/components/modal.html:11
#: bookwyrm/templates/components/tooltip.html:7
#: bookwyrm/templates/feed/layout.html:71
#: bookwyrm/templates/get_started/layout.html:20
#: bookwyrm/templates/get_started/layout.html:53
-#: bookwyrm/templates/search/book.html:32
+#: bookwyrm/templates/search/book.html:49
#: bookwyrm/templates/snippets/announcement.html:18
msgid "Close"
msgstr ""
@@ -1197,7 +1202,7 @@ msgid "Avatar:"
msgstr ""
#: bookwyrm/templates/get_started/profile.html:42
-#: bookwyrm/templates/preferences/edit_user.html:104
+#: bookwyrm/templates/preferences/edit_user.html:110
msgid "Manually approve followers:"
msgstr ""
@@ -1445,8 +1450,8 @@ msgid "Log out"
msgstr ""
#: bookwyrm/templates/layout.html:147 bookwyrm/templates/layout.html:148
-#: bookwyrm/templates/notifications.html:6
-#: bookwyrm/templates/notifications.html:11
+#: bookwyrm/templates/notifications/notifications_page.html:5
+#: bookwyrm/templates/notifications/notifications_page.html:10
msgid "Notifications"
msgstr ""
@@ -1587,9 +1592,8 @@ msgstr ""
msgid "Anyone can suggest books, subject to your approval"
msgstr ""
-#: bookwyrm/templates/lists/form.html:31 bookwyrm/templates/search/book.html:30
-#: bookwyrm/templates/settings/reports/reports.html:25
-#: bookwyrm/templates/snippets/announcement.html:16
+#: bookwyrm/templates/lists/form.html:31
+msgctxt "curation type"
msgid "Open"
msgstr ""
@@ -1698,127 +1702,127 @@ msgstr ""
msgid "More about this site"
msgstr ""
-#: bookwyrm/templates/notifications.html:16
-msgid "Delete notifications"
-msgstr ""
-
-#: bookwyrm/templates/notifications.html:25
-msgid "All"
-msgstr ""
-
-#: bookwyrm/templates/notifications.html:29
-msgid "Mentions"
-msgstr ""
-
-#: bookwyrm/templates/notifications.html:70
+#: bookwyrm/templates/notifications/items/add.html:24
#, python-format
-msgid "favorited your review of %(book_title)s"
+msgid "added %(book_title)s to your list \"%(list_name)s\""
msgstr ""
-#: bookwyrm/templates/notifications.html:72
+#: bookwyrm/templates/notifications/items/add.html:31
#, python-format
-msgid "favorited your comment on %(book_title)s"
+msgid "suggested adding %(book_title)s to your list \"%(list_name)s\""
msgstr ""
-#: bookwyrm/templates/notifications.html:74
-#, python-format
-msgid "favorited your quote from %(book_title)s"
-msgstr ""
-
-#: bookwyrm/templates/notifications.html:76
-#, python-format
-msgid "favorited your status"
-msgstr ""
-
-#: bookwyrm/templates/notifications.html:81
-#, python-format
-msgid "mentioned you in a review of %(book_title)s"
-msgstr ""
-
-#: bookwyrm/templates/notifications.html:83
-#, python-format
-msgid "mentioned you in a comment on %(book_title)s"
-msgstr ""
-
-#: bookwyrm/templates/notifications.html:85
-#, python-format
-msgid "mentioned you in a quote from %(book_title)s"
-msgstr ""
-
-#: bookwyrm/templates/notifications.html:87
-#, python-format
-msgid "mentioned you in a status"
-msgstr ""
-
-#: bookwyrm/templates/notifications.html:92
-#, python-format
-msgid "replied to your review of %(book_title)s"
-msgstr ""
-
-#: bookwyrm/templates/notifications.html:94
-#, python-format
-msgid "replied to your comment on %(book_title)s"
-msgstr ""
-
-#: bookwyrm/templates/notifications.html:96
-#, python-format
-msgid "replied to your quote from %(book_title)s"
-msgstr ""
-
-#: bookwyrm/templates/notifications.html:98
-#, python-format
-msgid "replied to your status"
-msgstr ""
-
-#: bookwyrm/templates/notifications.html:102
-msgid "followed you"
-msgstr ""
-
-#: bookwyrm/templates/notifications.html:105
-msgid "sent you a follow request"
-msgstr ""
-
-#: bookwyrm/templates/notifications.html:111
+#: bookwyrm/templates/notifications/items/boost.html:19
#, python-format
msgid "boosted your review of %(book_title)s"
msgstr ""
-#: bookwyrm/templates/notifications.html:113
+#: bookwyrm/templates/notifications/items/boost.html:25
#, python-format
msgid "boosted your comment on%(book_title)s"
msgstr ""
-#: bookwyrm/templates/notifications.html:115
+#: bookwyrm/templates/notifications/items/boost.html:31
#, python-format
msgid "boosted your quote from %(book_title)s"
msgstr ""
-#: bookwyrm/templates/notifications.html:117
+#: bookwyrm/templates/notifications/items/boost.html:37
#, python-format
msgid "boosted your status"
msgstr ""
-#: bookwyrm/templates/notifications.html:121
+#: bookwyrm/templates/notifications/items/fav.html:19
#, python-format
-msgid " added %(book_title)s to your list \"%(list_name)s\""
+msgid "favorited your review of %(book_title)s"
msgstr ""
-#: bookwyrm/templates/notifications.html:123
+#: bookwyrm/templates/notifications/items/fav.html:25
#, python-format
-msgid " suggested adding %(book_title)s to your list \"%(list_name)s\""
+msgid "favorited your comment on%(book_title)s"
msgstr ""
-#: bookwyrm/templates/notifications.html:128
+#: bookwyrm/templates/notifications/items/fav.html:31
+#, python-format
+msgid "favorited your quote from %(book_title)s"
+msgstr ""
+
+#: bookwyrm/templates/notifications/items/fav.html:37
+#, python-format
+msgid "favorited your status"
+msgstr ""
+
+#: bookwyrm/templates/notifications/items/follow.html:15
+msgid "followed you"
+msgstr ""
+
+#: bookwyrm/templates/notifications/items/follow_request.html:11
+msgid "sent you a follow request"
+msgstr ""
+
+#: bookwyrm/templates/notifications/items/import.html:14
#, python-format
msgid "Your import completed."
msgstr ""
-#: bookwyrm/templates/notifications.html:131
+#: bookwyrm/templates/notifications/items/mention.html:20
+#, python-format
+msgid "mentioned you in a review of %(book_title)s"
+msgstr ""
+
+#: bookwyrm/templates/notifications/items/mention.html:26
+#, python-format
+msgid "mentioned you in a comment on %(book_title)s"
+msgstr ""
+
+#: bookwyrm/templates/notifications/items/mention.html:32
+#, python-format
+msgid "mentioned you in a quote from %(book_title)s"
+msgstr ""
+
+#: bookwyrm/templates/notifications/items/mention.html:38
+#, python-format
+msgid "mentioned you in a status"
+msgstr ""
+
+#: bookwyrm/templates/notifications/items/reply.html:21
+#, python-format
+msgid "replied to your review of %(book_title)s"
+msgstr ""
+
+#: bookwyrm/templates/notifications/items/reply.html:27
+#, python-format
+msgid "replied to your comment on %(book_title)s"
+msgstr ""
+
+#: bookwyrm/templates/notifications/items/reply.html:33
+#, python-format
+msgid "replied to your quote from %(book_title)s"
+msgstr ""
+
+#: bookwyrm/templates/notifications/items/reply.html:39
+#, python-format
+msgid "replied to your status"
+msgstr ""
+
+#: bookwyrm/templates/notifications/items/report.html:15
#, python-format
msgid "A new report needs moderation."
msgstr ""
-#: bookwyrm/templates/notifications.html:157
+#: bookwyrm/templates/notifications/notifications_page.html:18
+msgid "Delete notifications"
+msgstr ""
+
+#: bookwyrm/templates/notifications/notifications_page.html:29
+msgid "All"
+msgstr ""
+
+#: bookwyrm/templates/notifications/notifications_page.html:33
+msgid "Mentions"
+msgstr ""
+
+#: bookwyrm/templates/notifications/notifications_page.html:45
msgid "You're all caught up!"
msgstr ""
@@ -1891,7 +1895,7 @@ msgid "Display preferences"
msgstr ""
#: bookwyrm/templates/preferences/edit_user.html:14
-#: bookwyrm/templates/preferences/edit_user.html:100
+#: bookwyrm/templates/preferences/edit_user.html:106
msgid "Privacy"
msgstr ""
@@ -1912,7 +1916,7 @@ msgstr ""
msgid "Preferred Timezone: "
msgstr ""
-#: bookwyrm/templates/preferences/edit_user.html:110
+#: bookwyrm/templates/preferences/edit_user.html:116
msgid "Default post privacy:"
msgstr ""
@@ -1939,15 +1943,25 @@ msgstr ""
msgid "Want to Read \"%(book_title)s\""
msgstr ""
-#: bookwyrm/templates/search/book.html:64
+#: bookwyrm/templates/search/book.html:47
+#: bookwyrm/templates/settings/reports/reports.html:25
+#: bookwyrm/templates/snippets/announcement.html:16
+msgid "Open"
+msgstr ""
+
+#: bookwyrm/templates/search/book.html:85
+msgid "Import book"
+msgstr ""
+
+#: bookwyrm/templates/search/book.html:107
msgid "Load results from other catalogues"
msgstr ""
-#: bookwyrm/templates/search/book.html:68
+#: bookwyrm/templates/search/book.html:111
msgid "Manually add book"
msgstr ""
-#: bookwyrm/templates/search/book.html:73
+#: bookwyrm/templates/search/book.html:116
msgid "Log in to import or add books."
msgstr ""
@@ -2086,11 +2100,12 @@ msgid "Dashboard"
msgstr ""
#: bookwyrm/templates/settings/dashboard/dashboard.html:15
+#: bookwyrm/templates/settings/dashboard/dashboard.html:100
msgid "Total users"
msgstr ""
#: bookwyrm/templates/settings/dashboard/dashboard.html:21
-#: bookwyrm/templates/settings/dashboard/dashboard_user_chart.html:12
+#: bookwyrm/templates/settings/dashboard/user_chart.html:16
msgid "Active this month"
msgstr ""
@@ -2099,6 +2114,7 @@ msgid "Statuses"
msgstr ""
#: bookwyrm/templates/settings/dashboard/dashboard.html:33
+#: bookwyrm/templates/settings/dashboard/works_chart.html:11
msgid "Works"
msgstr ""
@@ -2132,19 +2148,27 @@ msgstr ""
msgid "Weeks"
msgstr ""
-#: bookwyrm/templates/settings/dashboard/dashboard.html:100
+#: bookwyrm/templates/settings/dashboard/dashboard.html:106
msgid "User signup activity"
msgstr ""
-#: bookwyrm/templates/settings/dashboard/dashboard.html:106
+#: bookwyrm/templates/settings/dashboard/dashboard.html:112
msgid "Status activity"
msgstr ""
-#: bookwyrm/templates/settings/dashboard/dashboard_status_chart.html:7
+#: bookwyrm/templates/settings/dashboard/dashboard.html:118
+msgid "Works created"
+msgstr ""
+
+#: bookwyrm/templates/settings/dashboard/registration_chart.html:10
+msgid "Registrations"
+msgstr ""
+
+#: bookwyrm/templates/settings/dashboard/status_chart.html:11
msgid "Statuses posted"
msgstr ""
-#: bookwyrm/templates/settings/dashboard/dashboard_user_chart.html:7
+#: bookwyrm/templates/settings/dashboard/user_chart.html:11
msgid "Total"
msgstr ""
@@ -2813,7 +2837,7 @@ msgstr ""
msgid "Edit Shelf"
msgstr ""
-#: bookwyrm/templates/shelf/shelf.html:28 bookwyrm/views/shelf.py:56
+#: bookwyrm/templates/shelf/shelf.html:28 bookwyrm/views/shelf.py:55
msgid "All books"
msgstr ""
@@ -2924,9 +2948,9 @@ msgid "of %(pages)s pages"
msgstr ""
#: bookwyrm/templates/snippets/create_status/content_field.html:17
-#: bookwyrm/templates/snippets/status/layout.html:31
-#: bookwyrm/templates/snippets/status/layout.html:49
-#: bookwyrm/templates/snippets/status/layout.html:50
+#: bookwyrm/templates/snippets/status/layout.html:34
+#: bookwyrm/templates/snippets/status/layout.html:52
+#: bookwyrm/templates/snippets/status/layout.html:53
msgid "Reply"
msgstr ""
@@ -3099,29 +3123,29 @@ msgstr[1] ""
msgid "Review of \"%(book_title)s\": %(review_title)s"
msgstr ""
-#: bookwyrm/templates/snippets/goal_form.html:3
+#: bookwyrm/templates/snippets/goal_form.html:4
#, python-format
msgid "Set a goal for how many books you'll finish reading in %(year)s, and track your progress throughout the year."
msgstr ""
-#: bookwyrm/templates/snippets/goal_form.html:12
+#: bookwyrm/templates/snippets/goal_form.html:16
msgid "Reading goal:"
msgstr ""
-#: bookwyrm/templates/snippets/goal_form.html:17
+#: bookwyrm/templates/snippets/goal_form.html:21
msgid "books"
msgstr ""
-#: bookwyrm/templates/snippets/goal_form.html:22
+#: bookwyrm/templates/snippets/goal_form.html:26
msgid "Goal privacy:"
msgstr ""
-#: bookwyrm/templates/snippets/goal_form.html:29
+#: bookwyrm/templates/snippets/goal_form.html:33
#: bookwyrm/templates/snippets/reading_modals/layout.html:13
msgid "Post to feed"
msgstr ""
-#: bookwyrm/templates/snippets/goal_form.html:33
+#: bookwyrm/templates/snippets/goal_form.html:37
msgid "Set goal"
msgstr ""
@@ -3253,10 +3277,6 @@ msgstr ""
msgid "More info about this report:"
msgstr ""
-#: bookwyrm/templates/snippets/search_result_text.html:36
-msgid "Import book"
-msgstr ""
-
#: bookwyrm/templates/snippets/shelf_selector.html:4
msgid "Move book"
msgstr ""
@@ -3350,18 +3370,18 @@ msgstr ""
msgid "%(username)s wants to read %(book)s"
msgstr ""
-#: bookwyrm/templates/snippets/status/layout.html:21
+#: bookwyrm/templates/snippets/status/layout.html:24
#: bookwyrm/templates/snippets/status/status_options.html:17
msgid "Delete status"
msgstr ""
-#: bookwyrm/templates/snippets/status/layout.html:53
-#: bookwyrm/templates/snippets/status/layout.html:54
+#: bookwyrm/templates/snippets/status/layout.html:56
+#: bookwyrm/templates/snippets/status/layout.html:57
msgid "Boost status"
msgstr ""
-#: bookwyrm/templates/snippets/status/layout.html:57
-#: bookwyrm/templates/snippets/status/layout.html:58
+#: bookwyrm/templates/snippets/status/layout.html:60
+#: bookwyrm/templates/snippets/status/layout.html:61
msgid "Like status"
msgstr ""
@@ -3548,7 +3568,7 @@ msgstr ""
msgid "Not a valid csv file"
msgstr ""
-#: bookwyrm/views/login.py:68
+#: bookwyrm/views/login.py:69
msgid "Username or password are incorrect"
msgstr ""
@@ -3558,10 +3578,10 @@ msgstr ""
#: bookwyrm/views/password.py:41
#, python-brace-format
-msgid "A password reset link sent to {email}"
+msgid "A password reset link was sent to {email}"
msgstr ""
-#: bookwyrm/views/rss_feed.py:34
+#: bookwyrm/views/rss_feed.py:35
#, python-brace-format
msgid "Status updates from {obj.display_name}"
msgstr ""
diff --git a/locale/es/LC_MESSAGES/django.mo b/locale/es/LC_MESSAGES/django.mo
index d53bf528..dbaa479f 100644
Binary files a/locale/es/LC_MESSAGES/django.mo and b/locale/es/LC_MESSAGES/django.mo differ
diff --git a/locale/es/LC_MESSAGES/django.po b/locale/es/LC_MESSAGES/django.po
index caa12298..a9a8583d 100644
--- a/locale/es/LC_MESSAGES/django.po
+++ b/locale/es/LC_MESSAGES/django.po
@@ -7,67 +7,68 @@ msgid ""
msgstr ""
"Project-Id-Version: 0.0.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-02 01:08+0000\n"
+"POT-Creation-Date: 2021-10-06 23:57+0000\n"
"PO-Revision-Date: 2021-03-19 11:49+0800\n"
"Last-Translator: Reese Porter \n"
-"Language-Team: LANGUAGE \n"
-"Language: \n"
+"Language-Team: \n"
+"Language: Spanish\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: bookwyrm/forms.py:241
+#: bookwyrm/forms.py:242
msgid "A user with this email already exists."
msgstr "Ya existe un usuario con ese correo electrónico."
-#: bookwyrm/forms.py:255
+#: bookwyrm/forms.py:256
msgid "One Day"
msgstr "Un día"
-#: bookwyrm/forms.py:256
+#: bookwyrm/forms.py:257
msgid "One Week"
msgstr "Una semana"
-#: bookwyrm/forms.py:257
+#: bookwyrm/forms.py:258
msgid "One Month"
msgstr "Un mes"
-#: bookwyrm/forms.py:258
+#: bookwyrm/forms.py:259
msgid "Does Not Expire"
msgstr "Nunca se vence"
-#: bookwyrm/forms.py:262
+#: bookwyrm/forms.py:263
+#, python-brace-format
msgid "{i} uses"
msgstr "{i} usos"
-#: bookwyrm/forms.py:263
+#: bookwyrm/forms.py:264
msgid "Unlimited"
msgstr "Sin límite"
-#: bookwyrm/forms.py:325
+#: bookwyrm/forms.py:326
msgid "List Order"
msgstr "Orden de la lista"
-#: bookwyrm/forms.py:326
+#: bookwyrm/forms.py:327
msgid "Book Title"
msgstr "Título"
-#: bookwyrm/forms.py:327 bookwyrm/templates/shelf/shelf.html:134
+#: bookwyrm/forms.py:328 bookwyrm/templates/shelf/shelf.html:134
#: bookwyrm/templates/shelf/shelf.html:165
#: bookwyrm/templates/snippets/create_status/review.html:33
msgid "Rating"
msgstr "Calificación"
-#: bookwyrm/forms.py:329 bookwyrm/templates/lists/list.html:109
+#: bookwyrm/forms.py:330 bookwyrm/templates/lists/list.html:109
msgid "Sort By"
msgstr "Ordenar por"
-#: bookwyrm/forms.py:333
+#: bookwyrm/forms.py:334
msgid "Ascending"
msgstr "Ascendente"
-#: bookwyrm/forms.py:334
+#: bookwyrm/forms.py:335
msgid "Descending"
msgstr "Descendente"
@@ -79,23 +80,23 @@ msgstr "Error en cargar libro"
msgid "Could not find a match for book"
msgstr "No se pudo encontrar el libro"
-#: bookwyrm/models/base_model.py:16
+#: bookwyrm/models/base_model.py:17
msgid "Pending"
msgstr "Pendiente"
-#: bookwyrm/models/base_model.py:17
+#: bookwyrm/models/base_model.py:18
msgid "Self deletion"
msgstr "Auto-eliminación"
-#: bookwyrm/models/base_model.py:18
+#: bookwyrm/models/base_model.py:19
msgid "Moderator suspension"
msgstr "Suspensión de moderador"
-#: bookwyrm/models/base_model.py:19
+#: bookwyrm/models/base_model.py:20
msgid "Moderator deletion"
msgstr "Eliminación de moderador"
-#: bookwyrm/models/base_model.py:20
+#: bookwyrm/models/base_model.py:21
msgid "Domain block"
msgstr "Bloqueo de dominio"
@@ -150,46 +151,46 @@ msgstr "nombre de usuario"
msgid "A user with that username already exists."
msgstr "Ya existe un usuario con ese nombre."
-#: bookwyrm/settings.py:116
+#: bookwyrm/settings.py:117
msgid "Home Timeline"
msgstr "Línea temporal de hogar"
-#: bookwyrm/settings.py:116
+#: bookwyrm/settings.py:117
msgid "Home"
msgstr "Hogar"
-#: bookwyrm/settings.py:117
+#: bookwyrm/settings.py:118
msgid "Books Timeline"
msgstr "Línea temporal de libros"
-#: bookwyrm/settings.py:117 bookwyrm/templates/search/layout.html:21
+#: bookwyrm/settings.py:118 bookwyrm/templates/search/layout.html:21
#: bookwyrm/templates/search/layout.html:42
#: bookwyrm/templates/user/layout.html:81
msgid "Books"
msgstr "Libros"
-#: bookwyrm/settings.py:163
+#: bookwyrm/settings.py:164
msgid "English"
msgstr "Inglés"
-#: bookwyrm/settings.py:164
-msgid "German"
-msgstr "Aléman"
-
#: bookwyrm/settings.py:165
-msgid "Spanish"
-msgstr "Español"
+msgid "Deutsch (German)"
+msgstr ""
#: bookwyrm/settings.py:166
-msgid "French"
-msgstr "Francés"
+msgid "Español (Spanish)"
+msgstr ""
#: bookwyrm/settings.py:167
-msgid "Simplified Chinese"
-msgstr "Chino simplificado"
+msgid "Français (French)"
+msgstr ""
#: bookwyrm/settings.py:168
-msgid "Traditional Chinese"
+msgid "简体中文 (Simplified Chinese)"
+msgstr "Chino simplificado"
+
+#: bookwyrm/settings.py:169
+msgid "繁體中文 (Traditional Chinese)"
msgstr "Chino tradicional"
#: bookwyrm/templates/404.html:4 bookwyrm/templates/404.html:8
@@ -262,22 +263,22 @@ msgid "Edit Author:"
msgstr "Editar Autor/Autora/Autore:"
#: bookwyrm/templates/author/edit_author.html:13
-#: bookwyrm/templates/book/edit_book.html:19
+#: bookwyrm/templates/book/edit/edit_book.html:18
msgid "Added:"
msgstr "Agregado:"
#: bookwyrm/templates/author/edit_author.html:14
-#: bookwyrm/templates/book/edit_book.html:24
+#: bookwyrm/templates/book/edit/edit_book.html:21
msgid "Updated:"
msgstr "Actualizado:"
#: bookwyrm/templates/author/edit_author.html:15
-#: bookwyrm/templates/book/edit_book.html:30
+#: bookwyrm/templates/book/edit/edit_book.html:25
msgid "Last edited by:"
msgstr "Editado más recientemente por:"
#: bookwyrm/templates/author/edit_author.html:31
-#: bookwyrm/templates/book/edit_book.html:124
+#: bookwyrm/templates/book/edit/edit_book_form.html:15
msgid "Metadata"
msgstr "Metadatos"
@@ -287,9 +288,9 @@ msgid "Name:"
msgstr "Nombre:"
#: bookwyrm/templates/author/edit_author.html:43
-#: bookwyrm/templates/book/edit_book.html:169
-#: bookwyrm/templates/book/edit_book.html:178
-#: bookwyrm/templates/book/edit_book.html:221
+#: bookwyrm/templates/book/edit/edit_book_form.html:65
+#: bookwyrm/templates/book/edit/edit_book_form.html:79
+#: bookwyrm/templates/book/edit/edit_book_form.html:124
msgid "Separate multiple values with commas."
msgstr "Separar varios valores con comas."
@@ -318,7 +319,7 @@ msgid "Openlibrary key:"
msgstr "Clave OpenLibrary:"
#: bookwyrm/templates/author/edit_author.html:89
-#: bookwyrm/templates/book/edit_book.html:313
+#: bookwyrm/templates/book/edit/edit_book_form.html:224
msgid "Inventaire ID:"
msgstr "ID Inventaire:"
@@ -332,11 +333,11 @@ msgstr "Clave Goodreads:"
#: bookwyrm/templates/author/edit_author.html:116
#: bookwyrm/templates/book/book.html:140
-#: bookwyrm/templates/book/edit_book.html:341
+#: bookwyrm/templates/book/edit/edit_book.html:110
#: bookwyrm/templates/book/readthrough.html:76
#: bookwyrm/templates/lists/bookmark_button.html:15
#: bookwyrm/templates/lists/form.html:44
-#: bookwyrm/templates/preferences/edit_user.html:118
+#: bookwyrm/templates/preferences/edit_user.html:124
#: bookwyrm/templates/settings/announcements/announcement_form.html:69
#: bookwyrm/templates/settings/federation/edit_instance.html:74
#: bookwyrm/templates/settings/federation/instance.html:87
@@ -350,7 +351,7 @@ msgstr "Guardar"
#: bookwyrm/templates/author/edit_author.html:117
#: bookwyrm/templates/book/book.html:141 bookwyrm/templates/book/book.html:190
#: bookwyrm/templates/book/cover_modal.html:32
-#: bookwyrm/templates/book/edit_book.html:342
+#: bookwyrm/templates/book/edit/edit_book.html:111
#: bookwyrm/templates/book/readthrough.html:77
#: bookwyrm/templates/lists/delete_list_modal.html:17
#: bookwyrm/templates/settings/federation/instance.html:88
@@ -391,7 +392,7 @@ msgid "Add Description"
msgstr "Agregar descripción"
#: bookwyrm/templates/book/book.html:136
-#: bookwyrm/templates/book/edit_book.html:143
+#: bookwyrm/templates/book/edit/edit_book_form.html:34
#: bookwyrm/templates/lists/form.html:12 bookwyrm/templates/shelf/form.html:17
msgid "Description:"
msgstr "Descripción:"
@@ -427,31 +428,31 @@ msgstr "Crear"
msgid "You don't have any reading activity for this book."
msgstr "No tienes ninguna actividad de lectura para este libro."
-#: bookwyrm/templates/book/book.html:216
+#: bookwyrm/templates/book/book.html:218
msgid "Reviews"
msgstr "Reseñas"
-#: bookwyrm/templates/book/book.html:221
+#: bookwyrm/templates/book/book.html:223
msgid "Your reviews"
msgstr "Tus reseñas"
-#: bookwyrm/templates/book/book.html:227
+#: bookwyrm/templates/book/book.html:229
msgid "Your comments"
msgstr "Tus comentarios"
-#: bookwyrm/templates/book/book.html:233
+#: bookwyrm/templates/book/book.html:235
msgid "Your quotes"
msgstr "Tus citas"
-#: bookwyrm/templates/book/book.html:269
+#: bookwyrm/templates/book/book.html:271
msgid "Subjects"
msgstr "Sujetos"
-#: bookwyrm/templates/book/book.html:281
+#: bookwyrm/templates/book/book.html:283
msgid "Places"
msgstr "Lugares"
-#: bookwyrm/templates/book/book.html:292 bookwyrm/templates/layout.html:75
+#: bookwyrm/templates/book/book.html:294 bookwyrm/templates/layout.html:75
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
#: bookwyrm/templates/search/layout.html:25
#: bookwyrm/templates/search/layout.html:50
@@ -459,11 +460,11 @@ msgstr "Lugares"
msgid "Lists"
msgstr "Listas"
-#: bookwyrm/templates/book/book.html:303
+#: bookwyrm/templates/book/book.html:305
msgid "Add to list"
msgstr "Agregar a lista"
-#: bookwyrm/templates/book/book.html:313
+#: bookwyrm/templates/book/book.html:315
#: bookwyrm/templates/book/cover_modal.html:31
#: bookwyrm/templates/lists/list.html:181
#: bookwyrm/templates/settings/email_blocklist/domain_form.html:26
@@ -471,225 +472,236 @@ msgstr "Agregar a lista"
msgid "Add"
msgstr "Agregar"
-#: bookwyrm/templates/book/book_identifiers.html:7
+#: bookwyrm/templates/book/book_identifiers.html:8
msgid "ISBN:"
msgstr "ISBN:"
-#: bookwyrm/templates/book/book_identifiers.html:14
-#: bookwyrm/templates/book/edit_book.html:321
+#: bookwyrm/templates/book/book_identifiers.html:15
+#: bookwyrm/templates/book/edit/edit_book_form.html:232
msgid "OCLC Number:"
msgstr "Número OCLC:"
-#: bookwyrm/templates/book/book_identifiers.html:21
-#: bookwyrm/templates/book/edit_book.html:329
+#: bookwyrm/templates/book/book_identifiers.html:22
+#: bookwyrm/templates/book/edit/edit_book_form.html:240
msgid "ASIN:"
msgstr "ASIN:"
#: bookwyrm/templates/book/cover_modal.html:17
-#: bookwyrm/templates/book/edit_book.html:236
+#: bookwyrm/templates/book/edit/edit_book_form.html:143
msgid "Upload cover:"
msgstr "Subir portada:"
#: bookwyrm/templates/book/cover_modal.html:23
-#: bookwyrm/templates/book/edit_book.html:241
+#: bookwyrm/templates/book/edit/edit_book_form.html:148
msgid "Load cover from url:"
msgstr "Agregar portada de url:"
-#: bookwyrm/templates/book/edit_book.html:5
-#: bookwyrm/templates/book/edit_book.html:11
+#: bookwyrm/templates/book/edit/edit_book.html:5
+#: bookwyrm/templates/book/edit/edit_book.html:11
#, python-format
msgid "Edit \"%(book_title)s\""
msgstr "Editar \"%(book_title)s\""
-#: bookwyrm/templates/book/edit_book.html:5
-#: bookwyrm/templates/book/edit_book.html:13
+#: bookwyrm/templates/book/edit/edit_book.html:5
+#: bookwyrm/templates/book/edit/edit_book.html:13
msgid "Add Book"
msgstr "Agregar libro"
-#: bookwyrm/templates/book/edit_book.html:61
+#: bookwyrm/templates/book/edit/edit_book.html:47
msgid "Confirm Book Info"
msgstr "Confirmar información de libro"
-#: bookwyrm/templates/book/edit_book.html:69
+#: bookwyrm/templates/book/edit/edit_book.html:55
#, python-format
msgid "Is \"%(name)s\" an existing author?"
msgstr "¿Es \"%(name)s\" un autor ya existente?"
-#: bookwyrm/templates/book/edit_book.html:78
+#: bookwyrm/templates/book/edit/edit_book.html:64
#, python-format
msgid "Author of %(book_title)s"
msgstr "Autor de %(book_title)s"
-#: bookwyrm/templates/book/edit_book.html:82
+#: bookwyrm/templates/book/edit/edit_book.html:68
msgid "This is a new author"
msgstr "Este es un autor nuevo"
-#: bookwyrm/templates/book/edit_book.html:89
+#: bookwyrm/templates/book/edit/edit_book.html:75
#, python-format
msgid "Creating a new author: %(name)s"
msgstr "Creando un autor nuevo: %(name)s"
-#: bookwyrm/templates/book/edit_book.html:96
+#: bookwyrm/templates/book/edit/edit_book.html:82
msgid "Is this an edition of an existing work?"
msgstr "¿Es esta una edición de una obra ya existente?"
-#: bookwyrm/templates/book/edit_book.html:104
+#: bookwyrm/templates/book/edit/edit_book.html:90
msgid "This is a new work"
msgstr "Esta es una obra nueva"
-#: bookwyrm/templates/book/edit_book.html:111
+#: bookwyrm/templates/book/edit/edit_book.html:97
#: bookwyrm/templates/password_reset.html:30
msgid "Confirm"
msgstr "Confirmar"
-#: bookwyrm/templates/book/edit_book.html:113
-#: bookwyrm/templates/feed/status.html:8
+#: bookwyrm/templates/book/edit/edit_book.html:99
+#: bookwyrm/templates/feed/status.html:9
msgid "Back"
msgstr "Volver"
-#: bookwyrm/templates/book/edit_book.html:127
+#: bookwyrm/templates/book/edit/edit_book_form.html:18
#: bookwyrm/templates/snippets/create_status/review.html:16
msgid "Title:"
msgstr "Título:"
-#: bookwyrm/templates/book/edit_book.html:135
+#: bookwyrm/templates/book/edit/edit_book_form.html:26
msgid "Subtitle:"
msgstr "Subtítulo:"
-#: bookwyrm/templates/book/edit_book.html:151
+#: bookwyrm/templates/book/edit/edit_book_form.html:44
msgid "Series:"
msgstr "Serie:"
-#: bookwyrm/templates/book/edit_book.html:159
+#: bookwyrm/templates/book/edit/edit_book_form.html:53
msgid "Series number:"
msgstr "Número de serie:"
-#: bookwyrm/templates/book/edit_book.html:167
+#: bookwyrm/templates/book/edit/edit_book_form.html:63
msgid "Languages:"
msgstr "Idiomas:"
-#: bookwyrm/templates/book/edit_book.html:176
+#: bookwyrm/templates/book/edit/edit_book_form.html:74
+#, fuzzy
+#| msgid "Public"
+msgid "Publication"
+msgstr "Público"
+
+#: bookwyrm/templates/book/edit/edit_book_form.html:77
msgid "Publisher:"
msgstr "Editorial:"
-#: bookwyrm/templates/book/edit_book.html:185
+#: bookwyrm/templates/book/edit/edit_book_form.html:86
msgid "First published date:"
msgstr "Fecha de primera publicación:"
-#: bookwyrm/templates/book/edit_book.html:193
+#: bookwyrm/templates/book/edit/edit_book_form.html:94
msgid "Published date:"
msgstr "Fecha de publicación:"
-#: bookwyrm/templates/book/edit_book.html:202
+#: bookwyrm/templates/book/edit/edit_book_form.html:104
msgid "Authors"
msgstr "Autores"
-#: bookwyrm/templates/book/edit_book.html:209
+#: bookwyrm/templates/book/edit/edit_book_form.html:112
#, python-format
msgid "Remove %(name)s"
msgstr "Quitar %(name)s"
-#: bookwyrm/templates/book/edit_book.html:212
+#: bookwyrm/templates/book/edit/edit_book_form.html:115
#, python-format
msgid "Author page for %(name)s"
msgstr "Página de autor por %(name)s"
-#: bookwyrm/templates/book/edit_book.html:219
+#: bookwyrm/templates/book/edit/edit_book_form.html:122
msgid "Add Authors:"
msgstr "Agregar Autores:"
-#: bookwyrm/templates/book/edit_book.html:220
+#: bookwyrm/templates/book/edit/edit_book_form.html:123
msgid "John Doe, Jane Smith"
msgstr "Juan Nadie, Natalia Natalia"
-#: bookwyrm/templates/book/edit_book.html:227
+#: bookwyrm/templates/book/edit/edit_book_form.html:132
#: bookwyrm/templates/shelf/shelf.html:127
msgid "Cover"
msgstr "Portada:"
-#: bookwyrm/templates/book/edit_book.html:253
+#: bookwyrm/templates/book/edit/edit_book_form.html:161
msgid "Physical Properties"
msgstr "Propiedades físicas:"
-#: bookwyrm/templates/book/edit_book.html:257
-#: bookwyrm/templates/book/format_filter.html:5
+#: bookwyrm/templates/book/edit/edit_book_form.html:166
+#: bookwyrm/templates/book/editions/format_filter.html:5
msgid "Format:"
msgstr "Formato:"
-#: bookwyrm/templates/book/edit_book.html:268
+#: bookwyrm/templates/book/edit/edit_book_form.html:177
msgid "Format details:"
msgstr "Detalles del formato"
-#: bookwyrm/templates/book/edit_book.html:278
+#: bookwyrm/templates/book/edit/edit_book_form.html:187
msgid "Pages:"
msgstr "Páginas:"
-#: bookwyrm/templates/book/edit_book.html:287
+#: bookwyrm/templates/book/edit/edit_book_form.html:197
msgid "Book Identifiers"
msgstr "Identificadores de libro"
-#: bookwyrm/templates/book/edit_book.html:289
+#: bookwyrm/templates/book/edit/edit_book_form.html:200
msgid "ISBN 13:"
msgstr "ISBN 13:"
-#: bookwyrm/templates/book/edit_book.html:297
+#: bookwyrm/templates/book/edit/edit_book_form.html:208
msgid "ISBN 10:"
msgstr "ISBN 10:"
-#: bookwyrm/templates/book/edit_book.html:305
+#: bookwyrm/templates/book/edit/edit_book_form.html:216
msgid "Openlibrary ID:"
msgstr "ID OpenLibrary:"
-#: bookwyrm/templates/book/editions.html:4
+#: bookwyrm/templates/book/editions/editions.html:4
#, python-format
msgid "Editions of %(book_title)s"
msgstr "Ediciones de %(book_title)s"
-#: bookwyrm/templates/book/editions.html:8
+#: bookwyrm/templates/book/editions/editions.html:8
#, python-format
msgid "Editions of \"%(work_title)s\""
msgstr "Ediciones de \"%(work_title)s\""
-#: bookwyrm/templates/book/format_filter.html:8
-#: bookwyrm/templates/book/language_filter.html:8
+#: bookwyrm/templates/book/editions/format_filter.html:8
+#: bookwyrm/templates/book/editions/language_filter.html:8
msgid "Any"
msgstr "Cualquier"
-#: bookwyrm/templates/book/language_filter.html:5
+#: bookwyrm/templates/book/editions/language_filter.html:5
+#: bookwyrm/templates/preferences/edit_user.html:95
msgid "Language:"
msgstr "Idioma:"
-#: bookwyrm/templates/book/publisher_info.html:24
+#: bookwyrm/templates/book/editions/search_filter.html:5
+msgid "Search editions"
+msgstr "Buscar ediciones"
+
+#: bookwyrm/templates/book/publisher_info.html:21
#, python-format
msgid "%(format)s"
msgstr "%(format)s"
-#: bookwyrm/templates/book/publisher_info.html:26
+#: bookwyrm/templates/book/publisher_info.html:23
#, python-format
msgid "%(format)s, %(pages)s pages"
msgstr "%(format)s, %(pages)s páginas"
-#: bookwyrm/templates/book/publisher_info.html:28
+#: bookwyrm/templates/book/publisher_info.html:25
#, python-format
msgid "%(pages)s pages"
msgstr "%(pages)s páginas"
-#: bookwyrm/templates/book/publisher_info.html:40
+#: bookwyrm/templates/book/publisher_info.html:38
#, python-format
msgid "%(languages)s language"
msgstr "idioma %(languages)s"
-#: bookwyrm/templates/book/publisher_info.html:66
+#: bookwyrm/templates/book/publisher_info.html:65
#, python-format
msgid "Published %(date)s by %(publisher)s."
msgstr "Publicado %(date)s por %(publisher)s."
-#: bookwyrm/templates/book/publisher_info.html:68
+#: bookwyrm/templates/book/publisher_info.html:67
#, python-format
msgid "Published %(date)s"
msgstr "Publicado %(date)s"
-#: bookwyrm/templates/book/publisher_info.html:70
+#: bookwyrm/templates/book/publisher_info.html:69
#, python-format
msgid "Published by %(publisher)s."
msgstr "Publicado por %(publisher)s."
@@ -727,10 +739,6 @@ msgstr "Editar fechas de lectura"
msgid "Delete these read dates"
msgstr "Eliminar estas fechas de lectura"
-#: bookwyrm/templates/book/search_filter.html:5
-msgid "Search editions"
-msgstr "Buscar ediciones"
-
#: bookwyrm/templates/components/inline_form.html:8
#: bookwyrm/templates/components/modal.html:11
#: bookwyrm/templates/components/tooltip.html:7
@@ -1195,7 +1203,7 @@ msgid "Avatar:"
msgstr "Avatar:"
#: bookwyrm/templates/get_started/profile.html:42
-#: bookwyrm/templates/preferences/edit_user.html:104
+#: bookwyrm/templates/preferences/edit_user.html:110
msgid "Manually approve followers:"
msgstr "Aprobar seguidores a mano:"
@@ -1389,6 +1397,7 @@ msgid "Request an Invitation"
msgstr "Solicitar una invitación"
#: bookwyrm/templates/landing/layout.html:49
+#, python-format
msgid "%(name)s registration is closed"
msgstr "El registro de %(name)s está cerrado"
@@ -1401,6 +1410,7 @@ msgid "Your Account"
msgstr "Tu cuenta"
#: bookwyrm/templates/layout.html:13
+#, python-format
msgid "%(site_name)s search"
msgstr "Busqueda en %(site_name)s"
@@ -1441,8 +1451,8 @@ msgid "Log out"
msgstr "Cerrar sesión"
#: bookwyrm/templates/layout.html:147 bookwyrm/templates/layout.html:148
-#: bookwyrm/templates/notifications.html:6
-#: bookwyrm/templates/notifications.html:11
+#: bookwyrm/templates/notifications/notifications_page.html:5
+#: bookwyrm/templates/notifications/notifications_page.html:10
msgid "Notifications"
msgstr "Notificaciones"
@@ -1583,9 +1593,10 @@ msgstr "De comisariado"
msgid "Anyone can suggest books, subject to your approval"
msgstr "Cualquier usuario puede sugerir libros, en cuanto lo hayas aprobado"
-#: bookwyrm/templates/lists/form.html:31 bookwyrm/templates/search/book.html:47
-#: bookwyrm/templates/settings/reports/reports.html:25
-#: bookwyrm/templates/snippets/announcement.html:16
+#: bookwyrm/templates/lists/form.html:31
+#, fuzzy
+#| msgid "Open"
+msgctxt "curation type"
msgid "Open"
msgstr "Abierto"
@@ -1694,127 +1705,130 @@ msgstr "Contraseña:"
msgid "More about this site"
msgstr "Más sobre este sitio"
-#: bookwyrm/templates/notifications.html:16
-msgid "Delete notifications"
-msgstr "Borrar notificaciones"
+#: bookwyrm/templates/notifications/items/add.html:24
+#, fuzzy, python-format
+#| msgid " added %(book_title)s to your list \"%(list_name)s\""
+msgid "added %(book_title)s to your list \"%(list_name)s\""
+msgstr " agregó %(book_title)s a tu lista \"%(list_name)s\""
-#: bookwyrm/templates/notifications.html:25
-msgid "All"
-msgstr "Todas"
+#: bookwyrm/templates/notifications/items/add.html:31
+#, fuzzy, python-format
+#| msgid " suggested adding %(book_title)s to your list \"%(list_name)s\""
+msgid "suggested adding %(book_title)s to your list \"%(list_name)s\""
+msgstr " sugirió agregar %(book_title)s a tu lista \"%(list_name)s\""
-#: bookwyrm/templates/notifications.html:29
-msgid "Mentions"
-msgstr "Menciones"
-
-#: bookwyrm/templates/notifications.html:70
-#, python-format
-msgid "favorited your review of %(book_title)s"
-msgstr "le gustó tu reseña de %(book_title)s"
-
-#: bookwyrm/templates/notifications.html:72
-#, python-format
-msgid "favorited your comment on %(book_title)s"
-msgstr "le gustó tu comentario en %(book_title)s"
-
-#: bookwyrm/templates/notifications.html:74
-#, python-format
-msgid "favorited your quote from %(book_title)s"
-msgstr "le gustó tu cita de %(book_title)s"
-
-#: bookwyrm/templates/notifications.html:76
-#, python-format
-msgid "favorited your status"
-msgstr "le gustó tu status"
-
-#: bookwyrm/templates/notifications.html:81
-#, python-format
-msgid "mentioned you in a review of %(book_title)s"
-msgstr "te mencionó en una reseña de %(book_title)s"
-
-#: bookwyrm/templates/notifications.html:83
-#, python-format
-msgid "mentioned you in a comment on %(book_title)s"
-msgstr "te mencionó en un comentario de %(book_title)s"
-
-#: bookwyrm/templates/notifications.html:85
-#, python-format
-msgid "mentioned you in a quote from %(book_title)s"
-msgstr "te mencionó en una cita de %(book_title)s"
-
-#: bookwyrm/templates/notifications.html:87
-#, python-format
-msgid "mentioned you in a status"
-msgstr "te mencionó en un status"
-
-#: bookwyrm/templates/notifications.html:92
-#, python-format
-msgid "replied to your review of %(book_title)s"
-msgstr "respondió a tu reseña de %(book_title)s"
-
-#: bookwyrm/templates/notifications.html:94
-#, python-format
-msgid "replied to your comment on %(book_title)s"
-msgstr "respondió a tu comentario en %(book_title)s"
-
-#: bookwyrm/templates/notifications.html:96
-#, python-format
-msgid "replied to your quote from %(book_title)s"
-msgstr "respondió a tu cita de %(book_title)s"
-
-#: bookwyrm/templates/notifications.html:98
-#, python-format
-msgid "replied to your status"
-msgstr "respondió a tu status"
-
-#: bookwyrm/templates/notifications.html:102
-msgid "followed you"
-msgstr "te siguió"
-
-#: bookwyrm/templates/notifications.html:105
-msgid "sent you a follow request"
-msgstr "te quiere seguir"
-
-#: bookwyrm/templates/notifications.html:111
+#: bookwyrm/templates/notifications/items/boost.html:19
#, python-format
msgid "boosted your review of %(book_title)s"
msgstr "respaldó tu reseña de %(book_title)s"
-#: bookwyrm/templates/notifications.html:113
+#: bookwyrm/templates/notifications/items/boost.html:25
#, python-format
msgid "boosted your comment on%(book_title)s"
msgstr "respaldó tu comentario en%(book_title)s"
-#: bookwyrm/templates/notifications.html:115
+#: bookwyrm/templates/notifications/items/boost.html:31
#, python-format
msgid "boosted your quote from %(book_title)s"
msgstr "respaldó tucita de %(book_title)s"
-#: bookwyrm/templates/notifications.html:117
+#: bookwyrm/templates/notifications/items/boost.html:37
#, python-format
msgid "boosted your status"
msgstr "respaldó tu status"
-#: bookwyrm/templates/notifications.html:121
+#: bookwyrm/templates/notifications/items/fav.html:19
#, python-format
-msgid " added %(book_title)s to your list \"%(list_name)s\""
-msgstr " agregó %(book_title)s a tu lista \"%(list_name)s\""
+msgid "favorited your review of %(book_title)s"
+msgstr "le gustó tu reseña de %(book_title)s"
-#: bookwyrm/templates/notifications.html:123
+#: bookwyrm/templates/notifications/items/fav.html:25
+#, fuzzy, python-format
+#| msgid "favorited your comment on %(book_title)s"
+msgid "favorited your comment on%(book_title)s"
+msgstr "le gustó tu comentario en %(book_title)s"
+
+#: bookwyrm/templates/notifications/items/fav.html:31
#, python-format
-msgid " suggested adding %(book_title)s to your list \"%(list_name)s\""
-msgstr " sugirió agregar %(book_title)s a tu lista \"%(list_name)s\""
+msgid "favorited your quote from %(book_title)s"
+msgstr "le gustó tu cita de %(book_title)s"
-#: bookwyrm/templates/notifications.html:128
+#: bookwyrm/templates/notifications/items/fav.html:37
+#, python-format
+msgid "favorited your status"
+msgstr "le gustó tu status"
+
+#: bookwyrm/templates/notifications/items/follow.html:15
+msgid "followed you"
+msgstr "te siguió"
+
+#: bookwyrm/templates/notifications/items/follow_request.html:11
+msgid "sent you a follow request"
+msgstr "te quiere seguir"
+
+#: bookwyrm/templates/notifications/items/import.html:14
#, python-format
msgid "Your import completed."
msgstr "Tu importación ha terminado."
-#: bookwyrm/templates/notifications.html:131
+#: bookwyrm/templates/notifications/items/mention.html:20
+#, python-format
+msgid "mentioned you in a review of %(book_title)s"
+msgstr "te mencionó en una reseña de %(book_title)s"
+
+#: bookwyrm/templates/notifications/items/mention.html:26
+#, python-format
+msgid "mentioned you in a comment on %(book_title)s"
+msgstr "te mencionó en un comentario de %(book_title)s"
+
+#: bookwyrm/templates/notifications/items/mention.html:32
+#, python-format
+msgid "mentioned you in a quote from %(book_title)s"
+msgstr "te mencionó en una cita de %(book_title)s"
+
+#: bookwyrm/templates/notifications/items/mention.html:38
+#, python-format
+msgid "mentioned you in a status"
+msgstr "te mencionó en un status"
+
+#: bookwyrm/templates/notifications/items/reply.html:21
+#, python-format
+msgid "replied to your review of %(book_title)s"
+msgstr "respondió a tu reseña de %(book_title)s"
+
+#: bookwyrm/templates/notifications/items/reply.html:27
+#, python-format
+msgid "replied to your comment on %(book_title)s"
+msgstr "respondió a tu comentario en %(book_title)s"
+
+#: bookwyrm/templates/notifications/items/reply.html:33
+#, python-format
+msgid "replied to your quote from %(book_title)s"
+msgstr "respondió a tu cita de %(book_title)s"
+
+#: bookwyrm/templates/notifications/items/reply.html:39
+#, python-format
+msgid "replied to your status"
+msgstr "respondió a tu status"
+
+#: bookwyrm/templates/notifications/items/report.html:15
#, python-format
msgid "A new report needs moderation."
msgstr "Un informe nuevo se requiere moderación."
-#: bookwyrm/templates/notifications.html:157
+#: bookwyrm/templates/notifications/notifications_page.html:18
+msgid "Delete notifications"
+msgstr "Borrar notificaciones"
+
+#: bookwyrm/templates/notifications/notifications_page.html:29
+msgid "All"
+msgstr "Todas"
+
+#: bookwyrm/templates/notifications/notifications_page.html:33
+msgid "Mentions"
+msgstr "Menciones"
+
+#: bookwyrm/templates/notifications/notifications_page.html:45
msgid "You're all caught up!"
msgstr "¡Estás al día!"
@@ -1887,7 +1901,7 @@ msgid "Display preferences"
msgstr "Preferencias de visualización"
#: bookwyrm/templates/preferences/edit_user.html:14
-#: bookwyrm/templates/preferences/edit_user.html:100
+#: bookwyrm/templates/preferences/edit_user.html:106
msgid "Privacy"
msgstr "Privacidad"
@@ -1908,7 +1922,7 @@ msgstr "Tu cuenta se aparecerá en el directorio, y pue
msgid "Preferred Timezone: "
msgstr "Huso horario preferido"
-#: bookwyrm/templates/preferences/edit_user.html:110
+#: bookwyrm/templates/preferences/edit_user.html:116
msgid "Default post privacy:"
msgstr "Privacidad de publicación por defecto:"
@@ -1935,6 +1949,12 @@ msgstr "Empezar \"%(book_title)s\""
msgid "Want to Read \"%(book_title)s\""
msgstr "Quiero leer \"%(book_title)s\""
+#: bookwyrm/templates/search/book.html:47
+#: bookwyrm/templates/settings/reports/reports.html:25
+#: bookwyrm/templates/snippets/announcement.html:16
+msgid "Open"
+msgstr "Abierto"
+
#: bookwyrm/templates/search/book.html:85
msgid "Import book"
msgstr "Importar libro"
@@ -2086,11 +2106,12 @@ msgid "Dashboard"
msgstr "Tablero"
#: bookwyrm/templates/settings/dashboard/dashboard.html:15
+#: bookwyrm/templates/settings/dashboard/dashboard.html:100
msgid "Total users"
msgstr "Número de usuarios"
#: bookwyrm/templates/settings/dashboard/dashboard.html:21
-#: bookwyrm/templates/settings/dashboard/dashboard_user_chart.html:12
+#: bookwyrm/templates/settings/dashboard/user_chart.html:16
msgid "Active this month"
msgstr "Activos este mes"
@@ -2099,6 +2120,7 @@ msgid "Statuses"
msgstr "Statuses"
#: bookwyrm/templates/settings/dashboard/dashboard.html:33
+#: bookwyrm/templates/settings/dashboard/works_chart.html:11
msgid "Works"
msgstr "Obras"
@@ -2132,19 +2154,29 @@ msgstr "Dias"
msgid "Weeks"
msgstr "Semanas"
-#: bookwyrm/templates/settings/dashboard/dashboard.html:100
+#: bookwyrm/templates/settings/dashboard/dashboard.html:106
msgid "User signup activity"
msgstr "Actividad de inscripciones de usuarios"
-#: bookwyrm/templates/settings/dashboard/dashboard.html:106
+#: bookwyrm/templates/settings/dashboard/dashboard.html:112
msgid "Status activity"
msgstr "Actividad de status"
-#: bookwyrm/templates/settings/dashboard/dashboard_status_chart.html:7
+#: bookwyrm/templates/settings/dashboard/dashboard.html:118
+msgid "Works created"
+msgstr ""
+
+#: bookwyrm/templates/settings/dashboard/registration_chart.html:10
+#, fuzzy
+#| msgid "Registration"
+msgid "Registrations"
+msgstr "Registración"
+
+#: bookwyrm/templates/settings/dashboard/status_chart.html:11
msgid "Statuses posted"
msgstr "Statuses publicados"
-#: bookwyrm/templates/settings/dashboard/dashboard_user_chart.html:7
+#: bookwyrm/templates/settings/dashboard/user_chart.html:11
msgid "Total"
msgstr "Suma"
@@ -2813,7 +2845,7 @@ msgstr "Crear estante"
msgid "Edit Shelf"
msgstr "Editar estante"
-#: bookwyrm/templates/shelf/shelf.html:28 bookwyrm/views/shelf.py:56
+#: bookwyrm/templates/shelf/shelf.html:28 bookwyrm/views/shelf.py:55
msgid "All books"
msgstr "Todos los libros"
@@ -2924,9 +2956,9 @@ msgid "of %(pages)s pages"
msgstr "de %(pages)s páginas"
#: bookwyrm/templates/snippets/create_status/content_field.html:17
-#: bookwyrm/templates/snippets/status/layout.html:31
-#: bookwyrm/templates/snippets/status/layout.html:49
-#: bookwyrm/templates/snippets/status/layout.html:50
+#: bookwyrm/templates/snippets/status/layout.html:34
+#: bookwyrm/templates/snippets/status/layout.html:52
+#: bookwyrm/templates/snippets/status/layout.html:53
msgid "Reply"
msgstr "Respuesta"
@@ -3099,29 +3131,29 @@ msgstr[1] "Reseña de \"%(book_title)s\" (%(display_rating)s estrellas): %(revie
msgid "Review of \"%(book_title)s\": %(review_title)s"
msgstr "Reseña de \"%(book_title)s\": %(review_title)s"
-#: bookwyrm/templates/snippets/goal_form.html:3
+#: bookwyrm/templates/snippets/goal_form.html:4
#, python-format
msgid "Set a goal for how many books you'll finish reading in %(year)s, and track your progress throughout the year."
msgstr "Establece una meta para cuantos libros leerás en %(year)s, y seguir tu progreso durante el año."
-#: bookwyrm/templates/snippets/goal_form.html:12
+#: bookwyrm/templates/snippets/goal_form.html:16
msgid "Reading goal:"
msgstr "Meta de lectura:"
-#: bookwyrm/templates/snippets/goal_form.html:17
+#: bookwyrm/templates/snippets/goal_form.html:21
msgid "books"
msgstr "libros"
-#: bookwyrm/templates/snippets/goal_form.html:22
+#: bookwyrm/templates/snippets/goal_form.html:26
msgid "Goal privacy:"
msgstr "Privacidad de meta:"
-#: bookwyrm/templates/snippets/goal_form.html:29
+#: bookwyrm/templates/snippets/goal_form.html:33
#: bookwyrm/templates/snippets/reading_modals/layout.html:13
msgid "Post to feed"
msgstr "Compartir con tu feed"
-#: bookwyrm/templates/snippets/goal_form.html:33
+#: bookwyrm/templates/snippets/goal_form.html:37
msgid "Set goal"
msgstr "Establecer meta"
@@ -3346,18 +3378,18 @@ msgstr "reseñó a %(book)s"
msgid "%(username)s wants to read %(book)s"
msgstr "%(username)s quiere leer %(book)s"
-#: bookwyrm/templates/snippets/status/layout.html:21
+#: bookwyrm/templates/snippets/status/layout.html:24
#: bookwyrm/templates/snippets/status/status_options.html:17
msgid "Delete status"
msgstr "Eliminar status"
-#: bookwyrm/templates/snippets/status/layout.html:53
-#: bookwyrm/templates/snippets/status/layout.html:54
+#: bookwyrm/templates/snippets/status/layout.html:56
+#: bookwyrm/templates/snippets/status/layout.html:57
msgid "Boost status"
msgstr "Respaldar status"
-#: bookwyrm/templates/snippets/status/layout.html:57
-#: bookwyrm/templates/snippets/status/layout.html:58
+#: bookwyrm/templates/snippets/status/layout.html:60
+#: bookwyrm/templates/snippets/status/layout.html:61
msgid "Like status"
msgstr "Me gusta status"
@@ -3544,7 +3576,7 @@ msgstr "%(title)s: %(subtitle)s"
msgid "Not a valid csv file"
msgstr "No un archivo csv válido"
-#: bookwyrm/views/login.py:68
+#: bookwyrm/views/login.py:69
msgid "Username or password are incorrect"
msgstr "Nombre de usuario o contraseña es incorrecta"
@@ -3553,14 +3585,24 @@ 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
-msgid "A password reset link sent to {email}"
+#, python-brace-format
+msgid "A password reset link was sent to {email}"
msgstr "Un enlace para reestablecer tu contraseña se envió a {email}"
-#: bookwyrm/views/rss_feed.py:34
+#: bookwyrm/views/rss_feed.py:35
#, python-brace-format
msgid "Status updates from {obj.display_name}"
msgstr "Actualizaciones de status de {obj.display_name}"
+#~ msgid "German"
+#~ msgstr "Aléman"
+
+#~ msgid "Spanish"
+#~ msgstr "Español"
+
+#~ msgid "French"
+#~ msgstr "Francés"
+
#~ msgid "Update shelf"
#~ msgstr "Actualizar estante"
diff --git a/locale/fr_FR/LC_MESSAGES/django.mo b/locale/fr_FR/LC_MESSAGES/django.mo
index fef5a0ba..4cdcbf8e 100644
Binary files a/locale/fr_FR/LC_MESSAGES/django.mo and b/locale/fr_FR/LC_MESSAGES/django.mo differ
diff --git a/locale/fr_FR/LC_MESSAGES/django.po b/locale/fr_FR/LC_MESSAGES/django.po
index dc8b2db5..accc3a96 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-09-29 18:32+0000\n"
+"POT-Creation-Date: 2021-10-06 23:57+0000\n"
"PO-Revision-Date: 2021-04-05 12:44+0100\n"
"Last-Translator: Fabien Basmaison \n"
"Language-Team: Mouse Reeve \n"
@@ -18,59 +18,59 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: bookwyrm/forms.py:241
+#: bookwyrm/forms.py:242
msgid "A user with this email already exists."
msgstr "Cet email est déjà associé à un compte."
-#: bookwyrm/forms.py:255
+#: bookwyrm/forms.py:256
msgid "One Day"
msgstr "Un jour"
-#: bookwyrm/forms.py:256
+#: bookwyrm/forms.py:257
msgid "One Week"
msgstr "Une semaine"
-#: bookwyrm/forms.py:257
+#: bookwyrm/forms.py:258
msgid "One Month"
msgstr "Un mois"
-#: bookwyrm/forms.py:258
+#: bookwyrm/forms.py:259
msgid "Does Not Expire"
msgstr "Sans expiration"
-#: bookwyrm/forms.py:262
+#: bookwyrm/forms.py:263
#, fuzzy, python-brace-format
#| msgid "Max uses"
msgid "{i} uses"
msgstr "Nombre maximum d’utilisations"
-#: bookwyrm/forms.py:263
+#: bookwyrm/forms.py:264
msgid "Unlimited"
msgstr "Sans limite"
-#: bookwyrm/forms.py:325
+#: bookwyrm/forms.py:326
msgid "List Order"
msgstr "Ordre de la liste"
-#: bookwyrm/forms.py:326
+#: bookwyrm/forms.py:327
msgid "Book Title"
msgstr "Titre du livre"
-#: bookwyrm/forms.py:327 bookwyrm/templates/shelf/shelf.html:134
+#: bookwyrm/forms.py:328 bookwyrm/templates/shelf/shelf.html:134
#: bookwyrm/templates/shelf/shelf.html:165
#: bookwyrm/templates/snippets/create_status/review.html:33
msgid "Rating"
msgstr "Note"
-#: bookwyrm/forms.py:329 bookwyrm/templates/lists/list.html:109
+#: bookwyrm/forms.py:330 bookwyrm/templates/lists/list.html:109
msgid "Sort By"
msgstr "Trier par"
-#: bookwyrm/forms.py:333
+#: bookwyrm/forms.py:334
msgid "Ascending"
msgstr "Ordre croissant"
-#: bookwyrm/forms.py:334
+#: bookwyrm/forms.py:335
msgid "Descending"
msgstr "Ordre décroissant"
@@ -82,29 +82,29 @@ msgstr ""
msgid "Could not find a match for book"
msgstr ""
-#: bookwyrm/models/base_model.py:16
+#: bookwyrm/models/base_model.py:17
#, fuzzy
#| msgid "Ascending"
msgid "Pending"
msgstr "Ordre croissant"
-#: bookwyrm/models/base_model.py:17
+#: bookwyrm/models/base_model.py:18
msgid "Self deletion"
msgstr ""
-#: bookwyrm/models/base_model.py:18
+#: bookwyrm/models/base_model.py:19
#, fuzzy
#| msgid "Moderator Comments"
msgid "Moderator suspension"
msgstr "Commentaires de l’équipe de modération"
-#: bookwyrm/models/base_model.py:19
+#: bookwyrm/models/base_model.py:20
#, fuzzy
#| msgid "List curation:"
msgid "Moderator deletion"
msgstr "Modération de la liste :"
-#: bookwyrm/models/base_model.py:20
+#: bookwyrm/models/base_model.py:21
#, fuzzy
#| msgid "Un-block"
msgid "Domain block"
@@ -167,50 +167,48 @@ msgstr "nom du compte :"
msgid "A user with that username already exists."
msgstr "Ce nom est déjà associé à un compte."
-#: bookwyrm/settings.py:116
+#: bookwyrm/settings.py:117
msgid "Home Timeline"
msgstr "Mon fil d’actualité"
-#: bookwyrm/settings.py:116
+#: bookwyrm/settings.py:117
msgid "Home"
msgstr "Accueil"
-#: bookwyrm/settings.py:117
+#: bookwyrm/settings.py:118
#, fuzzy
#| msgid "Book Title"
msgid "Books Timeline"
msgstr "Titre du livre"
-#: bookwyrm/settings.py:117 bookwyrm/templates/search/layout.html:21
+#: bookwyrm/settings.py:118 bookwyrm/templates/search/layout.html:21
#: bookwyrm/templates/search/layout.html:42
#: bookwyrm/templates/user/layout.html:81
msgid "Books"
msgstr "Livres"
-#: bookwyrm/settings.py:163
+#: bookwyrm/settings.py:164
msgid "English"
msgstr "English"
-#: bookwyrm/settings.py:164
-msgid "German"
+#: bookwyrm/settings.py:165
+msgid "Deutsch (German)"
msgstr "Deutsch"
-#: bookwyrm/settings.py:165
-msgid "Spanish"
+#: bookwyrm/settings.py:166
+msgid "Español (Spanish)"
msgstr "Español"
-#: bookwyrm/settings.py:166
-msgid "French"
+#: bookwyrm/settings.py:167
+msgid "Français (French)"
msgstr "Français"
-#: bookwyrm/settings.py:167
-msgid "Simplified Chinese"
+#: bookwyrm/settings.py:168
+msgid "简体中文 (Simplified Chinese)"
msgstr "简化字"
-#: bookwyrm/settings.py:168
-#, fuzzy
-#| msgid "Additional info:"
-msgid "Traditional Chinese"
+#: bookwyrm/settings.py:169
+msgid "繁體中文 (Traditional Chinese)"
msgstr "Infos supplémentaires :"
#: bookwyrm/templates/404.html:4 bookwyrm/templates/404.html:8
@@ -283,22 +281,22 @@ msgid "Edit Author:"
msgstr "Modifier l’auteur ou l’autrice :"
#: bookwyrm/templates/author/edit_author.html:13
-#: bookwyrm/templates/book/edit_book.html:19
+#: bookwyrm/templates/book/edit/edit_book.html:18
msgid "Added:"
msgstr "Ajouté :"
#: bookwyrm/templates/author/edit_author.html:14
-#: bookwyrm/templates/book/edit_book.html:24
+#: bookwyrm/templates/book/edit/edit_book.html:21
msgid "Updated:"
msgstr "Mis à jour :"
#: bookwyrm/templates/author/edit_author.html:15
-#: bookwyrm/templates/book/edit_book.html:30
+#: bookwyrm/templates/book/edit/edit_book.html:25
msgid "Last edited by:"
msgstr "Dernière modification par :"
#: bookwyrm/templates/author/edit_author.html:31
-#: bookwyrm/templates/book/edit_book.html:124
+#: bookwyrm/templates/book/edit/edit_book_form.html:15
msgid "Metadata"
msgstr "Métadonnées"
@@ -308,9 +306,9 @@ msgid "Name:"
msgstr "Nom :"
#: bookwyrm/templates/author/edit_author.html:43
-#: bookwyrm/templates/book/edit_book.html:169
-#: bookwyrm/templates/book/edit_book.html:178
-#: bookwyrm/templates/book/edit_book.html:221
+#: bookwyrm/templates/book/edit/edit_book_form.html:65
+#: bookwyrm/templates/book/edit/edit_book_form.html:79
+#: bookwyrm/templates/book/edit/edit_book_form.html:124
msgid "Separate multiple values with commas."
msgstr "Séparez plusieurs valeurs par une virgule."
@@ -339,7 +337,7 @@ msgid "Openlibrary key:"
msgstr "Clé Openlibrary :"
#: bookwyrm/templates/author/edit_author.html:89
-#: bookwyrm/templates/book/edit_book.html:313
+#: bookwyrm/templates/book/edit/edit_book_form.html:224
msgid "Inventaire ID:"
msgstr "Identifiant Inventaire :"
@@ -353,11 +351,11 @@ msgstr "Clé Goodreads :"
#: bookwyrm/templates/author/edit_author.html:116
#: bookwyrm/templates/book/book.html:140
-#: bookwyrm/templates/book/edit_book.html:341
+#: bookwyrm/templates/book/edit/edit_book.html:110
#: bookwyrm/templates/book/readthrough.html:76
#: bookwyrm/templates/lists/bookmark_button.html:15
#: bookwyrm/templates/lists/form.html:44
-#: bookwyrm/templates/preferences/edit_user.html:118
+#: bookwyrm/templates/preferences/edit_user.html:124
#: bookwyrm/templates/settings/announcements/announcement_form.html:69
#: bookwyrm/templates/settings/federation/edit_instance.html:74
#: bookwyrm/templates/settings/federation/instance.html:87
@@ -371,7 +369,7 @@ msgstr "Enregistrer"
#: bookwyrm/templates/author/edit_author.html:117
#: bookwyrm/templates/book/book.html:141 bookwyrm/templates/book/book.html:190
#: bookwyrm/templates/book/cover_modal.html:32
-#: bookwyrm/templates/book/edit_book.html:342
+#: bookwyrm/templates/book/edit/edit_book.html:111
#: bookwyrm/templates/book/readthrough.html:77
#: bookwyrm/templates/lists/delete_list_modal.html:17
#: bookwyrm/templates/settings/federation/instance.html:88
@@ -412,7 +410,7 @@ msgid "Add Description"
msgstr "Ajouter une description"
#: bookwyrm/templates/book/book.html:136
-#: bookwyrm/templates/book/edit_book.html:143
+#: bookwyrm/templates/book/edit/edit_book_form.html:34
#: bookwyrm/templates/lists/form.html:12 bookwyrm/templates/shelf/form.html:17
msgid "Description:"
msgstr "Description :"
@@ -448,31 +446,31 @@ msgstr "Créer"
msgid "You don't have any reading activity for this book."
msgstr "Vous n’avez aucune activité de lecture pour ce livre"
-#: bookwyrm/templates/book/book.html:216
+#: bookwyrm/templates/book/book.html:218
msgid "Reviews"
msgstr "Critiques"
-#: bookwyrm/templates/book/book.html:221
+#: bookwyrm/templates/book/book.html:223
msgid "Your reviews"
msgstr "Vos critiques"
-#: bookwyrm/templates/book/book.html:227
+#: bookwyrm/templates/book/book.html:229
msgid "Your comments"
msgstr "Vos commentaires"
-#: bookwyrm/templates/book/book.html:233
+#: bookwyrm/templates/book/book.html:235
msgid "Your quotes"
msgstr "Vos citations"
-#: bookwyrm/templates/book/book.html:269
+#: bookwyrm/templates/book/book.html:271
msgid "Subjects"
msgstr "Sujets"
-#: bookwyrm/templates/book/book.html:281
+#: bookwyrm/templates/book/book.html:283
msgid "Places"
msgstr "Lieux"
-#: bookwyrm/templates/book/book.html:292 bookwyrm/templates/layout.html:75
+#: bookwyrm/templates/book/book.html:294 bookwyrm/templates/layout.html:75
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
#: bookwyrm/templates/search/layout.html:25
#: bookwyrm/templates/search/layout.html:50
@@ -480,11 +478,11 @@ msgstr "Lieux"
msgid "Lists"
msgstr "Listes"
-#: bookwyrm/templates/book/book.html:303
+#: bookwyrm/templates/book/book.html:305
msgid "Add to list"
msgstr "Ajouter à la liste"
-#: bookwyrm/templates/book/book.html:313
+#: bookwyrm/templates/book/book.html:315
#: bookwyrm/templates/book/cover_modal.html:31
#: bookwyrm/templates/lists/list.html:181
#: bookwyrm/templates/settings/email_blocklist/domain_form.html:26
@@ -492,207 +490,220 @@ msgstr "Ajouter à la liste"
msgid "Add"
msgstr "Ajouter"
-#: bookwyrm/templates/book/book_identifiers.html:7
+#: bookwyrm/templates/book/book_identifiers.html:8
msgid "ISBN:"
msgstr "ISBN :"
-#: bookwyrm/templates/book/book_identifiers.html:14
-#: bookwyrm/templates/book/edit_book.html:321
+#: bookwyrm/templates/book/book_identifiers.html:15
+#: bookwyrm/templates/book/edit/edit_book_form.html:232
msgid "OCLC Number:"
msgstr "Numéro OCLC :"
-#: bookwyrm/templates/book/book_identifiers.html:21
-#: bookwyrm/templates/book/edit_book.html:329
+#: bookwyrm/templates/book/book_identifiers.html:22
+#: bookwyrm/templates/book/edit/edit_book_form.html:240
msgid "ASIN:"
msgstr "ASIN :"
#: bookwyrm/templates/book/cover_modal.html:17
-#: bookwyrm/templates/book/edit_book.html:236
+#: bookwyrm/templates/book/edit/edit_book_form.html:143
msgid "Upload cover:"
msgstr "Charger une couverture :"
#: bookwyrm/templates/book/cover_modal.html:23
-#: bookwyrm/templates/book/edit_book.html:241
+#: bookwyrm/templates/book/edit/edit_book_form.html:148
msgid "Load cover from url:"
msgstr "Charger la couverture depuis une URL :"
-#: bookwyrm/templates/book/edit_book.html:5
-#: bookwyrm/templates/book/edit_book.html:11
+#: bookwyrm/templates/book/edit/edit_book.html:5
+#: bookwyrm/templates/book/edit/edit_book.html:11
#, python-format
msgid "Edit \"%(book_title)s\""
msgstr "Modifier « %(book_title)s »"
-#: bookwyrm/templates/book/edit_book.html:5
-#: bookwyrm/templates/book/edit_book.html:13
+#: bookwyrm/templates/book/edit/edit_book.html:5
+#: bookwyrm/templates/book/edit/edit_book.html:13
msgid "Add Book"
msgstr "Ajouter un livre"
-#: bookwyrm/templates/book/edit_book.html:61
+#: bookwyrm/templates/book/edit/edit_book.html:47
msgid "Confirm Book Info"
msgstr "Confirmer les informations de ce livre"
-#: bookwyrm/templates/book/edit_book.html:69
+#: bookwyrm/templates/book/edit/edit_book.html:55
#, python-format
msgid "Is \"%(name)s\" an existing author?"
msgstr "Est‑ce que l’auteur/autrice « %(name)s » existe déjà ?"
-#: bookwyrm/templates/book/edit_book.html:78
+#: bookwyrm/templates/book/edit/edit_book.html:64
#, python-format
msgid "Author of %(book_title)s"
msgstr "Auteur/autrice de %(book_title)s"
-#: bookwyrm/templates/book/edit_book.html:82
+#: bookwyrm/templates/book/edit/edit_book.html:68
msgid "This is a new author"
msgstr "Il s’agit d’un nouvel auteur ou d’une nouvelle autrice."
-#: bookwyrm/templates/book/edit_book.html:89
+#: bookwyrm/templates/book/edit/edit_book.html:75
#, python-format
msgid "Creating a new author: %(name)s"
msgstr "Création d’un nouvel auteur/autrice : %(name)s"
-#: bookwyrm/templates/book/edit_book.html:96
+#: bookwyrm/templates/book/edit/edit_book.html:82
msgid "Is this an edition of an existing work?"
msgstr "Est‑ce l’édition d’un ouvrage existant ?"
-#: bookwyrm/templates/book/edit_book.html:104
+#: bookwyrm/templates/book/edit/edit_book.html:90
msgid "This is a new work"
msgstr "Il s’agit d’un nouvel ouvrage."
-#: bookwyrm/templates/book/edit_book.html:111
+#: bookwyrm/templates/book/edit/edit_book.html:97
#: bookwyrm/templates/password_reset.html:30
msgid "Confirm"
msgstr "Confirmer"
-#: bookwyrm/templates/book/edit_book.html:113
-#: bookwyrm/templates/feed/status.html:8
+#: bookwyrm/templates/book/edit/edit_book.html:99
+#: bookwyrm/templates/feed/status.html:9
msgid "Back"
msgstr "Retour"
-#: bookwyrm/templates/book/edit_book.html:127
+#: bookwyrm/templates/book/edit/edit_book_form.html:18
#: bookwyrm/templates/snippets/create_status/review.html:16
msgid "Title:"
msgstr "Titre :"
-#: bookwyrm/templates/book/edit_book.html:135
+#: bookwyrm/templates/book/edit/edit_book_form.html:26
msgid "Subtitle:"
msgstr "Sous‑titre :"
-#: bookwyrm/templates/book/edit_book.html:151
+#: bookwyrm/templates/book/edit/edit_book_form.html:44
msgid "Series:"
msgstr "Série :"
-#: bookwyrm/templates/book/edit_book.html:159
+#: bookwyrm/templates/book/edit/edit_book_form.html:53
msgid "Series number:"
msgstr "Numéro dans la série :"
-#: bookwyrm/templates/book/edit_book.html:167
+#: bookwyrm/templates/book/edit/edit_book_form.html:63
msgid "Languages:"
msgstr "Langues :"
-#: bookwyrm/templates/book/edit_book.html:176
+#: bookwyrm/templates/book/edit/edit_book_form.html:74
+#, fuzzy
+#| msgid "Public"
+msgid "Publication"
+msgstr "Public"
+
+#: bookwyrm/templates/book/edit/edit_book_form.html:77
msgid "Publisher:"
msgstr "Éditeur :"
-#: bookwyrm/templates/book/edit_book.html:185
+#: bookwyrm/templates/book/edit/edit_book_form.html:86
msgid "First published date:"
msgstr "Première date de parution :"
-#: bookwyrm/templates/book/edit_book.html:193
+#: bookwyrm/templates/book/edit/edit_book_form.html:94
msgid "Published date:"
msgstr "Date de parution :"
-#: bookwyrm/templates/book/edit_book.html:202
+#: bookwyrm/templates/book/edit/edit_book_form.html:104
msgid "Authors"
msgstr "Auteurs ou autrices"
-#: bookwyrm/templates/book/edit_book.html:209
+#: bookwyrm/templates/book/edit/edit_book_form.html:112
#, python-format
msgid "Remove %(name)s"
msgstr "Retirer %(name)s"
-#: bookwyrm/templates/book/edit_book.html:212
+#: bookwyrm/templates/book/edit/edit_book_form.html:115
#, python-format
msgid "Author page for %(name)s"
msgstr "Page de %(name)s"
-#: bookwyrm/templates/book/edit_book.html:219
+#: bookwyrm/templates/book/edit/edit_book_form.html:122
msgid "Add Authors:"
msgstr "Ajouter des auteurs ou autrices :"
-#: bookwyrm/templates/book/edit_book.html:220
+#: bookwyrm/templates/book/edit/edit_book_form.html:123
msgid "John Doe, Jane Smith"
msgstr "Claude Dupont, Dominique Durand"
-#: bookwyrm/templates/book/edit_book.html:227
+#: bookwyrm/templates/book/edit/edit_book_form.html:132
#: bookwyrm/templates/shelf/shelf.html:127
msgid "Cover"
msgstr "Couverture"
-#: bookwyrm/templates/book/edit_book.html:253
+#: bookwyrm/templates/book/edit/edit_book_form.html:161
msgid "Physical Properties"
msgstr "Propriétés physiques"
-#: bookwyrm/templates/book/edit_book.html:257
-#: bookwyrm/templates/book/format_filter.html:5
+#: bookwyrm/templates/book/edit/edit_book_form.html:166
+#: bookwyrm/templates/book/editions/format_filter.html:5
msgid "Format:"
msgstr "Format :"
-#: bookwyrm/templates/book/edit_book.html:268
+#: bookwyrm/templates/book/edit/edit_book_form.html:177
#, fuzzy
#| msgid "User details"
msgid "Format details:"
msgstr "Détails du compte"
-#: bookwyrm/templates/book/edit_book.html:278
+#: bookwyrm/templates/book/edit/edit_book_form.html:187
msgid "Pages:"
msgstr "Pages :"
-#: bookwyrm/templates/book/edit_book.html:287
+#: bookwyrm/templates/book/edit/edit_book_form.html:197
msgid "Book Identifiers"
msgstr "Identifiants du livre"
-#: bookwyrm/templates/book/edit_book.html:289
+#: bookwyrm/templates/book/edit/edit_book_form.html:200
msgid "ISBN 13:"
msgstr "ISBN 13 :"
-#: bookwyrm/templates/book/edit_book.html:297
+#: bookwyrm/templates/book/edit/edit_book_form.html:208
msgid "ISBN 10:"
msgstr "ISBN 10 :"
-#: bookwyrm/templates/book/edit_book.html:305
+#: bookwyrm/templates/book/edit/edit_book_form.html:216
msgid "Openlibrary ID:"
msgstr "Identifiant Openlibrary :"
-#: bookwyrm/templates/book/editions.html:4
+#: bookwyrm/templates/book/editions/editions.html:4
#, python-format
msgid "Editions of %(book_title)s"
msgstr "Éditions de %(book_title)s"
-#: bookwyrm/templates/book/editions.html:8
+#: bookwyrm/templates/book/editions/editions.html:8
#, python-format
msgid "Editions of \"%(work_title)s\""
msgstr "Éditions de « %(work_title)s »"
-#: bookwyrm/templates/book/format_filter.html:8
-#: bookwyrm/templates/book/language_filter.html:8
+#: bookwyrm/templates/book/editions/format_filter.html:8
+#: bookwyrm/templates/book/editions/language_filter.html:8
msgid "Any"
msgstr "Tou(te)s"
-#: bookwyrm/templates/book/language_filter.html:5
+#: bookwyrm/templates/book/editions/language_filter.html:5
+#: bookwyrm/templates/preferences/edit_user.html:95
msgid "Language:"
msgstr "Langue :"
-#: bookwyrm/templates/book/publisher_info.html:22
+#: bookwyrm/templates/book/editions/search_filter.html:5
+#, fuzzy
+#| msgid "Search Results"
+msgid "Search editions"
+msgstr "Résultats de recherche"
+
+#: bookwyrm/templates/book/publisher_info.html:21
#, python-format
msgid "%(format)s"
msgstr "%(format)s"
-#: bookwyrm/templates/book/publisher_info.html:24
+#: bookwyrm/templates/book/publisher_info.html:23
#, python-format
msgid "%(format)s, %(pages)s pages"
msgstr "%(format)s, %(pages)s pages"
-#: bookwyrm/templates/book/publisher_info.html:26
+#: bookwyrm/templates/book/publisher_info.html:25
#, python-format
msgid "%(pages)s pages"
msgstr "%(pages)s pages"
@@ -702,17 +713,17 @@ msgstr "%(pages)s pages"
msgid "%(languages)s language"
msgstr "Langue : %(languages)s"
-#: bookwyrm/templates/book/publisher_info.html:64
+#: bookwyrm/templates/book/publisher_info.html:65
#, python-format
msgid "Published %(date)s by %(publisher)s."
msgstr "Publié %(date)s par %(publisher)s."
-#: bookwyrm/templates/book/publisher_info.html:66
+#: bookwyrm/templates/book/publisher_info.html:67
#, python-format
msgid "Published %(date)s"
msgstr "Publié %(date)s"
-#: bookwyrm/templates/book/publisher_info.html:68
+#: bookwyrm/templates/book/publisher_info.html:69
#, python-format
msgid "Published by %(publisher)s."
msgstr "Publié par %(publisher)s."
@@ -750,19 +761,13 @@ msgstr "Modifier les date de lecture"
msgid "Delete these read dates"
msgstr "Supprimer ces dates de lecture"
-#: bookwyrm/templates/book/search_filter.html:5
-#, fuzzy
-#| msgid "Search Results"
-msgid "Search editions"
-msgstr "Résultats de recherche"
-
#: bookwyrm/templates/components/inline_form.html:8
#: bookwyrm/templates/components/modal.html:11
#: bookwyrm/templates/components/tooltip.html:7
#: bookwyrm/templates/feed/layout.html:71
#: bookwyrm/templates/get_started/layout.html:20
#: bookwyrm/templates/get_started/layout.html:53
-#: bookwyrm/templates/search/book.html:32
+#: bookwyrm/templates/search/book.html:49
#: bookwyrm/templates/snippets/announcement.html:18
msgid "Close"
msgstr "Fermer"
@@ -1231,7 +1236,7 @@ msgid "Avatar:"
msgstr "Avatar :"
#: bookwyrm/templates/get_started/profile.html:42
-#: bookwyrm/templates/preferences/edit_user.html:104
+#: bookwyrm/templates/preferences/edit_user.html:110
msgid "Manually approve followers:"
msgstr "Autoriser les abonnements manuellement :"
@@ -1487,8 +1492,8 @@ msgid "Log out"
msgstr "Se déconnecter"
#: bookwyrm/templates/layout.html:147 bookwyrm/templates/layout.html:148
-#: bookwyrm/templates/notifications.html:6
-#: bookwyrm/templates/notifications.html:11
+#: bookwyrm/templates/notifications/notifications_page.html:5
+#: bookwyrm/templates/notifications/notifications_page.html:10
msgid "Notifications"
msgstr "Notifications"
@@ -1637,9 +1642,10 @@ msgstr "Modérée"
msgid "Anyone can suggest books, subject to your approval"
msgstr "N’importe qui peut suggérer des livres, soumis à votre approbation"
-#: bookwyrm/templates/lists/form.html:31 bookwyrm/templates/search/book.html:30
-#: bookwyrm/templates/settings/reports/reports.html:25
-#: bookwyrm/templates/snippets/announcement.html:16
+#: bookwyrm/templates/lists/form.html:31
+#, fuzzy
+#| msgid "Open"
+msgctxt "curation type"
msgid "Open"
msgstr "Ouverte"
@@ -1756,127 +1762,130 @@ msgstr "Mot de passe :"
msgid "More about this site"
msgstr "En savoir plus sur ce site"
-#: bookwyrm/templates/notifications.html:16
-msgid "Delete notifications"
-msgstr "Supprimer les notifications"
+#: bookwyrm/templates/notifications/items/add.html:24
+#, fuzzy, python-format
+#| msgid " added %(book_title)s to your list \"%(list_name)s\""
+msgid "added %(book_title)s to your list \"%(list_name)s\""
+msgstr " a ajouté %(book_title)s à votre liste « %(list_name)s »"
-#: bookwyrm/templates/notifications.html:25
-msgid "All"
-msgstr "Toutes"
+#: bookwyrm/templates/notifications/items/add.html:31
+#, fuzzy, python-format
+#| msgid " suggested adding %(book_title)s to your list \"%(list_name)s\""
+msgid "suggested adding %(book_title)s to your list \"%(list_name)s\""
+msgstr " a suggégré l’ajout de %(book_title)s à votre liste « %(list_name)s »"
-#: bookwyrm/templates/notifications.html:29
-msgid "Mentions"
-msgstr "Mentions"
-
-#: bookwyrm/templates/notifications.html:70
-#, python-format
-msgid "favorited your review of %(book_title)s"
-msgstr "a ajouté votre critique de %(book_title)s à ses favoris"
-
-#: bookwyrm/templates/notifications.html:72
-#, python-format
-msgid "favorited your comment on %(book_title)s"
-msgstr "a ajouté votre commentaire sur %(book_title)s à ses favoris"
-
-#: bookwyrm/templates/notifications.html:74
-#, python-format
-msgid "favorited your quote from %(book_title)s"
-msgstr "a ajouté votre citation de %(book_title)s à ses favoris"
-
-#: bookwyrm/templates/notifications.html:76
-#, python-format
-msgid "favorited your status"
-msgstr "a ajouté votre statut à ses favoris"
-
-#: bookwyrm/templates/notifications.html:81
-#, python-format
-msgid "mentioned you in a review of %(book_title)s"
-msgstr "vous a mentionné dans sa critique de %(book_title)s"
-
-#: bookwyrm/templates/notifications.html:83
-#, python-format
-msgid "mentioned you in a comment on %(book_title)s"
-msgstr "vous a mentionné dans son commentaire sur %(book_title)s"
-
-#: bookwyrm/templates/notifications.html:85
-#, python-format
-msgid "mentioned you in a quote from %(book_title)s"
-msgstr "vous a mentionné dans sa citation de %(book_title)s"
-
-#: bookwyrm/templates/notifications.html:87
-#, python-format
-msgid "mentioned you in a status"
-msgstr "vous a mentionné dans son statut"
-
-#: bookwyrm/templates/notifications.html:92
-#, python-format
-msgid "replied to your review of %(book_title)s"
-msgstr "a répondu à votre critique de %(book_title)s"
-
-#: bookwyrm/templates/notifications.html:94
-#, python-format
-msgid "replied to your comment on %(book_title)s"
-msgstr "a répondu à votre commentaire sur %(book_title)s"
-
-#: bookwyrm/templates/notifications.html:96
-#, python-format
-msgid "replied to your quote from %(book_title)s"
-msgstr "a répondu à votre citation de %(book_title)s"
-
-#: bookwyrm/templates/notifications.html:98
-#, python-format
-msgid "replied to your status"
-msgstr "a répondu à votre statut"
-
-#: bookwyrm/templates/notifications.html:102
-msgid "followed you"
-msgstr "vous suit"
-
-#: bookwyrm/templates/notifications.html:105
-msgid "sent you a follow request"
-msgstr "vous a envoyé une demande d’abonnement"
-
-#: bookwyrm/templates/notifications.html:111
+#: bookwyrm/templates/notifications/items/boost.html:19
#, python-format
msgid "boosted your review of %(book_title)s"
msgstr "a partagé votre critique de %(book_title)s"
-#: bookwyrm/templates/notifications.html:113
+#: bookwyrm/templates/notifications/items/boost.html:25
#, python-format
msgid "boosted your comment on%(book_title)s"
msgstr "a partagé votre commentaire sur %(book_title)s"
-#: bookwyrm/templates/notifications.html:115
+#: bookwyrm/templates/notifications/items/boost.html:31
#, python-format
msgid "boosted your quote from %(book_title)s"
msgstr "a partagé votre citation de %(book_title)s"
-#: bookwyrm/templates/notifications.html:117
+#: bookwyrm/templates/notifications/items/boost.html:37
#, python-format
msgid "boosted your status"
msgstr "a partagé votre statut"
-#: bookwyrm/templates/notifications.html:121
+#: bookwyrm/templates/notifications/items/fav.html:19
#, python-format
-msgid " added %(book_title)s to your list \"%(list_name)s\""
-msgstr " a ajouté %(book_title)s à votre liste « %(list_name)s »"
+msgid "favorited your review of %(book_title)s"
+msgstr "a ajouté votre critique de %(book_title)s à ses favoris"
-#: bookwyrm/templates/notifications.html:123
+#: bookwyrm/templates/notifications/items/fav.html:25
+#, fuzzy, python-format
+#| msgid "favorited your comment on %(book_title)s"
+msgid "favorited your comment on%(book_title)s"
+msgstr "a ajouté votre commentaire sur %(book_title)s à ses favoris"
+
+#: bookwyrm/templates/notifications/items/fav.html:31
#, python-format
-msgid " suggested adding %(book_title)s to your list \"%(list_name)s\""
-msgstr " a suggégré l’ajout de %(book_title)s à votre liste « %(list_name)s »"
+msgid "favorited your quote from %(book_title)s"
+msgstr "a ajouté votre citation de %(book_title)s à ses favoris"
-#: bookwyrm/templates/notifications.html:128
+#: bookwyrm/templates/notifications/items/fav.html:37
+#, python-format
+msgid "favorited your status"
+msgstr "a ajouté votre statut à ses favoris"
+
+#: bookwyrm/templates/notifications/items/follow.html:15
+msgid "followed you"
+msgstr "vous suit"
+
+#: bookwyrm/templates/notifications/items/follow_request.html:11
+msgid "sent you a follow request"
+msgstr "vous a envoyé une demande d’abonnement"
+
+#: bookwyrm/templates/notifications/items/import.html:14
#, python-format
msgid "Your import completed."
msgstr "Votre importation est terminée."
-#: bookwyrm/templates/notifications.html:131
+#: bookwyrm/templates/notifications/items/mention.html:20
+#, python-format
+msgid "mentioned you in a review of %(book_title)s"
+msgstr "vous a mentionné dans sa critique de %(book_title)s"
+
+#: bookwyrm/templates/notifications/items/mention.html:26
+#, python-format
+msgid "mentioned you in a comment on %(book_title)s"
+msgstr "vous a mentionné dans son commentaire sur %(book_title)s"
+
+#: bookwyrm/templates/notifications/items/mention.html:32
+#, python-format
+msgid "mentioned you in a quote from %(book_title)s"
+msgstr "vous a mentionné dans sa citation de %(book_title)s"
+
+#: bookwyrm/templates/notifications/items/mention.html:38
+#, python-format
+msgid "mentioned you in a status"
+msgstr "vous a mentionné dans son statut"
+
+#: bookwyrm/templates/notifications/items/reply.html:21
+#, python-format
+msgid "replied to your review of %(book_title)s"
+msgstr "a répondu à votre critique de %(book_title)s"
+
+#: bookwyrm/templates/notifications/items/reply.html:27
+#, python-format
+msgid "replied to your comment on %(book_title)s"
+msgstr "a répondu à votre commentaire sur %(book_title)s"
+
+#: bookwyrm/templates/notifications/items/reply.html:33
+#, python-format
+msgid "replied to your quote from %(book_title)s"
+msgstr "a répondu à votre citation de %(book_title)s"
+
+#: bookwyrm/templates/notifications/items/reply.html:39
+#, python-format
+msgid "replied to your status"
+msgstr "a répondu à votre statut"
+
+#: bookwyrm/templates/notifications/items/report.html:15
#, python-format
msgid "A new report needs moderation."
msgstr "Un nouveau signalement a besoin d’être traité."
-#: bookwyrm/templates/notifications.html:157
+#: bookwyrm/templates/notifications/notifications_page.html:18
+msgid "Delete notifications"
+msgstr "Supprimer les notifications"
+
+#: bookwyrm/templates/notifications/notifications_page.html:29
+msgid "All"
+msgstr "Toutes"
+
+#: bookwyrm/templates/notifications/notifications_page.html:33
+msgid "Mentions"
+msgstr "Mentions"
+
+#: bookwyrm/templates/notifications/notifications_page.html:45
msgid "You're all caught up!"
msgstr "Aucune nouvelle notification !"
@@ -1953,7 +1962,7 @@ msgid "Display preferences"
msgstr "Paramètres d’email"
#: bookwyrm/templates/preferences/edit_user.html:14
-#: bookwyrm/templates/preferences/edit_user.html:100
+#: bookwyrm/templates/preferences/edit_user.html:106
#, fuzzy
#| msgid "Post privacy"
msgid "Privacy"
@@ -1980,7 +1989,7 @@ msgstr "Votre compte sera listé dans le répertoire et
msgid "Preferred Timezone: "
msgstr "Fuseau horaire préféré"
-#: bookwyrm/templates/preferences/edit_user.html:110
+#: bookwyrm/templates/preferences/edit_user.html:116
#, fuzzy
#| msgid "Post privacy"
msgid "Default post privacy:"
@@ -2012,15 +2021,25 @@ msgstr "Modifier « %(book_title)s »"
msgid "Want to Read \"%(book_title)s\""
msgstr "Ajouter « %(book_title)s » aux envies de lecture"
-#: bookwyrm/templates/search/book.html:64
+#: bookwyrm/templates/search/book.html:47
+#: bookwyrm/templates/settings/reports/reports.html:25
+#: bookwyrm/templates/snippets/announcement.html:16
+msgid "Open"
+msgstr "Ouverte"
+
+#: bookwyrm/templates/search/book.html:85
+msgid "Import book"
+msgstr "Importer le livre"
+
+#: bookwyrm/templates/search/book.html:107
msgid "Load results from other catalogues"
msgstr "Charger les résultats d’autres catalogues"
-#: bookwyrm/templates/search/book.html:68
+#: bookwyrm/templates/search/book.html:111
msgid "Manually add book"
msgstr "Ajouter un livre manuellement"
-#: bookwyrm/templates/search/book.html:73
+#: bookwyrm/templates/search/book.html:116
msgid "Log in to import or add books."
msgstr "Authentifiez-vous pour importer ou ajouter des livres."
@@ -2167,13 +2186,14 @@ msgid "Dashboard"
msgstr ""
#: bookwyrm/templates/settings/dashboard/dashboard.html:15
+#: bookwyrm/templates/settings/dashboard/dashboard.html:100
#, fuzzy
#| msgid "Local users"
msgid "Total users"
msgstr "Comptes locaux"
#: bookwyrm/templates/settings/dashboard/dashboard.html:21
-#: bookwyrm/templates/settings/dashboard/dashboard_user_chart.html:12
+#: bookwyrm/templates/settings/dashboard/user_chart.html:16
msgid "Active this month"
msgstr ""
@@ -2184,6 +2204,7 @@ msgid "Statuses"
msgstr "Statut"
#: bookwyrm/templates/settings/dashboard/dashboard.html:33
+#: bookwyrm/templates/settings/dashboard/works_chart.html:11
msgid "Works"
msgstr ""
@@ -2223,25 +2244,35 @@ msgstr ""
msgid "Weeks"
msgstr "Une semaine"
-#: bookwyrm/templates/settings/dashboard/dashboard.html:100
+#: bookwyrm/templates/settings/dashboard/dashboard.html:106
#, fuzzy
#| msgid "User Activity"
msgid "User signup activity"
msgstr "Activité du compte"
-#: bookwyrm/templates/settings/dashboard/dashboard.html:106
+#: bookwyrm/templates/settings/dashboard/dashboard.html:112
#, fuzzy
#| msgid "User Activity"
msgid "Status activity"
msgstr "Activité du compte"
-#: bookwyrm/templates/settings/dashboard/dashboard_status_chart.html:7
+#: bookwyrm/templates/settings/dashboard/dashboard.html:118
+msgid "Works created"
+msgstr ""
+
+#: bookwyrm/templates/settings/dashboard/registration_chart.html:10
+#, fuzzy
+#| msgid "Registration"
+msgid "Registrations"
+msgstr "Inscription"
+
+#: bookwyrm/templates/settings/dashboard/status_chart.html:11
#, fuzzy
#| msgid "No statuses reported"
msgid "Statuses posted"
msgstr "Aucun statut signalé"
-#: bookwyrm/templates/settings/dashboard/dashboard_user_chart.html:7
+#: bookwyrm/templates/settings/dashboard/user_chart.html:11
msgid "Total"
msgstr ""
@@ -2953,7 +2984,7 @@ msgstr "Créer une étagère"
msgid "Edit Shelf"
msgstr "Modifier l’étagère"
-#: bookwyrm/templates/shelf/shelf.html:28 bookwyrm/views/shelf.py:56
+#: bookwyrm/templates/shelf/shelf.html:28 bookwyrm/views/shelf.py:55
msgid "All books"
msgstr "Tous les livres"
@@ -3065,9 +3096,9 @@ msgid "of %(pages)s pages"
msgstr "sur %(pages)s pages"
#: bookwyrm/templates/snippets/create_status/content_field.html:17
-#: bookwyrm/templates/snippets/status/layout.html:31
-#: bookwyrm/templates/snippets/status/layout.html:49
-#: bookwyrm/templates/snippets/status/layout.html:50
+#: bookwyrm/templates/snippets/status/layout.html:34
+#: bookwyrm/templates/snippets/status/layout.html:52
+#: bookwyrm/templates/snippets/status/layout.html:53
msgid "Reply"
msgstr "Répondre"
@@ -3256,29 +3287,29 @@ msgstr[1] "Critique de « %(book_title)s » (%(display_rating)s stars) : %
msgid "Review of \"%(book_title)s\": %(review_title)s"
msgstr "Critique de « %(book_title)s » : %(review_title)s"
-#: bookwyrm/templates/snippets/goal_form.html:3
+#: bookwyrm/templates/snippets/goal_form.html:4
#, python-format
msgid "Set a goal for how many books you'll finish reading in %(year)s, and track your progress throughout the year."
msgstr "Définissez un nombre de livre à lire comme objectif pour %(year)s, et suivezvotre progression au fil de l’année."
-#: bookwyrm/templates/snippets/goal_form.html:12
+#: bookwyrm/templates/snippets/goal_form.html:16
msgid "Reading goal:"
msgstr "Défi lecture :"
-#: bookwyrm/templates/snippets/goal_form.html:17
+#: bookwyrm/templates/snippets/goal_form.html:21
msgid "books"
msgstr "livres"
-#: bookwyrm/templates/snippets/goal_form.html:22
+#: bookwyrm/templates/snippets/goal_form.html:26
msgid "Goal privacy:"
msgstr "Confidentialité du défi :"
-#: bookwyrm/templates/snippets/goal_form.html:29
+#: bookwyrm/templates/snippets/goal_form.html:33
#: bookwyrm/templates/snippets/reading_modals/layout.html:13
msgid "Post to feed"
msgstr "Publier sur le fil d’actualité"
-#: bookwyrm/templates/snippets/goal_form.html:33
+#: bookwyrm/templates/snippets/goal_form.html:37
msgid "Set goal"
msgstr "Valider ce défi"
@@ -3410,10 +3441,6 @@ msgstr "Ce signalement sera envoyé à l’équipe de modération de %(site_name
msgid "More info about this report:"
msgstr "En savoir plus sur ce signalement :"
-#: bookwyrm/templates/snippets/search_result_text.html:36
-msgid "Import book"
-msgstr "Importer le livre"
-
#: bookwyrm/templates/snippets/shelf_selector.html:4
msgid "Move book"
msgstr "Déplacer le livre"
@@ -3522,18 +3549,18 @@ msgstr "Créée par %(username)s"
msgid "%(username)s wants to read %(book)s"
msgstr "a répondu à la citation de %(username)s"
-#: bookwyrm/templates/snippets/status/layout.html:21
+#: bookwyrm/templates/snippets/status/layout.html:24
#: bookwyrm/templates/snippets/status/status_options.html:17
msgid "Delete status"
msgstr "Supprimer le statut"
-#: bookwyrm/templates/snippets/status/layout.html:53
-#: bookwyrm/templates/snippets/status/layout.html:54
+#: bookwyrm/templates/snippets/status/layout.html:56
+#: bookwyrm/templates/snippets/status/layout.html:57
msgid "Boost status"
msgstr "Partager le statut"
-#: bookwyrm/templates/snippets/status/layout.html:57
-#: bookwyrm/templates/snippets/status/layout.html:58
+#: bookwyrm/templates/snippets/status/layout.html:60
+#: bookwyrm/templates/snippets/status/layout.html:61
msgid "Like status"
msgstr "Ajouter le statut aux favoris"
@@ -3725,7 +3752,7 @@ msgstr "%(title)s (%(subtitle)s)"
msgid "Not a valid csv file"
msgstr "Fichier CSV non valide"
-#: bookwyrm/views/login.py:68
+#: bookwyrm/views/login.py:69
msgid "Username or password are incorrect"
msgstr ""
@@ -3734,12 +3761,11 @@ 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
-#, fuzzy, python-brace-format
-#| msgid "A password reset link sent to %s"
-msgid "A password reset link sent to {email}"
-msgstr "Un lien de réinitialisation a été envoyé à %s."
+#, python-brace-format
+msgid "A password reset link was sent to {email}"
+msgstr "Un lien de réinitialisation a été envoyé à {email}."
-#: bookwyrm/views/rss_feed.py:34
+#: bookwyrm/views/rss_feed.py:35
#, python-brace-format
msgid "Status updates from {obj.display_name}"
msgstr ""
diff --git a/locale/zh_Hans/LC_MESSAGES/django.mo b/locale/zh_Hans/LC_MESSAGES/django.mo
index 5501c309..1d1227f8 100644
Binary files a/locale/zh_Hans/LC_MESSAGES/django.mo and b/locale/zh_Hans/LC_MESSAGES/django.mo differ
diff --git a/locale/zh_Hans/LC_MESSAGES/django.po b/locale/zh_Hans/LC_MESSAGES/django.po
index 28e02904..5993929f 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-09-29 18:32+0000\n"
+"POT-Creation-Date: 2021-10-06 23:57+0000\n"
"PO-Revision-Date: 2021-03-20 00:56+0000\n"
"Last-Translator: Kana \n"
"Language-Team: Mouse Reeve \n"
@@ -18,59 +18,59 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-#: bookwyrm/forms.py:241
+#: bookwyrm/forms.py:242
msgid "A user with this email already exists."
msgstr "已经存在使用该邮箱的用户。"
-#: bookwyrm/forms.py:255
+#: bookwyrm/forms.py:256
msgid "One Day"
msgstr "一天"
-#: bookwyrm/forms.py:256
+#: bookwyrm/forms.py:257
msgid "One Week"
msgstr "一周"
-#: bookwyrm/forms.py:257
+#: bookwyrm/forms.py:258
msgid "One Month"
msgstr "一个月"
-#: bookwyrm/forms.py:258
+#: bookwyrm/forms.py:259
msgid "Does Not Expire"
msgstr "永不失效"
-#: bookwyrm/forms.py:262
+#: bookwyrm/forms.py:263
#, fuzzy, python-brace-format
#| msgid "Max uses"
msgid "{i} uses"
msgstr "最大使用次数"
-#: bookwyrm/forms.py:263
+#: bookwyrm/forms.py:264
msgid "Unlimited"
msgstr "不受限"
-#: bookwyrm/forms.py:325
+#: bookwyrm/forms.py:326
msgid "List Order"
msgstr "列表顺序"
-#: bookwyrm/forms.py:326
+#: bookwyrm/forms.py:327
msgid "Book Title"
msgstr "书名"
-#: bookwyrm/forms.py:327 bookwyrm/templates/shelf/shelf.html:134
+#: bookwyrm/forms.py:328 bookwyrm/templates/shelf/shelf.html:134
#: bookwyrm/templates/shelf/shelf.html:165
#: bookwyrm/templates/snippets/create_status/review.html:33
msgid "Rating"
msgstr "评价"
-#: bookwyrm/forms.py:329 bookwyrm/templates/lists/list.html:109
+#: bookwyrm/forms.py:330 bookwyrm/templates/lists/list.html:109
msgid "Sort By"
msgstr "排序方式"
-#: bookwyrm/forms.py:333
+#: bookwyrm/forms.py:334
msgid "Ascending"
msgstr "升序"
-#: bookwyrm/forms.py:334
+#: bookwyrm/forms.py:335
msgid "Descending"
msgstr "降序"
@@ -82,29 +82,29 @@ msgstr ""
msgid "Could not find a match for book"
msgstr ""
-#: bookwyrm/models/base_model.py:16
+#: bookwyrm/models/base_model.py:17
#, fuzzy
#| msgid "Ascending"
msgid "Pending"
msgstr "升序"
-#: bookwyrm/models/base_model.py:17
+#: bookwyrm/models/base_model.py:18
msgid "Self deletion"
msgstr ""
-#: bookwyrm/models/base_model.py:18
+#: bookwyrm/models/base_model.py:19
#, fuzzy
#| msgid "Moderator Comments"
msgid "Moderator suspension"
msgstr "监察员评论"
-#: bookwyrm/models/base_model.py:19
+#: bookwyrm/models/base_model.py:20
#, fuzzy
#| msgid "Mentions"
msgid "Moderator deletion"
msgstr "提及"
-#: bookwyrm/models/base_model.py:20
+#: bookwyrm/models/base_model.py:21
#, fuzzy
#| msgid "Un-block"
msgid "Domain block"
@@ -167,46 +167,46 @@ msgstr "用户名"
msgid "A user with that username already exists."
msgstr "已经存在使用该用户名的用户。"
-#: bookwyrm/settings.py:116
+#: bookwyrm/settings.py:117
msgid "Home Timeline"
msgstr "主页时间线"
-#: bookwyrm/settings.py:116
+#: bookwyrm/settings.py:117
msgid "Home"
msgstr "主页"
-#: bookwyrm/settings.py:117
+#: bookwyrm/settings.py:118
msgid "Books Timeline"
msgstr "书目时间线"
-#: bookwyrm/settings.py:117 bookwyrm/templates/search/layout.html:21
+#: bookwyrm/settings.py:118 bookwyrm/templates/search/layout.html:21
#: bookwyrm/templates/search/layout.html:42
#: bookwyrm/templates/user/layout.html:81
msgid "Books"
msgstr "书目"
-#: bookwyrm/settings.py:163
+#: bookwyrm/settings.py:164
msgid "English"
msgstr "English(英语)"
-#: bookwyrm/settings.py:164
-msgid "German"
+#: bookwyrm/settings.py:165
+msgid "Deutsch (German)"
msgstr "Deutsch(德语)"
-#: bookwyrm/settings.py:165
-msgid "Spanish"
+#: bookwyrm/settings.py:166
+msgid "Español (Spanish)"
msgstr "Español(西班牙语)"
-#: bookwyrm/settings.py:166
-msgid "French"
+#: bookwyrm/settings.py:167
+msgid "Français (French)"
msgstr "Français(法语)"
-#: bookwyrm/settings.py:167
-msgid "Simplified Chinese"
+#: bookwyrm/settings.py:168
+msgid "简体中文 (Simplified Chinese)"
msgstr "简体中文"
-#: bookwyrm/settings.py:168
-msgid "Traditional Chinese"
+#: bookwyrm/settings.py:169
+msgid "繁體中文 (Traditional Chinese)"
msgstr "繁體中文(繁体中文)"
#: bookwyrm/templates/404.html:4 bookwyrm/templates/404.html:8
@@ -279,22 +279,22 @@ msgid "Edit Author:"
msgstr "编辑作者:"
#: bookwyrm/templates/author/edit_author.html:13
-#: bookwyrm/templates/book/edit_book.html:19
+#: bookwyrm/templates/book/edit/edit_book.html:18
msgid "Added:"
msgstr "添加了:"
#: bookwyrm/templates/author/edit_author.html:14
-#: bookwyrm/templates/book/edit_book.html:24
+#: bookwyrm/templates/book/edit/edit_book.html:21
msgid "Updated:"
msgstr "更新了:"
#: bookwyrm/templates/author/edit_author.html:15
-#: bookwyrm/templates/book/edit_book.html:30
+#: bookwyrm/templates/book/edit/edit_book.html:25
msgid "Last edited by:"
msgstr "最后编辑人:"
#: bookwyrm/templates/author/edit_author.html:31
-#: bookwyrm/templates/book/edit_book.html:124
+#: bookwyrm/templates/book/edit/edit_book_form.html:15
msgid "Metadata"
msgstr "元数据"
@@ -304,9 +304,9 @@ msgid "Name:"
msgstr "名称:"
#: bookwyrm/templates/author/edit_author.html:43
-#: bookwyrm/templates/book/edit_book.html:169
-#: bookwyrm/templates/book/edit_book.html:178
-#: bookwyrm/templates/book/edit_book.html:221
+#: bookwyrm/templates/book/edit/edit_book_form.html:65
+#: bookwyrm/templates/book/edit/edit_book_form.html:79
+#: bookwyrm/templates/book/edit/edit_book_form.html:124
msgid "Separate multiple values with commas."
msgstr "请用英文逗号(,)分隔多个值。"
@@ -335,7 +335,7 @@ msgid "Openlibrary key:"
msgstr "Openlibrary key:"
#: bookwyrm/templates/author/edit_author.html:89
-#: bookwyrm/templates/book/edit_book.html:313
+#: bookwyrm/templates/book/edit/edit_book_form.html:224
msgid "Inventaire ID:"
msgstr "Inventaire ID:"
@@ -349,11 +349,11 @@ msgstr "Goodreads key:"
#: bookwyrm/templates/author/edit_author.html:116
#: bookwyrm/templates/book/book.html:140
-#: bookwyrm/templates/book/edit_book.html:341
+#: bookwyrm/templates/book/edit/edit_book.html:110
#: bookwyrm/templates/book/readthrough.html:76
#: bookwyrm/templates/lists/bookmark_button.html:15
#: bookwyrm/templates/lists/form.html:44
-#: bookwyrm/templates/preferences/edit_user.html:118
+#: bookwyrm/templates/preferences/edit_user.html:124
#: bookwyrm/templates/settings/announcements/announcement_form.html:69
#: bookwyrm/templates/settings/federation/edit_instance.html:74
#: bookwyrm/templates/settings/federation/instance.html:87
@@ -367,7 +367,7 @@ msgstr "保存"
#: bookwyrm/templates/author/edit_author.html:117
#: bookwyrm/templates/book/book.html:141 bookwyrm/templates/book/book.html:190
#: bookwyrm/templates/book/cover_modal.html:32
-#: bookwyrm/templates/book/edit_book.html:342
+#: bookwyrm/templates/book/edit/edit_book.html:111
#: bookwyrm/templates/book/readthrough.html:77
#: bookwyrm/templates/lists/delete_list_modal.html:17
#: bookwyrm/templates/settings/federation/instance.html:88
@@ -407,7 +407,7 @@ msgid "Add Description"
msgstr "添加描述"
#: bookwyrm/templates/book/book.html:136
-#: bookwyrm/templates/book/edit_book.html:143
+#: bookwyrm/templates/book/edit/edit_book_form.html:34
#: bookwyrm/templates/lists/form.html:12 bookwyrm/templates/shelf/form.html:17
msgid "Description:"
msgstr "描述:"
@@ -443,31 +443,31 @@ msgstr "创建"
msgid "You don't have any reading activity for this book."
msgstr "你还没有任何这本书的阅读活动。"
-#: bookwyrm/templates/book/book.html:216
+#: bookwyrm/templates/book/book.html:218
msgid "Reviews"
msgstr "书评"
-#: bookwyrm/templates/book/book.html:221
+#: bookwyrm/templates/book/book.html:223
msgid "Your reviews"
msgstr "你的书评"
-#: bookwyrm/templates/book/book.html:227
+#: bookwyrm/templates/book/book.html:229
msgid "Your comments"
msgstr "你的评论"
-#: bookwyrm/templates/book/book.html:233
+#: bookwyrm/templates/book/book.html:235
msgid "Your quotes"
msgstr "你的引用"
-#: bookwyrm/templates/book/book.html:269
+#: bookwyrm/templates/book/book.html:271
msgid "Subjects"
msgstr "主题"
-#: bookwyrm/templates/book/book.html:281
+#: bookwyrm/templates/book/book.html:283
msgid "Places"
msgstr "地点"
-#: bookwyrm/templates/book/book.html:292 bookwyrm/templates/layout.html:75
+#: bookwyrm/templates/book/book.html:294 bookwyrm/templates/layout.html:75
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
#: bookwyrm/templates/search/layout.html:25
#: bookwyrm/templates/search/layout.html:50
@@ -475,11 +475,11 @@ msgstr "地点"
msgid "Lists"
msgstr "列表"
-#: bookwyrm/templates/book/book.html:303
+#: bookwyrm/templates/book/book.html:305
msgid "Add to list"
msgstr "添加到列表"
-#: bookwyrm/templates/book/book.html:313
+#: bookwyrm/templates/book/book.html:315
#: bookwyrm/templates/book/cover_modal.html:31
#: bookwyrm/templates/lists/list.html:181
#: bookwyrm/templates/settings/email_blocklist/domain_form.html:26
@@ -487,207 +487,220 @@ msgstr "添加到列表"
msgid "Add"
msgstr "添加"
-#: bookwyrm/templates/book/book_identifiers.html:7
+#: bookwyrm/templates/book/book_identifiers.html:8
msgid "ISBN:"
msgstr "ISBN:"
-#: bookwyrm/templates/book/book_identifiers.html:14
-#: bookwyrm/templates/book/edit_book.html:321
+#: bookwyrm/templates/book/book_identifiers.html:15
+#: bookwyrm/templates/book/edit/edit_book_form.html:232
msgid "OCLC Number:"
msgstr "OCLC 号:"
-#: bookwyrm/templates/book/book_identifiers.html:21
-#: bookwyrm/templates/book/edit_book.html:329
+#: bookwyrm/templates/book/book_identifiers.html:22
+#: bookwyrm/templates/book/edit/edit_book_form.html:240
msgid "ASIN:"
msgstr "ASIN:"
#: bookwyrm/templates/book/cover_modal.html:17
-#: bookwyrm/templates/book/edit_book.html:236
+#: bookwyrm/templates/book/edit/edit_book_form.html:143
msgid "Upload cover:"
msgstr "上传封面:"
#: bookwyrm/templates/book/cover_modal.html:23
-#: bookwyrm/templates/book/edit_book.html:241
+#: bookwyrm/templates/book/edit/edit_book_form.html:148
msgid "Load cover from url:"
msgstr "从网址加载封面:"
-#: bookwyrm/templates/book/edit_book.html:5
-#: bookwyrm/templates/book/edit_book.html:11
+#: bookwyrm/templates/book/edit/edit_book.html:5
+#: bookwyrm/templates/book/edit/edit_book.html:11
#, python-format
msgid "Edit \"%(book_title)s\""
msgstr "编辑《%(book_title)s》"
-#: bookwyrm/templates/book/edit_book.html:5
-#: bookwyrm/templates/book/edit_book.html:13
+#: bookwyrm/templates/book/edit/edit_book.html:5
+#: bookwyrm/templates/book/edit/edit_book.html:13
msgid "Add Book"
msgstr "添加书目"
-#: bookwyrm/templates/book/edit_book.html:61
+#: bookwyrm/templates/book/edit/edit_book.html:47
msgid "Confirm Book Info"
msgstr "确认书目信息"
-#: bookwyrm/templates/book/edit_book.html:69
+#: bookwyrm/templates/book/edit/edit_book.html:55
#, python-format
msgid "Is \"%(name)s\" an existing author?"
msgstr "“%(name)s” 是已存在的作者吗?"
-#: bookwyrm/templates/book/edit_book.html:78
+#: bookwyrm/templates/book/edit/edit_book.html:64
#, python-format
msgid "Author of %(book_title)s"
msgstr "%(book_title)s 的作者"
-#: bookwyrm/templates/book/edit_book.html:82
+#: bookwyrm/templates/book/edit/edit_book.html:68
msgid "This is a new author"
msgstr "这是一位新的作者"
-#: bookwyrm/templates/book/edit_book.html:89
+#: bookwyrm/templates/book/edit/edit_book.html:75
#, python-format
msgid "Creating a new author: %(name)s"
msgstr "正在创建新的作者: %(name)s"
-#: bookwyrm/templates/book/edit_book.html:96
+#: bookwyrm/templates/book/edit/edit_book.html:82
msgid "Is this an edition of an existing work?"
msgstr "这是已存在的作品的一个版本吗?"
-#: bookwyrm/templates/book/edit_book.html:104
+#: bookwyrm/templates/book/edit/edit_book.html:90
msgid "This is a new work"
msgstr "这是一个新的作品。"
-#: bookwyrm/templates/book/edit_book.html:111
+#: bookwyrm/templates/book/edit/edit_book.html:97
#: bookwyrm/templates/password_reset.html:30
msgid "Confirm"
msgstr "确认"
-#: bookwyrm/templates/book/edit_book.html:113
-#: bookwyrm/templates/feed/status.html:8
+#: bookwyrm/templates/book/edit/edit_book.html:99
+#: bookwyrm/templates/feed/status.html:9
msgid "Back"
msgstr "返回"
-#: bookwyrm/templates/book/edit_book.html:127
+#: bookwyrm/templates/book/edit/edit_book_form.html:18
#: bookwyrm/templates/snippets/create_status/review.html:16
msgid "Title:"
msgstr "标题:"
-#: bookwyrm/templates/book/edit_book.html:135
+#: bookwyrm/templates/book/edit/edit_book_form.html:26
msgid "Subtitle:"
msgstr "副标题:"
-#: bookwyrm/templates/book/edit_book.html:151
+#: bookwyrm/templates/book/edit/edit_book_form.html:44
msgid "Series:"
msgstr "系列:"
-#: bookwyrm/templates/book/edit_book.html:159
+#: bookwyrm/templates/book/edit/edit_book_form.html:53
msgid "Series number:"
msgstr "系列编号:"
-#: bookwyrm/templates/book/edit_book.html:167
+#: bookwyrm/templates/book/edit/edit_book_form.html:63
msgid "Languages:"
msgstr "语言:"
-#: bookwyrm/templates/book/edit_book.html:176
+#: bookwyrm/templates/book/edit/edit_book_form.html:74
+#, fuzzy
+#| msgid "Public"
+msgid "Publication"
+msgstr "公开"
+
+#: bookwyrm/templates/book/edit/edit_book_form.html:77
msgid "Publisher:"
msgstr "出版社:"
-#: bookwyrm/templates/book/edit_book.html:185
+#: bookwyrm/templates/book/edit/edit_book_form.html:86
msgid "First published date:"
msgstr "初版时间:"
-#: bookwyrm/templates/book/edit_book.html:193
+#: bookwyrm/templates/book/edit/edit_book_form.html:94
msgid "Published date:"
msgstr "出版时间:"
-#: bookwyrm/templates/book/edit_book.html:202
+#: bookwyrm/templates/book/edit/edit_book_form.html:104
msgid "Authors"
msgstr "作者"
-#: bookwyrm/templates/book/edit_book.html:209
+#: bookwyrm/templates/book/edit/edit_book_form.html:112
#, python-format
msgid "Remove %(name)s"
msgstr "移除 %(name)s"
-#: bookwyrm/templates/book/edit_book.html:212
+#: bookwyrm/templates/book/edit/edit_book_form.html:115
#, python-format
msgid "Author page for %(name)s"
msgstr "%(name)s 的作者页面"
-#: bookwyrm/templates/book/edit_book.html:219
+#: bookwyrm/templates/book/edit/edit_book_form.html:122
msgid "Add Authors:"
msgstr "添加作者:"
-#: bookwyrm/templates/book/edit_book.html:220
+#: bookwyrm/templates/book/edit/edit_book_form.html:123
msgid "John Doe, Jane Smith"
msgstr "张三, 李四"
-#: bookwyrm/templates/book/edit_book.html:227
+#: bookwyrm/templates/book/edit/edit_book_form.html:132
#: bookwyrm/templates/shelf/shelf.html:127
msgid "Cover"
msgstr "封面"
-#: bookwyrm/templates/book/edit_book.html:253
+#: bookwyrm/templates/book/edit/edit_book_form.html:161
msgid "Physical Properties"
msgstr "实体性质"
-#: bookwyrm/templates/book/edit_book.html:257
-#: bookwyrm/templates/book/format_filter.html:5
+#: bookwyrm/templates/book/edit/edit_book_form.html:166
+#: bookwyrm/templates/book/editions/format_filter.html:5
msgid "Format:"
msgstr "格式:"
-#: bookwyrm/templates/book/edit_book.html:268
+#: bookwyrm/templates/book/edit/edit_book_form.html:177
#, fuzzy
#| msgid "User details"
msgid "Format details:"
msgstr "用户详情"
-#: bookwyrm/templates/book/edit_book.html:278
+#: bookwyrm/templates/book/edit/edit_book_form.html:187
msgid "Pages:"
msgstr "页数:"
-#: bookwyrm/templates/book/edit_book.html:287
+#: bookwyrm/templates/book/edit/edit_book_form.html:197
msgid "Book Identifiers"
msgstr "书目标识号"
-#: bookwyrm/templates/book/edit_book.html:289
+#: bookwyrm/templates/book/edit/edit_book_form.html:200
msgid "ISBN 13:"
msgstr "ISBN 13:"
-#: bookwyrm/templates/book/edit_book.html:297
+#: bookwyrm/templates/book/edit/edit_book_form.html:208
msgid "ISBN 10:"
msgstr "ISBN 10:"
-#: bookwyrm/templates/book/edit_book.html:305
+#: bookwyrm/templates/book/edit/edit_book_form.html:216
msgid "Openlibrary ID:"
msgstr "Openlibrary ID:"
-#: bookwyrm/templates/book/editions.html:4
+#: bookwyrm/templates/book/editions/editions.html:4
#, python-format
msgid "Editions of %(book_title)s"
msgstr "%(book_title)s 的各版本"
-#: bookwyrm/templates/book/editions.html:8
+#: bookwyrm/templates/book/editions/editions.html:8
#, python-format
msgid "Editions of \"%(work_title)s\""
msgstr "《%(work_title)s》 的各版本"
-#: bookwyrm/templates/book/format_filter.html:8
-#: bookwyrm/templates/book/language_filter.html:8
+#: bookwyrm/templates/book/editions/format_filter.html:8
+#: bookwyrm/templates/book/editions/language_filter.html:8
msgid "Any"
msgstr "所有"
-#: bookwyrm/templates/book/language_filter.html:5
+#: bookwyrm/templates/book/editions/language_filter.html:5
+#: bookwyrm/templates/preferences/edit_user.html:95
msgid "Language:"
msgstr "语言:"
-#: bookwyrm/templates/book/publisher_info.html:22
+#: bookwyrm/templates/book/editions/search_filter.html:5
+#, fuzzy
+#| msgid "Search Results"
+msgid "Search editions"
+msgstr "搜索结果"
+
+#: bookwyrm/templates/book/publisher_info.html:21
#, python-format
msgid "%(format)s"
msgstr "%(format)s"
-#: bookwyrm/templates/book/publisher_info.html:24
+#: bookwyrm/templates/book/publisher_info.html:23
#, python-format
msgid "%(format)s, %(pages)s pages"
msgstr "%(format)s, %(pages)s 页"
-#: bookwyrm/templates/book/publisher_info.html:26
+#: bookwyrm/templates/book/publisher_info.html:25
#, python-format
msgid "%(pages)s pages"
msgstr "%(pages)s 页"
@@ -697,17 +710,17 @@ msgstr "%(pages)s 页"
msgid "%(languages)s language"
msgstr "%(languages)s 语言"
-#: bookwyrm/templates/book/publisher_info.html:64
+#: bookwyrm/templates/book/publisher_info.html:65
#, python-format
msgid "Published %(date)s by %(publisher)s."
msgstr "%(publisher)s 于 %(date)s 出版。"
-#: bookwyrm/templates/book/publisher_info.html:66
+#: bookwyrm/templates/book/publisher_info.html:67
#, python-format
msgid "Published %(date)s"
msgstr "于 %(date)s 出版"
-#: bookwyrm/templates/book/publisher_info.html:68
+#: bookwyrm/templates/book/publisher_info.html:69
#, python-format
msgid "Published by %(publisher)s."
msgstr "%(publisher)s 出版。"
@@ -745,19 +758,13 @@ msgstr "编辑阅读日期"
msgid "Delete these read dates"
msgstr "删除这些阅读日期"
-#: bookwyrm/templates/book/search_filter.html:5
-#, fuzzy
-#| msgid "Search Results"
-msgid "Search editions"
-msgstr "搜索结果"
-
#: bookwyrm/templates/components/inline_form.html:8
#: bookwyrm/templates/components/modal.html:11
#: bookwyrm/templates/components/tooltip.html:7
#: bookwyrm/templates/feed/layout.html:71
#: bookwyrm/templates/get_started/layout.html:20
#: bookwyrm/templates/get_started/layout.html:53
-#: bookwyrm/templates/search/book.html:32
+#: bookwyrm/templates/search/book.html:49
#: bookwyrm/templates/snippets/announcement.html:18
msgid "Close"
msgstr "关闭"
@@ -1217,7 +1224,7 @@ msgid "Avatar:"
msgstr "头像:"
#: bookwyrm/templates/get_started/profile.html:42
-#: bookwyrm/templates/preferences/edit_user.html:104
+#: bookwyrm/templates/preferences/edit_user.html:110
msgid "Manually approve followers:"
msgstr "手动批准关注者:"
@@ -1469,8 +1476,8 @@ msgid "Log out"
msgstr "登出"
#: bookwyrm/templates/layout.html:147 bookwyrm/templates/layout.html:148
-#: bookwyrm/templates/notifications.html:6
-#: bookwyrm/templates/notifications.html:11
+#: bookwyrm/templates/notifications/notifications_page.html:5
+#: bookwyrm/templates/notifications/notifications_page.html:10
msgid "Notifications"
msgstr "通知"
@@ -1617,9 +1624,10 @@ msgstr "策展"
msgid "Anyone can suggest books, subject to your approval"
msgstr "任何人都可以推荐书目、主题让你批准"
-#: bookwyrm/templates/lists/form.html:31 bookwyrm/templates/search/book.html:30
-#: bookwyrm/templates/settings/reports/reports.html:25
-#: bookwyrm/templates/snippets/announcement.html:16
+#: bookwyrm/templates/lists/form.html:31
+#, fuzzy
+#| msgid "Open"
+msgctxt "curation type"
msgid "Open"
msgstr "开放"
@@ -1736,128 +1744,130 @@ msgstr "密码:"
msgid "More about this site"
msgstr "更多关于本站点的信息"
-#: bookwyrm/templates/notifications.html:16
-msgid "Delete notifications"
-msgstr "删除通知"
+#: bookwyrm/templates/notifications/items/add.html:24
+#, fuzzy, python-format
+#| msgid " added %(book_title)s to your list “%(list_name)s”"
+msgid "added %(book_title)s to your list \"%(list_name)s\""
+msgstr " 添加了 %(book_title)s 到你的列表 “%(list_name)s”"
-#: bookwyrm/templates/notifications.html:25
-msgid "All"
-msgstr "所有"
+#: bookwyrm/templates/notifications/items/add.html:31
+#, fuzzy, python-format
+#| msgid " suggested adding %(book_title)s to your list \"%(list_name)s\""
+msgid "suggested adding %(book_title)s to your list \"%(list_name)s\""
+msgstr " 推荐添加 %(book_title)s 到你的列表 “%(list_name)s”"
-#: bookwyrm/templates/notifications.html:29
-msgid "Mentions"
-msgstr "提及"
-
-#: bookwyrm/templates/notifications.html:70
-#, python-format
-msgid "favorited your review of %(book_title)s"
-msgstr "喜欢了你 对 %(book_title)s 的书评"
-
-#: bookwyrm/templates/notifications.html:72
-#, python-format
-msgid "favorited your comment on %(book_title)s"
-msgstr "喜欢了你 对 %(book_title)s 的评论"
-
-#: bookwyrm/templates/notifications.html:74
-#, python-format
-msgid "favorited your quote from %(book_title)s"
-msgstr "喜欢了你 来自 %(book_title)s 的引用"
-
-#: bookwyrm/templates/notifications.html:76
-#, python-format
-msgid "favorited your status"
-msgstr "喜欢了你的 状态"
-
-#: bookwyrm/templates/notifications.html:81
-#, python-format
-msgid "mentioned you in a review of %(book_title)s"
-msgstr "在 对 %(book_title)s 的书评 里提到了你"
-
-#: bookwyrm/templates/notifications.html:83
-#, python-format
-msgid "mentioned you in a comment on %(book_title)s"
-msgstr "在 对 %(book_title)s 的评论 里提到了你"
-
-#: bookwyrm/templates/notifications.html:85
-#, python-format
-msgid "mentioned you in a quote from %(book_title)s"
-msgstr "在 对 %(book_title)s 的引用 中提到了你"
-
-#: bookwyrm/templates/notifications.html:87
-#, python-format
-msgid "mentioned you in a status"
-msgstr "在 状态 中提到了你"
-
-#: bookwyrm/templates/notifications.html:92
-#, python-format
-msgid "replied to your review of %(book_title)s"
-msgstr "回复 了你的 对 %(book_title)s 的书评"
-
-#: bookwyrm/templates/notifications.html:94
-#, python-format
-msgid "replied to your comment on %(book_title)s"
-msgstr "回复 了你的 对 %(book_title)s 的评论"
-
-#: bookwyrm/templates/notifications.html:96
-#, python-format
-msgid "replied to your quote from %(book_title)s"
-msgstr "回复 了你 对 %(book_title)s 中的引用"
-
-#: bookwyrm/templates/notifications.html:98
-#, python-format
-msgid "replied to your status"
-msgstr "回复 了你的 状态"
-
-#: bookwyrm/templates/notifications.html:102
-msgid "followed you"
-msgstr "关注了你"
-
-#: bookwyrm/templates/notifications.html:105
-msgid "sent you a follow request"
-msgstr "向你发送了关注请求"
-
-#: bookwyrm/templates/notifications.html:111
+#: bookwyrm/templates/notifications/items/boost.html:19
#, python-format
msgid "boosted your review of %(book_title)s"
msgstr "转发了你的 对 %(book_title)s 的书评"
-#: bookwyrm/templates/notifications.html:113
+#: bookwyrm/templates/notifications/items/boost.html:25
#, python-format
msgid "boosted your comment on%(book_title)s"
msgstr "转发了你的 对 %(book_title)s 的评论"
-#: bookwyrm/templates/notifications.html:115
+#: bookwyrm/templates/notifications/items/boost.html:31
#, python-format
msgid "boosted your quote from %(book_title)s"
msgstr "转发了你的 对 %(book_title)s 的引用"
-#: bookwyrm/templates/notifications.html:117
+#: bookwyrm/templates/notifications/items/boost.html:37
#, python-format
msgid "boosted your status"
msgstr "转发了你的 状态"
-#: bookwyrm/templates/notifications.html:121
-#, fuzzy, python-format
-#| msgid " added %(book_title)s to your list “%(list_name)s”"
-msgid " added %(book_title)s to your list \"%(list_name)s\""
-msgstr " 添加了 %(book_title)s 到你的列表 “%(list_name)s”"
-
-#: bookwyrm/templates/notifications.html:123
+#: bookwyrm/templates/notifications/items/fav.html:19
#, python-format
-msgid " suggested adding %(book_title)s to your list \"%(list_name)s\""
-msgstr " 推荐添加 %(book_title)s 到你的列表 “%(list_name)s”"
+msgid "favorited your review of %(book_title)s"
+msgstr "喜欢了你 对 %(book_title)s 的书评"
-#: bookwyrm/templates/notifications.html:128
+#: bookwyrm/templates/notifications/items/fav.html:25
+#, fuzzy, python-format
+#| msgid "favorited your comment on %(book_title)s"
+msgid "favorited your comment on%(book_title)s"
+msgstr "喜欢了你 对 %(book_title)s 的评论"
+
+#: bookwyrm/templates/notifications/items/fav.html:31
+#, python-format
+msgid "favorited your quote from %(book_title)s"
+msgstr "喜欢了你 来自 %(book_title)s 的引用"
+
+#: bookwyrm/templates/notifications/items/fav.html:37
+#, python-format
+msgid "favorited your status"
+msgstr "喜欢了你的 状态"
+
+#: bookwyrm/templates/notifications/items/follow.html:15
+msgid "followed you"
+msgstr "关注了你"
+
+#: bookwyrm/templates/notifications/items/follow_request.html:11
+msgid "sent you a follow request"
+msgstr "向你发送了关注请求"
+
+#: bookwyrm/templates/notifications/items/import.html:14
#, python-format
msgid "Your import completed."
msgstr "你的 导入 已完成。"
-#: bookwyrm/templates/notifications.html:131
+#: bookwyrm/templates/notifications/items/mention.html:20
+#, python-format
+msgid "mentioned you in a review of %(book_title)s"
+msgstr "在 对 %(book_title)s 的书评 里提到了你"
+
+#: bookwyrm/templates/notifications/items/mention.html:26
+#, python-format
+msgid "mentioned you in a comment on %(book_title)s"
+msgstr "在 对 %(book_title)s 的评论 里提到了你"
+
+#: bookwyrm/templates/notifications/items/mention.html:32
+#, python-format
+msgid "mentioned you in a quote from %(book_title)s"
+msgstr "在 对 %(book_title)s 的引用 中提到了你"
+
+#: bookwyrm/templates/notifications/items/mention.html:38
+#, python-format
+msgid "mentioned you in a status"
+msgstr "在 状态 中提到了你"
+
+#: bookwyrm/templates/notifications/items/reply.html:21
+#, python-format
+msgid "replied to your review of %(book_title)s"
+msgstr "回复 了你的 对 %(book_title)s 的书评"
+
+#: bookwyrm/templates/notifications/items/reply.html:27
+#, python-format
+msgid "replied to your comment on %(book_title)s"
+msgstr "回复 了你的 对 %(book_title)s 的评论"
+
+#: bookwyrm/templates/notifications/items/reply.html:33
+#, python-format
+msgid "replied to your quote from %(book_title)s"
+msgstr "回复 了你 对 %(book_title)s 中的引用"
+
+#: bookwyrm/templates/notifications/items/reply.html:39
+#, python-format
+msgid "replied to your status"
+msgstr "回复 了你的 状态"
+
+#: bookwyrm/templates/notifications/items/report.html:15
#, python-format
msgid "A new report needs moderation."
msgstr "有新的 报告 需要仲裁。"
-#: bookwyrm/templates/notifications.html:157
+#: bookwyrm/templates/notifications/notifications_page.html:18
+msgid "Delete notifications"
+msgstr "删除通知"
+
+#: bookwyrm/templates/notifications/notifications_page.html:29
+msgid "All"
+msgstr "所有"
+
+#: bookwyrm/templates/notifications/notifications_page.html:33
+msgid "Mentions"
+msgstr "提及"
+
+#: bookwyrm/templates/notifications/notifications_page.html:45
msgid "You're all caught up!"
msgstr "你什么也没错过!"
@@ -1932,7 +1942,7 @@ msgid "Display preferences"
msgstr "邮箱偏好"
#: bookwyrm/templates/preferences/edit_user.html:14
-#: bookwyrm/templates/preferences/edit_user.html:100
+#: bookwyrm/templates/preferences/edit_user.html:106
#, fuzzy
#| msgid "Post privacy"
msgid "Privacy"
@@ -1959,7 +1969,7 @@ msgstr "你的帐号会显示在 目录 中,并可能
msgid "Preferred Timezone: "
msgstr "偏好的时区:"
-#: bookwyrm/templates/preferences/edit_user.html:110
+#: bookwyrm/templates/preferences/edit_user.html:116
msgid "Default post privacy:"
msgstr "默认发文隐私:"
@@ -1986,15 +1996,25 @@ msgstr "开始《%(book_title)s》"
msgid "Want to Read \"%(book_title)s\""
msgstr "想要阅读《%(book_title)s》"
-#: bookwyrm/templates/search/book.html:64
+#: bookwyrm/templates/search/book.html:47
+#: bookwyrm/templates/settings/reports/reports.html:25
+#: bookwyrm/templates/snippets/announcement.html:16
+msgid "Open"
+msgstr "开放"
+
+#: bookwyrm/templates/search/book.html:85
+msgid "Import book"
+msgstr "导入书目"
+
+#: bookwyrm/templates/search/book.html:107
msgid "Load results from other catalogues"
msgstr "从其它分类加载结果"
-#: bookwyrm/templates/search/book.html:68
+#: bookwyrm/templates/search/book.html:111
msgid "Manually add book"
msgstr "手动添加书目"
-#: bookwyrm/templates/search/book.html:73
+#: bookwyrm/templates/search/book.html:116
msgid "Log in to import or add books."
msgstr "登录以导入或添加书目。"
@@ -2141,13 +2161,14 @@ msgid "Dashboard"
msgstr ""
#: bookwyrm/templates/settings/dashboard/dashboard.html:15
+#: bookwyrm/templates/settings/dashboard/dashboard.html:100
#, fuzzy
#| msgid "Local users"
msgid "Total users"
msgstr "本地用户"
#: bookwyrm/templates/settings/dashboard/dashboard.html:21
-#: bookwyrm/templates/settings/dashboard/dashboard_user_chart.html:12
+#: bookwyrm/templates/settings/dashboard/user_chart.html:16
msgid "Active this month"
msgstr ""
@@ -2158,6 +2179,7 @@ msgid "Statuses"
msgstr "状态"
#: bookwyrm/templates/settings/dashboard/dashboard.html:33
+#: bookwyrm/templates/settings/dashboard/works_chart.html:11
msgid "Works"
msgstr ""
@@ -2195,25 +2217,35 @@ msgstr ""
msgid "Weeks"
msgstr "一周"
-#: bookwyrm/templates/settings/dashboard/dashboard.html:100
+#: bookwyrm/templates/settings/dashboard/dashboard.html:106
#, fuzzy
#| msgid "User Activity"
msgid "User signup activity"
msgstr "用户活动"
-#: bookwyrm/templates/settings/dashboard/dashboard.html:106
+#: bookwyrm/templates/settings/dashboard/dashboard.html:112
#, fuzzy
#| msgid "User Activity"
msgid "Status activity"
msgstr "用户活动"
-#: bookwyrm/templates/settings/dashboard/dashboard_status_chart.html:7
+#: bookwyrm/templates/settings/dashboard/dashboard.html:118
+msgid "Works created"
+msgstr ""
+
+#: bookwyrm/templates/settings/dashboard/registration_chart.html:10
+#, fuzzy
+#| msgid "Registration"
+msgid "Registrations"
+msgstr "注册"
+
+#: bookwyrm/templates/settings/dashboard/status_chart.html:11
#, fuzzy
#| msgid "No statuses reported"
msgid "Statuses posted"
msgstr "没有被报告的状态"
-#: bookwyrm/templates/settings/dashboard/dashboard_user_chart.html:7
+#: bookwyrm/templates/settings/dashboard/user_chart.html:11
msgid "Total"
msgstr ""
@@ -2922,7 +2954,7 @@ msgstr "创建书架"
msgid "Edit Shelf"
msgstr "编辑书架"
-#: bookwyrm/templates/shelf/shelf.html:28 bookwyrm/views/shelf.py:56
+#: bookwyrm/templates/shelf/shelf.html:28 bookwyrm/views/shelf.py:55
msgid "All books"
msgstr "所有书目"
@@ -3031,9 +3063,9 @@ msgid "of %(pages)s pages"
msgstr "全书 %(pages)s 页"
#: bookwyrm/templates/snippets/create_status/content_field.html:17
-#: bookwyrm/templates/snippets/status/layout.html:31
-#: bookwyrm/templates/snippets/status/layout.html:49
-#: bookwyrm/templates/snippets/status/layout.html:50
+#: bookwyrm/templates/snippets/status/layout.html:34
+#: bookwyrm/templates/snippets/status/layout.html:52
+#: bookwyrm/templates/snippets/status/layout.html:53
msgid "Reply"
msgstr "回复"
@@ -3211,29 +3243,29 @@ msgstr[0] "《%(book_title)s》的书评(%(display_rating)s 星): %(review_t
msgid "Review of \"%(book_title)s\": %(review_title)s"
msgstr "《%(book_title)s》的书评: %(review_title)s"
-#: bookwyrm/templates/snippets/goal_form.html:3
+#: bookwyrm/templates/snippets/goal_form.html:4
#, python-format
msgid "Set a goal for how many books you'll finish reading in %(year)s, and track your progress throughout the year."
msgstr "设定一个 %(year)s 内要读多少书的目标,并记录你全年的进度。"
-#: bookwyrm/templates/snippets/goal_form.html:12
+#: bookwyrm/templates/snippets/goal_form.html:16
msgid "Reading goal:"
msgstr "阅读目标:"
-#: bookwyrm/templates/snippets/goal_form.html:17
+#: bookwyrm/templates/snippets/goal_form.html:21
msgid "books"
msgstr "本书"
-#: bookwyrm/templates/snippets/goal_form.html:22
+#: bookwyrm/templates/snippets/goal_form.html:26
msgid "Goal privacy:"
msgstr "目标隐私:"
-#: bookwyrm/templates/snippets/goal_form.html:29
+#: bookwyrm/templates/snippets/goal_form.html:33
#: bookwyrm/templates/snippets/reading_modals/layout.html:13
msgid "Post to feed"
msgstr "发布到消息流中"
-#: bookwyrm/templates/snippets/goal_form.html:33
+#: bookwyrm/templates/snippets/goal_form.html:37
msgid "Set goal"
msgstr "设置目标"
@@ -3365,10 +3397,6 @@ msgstr "本报告会被发送至 %(site_name)s 的监察员以复查。"
msgid "More info about this report:"
msgstr "关于本报告的更多信息"
-#: bookwyrm/templates/snippets/search_result_text.html:36
-msgid "Import book"
-msgstr "导入书目"
-
#: bookwyrm/templates/snippets/shelf_selector.html:4
msgid "Move book"
msgstr "移动书目"
@@ -3470,18 +3498,18 @@ msgstr "为 %(book)s 撰写了书评"
msgid "%(username)s wants to read %(book)s"
msgstr "%(username)s 想要阅读 %(book)s"
-#: bookwyrm/templates/snippets/status/layout.html:21
+#: bookwyrm/templates/snippets/status/layout.html:24
#: bookwyrm/templates/snippets/status/status_options.html:17
msgid "Delete status"
msgstr "删除发文"
-#: bookwyrm/templates/snippets/status/layout.html:53
-#: bookwyrm/templates/snippets/status/layout.html:54
+#: bookwyrm/templates/snippets/status/layout.html:56
+#: bookwyrm/templates/snippets/status/layout.html:57
msgid "Boost status"
msgstr "转发状态"
-#: bookwyrm/templates/snippets/status/layout.html:57
-#: bookwyrm/templates/snippets/status/layout.html:58
+#: bookwyrm/templates/snippets/status/layout.html:60
+#: bookwyrm/templates/snippets/status/layout.html:61
msgid "Like status"
msgstr "喜欢状态"
@@ -3664,7 +3692,7 @@ msgstr "%(title)s:%(subtitle)s"
msgid "Not a valid csv file"
msgstr "不是有效的 csv 文件"
-#: bookwyrm/views/login.py:68
+#: bookwyrm/views/login.py:69
msgid "Username or password are incorrect"
msgstr "用户名或密码不正确"
@@ -3673,12 +3701,11 @@ msgid "No user with that email address was found."
msgstr "没有找到使用该邮箱的用户。"
#: bookwyrm/views/password.py:41
-#, fuzzy, python-brace-format
-#| msgid "A password reset link sent to %s"
-msgid "A password reset link sent to {email}"
-msgstr "密码重置连接已发送给 %s"
+#, python-brace-format
+msgid "A password reset link was sent to {email}"
+msgstr "密码重置连接已发送给 {email}"
-#: bookwyrm/views/rss_feed.py:34
+#: bookwyrm/views/rss_feed.py:35
#, python-brace-format
msgid "Status updates from {obj.display_name}"
msgstr ""
diff --git a/locale/zh_Hant/LC_MESSAGES/django.mo b/locale/zh_Hant/LC_MESSAGES/django.mo
index 4dd8c915..f9ca27be 100644
Binary files a/locale/zh_Hant/LC_MESSAGES/django.mo and b/locale/zh_Hant/LC_MESSAGES/django.mo differ
diff --git a/locale/zh_Hant/LC_MESSAGES/django.po b/locale/zh_Hant/LC_MESSAGES/django.po
index 7c147092..eabee509 100644
--- a/locale/zh_Hant/LC_MESSAGES/django.po
+++ b/locale/zh_Hant/LC_MESSAGES/django.po
@@ -8,69 +8,69 @@ msgid ""
msgstr ""
"Project-Id-Version: 0.0.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-09-29 18:32+0000\n"
+"POT-Creation-Date: 2021-10-06 23:57+0000\n"
"PO-Revision-Date: 2021-06-30 10:36+0000\n"
"Last-Translator: Grace Cheng \n"
-"Language-Team: LANGUAGE \n"
+"Language-Team: \n"
"Language: zh_Hant\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-#: bookwyrm/forms.py:241
+#: bookwyrm/forms.py:242
msgid "A user with this email already exists."
msgstr "已經存在使用該郵箱的使用者。"
-#: bookwyrm/forms.py:255
+#: bookwyrm/forms.py:256
msgid "One Day"
msgstr "一天"
-#: bookwyrm/forms.py:256
+#: bookwyrm/forms.py:257
msgid "One Week"
msgstr "一週"
-#: bookwyrm/forms.py:257
+#: bookwyrm/forms.py:258
msgid "One Month"
msgstr "一個月"
-#: bookwyrm/forms.py:258
+#: bookwyrm/forms.py:259
msgid "Does Not Expire"
msgstr "永不失效"
-#: bookwyrm/forms.py:262
+#: bookwyrm/forms.py:263
#, fuzzy, python-brace-format
#| msgid "Max uses"
msgid "{i} uses"
msgstr "最大使用次數"
-#: bookwyrm/forms.py:263
+#: bookwyrm/forms.py:264
msgid "Unlimited"
msgstr "不受限"
-#: bookwyrm/forms.py:325
+#: bookwyrm/forms.py:326
msgid "List Order"
msgstr "列表順序"
-#: bookwyrm/forms.py:326
+#: bookwyrm/forms.py:327
msgid "Book Title"
msgstr "書名"
-#: bookwyrm/forms.py:327 bookwyrm/templates/shelf/shelf.html:134
+#: bookwyrm/forms.py:328 bookwyrm/templates/shelf/shelf.html:134
#: bookwyrm/templates/shelf/shelf.html:165
#: bookwyrm/templates/snippets/create_status/review.html:33
msgid "Rating"
msgstr "評價"
-#: bookwyrm/forms.py:329 bookwyrm/templates/lists/list.html:109
+#: bookwyrm/forms.py:330 bookwyrm/templates/lists/list.html:109
msgid "Sort By"
msgstr "排序方式"
-#: bookwyrm/forms.py:333
+#: bookwyrm/forms.py:334
msgid "Ascending"
msgstr "升序"
-#: bookwyrm/forms.py:334
+#: bookwyrm/forms.py:335
msgid "Descending"
msgstr "降序"
@@ -82,29 +82,29 @@ msgstr ""
msgid "Could not find a match for book"
msgstr ""
-#: bookwyrm/models/base_model.py:16
+#: bookwyrm/models/base_model.py:17
#, fuzzy
#| msgid "Ascending"
msgid "Pending"
msgstr "升序"
-#: bookwyrm/models/base_model.py:17
+#: bookwyrm/models/base_model.py:18
msgid "Self deletion"
msgstr ""
-#: bookwyrm/models/base_model.py:18
+#: bookwyrm/models/base_model.py:19
#, fuzzy
#| msgid "Moderator Comments"
msgid "Moderator suspension"
msgstr "監察員評論"
-#: bookwyrm/models/base_model.py:19
+#: bookwyrm/models/base_model.py:20
#, fuzzy
#| msgid "Mentions"
msgid "Moderator deletion"
msgstr "提及"
-#: bookwyrm/models/base_model.py:20
+#: bookwyrm/models/base_model.py:21
#, fuzzy
#| msgid "Un-block"
msgid "Domain block"
@@ -167,50 +167,48 @@ msgstr "使用者名稱"
msgid "A user with that username already exists."
msgstr "已經存在使用該名稱的使用者。"
-#: bookwyrm/settings.py:116
+#: bookwyrm/settings.py:117
msgid "Home Timeline"
msgstr "主頁時間線"
-#: bookwyrm/settings.py:116
+#: bookwyrm/settings.py:117
msgid "Home"
msgstr "主頁"
-#: bookwyrm/settings.py:117
+#: bookwyrm/settings.py:118
#, fuzzy
#| msgid "Book Title"
msgid "Books Timeline"
msgstr "書名"
-#: bookwyrm/settings.py:117 bookwyrm/templates/search/layout.html:21
+#: bookwyrm/settings.py:118 bookwyrm/templates/search/layout.html:21
#: bookwyrm/templates/search/layout.html:42
#: bookwyrm/templates/user/layout.html:81
msgid "Books"
msgstr "書目"
-#: bookwyrm/settings.py:163
+#: bookwyrm/settings.py:164
msgid "English"
msgstr "English(英語)"
-#: bookwyrm/settings.py:164
-msgid "German"
+#: bookwyrm/settings.py:165
+msgid "Deutsch (German)"
msgstr "Deutsch(德語)"
-#: bookwyrm/settings.py:165
-msgid "Spanish"
+#: bookwyrm/settings.py:166
+msgid "Español (Spanish)"
msgstr "Español(西班牙語)"
-#: bookwyrm/settings.py:166
-msgid "French"
+#: bookwyrm/settings.py:167
+msgid "Français (French)"
msgstr "Français(法語)"
-#: bookwyrm/settings.py:167
-msgid "Simplified Chinese"
+#: bookwyrm/settings.py:168
+msgid "简体中文 (Simplified Chinese)"
msgstr "簡體中文"
-#: bookwyrm/settings.py:168
-#, fuzzy
-#| msgid "Tranditional Chinese"
-msgid "Traditional Chinese"
+#: bookwyrm/settings.py:169
+msgid "繁體中文 (Traditional Chinese)"
msgstr "繁體中文"
#: bookwyrm/templates/404.html:4 bookwyrm/templates/404.html:8
@@ -285,22 +283,22 @@ msgid "Edit Author:"
msgstr "編輯作者:"
#: bookwyrm/templates/author/edit_author.html:13
-#: bookwyrm/templates/book/edit_book.html:19
+#: bookwyrm/templates/book/edit/edit_book.html:18
msgid "Added:"
msgstr "新增了:"
#: bookwyrm/templates/author/edit_author.html:14
-#: bookwyrm/templates/book/edit_book.html:24
+#: bookwyrm/templates/book/edit/edit_book.html:21
msgid "Updated:"
msgstr "更新了:"
#: bookwyrm/templates/author/edit_author.html:15
-#: bookwyrm/templates/book/edit_book.html:30
+#: bookwyrm/templates/book/edit/edit_book.html:25
msgid "Last edited by:"
msgstr "最後編輯者:"
#: bookwyrm/templates/author/edit_author.html:31
-#: bookwyrm/templates/book/edit_book.html:124
+#: bookwyrm/templates/book/edit/edit_book_form.html:15
msgid "Metadata"
msgstr "元資料"
@@ -310,9 +308,9 @@ msgid "Name:"
msgstr "名稱:"
#: bookwyrm/templates/author/edit_author.html:43
-#: bookwyrm/templates/book/edit_book.html:169
-#: bookwyrm/templates/book/edit_book.html:178
-#: bookwyrm/templates/book/edit_book.html:221
+#: bookwyrm/templates/book/edit/edit_book_form.html:65
+#: bookwyrm/templates/book/edit/edit_book_form.html:79
+#: bookwyrm/templates/book/edit/edit_book_form.html:124
msgid "Separate multiple values with commas."
msgstr "請用逗號(,)分隔多個值。"
@@ -341,7 +339,7 @@ msgid "Openlibrary key:"
msgstr "Openlibrary key:"
#: bookwyrm/templates/author/edit_author.html:89
-#: bookwyrm/templates/book/edit_book.html:313
+#: bookwyrm/templates/book/edit/edit_book_form.html:224
msgid "Inventaire ID:"
msgstr "Inventaire ID:"
@@ -355,11 +353,11 @@ msgstr "Goodreads key:"
#: bookwyrm/templates/author/edit_author.html:116
#: bookwyrm/templates/book/book.html:140
-#: bookwyrm/templates/book/edit_book.html:341
+#: bookwyrm/templates/book/edit/edit_book.html:110
#: bookwyrm/templates/book/readthrough.html:76
#: bookwyrm/templates/lists/bookmark_button.html:15
#: bookwyrm/templates/lists/form.html:44
-#: bookwyrm/templates/preferences/edit_user.html:118
+#: bookwyrm/templates/preferences/edit_user.html:124
#: bookwyrm/templates/settings/announcements/announcement_form.html:69
#: bookwyrm/templates/settings/federation/edit_instance.html:74
#: bookwyrm/templates/settings/federation/instance.html:87
@@ -373,7 +371,7 @@ msgstr "儲存"
#: bookwyrm/templates/author/edit_author.html:117
#: bookwyrm/templates/book/book.html:141 bookwyrm/templates/book/book.html:190
#: bookwyrm/templates/book/cover_modal.html:32
-#: bookwyrm/templates/book/edit_book.html:342
+#: bookwyrm/templates/book/edit/edit_book.html:111
#: bookwyrm/templates/book/readthrough.html:77
#: bookwyrm/templates/lists/delete_list_modal.html:17
#: bookwyrm/templates/settings/federation/instance.html:88
@@ -413,7 +411,7 @@ msgid "Add Description"
msgstr "新增描述"
#: bookwyrm/templates/book/book.html:136
-#: bookwyrm/templates/book/edit_book.html:143
+#: bookwyrm/templates/book/edit/edit_book_form.html:34
#: bookwyrm/templates/lists/form.html:12 bookwyrm/templates/shelf/form.html:17
msgid "Description:"
msgstr "描述:"
@@ -449,31 +447,31 @@ msgstr "建立"
msgid "You don't have any reading activity for this book."
msgstr "你還未閱讀這本書。"
-#: bookwyrm/templates/book/book.html:216
+#: bookwyrm/templates/book/book.html:218
msgid "Reviews"
msgstr "書評"
-#: bookwyrm/templates/book/book.html:221
+#: bookwyrm/templates/book/book.html:223
msgid "Your reviews"
msgstr "你的書評"
-#: bookwyrm/templates/book/book.html:227
+#: bookwyrm/templates/book/book.html:229
msgid "Your comments"
msgstr "你的評論"
-#: bookwyrm/templates/book/book.html:233
+#: bookwyrm/templates/book/book.html:235
msgid "Your quotes"
msgstr "你的引用"
-#: bookwyrm/templates/book/book.html:269
+#: bookwyrm/templates/book/book.html:271
msgid "Subjects"
msgstr "主題"
-#: bookwyrm/templates/book/book.html:281
+#: bookwyrm/templates/book/book.html:283
msgid "Places"
msgstr "地點"
-#: bookwyrm/templates/book/book.html:292 bookwyrm/templates/layout.html:75
+#: bookwyrm/templates/book/book.html:294 bookwyrm/templates/layout.html:75
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
#: bookwyrm/templates/search/layout.html:25
#: bookwyrm/templates/search/layout.html:50
@@ -481,11 +479,11 @@ msgstr "地點"
msgid "Lists"
msgstr "列表"
-#: bookwyrm/templates/book/book.html:303
+#: bookwyrm/templates/book/book.html:305
msgid "Add to list"
msgstr "新增到列表"
-#: bookwyrm/templates/book/book.html:313
+#: bookwyrm/templates/book/book.html:315
#: bookwyrm/templates/book/cover_modal.html:31
#: bookwyrm/templates/lists/list.html:181
#: bookwyrm/templates/settings/email_blocklist/domain_form.html:26
@@ -493,209 +491,222 @@ msgstr "新增到列表"
msgid "Add"
msgstr "新增"
-#: bookwyrm/templates/book/book_identifiers.html:7
+#: bookwyrm/templates/book/book_identifiers.html:8
msgid "ISBN:"
msgstr "ISBN:"
-#: bookwyrm/templates/book/book_identifiers.html:14
-#: bookwyrm/templates/book/edit_book.html:321
+#: bookwyrm/templates/book/book_identifiers.html:15
+#: bookwyrm/templates/book/edit/edit_book_form.html:232
msgid "OCLC Number:"
msgstr "OCLC 號:"
-#: bookwyrm/templates/book/book_identifiers.html:21
-#: bookwyrm/templates/book/edit_book.html:329
+#: bookwyrm/templates/book/book_identifiers.html:22
+#: bookwyrm/templates/book/edit/edit_book_form.html:240
msgid "ASIN:"
msgstr "ASIN:"
#: bookwyrm/templates/book/cover_modal.html:17
-#: bookwyrm/templates/book/edit_book.html:236
+#: bookwyrm/templates/book/edit/edit_book_form.html:143
msgid "Upload cover:"
msgstr "上載封面:"
#: bookwyrm/templates/book/cover_modal.html:23
-#: bookwyrm/templates/book/edit_book.html:241
+#: bookwyrm/templates/book/edit/edit_book_form.html:148
msgid "Load cover from url:"
msgstr "從網址載入封面:"
-#: bookwyrm/templates/book/edit_book.html:5
-#: bookwyrm/templates/book/edit_book.html:11
+#: bookwyrm/templates/book/edit/edit_book.html:5
+#: bookwyrm/templates/book/edit/edit_book.html:11
#, python-format
msgid "Edit \"%(book_title)s\""
msgstr "編輯 \"%(book_title)s\""
-#: bookwyrm/templates/book/edit_book.html:5
-#: bookwyrm/templates/book/edit_book.html:13
+#: bookwyrm/templates/book/edit/edit_book.html:5
+#: bookwyrm/templates/book/edit/edit_book.html:13
msgid "Add Book"
msgstr "新增書目"
-#: bookwyrm/templates/book/edit_book.html:61
+#: bookwyrm/templates/book/edit/edit_book.html:47
msgid "Confirm Book Info"
msgstr "確認書目資料"
-#: bookwyrm/templates/book/edit_book.html:69
+#: bookwyrm/templates/book/edit/edit_book.html:55
#, python-format
msgid "Is \"%(name)s\" an existing author?"
msgstr "\"%(name)s\" 是已存在的作者嗎?"
-#: bookwyrm/templates/book/edit_book.html:78
+#: bookwyrm/templates/book/edit/edit_book.html:64
#, python-format
msgid "Author of %(book_title)s"
msgstr "%(book_title)s 的作者"
-#: bookwyrm/templates/book/edit_book.html:82
+#: bookwyrm/templates/book/edit/edit_book.html:68
msgid "This is a new author"
msgstr "這是一位新的作者"
-#: bookwyrm/templates/book/edit_book.html:89
+#: bookwyrm/templates/book/edit/edit_book.html:75
#, python-format
msgid "Creating a new author: %(name)s"
msgstr "正在建立新的作者: %(name)s"
-#: bookwyrm/templates/book/edit_book.html:96
+#: bookwyrm/templates/book/edit/edit_book.html:82
msgid "Is this an edition of an existing work?"
msgstr "這是已存在的作品的另一個版本嗎?"
-#: bookwyrm/templates/book/edit_book.html:104
+#: bookwyrm/templates/book/edit/edit_book.html:90
msgid "This is a new work"
msgstr "這是一個新的作品。"
-#: bookwyrm/templates/book/edit_book.html:111
+#: bookwyrm/templates/book/edit/edit_book.html:97
#: bookwyrm/templates/password_reset.html:30
msgid "Confirm"
msgstr "確認"
-#: bookwyrm/templates/book/edit_book.html:113
-#: bookwyrm/templates/feed/status.html:8
+#: bookwyrm/templates/book/edit/edit_book.html:99
+#: bookwyrm/templates/feed/status.html:9
msgid "Back"
msgstr "返回"
-#: bookwyrm/templates/book/edit_book.html:127
+#: bookwyrm/templates/book/edit/edit_book_form.html:18
#: bookwyrm/templates/snippets/create_status/review.html:16
msgid "Title:"
msgstr "標題:"
-#: bookwyrm/templates/book/edit_book.html:135
+#: bookwyrm/templates/book/edit/edit_book_form.html:26
msgid "Subtitle:"
msgstr "副標題:"
-#: bookwyrm/templates/book/edit_book.html:151
+#: bookwyrm/templates/book/edit/edit_book_form.html:44
msgid "Series:"
msgstr "系列:"
-#: bookwyrm/templates/book/edit_book.html:159
+#: bookwyrm/templates/book/edit/edit_book_form.html:53
msgid "Series number:"
msgstr "系列編號:"
-#: bookwyrm/templates/book/edit_book.html:167
+#: bookwyrm/templates/book/edit/edit_book_form.html:63
msgid "Languages:"
msgstr "語言:"
-#: bookwyrm/templates/book/edit_book.html:176
+#: bookwyrm/templates/book/edit/edit_book_form.html:74
+#, fuzzy
+#| msgid "Public"
+msgid "Publication"
+msgstr "公開"
+
+#: bookwyrm/templates/book/edit/edit_book_form.html:77
msgid "Publisher:"
msgstr "出版社:"
-#: bookwyrm/templates/book/edit_book.html:185
+#: bookwyrm/templates/book/edit/edit_book_form.html:86
msgid "First published date:"
msgstr "初版時間:"
-#: bookwyrm/templates/book/edit_book.html:193
+#: bookwyrm/templates/book/edit/edit_book_form.html:94
msgid "Published date:"
msgstr "出版時間:"
-#: bookwyrm/templates/book/edit_book.html:202
+#: bookwyrm/templates/book/edit/edit_book_form.html:104
msgid "Authors"
msgstr "作者"
-#: bookwyrm/templates/book/edit_book.html:209
+#: bookwyrm/templates/book/edit/edit_book_form.html:112
#, fuzzy, python-format
#| msgid "Remove from %(name)s"
msgid "Remove %(name)s"
msgstr "從 %(name)s 移除"
-#: bookwyrm/templates/book/edit_book.html:212
+#: bookwyrm/templates/book/edit/edit_book_form.html:115
#, fuzzy, python-format
#| msgid "Remove from %(name)s"
msgid "Author page for %(name)s"
msgstr "從 %(name)s 移除"
-#: bookwyrm/templates/book/edit_book.html:219
+#: bookwyrm/templates/book/edit/edit_book_form.html:122
msgid "Add Authors:"
msgstr "新增作者:"
-#: bookwyrm/templates/book/edit_book.html:220
+#: bookwyrm/templates/book/edit/edit_book_form.html:123
msgid "John Doe, Jane Smith"
msgstr "John Doe, Jane Smith"
-#: bookwyrm/templates/book/edit_book.html:227
+#: bookwyrm/templates/book/edit/edit_book_form.html:132
#: bookwyrm/templates/shelf/shelf.html:127
msgid "Cover"
msgstr "封面"
-#: bookwyrm/templates/book/edit_book.html:253
+#: bookwyrm/templates/book/edit/edit_book_form.html:161
msgid "Physical Properties"
msgstr "實體性質"
-#: bookwyrm/templates/book/edit_book.html:257
-#: bookwyrm/templates/book/format_filter.html:5
+#: bookwyrm/templates/book/edit/edit_book_form.html:166
+#: bookwyrm/templates/book/editions/format_filter.html:5
msgid "Format:"
msgstr "格式:"
-#: bookwyrm/templates/book/edit_book.html:268
+#: bookwyrm/templates/book/edit/edit_book_form.html:177
#, fuzzy
#| msgid "User details"
msgid "Format details:"
msgstr "使用者詳情"
-#: bookwyrm/templates/book/edit_book.html:278
+#: bookwyrm/templates/book/edit/edit_book_form.html:187
msgid "Pages:"
msgstr "頁數:"
-#: bookwyrm/templates/book/edit_book.html:287
+#: bookwyrm/templates/book/edit/edit_book_form.html:197
msgid "Book Identifiers"
msgstr "書目標識號"
-#: bookwyrm/templates/book/edit_book.html:289
+#: bookwyrm/templates/book/edit/edit_book_form.html:200
msgid "ISBN 13:"
msgstr "ISBN 13:"
-#: bookwyrm/templates/book/edit_book.html:297
+#: bookwyrm/templates/book/edit/edit_book_form.html:208
msgid "ISBN 10:"
msgstr "ISBN 10:"
-#: bookwyrm/templates/book/edit_book.html:305
+#: bookwyrm/templates/book/edit/edit_book_form.html:216
msgid "Openlibrary ID:"
msgstr "Openlibrary ID:"
-#: bookwyrm/templates/book/editions.html:4
+#: bookwyrm/templates/book/editions/editions.html:4
#, python-format
msgid "Editions of %(book_title)s"
msgstr "%(book_title)s 的各版本"
-#: bookwyrm/templates/book/editions.html:8
+#: bookwyrm/templates/book/editions/editions.html:8
#, python-format
msgid "Editions of \"%(work_title)s\""
msgstr "\"%(work_title)s\" 的各版本"
-#: bookwyrm/templates/book/format_filter.html:8
-#: bookwyrm/templates/book/language_filter.html:8
+#: bookwyrm/templates/book/editions/format_filter.html:8
+#: bookwyrm/templates/book/editions/language_filter.html:8
msgid "Any"
msgstr "所有"
-#: bookwyrm/templates/book/language_filter.html:5
+#: bookwyrm/templates/book/editions/language_filter.html:5
+#: bookwyrm/templates/preferences/edit_user.html:95
msgid "Language:"
msgstr "語言:"
-#: bookwyrm/templates/book/publisher_info.html:22
+#: bookwyrm/templates/book/editions/search_filter.html:5
+#, fuzzy
+#| msgid "Search Results"
+msgid "Search editions"
+msgstr "搜尋結果"
+
+#: bookwyrm/templates/book/publisher_info.html:21
#, python-format
msgid "%(format)s"
msgstr "%(format)s"
-#: bookwyrm/templates/book/publisher_info.html:24
+#: bookwyrm/templates/book/publisher_info.html:23
#, python-format
msgid "%(format)s, %(pages)s pages"
msgstr "%(format)s, %(pages)s 頁"
-#: bookwyrm/templates/book/publisher_info.html:26
+#: bookwyrm/templates/book/publisher_info.html:25
#, python-format
msgid "%(pages)s pages"
msgstr "%(pages)s 頁"
@@ -705,17 +716,17 @@ msgstr "%(pages)s 頁"
msgid "%(languages)s language"
msgstr "%(languages)s 語言"
-#: bookwyrm/templates/book/publisher_info.html:64
+#: bookwyrm/templates/book/publisher_info.html:65
#, python-format
msgid "Published %(date)s by %(publisher)s."
msgstr "在 %(date)s 由 %(publisher)s 出版。"
-#: bookwyrm/templates/book/publisher_info.html:66
+#: bookwyrm/templates/book/publisher_info.html:67
#, python-format
msgid "Published %(date)s"
msgstr "於 %(date)s 出版"
-#: bookwyrm/templates/book/publisher_info.html:68
+#: bookwyrm/templates/book/publisher_info.html:69
#, python-format
msgid "Published by %(publisher)s."
msgstr "由 %(publisher)s 出版。"
@@ -753,19 +764,13 @@ msgstr "編輯閱讀日期"
msgid "Delete these read dates"
msgstr "刪除這些閱讀日期"
-#: bookwyrm/templates/book/search_filter.html:5
-#, fuzzy
-#| msgid "Search Results"
-msgid "Search editions"
-msgstr "搜尋結果"
-
#: bookwyrm/templates/components/inline_form.html:8
#: bookwyrm/templates/components/modal.html:11
#: bookwyrm/templates/components/tooltip.html:7
#: bookwyrm/templates/feed/layout.html:71
#: bookwyrm/templates/get_started/layout.html:20
#: bookwyrm/templates/get_started/layout.html:53
-#: bookwyrm/templates/search/book.html:32
+#: bookwyrm/templates/search/book.html:49
#: bookwyrm/templates/snippets/announcement.html:18
msgid "Close"
msgstr "關閉"
@@ -1242,7 +1247,7 @@ msgid "Avatar:"
msgstr "頭像:"
#: bookwyrm/templates/get_started/profile.html:42
-#: bookwyrm/templates/preferences/edit_user.html:104
+#: bookwyrm/templates/preferences/edit_user.html:110
msgid "Manually approve followers:"
msgstr "手動批准關注者:"
@@ -1498,8 +1503,8 @@ msgid "Log out"
msgstr "登出"
#: bookwyrm/templates/layout.html:147 bookwyrm/templates/layout.html:148
-#: bookwyrm/templates/notifications.html:6
-#: bookwyrm/templates/notifications.html:11
+#: bookwyrm/templates/notifications/notifications_page.html:5
+#: bookwyrm/templates/notifications/notifications_page.html:10
msgid "Notifications"
msgstr "通知"
@@ -1646,9 +1651,10 @@ msgstr "管理"
msgid "Anyone can suggest books, subject to your approval"
msgstr "任何人都可以推薦書目、主題,但須經你的批准。"
-#: bookwyrm/templates/lists/form.html:31 bookwyrm/templates/search/book.html:30
-#: bookwyrm/templates/settings/reports/reports.html:25
-#: bookwyrm/templates/snippets/announcement.html:16
+#: bookwyrm/templates/lists/form.html:31
+#, fuzzy
+#| msgid "Open"
+msgctxt "curation type"
msgid "Open"
msgstr "開放"
@@ -1765,127 +1771,130 @@ msgstr "密碼:"
msgid "More about this site"
msgstr "關於本網站的更多"
-#: bookwyrm/templates/notifications.html:16
-msgid "Delete notifications"
-msgstr "刪除通知"
+#: bookwyrm/templates/notifications/items/add.html:24
+#, fuzzy, python-format
+#| msgid " added %(book_title)s to your list \"%(list_name)s\""
+msgid "added %(book_title)s to your list \"%(list_name)s\""
+msgstr " 新增了 %(book_title)s 到你的列表 \"%(list_name)s\""
-#: bookwyrm/templates/notifications.html:25
-msgid "All"
-msgstr "所有"
+#: bookwyrm/templates/notifications/items/add.html:31
+#, fuzzy, python-format
+#| msgid " suggested adding %(book_title)s to your list \"%(list_name)s\""
+msgid "suggested adding %(book_title)s to your list \"%(list_name)s\""
+msgstr " 推薦新增 %(book_title)s 到你的列表 \"%(list_name)s\""
-#: bookwyrm/templates/notifications.html:29
-msgid "Mentions"
-msgstr "提及"
-
-#: bookwyrm/templates/notifications.html:70
-#, python-format
-msgid "favorited your review of %(book_title)s"
-msgstr "喜歡了你 對 %(book_title)s 的書評"
-
-#: bookwyrm/templates/notifications.html:72
-#, python-format
-msgid "favorited your comment on %(book_title)s"
-msgstr "喜歡了你 對 %(book_title)s 的評論"
-
-#: bookwyrm/templates/notifications.html:74
-#, python-format
-msgid "favorited your quote from %(book_title)s"
-msgstr "喜歡了你 來自 %(book_title)s 的引用"
-
-#: bookwyrm/templates/notifications.html:76
-#, python-format
-msgid "favorited your status"
-msgstr "喜歡了你的 狀態"
-
-#: bookwyrm/templates/notifications.html:81
-#, python-format
-msgid "mentioned you in a review of %(book_title)s"
-msgstr "在 對 %(book_title)s 的書評 裡提到了你"
-
-#: bookwyrm/templates/notifications.html:83
-#, python-format
-msgid "mentioned you in a comment on %(book_title)s"
-msgstr "在 對 %(book_title)s 的評論 裡提到了你"
-
-#: bookwyrm/templates/notifications.html:85
-#, python-format
-msgid "mentioned you in a quote from %(book_title)s"
-msgstr "在 對 %(book_title)s 的引用 中提到了你"
-
-#: bookwyrm/templates/notifications.html:87
-#, python-format
-msgid "mentioned you in a status"
-msgstr "在 狀態 中提到了你"
-
-#: bookwyrm/templates/notifications.html:92
-#, python-format
-msgid "replied to your review of %(book_title)s"
-msgstr "回覆 了你的 對 %(book_title)s 的書評"
-
-#: bookwyrm/templates/notifications.html:94
-#, python-format
-msgid "replied to your comment on %(book_title)s"
-msgstr "回覆 了你的 對 %(book_title)s 的評論"
-
-#: bookwyrm/templates/notifications.html:96
-#, python-format
-msgid "replied to your quote from %(book_title)s"
-msgstr "回覆 了你 對 %(book_title)s 中的引用"
-
-#: bookwyrm/templates/notifications.html:98
-#, python-format
-msgid "replied to your status"
-msgstr "回覆 了你的 狀態"
-
-#: bookwyrm/templates/notifications.html:102
-msgid "followed you"
-msgstr "關注了你"
-
-#: bookwyrm/templates/notifications.html:105
-msgid "sent you a follow request"
-msgstr "向你傳送了關注請求"
-
-#: bookwyrm/templates/notifications.html:111
+#: bookwyrm/templates/notifications/items/boost.html:19
#, python-format
msgid "boosted your review of %(book_title)s"
msgstr "轉發了你的 對 %(book_title)s 的書評"
-#: bookwyrm/templates/notifications.html:113
+#: bookwyrm/templates/notifications/items/boost.html:25
#, python-format
msgid "boosted your comment on%(book_title)s"
msgstr "轉發了你的 對 %(book_title)s 的評論"
-#: bookwyrm/templates/notifications.html:115
+#: bookwyrm/templates/notifications/items/boost.html:31
#, python-format
msgid "boosted your quote from %(book_title)s"
msgstr "轉發了你的 對 %(book_title)s 的引用"
-#: bookwyrm/templates/notifications.html:117
+#: bookwyrm/templates/notifications/items/boost.html:37
#, python-format
msgid "boosted your status"
msgstr "轉發了你的 狀態"
-#: bookwyrm/templates/notifications.html:121
+#: bookwyrm/templates/notifications/items/fav.html:19
#, python-format
-msgid " added %(book_title)s to your list \"%(list_name)s\""
-msgstr " 新增了 %(book_title)s 到你的列表 \"%(list_name)s\""
+msgid "favorited your review of %(book_title)s"
+msgstr "喜歡了你 對 %(book_title)s 的書評"
-#: bookwyrm/templates/notifications.html:123
+#: bookwyrm/templates/notifications/items/fav.html:25
+#, fuzzy, python-format
+#| msgid "favorited your comment on %(book_title)s"
+msgid "favorited your comment on%(book_title)s"
+msgstr "喜歡了你 對 %(book_title)s 的評論"
+
+#: bookwyrm/templates/notifications/items/fav.html:31
#, python-format
-msgid " suggested adding %(book_title)s to your list \"%(list_name)s\""
-msgstr " 推薦新增 %(book_title)s 到你的列表 \"%(list_name)s\""
+msgid "favorited your quote from %(book_title)s"
+msgstr "喜歡了你 來自 %(book_title)s 的引用"
-#: bookwyrm/templates/notifications.html:128
+#: bookwyrm/templates/notifications/items/fav.html:37
+#, python-format
+msgid "favorited your status"
+msgstr "喜歡了你的 狀態"
+
+#: bookwyrm/templates/notifications/items/follow.html:15
+msgid "followed you"
+msgstr "關注了你"
+
+#: bookwyrm/templates/notifications/items/follow_request.html:11
+msgid "sent you a follow request"
+msgstr "向你傳送了關注請求"
+
+#: bookwyrm/templates/notifications/items/import.html:14
#, python-format
msgid "Your import completed."
msgstr "你的 匯入 已完成。"
-#: bookwyrm/templates/notifications.html:131
+#: bookwyrm/templates/notifications/items/mention.html:20
+#, python-format
+msgid "mentioned you in a review of %(book_title)s"
+msgstr "在 對 %(book_title)s 的書評 裡提到了你"
+
+#: bookwyrm/templates/notifications/items/mention.html:26
+#, python-format
+msgid "mentioned you in a comment on %(book_title)s"
+msgstr "在 對 %(book_title)s 的評論 裡提到了你"
+
+#: bookwyrm/templates/notifications/items/mention.html:32
+#, python-format
+msgid "mentioned you in a quote from %(book_title)s"
+msgstr "在 對 %(book_title)s 的引用 中提到了你"
+
+#: bookwyrm/templates/notifications/items/mention.html:38
+#, python-format
+msgid "mentioned you in a status"
+msgstr "在 狀態 中提到了你"
+
+#: bookwyrm/templates/notifications/items/reply.html:21
+#, python-format
+msgid "replied to your review of %(book_title)s"
+msgstr "回覆 了你的 對 %(book_title)s 的書評"
+
+#: bookwyrm/templates/notifications/items/reply.html:27
+#, python-format
+msgid "replied to your comment on %(book_title)s"
+msgstr "回覆 了你的 對 %(book_title)s 的評論"
+
+#: bookwyrm/templates/notifications/items/reply.html:33
+#, python-format
+msgid "replied to your quote from %(book_title)s"
+msgstr "回覆 了你 對 %(book_title)s 中的引用"
+
+#: bookwyrm/templates/notifications/items/reply.html:39
+#, python-format
+msgid "replied to your status"
+msgstr "回覆 了你的 狀態"
+
+#: bookwyrm/templates/notifications/items/report.html:15
#, python-format
msgid "A new report needs moderation."
msgstr "有新的 舉報 需要仲裁。"
-#: bookwyrm/templates/notifications.html:157
+#: bookwyrm/templates/notifications/notifications_page.html:18
+msgid "Delete notifications"
+msgstr "刪除通知"
+
+#: bookwyrm/templates/notifications/notifications_page.html:29
+msgid "All"
+msgstr "所有"
+
+#: bookwyrm/templates/notifications/notifications_page.html:33
+msgid "Mentions"
+msgstr "提及"
+
+#: bookwyrm/templates/notifications/notifications_page.html:45
msgid "You're all caught up!"
msgstr "你什麼也沒錯過!"
@@ -1962,7 +1971,7 @@ msgid "Display preferences"
msgstr "郵箱偏好"
#: bookwyrm/templates/preferences/edit_user.html:14
-#: bookwyrm/templates/preferences/edit_user.html:100
+#: bookwyrm/templates/preferences/edit_user.html:106
#, fuzzy
#| msgid "Post privacy"
msgid "Privacy"
@@ -1989,7 +1998,7 @@ msgstr "你的帳號會顯示在 目錄 中,並可能
msgid "Preferred Timezone: "
msgstr "偏好時區:"
-#: bookwyrm/templates/preferences/edit_user.html:110
+#: bookwyrm/templates/preferences/edit_user.html:116
#, fuzzy
#| msgid "Post privacy"
msgid "Default post privacy:"
@@ -2021,15 +2030,25 @@ msgstr "編輯 \"%(book_title)s\""
msgid "Want to Read \"%(book_title)s\""
msgstr "想要閱讀 \"%(book_title)s\""
-#: bookwyrm/templates/search/book.html:64
+#: bookwyrm/templates/search/book.html:47
+#: bookwyrm/templates/settings/reports/reports.html:25
+#: bookwyrm/templates/snippets/announcement.html:16
+msgid "Open"
+msgstr "開放"
+
+#: bookwyrm/templates/search/book.html:85
+msgid "Import book"
+msgstr "匯入書目"
+
+#: bookwyrm/templates/search/book.html:107
msgid "Load results from other catalogues"
msgstr "從其它分類載入結果"
-#: bookwyrm/templates/search/book.html:68
+#: bookwyrm/templates/search/book.html:111
msgid "Manually add book"
msgstr "手動新增書目"
-#: bookwyrm/templates/search/book.html:73
+#: bookwyrm/templates/search/book.html:116
msgid "Log in to import or add books."
msgstr "登陸以匯入或新增書目。"
@@ -2176,13 +2195,14 @@ msgid "Dashboard"
msgstr ""
#: bookwyrm/templates/settings/dashboard/dashboard.html:15
+#: bookwyrm/templates/settings/dashboard/dashboard.html:100
#, fuzzy
#| msgid "Local users"
msgid "Total users"
msgstr "本地使用者"
#: bookwyrm/templates/settings/dashboard/dashboard.html:21
-#: bookwyrm/templates/settings/dashboard/dashboard_user_chart.html:12
+#: bookwyrm/templates/settings/dashboard/user_chart.html:16
msgid "Active this month"
msgstr ""
@@ -2193,6 +2213,7 @@ msgid "Statuses"
msgstr "狀態"
#: bookwyrm/templates/settings/dashboard/dashboard.html:33
+#: bookwyrm/templates/settings/dashboard/works_chart.html:11
msgid "Works"
msgstr ""
@@ -2230,25 +2251,35 @@ msgstr ""
msgid "Weeks"
msgstr "一週"
-#: bookwyrm/templates/settings/dashboard/dashboard.html:100
+#: bookwyrm/templates/settings/dashboard/dashboard.html:106
#, fuzzy
#| msgid "User Activity"
msgid "User signup activity"
msgstr "使用者活動"
-#: bookwyrm/templates/settings/dashboard/dashboard.html:106
+#: bookwyrm/templates/settings/dashboard/dashboard.html:112
#, fuzzy
#| msgid "User Activity"
msgid "Status activity"
msgstr "使用者活動"
-#: bookwyrm/templates/settings/dashboard/dashboard_status_chart.html:7
+#: bookwyrm/templates/settings/dashboard/dashboard.html:118
+msgid "Works created"
+msgstr ""
+
+#: bookwyrm/templates/settings/dashboard/registration_chart.html:10
+#, fuzzy
+#| msgid "Registration"
+msgid "Registrations"
+msgstr "註冊"
+
+#: bookwyrm/templates/settings/dashboard/status_chart.html:11
#, fuzzy
#| msgid "No statuses reported"
msgid "Statuses posted"
msgstr "沒有被舉報的狀態"
-#: bookwyrm/templates/settings/dashboard/dashboard_user_chart.html:7
+#: bookwyrm/templates/settings/dashboard/user_chart.html:11
msgid "Total"
msgstr ""
@@ -2959,7 +2990,7 @@ msgstr "建立書架"
msgid "Edit Shelf"
msgstr "編輯書架"
-#: bookwyrm/templates/shelf/shelf.html:28 bookwyrm/views/shelf.py:56
+#: bookwyrm/templates/shelf/shelf.html:28 bookwyrm/views/shelf.py:55
msgid "All books"
msgstr "所有書目"
@@ -3069,9 +3100,9 @@ msgid "of %(pages)s pages"
msgstr "全書 %(pages)s 頁"
#: bookwyrm/templates/snippets/create_status/content_field.html:17
-#: bookwyrm/templates/snippets/status/layout.html:31
-#: bookwyrm/templates/snippets/status/layout.html:49
-#: bookwyrm/templates/snippets/status/layout.html:50
+#: bookwyrm/templates/snippets/status/layout.html:34
+#: bookwyrm/templates/snippets/status/layout.html:52
+#: bookwyrm/templates/snippets/status/layout.html:53
msgid "Reply"
msgstr "回覆"
@@ -3255,29 +3286,29 @@ msgstr[0] "\"%(book_title)s\" 的書評(%(display_rating)s 星): %(review_ti
msgid "Review of \"%(book_title)s\": %(review_title)s"
msgstr "\"%(book_title)s\" 的書評: %(review_title)s"
-#: bookwyrm/templates/snippets/goal_form.html:3
+#: bookwyrm/templates/snippets/goal_form.html:4
#, python-format
msgid "Set a goal for how many books you'll finish reading in %(year)s, and track your progress throughout the year."
msgstr "設定一個 %(year)s 內要讀多少書的目標,並記錄你全年的進度。"
-#: bookwyrm/templates/snippets/goal_form.html:12
+#: bookwyrm/templates/snippets/goal_form.html:16
msgid "Reading goal:"
msgstr "閱讀目標:"
-#: bookwyrm/templates/snippets/goal_form.html:17
+#: bookwyrm/templates/snippets/goal_form.html:21
msgid "books"
msgstr "本書"
-#: bookwyrm/templates/snippets/goal_form.html:22
+#: bookwyrm/templates/snippets/goal_form.html:26
msgid "Goal privacy:"
msgstr "目標隱私:"
-#: bookwyrm/templates/snippets/goal_form.html:29
+#: bookwyrm/templates/snippets/goal_form.html:33
#: bookwyrm/templates/snippets/reading_modals/layout.html:13
msgid "Post to feed"
msgstr "發佈到即時動態"
-#: bookwyrm/templates/snippets/goal_form.html:33
+#: bookwyrm/templates/snippets/goal_form.html:37
msgid "Set goal"
msgstr "設定目標"
@@ -3409,10 +3440,6 @@ msgstr "本舉報會被發送至 %(site_name)s 的監察員以複查。"
msgid "More info about this report:"
msgstr "關於本舉報的更多資訊"
-#: bookwyrm/templates/snippets/search_result_text.html:36
-msgid "Import book"
-msgstr "匯入書目"
-
#: bookwyrm/templates/snippets/shelf_selector.html:4
msgid "Move book"
msgstr "移動書目"
@@ -3521,18 +3548,18 @@ msgstr "移除 %(name)s"
msgid "%(username)s wants to read %(book)s"
msgstr "回覆了 %(username)s 的 狀態"
-#: bookwyrm/templates/snippets/status/layout.html:21
+#: bookwyrm/templates/snippets/status/layout.html:24
#: bookwyrm/templates/snippets/status/status_options.html:17
msgid "Delete status"
msgstr "刪除狀態"
-#: bookwyrm/templates/snippets/status/layout.html:53
-#: bookwyrm/templates/snippets/status/layout.html:54
+#: bookwyrm/templates/snippets/status/layout.html:56
+#: bookwyrm/templates/snippets/status/layout.html:57
msgid "Boost status"
msgstr "轉發狀態"
-#: bookwyrm/templates/snippets/status/layout.html:57
-#: bookwyrm/templates/snippets/status/layout.html:58
+#: bookwyrm/templates/snippets/status/layout.html:60
+#: bookwyrm/templates/snippets/status/layout.html:61
msgid "Like status"
msgstr "喜歡狀態"
@@ -3720,7 +3747,7 @@ msgstr ""
msgid "Not a valid csv file"
msgstr "不是有效的 csv 檔案"
-#: bookwyrm/views/login.py:68
+#: bookwyrm/views/login.py:69
msgid "Username or password are incorrect"
msgstr ""
@@ -3729,12 +3756,11 @@ msgid "No user with that email address was found."
msgstr "沒有找到使用該郵箱的使用者。"
#: bookwyrm/views/password.py:41
-#, fuzzy, python-brace-format
-#| msgid "A password reset link sent to %s"
-msgid "A password reset link sent to {email}"
-msgstr "密碼重置連結已傳送給 %s"
+#, python-brace-format
+msgid "A password reset link was sent to {email}"
+msgstr "密碼重置連結已傳送給 {email}"
-#: bookwyrm/views/rss_feed.py:34
+#: bookwyrm/views/rss_feed.py:35
#, python-brace-format
msgid "Status updates from {obj.display_name}"
msgstr ""