diff --git a/bookwyrm/templatetags/book_display_tags.py b/bookwyrm/templatetags/book_display_tags.py
new file mode 100644
index 000000000..9db79f8e4
--- /dev/null
+++ b/bookwyrm/templatetags/book_display_tags.py
@@ -0,0 +1,17 @@
+""" template filters """
+from django import template
+
+
+register = template.Library()
+
+
+@register.filter(name="book_description")
+def get_book_description(book):
+ """use the work's text if the book doesn't have it"""
+ return book.description or book.parent_work.description
+
+
+@register.simple_tag(takes_context=False)
+def get_book_file_links(book):
+ """links for a book"""
+ return book.file_links.filter(domain__status="approved")
diff --git a/bookwyrm/templatetags/bookwyrm_tags.py b/bookwyrm/templatetags/bookwyrm_tags.py
deleted file mode 100644
index 4eff0d826..000000000
--- a/bookwyrm/templatetags/bookwyrm_tags.py
+++ /dev/null
@@ -1,226 +0,0 @@
-""" template filters """
-from django import template
-from django.db.models import Avg, StdDev, Count, F, Q
-
-from bookwyrm import models
-from bookwyrm.utils import cache
-from bookwyrm.views.feed import get_suggested_books
-
-
-register = template.Library()
-
-
-@register.filter(name="rating")
-def get_rating(book, user):
- """get the overall rating of a book"""
- return cache.get_or_set(
- f"book-rating-{book.parent_work.id}-{user.id}",
- lambda u, b: models.Review.privacy_filter(u)
- .filter(book__parent_work__editions=b)
- .aggregate(Avg("rating"))["rating__avg"]
- or 0,
- user,
- book,
- timeout=15552000,
- )
-
-
-@register.filter(name="user_rating")
-def get_user_rating(book, user):
- """get a user's rating of a book"""
- rating = (
- models.Review.objects.filter(
- user=user,
- book=book,
- rating__isnull=False,
- deleted=False,
- )
- .order_by("-published_date")
- .first()
- )
- if rating:
- return rating.rating
- return 0
-
-
-@register.filter(name="is_book_on_shelf")
-def get_is_book_on_shelf(book, shelf):
- """is a book on a shelf"""
- return cache.get_or_set(
- f"book-on-shelf-{book.id}-{shelf.id}",
- lambda b, s: s.books.filter(id=b.id).exists(),
- book,
- shelf,
- timeout=15552000,
- )
-
-
-@register.filter(name="book_description")
-def get_book_description(book):
- """use the work's text if the book doesn't have it"""
- return book.description or book.parent_work.description
-
-
-@register.filter(name="next_shelf")
-def get_next_shelf(current_shelf):
- """shelf you'd use to update reading progress"""
- if current_shelf == "to-read":
- return "reading"
- if current_shelf == "reading":
- return "read"
- if current_shelf == "read":
- return "complete"
- return "to-read"
-
-
-@register.filter(name="load_subclass")
-def load_subclass(status):
- """sometimes you didn't select_subclass"""
- if hasattr(status, "quotation"):
- return status.quotation
- if hasattr(status, "review"):
- return status.review
- if hasattr(status, "comment"):
- return status.comment
- if hasattr(status, "generatednote"):
- return status.generatednote
- return status
-
-
-@register.simple_tag(takes_context=False)
-def get_book_superlatives():
- """get book stats for the about page"""
- total_ratings = models.Review.objects.filter(local=True, deleted=False).count()
- data = {}
- data["top_rated"] = (
- models.Work.objects.annotate(
- rating=Avg(
- "editions__review__rating",
- filter=Q(editions__review__local=True, editions__review__deleted=False),
- ),
- rating_count=Count(
- "editions__review",
- filter=Q(editions__review__local=True, editions__review__deleted=False),
- ),
- )
- .annotate(weighted=F("rating") * F("rating_count") / total_ratings)
- .filter(rating__gt=4, weighted__gt=0)
- .order_by("-weighted")
- .first()
- )
-
- data["controversial"] = (
- models.Work.objects.annotate(
- deviation=StdDev(
- "editions__review__rating",
- filter=Q(editions__review__local=True, editions__review__deleted=False),
- ),
- rating_count=Count(
- "editions__review",
- filter=Q(editions__review__local=True, editions__review__deleted=False),
- ),
- )
- .annotate(weighted=F("deviation") * F("rating_count") / total_ratings)
- .filter(weighted__gt=0)
- .order_by("-weighted")
- .first()
- )
-
- data["wanted"] = (
- models.Work.objects.annotate(
- shelf_count=Count(
- "editions__shelves", filter=Q(editions__shelves__identifier="to-read")
- )
- )
- .order_by("-shelf_count")
- .first()
- )
- return data
-
-
-@register.simple_tag(takes_context=False)
-def related_status(notification):
- """for notifications"""
- if not notification.related_status:
- return None
- return load_subclass(notification.related_status)
-
-
-@register.simple_tag(takes_context=True)
-def active_shelf(context, book):
- """check what shelf a user has a book on, if any"""
- user = context["request"].user
- return (
- cache.get_or_set(
- f"active_shelf-{user.id}-{book.id}",
- lambda u, b: (
- models.ShelfBook.objects.filter(
- shelf__user=u,
- book__parent_work__editions=b,
- ).first()
- or False
- ),
- user,
- book,
- timeout=15552000,
- )
- or {"book": book}
- )
-
-
-@register.simple_tag(takes_context=False)
-def latest_read_through(book, user):
- """the most recent read activity"""
- return cache.get_or_set(
- f"latest_read_through-{user.id}-{book.id}",
- lambda u, b: (
- models.ReadThrough.objects.filter(user=u, book=b, is_active=True)
- .order_by("-start_date")
- .first()
- or False
- ),
- user,
- book,
- timeout=15552000,
- )
-
-
-@register.simple_tag(takes_context=False)
-def get_landing_books():
- """list of books for the landing page"""
- return list(
- set(
- models.Edition.objects.filter(
- review__published_date__isnull=False,
- review__deleted=False,
- review__user__local=True,
- review__privacy__in=["public", "unlisted"],
- )
- .exclude(cover__exact="")
- .distinct()
- .order_by("-review__published_date")[:6]
- )
- )
-
-
-@register.simple_tag(takes_context=True)
-def mutuals_count(context, user):
- """how many users that you follow, follow them"""
- viewer = context["request"].user
- if not viewer.is_authenticated:
- return None
- return user.followers.filter(followers=viewer).count()
-
-
-@register.simple_tag(takes_context=True)
-def suggested_books(context):
- """get books for suggested books panel"""
- # this happens here instead of in the view so that the template snippet can
- # be cached in the template
- return get_suggested_books(context["request"].user)
-
-
-@register.simple_tag(takes_context=False)
-def get_book_file_links(book):
- """links for a book"""
- return book.file_links.filter(domain__status="approved")
diff --git a/bookwyrm/templatetags/feed_page_tags.py b/bookwyrm/templatetags/feed_page_tags.py
new file mode 100644
index 000000000..3d346b9a2
--- /dev/null
+++ b/bookwyrm/templatetags/feed_page_tags.py
@@ -0,0 +1,28 @@
+""" tags used on the feed pages """
+from django import template
+from bookwyrm.views.feed import get_suggested_books
+
+
+register = template.Library()
+
+
+@register.filter(name="load_subclass")
+def load_subclass(status):
+ """sometimes you didn't select_subclass"""
+ if hasattr(status, "quotation"):
+ return status.quotation
+ if hasattr(status, "review"):
+ return status.review
+ if hasattr(status, "comment"):
+ return status.comment
+ if hasattr(status, "generatednote"):
+ return status.generatednote
+ return status
+
+
+@register.simple_tag(takes_context=True)
+def suggested_books(context):
+ """get books for suggested books panel"""
+ # this happens here instead of in the view so that the template snippet can
+ # be cached in the template
+ return get_suggested_books(context["request"].user)
diff --git a/bookwyrm/templatetags/bookwyrm_group_tags.py b/bookwyrm/templatetags/group_tags.py
similarity index 100%
rename from bookwyrm/templatetags/bookwyrm_group_tags.py
rename to bookwyrm/templatetags/group_tags.py
diff --git a/bookwyrm/templatetags/landing_page_tags.py b/bookwyrm/templatetags/landing_page_tags.py
new file mode 100644
index 000000000..e7d943603
--- /dev/null
+++ b/bookwyrm/templatetags/landing_page_tags.py
@@ -0,0 +1,76 @@
+""" template filters """
+from django import template
+from django.db.models import Avg, StdDev, Count, F, Q
+
+from bookwyrm import models
+
+register = template.Library()
+
+
+@register.simple_tag(takes_context=False)
+def get_book_superlatives():
+ """get book stats for the about page"""
+ total_ratings = models.Review.objects.filter(local=True, deleted=False).count()
+ data = {}
+ data["top_rated"] = (
+ models.Work.objects.annotate(
+ rating=Avg(
+ "editions__review__rating",
+ filter=Q(editions__review__local=True, editions__review__deleted=False),
+ ),
+ rating_count=Count(
+ "editions__review",
+ filter=Q(editions__review__local=True, editions__review__deleted=False),
+ ),
+ )
+ .annotate(weighted=F("rating") * F("rating_count") / total_ratings)
+ .filter(rating__gt=4, weighted__gt=0)
+ .order_by("-weighted")
+ .first()
+ )
+
+ data["controversial"] = (
+ models.Work.objects.annotate(
+ deviation=StdDev(
+ "editions__review__rating",
+ filter=Q(editions__review__local=True, editions__review__deleted=False),
+ ),
+ rating_count=Count(
+ "editions__review",
+ filter=Q(editions__review__local=True, editions__review__deleted=False),
+ ),
+ )
+ .annotate(weighted=F("deviation") * F("rating_count") / total_ratings)
+ .filter(weighted__gt=0)
+ .order_by("-weighted")
+ .first()
+ )
+
+ data["wanted"] = (
+ models.Work.objects.annotate(
+ shelf_count=Count(
+ "editions__shelves", filter=Q(editions__shelves__identifier="to-read")
+ )
+ )
+ .order_by("-shelf_count")
+ .first()
+ )
+ return data
+
+
+@register.simple_tag(takes_context=False)
+def get_landing_books():
+ """list of books for the landing page"""
+ return list(
+ set(
+ models.Edition.objects.filter(
+ review__published_date__isnull=False,
+ review__deleted=False,
+ review__user__local=True,
+ review__privacy__in=["public", "unlisted"],
+ )
+ .exclude(cover__exact="")
+ .distinct()
+ .order_by("-review__published_date")[:6]
+ )
+ )
diff --git a/bookwyrm/templatetags/notification_page_tags.py b/bookwyrm/templatetags/notification_page_tags.py
new file mode 100644
index 000000000..28fa2afb5
--- /dev/null
+++ b/bookwyrm/templatetags/notification_page_tags.py
@@ -0,0 +1,14 @@
+""" tags used on the feed pages """
+from django import template
+from bookwyrm.templatetags.feed_page_tags import load_subclass
+
+
+register = template.Library()
+
+
+@register.simple_tag(takes_context=False)
+def related_status(notification):
+ """for notifications"""
+ if not notification.related_status:
+ return None
+ return load_subclass(notification.related_status)
diff --git a/bookwyrm/templatetags/rating_tags.py b/bookwyrm/templatetags/rating_tags.py
new file mode 100644
index 000000000..670599e25
--- /dev/null
+++ b/bookwyrm/templatetags/rating_tags.py
@@ -0,0 +1,42 @@
+""" template filters """
+from django import template
+from django.db.models import Avg
+
+from bookwyrm import models
+from bookwyrm.utils import cache
+
+
+register = template.Library()
+
+
+@register.filter(name="rating")
+def get_rating(book, user):
+ """get the overall rating of a book"""
+ return cache.get_or_set(
+ f"book-rating-{book.parent_work.id}-{user.id}",
+ lambda u, b: models.Review.privacy_filter(u)
+ .filter(book__parent_work__editions=b, rating__gt=0)
+ .aggregate(Avg("rating"))["rating__avg"]
+ or 0,
+ user,
+ book,
+ timeout=15552000,
+ )
+
+
+@register.filter(name="user_rating")
+def get_user_rating(book, user):
+ """get a user's rating of a book"""
+ rating = (
+ models.Review.objects.filter(
+ user=user,
+ book=book,
+ rating__isnull=False,
+ deleted=False,
+ )
+ .order_by("-published_date")
+ .first()
+ )
+ if rating:
+ return rating.rating
+ return 0
diff --git a/bookwyrm/templatetags/shelf_tags.py b/bookwyrm/templatetags/shelf_tags.py
new file mode 100644
index 000000000..7aef638f4
--- /dev/null
+++ b/bookwyrm/templatetags/shelf_tags.py
@@ -0,0 +1,71 @@
+""" Filters and tags related to shelving books """
+from django import template
+
+from bookwyrm import models
+from bookwyrm.utils import cache
+
+
+register = template.Library()
+
+
+@register.filter(name="is_book_on_shelf")
+def get_is_book_on_shelf(book, shelf):
+ """is a book on a shelf"""
+ return cache.get_or_set(
+ f"book-on-shelf-{book.id}-{shelf.id}",
+ lambda b, s: s.books.filter(id=b.id).exists(),
+ book,
+ shelf,
+ timeout=15552000,
+ )
+
+
+@register.filter(name="next_shelf")
+def get_next_shelf(current_shelf):
+ """shelf you'd use to update reading progress"""
+ if current_shelf == "to-read":
+ return "reading"
+ if current_shelf == "reading":
+ return "read"
+ if current_shelf == "read":
+ return "complete"
+ return "to-read"
+
+
+@register.simple_tag(takes_context=True)
+def active_shelf(context, book):
+ """check what shelf a user has a book on, if any"""
+ user = context["request"].user
+ return (
+ cache.get_or_set(
+ f"active_shelf-{user.id}-{book.id}",
+ lambda u, b: (
+ models.ShelfBook.objects.filter(
+ shelf__user=u,
+ book__parent_work__editions=b,
+ ).first()
+ or False
+ ),
+ user,
+ book,
+ timeout=15552000,
+ )
+ or {"book": book}
+ )
+
+
+@register.simple_tag(takes_context=False)
+def latest_read_through(book, user):
+ """the most recent read activity"""
+ return cache.get_or_set(
+ f"latest_read_through-{user.id}-{book.id}",
+ lambda u, b: (
+ models.ReadThrough.objects.filter(user=u, book=b, is_active=True)
+ .order_by("-start_date")
+ .first()
+ or False
+ ),
+ user,
+ book,
+ timeout=15552000,
+ )
diff --git a/bookwyrm/templatetags/user_page_tags.py b/bookwyrm/templatetags/user_page_tags.py
new file mode 100644
index 000000000..b3a82597e
--- /dev/null
+++ b/bookwyrm/templatetags/user_page_tags.py
@@ -0,0 +1,14 @@
+""" template filters """
+from django import template
+
+
+register = template.Library()
+
+
+@register.simple_tag(takes_context=True)
+def mutuals_count(context, user):
+ """how many users that you follow, follow them"""
+ viewer = context["request"].user
+ if not viewer.is_authenticated:
+ return None
+ return user.followers.filter(followers=viewer).count()
diff --git a/bookwyrm/tests/templatetags/test_book_display_tags.py b/bookwyrm/tests/templatetags/test_book_display_tags.py
new file mode 100644
index 000000000..54ae8806b
--- /dev/null
+++ b/bookwyrm/tests/templatetags/test_book_display_tags.py
@@ -0,0 +1,62 @@
+""" style fixes and lookups for templates """
+from unittest.mock import patch
+
+from django.test import TestCase
+
+from bookwyrm import models
+from bookwyrm.templatetags import book_display_tags
+
+
+@patch("bookwyrm.activitystreams.add_status_task.delay")
+@patch("bookwyrm.activitystreams.remove_status_task.delay")
+@patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async")
+class BookDisplayTags(TestCase):
+ """lotta different things here"""
+
+ def setUp(self):
+ """create some filler objects"""
+ with patch("bookwyrm.suggested_users.rerank_suggestions_task.delay"), patch(
+ "bookwyrm.activitystreams.populate_stream_task.delay"
+ ), patch("bookwyrm.lists_stream.populate_lists_task.delay"):
+ self.user = models.User.objects.create_user(
+ "mouse@example.com",
+ "mouse@mouse.mouse",
+ "mouseword",
+ local=True,
+ localname="mouse",
+ )
+ self.book = models.Edition.objects.create(title="Test Book")
+
+ def test_get_book_description(self, *_):
+ """grab it from the edition or the parent"""
+ work = models.Work.objects.create(title="Test Work")
+ self.book.parent_work = work
+ self.book.save()
+
+ self.assertIsNone(book_display_tags.get_book_description(self.book))
+
+ work.description = "hi"
+ work.save()
+ self.assertEqual(book_display_tags.get_book_description(self.book), "hi")
+
+ self.book.description = "hello"
+ self.book.save()
+ self.assertEqual(book_display_tags.get_book_description(self.book), "hello")
+
+ def test_get_book_file_links(self, *_):
+ """load approved links"""
+ link = models.FileLink.objects.create(
+ book=self.book,
+ url="https://web.site/hello",
+ )
+ links = book_display_tags.get_book_file_links(self.book)
+ # the link is pending
+ self.assertFalse(links.exists())
+
+ domain = link.domain
+ domain.status = "approved"
+ domain.save()
+
+ links = book_display_tags.get_book_file_links(self.book)
+ self.assertTrue(links.exists())
+ self.assertEqual(links[0], link)
diff --git a/bookwyrm/tests/templatetags/test_bookwyrm_tags.py b/bookwyrm/tests/templatetags/test_bookwyrm_tags.py
deleted file mode 100644
index 7b8d199de..000000000
--- a/bookwyrm/tests/templatetags/test_bookwyrm_tags.py
+++ /dev/null
@@ -1,101 +0,0 @@
-""" style fixes and lookups for templates """
-from unittest.mock import patch
-
-from django.test import TestCase
-
-from bookwyrm import models
-from bookwyrm.templatetags import bookwyrm_tags
-
-
-@patch("bookwyrm.activitystreams.add_status_task.delay")
-@patch("bookwyrm.activitystreams.remove_status_task.delay")
-class BookWyrmTags(TestCase):
- """lotta different things here"""
-
- def setUp(self):
- """create some filler objects"""
- with patch("bookwyrm.suggested_users.rerank_suggestions_task.delay"), patch(
- "bookwyrm.activitystreams.populate_stream_task.delay"
- ), patch("bookwyrm.lists_stream.populate_lists_task.delay"):
- self.user = models.User.objects.create_user(
- "mouse@example.com",
- "mouse@mouse.mouse",
- "mouseword",
- local=True,
- localname="mouse",
- )
- with patch("bookwyrm.models.user.set_remote_server.delay"):
- self.remote_user = models.User.objects.create_user(
- "rat",
- "rat@rat.rat",
- "ratword",
- remote_id="http://example.com/rat",
- local=False,
- )
- self.book = models.Edition.objects.create(title="Test Book")
-
- def test_get_user_rating(self, *_):
- """get a user's most recent rating of a book"""
- with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
- models.Review.objects.create(user=self.user, book=self.book, rating=3)
- self.assertEqual(bookwyrm_tags.get_user_rating(self.book, self.user), 3)
-
- def test_get_user_rating_doesnt_exist(self, *_):
- """there is no rating available"""
- self.assertEqual(bookwyrm_tags.get_user_rating(self.book, self.user), 0)
-
- def test_get_book_description(self, *_):
- """grab it from the edition or the parent"""
- work = models.Work.objects.create(title="Test Work")
- self.book.parent_work = work
- self.book.save()
-
- self.assertIsNone(bookwyrm_tags.get_book_description(self.book))
-
- work.description = "hi"
- work.save()
- self.assertEqual(bookwyrm_tags.get_book_description(self.book), "hi")
-
- self.book.description = "hello"
- self.book.save()
- self.assertEqual(bookwyrm_tags.get_book_description(self.book), "hello")
-
- def test_get_next_shelf(self, *_):
- """self progress helper"""
- self.assertEqual(bookwyrm_tags.get_next_shelf("to-read"), "reading")
- self.assertEqual(bookwyrm_tags.get_next_shelf("reading"), "read")
- self.assertEqual(bookwyrm_tags.get_next_shelf("read"), "complete")
- self.assertEqual(bookwyrm_tags.get_next_shelf("blooooga"), "to-read")
-
- @patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async")
- def test_load_subclass(self, *_):
- """get a status' real type"""
- review = models.Review.objects.create(user=self.user, book=self.book, rating=3)
- status = models.Status.objects.get(id=review.id)
- self.assertIsInstance(status, models.Status)
- self.assertIsInstance(bookwyrm_tags.load_subclass(status), models.Review)
-
- quote = models.Quotation.objects.create(
- user=self.user, book=self.book, content="hi"
- )
- status = models.Status.objects.get(id=quote.id)
- self.assertIsInstance(status, models.Status)
- self.assertIsInstance(bookwyrm_tags.load_subclass(status), models.Quotation)
-
- comment = models.Comment.objects.create(
- user=self.user, book=self.book, content="hi"
- )
- status = models.Status.objects.get(id=comment.id)
- self.assertIsInstance(status, models.Status)
- self.assertIsInstance(bookwyrm_tags.load_subclass(status), models.Comment)
-
- def test_related_status(self, *_):
- """gets the subclass model for a notification status"""
- with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
- status = models.Status.objects.create(content="hi", user=self.user)
- notification = models.Notification.objects.create(
- user=self.user, notification_type="MENTION", related_status=status
- )
-
- result = bookwyrm_tags.related_status(notification)
- self.assertIsInstance(result, models.Status)
diff --git a/bookwyrm/tests/templatetags/test_feed_page_tags.py b/bookwyrm/tests/templatetags/test_feed_page_tags.py
new file mode 100644
index 000000000..5e5dc2357
--- /dev/null
+++ b/bookwyrm/tests/templatetags/test_feed_page_tags.py
@@ -0,0 +1,49 @@
+""" style fixes and lookups for templates """
+from unittest.mock import patch
+
+from django.test import TestCase
+
+from bookwyrm import models
+from bookwyrm.templatetags import feed_page_tags
+
+
+@patch("bookwyrm.activitystreams.add_status_task.delay")
+@patch("bookwyrm.activitystreams.remove_status_task.delay")
+class FeedPageTags(TestCase):
+ """lotta different things here"""
+
+ def setUp(self):
+ """create some filler objects"""
+ with patch("bookwyrm.suggested_users.rerank_suggestions_task.delay"), patch(
+ "bookwyrm.activitystreams.populate_stream_task.delay"
+ ), patch("bookwyrm.lists_stream.populate_lists_task.delay"):
+ self.user = models.User.objects.create_user(
+ "mouse@example.com",
+ "mouse@mouse.mouse",
+ "mouseword",
+ local=True,
+ localname="mouse",
+ )
+ self.book = models.Edition.objects.create(title="Test Book")
+
+ @patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async")
+ def test_load_subclass(self, *_):
+ """get a status' real type"""
+ review = models.Review.objects.create(user=self.user, book=self.book, rating=3)
+ status = models.Status.objects.get(id=review.id)
+ self.assertIsInstance(status, models.Status)
+ self.assertIsInstance(feed_page_tags.load_subclass(status), models.Review)
+
+ quote = models.Quotation.objects.create(
+ user=self.user, book=self.book, content="hi"
+ )
+ status = models.Status.objects.get(id=quote.id)
+ self.assertIsInstance(status, models.Status)
+ self.assertIsInstance(feed_page_tags.load_subclass(status), models.Quotation)
+
+ comment = models.Comment.objects.create(
+ user=self.user, book=self.book, content="hi"
+ )
+ status = models.Status.objects.get(id=comment.id)
+ self.assertIsInstance(status, models.Status)
+ self.assertIsInstance(feed_page_tags.load_subclass(status), models.Comment)
diff --git a/bookwyrm/tests/templatetags/test_notification_page_tags.py b/bookwyrm/tests/templatetags/test_notification_page_tags.py
new file mode 100644
index 000000000..3c92181b2
--- /dev/null
+++ b/bookwyrm/tests/templatetags/test_notification_page_tags.py
@@ -0,0 +1,37 @@
+""" style fixes and lookups for templates """
+from unittest.mock import patch
+
+from django.test import TestCase
+
+from bookwyrm import models
+from bookwyrm.templatetags import notification_page_tags
+
+
+@patch("bookwyrm.activitystreams.add_status_task.delay")
+@patch("bookwyrm.activitystreams.remove_status_task.delay")
+class NotificationPageTags(TestCase):
+ """lotta different things here"""
+
+ def setUp(self):
+ """create some filler objects"""
+ with patch("bookwyrm.suggested_users.rerank_suggestions_task.delay"), patch(
+ "bookwyrm.activitystreams.populate_stream_task.delay"
+ ), patch("bookwyrm.lists_stream.populate_lists_task.delay"):
+ self.user = models.User.objects.create_user(
+ "mouse@example.com",
+ "mouse@mouse.mouse",
+ "mouseword",
+ local=True,
+ localname="mouse",
+ )
+
+ def test_related_status(self, *_):
+ """gets the subclass model for a notification status"""
+ with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
+ status = models.Status.objects.create(content="hi", user=self.user)
+ notification = models.Notification.objects.create(
+ user=self.user, notification_type="MENTION", related_status=status
+ )
+
+ result = notification_page_tags.related_status(notification)
+ self.assertIsInstance(result, models.Status)
diff --git a/bookwyrm/tests/templatetags/test_rating_tags.py b/bookwyrm/tests/templatetags/test_rating_tags.py
new file mode 100644
index 000000000..c00f20726
--- /dev/null
+++ b/bookwyrm/tests/templatetags/test_rating_tags.py
@@ -0,0 +1,80 @@
+""" Gettings book ratings """
+from unittest.mock import patch
+
+from django.test import TestCase
+
+from bookwyrm import models
+from bookwyrm.templatetags import rating_tags
+
+
+@patch("bookwyrm.activitystreams.add_status_task.delay")
+@patch("bookwyrm.activitystreams.remove_status_task.delay")
+class RatingTags(TestCase):
+ """lotta different things here"""
+
+ def setUp(self):
+ """create some filler objects"""
+ with patch("bookwyrm.suggested_users.rerank_suggestions_task.delay"), patch(
+ "bookwyrm.activitystreams.populate_stream_task.delay"
+ ), patch("bookwyrm.lists_stream.populate_lists_task.delay"):
+ self.local_user = models.User.objects.create_user(
+ "mouse@example.com",
+ "mouse@mouse.mouse",
+ "mouseword",
+ local=True,
+ localname="mouse",
+ )
+ with patch("bookwyrm.models.user.set_remote_server.delay"):
+ self.remote_user = models.User.objects.create_user(
+ "rat",
+ "rat@rat.rat",
+ "ratword",
+ remote_id="http://example.com/rat",
+ local=False,
+ )
+ work = models.Work.objects.create(title="Work title")
+ self.book = models.Edition.objects.create(
+ title="Test Book",
+ parent_work=work,
+ )
+
+ @patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async")
+ def test_get_rating(self, *_):
+ """privacy filtered rating"""
+ # follows-only: not included
+ models.ReviewRating.objects.create(
+ user=self.remote_user,
+ rating=5,
+ book=self.book,
+ privacy="followers",
+ )
+ self.assertEqual(rating_tags.get_rating(self.book, self.local_user), 0)
+
+ # public: included
+ models.ReviewRating.objects.create(
+ user=self.remote_user,
+ rating=5,
+ book=self.book,
+ privacy="public",
+ )
+ self.assertEqual(rating_tags.get_rating(self.book, self.local_user), 5)
+
+ # rating unset: not included
+ models.Review.objects.create(
+ name="blah",
+ user=self.local_user,
+ rating=0,
+ book=self.book,
+ privacy="public",
+ )
+ self.assertEqual(rating_tags.get_rating(self.book, self.local_user), 5)
+
+ def test_get_user_rating(self, *_):
+ """get a user's most recent rating of a book"""
+ with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
+ models.Review.objects.create(user=self.local_user, book=self.book, rating=3)
+ self.assertEqual(rating_tags.get_user_rating(self.book, self.local_user), 3)
+
+ def test_get_user_rating_doesnt_exist(self, *_):
+ """there is no rating available"""
+ self.assertEqual(rating_tags.get_user_rating(self.book, self.local_user), 0)
diff --git a/bookwyrm/tests/templatetags/test_shelf_tags.py b/bookwyrm/tests/templatetags/test_shelf_tags.py
new file mode 100644
index 000000000..5a88604dd
--- /dev/null
+++ b/bookwyrm/tests/templatetags/test_shelf_tags.py
@@ -0,0 +1,70 @@
+""" style fixes and lookups for templates """
+from unittest.mock import patch
+
+from django.test import TestCase
+from django.test.client import RequestFactory
+
+from bookwyrm import models
+from bookwyrm.templatetags import shelf_tags
+
+
+@patch("bookwyrm.activitystreams.add_status_task.delay")
+@patch("bookwyrm.activitystreams.remove_status_task.delay")
+@patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async")
+@patch("bookwyrm.activitystreams.add_book_statuses_task.delay")
+class ShelfTags(TestCase):
+ """lotta different things here"""
+
+ def setUp(self):
+ """create some filler objects"""
+ self.factory = RequestFactory()
+ with patch("bookwyrm.suggested_users.rerank_suggestions_task.delay"), patch(
+ "bookwyrm.activitystreams.populate_stream_task.delay"
+ ), patch("bookwyrm.lists_stream.populate_lists_task.delay"):
+ self.local_user = models.User.objects.create_user(
+ "mouse@example.com",
+ "mouse@mouse.mouse",
+ "mouseword",
+ local=True,
+ localname="mouse",
+ )
+ with patch("bookwyrm.models.user.set_remote_server.delay"):
+ self.remote_user = models.User.objects.create_user(
+ "rat",
+ "rat@rat.rat",
+ "ratword",
+ remote_id="http://example.com/rat",
+ local=False,
+ )
+ self.book = models.Edition.objects.create(
+ title="Test Book",
+ parent_work=models.Work.objects.create(title="Test work"),
+ )
+
+ def test_get_is_book_on_shelf(self, *_):
+ """check if a book is on a shelf"""
+ shelf = self.local_user.shelf_set.first()
+ self.assertFalse(shelf_tags.get_is_book_on_shelf(self.book, shelf))
+ models.ShelfBook.objects.create(
+ shelf=shelf, book=self.book, user=self.local_user
+ )
+ self.assertTrue(shelf_tags.get_is_book_on_shelf(self.book, shelf))
+
+ def test_get_next_shelf(self, *_):
+ """self progress helper"""
+ self.assertEqual(shelf_tags.get_next_shelf("to-read"), "reading")
+ self.assertEqual(shelf_tags.get_next_shelf("reading"), "read")
+ self.assertEqual(shelf_tags.get_next_shelf("read"), "complete")
+ self.assertEqual(shelf_tags.get_next_shelf("blooooga"), "to-read")
+
+ def test_active_shelf(self, *_):
+ """get the shelf a book is on"""
+ shelf = self.local_user.shelf_set.first()
+ request = self.factory.get("")
+ request.user = self.local_user
+ context = {"request": request}
+ self.assertIsInstance(shelf_tags.active_shelf(context, self.book), dict)
+ models.ShelfBook.objects.create(
+ shelf=shelf, book=self.book, user=self.local_user
+ )
+ self.assertEqual(shelf_tags.active_shelf(context, self.book).shelf, shelf)
diff --git a/bookwyrm/tests/templatetags/test_status_display.py b/bookwyrm/tests/templatetags/test_status_display.py
index 50c5571e2..af2fc9420 100644
--- a/bookwyrm/tests/templatetags/test_status_display.py
+++ b/bookwyrm/tests/templatetags/test_status_display.py
@@ -1,4 +1,5 @@
""" style fixes and lookups for templates """
+from datetime import datetime
from unittest.mock import patch
from django.test import TestCase
@@ -35,6 +36,12 @@ class StatusDisplayTags(TestCase):
)
self.book = models.Edition.objects.create(title="Test Book")
+ def test_get_mentions(self, *_):
+ """list of people mentioned"""
+ status = models.Status.objects.create(content="hi", user=self.remote_user)
+ result = status_display.get_mentions(status, self.user)
+ self.assertEqual(result, "@rat@example.com ")
+
@patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async")
def test_get_replies(self, *_):
"""direct replies to a status"""
@@ -83,8 +90,16 @@ class StatusDisplayTags(TestCase):
self.assertIsInstance(boosted, models.Review)
self.assertEqual(boosted, status)
- def test_get_mentions(self, *_):
- """list of people mentioned"""
- status = models.Status.objects.create(content="hi", user=self.remote_user)
- result = status_display.get_mentions(status, self.user)
- self.assertEqual(result, "@rat@example.com ")
+ def test_get_published_date(self, *_):
+ """date formatting"""
+ date = datetime(2020, 1, 1, 0, 0, tzinfo=timezone.utc)
+ with patch("django.utils.timezone.now") as timezone_mock:
+ timezone_mock.return_value = datetime(2022, 1, 1, 0, 0, tzinfo=timezone.utc)
+ result = status_display.get_published_date(date)
+ self.assertEqual(result, "Jan. 1, 2020")
+
+ date = datetime(2022, 1, 1, 0, 0, tzinfo=timezone.utc)
+ with patch("django.utils.timezone.now") as timezone_mock:
+ timezone_mock.return_value = datetime(2022, 1, 8, 0, 0, tzinfo=timezone.utc)
+ result = status_display.get_published_date(date)
+ self.assertEqual(result, "Jan 1")
diff --git a/bookwyrm/tests/templatetags/test_utilities.py b/bookwyrm/tests/templatetags/test_utilities.py
index e41cd21ad..0136ca8cd 100644
--- a/bookwyrm/tests/templatetags/test_utilities.py
+++ b/bookwyrm/tests/templatetags/test_utilities.py
@@ -35,6 +35,15 @@ class UtilitiesTags(TestCase):
)
self.book = models.Edition.objects.create(title="Test Book")
+ def test_get_uuid(self, *_):
+ """uuid functionality"""
+ uuid = utilities.get_uuid("hi")
+ self.assertTrue(re.match(r"hi[A-Za-z0-9\-]", uuid))
+
+ def test_join(self, *_):
+ """concats things with underscores"""
+ self.assertEqual(utilities.join("hi", 5, "blah", 0.75), "hi_5_blah_0.75")
+
def test_get_user_identifer_local(self, *_):
"""fall back to the simplest uid available"""
self.assertNotEqual(self.user.username, self.user.localname)
@@ -46,11 +55,6 @@ class UtilitiesTags(TestCase):
utilities.get_user_identifier(self.remote_user), "rat@example.com"
)
- def test_get_uuid(self, *_):
- """uuid functionality"""
- uuid = utilities.get_uuid("hi")
- self.assertTrue(re.match(r"hi[A-Za-z0-9\-]", uuid))
-
def test_get_title(self, *_):
"""the title of a book"""
self.assertEqual(utilities.get_title(None), "")
diff --git a/bookwyrm/tests/views/shelf/test_shelf.py b/bookwyrm/tests/views/shelf/test_shelf.py
index 4a74ffb62..9aec632f7 100644
--- a/bookwyrm/tests/views/shelf/test_shelf.py
+++ b/bookwyrm/tests/views/shelf/test_shelf.py
@@ -51,6 +51,11 @@ class ShelfViews(TestCase):
def test_shelf_page_all_books(self, *_):
"""there are so many views, this just makes sure it LOADS"""
+ models.ShelfBook.objects.create(
+ book=self.book,
+ shelf=self.shelf,
+ user=self.local_user,
+ )
view = views.Shelf.as_view()
request = self.factory.get("")
request.user = self.local_user
@@ -61,6 +66,41 @@ class ShelfViews(TestCase):
validate_html(result.render())
self.assertEqual(result.status_code, 200)
+ def test_shelf_page_all_books_empty(self, *_):
+ """No books shelved"""
+ view = views.Shelf.as_view()
+ request = self.factory.get("")
+ request.user = self.local_user
+ with patch("bookwyrm.views.shelf.shelf.is_api_request") as is_api:
+ is_api.return_value = False
+ result = view(request, self.local_user.username)
+ self.assertIsInstance(result, TemplateResponse)
+ validate_html(result.render())
+ self.assertEqual(result.status_code, 200)
+
+ def test_shelf_page_all_books_avoid_duplicates(self, *_):
+ """Make sure books aren't showing up twice on the all shelves view"""
+ models.ShelfBook.objects.create(
+ book=self.book,
+ shelf=self.shelf,
+ user=self.local_user,
+ )
+ models.ShelfBook.objects.create(
+ book=self.book,
+ shelf=self.local_user.shelf_set.first(),
+ user=self.local_user,
+ )
+ view = views.Shelf.as_view()
+ request = self.factory.get("")
+ request.user = self.local_user
+ with patch("bookwyrm.views.shelf.shelf.is_api_request") as is_api:
+ is_api.return_value = False
+ result = view(request, self.local_user.username)
+ self.assertEqual(result.context_data["books"].object_list.count(), 1)
+ self.assertIsInstance(result, TemplateResponse)
+ validate_html(result.render())
+ self.assertEqual(result.status_code, 200)
+
def test_shelf_page_all_books_json(self, *_):
"""there is no json view here"""
view = views.Shelf.as_view()
diff --git a/bookwyrm/views/author.py b/bookwyrm/views/author.py
index 9bc95b79d..3310fef0e 100644
--- a/bookwyrm/views/author.py
+++ b/bookwyrm/views/author.py
@@ -1,7 +1,6 @@
""" the good people stuff! the authors! """
from django.contrib.auth.decorators import login_required, permission_required
from django.core.paginator import Paginator
-from django.db.models import OuterRef, Subquery, F, Q
from django.shortcuts import get_object_or_404, redirect
from django.template.response import TemplateResponse
from django.utils.decorators import method_decorator
@@ -12,7 +11,6 @@ from bookwyrm import forms, models
from bookwyrm.activitypub import ActivitypubResponse
from bookwyrm.connectors import connector_manager
from bookwyrm.settings import PAGE_LENGTH
-from bookwyrm.utils import cache
from bookwyrm.views.helpers import is_api_request
@@ -27,28 +25,9 @@ class Author(View):
if is_api_request(request):
return ActivitypubResponse(author.to_activity())
- default_editions = models.Edition.objects.filter(
- parent_work=OuterRef("parent_work")
- ).order_by("-edition_rank")
-
- book_ids = cache.get_or_set(
- f"author-books-{author.id}",
- lambda a: models.Edition.objects.filter(
- Q(authors=a) | Q(parent_work__authors=a)
- )
- .annotate(default_id=Subquery(default_editions.values("id")[:1]))
- .filter(default_id=F("id"))
- .distinct()
- .values_list("id", flat=True),
- author,
- timeout=15552000,
- )
-
- books = (
- models.Edition.objects.filter(id__in=book_ids)
- .order_by("-published_date", "-first_published_date", "-created_date")
- .prefetch_related("authors")
- )
+ books = models.Work.objects.filter(
+ authors=author, editions__authors=author
+ ).distinct()
paginated = Paginator(books, PAGE_LENGTH)
page = paginated.get_page(request.GET.get("page"))
diff --git a/bookwyrm/views/shelf/shelf.py b/bookwyrm/views/shelf/shelf.py
index 0662f302d..378b346b3 100644
--- a/bookwyrm/views/shelf/shelf.py
+++ b/bookwyrm/views/shelf/shelf.py
@@ -1,7 +1,7 @@
""" shelf views """
from collections import namedtuple
-from django.db.models import OuterRef, Subquery, F
+from django.db.models import OuterRef, Subquery, F, Max
from django.contrib.auth.decorators import login_required
from django.core.paginator import Paginator
from django.http import HttpResponseBadRequest
@@ -72,11 +72,7 @@ class Shelf(View):
"start_date"
)
- if shelf_identifier:
- books = books.annotate(shelved_date=F("shelfbook__shelved_date"))
- else:
- # sorting by shelved date will cause duplicates in the "all books" view
- books = books.annotate(shelved_date=F("updated_date"))
+ books = books.annotate(shelved_date=Max("shelfbook__shelved_date"))
books = books.annotate(
rating=Subquery(reviews.values("rating")[:1]),
start_date=Subquery(reading.values("start_date")[:1]),
diff --git a/locale/de_DE/LC_MESSAGES/django.po b/locale/de_DE/LC_MESSAGES/django.po
index a82cafa13..174a6165f 100644
--- a/locale/de_DE/LC_MESSAGES/django.po
+++ b/locale/de_DE/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-01-17 16:05+0000\n"
-"PO-Revision-Date: 2022-01-17 17:10\n"
+"POT-Creation-Date: 2022-01-17 19:26+0000\n"
+"PO-Revision-Date: 2022-01-20 08:20\n"
"Last-Translator: Mouse Reeve
\n"
"Language-Team: German\n"
"Language: de\n"
@@ -74,7 +74,7 @@ msgstr "Absteigend"
#: bookwyrm/forms.py:505
msgid "Reading finish date cannot be before start date."
-msgstr "Du kannst das Buch nicht abgeschlossen haben bevor du es begonnen hast."
+msgstr "Enddatum darf nicht vor dem Startdatum liegen."
#: bookwyrm/importers/importer.py:145 bookwyrm/importers/importer.py:167
msgid "Error loading book"
@@ -84,7 +84,7 @@ msgstr "Fehler beim Laden des Buches"
msgid "Could not find a match for book"
msgstr "Keine Übereinstimmung für das Buch gefunden"
-#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:62
+#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending"
@@ -132,7 +132,7 @@ msgstr "Taschenbuch"
msgid "Federated"
msgstr "Föderiert"
-#: bookwyrm/models/federated_server.py:12 bookwyrm/models/link.py:61
+#: bookwyrm/models/federated_server.py:12 bookwyrm/models/link.py:71
#: bookwyrm/templates/settings/federation/edit_instance.html:44
#: bookwyrm/templates/settings/federation/instance.html:10
#: bookwyrm/templates/settings/federation/instance_list.html:23
@@ -191,10 +191,22 @@ msgstr "Follower*innen"
msgid "Private"
msgstr "Privat"
-#: bookwyrm/models/link.py:60
+#: bookwyrm/models/link.py:51
+msgid "Free"
+msgstr "Kostenlos"
+
+#: bookwyrm/models/link.py:52
+msgid "Purchasable"
+msgstr "Käuflich erhältlich"
+
+#: bookwyrm/models/link.py:53
+msgid "Available for loan"
+msgstr "Zum Liehen erhältlich"
+
+#: bookwyrm/models/link.py:70
#: bookwyrm/templates/settings/link_domains/link_domains.html:23
msgid "Approved"
-msgstr ""
+msgstr "Bestätigt"
#: bookwyrm/models/user.py:32 bookwyrm/templates/book/book.html:272
msgid "Reviews"
@@ -210,7 +222,7 @@ msgstr "Zitate"
#: bookwyrm/models/user.py:35
msgid "Everything else"
-msgstr "Alles Andere"
+msgstr "Alles andere"
#: bookwyrm/settings.py:121
msgid "Home Timeline"
@@ -248,7 +260,7 @@ msgstr "Galego (Galizisch)"
#: bookwyrm/settings.py:200
msgid "Italiano (Italian)"
-msgstr ""
+msgstr "Italiano (Italienisch)"
#: bookwyrm/settings.py:201
msgid "Français (French)"
@@ -256,19 +268,19 @@ msgstr "Français (Französisch)"
#: bookwyrm/settings.py:202
msgid "Lietuvių (Lithuanian)"
-msgstr "Litauisch (Lithuanian)"
+msgstr "Lietuvių (Litauisch)"
#: bookwyrm/settings.py:203
msgid "Norsk (Norwegian)"
-msgstr ""
+msgstr "Norsk (Norwegisch)"
#: bookwyrm/settings.py:204
msgid "Português do Brasil (Brazilian Portuguese)"
-msgstr "Portugiesisch (Brasilien)"
+msgstr "Português do Brasil (brasilianisches Portugiesisch)"
#: bookwyrm/settings.py:205
msgid "Português Europeu (European Portuguese)"
-msgstr "Portugiesisch (Portugal)"
+msgstr "Português Europeu (Portugiesisch)"
#: bookwyrm/settings.py:206
msgid "简体中文 (Simplified Chinese)"
@@ -301,7 +313,7 @@ msgstr "Etwas ist schief gelaufen! Tut uns leid."
#: bookwyrm/templates/about/about.html:9
#: bookwyrm/templates/about/layout.html:35
msgid "About"
-msgstr "Allgemein"
+msgstr "Über"
#: bookwyrm/templates/about/about.html:18
#: bookwyrm/templates/get_started/layout.html:20
@@ -312,7 +324,7 @@ msgstr "Willkommen auf %(site_name)s!"
#: bookwyrm/templates/about/about.html:22
#, python-format
msgid "%(site_name)s is part of BookWyrm, a network of independent, self-directed communities for readers. While you can interact seamlessly with users anywhere in the BookWyrm network, this community is unique."
-msgstr "%(site_name)s ist Teil von BookWyrm, ein Netzwerk unabhängiger, selbst verwalteter Communities von Bücherfreunden. Obwohl du dich nahtlos mit anderen Benutzern irgendwo im Netzwerk von BookWyrm austauschen kannst, ist jede Community einzigartig."
+msgstr "%(site_name)s ist Teil von BookWyrm, ein Netzwerk unabhängiger, selbstverwalteter Gemeinschaften für Leser*innen. Obwohl du dich nahtlos mit anderen Benutzer*innen überall im BookWyrm-Netzwerk austauschen kannst, ist diese Gemeinschaft einzigartig."
#: bookwyrm/templates/about/about.html:39
#, python-format
@@ -331,7 +343,7 @@ msgstr "%(title)s hat die unterschiedlich
#: bookwyrm/templates/about/about.html:88
msgid "Track your reading, talk about books, write reviews, and discover what to read next. Always ad-free, anti-corporate, and community-oriented, BookWyrm is human-scale software, designed to stay small and personal. If you have feature requests, bug reports, or grand dreams, reach out and make yourself heard."
-msgstr ""
+msgstr "Verfolge deine Lektüre, sprich über Bücher, schreibe Besprechungen und entdecke, was Du als Nächstes lesen könntest. BookWyrm ist eine Software im menschlichen Maßstab, die immer übersichtlich, werbefrei, persönlich, und gemeinschaftsorientiert sein wird. Wenn du Feature-Anfragen, Fehlerberichte oder große Träume hast, wende dich an und verschaffe dir Gehör."
#: bookwyrm/templates/about/about.html:95
msgid "Meet your admins"
@@ -343,12 +355,12 @@ msgid "\n"
" %(site_name)s's moderators and administrators keep the site up and running, enforce the code of conduct, and respond when users report spam and bad behavior.\n"
" "
msgstr "\n"
-" die Moderatoren und Administratoren von %(site_name)s halten diese Seite am laufen, setzen die Verhaltensregeln durch und reagieren auf Meldungen über Spam oder schlechtes Benehmen von Nutzer*innen.\n"
+" die Moderator*innen und Administrator*innen von %(site_name)s halten diese Seite in Betrieb, setzen die Verhaltensregeln durch und reagieren auf Meldungen über Spam oder schlechtes Benehmen von Nutzer*innen.\n"
" "
#: bookwyrm/templates/about/about.html:112
msgid "Moderator"
-msgstr "Moderator"
+msgstr "Moderator*in"
#: bookwyrm/templates/about/about.html:114 bookwyrm/templates/layout.html:131
msgid "Admin"
@@ -369,11 +381,11 @@ msgstr "Verhaltenskodex"
#: bookwyrm/templates/about/layout.html:11
msgid "Active users:"
-msgstr "Aktive Nutzer*innen:"
+msgstr "Aktive Benutzer*innen:"
#: bookwyrm/templates/about/layout.html:15
msgid "Statuses posted:"
-msgstr "Veröffentlichte Status:"
+msgstr "Veröffentlichte Statusmeldungen:"
#: bookwyrm/templates/about/layout.html:19
msgid "Software version:"
@@ -405,7 +417,7 @@ msgstr "Rückblick auf %(year)s"
#: bookwyrm/templates/annual_summary/layout.html:47
#, python-format
msgid "%(display_name)s’s year of reading"
-msgstr "%(display_name)s’s Jahr mit Büchern"
+msgstr "Lektürejahr für %(display_name)s"
#: bookwyrm/templates/annual_summary/layout.html:53
msgid "Share this page"
@@ -426,7 +438,7 @@ msgstr "Freigabestatus: öffentlich mit Schlüssel"
#: bookwyrm/templates/annual_summary/layout.html:78
msgid "The page can be seen by anyone with the complete address."
-msgstr "Diese Seite kann jeder sehen, der die vollständige Adresse kennt."
+msgstr "Diese Seite können alle sehen, die die vollständige Adresse kennen."
#: bookwyrm/templates/annual_summary/layout.html:83
msgid "Make page private"
@@ -434,7 +446,7 @@ msgstr "Seite auf privat stellen"
#: bookwyrm/templates/annual_summary/layout.html:89
msgid "Sharing status: private"
-msgstr "Freigabestatus: private"
+msgstr "Freigabestatus: privat"
#: bookwyrm/templates/annual_summary/layout.html:90
msgid "The page is private, only you can see it."
@@ -446,19 +458,19 @@ msgstr "Seite öffentlich machen"
#: bookwyrm/templates/annual_summary/layout.html:99
msgid "When you make your page private, the old key won’t give access to the page anymore. A new key will be created if the page is once again made public."
-msgstr "Wenn du diese Seite auf privat stellen wird der alte Schlüssel ungültig. Ein neuer Schlüssel wird erzeugt solltest du die Seite erneut freigeben."
+msgstr "Wenn du diese Seite auf privat stellst, wird der alte Schlüssel ungültig. Ein neuer Schlüssel wird erzeugt, solltest du die Seite erneut freigeben."
#: bookwyrm/templates/annual_summary/layout.html:112
#, python-format
msgid "Sadly %(display_name)s didn’t finish any books in %(year)s"
-msgstr "Leider hat %(display_name)s keine Bücher in %(year)s zu Ende gelesen"
+msgstr "Leider hat %(display_name)s %(year)s keine Bücher zu Ende gelesen"
#: bookwyrm/templates/annual_summary/layout.html:118
#, python-format
msgid "In %(year)s, %(display_name)s read %(books_total)s book
for a total of %(pages_total)s pages!"
msgid_plural "In %(year)s, %(display_name)s read %(books_total)s books
for a total of %(pages_total)s pages!"
-msgstr[0] "Im Jahr %(year)s las %(display_name)s %(books_total)s Buch
mit %(pages_total)s Seiten!"
-msgstr[1] "Im Jahr %(year)s las %(display_name)s %(books_total)s Bücher
mit zusammen %(pages_total)s Seiten!"
+msgstr[0] "%(year)s hat %(display_name)s %(books_total)s Buch gelesen
insgesamt %(pages_total)s Seiten!"
+msgstr[1] "%(year)s hat %(display_name)s %(books_total)s Bücher gelesen
insgesamt %(pages_total)s Seiten!"
#: bookwyrm/templates/annual_summary/layout.html:124
msgid "That’s great!"
@@ -473,12 +485,12 @@ msgstr "Im Durchschnitt waren das %(pages)s Seiten pro Buch."
#, python-format
msgid "(%(no_page_number)s book doesn’t have pages)"
msgid_plural "(%(no_page_number)s books don’t have pages)"
-msgstr[0] "(zu %(no_page_number)s Buch ist keine Seitenzahl angegeben)"
-msgstr[1] "(zu %(no_page_number)s Büchern ist keine Seitenzahl angegeben)"
+msgstr[0] "(für %(no_page_number)s Buch ist keine Seitenzahl bekannt)"
+msgstr[1] "(für %(no_page_number)s Bücher sind keine Seitenzahlen bekannt)"
#: bookwyrm/templates/annual_summary/layout.html:148
msgid "Their shortest read this year…"
-msgstr "Das am schnellsten gelesene Buch dieses Jahr…"
+msgstr "Das am schnellsten gelesene Buch dieses Jahr …"
#: bookwyrm/templates/annual_summary/layout.html:155
#: bookwyrm/templates/annual_summary/layout.html:176
@@ -498,14 +510,14 @@ msgstr "%(pages)s Seiten"
#: bookwyrm/templates/annual_summary/layout.html:169
msgid "…and the longest"
-msgstr "…und das am längsten"
+msgstr "… und das längste"
#: bookwyrm/templates/annual_summary/layout.html:200
#, python-format
msgid "%(display_name)s set a goal of reading %(goal)s book in %(year)s,
and achieved %(goal_percent)s%% of that goal"
msgid_plural "%(display_name)s set a goal of reading %(goal)s books in %(year)s,
and achieved %(goal_percent)s%% of that goal"
-msgstr[0] "%(display_name)s hat sich als Ziel gesetzt, %(goal)s Buch in %(year)s zu lesen
und hat %(goal_percent)s%% dieses Ziels erreicht"
-msgstr[1] "%(display_name)s hat sich als Ziel gesetzt, %(goal)s Bücher in %(year)s zu lesen
und hat %(goal_percent)s%% dieses Ziels erreicht"
+msgstr[0] "%(display_name)s hat sich als Ziel gesetzt, %(year)s %(goal)s Buch zu lesen
und hat %(goal_percent)s% % dieses Ziels erreicht"
+msgstr[1] "%(display_name)s hat sich als Ziel gesetzt, %(year)s %(goal)s Bücher zu lesen
und hat %(goal_percent)s% % dieses Ziels erreicht"
#: bookwyrm/templates/annual_summary/layout.html:209
msgid "Way to go!"
@@ -515,12 +527,12 @@ msgstr "Weiter so!"
#, python-format
msgid "%(display_name)s left %(ratings_total)s rating,
their average rating is %(rating_average)s"
msgid_plural "%(display_name)s left %(ratings_total)s ratings,
their average rating is %(rating_average)s"
-msgstr[0] "%(display_name)s hat %(ratings_total)s Rezensionen mit einer durchschnittlichen Bewertung von %(rating_average)s geschrieben"
-msgstr[1] "%(display_name)s hat %(ratings_total)s Rezensionen mit einer durchschnittlichen Bewertung von %(rating_average)s geschrieben"
+msgstr[0] "%(display_name)s hat %(ratings_total)s Bewertung geschrieben,
die durchschnittliche Bewertung ist %(rating_average)s"
+msgstr[1] "%(display_name)s hat %(ratings_total)s Bewertungen geschrieben,
die durchschnittliche Bewertung ist %(rating_average)s"
#: bookwyrm/templates/annual_summary/layout.html:238
msgid "Their best rated review"
-msgstr "Ihre oder Seine bestbewertete Rezension"
+msgstr "Am besten bewertete Besprechung"
#: bookwyrm/templates/annual_summary/layout.html:251
#, python-format
@@ -530,7 +542,7 @@ msgstr "Ihre Bewertung: %(rating)s"
#: bookwyrm/templates/annual_summary/layout.html:268
#, python-format
msgid "All the books %(display_name)s read in %(year)s"
-msgstr "Alle Bücher die %(display_name)s im Jahr %(year)s gelesen hat"
+msgstr "Alle Bücher, die %(display_name)s %(year)s gelesen hat"
#: bookwyrm/templates/author/author.html:18
#: bookwyrm/templates/author/author.html:19
@@ -539,7 +551,7 @@ msgstr "Autor*in bearbeiten"
#: bookwyrm/templates/author/author.html:35
msgid "Author details"
-msgstr "Über den Autor"
+msgstr "Autor*in-Details"
#: bookwyrm/templates/author/author.html:39
#: bookwyrm/templates/author/edit_author.html:42
@@ -672,12 +684,13 @@ msgstr "Goodreads-Schlüssel:"
#: bookwyrm/templates/author/edit_author.html:105
msgid "ISNI:"
-msgstr ""
+msgstr "ISNI:"
#: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:193
#: bookwyrm/templates/book/edit/edit_book.html:121
-#: bookwyrm/templates/book/file_links/add_link_modal.html:50
+#: bookwyrm/templates/book/file_links/add_link_modal.html:58
+#: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:30
#: bookwyrm/templates/lists/bookmark_button.html:15
#: bookwyrm/templates/lists/form.html:130
@@ -699,7 +712,7 @@ msgstr "Speichern"
#: bookwyrm/templates/book/cover_add_modal.html:32
#: bookwyrm/templates/book/edit/edit_book.html:123
#: bookwyrm/templates/book/edit/edit_book.html:126
-#: bookwyrm/templates/book/file_links/add_link_modal.html:52
+#: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/verification_modal.html:21
#: bookwyrm/templates/book/sync_modal.html:23
#: bookwyrm/templates/groups/delete_group_modal.html:17
@@ -715,7 +728,7 @@ msgstr "Abbrechen"
#: bookwyrm/templates/author/sync_modal.html:15
#, python-format
msgid "Loading data will connect to %(source_name)s and check for any metadata about this author which aren't present here. Existing metadata will not be overwritten."
-msgstr "Das Nachladen von Daten wird eine Verbindung zu %(source_name)s aufbauen und überprüfen ob Informationen über den Autor ergänzt werden konnten die hier noch nicht vorliegen. Bestehende Informationen werden nicht überschrieben."
+msgstr "Das Laden von Daten wird eine Verbindung zu %(source_name)s aufbauen und überprüfen, ob Autor*in-Informationen vorliegen, die hier noch nicht bekannt sind. Bestehende Informationen werden nicht überschrieben."
#: bookwyrm/templates/author/sync_modal.html:22
#: bookwyrm/templates/book/edit/edit_book.html:108
@@ -732,7 +745,7 @@ msgstr "Buch bearbeiten"
#: bookwyrm/templates/book/book.html:79 bookwyrm/templates/book/book.html:82
msgid "Click to add cover"
-msgstr "Cover durch Klicken hinzufügen"
+msgstr "Titelbild durch klicken hinzufügen"
#: bookwyrm/templates/book/book.html:88
msgid "Failed to load cover"
@@ -740,7 +753,7 @@ msgstr "Fehler beim Laden des Titelbilds"
#: bookwyrm/templates/book/book.html:99
msgid "Click to enlarge"
-msgstr "Zum Vergrößern anklicken"
+msgstr "Zum vergrößern anklicken"
#: bookwyrm/templates/book/book.html:170
#, python-format
@@ -766,7 +779,7 @@ msgstr "%(count)s Ausgaben"
#: bookwyrm/templates/book/book.html:211
msgid "You have shelved this edition in:"
-msgstr "Du hast diese Ausgabe eingeordnet unter:"
+msgstr "Du hast diese Ausgabe im folgenden Regal:"
#: bookwyrm/templates/book/book.html:226
#, python-format
@@ -857,7 +870,7 @@ msgstr "Titelbild von URL laden:"
#: bookwyrm/templates/book/cover_show_modal.html:6
msgid "Book cover preview"
-msgstr "Vorschau auf das Cover"
+msgstr "Vorschau des Titelbilds"
#: bookwyrm/templates/book/cover_show_modal.html:11
#: bookwyrm/templates/components/inline_form.html:8
@@ -889,7 +902,7 @@ msgstr "Buchinfo bestätigen"
#: bookwyrm/templates/book/edit/edit_book.html:56
#, python-format
msgid "Is \"%(name)s\" one of these authors?"
-msgstr "Ist \"%(name)s\" einer dieser Autoren?"
+msgstr "Ist „%(name)s“ einer dieser Autor*innen?"
#: bookwyrm/templates/book/edit/edit_book.html:67
#: bookwyrm/templates/book/edit/edit_book.html:69
@@ -898,7 +911,7 @@ msgstr "Autor*in von "
#: bookwyrm/templates/book/edit/edit_book.html:69
msgid "Find more information at isni.org"
-msgstr "Weitere Informationen finden Sie auf isni.org"
+msgstr "Weitere Informationen auf isni.org finden"
#: bookwyrm/templates/book/edit/edit_book.html:79
msgid "This is a new author"
@@ -985,11 +998,11 @@ msgstr "Autor*in hinzufügen"
#: bookwyrm/templates/book/edit/edit_book_form.html:146
#: bookwyrm/templates/book/edit/edit_book_form.html:149
msgid "Jane Doe"
-msgstr ""
+msgstr "Lisa Musterfrau"
#: bookwyrm/templates/book/edit/edit_book_form.html:152
msgid "Add Another Author"
-msgstr "Weiteren Autor hinzufügen"
+msgstr "Weitere*n Autor*in hinzufügen"
#: bookwyrm/templates/book/edit/edit_book_form.html:160
#: bookwyrm/templates/shelf/shelf.html:146
@@ -1055,47 +1068,53 @@ msgstr "Ausgaben suchen"
#: bookwyrm/templates/book/file_links/add_link_modal.html:6
msgid "Add file link"
-msgstr ""
+msgstr "Datei-Link hinzufügen"
#: bookwyrm/templates/book/file_links/add_link_modal.html:19
msgid "Links from unknown domains will need to be approved by a moderator before they are added."
-msgstr ""
+msgstr "Links zu unbekannten Domains müssen von eine*r Moderator*in genehmigt werden, bevor sie hinzugefügt werden."
#: bookwyrm/templates/book/file_links/add_link_modal.html:24
msgid "URL:"
-msgstr ""
+msgstr "URL:"
#: bookwyrm/templates/book/file_links/add_link_modal.html:29
msgid "File type:"
-msgstr ""
+msgstr "Dateityp:"
+
+#: bookwyrm/templates/book/file_links/add_link_modal.html:48
+msgid "Availability:"
+msgstr "Verfügbarkeit:"
#: bookwyrm/templates/book/file_links/edit_links.html:5
#: bookwyrm/templates/book/file_links/edit_links.html:22
-#: bookwyrm/templates/book/file_links/links.html:47
+#: bookwyrm/templates/book/file_links/links.html:53
msgid "Edit links"
-msgstr ""
+msgstr "Links bearbeiten"
#: bookwyrm/templates/book/file_links/edit_links.html:11
#, python-format
msgid "\n"
" Links for \"%(title)s\"\n"
" "
-msgstr ""
+msgstr "\n"
+" Links für „%(title)s“\n"
+" "
#: bookwyrm/templates/book/file_links/edit_links.html:32
#: bookwyrm/templates/settings/link_domains/link_table.html:6
msgid "URL"
-msgstr ""
+msgstr "URL"
#: bookwyrm/templates/book/file_links/edit_links.html:33
#: bookwyrm/templates/settings/link_domains/link_table.html:7
msgid "Added by"
-msgstr ""
+msgstr "Hinzugefügt von"
#: bookwyrm/templates/book/file_links/edit_links.html:34
#: bookwyrm/templates/settings/link_domains/link_table.html:8
msgid "Filetype"
-msgstr ""
+msgstr "Dateityp"
#: bookwyrm/templates/book/file_links/edit_links.html:35
#: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:25
@@ -1104,49 +1123,60 @@ msgid "Domain"
msgstr "Domain"
#: bookwyrm/templates/book/file_links/edit_links.html:36
+#: bookwyrm/templates/import/import_status.html:127
+#: bookwyrm/templates/settings/announcements/announcements.html:38
+#: bookwyrm/templates/settings/federation/instance_list.html:46
+#: bookwyrm/templates/settings/invites/manage_invite_requests.html:44
+#: bookwyrm/templates/settings/invites/status_filter.html:5
+#: bookwyrm/templates/settings/users/user_admin.html:34
+#: bookwyrm/templates/settings/users/user_info.html:20
+msgid "Status"
+msgstr "Status"
+
+#: bookwyrm/templates/book/file_links/edit_links.html:37
#: bookwyrm/templates/settings/federation/instance.html:94
#: bookwyrm/templates/settings/reports/report_links_table.html:6
msgid "Actions"
msgstr "Aktionen"
-#: bookwyrm/templates/book/file_links/edit_links.html:52
+#: bookwyrm/templates/book/file_links/edit_links.html:53
#: bookwyrm/templates/book/file_links/verification_modal.html:25
msgid "Report spam"
-msgstr ""
+msgstr "Spam melden"
-#: bookwyrm/templates/book/file_links/edit_links.html:65
+#: bookwyrm/templates/book/file_links/edit_links.html:97
msgid "No links available for this book."
-msgstr ""
+msgstr "Keine Links für dieses Buch vorhanden."
-#: bookwyrm/templates/book/file_links/edit_links.html:76
+#: bookwyrm/templates/book/file_links/edit_links.html:108
#: bookwyrm/templates/book/file_links/links.html:18
msgid "Add link to file"
-msgstr ""
+msgstr "Link zur Datei hinzufügen"
#: bookwyrm/templates/book/file_links/file_link_page.html:6
msgid "File Links"
-msgstr ""
+msgstr "Datei-Links"
#: bookwyrm/templates/book/file_links/links.html:9
msgid "Get a copy"
-msgstr ""
+msgstr "Kopie erhalten"
-#: bookwyrm/templates/book/file_links/links.html:41
+#: bookwyrm/templates/book/file_links/links.html:47
msgid "No links available"
-msgstr ""
+msgstr "Keine Links vorhanden"
#: bookwyrm/templates/book/file_links/verification_modal.html:5
msgid "Leaving BookWyrm"
-msgstr ""
+msgstr "BookWyrm verlassen"
#: bookwyrm/templates/book/file_links/verification_modal.html:11
#, python-format
msgid "This link is taking you to: %(link_url)s
.
Is that where you'd like to go?"
-msgstr ""
+msgstr "Dieser Link führt zu: %(link_url)s
.
Möchtest du dorthin wechseln?"
#: bookwyrm/templates/book/file_links/verification_modal.html:20
msgid "Continue"
-msgstr ""
+msgstr "Weiter"
#: bookwyrm/templates/book/publisher_info.html:23
#, python-format
@@ -1185,7 +1215,7 @@ msgstr "bewertet"
#: bookwyrm/templates/book/sync_modal.html:15
#, python-format
msgid "Loading data will connect to %(source_name)s and check for any metadata about this book which aren't present here. Existing metadata will not be overwritten."
-msgstr "Das Nachladen von Daten wird eine Verbindung zu %(source_name)s aufbauen und überprüfen ob Informationen über das Buch ergänzt werden konnten die hier noch nicht vorliegen. Bestehende Informationen werden nicht überschrieben."
+msgstr "Das Laden von Daten wird eine Verbindung zu %(source_name)s aufbauen und überprüfen, ob Buch-Informationen vorliegen, die hier noch nicht bekannt sind. Bestehende Informationen werden nicht überschrieben."
#: bookwyrm/templates/components/tooltip.html:3
msgid "Help"
@@ -1267,7 +1297,7 @@ msgstr "Mach dein Profil entdeckbar für andere BookWyrm-Benutzer*innen."
#: bookwyrm/templates/directory/directory.html:21
msgid "Join Directory"
-msgstr ""
+msgstr "Verzeichnis beitreten"
#: bookwyrm/templates/directory/directory.html:24
#, python-format
@@ -1353,7 +1383,7 @@ msgstr "%(username)s hat %(username)s started reading %(book_title)s"
-msgstr "%(username)s hat angefangen %(book_title)s zu lesen"
+msgstr "%(username)s hat angefangen, %(book_title)s zu lesen"
#: bookwyrm/templates/discover/card-header.html:23
#, python-format
@@ -1458,7 +1488,7 @@ msgstr "Erfahre mehr über %(site_name)s:"
#: bookwyrm/templates/email/moderation_report/text_content.html:5
#, python-format
msgid "@%(reporter)s has flagged behavior by @%(reportee)s for moderation. "
-msgstr ""
+msgstr "@%(reporter)s hat das Verhalten von @%(reportee)s zur Moderation gekennzeichnet. "
#: bookwyrm/templates/email/moderation_report/html_content.html:9
#: bookwyrm/templates/email/moderation_report/text_content.html:7
@@ -1497,7 +1527,7 @@ msgstr "Passwort für %(site_name)s zurücksetzen"
#: bookwyrm/templates/embed-layout.html:21 bookwyrm/templates/layout.html:39
#, python-format
msgid "%(site_name)s home page"
-msgstr ""
+msgstr "%(site_name)s-Startseite"
#: bookwyrm/templates/embed-layout.html:40 bookwyrm/templates/layout.html:233
msgid "Contact site admin"
@@ -1536,7 +1566,7 @@ msgstr "Hier sind noch keine Aktivitäten! Folge Anderen, um loszulegen"
#: bookwyrm/templates/feed/feed.html:52
msgid "Alternatively, you can try enabling more status types"
-msgstr ""
+msgstr "Alternativ könntest du auch weitere Statustypen aktivieren"
#: bookwyrm/templates/feed/goal_card.html:6
#: bookwyrm/templates/feed/layout.html:15
@@ -1578,7 +1608,7 @@ msgstr "Verzeichnis anzeigen"
#: bookwyrm/templates/feed/summary_card.html:21
msgid "The end of the year is the best moment to take stock of all the books read during the last 12 months. How many pages have you read? Which book is your best-rated of the year? We compiled these stats, and more!"
-msgstr "Das Ende des Jahrs ist der beste Zeitpunkt um auf all die Bücher zurückzublicken die du in den letzten zwölf Monaten gelesen hast. Wie viele Seiten das wohl waren? Welches Buch hat dir am besten gefallen? Wir haben diese und andere Statistiken für dich zusammengestellt!"
+msgstr "Das Ende des Jahrs ist der beste Zeitpunkt, um auf all die Bücher zurückzublicken, die du in den letzten zwölf Monaten gelesen hast. Wie viele Seiten waren es? Welches Buch hat dir am besten gefallen? Wir haben diese und andere Statistiken für dich zusammengestellt!"
#: bookwyrm/templates/feed/summary_card.html:26
#, python-format
@@ -1740,16 +1770,16 @@ msgstr "Keine Benutzer*innen für „%(query)s“ gefunden"
#: bookwyrm/templates/groups/create_form.html:5
msgid "Create Group"
-msgstr "Lesezirkel erstellen"
+msgstr "Gruppe erstellen"
#: bookwyrm/templates/groups/created_text.html:4
#, python-format
msgid "Managed by %(username)s"
-msgstr "Verwaltet von %(username)s"
+msgstr "Verantwortlich: %(username)s"
#: bookwyrm/templates/groups/delete_group_modal.html:4
msgid "Delete this group?"
-msgstr "Diesen Lesezirkel löschen?"
+msgstr "Diese Gruppe löschen?"
#: bookwyrm/templates/groups/delete_group_modal.html:7
#: bookwyrm/templates/lists/delete_list_modal.html:7
@@ -1770,23 +1800,23 @@ msgstr "Löschen"
#: bookwyrm/templates/groups/edit_form.html:5
msgid "Edit Group"
-msgstr "Lesezirkel bearbeiten"
+msgstr "Gruppe bearbeiten"
#: bookwyrm/templates/groups/form.html:8
msgid "Group Name:"
-msgstr "Name des Lesezirkels:"
+msgstr "Gruppenname:"
#: bookwyrm/templates/groups/form.html:12
msgid "Group Description:"
-msgstr "Beschreibung des Lesezirkels:"
+msgstr "Gruppenbeschreibung:"
#: bookwyrm/templates/groups/form.html:21
msgid "Delete group"
-msgstr "Lesezirkel löschen"
+msgstr "Gruppe löschen"
#: bookwyrm/templates/groups/group.html:22
msgid "Members of this group can create group-curated lists."
-msgstr "Mitglieder dieses Lesezirkels können durch den Zirkel zu kuratierende Listen anlegen."
+msgstr "Mitglieder dieser Gruppe können von der Gruppe kuratierte Listen anlegen."
#: bookwyrm/templates/groups/group.html:27
#: bookwyrm/templates/lists/create_form.html:5
@@ -1796,11 +1826,11 @@ msgstr "Liste erstellen"
#: bookwyrm/templates/groups/group.html:40
msgid "This group has no lists"
-msgstr "Dieser Lesezirkel hat keine Listen"
+msgstr "Diese Gruppe enthält keine Listen"
#: bookwyrm/templates/groups/layout.html:17
msgid "Edit group"
-msgstr "Lesezirkel bearbeiten"
+msgstr "Gruppe bearbeiten"
#: bookwyrm/templates/groups/members.html:12
msgid "Search to add a user"
@@ -1808,7 +1838,7 @@ msgstr "Hinzuzufügende*n Benutzer*in suchen"
#: bookwyrm/templates/groups/members.html:33
msgid "Leave group"
-msgstr "Lesezirkel verlassen"
+msgstr "Gruppe verlassen"
#: bookwyrm/templates/groups/members.html:55
#: bookwyrm/templates/groups/suggested_users.html:35
@@ -1826,7 +1856,7 @@ msgstr "Mitglieder hinzufügen!"
#, python-format
msgid "%(mutuals)s follower you follow"
msgid_plural "%(mutuals)s followers you follow"
-msgstr[0] "%(mutuals)s Follower*in, der du folgst"
+msgstr[0] "%(mutuals)s Follower*in, der*die du folgst"
msgstr[1] "%(mutuals)s Follower*innen, denen du folgst"
#: bookwyrm/templates/groups/suggested_users.html:27
@@ -1844,7 +1874,7 @@ msgstr "Keine potentiellen Mitglieder für „%(user_query)s“ gefunden"
#: bookwyrm/templates/groups/user_groups.html:15
msgid "Manager"
-msgstr "Verwalter*in"
+msgstr "Verantwortlich"
#: bookwyrm/templates/import/import.html:5
#: bookwyrm/templates/import/import.html:9
@@ -1890,11 +1920,11 @@ msgstr "Importstatus"
#: bookwyrm/templates/import/import_status.html:13
#: bookwyrm/templates/import/import_status.html:27
msgid "Retry Status"
-msgstr ""
+msgstr "Wiederholungsstatus"
#: bookwyrm/templates/import/import_status.html:22
msgid "Imports"
-msgstr ""
+msgstr "Importe"
#: bookwyrm/templates/import/import_status.html:39
msgid "Import started:"
@@ -1902,7 +1932,7 @@ msgstr "Import gestartet:"
#: bookwyrm/templates/import/import_status.html:48
msgid "In progress"
-msgstr ""
+msgstr "In Arbeit"
#: bookwyrm/templates/import/import_status.html:50
msgid "Refresh"
@@ -1912,28 +1942,28 @@ msgstr "Aktualisieren"
#, python-format
msgid "%(display_counter)s item needs manual approval."
msgid_plural "%(display_counter)s items need manual approval."
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%(display_counter)s Element muss manuell geprüft werden."
+msgstr[1] "%(display_counter)s Elemente müssen manuell geprüft werden."
#: bookwyrm/templates/import/import_status.html:76
#: bookwyrm/templates/import/manual_review.html:8
msgid "Review items"
-msgstr ""
+msgstr "Zu prüfende Elemente"
#: bookwyrm/templates/import/import_status.html:82
#, python-format
msgid "%(display_counter)s item failed to import."
msgid_plural "%(display_counter)s items failed to import."
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%(display_counter)s Element konnte nicht importiert werden."
+msgstr[1] "%(display_counter)s Elemente konnten nicht importiert werden."
#: bookwyrm/templates/import/import_status.html:88
msgid "View and troubleshoot failed items"
-msgstr ""
+msgstr "Fehlgeschlagene Elemente anzeigen und bearbeiten"
#: bookwyrm/templates/import/import_status.html:100
msgid "Row"
-msgstr ""
+msgstr "Zeile"
#: bookwyrm/templates/import/import_status.html:103
#: bookwyrm/templates/shelf/shelf.html:147
@@ -1947,7 +1977,7 @@ msgstr "ISBN"
#: bookwyrm/templates/import/import_status.html:110
msgid "Openlibrary key"
-msgstr ""
+msgstr "Openlibrary-Schlüssel"
#: bookwyrm/templates/import/import_status.html:114
#: bookwyrm/templates/shelf/shelf.html:148
@@ -1970,23 +2000,13 @@ msgstr "Besprechen"
msgid "Book"
msgstr "Buch"
-#: bookwyrm/templates/import/import_status.html:127
-#: bookwyrm/templates/settings/announcements/announcements.html:38
-#: bookwyrm/templates/settings/federation/instance_list.html:46
-#: bookwyrm/templates/settings/invites/manage_invite_requests.html:44
-#: bookwyrm/templates/settings/invites/status_filter.html:5
-#: bookwyrm/templates/settings/users/user_admin.html:34
-#: bookwyrm/templates/settings/users/user_info.html:20
-msgid "Status"
-msgstr "Status"
-
#: bookwyrm/templates/import/import_status.html:135
msgid "Import preview unavailable."
-msgstr ""
+msgstr "Importvorschau nicht verfügbar."
#: bookwyrm/templates/import/import_status.html:172
msgid "View imported review"
-msgstr ""
+msgstr "Importbericht ansehen"
#: bookwyrm/templates/import/import_status.html:186
msgid "Imported"
@@ -1994,7 +2014,7 @@ msgstr "Importiert"
#: bookwyrm/templates/import/import_status.html:192
msgid "Needs manual review"
-msgstr ""
+msgstr "Manuelle Überprüfung benötigt"
#: bookwyrm/templates/import/import_status.html:205
msgid "Retry"
@@ -2002,20 +2022,20 @@ msgstr "Erneut versuchen"
#: bookwyrm/templates/import/import_status.html:223
msgid "This import is in an old format that is no longer supported. If you would like to troubleshoot missing items from this import, click the button below to update the import format."
-msgstr ""
+msgstr "Dieser Import ist in einem alten Format, das nicht mehr unterstützt wird. Wenn Sie fehlende Elemente aus diesem Import bearbeiten möchten, klicken Sie auf die Schaltfläche unten, um das Importformat zu aktualisieren."
#: bookwyrm/templates/import/import_status.html:225
msgid "Update import"
-msgstr ""
+msgstr "Import aktualisieren"
#: bookwyrm/templates/import/manual_review.html:5
#: bookwyrm/templates/import/troubleshoot.html:4
msgid "Import Troubleshooting"
-msgstr ""
+msgstr "Problembehebung für Importe"
#: bookwyrm/templates/import/manual_review.html:21
msgid "Approving a suggestion will permanently add the suggested book to your shelves and associate your reading dates, reviews, and ratings with that book."
-msgstr ""
+msgstr "Die Genehmigung eines Vorschlags wird das vorgeschlagene Buch dauerhaft in deine Regale aufnehmen und deine Lesedaten, Besprechungen und Bewertungen mit diesem Buch verknüpfen."
#: bookwyrm/templates/import/manual_review.html:58
#: bookwyrm/templates/lists/curate.html:59
@@ -2025,39 +2045,39 @@ msgstr "Bestätigen"
#: bookwyrm/templates/import/manual_review.html:66
msgid "Reject"
-msgstr ""
+msgstr "Ablehnen"
#: bookwyrm/templates/import/tooltip.html:6
-msgid "You can download your Goodreads data from the Import/Export page of your Goodreads account."
-msgstr "Du kannst deine Goodreads-Daten von der Import/Export-Seite deines Goodreads-Kontos downloaden."
+msgid "You can download your Goodreads data from the Import/Export page of your Goodreads account."
+msgstr "Du kannst deine Goodreads-Daten von der Import / Export-Seite deines Goodreads-Kontos downloaden."
#: bookwyrm/templates/import/troubleshoot.html:7
msgid "Failed items"
-msgstr ""
+msgstr "Fehlgeschlagene Elemente"
#: bookwyrm/templates/import/troubleshoot.html:12
msgid "Troubleshooting"
-msgstr ""
+msgstr "Fehlerbehebung"
#: bookwyrm/templates/import/troubleshoot.html:20
msgid "Re-trying an import can fix missing items in cases such as:"
-msgstr ""
+msgstr "Ein erneutes Ausprobieren eines Imports kann bei fehlgeschlagenen Elementen in folgenden Fällen helfen:"
#: bookwyrm/templates/import/troubleshoot.html:23
msgid "The book has been added to the instance since this import"
-msgstr ""
+msgstr "Das Buch wurde seit diesem Import zur Instanz hinzugefügt"
#: bookwyrm/templates/import/troubleshoot.html:24
msgid "A transient error or timeout caused the external data source to be unavailable."
-msgstr ""
+msgstr "Ein vorübergehender Fehler oder ein Timeout haben dazu geführt, dass die externe Datenquelle nicht verfügbar war."
#: bookwyrm/templates/import/troubleshoot.html:25
msgid "BookWyrm has been updated since this import with a bug fix"
-msgstr ""
+msgstr "BookWyrm wurde seit diesem Import mit einem Bugfix aktualisiert"
#: bookwyrm/templates/import/troubleshoot.html:28
msgid "Contact your admin or open an issue if you are seeing unexpected failed items."
-msgstr ""
+msgstr "Kontaktiere deine*n Administrator*in oder melde ein Problem, wenn Importe unerwartet fehlschlagen."
#: bookwyrm/templates/landing/invite.html:4
#: bookwyrm/templates/landing/invite.html:8
@@ -2323,27 +2343,27 @@ msgstr "Jede*r kann Bücher hinzufügen"
#: bookwyrm/templates/lists/form.html:82
msgid "Group"
-msgstr "Lesezirkel"
+msgstr "Gruppe"
#: bookwyrm/templates/lists/form.html:85
msgid "Group members can add to and remove from this list"
-msgstr "Mitglieder*innen können Bücher zu dieser Liste hinzufügen und von dieser entfernen"
+msgstr "Gruppenmitglieder können Bücher zu dieser Liste hinzufügen und von dieser entfernen"
#: bookwyrm/templates/lists/form.html:90
msgid "Select Group"
-msgstr "Lesezirkel auswählen"
+msgstr "Gruppe auswählen"
#: bookwyrm/templates/lists/form.html:94
msgid "Select a group"
-msgstr "Einen Lesezirkel auswählen"
+msgstr "Eine Gruppe auswählen"
#: bookwyrm/templates/lists/form.html:105
msgid "You don't have any Groups yet!"
-msgstr "Du bist noch nicht in einem Lesezirkel!"
+msgstr "Du hast noch keine Gruppen!"
#: bookwyrm/templates/lists/form.html:107
msgid "Create a Group"
-msgstr "Lesezirkel erstellen"
+msgstr "Gruppe erstellen"
#: bookwyrm/templates/lists/form.html:121
msgid "Delete list"
@@ -2416,7 +2436,7 @@ msgstr "Diese Liste auf einer Webseite einbetten"
#: bookwyrm/templates/lists/list.html:229
msgid "Copy embed code"
-msgstr "Code zum Einbetten kopieren"
+msgstr "Code zum einbetten kopieren"
#: bookwyrm/templates/lists/list.html:231
#, python-format
@@ -2442,7 +2462,7 @@ msgstr "Gespeicherte Listen"
#: bookwyrm/templates/notifications/items/accept.html:16
#, python-format
msgid "accepted your invitation to join group \"%(group_name)s\""
-msgstr "hat deine Einladung angenommen, dem Lesezirkel „%(group_name)s“ beizutreten"
+msgstr "hat deine Einladung angenommen, der Gruppe „%(group_name)s“ beizutreten"
#: bookwyrm/templates/notifications/items/add.html:24
#, python-format
@@ -2515,12 +2535,12 @@ msgstr "hat dich eingeladen, der Gruppe „%(group_na
#: bookwyrm/templates/notifications/items/join.html:16
#, python-format
msgid "has joined your group \"%(group_name)s\""
-msgstr "ist deinem Lesezirkel „%(group_name)s“ beigetreten"
+msgstr "ist deiner Gruppe „%(group_name)s“ beigetreten"
#: bookwyrm/templates/notifications/items/leave.html:16
#, python-format
msgid "has left your group \"%(group_name)s\""
-msgstr "hat deinen Lesezirkel „%(group_name)s“ verlassen"
+msgstr "hat deine Gruppe „%(group_name)s“ verlassen"
#: bookwyrm/templates/notifications/items/mention.html:20
#, python-format
@@ -2545,12 +2565,12 @@ msgstr "hat dich in einem Status erwähnt"
#: bookwyrm/templates/notifications/items/remove.html:17
#, python-format
msgid "has been removed from your group \"%(group_name)s\""
-msgstr "wurde aus deinem Lesezirkel „%(group_name)s“ entfernt"
+msgstr "wurde aus deiner Gruppe „%(group_name)s“ entfernt"
#: bookwyrm/templates/notifications/items/remove.html:23
#, python-format
msgid "You have been removed from the \"%(group_name)s\" group"
-msgstr "Du wurdest aus dem Lesezirkel „%(group_name)s“ entfernt"
+msgstr "Du wurdest aus der Gruppe „%(group_name)s“ entfernt"
#: bookwyrm/templates/notifications/items/reply.html:21
#, python-format
@@ -2611,36 +2631,36 @@ msgstr "Du bist auf dem neusten Stand!"
#: bookwyrm/templates/ostatus/error.html:7
#, python-format
msgid "%(account)s is not a valid username"
-msgstr "%(account)s ist kein gültiger Benutzername"
+msgstr "%(account)s ist kein gültiger Benutzer*inname"
#: bookwyrm/templates/ostatus/error.html:8
#: bookwyrm/templates/ostatus/error.html:13
msgid "Check you have the correct username before trying again"
-msgstr ""
+msgstr "Überprüfe, ob du den richtigen Benutzernamen benutzt, bevor du es erneut versuchst"
#: bookwyrm/templates/ostatus/error.html:12
#, python-format
msgid "%(account)s could not be found or %(remote_domain)s
does not support identity discovery"
-msgstr ""
+msgstr "%(account)s konnte nicht gefunden werden oder %(remote_domain)s
unterstützt keine Identitätsfindung"
#: bookwyrm/templates/ostatus/error.html:17
#, python-format
msgid "%(account)s was found but %(remote_domain)s
does not support 'remote follow'"
-msgstr ""
+msgstr "%(account)s wurde gefunden, aber %(remote_domain)s
unterstützt kein ‚remote follow‘"
#: bookwyrm/templates/ostatus/error.html:18
#, python-format
msgid "Try searching for %(user)s on %(remote_domain)s
instead"
-msgstr ""
+msgstr "Versuche stattdessen, nach %(user)s auf %(remote_domain)s
zu suchen"
#: bookwyrm/templates/ostatus/error.html:46
#, python-format
msgid "Something went wrong trying to follow %(account)s"
-msgstr ""
+msgstr "Etwas ist schiefgelaufen beim Versuch, %(account)s zu folgen"
#: bookwyrm/templates/ostatus/error.html:47
msgid "Check you have the correct username before trying again."
-msgstr ""
+msgstr "Überprüfe, ob du den richtigen Benutzernamen benutzt, bevor du es erneut versuchst."
#: bookwyrm/templates/ostatus/error.html:51
#, python-format
@@ -2650,7 +2670,7 @@ msgstr "Du hast %(account)s blockiert"
#: bookwyrm/templates/ostatus/error.html:55
#, python-format
msgid "%(account)s has blocked you"
-msgstr ""
+msgstr "%(account)s hat dich blockiert"
#: bookwyrm/templates/ostatus/error.html:59
#, python-format
@@ -2660,7 +2680,7 @@ msgstr "Du folgst %(account)s bereits"
#: bookwyrm/templates/ostatus/error.html:63
#, python-format
msgid "You have already requested to follow %(account)s"
-msgstr "Du hast bei %(account)s bereits angefragt ob du folgen darfst"
+msgstr "Du hast bei %(account)s bereits angefragt, ob du folgen darfst"
#: bookwyrm/templates/ostatus/remote_follow.html:6
#, python-format
@@ -2674,7 +2694,7 @@ msgstr "Folge %(username)s von einem anderen Konto im Fediverse wie BookWyrm, Ma
#: bookwyrm/templates/ostatus/remote_follow.html:40
msgid "User handle to follow from:"
-msgstr ""
+msgstr "Benutzerkennung, mit der gefolgt wird:"
#: bookwyrm/templates/ostatus/remote_follow.html:42
msgid "Follow!"
@@ -2686,7 +2706,7 @@ msgstr "Folge im Fediverse"
#: bookwyrm/templates/ostatus/remote_follow_button.html:12
msgid "This link opens in a pop-up window"
-msgstr "Dieser Link wird in einem Popupfenster geöffnet"
+msgstr "Dieser Link öffnet sich in einem Popup-Fenster"
#: bookwyrm/templates/ostatus/subscribe.html:8
#, python-format
@@ -2696,13 +2716,13 @@ msgstr "Einloggen auf %(sitename)s"
#: bookwyrm/templates/ostatus/subscribe.html:10
#, python-format
msgid "Error following from %(sitename)s"
-msgstr ""
+msgstr "Fehler beim Folgen aus %(sitename)s"
#: bookwyrm/templates/ostatus/subscribe.html:12
#: bookwyrm/templates/ostatus/subscribe.html:22
#, python-format
msgid "Follow from %(sitename)s"
-msgstr ""
+msgstr "Folgen aus %(sitename)s"
#: bookwyrm/templates/ostatus/subscribe.html:18
msgid "Uh oh..."
@@ -2710,7 +2730,7 @@ msgstr "Oh oh..."
#: bookwyrm/templates/ostatus/subscribe.html:20
msgid "Let's log in first..."
-msgstr ""
+msgstr "Zuerst einloggen …"
#: bookwyrm/templates/ostatus/subscribe.html:51
#, python-format
@@ -2783,7 +2803,7 @@ msgstr "Privatsphäre"
#: bookwyrm/templates/preferences/edit_user.html:69
msgid "Show reading goal prompt in feed"
-msgstr ""
+msgstr "Zeige Leseziel-Erinnerung im Feed an"
#: bookwyrm/templates/preferences/edit_user.html:75
msgid "Show suggested users"
@@ -2791,7 +2811,7 @@ msgstr "Vorgeschlagene Benutzer*innen anzeigen"
#: bookwyrm/templates/preferences/edit_user.html:81
msgid "Show this account in suggested users"
-msgstr ""
+msgstr "Dieses Benutzer*inkonto in vorgeschlagene Benutzer*innen einschließen"
#: bookwyrm/templates/preferences/edit_user.html:85
#, python-format
@@ -2804,7 +2824,7 @@ msgstr "Bevorzugte Zeitzone:"
#: bookwyrm/templates/preferences/edit_user.html:111
msgid "Manually approve followers"
-msgstr ""
+msgstr "Follower*innen manuell bestätigen"
#: bookwyrm/templates/preferences/edit_user.html:116
msgid "Default post privacy:"
@@ -2846,7 +2866,7 @@ msgstr "Du löscht diesen Leseforschritt und %(count)s zugehörige Zwischenstän
#: bookwyrm/templates/readthrough/readthrough_modal.html:8
#, python-format
msgid "Update read dates for \"%(title)s\""
-msgstr ""
+msgstr "Lesedaten für „%(title)s“ aktualisieren"
#: bookwyrm/templates/readthrough/readthrough_form.html:10
#: bookwyrm/templates/readthrough/readthrough_modal.html:31
@@ -2897,7 +2917,7 @@ msgstr "Diese Lesedaten löschen"
#: bookwyrm/templates/readthrough/readthrough_modal.html:12
#, python-format
msgid "Add read dates for \"%(title)s\""
-msgstr ""
+msgstr "Lesedaten für „%(title)s“ hinzufügen"
#: bookwyrm/templates/report.html:5
#: bookwyrm/templates/snippets/report_button.html:13
@@ -2906,7 +2926,7 @@ msgstr "Melden"
#: bookwyrm/templates/search/book.html:44
msgid "Results from"
-msgstr ""
+msgstr "Ergebnisse von"
#: bookwyrm/templates/search/book.html:80
msgid "Import book"
@@ -3079,8 +3099,8 @@ msgstr[1] "%(display_count)s offene Meldungen"
#, python-format
msgid "%(display_count)s domain needs review"
msgid_plural "%(display_count)s domains need review"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%(display_count)s Domain muss überprüft werden"
+msgstr[1] "%(display_count)s Domains müssen überprüft werden"
#: bookwyrm/templates/settings/dashboard/dashboard.html:65
#, python-format
@@ -3477,7 +3497,7 @@ msgstr "Meldungen"
#: bookwyrm/templates/settings/link_domains/link_domains.html:5
#: bookwyrm/templates/settings/link_domains/link_domains.html:7
msgid "Link Domains"
-msgstr ""
+msgstr "Domains verlinken"
#: bookwyrm/templates/settings/layout.html:72
msgid "Instance Settings"
@@ -3492,35 +3512,35 @@ msgstr "Seiteneinstellungen"
#: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:5
#, python-format
msgid "Set display name for %(url)s"
-msgstr ""
+msgstr "Anzeigename für %(url)s festlegen"
#: bookwyrm/templates/settings/link_domains/link_domains.html:11
msgid "Link domains must be approved before they are shown on book pages. Please make sure that the domains are not hosting spam, malicious code, or deceptive links before approving."
-msgstr ""
+msgstr "Link-Domains müssen freigegeben werden, bevor sie auf Buchseiten angezeigt werden. Bitte stelle sicher, dass die Domains nicht Spam, bösartigen Code oder irreführende Links beherbergen, bevor sie freigegeben werden."
#: bookwyrm/templates/settings/link_domains/link_domains.html:45
msgid "Set display name"
-msgstr ""
+msgstr "Anzeigename festlegen"
#: bookwyrm/templates/settings/link_domains/link_domains.html:53
msgid "View links"
-msgstr ""
+msgstr "Links anzeigen"
#: bookwyrm/templates/settings/link_domains/link_domains.html:96
msgid "No domains currently approved"
-msgstr ""
+msgstr "Derzeit keine Domains freigegeben"
#: bookwyrm/templates/settings/link_domains/link_domains.html:98
msgid "No domains currently pending"
-msgstr ""
+msgstr "Derzeit keine zur Freigabe anstehenden Domains"
#: bookwyrm/templates/settings/link_domains/link_domains.html:100
msgid "No domains currently blocked"
-msgstr ""
+msgstr "Derzeit keine Domains gesperrt"
#: bookwyrm/templates/settings/link_domains/link_table.html:39
msgid "No links available for this domain."
-msgstr ""
+msgstr "Keine Links für diese Domain vorhanden."
#: bookwyrm/templates/settings/reports/report.html:11
msgid "Back to reports"
@@ -3536,7 +3556,7 @@ msgstr "Statusmeldung gelöscht"
#: bookwyrm/templates/settings/reports/report.html:39
msgid "Reported links"
-msgstr ""
+msgstr "Gemeldete Links"
#: bookwyrm/templates/settings/reports/report.html:55
msgid "Moderator Comments"
@@ -3550,21 +3570,21 @@ msgstr "Kommentieren"
#: bookwyrm/templates/settings/reports/report_header.html:6
#, python-format
msgid "Report #%(report_id)s: Status posted by @%(username)s"
-msgstr ""
+msgstr "Bericht #%(report_id)s: Status gepostet von @%(username)s"
#: bookwyrm/templates/settings/reports/report_header.html:12
#, python-format
msgid "Report #%(report_id)s: Link added by @%(username)s"
-msgstr ""
+msgstr "Bericht #%(report_id)s: Link hinzugefügt von @%(username)s"
#: bookwyrm/templates/settings/reports/report_header.html:18
#, python-format
msgid "Report #%(report_id)s: User @%(username)s"
-msgstr ""
+msgstr "Bericht #%(report_id)s: Benutzer @%(username)s"
#: bookwyrm/templates/settings/reports/report_links_table.html:17
msgid "Block domain"
-msgstr ""
+msgstr "Domain blockieren"
#: bookwyrm/templates/settings/reports/report_preview.html:17
msgid "No notes provided"
@@ -3573,7 +3593,7 @@ msgstr "Keine Notizen angegeben."
#: bookwyrm/templates/settings/reports/report_preview.html:24
#, python-format
msgid "Reported by @%(username)s"
-msgstr ""
+msgstr "Gemeldet von @%(username)s"
#: bookwyrm/templates/settings/reports/report_preview.html:34
msgid "Re-open"
@@ -3819,7 +3839,7 @@ msgstr "Dauerhaft gelöscht"
#: bookwyrm/templates/settings/users/user_moderation_actions.html:8
msgid "User Actions"
-msgstr ""
+msgstr "Benutzeraktionen"
#: bookwyrm/templates/settings/users/user_moderation_actions.html:21
msgid "Suspend user"
@@ -3843,7 +3863,7 @@ msgstr "Regal bearbeiten"
#: bookwyrm/templates/shelf/shelf.html:24
msgid "User profile"
-msgstr "Benutzerprofil"
+msgstr "Benutzer*inprofil"
#: bookwyrm/templates/shelf/shelf.html:39
#: bookwyrm/templates/snippets/translated_shelf_name.html:3
@@ -4121,13 +4141,13 @@ msgstr[1] "hat %(title)s mit %(display_rating)
#, python-format
msgid "Review of \"%(book_title)s\" (%(display_rating)s star): %(review_title)s"
msgid_plural "Review of \"%(book_title)s\" (%(display_rating)s stars): %(review_title)s"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Besprechung von „%(book_title)s“ (%(display_rating)s Stern): %(review_title)s"
+msgstr[1] "Besprechungen von „%(book_title)s“ (%(display_rating)s Stern): %(review_title)s"
#: bookwyrm/templates/snippets/generated_status/review_pure_name.html:12
#, python-format
msgid "Review of \"%(book_title)s\": %(review_title)s"
-msgstr ""
+msgstr "Besprechung von „%(book_title)s: %(review_title)s"
#: bookwyrm/templates/snippets/goal_form.html:4
#, python-format
@@ -4236,12 +4256,12 @@ msgstr "Registrieren"
#: bookwyrm/templates/snippets/report_modal.html:8
#, python-format
msgid "Report @%(username)s's status"
-msgstr ""
+msgstr "Melde Status von @%(username)s"
#: bookwyrm/templates/snippets/report_modal.html:10
#, python-format
msgid "Report %(domain)s link"
-msgstr ""
+msgstr "Melde Link zu %(domain)s"
#: bookwyrm/templates/snippets/report_modal.html:12
#, python-format
@@ -4255,7 +4275,7 @@ msgstr "Diese Meldung wird an die Moderato*innen von %(site_name)s weitergeleite
#: bookwyrm/templates/snippets/report_modal.html:36
msgid "Links from this domain will be removed until your report has been reviewed."
-msgstr ""
+msgstr "Links von dieser Domain werden entfernt, bis deine Meldung überprüft wurde."
#: bookwyrm/templates/snippets/report_modal.html:41
msgid "More info about this report:"
@@ -4295,29 +4315,29 @@ msgstr "Aus %(name)s entfernen"
msgid "Finish reading"
msgstr "Lesen abschließen"
-#: bookwyrm/templates/snippets/status/content_status.html:75
+#: bookwyrm/templates/snippets/status/content_status.html:72
msgid "Content warning"
msgstr "Inhaltswarnung"
-#: bookwyrm/templates/snippets/status/content_status.html:82
+#: bookwyrm/templates/snippets/status/content_status.html:79
msgid "Show status"
msgstr "Status anzeigen"
-#: bookwyrm/templates/snippets/status/content_status.html:104
+#: bookwyrm/templates/snippets/status/content_status.html:101
#, python-format
msgid "(Page %(page)s)"
msgstr "(Seite %(page)s)"
-#: bookwyrm/templates/snippets/status/content_status.html:106
+#: bookwyrm/templates/snippets/status/content_status.html:103
#, python-format
msgid "(%(percent)s%%)"
msgstr "(%(percent)s%%)"
-#: bookwyrm/templates/snippets/status/content_status.html:128
+#: bookwyrm/templates/snippets/status/content_status.html:125
msgid "Open image in new window"
msgstr "Bild in neuem Fenster öffnen"
-#: bookwyrm/templates/snippets/status/content_status.html:147
+#: bookwyrm/templates/snippets/status/content_status.html:144
msgid "Hide status"
msgstr "Status ausblenden"
@@ -4329,7 +4349,7 @@ msgstr "%(date)s bearbeitet"
#: bookwyrm/templates/snippets/status/headers/comment.html:8
#, python-format
msgid "commented on %(book)s by %(author_name)s"
-msgstr "Kommentar zu %(book)s von %(author_name)s"
+msgstr "hat %(book)s von %(author_name)s kommentiert"
#: bookwyrm/templates/snippets/status/headers/comment.html:15
#, python-format
@@ -4344,7 +4364,7 @@ msgstr "hat auf die Statusmeldung von %(book)s by %(author_name)s"
-msgstr "zitiert aus %(book)s durch %(author_name)s"
+msgstr "hat aus %(book)s von %(author_name)s zitiert"
#: bookwyrm/templates/snippets/status/headers/quotation.html:15
#, python-format
@@ -4359,7 +4379,7 @@ msgstr "hat %(book)s bewertet:"
#: bookwyrm/templates/snippets/status/headers/read.html:10
#, python-format
msgid "finished reading %(book)s by %(author_name)s"
-msgstr "%(book)s abgeschlossen von %(author_name)s"
+msgstr "%(book)s von %(author_name)s zu Ende gelesen"
#: bookwyrm/templates/snippets/status/headers/read.html:17
#, python-format
@@ -4369,7 +4389,7 @@ msgstr "hat %(book)s abgeschlossen"
#: bookwyrm/templates/snippets/status/headers/reading.html:10
#, python-format
msgid "started reading %(book)s by %(author_name)s"
-msgstr "%(author_name)s beginnt %(book)s zu lesen"
+msgstr "hat begonnen, %(book)s von %(author_name)s zu lesen"
#: bookwyrm/templates/snippets/status/headers/reading.html:17
#, python-format
@@ -4379,7 +4399,7 @@ msgstr "hat angefangen, %(book)s zu lesen"
#: bookwyrm/templates/snippets/status/headers/review.html:8
#, python-format
msgid "reviewed %(book)s by %(author_name)s"
-msgstr "%(author_name)s hat %(book)s rezensiert"
+msgstr "hat %(book)s von %(author_name)s besprochen"
#: bookwyrm/templates/snippets/status/headers/review.html:15
#, python-format
@@ -4389,7 +4409,7 @@ msgstr "hat %(book)s besprochen"
#: bookwyrm/templates/snippets/status/headers/to_read.html:10
#, python-format
msgid "wants to read %(book)s by %(author_name)s"
-msgstr "%(author_name)s will %(book)s lesen"
+msgstr "will %(book)s von %(author_name)s lesen"
#: bookwyrm/templates/snippets/status/headers/to_read.html:17
#, python-format
@@ -4475,7 +4495,7 @@ msgstr "Bücher von %(username)s %(year)s"
#: bookwyrm/templates/user/groups.html:9
msgid "Your Groups"
-msgstr "Deine Lesezirkel"
+msgstr "Deine Gruppen"
#: bookwyrm/templates/user/groups.html:11
#, python-format
@@ -4500,7 +4520,7 @@ msgstr "Leseziel"
#: bookwyrm/templates/user/layout.html:79
msgid "Groups"
-msgstr "Lesezirkel"
+msgstr "Gruppen"
#: bookwyrm/templates/user/lists.html:11
#, python-format
diff --git a/locale/en_US/LC_MESSAGES/django.po b/locale/en_US/LC_MESSAGES/django.po
index 5b39477c6..09670d6e4 100644
--- a/locale/en_US/LC_MESSAGES/django.po
+++ b/locale/en_US/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 0.0.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-01-17 19:26+0000\n"
+"POT-Creation-Date: 2022-01-20 17:58+0000\n"
"PO-Revision-Date: 2021-02-28 17:19-0800\n"
"Last-Translator: Mouse Reeve \n"
"Language-Team: English \n"
@@ -57,11 +57,11 @@ msgstr ""
#: bookwyrm/forms.py:485 bookwyrm/templates/shelf/shelf.html:155
#: bookwyrm/templates/shelf/shelf.html:187
-#: bookwyrm/templates/snippets/create_status/review.html:33
+#: bookwyrm/templates/snippets/create_status/review.html:32
msgid "Rating"
msgstr ""
-#: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:134
+#: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:135
msgid "Sort By"
msgstr ""
@@ -225,69 +225,69 @@ msgstr ""
msgid "Everything else"
msgstr ""
-#: bookwyrm/settings.py:121
+#: bookwyrm/settings.py:173
msgid "Home Timeline"
msgstr ""
-#: bookwyrm/settings.py:121
+#: bookwyrm/settings.py:173
msgid "Home"
msgstr ""
-#: bookwyrm/settings.py:122
+#: bookwyrm/settings.py:174
msgid "Books Timeline"
msgstr ""
-#: bookwyrm/settings.py:122 bookwyrm/templates/search/layout.html:21
+#: bookwyrm/settings.py:174 bookwyrm/templates/search/layout.html:21
#: bookwyrm/templates/search/layout.html:42
#: bookwyrm/templates/user/layout.html:91
msgid "Books"
msgstr ""
-#: bookwyrm/settings.py:196
+#: bookwyrm/settings.py:248
msgid "English"
msgstr ""
-#: bookwyrm/settings.py:197
+#: bookwyrm/settings.py:249
msgid "Deutsch (German)"
msgstr ""
-#: bookwyrm/settings.py:198
+#: bookwyrm/settings.py:250
msgid "Español (Spanish)"
msgstr ""
-#: bookwyrm/settings.py:199
+#: bookwyrm/settings.py:251
msgid "Galego (Galician)"
msgstr ""
-#: bookwyrm/settings.py:200
+#: bookwyrm/settings.py:252
msgid "Italiano (Italian)"
msgstr ""
-#: bookwyrm/settings.py:201
+#: bookwyrm/settings.py:253
msgid "Français (French)"
msgstr ""
-#: bookwyrm/settings.py:202
+#: bookwyrm/settings.py:254
msgid "Lietuvių (Lithuanian)"
msgstr ""
-#: bookwyrm/settings.py:203
+#: bookwyrm/settings.py:255
msgid "Norsk (Norwegian)"
msgstr ""
-#: bookwyrm/settings.py:204
+#: bookwyrm/settings.py:256
msgid "Português do Brasil (Brazilian Portuguese)"
msgstr ""
-#: bookwyrm/settings.py:205
+#: bookwyrm/settings.py:257
msgid "Português Europeu (European Portuguese)"
msgstr ""
-#: bookwyrm/settings.py:206
+#: bookwyrm/settings.py:258
msgid "简体中文 (Simplified Chinese)"
msgstr ""
-#: bookwyrm/settings.py:207
+#: bookwyrm/settings.py:259
msgid "繁體中文 (Traditional Chinese)"
msgstr ""
@@ -352,10 +352,7 @@ msgstr ""
#: bookwyrm/templates/about/about.html:98
#, python-format
-msgid ""
-"\n"
-" %(site_name)s's moderators and administrators keep the site up and running, enforce the code of conduct, and respond when users report spam and bad behavior.\n"
-" "
+msgid "%(site_name)s's moderators and administrators keep the site up and running, enforce the code of conduct, and respond when users report spam and bad behavior."
msgstr ""
#: bookwyrm/templates/about/about.html:112
@@ -428,7 +425,7 @@ msgid "Copy address"
msgstr ""
#: bookwyrm/templates/annual_summary/layout.html:68
-#: bookwyrm/templates/lists/list.html:230
+#: bookwyrm/templates/lists/list.html:231
msgid "Copied!"
msgstr ""
@@ -497,7 +494,7 @@ msgstr ""
#: bookwyrm/templates/annual_summary/layout.html:245
#: bookwyrm/templates/book/book.html:47
#: bookwyrm/templates/discover/large-book.html:22
-#: bookwyrm/templates/landing/large-book.html:25
+#: bookwyrm/templates/landing/large-book.html:26
#: bookwyrm/templates/landing/small-book.html:18
msgid "by"
msgstr ""
@@ -733,9 +730,9 @@ msgstr ""
#: bookwyrm/templates/author/sync_modal.html:22
#: bookwyrm/templates/book/edit/edit_book.html:108
#: bookwyrm/templates/book/sync_modal.html:22
-#: bookwyrm/templates/groups/members.html:30
+#: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42
-#: bookwyrm/templates/snippets/remove_from_group_button.html:16
+#: bookwyrm/templates/snippets/remove_from_group_button.html:17
msgid "Confirm"
msgstr ""
@@ -819,8 +816,8 @@ msgid "Places"
msgstr ""
#: bookwyrm/templates/book/book.html:348
-#: bookwyrm/templates/groups/group.html:20 bookwyrm/templates/layout.html:74
-#: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:10
+#: bookwyrm/templates/groups/group.html:19 bookwyrm/templates/layout.html:74
+#: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:11
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
#: bookwyrm/templates/search/layout.html:25
#: bookwyrm/templates/search/layout.html:50
@@ -834,7 +831,7 @@ msgstr ""
#: bookwyrm/templates/book/book.html:369
#: bookwyrm/templates/book/cover_add_modal.html:31
-#: bookwyrm/templates/lists/list.html:208
+#: bookwyrm/templates/lists/list.html:209
#: bookwyrm/templates/settings/email_blocklist/domain_form.html:24
#: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:31
msgid "Add"
@@ -936,7 +933,7 @@ msgid "Back"
msgstr ""
#: bookwyrm/templates/book/edit/edit_book_form.html:21
-#: bookwyrm/templates/snippets/create_status/review.html:16
+#: bookwyrm/templates/snippets/create_status/review.html:15
msgid "Title:"
msgstr ""
@@ -1652,7 +1649,7 @@ msgid "What are you reading?"
msgstr ""
#: bookwyrm/templates/get_started/books.html:9
-#: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:162
+#: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:163
msgid "Search for a book"
msgstr ""
@@ -1670,9 +1667,9 @@ msgstr ""
#: bookwyrm/templates/get_started/books.html:17
#: bookwyrm/templates/get_started/users.html:18
#: bookwyrm/templates/get_started/users.html:19
-#: bookwyrm/templates/groups/members.html:16
-#: bookwyrm/templates/groups/members.html:17 bookwyrm/templates/layout.html:53
-#: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:166
+#: bookwyrm/templates/groups/members.html:15
+#: bookwyrm/templates/groups/members.html:16 bookwyrm/templates/layout.html:53
+#: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:167
#: bookwyrm/templates/search/layout.html:4
#: bookwyrm/templates/search/layout.html:9
msgid "Search"
@@ -1688,7 +1685,7 @@ msgid "Popular on %(site_name)s"
msgstr ""
#: bookwyrm/templates/get_started/books.html:58
-#: bookwyrm/templates/lists/list.html:179
+#: bookwyrm/templates/lists/list.html:180
msgid "No books found"
msgstr ""
@@ -1793,7 +1790,7 @@ msgstr ""
#: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:49
#: bookwyrm/templates/settings/ip_blocklist/ip_blocklist.html:36
#: bookwyrm/templates/snippets/follow_request_buttons.html:12
-#: bookwyrm/templates/snippets/join_invitation_buttons.html:13
+#: bookwyrm/templates/snippets/join_invitation_buttons.html:14
msgid "Delete"
msgstr ""
@@ -1813,17 +1810,17 @@ msgstr ""
msgid "Delete group"
msgstr ""
-#: bookwyrm/templates/groups/group.html:22
+#: bookwyrm/templates/groups/group.html:21
msgid "Members of this group can create group-curated lists."
msgstr ""
-#: bookwyrm/templates/groups/group.html:27
+#: bookwyrm/templates/groups/group.html:26
#: bookwyrm/templates/lists/create_form.html:5
#: bookwyrm/templates/lists/lists.html:20
msgid "Create List"
msgstr ""
-#: bookwyrm/templates/groups/group.html:40
+#: bookwyrm/templates/groups/group.html:39
msgid "This group has no lists"
msgstr ""
@@ -1831,15 +1828,15 @@ msgstr ""
msgid "Edit group"
msgstr ""
-#: bookwyrm/templates/groups/members.html:12
+#: bookwyrm/templates/groups/members.html:11
msgid "Search to add a user"
msgstr ""
-#: bookwyrm/templates/groups/members.html:33
+#: bookwyrm/templates/groups/members.html:32
msgid "Leave group"
msgstr ""
-#: bookwyrm/templates/groups/members.html:55
+#: bookwyrm/templates/groups/members.html:54
#: bookwyrm/templates/groups/suggested_users.html:35
#: bookwyrm/templates/snippets/suggested_users.html:31
#: bookwyrm/templates/user/user_preview.html:36
@@ -2296,18 +2293,18 @@ msgstr ""
msgid "Edit List"
msgstr ""
-#: bookwyrm/templates/lists/embed-list.html:7
+#: bookwyrm/templates/lists/embed-list.html:8
#, python-format
msgid "%(list_name)s, a list by %(owner)s"
msgstr ""
-#: bookwyrm/templates/lists/embed-list.html:17
+#: bookwyrm/templates/lists/embed-list.html:18
#, python-format
msgid "on %(site_name)s"
msgstr ""
-#: bookwyrm/templates/lists/embed-list.html:26
-#: bookwyrm/templates/lists/list.html:42
+#: bookwyrm/templates/lists/embed-list.html:27
+#: bookwyrm/templates/lists/list.html:43
msgid "This list is currently empty"
msgstr ""
@@ -2368,76 +2365,76 @@ msgstr ""
msgid "Delete list"
msgstr ""
-#: bookwyrm/templates/lists/list.html:34
+#: bookwyrm/templates/lists/list.html:35
msgid "You successfully suggested a book for this list!"
msgstr ""
-#: bookwyrm/templates/lists/list.html:36
+#: bookwyrm/templates/lists/list.html:37
msgid "You successfully added a book to this list!"
msgstr ""
-#: bookwyrm/templates/lists/list.html:80
+#: bookwyrm/templates/lists/list.html:81
#, python-format
msgid "Added by %(username)s"
msgstr ""
-#: bookwyrm/templates/lists/list.html:95
+#: bookwyrm/templates/lists/list.html:96
msgid "List position"
msgstr ""
-#: bookwyrm/templates/lists/list.html:101
+#: bookwyrm/templates/lists/list.html:102
#: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:21
msgid "Set"
msgstr ""
-#: bookwyrm/templates/lists/list.html:116
-#: bookwyrm/templates/snippets/remove_from_group_button.html:19
+#: bookwyrm/templates/lists/list.html:117
+#: bookwyrm/templates/snippets/remove_from_group_button.html:20
msgid "Remove"
msgstr ""
-#: bookwyrm/templates/lists/list.html:130
-#: bookwyrm/templates/lists/list.html:147
+#: bookwyrm/templates/lists/list.html:131
+#: bookwyrm/templates/lists/list.html:148
msgid "Sort List"
msgstr ""
-#: bookwyrm/templates/lists/list.html:140
+#: bookwyrm/templates/lists/list.html:141
msgid "Direction"
msgstr ""
-#: bookwyrm/templates/lists/list.html:154
+#: bookwyrm/templates/lists/list.html:155
msgid "Add Books"
msgstr ""
-#: bookwyrm/templates/lists/list.html:156
+#: bookwyrm/templates/lists/list.html:157
msgid "Suggest Books"
msgstr ""
-#: bookwyrm/templates/lists/list.html:167
+#: bookwyrm/templates/lists/list.html:168
msgid "search"
msgstr ""
-#: bookwyrm/templates/lists/list.html:173
+#: bookwyrm/templates/lists/list.html:174
msgid "Clear search"
msgstr ""
-#: bookwyrm/templates/lists/list.html:178
+#: bookwyrm/templates/lists/list.html:179
#, python-format
msgid "No books found matching the query \"%(query)s\""
msgstr ""
-#: bookwyrm/templates/lists/list.html:210
+#: bookwyrm/templates/lists/list.html:211
msgid "Suggest"
msgstr ""
-#: bookwyrm/templates/lists/list.html:221
+#: bookwyrm/templates/lists/list.html:222
msgid "Embed this list on a website"
msgstr ""
-#: bookwyrm/templates/lists/list.html:229
+#: bookwyrm/templates/lists/list.html:230
msgid "Copy embed code"
msgstr ""
-#: bookwyrm/templates/lists/list.html:231
+#: bookwyrm/templates/lists/list.html:232
#, python-format
msgid "%(list_name)s, a list by %(owner)s on %(site_name)s"
msgstr ""
@@ -3913,15 +3910,15 @@ msgstr ""
msgid "This shelf is empty."
msgstr ""
-#: bookwyrm/templates/snippets/add_to_group_button.html:15
+#: bookwyrm/templates/snippets/add_to_group_button.html:16
msgid "Invite"
msgstr ""
-#: bookwyrm/templates/snippets/add_to_group_button.html:24
+#: bookwyrm/templates/snippets/add_to_group_button.html:25
msgid "Uninvite"
msgstr ""
-#: bookwyrm/templates/snippets/add_to_group_button.html:28
+#: bookwyrm/templates/snippets/add_to_group_button.html:29
#, python-format
msgid "Remove @%(username)s"
msgstr ""
@@ -4009,7 +4006,7 @@ msgstr ""
msgid "Include spoiler alert"
msgstr ""
-#: bookwyrm/templates/snippets/create_status/layout.html:48
+#: bookwyrm/templates/snippets/create_status/layout.html:47
#: bookwyrm/templates/snippets/reading_modals/form.html:7
msgid "Comment:"
msgstr ""
@@ -4018,33 +4015,33 @@ msgstr ""
msgid "Post"
msgstr ""
-#: bookwyrm/templates/snippets/create_status/quotation.html:17
+#: bookwyrm/templates/snippets/create_status/quotation.html:16
msgid "Quote:"
msgstr ""
-#: bookwyrm/templates/snippets/create_status/quotation.html:25
+#: bookwyrm/templates/snippets/create_status/quotation.html:24
#, python-format
msgid "An excerpt from '%(book_title)s'"
msgstr ""
-#: bookwyrm/templates/snippets/create_status/quotation.html:32
+#: bookwyrm/templates/snippets/create_status/quotation.html:31
msgid "Position:"
msgstr ""
-#: bookwyrm/templates/snippets/create_status/quotation.html:45
+#: bookwyrm/templates/snippets/create_status/quotation.html:44
msgid "On page:"
msgstr ""
-#: bookwyrm/templates/snippets/create_status/quotation.html:51
+#: bookwyrm/templates/snippets/create_status/quotation.html:50
msgid "At percent:"
msgstr ""
-#: bookwyrm/templates/snippets/create_status/review.html:25
+#: bookwyrm/templates/snippets/create_status/review.html:24
#, python-format
msgid "Your review of '%(book_title)s'"
msgstr ""
-#: bookwyrm/templates/snippets/create_status/review.html:40
+#: bookwyrm/templates/snippets/create_status/review.html:39
msgid "Review:"
msgstr ""
@@ -4098,7 +4095,7 @@ msgid "Unfollow"
msgstr ""
#: bookwyrm/templates/snippets/follow_request_buttons.html:7
-#: bookwyrm/templates/snippets/join_invitation_buttons.html:8
+#: bookwyrm/templates/snippets/join_invitation_buttons.html:9
msgid "Accept"
msgstr ""
@@ -4138,14 +4135,14 @@ msgstr[1] ""
#: bookwyrm/templates/snippets/generated_status/review_pure_name.html:4
#, python-format
-msgid "Review of \"%(book_title)s\" (%(display_rating)s star): %(review_title)s"
-msgid_plural "Review of \"%(book_title)s\" (%(display_rating)s stars): %(review_title)s"
+msgid "Review of \"%(book_title)s\" (%(display_rating)s star): %(review_title)s"
+msgid_plural "Review of \"%(book_title)s\" (%(display_rating)s stars): %(review_title)s"
msgstr[0] ""
msgstr[1] ""
#: bookwyrm/templates/snippets/generated_status/review_pure_name.html:12
#, python-format
-msgid "Review of \"%(book_title)s\": %(review_title)s"
+msgid "Review of \"%(book_title)s\": %(review_title)s"
msgstr ""
#: bookwyrm/templates/snippets/goal_form.html:4
@@ -4216,11 +4213,11 @@ msgstr ""
msgid "Post privacy"
msgstr ""
-#: bookwyrm/templates/snippets/rate_action.html:4
+#: bookwyrm/templates/snippets/rate_action.html:5
msgid "Leave a rating"
msgstr ""
-#: bookwyrm/templates/snippets/rate_action.html:19
+#: bookwyrm/templates/snippets/rate_action.html:20
msgid "Rate"
msgstr ""
@@ -4314,29 +4311,29 @@ msgstr ""
msgid "Finish reading"
msgstr ""
-#: bookwyrm/templates/snippets/status/content_status.html:72
+#: bookwyrm/templates/snippets/status/content_status.html:73
msgid "Content warning"
msgstr ""
-#: bookwyrm/templates/snippets/status/content_status.html:79
+#: bookwyrm/templates/snippets/status/content_status.html:80
msgid "Show status"
msgstr ""
-#: bookwyrm/templates/snippets/status/content_status.html:101
+#: bookwyrm/templates/snippets/status/content_status.html:102
#, python-format
msgid "(Page %(page)s)"
msgstr ""
-#: bookwyrm/templates/snippets/status/content_status.html:103
+#: bookwyrm/templates/snippets/status/content_status.html:104
#, python-format
msgid "(%(percent)s%%)"
msgstr ""
-#: bookwyrm/templates/snippets/status/content_status.html:125
+#: bookwyrm/templates/snippets/status/content_status.html:126
msgid "Open image in new window"
msgstr ""
-#: bookwyrm/templates/snippets/status/content_status.html:144
+#: bookwyrm/templates/snippets/status/content_status.html:145
msgid "Hide status"
msgstr ""
diff --git a/locale/es_ES/LC_MESSAGES/django.mo b/locale/es_ES/LC_MESSAGES/django.mo
index e4bb1d3d7..837c28e08 100644
Binary files a/locale/es_ES/LC_MESSAGES/django.mo and b/locale/es_ES/LC_MESSAGES/django.mo differ
diff --git a/locale/es_ES/LC_MESSAGES/django.po b/locale/es_ES/LC_MESSAGES/django.po
index ba66ae3e3..27bc07a87 100644
--- a/locale/es_ES/LC_MESSAGES/django.po
+++ b/locale/es_ES/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-01-17 16:05+0000\n"
-"PO-Revision-Date: 2022-01-17 17:10\n"
+"POT-Creation-Date: 2022-01-17 19:26+0000\n"
+"PO-Revision-Date: 2022-01-17 20:55\n"
"Last-Translator: Mouse Reeve \n"
"Language-Team: Spanish\n"
"Language: es\n"
@@ -84,7 +84,7 @@ 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:17 bookwyrm/models/link.py:62
+#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending"
@@ -132,7 +132,7 @@ msgstr "Tapa blanda"
msgid "Federated"
msgstr "Federalizado"
-#: bookwyrm/models/federated_server.py:12 bookwyrm/models/link.py:61
+#: bookwyrm/models/federated_server.py:12 bookwyrm/models/link.py:71
#: bookwyrm/templates/settings/federation/edit_instance.html:44
#: bookwyrm/templates/settings/federation/instance.html:10
#: bookwyrm/templates/settings/federation/instance_list.html:23
@@ -191,10 +191,22 @@ msgstr "Seguidores"
msgid "Private"
msgstr "Privado"
-#: bookwyrm/models/link.py:60
+#: bookwyrm/models/link.py:51
+msgid "Free"
+msgstr "Gratuito"
+
+#: bookwyrm/models/link.py:52
+msgid "Purchasable"
+msgstr "Disponible para compra"
+
+#: bookwyrm/models/link.py:53
+msgid "Available for loan"
+msgstr "Disponible para préstamo"
+
+#: bookwyrm/models/link.py:70
#: bookwyrm/templates/settings/link_domains/link_domains.html:23
msgid "Approved"
-msgstr ""
+msgstr "Aprobado"
#: bookwyrm/models/user.py:32 bookwyrm/templates/book/book.html:272
msgid "Reviews"
@@ -677,7 +689,8 @@ msgstr "ISNI:"
#: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:193
#: bookwyrm/templates/book/edit/edit_book.html:121
-#: bookwyrm/templates/book/file_links/add_link_modal.html:50
+#: bookwyrm/templates/book/file_links/add_link_modal.html:58
+#: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:30
#: bookwyrm/templates/lists/bookmark_button.html:15
#: bookwyrm/templates/lists/form.html:130
@@ -699,7 +712,7 @@ msgstr "Guardar"
#: bookwyrm/templates/book/cover_add_modal.html:32
#: bookwyrm/templates/book/edit/edit_book.html:123
#: bookwyrm/templates/book/edit/edit_book.html:126
-#: bookwyrm/templates/book/file_links/add_link_modal.html:52
+#: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/verification_modal.html:21
#: bookwyrm/templates/book/sync_modal.html:23
#: bookwyrm/templates/groups/delete_group_modal.html:17
@@ -1055,47 +1068,53 @@ msgstr "Buscar ediciones"
#: bookwyrm/templates/book/file_links/add_link_modal.html:6
msgid "Add file link"
-msgstr ""
+msgstr "Añadir enlace a archivo"
#: bookwyrm/templates/book/file_links/add_link_modal.html:19
msgid "Links from unknown domains will need to be approved by a moderator before they are added."
-msgstr ""
+msgstr "Los enlaces de dominios desconocidos tendrán que ser aprobados por un moderador antes de ser añadidos."
#: bookwyrm/templates/book/file_links/add_link_modal.html:24
msgid "URL:"
-msgstr ""
+msgstr "URL:"
#: bookwyrm/templates/book/file_links/add_link_modal.html:29
msgid "File type:"
-msgstr ""
+msgstr "Tipo de archivo:"
+
+#: bookwyrm/templates/book/file_links/add_link_modal.html:48
+msgid "Availability:"
+msgstr "Disponibilidad:"
#: bookwyrm/templates/book/file_links/edit_links.html:5
#: bookwyrm/templates/book/file_links/edit_links.html:22
-#: bookwyrm/templates/book/file_links/links.html:47
+#: bookwyrm/templates/book/file_links/links.html:53
msgid "Edit links"
-msgstr ""
+msgstr "Editar enlaces"
#: bookwyrm/templates/book/file_links/edit_links.html:11
#, python-format
msgid "\n"
" Links for \"%(title)s\"\n"
" "
-msgstr ""
+msgstr "\n"
+" Enlaces de \"%(title)s\"\n"
+" "
#: bookwyrm/templates/book/file_links/edit_links.html:32
#: bookwyrm/templates/settings/link_domains/link_table.html:6
msgid "URL"
-msgstr ""
+msgstr "URL"
#: bookwyrm/templates/book/file_links/edit_links.html:33
#: bookwyrm/templates/settings/link_domains/link_table.html:7
msgid "Added by"
-msgstr ""
+msgstr "Añadido por"
#: bookwyrm/templates/book/file_links/edit_links.html:34
#: bookwyrm/templates/settings/link_domains/link_table.html:8
msgid "Filetype"
-msgstr ""
+msgstr "Tipo de archivo"
#: bookwyrm/templates/book/file_links/edit_links.html:35
#: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:25
@@ -1104,49 +1123,60 @@ msgid "Domain"
msgstr "Dominio"
#: bookwyrm/templates/book/file_links/edit_links.html:36
+#: bookwyrm/templates/import/import_status.html:127
+#: bookwyrm/templates/settings/announcements/announcements.html:38
+#: bookwyrm/templates/settings/federation/instance_list.html:46
+#: bookwyrm/templates/settings/invites/manage_invite_requests.html:44
+#: bookwyrm/templates/settings/invites/status_filter.html:5
+#: bookwyrm/templates/settings/users/user_admin.html:34
+#: bookwyrm/templates/settings/users/user_info.html:20
+msgid "Status"
+msgstr "Estado"
+
+#: bookwyrm/templates/book/file_links/edit_links.html:37
#: bookwyrm/templates/settings/federation/instance.html:94
#: bookwyrm/templates/settings/reports/report_links_table.html:6
msgid "Actions"
msgstr "Acciones"
-#: bookwyrm/templates/book/file_links/edit_links.html:52
+#: bookwyrm/templates/book/file_links/edit_links.html:53
#: bookwyrm/templates/book/file_links/verification_modal.html:25
msgid "Report spam"
-msgstr ""
+msgstr "Denunciar spam"
-#: bookwyrm/templates/book/file_links/edit_links.html:65
+#: bookwyrm/templates/book/file_links/edit_links.html:97
msgid "No links available for this book."
-msgstr ""
+msgstr "Ningún enlace disponible para este libro."
-#: bookwyrm/templates/book/file_links/edit_links.html:76
+#: bookwyrm/templates/book/file_links/edit_links.html:108
#: bookwyrm/templates/book/file_links/links.html:18
msgid "Add link to file"
-msgstr ""
+msgstr "Añadir enlace a archivo"
#: bookwyrm/templates/book/file_links/file_link_page.html:6
msgid "File Links"
-msgstr ""
+msgstr "Enlaces a archivos"
#: bookwyrm/templates/book/file_links/links.html:9
msgid "Get a copy"
-msgstr ""
+msgstr "Obtener una copia"
-#: bookwyrm/templates/book/file_links/links.html:41
+#: bookwyrm/templates/book/file_links/links.html:47
msgid "No links available"
-msgstr ""
+msgstr "Ningún enlace disponible"
#: bookwyrm/templates/book/file_links/verification_modal.html:5
msgid "Leaving BookWyrm"
-msgstr ""
+msgstr "Saliendo de BookWyrm"
#: bookwyrm/templates/book/file_links/verification_modal.html:11
#, python-format
msgid "This link is taking you to: %(link_url)s
.
Is that where you'd like to go?"
-msgstr ""
+msgstr "Este enlace te lleva a: %(link_url)s
.
¿Es ahí adonde quieres ir?"
#: bookwyrm/templates/book/file_links/verification_modal.html:20
msgid "Continue"
-msgstr ""
+msgstr "Continuar"
#: bookwyrm/templates/book/publisher_info.html:23
#, python-format
@@ -1970,16 +2000,6 @@ msgstr "Reseña"
msgid "Book"
msgstr "Libro"
-#: bookwyrm/templates/import/import_status.html:127
-#: bookwyrm/templates/settings/announcements/announcements.html:38
-#: bookwyrm/templates/settings/federation/instance_list.html:46
-#: bookwyrm/templates/settings/invites/manage_invite_requests.html:44
-#: bookwyrm/templates/settings/invites/status_filter.html:5
-#: bookwyrm/templates/settings/users/user_admin.html:34
-#: bookwyrm/templates/settings/users/user_info.html:20
-msgid "Status"
-msgstr "Estado"
-
#: bookwyrm/templates/import/import_status.html:135
msgid "Import preview unavailable."
msgstr "Previsualización de la importación no disponible."
@@ -2028,8 +2048,8 @@ msgid "Reject"
msgstr "Rechazar"
#: bookwyrm/templates/import/tooltip.html:6
-msgid "You can download your Goodreads data from the Import/Export page of your Goodreads account."
-msgstr "Puede descargar sus datos de Goodreads desde la página de Importación/Exportación de su cuenta de Goodreads."
+msgid "You can download your Goodreads data from the Import/Export page of your Goodreads account."
+msgstr "Puedes descargar tus datos de Goodreads desde la página de importación/exportación de tu cuenta de Goodreads."
#: bookwyrm/templates/import/troubleshoot.html:7
msgid "Failed items"
@@ -3079,8 +3099,8 @@ msgstr[1] "%(display_count)s informes abiertos"
#, python-format
msgid "%(display_count)s domain needs review"
msgid_plural "%(display_count)s domains need review"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%(display_count)s dominio necesita revisión"
+msgstr[1] "%(display_count)s dominios necesitan revisión"
#: bookwyrm/templates/settings/dashboard/dashboard.html:65
#, python-format
@@ -3477,7 +3497,7 @@ msgstr "Informes"
#: bookwyrm/templates/settings/link_domains/link_domains.html:5
#: bookwyrm/templates/settings/link_domains/link_domains.html:7
msgid "Link Domains"
-msgstr ""
+msgstr "Dominios de enlaces"
#: bookwyrm/templates/settings/layout.html:72
msgid "Instance Settings"
@@ -3492,35 +3512,35 @@ msgstr "Configuración de sitio"
#: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:5
#, python-format
msgid "Set display name for %(url)s"
-msgstr ""
+msgstr "Establecer nombre con el que mostrar %(url)s"
#: bookwyrm/templates/settings/link_domains/link_domains.html:11
msgid "Link domains must be approved before they are shown on book pages. Please make sure that the domains are not hosting spam, malicious code, or deceptive links before approving."
-msgstr ""
+msgstr "Los dominios de enlaces deben ser aprobados antes de que se muestren en las páginas de libros. Por favor, asegúrate de que los dominios no contienen spam, código malicioso o enlaces engañosos antes de aprobarlos."
#: bookwyrm/templates/settings/link_domains/link_domains.html:45
msgid "Set display name"
-msgstr ""
+msgstr "Establecer nombre para mostrar"
#: bookwyrm/templates/settings/link_domains/link_domains.html:53
msgid "View links"
-msgstr ""
+msgstr "Ver enlaces"
#: bookwyrm/templates/settings/link_domains/link_domains.html:96
msgid "No domains currently approved"
-msgstr ""
+msgstr "Ningún dominio aprobado actualmente"
#: bookwyrm/templates/settings/link_domains/link_domains.html:98
msgid "No domains currently pending"
-msgstr ""
+msgstr "Ningún dominio pendiente actualmente"
#: bookwyrm/templates/settings/link_domains/link_domains.html:100
msgid "No domains currently blocked"
-msgstr ""
+msgstr "No hay dominios bloqueados actualmente"
#: bookwyrm/templates/settings/link_domains/link_table.html:39
msgid "No links available for this domain."
-msgstr ""
+msgstr "Ningún enlace disponible para este dominio."
#: bookwyrm/templates/settings/reports/report.html:11
msgid "Back to reports"
@@ -3536,7 +3556,7 @@ msgstr "El estado ha sido eliminado"
#: bookwyrm/templates/settings/reports/report.html:39
msgid "Reported links"
-msgstr ""
+msgstr "Enlaces denunciados"
#: bookwyrm/templates/settings/reports/report.html:55
msgid "Moderator Comments"
@@ -3550,21 +3570,21 @@ msgstr "Comentario"
#: bookwyrm/templates/settings/reports/report_header.html:6
#, python-format
msgid "Report #%(report_id)s: Status posted by @%(username)s"
-msgstr ""
+msgstr "Reporte #%(report_id)s: Estado publicado por @%(username)s"
#: bookwyrm/templates/settings/reports/report_header.html:12
#, python-format
msgid "Report #%(report_id)s: Link added by @%(username)s"
-msgstr ""
+msgstr "Reporte #%(report_id)s: Enlace añadido por @%(username)s"
#: bookwyrm/templates/settings/reports/report_header.html:18
#, python-format
msgid "Report #%(report_id)s: User @%(username)s"
-msgstr ""
+msgstr "Reporte #%(report_id)s: Usuario @%(username)s"
#: bookwyrm/templates/settings/reports/report_links_table.html:17
msgid "Block domain"
-msgstr ""
+msgstr "Bloquear dominio"
#: bookwyrm/templates/settings/reports/report_preview.html:17
msgid "No notes provided"
@@ -3573,7 +3593,7 @@ msgstr "No se proporcionó notas"
#: bookwyrm/templates/settings/reports/report_preview.html:24
#, python-format
msgid "Reported by @%(username)s"
-msgstr ""
+msgstr "Denunciado por @%(username)s"
#: bookwyrm/templates/settings/reports/report_preview.html:34
msgid "Re-open"
@@ -3819,7 +3839,7 @@ msgstr "Eliminado permanentemente"
#: bookwyrm/templates/settings/users/user_moderation_actions.html:8
msgid "User Actions"
-msgstr ""
+msgstr "Acciones de usuario"
#: bookwyrm/templates/settings/users/user_moderation_actions.html:21
msgid "Suspend user"
@@ -4236,12 +4256,12 @@ msgstr "Inscribirse"
#: bookwyrm/templates/snippets/report_modal.html:8
#, python-format
msgid "Report @%(username)s's status"
-msgstr ""
+msgstr "Denunciar el estado de @%(username)s"
#: bookwyrm/templates/snippets/report_modal.html:10
#, python-format
msgid "Report %(domain)s link"
-msgstr ""
+msgstr "Denunciar el enlace a %(domain)s"
#: bookwyrm/templates/snippets/report_modal.html:12
#, python-format
@@ -4255,7 +4275,7 @@ msgstr "Este informe se enviará a los moderadores de %(site_name)s para la revi
#: bookwyrm/templates/snippets/report_modal.html:36
msgid "Links from this domain will be removed until your report has been reviewed."
-msgstr ""
+msgstr "Los enlaces a este dominio se eliminarán hasta que tu denuncia haya sido revisada."
#: bookwyrm/templates/snippets/report_modal.html:41
msgid "More info about this report:"
@@ -4295,29 +4315,29 @@ msgstr "Quitar de %(name)s"
msgid "Finish reading"
msgstr "Terminar de leer"
-#: bookwyrm/templates/snippets/status/content_status.html:75
+#: bookwyrm/templates/snippets/status/content_status.html:72
msgid "Content warning"
msgstr "Advertencia de contenido"
-#: bookwyrm/templates/snippets/status/content_status.html:82
+#: bookwyrm/templates/snippets/status/content_status.html:79
msgid "Show status"
msgstr "Mostrar estado"
-#: bookwyrm/templates/snippets/status/content_status.html:104
+#: bookwyrm/templates/snippets/status/content_status.html:101
#, python-format
msgid "(Page %(page)s)"
msgstr "(Página %(page)s)"
-#: bookwyrm/templates/snippets/status/content_status.html:106
+#: bookwyrm/templates/snippets/status/content_status.html:103
#, python-format
msgid "(%(percent)s%%)"
msgstr "(%(percent)s%%)"
-#: bookwyrm/templates/snippets/status/content_status.html:128
+#: bookwyrm/templates/snippets/status/content_status.html:125
msgid "Open image in new window"
msgstr "Abrir imagen en una nueva ventana"
-#: bookwyrm/templates/snippets/status/content_status.html:147
+#: bookwyrm/templates/snippets/status/content_status.html:144
msgid "Hide status"
msgstr "Ocultar estado"
diff --git a/locale/fr_FR/LC_MESSAGES/django.po b/locale/fr_FR/LC_MESSAGES/django.po
index fcd2499ee..fb2b93dc5 100644
--- a/locale/fr_FR/LC_MESSAGES/django.po
+++ b/locale/fr_FR/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-01-17 16:05+0000\n"
-"PO-Revision-Date: 2022-01-17 17:10\n"
+"POT-Creation-Date: 2022-01-17 19:26+0000\n"
+"PO-Revision-Date: 2022-01-17 20:55\n"
"Last-Translator: Mouse Reeve \n"
"Language-Team: French\n"
"Language: fr\n"
@@ -84,7 +84,7 @@ msgstr "Erreur lors du chargement du livre"
msgid "Could not find a match for book"
msgstr "Impossible de trouver une correspondance pour le livre"
-#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:62
+#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending"
@@ -132,7 +132,7 @@ msgstr "Couverture souple"
msgid "Federated"
msgstr "Fédéré"
-#: bookwyrm/models/federated_server.py:12 bookwyrm/models/link.py:61
+#: bookwyrm/models/federated_server.py:12 bookwyrm/models/link.py:71
#: bookwyrm/templates/settings/federation/edit_instance.html:44
#: bookwyrm/templates/settings/federation/instance.html:10
#: bookwyrm/templates/settings/federation/instance_list.html:23
@@ -191,10 +191,22 @@ msgstr "Abonné(e)s"
msgid "Private"
msgstr "Privé"
-#: bookwyrm/models/link.py:60
+#: bookwyrm/models/link.py:51
+msgid "Free"
+msgstr "Gratuit"
+
+#: bookwyrm/models/link.py:52
+msgid "Purchasable"
+msgstr "Disponible à l’achat"
+
+#: bookwyrm/models/link.py:53
+msgid "Available for loan"
+msgstr "Disponible à l’emprunt"
+
+#: bookwyrm/models/link.py:70
#: bookwyrm/templates/settings/link_domains/link_domains.html:23
msgid "Approved"
-msgstr ""
+msgstr "Approuvé"
#: bookwyrm/models/user.py:32 bookwyrm/templates/book/book.html:272
msgid "Reviews"
@@ -677,7 +689,8 @@ msgstr "ISNI :"
#: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:193
#: bookwyrm/templates/book/edit/edit_book.html:121
-#: bookwyrm/templates/book/file_links/add_link_modal.html:50
+#: bookwyrm/templates/book/file_links/add_link_modal.html:58
+#: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:30
#: bookwyrm/templates/lists/bookmark_button.html:15
#: bookwyrm/templates/lists/form.html:130
@@ -699,7 +712,7 @@ msgstr "Enregistrer"
#: bookwyrm/templates/book/cover_add_modal.html:32
#: bookwyrm/templates/book/edit/edit_book.html:123
#: bookwyrm/templates/book/edit/edit_book.html:126
-#: bookwyrm/templates/book/file_links/add_link_modal.html:52
+#: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/verification_modal.html:21
#: bookwyrm/templates/book/sync_modal.html:23
#: bookwyrm/templates/groups/delete_group_modal.html:17
@@ -1055,47 +1068,53 @@ msgstr "Rechercher des éditions"
#: bookwyrm/templates/book/file_links/add_link_modal.html:6
msgid "Add file link"
-msgstr ""
+msgstr "Ajouter un lien vers un fichier"
#: bookwyrm/templates/book/file_links/add_link_modal.html:19
msgid "Links from unknown domains will need to be approved by a moderator before they are added."
-msgstr ""
+msgstr "Les liens vers des domaines inconnus devront être modérés avant d'être ajoutés."
#: bookwyrm/templates/book/file_links/add_link_modal.html:24
msgid "URL:"
-msgstr ""
+msgstr "URL :"
#: bookwyrm/templates/book/file_links/add_link_modal.html:29
msgid "File type:"
-msgstr ""
+msgstr "Type de fichier :"
+
+#: bookwyrm/templates/book/file_links/add_link_modal.html:48
+msgid "Availability:"
+msgstr "Disponibilité :"
#: bookwyrm/templates/book/file_links/edit_links.html:5
#: bookwyrm/templates/book/file_links/edit_links.html:22
-#: bookwyrm/templates/book/file_links/links.html:47
+#: bookwyrm/templates/book/file_links/links.html:53
msgid "Edit links"
-msgstr ""
+msgstr "Modifier les liens"
#: bookwyrm/templates/book/file_links/edit_links.html:11
#, python-format
msgid "\n"
" Links for \"%(title)s\"\n"
" "
-msgstr ""
+msgstr "\n"
+" Liens pour \"%(title)s\"\n"
+" "
#: bookwyrm/templates/book/file_links/edit_links.html:32
#: bookwyrm/templates/settings/link_domains/link_table.html:6
msgid "URL"
-msgstr ""
+msgstr "URL"
#: bookwyrm/templates/book/file_links/edit_links.html:33
#: bookwyrm/templates/settings/link_domains/link_table.html:7
msgid "Added by"
-msgstr ""
+msgstr "Ajouté par"
#: bookwyrm/templates/book/file_links/edit_links.html:34
#: bookwyrm/templates/settings/link_domains/link_table.html:8
msgid "Filetype"
-msgstr ""
+msgstr "Type de fichier"
#: bookwyrm/templates/book/file_links/edit_links.html:35
#: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:25
@@ -1104,49 +1123,60 @@ msgid "Domain"
msgstr "Domaine"
#: bookwyrm/templates/book/file_links/edit_links.html:36
+#: bookwyrm/templates/import/import_status.html:127
+#: bookwyrm/templates/settings/announcements/announcements.html:38
+#: bookwyrm/templates/settings/federation/instance_list.html:46
+#: bookwyrm/templates/settings/invites/manage_invite_requests.html:44
+#: bookwyrm/templates/settings/invites/status_filter.html:5
+#: bookwyrm/templates/settings/users/user_admin.html:34
+#: bookwyrm/templates/settings/users/user_info.html:20
+msgid "Status"
+msgstr "Statut"
+
+#: bookwyrm/templates/book/file_links/edit_links.html:37
#: bookwyrm/templates/settings/federation/instance.html:94
#: bookwyrm/templates/settings/reports/report_links_table.html:6
msgid "Actions"
msgstr "Actions"
-#: bookwyrm/templates/book/file_links/edit_links.html:52
+#: bookwyrm/templates/book/file_links/edit_links.html:53
#: bookwyrm/templates/book/file_links/verification_modal.html:25
msgid "Report spam"
-msgstr ""
+msgstr "Signaler un spam"
-#: bookwyrm/templates/book/file_links/edit_links.html:65
+#: bookwyrm/templates/book/file_links/edit_links.html:97
msgid "No links available for this book."
-msgstr ""
+msgstr "Aucun lien disponible pour ce livre."
-#: bookwyrm/templates/book/file_links/edit_links.html:76
+#: bookwyrm/templates/book/file_links/edit_links.html:108
#: bookwyrm/templates/book/file_links/links.html:18
msgid "Add link to file"
-msgstr ""
+msgstr "Ajouter un lien vers un fichier"
#: bookwyrm/templates/book/file_links/file_link_page.html:6
msgid "File Links"
-msgstr ""
+msgstr "Liens vers un fichier"
#: bookwyrm/templates/book/file_links/links.html:9
msgid "Get a copy"
-msgstr ""
+msgstr "Obtenir une copie"
-#: bookwyrm/templates/book/file_links/links.html:41
+#: bookwyrm/templates/book/file_links/links.html:47
msgid "No links available"
-msgstr ""
+msgstr "Aucun lien disponible"
#: bookwyrm/templates/book/file_links/verification_modal.html:5
msgid "Leaving BookWyrm"
-msgstr ""
+msgstr "Vous quittez BookWyrm"
#: bookwyrm/templates/book/file_links/verification_modal.html:11
#, python-format
msgid "This link is taking you to: %(link_url)s
.
Is that where you'd like to go?"
-msgstr ""
+msgstr "Ce lien vous amène à %(link_url)s
.
Est-ce là que vous souhaitez aller ?"
#: bookwyrm/templates/book/file_links/verification_modal.html:20
msgid "Continue"
-msgstr ""
+msgstr "Continuer"
#: bookwyrm/templates/book/publisher_info.html:23
#, python-format
@@ -1970,16 +2000,6 @@ msgstr "Critique"
msgid "Book"
msgstr "Livre"
-#: bookwyrm/templates/import/import_status.html:127
-#: bookwyrm/templates/settings/announcements/announcements.html:38
-#: bookwyrm/templates/settings/federation/instance_list.html:46
-#: bookwyrm/templates/settings/invites/manage_invite_requests.html:44
-#: bookwyrm/templates/settings/invites/status_filter.html:5
-#: bookwyrm/templates/settings/users/user_admin.html:34
-#: bookwyrm/templates/settings/users/user_info.html:20
-msgid "Status"
-msgstr "Statut"
-
#: bookwyrm/templates/import/import_status.html:135
msgid "Import preview unavailable."
msgstr "Aperçu de l'importation indisponible."
@@ -2028,8 +2048,8 @@ msgid "Reject"
msgstr "Rejeter"
#: bookwyrm/templates/import/tooltip.html:6
-msgid "You can download your Goodreads data from the Import/Export page of your Goodreads account."
-msgstr "Vous pouvez télécharger vos données GoodReads depuis la page Import/Export de votre compte GoodReads."
+msgid "You can download your Goodreads data from the Import/Export page of your Goodreads account."
+msgstr "Vous pouvez télécharger vos données Goodreads depuis la page Import/Export de votre compte Goodreads."
#: bookwyrm/templates/import/troubleshoot.html:7
msgid "Failed items"
@@ -3079,8 +3099,8 @@ msgstr[1] "%(display_count)s signalements ouverts"
#, python-format
msgid "%(display_count)s domain needs review"
msgid_plural "%(display_count)s domains need review"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%(display_count)s domaine doit être vérifié"
+msgstr[1] "%(display_count)s domaines doivent être vérifiés"
#: bookwyrm/templates/settings/dashboard/dashboard.html:65
#, python-format
@@ -3477,7 +3497,7 @@ msgstr "Signalements"
#: bookwyrm/templates/settings/link_domains/link_domains.html:5
#: bookwyrm/templates/settings/link_domains/link_domains.html:7
msgid "Link Domains"
-msgstr ""
+msgstr "Domaines liés"
#: bookwyrm/templates/settings/layout.html:72
msgid "Instance Settings"
@@ -3492,35 +3512,35 @@ msgstr "Paramètres du site"
#: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:5
#, python-format
msgid "Set display name for %(url)s"
-msgstr ""
+msgstr "Définir le nom affiché pour %(url)s"
#: bookwyrm/templates/settings/link_domains/link_domains.html:11
msgid "Link domains must be approved before they are shown on book pages. Please make sure that the domains are not hosting spam, malicious code, or deceptive links before approving."
-msgstr ""
+msgstr "Les domaines liés doivent être approuvés avant d’être montrés sur les pages des livres. Assurez-vous que ces domaines n’hébergent pas du spam, du code malicieux ou des liens falsifiés avant de les approuver."
#: bookwyrm/templates/settings/link_domains/link_domains.html:45
msgid "Set display name"
-msgstr ""
+msgstr "Définir le nom à afficher"
#: bookwyrm/templates/settings/link_domains/link_domains.html:53
msgid "View links"
-msgstr ""
+msgstr "Voir les liens"
#: bookwyrm/templates/settings/link_domains/link_domains.html:96
msgid "No domains currently approved"
-msgstr ""
+msgstr "Aucun domaine actuellement approuvé"
#: bookwyrm/templates/settings/link_domains/link_domains.html:98
msgid "No domains currently pending"
-msgstr ""
+msgstr "Aucun domaine en attente"
#: bookwyrm/templates/settings/link_domains/link_domains.html:100
msgid "No domains currently blocked"
-msgstr ""
+msgstr "Aucun domaine actuellement bloqué"
#: bookwyrm/templates/settings/link_domains/link_table.html:39
msgid "No links available for this domain."
-msgstr ""
+msgstr "Aucun lien n’est disponible pour ce domaine."
#: bookwyrm/templates/settings/reports/report.html:11
msgid "Back to reports"
@@ -3536,7 +3556,7 @@ msgstr "Le statut a été supprimé"
#: bookwyrm/templates/settings/reports/report.html:39
msgid "Reported links"
-msgstr ""
+msgstr "Liens signalés"
#: bookwyrm/templates/settings/reports/report.html:55
msgid "Moderator Comments"
@@ -3550,21 +3570,21 @@ msgstr "Commentaire"
#: bookwyrm/templates/settings/reports/report_header.html:6
#, python-format
msgid "Report #%(report_id)s: Status posted by @%(username)s"
-msgstr ""
+msgstr "Signalement #%(report_id)s : statut posté par @%(username)s"
#: bookwyrm/templates/settings/reports/report_header.html:12
#, python-format
msgid "Report #%(report_id)s: Link added by @%(username)s"
-msgstr ""
+msgstr "Signalement #%(report_id)s : lien ajouté par @%(username)s"
#: bookwyrm/templates/settings/reports/report_header.html:18
#, python-format
msgid "Report #%(report_id)s: User @%(username)s"
-msgstr ""
+msgstr "Signalement #%(report_id)s : compte @%(username)s"
#: bookwyrm/templates/settings/reports/report_links_table.html:17
msgid "Block domain"
-msgstr ""
+msgstr "Bloquer le domaine"
#: bookwyrm/templates/settings/reports/report_preview.html:17
msgid "No notes provided"
@@ -3573,7 +3593,7 @@ msgstr "Aucune note fournie"
#: bookwyrm/templates/settings/reports/report_preview.html:24
#, python-format
msgid "Reported by @%(username)s"
-msgstr ""
+msgstr "Signalé par @%(username)s"
#: bookwyrm/templates/settings/reports/report_preview.html:34
msgid "Re-open"
@@ -3819,7 +3839,7 @@ msgstr "Supprimé définitivement"
#: bookwyrm/templates/settings/users/user_moderation_actions.html:8
msgid "User Actions"
-msgstr ""
+msgstr "Actions de l'utilisateur"
#: bookwyrm/templates/settings/users/user_moderation_actions.html:21
msgid "Suspend user"
@@ -4236,12 +4256,12 @@ msgstr "S’enregistrer"
#: bookwyrm/templates/snippets/report_modal.html:8
#, python-format
msgid "Report @%(username)s's status"
-msgstr ""
+msgstr "Signaler le statut de @%(username)s"
#: bookwyrm/templates/snippets/report_modal.html:10
#, python-format
msgid "Report %(domain)s link"
-msgstr ""
+msgstr "Signaler le lien de %(domain)s"
#: bookwyrm/templates/snippets/report_modal.html:12
#, python-format
@@ -4255,7 +4275,7 @@ msgstr "Ce signalement sera envoyé à l’équipe de modération de %(site_name
#: bookwyrm/templates/snippets/report_modal.html:36
msgid "Links from this domain will be removed until your report has been reviewed."
-msgstr ""
+msgstr "Les liens vers ce domaine seront retirés jusqu’à ce que votre signalement ait été vérifié."
#: bookwyrm/templates/snippets/report_modal.html:41
msgid "More info about this report:"
@@ -4295,29 +4315,29 @@ msgstr "Retirer de %(name)s"
msgid "Finish reading"
msgstr "Terminer la lecture"
-#: bookwyrm/templates/snippets/status/content_status.html:75
+#: bookwyrm/templates/snippets/status/content_status.html:72
msgid "Content warning"
msgstr "Avertissement sur le contenu"
-#: bookwyrm/templates/snippets/status/content_status.html:82
+#: bookwyrm/templates/snippets/status/content_status.html:79
msgid "Show status"
msgstr "Afficher le statut"
-#: bookwyrm/templates/snippets/status/content_status.html:104
+#: bookwyrm/templates/snippets/status/content_status.html:101
#, python-format
msgid "(Page %(page)s)"
msgstr "(Page %(page)s)"
-#: bookwyrm/templates/snippets/status/content_status.html:106
+#: bookwyrm/templates/snippets/status/content_status.html:103
#, python-format
msgid "(%(percent)s%%)"
msgstr "(%(percent)s%%)"
-#: bookwyrm/templates/snippets/status/content_status.html:128
+#: bookwyrm/templates/snippets/status/content_status.html:125
msgid "Open image in new window"
msgstr "Ouvrir l’image dans une nouvelle fenêtre"
-#: bookwyrm/templates/snippets/status/content_status.html:147
+#: bookwyrm/templates/snippets/status/content_status.html:144
msgid "Hide status"
msgstr "Masquer le statut"
diff --git a/locale/gl_ES/LC_MESSAGES/django.mo b/locale/gl_ES/LC_MESSAGES/django.mo
index 7268a529f..800ecc36c 100644
Binary files a/locale/gl_ES/LC_MESSAGES/django.mo and b/locale/gl_ES/LC_MESSAGES/django.mo differ
diff --git a/locale/gl_ES/LC_MESSAGES/django.po b/locale/gl_ES/LC_MESSAGES/django.po
index b8a0a1e6b..554b764fa 100644
--- a/locale/gl_ES/LC_MESSAGES/django.po
+++ b/locale/gl_ES/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-01-17 16:05+0000\n"
-"PO-Revision-Date: 2022-01-17 17:10\n"
+"POT-Creation-Date: 2022-01-17 19:26+0000\n"
+"PO-Revision-Date: 2022-01-18 06:22\n"
"Last-Translator: Mouse Reeve \n"
"Language-Team: Galician\n"
"Language: gl\n"
@@ -84,7 +84,7 @@ msgstr "Erro ao cargar o libro"
msgid "Could not find a match for book"
msgstr "Non se atopan coincidencias para o libro"
-#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:62
+#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending"
@@ -132,7 +132,7 @@ msgstr "En rústica"
msgid "Federated"
msgstr "Federado"
-#: bookwyrm/models/federated_server.py:12 bookwyrm/models/link.py:61
+#: bookwyrm/models/federated_server.py:12 bookwyrm/models/link.py:71
#: bookwyrm/templates/settings/federation/edit_instance.html:44
#: bookwyrm/templates/settings/federation/instance.html:10
#: bookwyrm/templates/settings/federation/instance_list.html:23
@@ -191,10 +191,22 @@ msgstr "Seguidoras"
msgid "Private"
msgstr "Privado"
-#: bookwyrm/models/link.py:60
+#: bookwyrm/models/link.py:51
+msgid "Free"
+msgstr "Gratuíto"
+
+#: bookwyrm/models/link.py:52
+msgid "Purchasable"
+msgstr "Dispoñible"
+
+#: bookwyrm/models/link.py:53
+msgid "Available for loan"
+msgstr "Dispoñible para aluguer"
+
+#: bookwyrm/models/link.py:70
#: bookwyrm/templates/settings/link_domains/link_domains.html:23
msgid "Approved"
-msgstr ""
+msgstr "Aprobado"
#: bookwyrm/models/user.py:32 bookwyrm/templates/book/book.html:272
msgid "Reviews"
@@ -677,7 +689,8 @@ msgstr "ISNI:"
#: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:193
#: bookwyrm/templates/book/edit/edit_book.html:121
-#: bookwyrm/templates/book/file_links/add_link_modal.html:50
+#: bookwyrm/templates/book/file_links/add_link_modal.html:58
+#: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:30
#: bookwyrm/templates/lists/bookmark_button.html:15
#: bookwyrm/templates/lists/form.html:130
@@ -699,7 +712,7 @@ msgstr "Gardar"
#: bookwyrm/templates/book/cover_add_modal.html:32
#: bookwyrm/templates/book/edit/edit_book.html:123
#: bookwyrm/templates/book/edit/edit_book.html:126
-#: bookwyrm/templates/book/file_links/add_link_modal.html:52
+#: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/verification_modal.html:21
#: bookwyrm/templates/book/sync_modal.html:23
#: bookwyrm/templates/groups/delete_group_modal.html:17
@@ -1055,47 +1068,53 @@ msgstr "Buscar edicións"
#: bookwyrm/templates/book/file_links/add_link_modal.html:6
msgid "Add file link"
-msgstr ""
+msgstr "Engadir ligazón ao ficheiro"
#: bookwyrm/templates/book/file_links/add_link_modal.html:19
msgid "Links from unknown domains will need to be approved by a moderator before they are added."
-msgstr ""
+msgstr "As ligazóns a dominios descoñecidos teñen que ser aprobados pola moderación antes de ser engadidos."
#: bookwyrm/templates/book/file_links/add_link_modal.html:24
msgid "URL:"
-msgstr ""
+msgstr "URL:"
#: bookwyrm/templates/book/file_links/add_link_modal.html:29
msgid "File type:"
-msgstr ""
+msgstr "Tipo de ficheiro:"
+
+#: bookwyrm/templates/book/file_links/add_link_modal.html:48
+msgid "Availability:"
+msgstr "Dispoñibilidade:"
#: bookwyrm/templates/book/file_links/edit_links.html:5
#: bookwyrm/templates/book/file_links/edit_links.html:22
-#: bookwyrm/templates/book/file_links/links.html:47
+#: bookwyrm/templates/book/file_links/links.html:53
msgid "Edit links"
-msgstr ""
+msgstr "Editar ligazóns"
#: bookwyrm/templates/book/file_links/edit_links.html:11
#, python-format
msgid "\n"
" Links for \"%(title)s\"\n"
" "
-msgstr ""
+msgstr "\n"
+"Ligazóns para \"%(title)s\"\n"
+" "
#: bookwyrm/templates/book/file_links/edit_links.html:32
#: bookwyrm/templates/settings/link_domains/link_table.html:6
msgid "URL"
-msgstr ""
+msgstr "URL"
#: bookwyrm/templates/book/file_links/edit_links.html:33
#: bookwyrm/templates/settings/link_domains/link_table.html:7
msgid "Added by"
-msgstr ""
+msgstr "Engadido por"
#: bookwyrm/templates/book/file_links/edit_links.html:34
#: bookwyrm/templates/settings/link_domains/link_table.html:8
msgid "Filetype"
-msgstr ""
+msgstr "Tipo de ficheiro"
#: bookwyrm/templates/book/file_links/edit_links.html:35
#: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:25
@@ -1104,49 +1123,60 @@ msgid "Domain"
msgstr "Dominio"
#: bookwyrm/templates/book/file_links/edit_links.html:36
+#: bookwyrm/templates/import/import_status.html:127
+#: bookwyrm/templates/settings/announcements/announcements.html:38
+#: bookwyrm/templates/settings/federation/instance_list.html:46
+#: bookwyrm/templates/settings/invites/manage_invite_requests.html:44
+#: bookwyrm/templates/settings/invites/status_filter.html:5
+#: bookwyrm/templates/settings/users/user_admin.html:34
+#: bookwyrm/templates/settings/users/user_info.html:20
+msgid "Status"
+msgstr "Estado"
+
+#: bookwyrm/templates/book/file_links/edit_links.html:37
#: bookwyrm/templates/settings/federation/instance.html:94
#: bookwyrm/templates/settings/reports/report_links_table.html:6
msgid "Actions"
msgstr "Accións"
-#: bookwyrm/templates/book/file_links/edit_links.html:52
+#: bookwyrm/templates/book/file_links/edit_links.html:53
#: bookwyrm/templates/book/file_links/verification_modal.html:25
msgid "Report spam"
-msgstr ""
+msgstr "Denunciar spam"
-#: bookwyrm/templates/book/file_links/edit_links.html:65
+#: bookwyrm/templates/book/file_links/edit_links.html:97
msgid "No links available for this book."
-msgstr ""
+msgstr "Sen ligazóns para para este libro."
-#: bookwyrm/templates/book/file_links/edit_links.html:76
+#: bookwyrm/templates/book/file_links/edit_links.html:108
#: bookwyrm/templates/book/file_links/links.html:18
msgid "Add link to file"
-msgstr ""
+msgstr "Engadir ligazón ao ficheiro"
#: bookwyrm/templates/book/file_links/file_link_page.html:6
msgid "File Links"
-msgstr ""
+msgstr "Ligazóns do ficheiro"
#: bookwyrm/templates/book/file_links/links.html:9
msgid "Get a copy"
-msgstr ""
+msgstr "Obter unha copia"
-#: bookwyrm/templates/book/file_links/links.html:41
+#: bookwyrm/templates/book/file_links/links.html:47
msgid "No links available"
-msgstr ""
+msgstr "Sen ligazóns dispoñibles"
#: bookwyrm/templates/book/file_links/verification_modal.html:5
msgid "Leaving BookWyrm"
-msgstr ""
+msgstr "Saír de BookWyrm"
#: bookwyrm/templates/book/file_links/verification_modal.html:11
#, python-format
msgid "This link is taking you to: %(link_url)s
.
Is that where you'd like to go?"
-msgstr ""
+msgstr "Esta ligazón vaite levar a: %(link_url)s
.
É ahí a onde queres ir?"
#: bookwyrm/templates/book/file_links/verification_modal.html:20
msgid "Continue"
-msgstr ""
+msgstr "Continuar"
#: bookwyrm/templates/book/publisher_info.html:23
#, python-format
@@ -1970,16 +2000,6 @@ msgstr "Revisar"
msgid "Book"
msgstr "Libro"
-#: bookwyrm/templates/import/import_status.html:127
-#: bookwyrm/templates/settings/announcements/announcements.html:38
-#: bookwyrm/templates/settings/federation/instance_list.html:46
-#: bookwyrm/templates/settings/invites/manage_invite_requests.html:44
-#: bookwyrm/templates/settings/invites/status_filter.html:5
-#: bookwyrm/templates/settings/users/user_admin.html:34
-#: bookwyrm/templates/settings/users/user_info.html:20
-msgid "Status"
-msgstr "Estado"
-
#: bookwyrm/templates/import/import_status.html:135
msgid "Import preview unavailable."
msgstr "Non dispoñible vista previa da importación."
@@ -2028,8 +2048,8 @@ msgid "Reject"
msgstr "Rexeitar"
#: bookwyrm/templates/import/tooltip.html:6
-msgid "You can download your Goodreads data from the Import/Export page of your Goodreads account."
-msgstr "Podes descargar os teus datos en Goodreads desde a páxina de Importación/Exportación na túa conta Goodreads."
+msgid "You can download your Goodreads data from the Import/Export page of your Goodreads account."
+msgstr "Podes descargar os teus datos de Goodreads desde a páxina de Exportación/Importación da túa conta Goodreads."
#: bookwyrm/templates/import/troubleshoot.html:7
msgid "Failed items"
@@ -3079,8 +3099,8 @@ msgstr[1] "%(display_count)s denuncias abertas"
#, python-format
msgid "%(display_count)s domain needs review"
msgid_plural "%(display_count)s domains need review"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "hai que revisar %(display_count)s dominio"
+msgstr[1] "hai que revisar %(display_count)s dominios"
#: bookwyrm/templates/settings/dashboard/dashboard.html:65
#, python-format
@@ -3477,7 +3497,7 @@ msgstr "Denuncias"
#: bookwyrm/templates/settings/link_domains/link_domains.html:5
#: bookwyrm/templates/settings/link_domains/link_domains.html:7
msgid "Link Domains"
-msgstr ""
+msgstr "Dominios das ligazóns"
#: bookwyrm/templates/settings/layout.html:72
msgid "Instance Settings"
@@ -3492,35 +3512,35 @@ msgstr "Axustes da web"
#: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:5
#, python-format
msgid "Set display name for %(url)s"
-msgstr ""
+msgstr "Nome público para %(url)s"
#: bookwyrm/templates/settings/link_domains/link_domains.html:11
msgid "Link domains must be approved before they are shown on book pages. Please make sure that the domains are not hosting spam, malicious code, or deceptive links before approving."
-msgstr ""
+msgstr "As ligazóns a dominios teñen que ser aprobadas para mostralas nas páxinas dos libros. Pon coidado en que non sexan spam, código pernicioso, ou ligazóns estragadas antes de aprobalas."
#: bookwyrm/templates/settings/link_domains/link_domains.html:45
msgid "Set display name"
-msgstr ""
+msgstr "Establecer nome público"
#: bookwyrm/templates/settings/link_domains/link_domains.html:53
msgid "View links"
-msgstr ""
+msgstr "Ver ligazóns"
#: bookwyrm/templates/settings/link_domains/link_domains.html:96
msgid "No domains currently approved"
-msgstr ""
+msgstr "Non hai dominios aprobados"
#: bookwyrm/templates/settings/link_domains/link_domains.html:98
msgid "No domains currently pending"
-msgstr ""
+msgstr "Non hai dominios pendentes"
#: bookwyrm/templates/settings/link_domains/link_domains.html:100
msgid "No domains currently blocked"
-msgstr ""
+msgstr "Non hai dominios bloqueados"
#: bookwyrm/templates/settings/link_domains/link_table.html:39
msgid "No links available for this domain."
-msgstr ""
+msgstr "Non hai ligazóns dispoñibles para este dominio."
#: bookwyrm/templates/settings/reports/report.html:11
msgid "Back to reports"
@@ -3536,7 +3556,7 @@ msgstr "O estado foi eliminado"
#: bookwyrm/templates/settings/reports/report.html:39
msgid "Reported links"
-msgstr ""
+msgstr "Ligazóns denunciadas"
#: bookwyrm/templates/settings/reports/report.html:55
msgid "Moderator Comments"
@@ -3550,21 +3570,21 @@ msgstr "Comentario"
#: bookwyrm/templates/settings/reports/report_header.html:6
#, python-format
msgid "Report #%(report_id)s: Status posted by @%(username)s"
-msgstr ""
+msgstr "Denuncia #%(report_id)s: Estado publicado por @%(username)s"
#: bookwyrm/templates/settings/reports/report_header.html:12
#, python-format
msgid "Report #%(report_id)s: Link added by @%(username)s"
-msgstr ""
+msgstr "Denuncia #%(report_id)s: Ligazón engadida por @%(username)s"
#: bookwyrm/templates/settings/reports/report_header.html:18
#, python-format
msgid "Report #%(report_id)s: User @%(username)s"
-msgstr ""
+msgstr "Denuncia #%(report_id)s: Usuaria @%(username)s"
#: bookwyrm/templates/settings/reports/report_links_table.html:17
msgid "Block domain"
-msgstr ""
+msgstr "Bloquear dominio"
#: bookwyrm/templates/settings/reports/report_preview.html:17
msgid "No notes provided"
@@ -3573,7 +3593,7 @@ msgstr "Non hai notas"
#: bookwyrm/templates/settings/reports/report_preview.html:24
#, python-format
msgid "Reported by @%(username)s"
-msgstr ""
+msgstr "Denunciado por @%(username)s"
#: bookwyrm/templates/settings/reports/report_preview.html:34
msgid "Re-open"
@@ -3819,7 +3839,7 @@ msgstr "Eliminada definitivamente"
#: bookwyrm/templates/settings/users/user_moderation_actions.html:8
msgid "User Actions"
-msgstr ""
+msgstr "Accións da usuaria"
#: bookwyrm/templates/settings/users/user_moderation_actions.html:21
msgid "Suspend user"
@@ -4236,12 +4256,12 @@ msgstr "Inscribirse"
#: bookwyrm/templates/snippets/report_modal.html:8
#, python-format
msgid "Report @%(username)s's status"
-msgstr ""
+msgstr "Denunciar o estado de @%(username)s"
#: bookwyrm/templates/snippets/report_modal.html:10
#, python-format
msgid "Report %(domain)s link"
-msgstr ""
+msgstr "Denunciar ligazón %(domain)s"
#: bookwyrm/templates/snippets/report_modal.html:12
#, python-format
@@ -4255,7 +4275,7 @@ msgstr "Esta denuncia vaise enviar á moderación en %(site_name)s para o seu an
#: bookwyrm/templates/snippets/report_modal.html:36
msgid "Links from this domain will be removed until your report has been reviewed."
-msgstr ""
+msgstr "As ligazóns deste dominio van ser eliminadas ata que se revise a denuncia."
#: bookwyrm/templates/snippets/report_modal.html:41
msgid "More info about this report:"
@@ -4295,29 +4315,29 @@ msgstr "Eliminar de %(name)s"
msgid "Finish reading"
msgstr "Rematar a lectura"
-#: bookwyrm/templates/snippets/status/content_status.html:75
+#: bookwyrm/templates/snippets/status/content_status.html:72
msgid "Content warning"
msgstr "Aviso sobre o contido"
-#: bookwyrm/templates/snippets/status/content_status.html:82
+#: bookwyrm/templates/snippets/status/content_status.html:79
msgid "Show status"
msgstr "Mostrar estado"
-#: bookwyrm/templates/snippets/status/content_status.html:104
+#: bookwyrm/templates/snippets/status/content_status.html:101
#, python-format
msgid "(Page %(page)s)"
msgstr "(Páxina %(page)s)"
-#: bookwyrm/templates/snippets/status/content_status.html:106
+#: bookwyrm/templates/snippets/status/content_status.html:103
#, python-format
msgid "(%(percent)s%%)"
msgstr "(%(percent)s%%)"
-#: bookwyrm/templates/snippets/status/content_status.html:128
+#: bookwyrm/templates/snippets/status/content_status.html:125
msgid "Open image in new window"
msgstr "Abrir imaxe en nova ventá"
-#: bookwyrm/templates/snippets/status/content_status.html:147
+#: bookwyrm/templates/snippets/status/content_status.html:144
msgid "Hide status"
msgstr "Agochar estado"
diff --git a/locale/it_IT/LC_MESSAGES/django.mo b/locale/it_IT/LC_MESSAGES/django.mo
index 9c4cce30f..f078e0213 100644
Binary files a/locale/it_IT/LC_MESSAGES/django.mo and b/locale/it_IT/LC_MESSAGES/django.mo differ
diff --git a/locale/it_IT/LC_MESSAGES/django.po b/locale/it_IT/LC_MESSAGES/django.po
index 4ea4e3141..3b55812c1 100644
--- a/locale/it_IT/LC_MESSAGES/django.po
+++ b/locale/it_IT/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-01-17 16:05+0000\n"
-"PO-Revision-Date: 2022-01-17 17:10\n"
+"POT-Creation-Date: 2022-01-17 19:26+0000\n"
+"PO-Revision-Date: 2022-01-19 23:20\n"
"Last-Translator: Mouse Reeve \n"
"Language-Team: Italian\n"
"Language: it\n"
@@ -84,7 +84,7 @@ msgstr "Errore nel caricamento del libro"
msgid "Could not find a match for book"
msgstr "Impossibile trovare una corrispondenza per il libro"
-#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:62
+#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending"
@@ -132,7 +132,7 @@ msgstr "Brossura"
msgid "Federated"
msgstr "Federato"
-#: bookwyrm/models/federated_server.py:12 bookwyrm/models/link.py:61
+#: bookwyrm/models/federated_server.py:12 bookwyrm/models/link.py:71
#: bookwyrm/templates/settings/federation/edit_instance.html:44
#: bookwyrm/templates/settings/federation/instance.html:10
#: bookwyrm/templates/settings/federation/instance_list.html:23
@@ -191,10 +191,22 @@ msgstr "Followers"
msgid "Private"
msgstr "Privata"
-#: bookwyrm/models/link.py:60
+#: bookwyrm/models/link.py:51
+msgid "Free"
+msgstr "Libero"
+
+#: bookwyrm/models/link.py:52
+msgid "Purchasable"
+msgstr "Acquistabile"
+
+#: bookwyrm/models/link.py:53
+msgid "Available for loan"
+msgstr "Disponibile per il prestito"
+
+#: bookwyrm/models/link.py:70
#: bookwyrm/templates/settings/link_domains/link_domains.html:23
msgid "Approved"
-msgstr ""
+msgstr "Approvato"
#: bookwyrm/models/user.py:32 bookwyrm/templates/book/book.html:272
msgid "Reviews"
@@ -677,7 +689,8 @@ msgstr "ISNI:"
#: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:193
#: bookwyrm/templates/book/edit/edit_book.html:121
-#: bookwyrm/templates/book/file_links/add_link_modal.html:50
+#: bookwyrm/templates/book/file_links/add_link_modal.html:58
+#: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:30
#: bookwyrm/templates/lists/bookmark_button.html:15
#: bookwyrm/templates/lists/form.html:130
@@ -699,7 +712,7 @@ msgstr "Salva"
#: bookwyrm/templates/book/cover_add_modal.html:32
#: bookwyrm/templates/book/edit/edit_book.html:123
#: bookwyrm/templates/book/edit/edit_book.html:126
-#: bookwyrm/templates/book/file_links/add_link_modal.html:52
+#: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/verification_modal.html:21
#: bookwyrm/templates/book/sync_modal.html:23
#: bookwyrm/templates/groups/delete_group_modal.html:17
@@ -1055,47 +1068,53 @@ msgstr "Ricerca edizioni"
#: bookwyrm/templates/book/file_links/add_link_modal.html:6
msgid "Add file link"
-msgstr ""
+msgstr "Aggiungi collegamento al file"
#: bookwyrm/templates/book/file_links/add_link_modal.html:19
msgid "Links from unknown domains will need to be approved by a moderator before they are added."
-msgstr ""
+msgstr "I link da domini sconosciuti dovranno essere approvati da un moderatore prima di essere aggiunti."
#: bookwyrm/templates/book/file_links/add_link_modal.html:24
msgid "URL:"
-msgstr ""
+msgstr "URL:"
#: bookwyrm/templates/book/file_links/add_link_modal.html:29
msgid "File type:"
-msgstr ""
+msgstr "Tipo di file:"
+
+#: bookwyrm/templates/book/file_links/add_link_modal.html:48
+msgid "Availability:"
+msgstr "Disponibilità:"
#: bookwyrm/templates/book/file_links/edit_links.html:5
#: bookwyrm/templates/book/file_links/edit_links.html:22
-#: bookwyrm/templates/book/file_links/links.html:47
+#: bookwyrm/templates/book/file_links/links.html:53
msgid "Edit links"
-msgstr ""
+msgstr "Modifica collegamenti"
#: bookwyrm/templates/book/file_links/edit_links.html:11
#, python-format
msgid "\n"
" Links for \"%(title)s\"\n"
" "
-msgstr ""
+msgstr "\n"
+" Link per \"%(title)s\"\n"
+" "
#: bookwyrm/templates/book/file_links/edit_links.html:32
#: bookwyrm/templates/settings/link_domains/link_table.html:6
msgid "URL"
-msgstr ""
+msgstr "URL"
#: bookwyrm/templates/book/file_links/edit_links.html:33
#: bookwyrm/templates/settings/link_domains/link_table.html:7
msgid "Added by"
-msgstr ""
+msgstr "Aggiunto da"
#: bookwyrm/templates/book/file_links/edit_links.html:34
#: bookwyrm/templates/settings/link_domains/link_table.html:8
msgid "Filetype"
-msgstr ""
+msgstr "Tipo di file"
#: bookwyrm/templates/book/file_links/edit_links.html:35
#: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:25
@@ -1104,49 +1123,60 @@ msgid "Domain"
msgstr "Dominio"
#: bookwyrm/templates/book/file_links/edit_links.html:36
+#: bookwyrm/templates/import/import_status.html:127
+#: bookwyrm/templates/settings/announcements/announcements.html:38
+#: bookwyrm/templates/settings/federation/instance_list.html:46
+#: bookwyrm/templates/settings/invites/manage_invite_requests.html:44
+#: bookwyrm/templates/settings/invites/status_filter.html:5
+#: bookwyrm/templates/settings/users/user_admin.html:34
+#: bookwyrm/templates/settings/users/user_info.html:20
+msgid "Status"
+msgstr "Stato"
+
+#: bookwyrm/templates/book/file_links/edit_links.html:37
#: bookwyrm/templates/settings/federation/instance.html:94
#: bookwyrm/templates/settings/reports/report_links_table.html:6
msgid "Actions"
msgstr "Azioni"
-#: bookwyrm/templates/book/file_links/edit_links.html:52
+#: bookwyrm/templates/book/file_links/edit_links.html:53
#: bookwyrm/templates/book/file_links/verification_modal.html:25
msgid "Report spam"
-msgstr ""
+msgstr "Segnala come spam"
-#: bookwyrm/templates/book/file_links/edit_links.html:65
+#: bookwyrm/templates/book/file_links/edit_links.html:97
msgid "No links available for this book."
-msgstr ""
+msgstr "Nessun collegamento disponibile per questo libro."
-#: bookwyrm/templates/book/file_links/edit_links.html:76
+#: bookwyrm/templates/book/file_links/edit_links.html:108
#: bookwyrm/templates/book/file_links/links.html:18
msgid "Add link to file"
-msgstr ""
+msgstr "Aggiungi collegamento al file"
#: bookwyrm/templates/book/file_links/file_link_page.html:6
msgid "File Links"
-msgstr ""
+msgstr "Collegamenti ai file"
#: bookwyrm/templates/book/file_links/links.html:9
msgid "Get a copy"
-msgstr ""
+msgstr "Ottieni una copia"
-#: bookwyrm/templates/book/file_links/links.html:41
+#: bookwyrm/templates/book/file_links/links.html:47
msgid "No links available"
-msgstr ""
+msgstr "Nessun collegamento disponibile"
#: bookwyrm/templates/book/file_links/verification_modal.html:5
msgid "Leaving BookWyrm"
-msgstr ""
+msgstr "Esci da BookWyrm"
#: bookwyrm/templates/book/file_links/verification_modal.html:11
#, python-format
msgid "This link is taking you to: %(link_url)s
.
Is that where you'd like to go?"
-msgstr ""
+msgstr "Questo link ti sta portando a: %(link_url)s
.
È qui che vuoi andare?"
#: bookwyrm/templates/book/file_links/verification_modal.html:20
msgid "Continue"
-msgstr ""
+msgstr "Continua"
#: bookwyrm/templates/book/publisher_info.html:23
#, python-format
@@ -1970,16 +2000,6 @@ msgstr "Recensione"
msgid "Book"
msgstr "Libro"
-#: bookwyrm/templates/import/import_status.html:127
-#: bookwyrm/templates/settings/announcements/announcements.html:38
-#: bookwyrm/templates/settings/federation/instance_list.html:46
-#: bookwyrm/templates/settings/invites/manage_invite_requests.html:44
-#: bookwyrm/templates/settings/invites/status_filter.html:5
-#: bookwyrm/templates/settings/users/user_admin.html:34
-#: bookwyrm/templates/settings/users/user_info.html:20
-msgid "Status"
-msgstr "Stato"
-
#: bookwyrm/templates/import/import_status.html:135
msgid "Import preview unavailable."
msgstr "Anteprima di importazione non disponibile."
@@ -2028,8 +2048,8 @@ msgid "Reject"
msgstr "Rifiutato"
#: bookwyrm/templates/import/tooltip.html:6
-msgid "You can download your Goodreads data from the Import/Export page of your Goodreads account."
-msgstr "Puoi scaricare i tuoi dati Goodreads dalla pagina Importa/Esportazione del tuo account Goodreads."
+msgid "You can download your Goodreads data from the Import/Export page of your Goodreads account."
+msgstr "Puoi scaricare i tuoi dati Goodreads dalla pagina \"Importa/Esporta\" del tuo account Goodreads."
#: bookwyrm/templates/import/troubleshoot.html:7
msgid "Failed items"
@@ -3079,8 +3099,8 @@ msgstr[1] "%(display_count)s reports aperti"
#, python-format
msgid "%(display_count)s domain needs review"
msgid_plural "%(display_count)s domains need review"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%(display_count)s dominio necessita di una revisione"
+msgstr[1] "%(display_count)s domini necessitano di una revisione"
#: bookwyrm/templates/settings/dashboard/dashboard.html:65
#, python-format
@@ -3477,7 +3497,7 @@ msgstr "Reports"
#: bookwyrm/templates/settings/link_domains/link_domains.html:5
#: bookwyrm/templates/settings/link_domains/link_domains.html:7
msgid "Link Domains"
-msgstr ""
+msgstr "Link ai domini"
#: bookwyrm/templates/settings/layout.html:72
msgid "Instance Settings"
@@ -3492,35 +3512,35 @@ msgstr "Impostazioni Sito"
#: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:5
#, python-format
msgid "Set display name for %(url)s"
-msgstr ""
+msgstr "Imposta il nome visualizzato per %(url)s"
#: bookwyrm/templates/settings/link_domains/link_domains.html:11
msgid "Link domains must be approved before they are shown on book pages. Please make sure that the domains are not hosting spam, malicious code, or deceptive links before approving."
-msgstr ""
+msgstr "I collegamenti a domini devono essere approvati prima di essere visualizzati nelle pagine dei libri. Si prega di assicurarsi che i domini non ospitino spam, codice dannoso o link ingannevoli prima dell'approvazione."
#: bookwyrm/templates/settings/link_domains/link_domains.html:45
msgid "Set display name"
-msgstr ""
+msgstr "Imposta nome visualizzato"
#: bookwyrm/templates/settings/link_domains/link_domains.html:53
msgid "View links"
-msgstr ""
+msgstr "Visualizza collegamenti"
#: bookwyrm/templates/settings/link_domains/link_domains.html:96
msgid "No domains currently approved"
-msgstr ""
+msgstr "Nessun dominio attualmente approvato"
#: bookwyrm/templates/settings/link_domains/link_domains.html:98
msgid "No domains currently pending"
-msgstr ""
+msgstr "Nessun dominio attualmente in attesa"
#: bookwyrm/templates/settings/link_domains/link_domains.html:100
msgid "No domains currently blocked"
-msgstr ""
+msgstr "Nessun dominio attualmente bloccato"
#: bookwyrm/templates/settings/link_domains/link_table.html:39
msgid "No links available for this domain."
-msgstr ""
+msgstr "Nessun collegamento disponibile per questo libro."
#: bookwyrm/templates/settings/reports/report.html:11
msgid "Back to reports"
@@ -3536,7 +3556,7 @@ msgstr "Lo stato è stato eliminato"
#: bookwyrm/templates/settings/reports/report.html:39
msgid "Reported links"
-msgstr ""
+msgstr "Collegamenti segnalati"
#: bookwyrm/templates/settings/reports/report.html:55
msgid "Moderator Comments"
@@ -3550,21 +3570,21 @@ msgstr "Commenta"
#: bookwyrm/templates/settings/reports/report_header.html:6
#, python-format
msgid "Report #%(report_id)s: Status posted by @%(username)s"
-msgstr ""
+msgstr "Report #%(report_id)s: Stato pubblicato da @%(username)s"
#: bookwyrm/templates/settings/reports/report_header.html:12
#, python-format
msgid "Report #%(report_id)s: Link added by @%(username)s"
-msgstr ""
+msgstr "Report #%(report_id)s: Collegamento aggiunto da @%(username)s"
#: bookwyrm/templates/settings/reports/report_header.html:18
#, python-format
msgid "Report #%(report_id)s: User @%(username)s"
-msgstr ""
+msgstr "Report #%(report_id)s: %(username)s"
#: bookwyrm/templates/settings/reports/report_links_table.html:17
msgid "Block domain"
-msgstr ""
+msgstr "Domini bloccati"
#: bookwyrm/templates/settings/reports/report_preview.html:17
msgid "No notes provided"
@@ -3573,7 +3593,7 @@ msgstr "Nessuna nota disponibile"
#: bookwyrm/templates/settings/reports/report_preview.html:24
#, python-format
msgid "Reported by @%(username)s"
-msgstr ""
+msgstr "Segnalato da %(username)s"
#: bookwyrm/templates/settings/reports/report_preview.html:34
msgid "Re-open"
@@ -3819,7 +3839,7 @@ msgstr "Elimina definitivamente"
#: bookwyrm/templates/settings/users/user_moderation_actions.html:8
msgid "User Actions"
-msgstr ""
+msgstr "Azioni dell'utente"
#: bookwyrm/templates/settings/users/user_moderation_actions.html:21
msgid "Suspend user"
@@ -4236,12 +4256,12 @@ msgstr "Iscriviti"
#: bookwyrm/templates/snippets/report_modal.html:8
#, python-format
msgid "Report @%(username)s's status"
-msgstr ""
+msgstr "Segnala lo stato di%(username)s"
#: bookwyrm/templates/snippets/report_modal.html:10
#, python-format
msgid "Report %(domain)s link"
-msgstr ""
+msgstr "Segnala il link %(domain)s"
#: bookwyrm/templates/snippets/report_modal.html:12
#, python-format
@@ -4255,7 +4275,7 @@ msgstr "Questo report verrà inviato ai moderatori di %(site_name)s per la revis
#: bookwyrm/templates/snippets/report_modal.html:36
msgid "Links from this domain will be removed until your report has been reviewed."
-msgstr ""
+msgstr "I collegamenti da questo dominio verranno rimossi fino a quando il rapporto non sarà stato rivisto."
#: bookwyrm/templates/snippets/report_modal.html:41
msgid "More info about this report:"
@@ -4295,29 +4315,29 @@ msgstr "Rimuovi da %(name)s"
msgid "Finish reading"
msgstr "Finito di leggere"
-#: bookwyrm/templates/snippets/status/content_status.html:75
+#: bookwyrm/templates/snippets/status/content_status.html:72
msgid "Content warning"
msgstr "Avviso sul contenuto"
-#: bookwyrm/templates/snippets/status/content_status.html:82
+#: bookwyrm/templates/snippets/status/content_status.html:79
msgid "Show status"
msgstr "Mostra stato"
-#: bookwyrm/templates/snippets/status/content_status.html:104
+#: bookwyrm/templates/snippets/status/content_status.html:101
#, python-format
msgid "(Page %(page)s)"
msgstr "(Pagina %(page)s)"
-#: bookwyrm/templates/snippets/status/content_status.html:106
+#: bookwyrm/templates/snippets/status/content_status.html:103
#, python-format
msgid "(%(percent)s%%)"
msgstr "(%(percent)s%%)"
-#: bookwyrm/templates/snippets/status/content_status.html:128
+#: bookwyrm/templates/snippets/status/content_status.html:125
msgid "Open image in new window"
msgstr "Apri immagine in una nuova finestra"
-#: bookwyrm/templates/snippets/status/content_status.html:147
+#: bookwyrm/templates/snippets/status/content_status.html:144
msgid "Hide status"
msgstr "Nascondi lo stato"
diff --git a/locale/lt_LT/LC_MESSAGES/django.mo b/locale/lt_LT/LC_MESSAGES/django.mo
index 5d9ba6783..9357a52b5 100644
Binary files a/locale/lt_LT/LC_MESSAGES/django.mo and b/locale/lt_LT/LC_MESSAGES/django.mo differ
diff --git a/locale/lt_LT/LC_MESSAGES/django.po b/locale/lt_LT/LC_MESSAGES/django.po
index 6d3b395e1..838f90518 100644
--- a/locale/lt_LT/LC_MESSAGES/django.po
+++ b/locale/lt_LT/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-01-17 16:05+0000\n"
-"PO-Revision-Date: 2022-01-17 17:10\n"
+"POT-Creation-Date: 2022-01-17 19:26+0000\n"
+"PO-Revision-Date: 2022-01-17 19:57\n"
"Last-Translator: Mouse Reeve \n"
"Language-Team: Lithuanian\n"
"Language: lt\n"
@@ -84,7 +84,7 @@ msgstr "Klaida įkeliant knygą"
msgid "Could not find a match for book"
msgstr "Nepavyko rasti tokios knygos"
-#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:62
+#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending"
@@ -132,7 +132,7 @@ msgstr "Knyga minkštais viršeliais"
msgid "Federated"
msgstr "Susijungę"
-#: bookwyrm/models/federated_server.py:12 bookwyrm/models/link.py:61
+#: bookwyrm/models/federated_server.py:12 bookwyrm/models/link.py:71
#: bookwyrm/templates/settings/federation/edit_instance.html:44
#: bookwyrm/templates/settings/federation/instance.html:10
#: bookwyrm/templates/settings/federation/instance_list.html:23
@@ -191,7 +191,19 @@ msgstr "Sekėjai"
msgid "Private"
msgstr "Privatu"
-#: bookwyrm/models/link.py:60
+#: bookwyrm/models/link.py:51
+msgid "Free"
+msgstr ""
+
+#: bookwyrm/models/link.py:52
+msgid "Purchasable"
+msgstr ""
+
+#: bookwyrm/models/link.py:53
+msgid "Available for loan"
+msgstr ""
+
+#: bookwyrm/models/link.py:70
#: bookwyrm/templates/settings/link_domains/link_domains.html:23
msgid "Approved"
msgstr ""
@@ -683,7 +695,8 @@ msgstr "ISNI:"
#: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:193
#: bookwyrm/templates/book/edit/edit_book.html:121
-#: bookwyrm/templates/book/file_links/add_link_modal.html:50
+#: bookwyrm/templates/book/file_links/add_link_modal.html:58
+#: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:30
#: bookwyrm/templates/lists/bookmark_button.html:15
#: bookwyrm/templates/lists/form.html:130
@@ -705,7 +718,7 @@ msgstr "Išsaugoti"
#: bookwyrm/templates/book/cover_add_modal.html:32
#: bookwyrm/templates/book/edit/edit_book.html:123
#: bookwyrm/templates/book/edit/edit_book.html:126
-#: bookwyrm/templates/book/file_links/add_link_modal.html:52
+#: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/verification_modal.html:21
#: bookwyrm/templates/book/sync_modal.html:23
#: bookwyrm/templates/groups/delete_group_modal.html:17
@@ -1077,9 +1090,13 @@ msgstr ""
msgid "File type:"
msgstr ""
+#: bookwyrm/templates/book/file_links/add_link_modal.html:48
+msgid "Availability:"
+msgstr ""
+
#: bookwyrm/templates/book/file_links/edit_links.html:5
#: bookwyrm/templates/book/file_links/edit_links.html:22
-#: bookwyrm/templates/book/file_links/links.html:47
+#: bookwyrm/templates/book/file_links/links.html:53
msgid "Edit links"
msgstr ""
@@ -1112,21 +1129,32 @@ msgid "Domain"
msgstr "Domenas"
#: bookwyrm/templates/book/file_links/edit_links.html:36
+#: bookwyrm/templates/import/import_status.html:127
+#: bookwyrm/templates/settings/announcements/announcements.html:38
+#: bookwyrm/templates/settings/federation/instance_list.html:46
+#: bookwyrm/templates/settings/invites/manage_invite_requests.html:44
+#: bookwyrm/templates/settings/invites/status_filter.html:5
+#: bookwyrm/templates/settings/users/user_admin.html:34
+#: bookwyrm/templates/settings/users/user_info.html:20
+msgid "Status"
+msgstr "Būsena"
+
+#: bookwyrm/templates/book/file_links/edit_links.html:37
#: bookwyrm/templates/settings/federation/instance.html:94
#: bookwyrm/templates/settings/reports/report_links_table.html:6
msgid "Actions"
msgstr "Veiksmai"
-#: bookwyrm/templates/book/file_links/edit_links.html:52
+#: bookwyrm/templates/book/file_links/edit_links.html:53
#: bookwyrm/templates/book/file_links/verification_modal.html:25
msgid "Report spam"
msgstr ""
-#: bookwyrm/templates/book/file_links/edit_links.html:65
+#: bookwyrm/templates/book/file_links/edit_links.html:97
msgid "No links available for this book."
msgstr ""
-#: bookwyrm/templates/book/file_links/edit_links.html:76
+#: bookwyrm/templates/book/file_links/edit_links.html:108
#: bookwyrm/templates/book/file_links/links.html:18
msgid "Add link to file"
msgstr ""
@@ -1139,7 +1167,7 @@ msgstr ""
msgid "Get a copy"
msgstr ""
-#: bookwyrm/templates/book/file_links/links.html:41
+#: bookwyrm/templates/book/file_links/links.html:47
msgid "No links available"
msgstr ""
@@ -1990,16 +2018,6 @@ msgstr "Apžvalga"
msgid "Book"
msgstr "Knyga"
-#: bookwyrm/templates/import/import_status.html:127
-#: bookwyrm/templates/settings/announcements/announcements.html:38
-#: bookwyrm/templates/settings/federation/instance_list.html:46
-#: bookwyrm/templates/settings/invites/manage_invite_requests.html:44
-#: bookwyrm/templates/settings/invites/status_filter.html:5
-#: bookwyrm/templates/settings/users/user_admin.html:34
-#: bookwyrm/templates/settings/users/user_info.html:20
-msgid "Status"
-msgstr "Būsena"
-
#: bookwyrm/templates/import/import_status.html:135
msgid "Import preview unavailable."
msgstr "Nepavyko įkelti peržiūros."
@@ -2048,8 +2066,8 @@ msgid "Reject"
msgstr "Atmesti"
#: bookwyrm/templates/import/tooltip.html:6
-msgid "You can download your Goodreads data from the Import/Export page of your Goodreads account."
-msgstr "Galite atsisiųsti savo „Goodreads“ duomenis iš Importavimo ir eksportavimo puslapio, esančio jūsų „Goodreads“ paskyroje."
+msgid "You can download your Goodreads data from the Import/Export page of your Goodreads account."
+msgstr ""
#: bookwyrm/templates/import/troubleshoot.html:7
msgid "Failed items"
@@ -4337,29 +4355,29 @@ msgstr "Pašalinti iš %(name)s"
msgid "Finish reading"
msgstr "Baigti skaityti"
-#: bookwyrm/templates/snippets/status/content_status.html:75
+#: bookwyrm/templates/snippets/status/content_status.html:72
msgid "Content warning"
msgstr "Įspėjimas dėl turinio"
-#: bookwyrm/templates/snippets/status/content_status.html:82
+#: bookwyrm/templates/snippets/status/content_status.html:79
msgid "Show status"
msgstr "Rodyti būseną"
-#: bookwyrm/templates/snippets/status/content_status.html:104
+#: bookwyrm/templates/snippets/status/content_status.html:101
#, python-format
msgid "(Page %(page)s)"
msgstr "(Psl. %(page)s)"
-#: bookwyrm/templates/snippets/status/content_status.html:106
+#: bookwyrm/templates/snippets/status/content_status.html:103
#, python-format
msgid "(%(percent)s%%)"
msgstr "(%(percent)s%%)"
-#: bookwyrm/templates/snippets/status/content_status.html:128
+#: bookwyrm/templates/snippets/status/content_status.html:125
msgid "Open image in new window"
msgstr "Atidaryti paveikslėlį naujame lange"
-#: bookwyrm/templates/snippets/status/content_status.html:147
+#: bookwyrm/templates/snippets/status/content_status.html:144
msgid "Hide status"
msgstr "Slėpti būseną"
diff --git a/locale/no_NO/LC_MESSAGES/django.mo b/locale/no_NO/LC_MESSAGES/django.mo
index 05f4ed2d2..bffbfa4fa 100644
Binary files a/locale/no_NO/LC_MESSAGES/django.mo and b/locale/no_NO/LC_MESSAGES/django.mo differ
diff --git a/locale/no_NO/LC_MESSAGES/django.po b/locale/no_NO/LC_MESSAGES/django.po
index 596b9b84f..a17a94d9f 100644
--- a/locale/no_NO/LC_MESSAGES/django.po
+++ b/locale/no_NO/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-01-17 16:05+0000\n"
-"PO-Revision-Date: 2022-01-17 17:10\n"
+"POT-Creation-Date: 2022-01-17 19:26+0000\n"
+"PO-Revision-Date: 2022-01-17 19:57\n"
"Last-Translator: Mouse Reeve \n"
"Language-Team: Norwegian\n"
"Language: no\n"
@@ -84,7 +84,7 @@ msgstr "Feilet ved lasting av bok"
msgid "Could not find a match for book"
msgstr "Fant ikke den boka"
-#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:62
+#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending"
@@ -132,7 +132,7 @@ msgstr "Paperback"
msgid "Federated"
msgstr "Føderert"
-#: bookwyrm/models/federated_server.py:12 bookwyrm/models/link.py:61
+#: bookwyrm/models/federated_server.py:12 bookwyrm/models/link.py:71
#: bookwyrm/templates/settings/federation/edit_instance.html:44
#: bookwyrm/templates/settings/federation/instance.html:10
#: bookwyrm/templates/settings/federation/instance_list.html:23
@@ -191,7 +191,19 @@ msgstr "Følgere"
msgid "Private"
msgstr "Privat"
-#: bookwyrm/models/link.py:60
+#: bookwyrm/models/link.py:51
+msgid "Free"
+msgstr ""
+
+#: bookwyrm/models/link.py:52
+msgid "Purchasable"
+msgstr ""
+
+#: bookwyrm/models/link.py:53
+msgid "Available for loan"
+msgstr ""
+
+#: bookwyrm/models/link.py:70
#: bookwyrm/templates/settings/link_domains/link_domains.html:23
msgid "Approved"
msgstr ""
@@ -677,7 +689,8 @@ msgstr "ISNI:"
#: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:193
#: bookwyrm/templates/book/edit/edit_book.html:121
-#: bookwyrm/templates/book/file_links/add_link_modal.html:50
+#: bookwyrm/templates/book/file_links/add_link_modal.html:58
+#: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:30
#: bookwyrm/templates/lists/bookmark_button.html:15
#: bookwyrm/templates/lists/form.html:130
@@ -699,7 +712,7 @@ msgstr "Lagre"
#: bookwyrm/templates/book/cover_add_modal.html:32
#: bookwyrm/templates/book/edit/edit_book.html:123
#: bookwyrm/templates/book/edit/edit_book.html:126
-#: bookwyrm/templates/book/file_links/add_link_modal.html:52
+#: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/verification_modal.html:21
#: bookwyrm/templates/book/sync_modal.html:23
#: bookwyrm/templates/groups/delete_group_modal.html:17
@@ -1069,9 +1082,13 @@ msgstr ""
msgid "File type:"
msgstr ""
+#: bookwyrm/templates/book/file_links/add_link_modal.html:48
+msgid "Availability:"
+msgstr ""
+
#: bookwyrm/templates/book/file_links/edit_links.html:5
#: bookwyrm/templates/book/file_links/edit_links.html:22
-#: bookwyrm/templates/book/file_links/links.html:47
+#: bookwyrm/templates/book/file_links/links.html:53
msgid "Edit links"
msgstr ""
@@ -1104,21 +1121,32 @@ msgid "Domain"
msgstr "Domene"
#: bookwyrm/templates/book/file_links/edit_links.html:36
+#: bookwyrm/templates/import/import_status.html:127
+#: bookwyrm/templates/settings/announcements/announcements.html:38
+#: bookwyrm/templates/settings/federation/instance_list.html:46
+#: bookwyrm/templates/settings/invites/manage_invite_requests.html:44
+#: bookwyrm/templates/settings/invites/status_filter.html:5
+#: bookwyrm/templates/settings/users/user_admin.html:34
+#: bookwyrm/templates/settings/users/user_info.html:20
+msgid "Status"
+msgstr "Status"
+
+#: bookwyrm/templates/book/file_links/edit_links.html:37
#: bookwyrm/templates/settings/federation/instance.html:94
#: bookwyrm/templates/settings/reports/report_links_table.html:6
msgid "Actions"
msgstr "Handlinger"
-#: bookwyrm/templates/book/file_links/edit_links.html:52
+#: bookwyrm/templates/book/file_links/edit_links.html:53
#: bookwyrm/templates/book/file_links/verification_modal.html:25
msgid "Report spam"
msgstr ""
-#: bookwyrm/templates/book/file_links/edit_links.html:65
+#: bookwyrm/templates/book/file_links/edit_links.html:97
msgid "No links available for this book."
msgstr ""
-#: bookwyrm/templates/book/file_links/edit_links.html:76
+#: bookwyrm/templates/book/file_links/edit_links.html:108
#: bookwyrm/templates/book/file_links/links.html:18
msgid "Add link to file"
msgstr ""
@@ -1131,7 +1159,7 @@ msgstr ""
msgid "Get a copy"
msgstr ""
-#: bookwyrm/templates/book/file_links/links.html:41
+#: bookwyrm/templates/book/file_links/links.html:47
msgid "No links available"
msgstr ""
@@ -1970,16 +1998,6 @@ msgstr "Anmeldelse"
msgid "Book"
msgstr "Bok"
-#: bookwyrm/templates/import/import_status.html:127
-#: bookwyrm/templates/settings/announcements/announcements.html:38
-#: bookwyrm/templates/settings/federation/instance_list.html:46
-#: bookwyrm/templates/settings/invites/manage_invite_requests.html:44
-#: bookwyrm/templates/settings/invites/status_filter.html:5
-#: bookwyrm/templates/settings/users/user_admin.html:34
-#: bookwyrm/templates/settings/users/user_info.html:20
-msgid "Status"
-msgstr "Status"
-
#: bookwyrm/templates/import/import_status.html:135
msgid "Import preview unavailable."
msgstr "Forhåndsvisning av import er ikke tilgjengelig."
@@ -2028,8 +2046,8 @@ msgid "Reject"
msgstr "Avslå"
#: bookwyrm/templates/import/tooltip.html:6
-msgid "You can download your Goodreads data from the Import/Export page of your Goodreads account."
-msgstr "Du kan laste ned Goodread-dataene fra Import/Export sida på Goodread-kontoen din."
+msgid "You can download your Goodreads data from the Import/Export page of your Goodreads account."
+msgstr ""
#: bookwyrm/templates/import/troubleshoot.html:7
msgid "Failed items"
@@ -4295,29 +4313,29 @@ msgstr "Fjern fra %(name)s"
msgid "Finish reading"
msgstr "Fullfør lesing"
-#: bookwyrm/templates/snippets/status/content_status.html:75
+#: bookwyrm/templates/snippets/status/content_status.html:72
msgid "Content warning"
msgstr "Varsel om følsomt innhold"
-#: bookwyrm/templates/snippets/status/content_status.html:82
+#: bookwyrm/templates/snippets/status/content_status.html:79
msgid "Show status"
msgstr "Vis status"
-#: bookwyrm/templates/snippets/status/content_status.html:104
+#: bookwyrm/templates/snippets/status/content_status.html:101
#, python-format
msgid "(Page %(page)s)"
msgstr "(side %(page)s)"
-#: bookwyrm/templates/snippets/status/content_status.html:106
+#: bookwyrm/templates/snippets/status/content_status.html:103
#, python-format
msgid "(%(percent)s%%)"
msgstr "(%(percent)s%%)"
-#: bookwyrm/templates/snippets/status/content_status.html:128
+#: bookwyrm/templates/snippets/status/content_status.html:125
msgid "Open image in new window"
msgstr "Åpne bilde i nytt vindu"
-#: bookwyrm/templates/snippets/status/content_status.html:147
+#: bookwyrm/templates/snippets/status/content_status.html:144
msgid "Hide status"
msgstr "Skjul status"
diff --git a/locale/pt_BR/LC_MESSAGES/django.mo b/locale/pt_BR/LC_MESSAGES/django.mo
index 7a7e8f89f..543f1b255 100644
Binary files a/locale/pt_BR/LC_MESSAGES/django.mo and b/locale/pt_BR/LC_MESSAGES/django.mo differ
diff --git a/locale/pt_BR/LC_MESSAGES/django.po b/locale/pt_BR/LC_MESSAGES/django.po
index a307b8219..432f8e6a1 100644
--- a/locale/pt_BR/LC_MESSAGES/django.po
+++ b/locale/pt_BR/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-01-17 16:05+0000\n"
-"PO-Revision-Date: 2022-01-17 17:10\n"
+"POT-Creation-Date: 2022-01-17 19:26+0000\n"
+"PO-Revision-Date: 2022-01-18 14:10\n"
"Last-Translator: Mouse Reeve \n"
"Language-Team: Portuguese, Brazilian\n"
"Language: pt\n"
@@ -84,7 +84,7 @@ msgstr "Erro ao carregar livro"
msgid "Could not find a match for book"
msgstr "Não foi possível encontrar o livro"
-#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:62
+#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending"
@@ -132,7 +132,7 @@ msgstr "Capa mole"
msgid "Federated"
msgstr "Federado"
-#: bookwyrm/models/federated_server.py:12 bookwyrm/models/link.py:61
+#: bookwyrm/models/federated_server.py:12 bookwyrm/models/link.py:71
#: bookwyrm/templates/settings/federation/edit_instance.html:44
#: bookwyrm/templates/settings/federation/instance.html:10
#: bookwyrm/templates/settings/federation/instance_list.html:23
@@ -191,7 +191,19 @@ msgstr "Seguidores"
msgid "Private"
msgstr "Particular"
-#: bookwyrm/models/link.py:60
+#: bookwyrm/models/link.py:51
+msgid "Free"
+msgstr "Gratuito"
+
+#: bookwyrm/models/link.py:52
+msgid "Purchasable"
+msgstr "Comprável"
+
+#: bookwyrm/models/link.py:53
+msgid "Available for loan"
+msgstr "Disponível para empréstimo"
+
+#: bookwyrm/models/link.py:70
#: bookwyrm/templates/settings/link_domains/link_domains.html:23
msgid "Approved"
msgstr "Aprovado"
@@ -676,7 +688,8 @@ msgstr "ISNI:"
#: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:193
#: bookwyrm/templates/book/edit/edit_book.html:121
-#: bookwyrm/templates/book/file_links/add_link_modal.html:50
+#: bookwyrm/templates/book/file_links/add_link_modal.html:58
+#: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:30
#: bookwyrm/templates/lists/bookmark_button.html:15
#: bookwyrm/templates/lists/form.html:130
@@ -698,7 +711,7 @@ msgstr "Salvar"
#: bookwyrm/templates/book/cover_add_modal.html:32
#: bookwyrm/templates/book/edit/edit_book.html:123
#: bookwyrm/templates/book/edit/edit_book.html:126
-#: bookwyrm/templates/book/file_links/add_link_modal.html:52
+#: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/verification_modal.html:21
#: bookwyrm/templates/book/sync_modal.html:23
#: bookwyrm/templates/groups/delete_group_modal.html:17
@@ -1068,9 +1081,13 @@ msgstr "URL:"
msgid "File type:"
msgstr "Tipo do arquivo:"
+#: bookwyrm/templates/book/file_links/add_link_modal.html:48
+msgid "Availability:"
+msgstr "Disponibilidade:"
+
#: bookwyrm/templates/book/file_links/edit_links.html:5
#: bookwyrm/templates/book/file_links/edit_links.html:22
-#: bookwyrm/templates/book/file_links/links.html:47
+#: bookwyrm/templates/book/file_links/links.html:53
msgid "Edit links"
msgstr "Editar links"
@@ -1105,21 +1122,32 @@ msgid "Domain"
msgstr "Domínio"
#: bookwyrm/templates/book/file_links/edit_links.html:36
+#: bookwyrm/templates/import/import_status.html:127
+#: bookwyrm/templates/settings/announcements/announcements.html:38
+#: bookwyrm/templates/settings/federation/instance_list.html:46
+#: bookwyrm/templates/settings/invites/manage_invite_requests.html:44
+#: bookwyrm/templates/settings/invites/status_filter.html:5
+#: bookwyrm/templates/settings/users/user_admin.html:34
+#: bookwyrm/templates/settings/users/user_info.html:20
+msgid "Status"
+msgstr "Publicação"
+
+#: bookwyrm/templates/book/file_links/edit_links.html:37
#: bookwyrm/templates/settings/federation/instance.html:94
#: bookwyrm/templates/settings/reports/report_links_table.html:6
msgid "Actions"
msgstr "Ações"
-#: bookwyrm/templates/book/file_links/edit_links.html:52
+#: bookwyrm/templates/book/file_links/edit_links.html:53
#: bookwyrm/templates/book/file_links/verification_modal.html:25
msgid "Report spam"
msgstr "Denunciar spam"
-#: bookwyrm/templates/book/file_links/edit_links.html:65
+#: bookwyrm/templates/book/file_links/edit_links.html:97
msgid "No links available for this book."
msgstr "Nenhum link disponível para este livro."
-#: bookwyrm/templates/book/file_links/edit_links.html:76
+#: bookwyrm/templates/book/file_links/edit_links.html:108
#: bookwyrm/templates/book/file_links/links.html:18
msgid "Add link to file"
msgstr "Adicionar link ao arquivo"
@@ -1132,7 +1160,7 @@ msgstr "Links de arquivo"
msgid "Get a copy"
msgstr "Obter uma cópia"
-#: bookwyrm/templates/book/file_links/links.html:41
+#: bookwyrm/templates/book/file_links/links.html:47
msgid "No links available"
msgstr "Nenhum link disponível"
@@ -1971,16 +1999,6 @@ msgstr "Resenhar"
msgid "Book"
msgstr "Livro"
-#: bookwyrm/templates/import/import_status.html:127
-#: bookwyrm/templates/settings/announcements/announcements.html:38
-#: bookwyrm/templates/settings/federation/instance_list.html:46
-#: bookwyrm/templates/settings/invites/manage_invite_requests.html:44
-#: bookwyrm/templates/settings/invites/status_filter.html:5
-#: bookwyrm/templates/settings/users/user_admin.html:34
-#: bookwyrm/templates/settings/users/user_info.html:20
-msgid "Status"
-msgstr "Publicação"
-
#: bookwyrm/templates/import/import_status.html:135
msgid "Import preview unavailable."
msgstr "Pré-visualização de importação indisponível."
@@ -2029,8 +2047,8 @@ msgid "Reject"
msgstr "Rejeitar"
#: bookwyrm/templates/import/tooltip.html:6
-msgid "You can download your Goodreads data from the Import/Export page of your Goodreads account."
-msgstr "Você pode baixar seus dados do Goodreads na página de Importar/Exportar da sua conta."
+msgid "You can download your Goodreads data from the Import/Export page of your Goodreads account."
+msgstr "Você pode baixar seus dados do Goodreads na página de Importar/Exportar da sua conta."
#: bookwyrm/templates/import/troubleshoot.html:7
msgid "Failed items"
@@ -4296,29 +4314,29 @@ msgstr "Remover de %(name)s"
msgid "Finish reading"
msgstr "Terminar de ler"
-#: bookwyrm/templates/snippets/status/content_status.html:75
+#: bookwyrm/templates/snippets/status/content_status.html:72
msgid "Content warning"
msgstr "Aviso de conteúdo"
-#: bookwyrm/templates/snippets/status/content_status.html:82
+#: bookwyrm/templates/snippets/status/content_status.html:79
msgid "Show status"
msgstr "Mostrar publicação"
-#: bookwyrm/templates/snippets/status/content_status.html:104
+#: bookwyrm/templates/snippets/status/content_status.html:101
#, python-format
msgid "(Page %(page)s)"
msgstr "(Página %(page)s)"
-#: bookwyrm/templates/snippets/status/content_status.html:106
+#: bookwyrm/templates/snippets/status/content_status.html:103
#, python-format
msgid "(%(percent)s%%)"
msgstr "(%(percent)s%%)"
-#: bookwyrm/templates/snippets/status/content_status.html:128
+#: bookwyrm/templates/snippets/status/content_status.html:125
msgid "Open image in new window"
msgstr "Abrir imagem em nova janela"
-#: bookwyrm/templates/snippets/status/content_status.html:147
+#: bookwyrm/templates/snippets/status/content_status.html:144
msgid "Hide status"
msgstr "Esconder publicação"
diff --git a/locale/pt_PT/LC_MESSAGES/django.mo b/locale/pt_PT/LC_MESSAGES/django.mo
index 25f727ab6..3893af9e6 100644
Binary files a/locale/pt_PT/LC_MESSAGES/django.mo and b/locale/pt_PT/LC_MESSAGES/django.mo differ
diff --git a/locale/pt_PT/LC_MESSAGES/django.po b/locale/pt_PT/LC_MESSAGES/django.po
index f0177fc2a..9917f5d18 100644
--- a/locale/pt_PT/LC_MESSAGES/django.po
+++ b/locale/pt_PT/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-01-17 16:05+0000\n"
-"PO-Revision-Date: 2022-01-17 17:10\n"
+"POT-Creation-Date: 2022-01-17 19:26+0000\n"
+"PO-Revision-Date: 2022-01-17 19:57\n"
"Last-Translator: Mouse Reeve \n"
"Language-Team: Portuguese\n"
"Language: pt\n"
@@ -84,7 +84,7 @@ msgstr "Erro ao carregar o livro"
msgid "Could not find a match for book"
msgstr "Não foi possível encontrar um resultado para o livro pedido"
-#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:62
+#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending"
@@ -132,7 +132,7 @@ msgstr "Capa mole"
msgid "Federated"
msgstr "Federado"
-#: bookwyrm/models/federated_server.py:12 bookwyrm/models/link.py:61
+#: bookwyrm/models/federated_server.py:12 bookwyrm/models/link.py:71
#: bookwyrm/templates/settings/federation/edit_instance.html:44
#: bookwyrm/templates/settings/federation/instance.html:10
#: bookwyrm/templates/settings/federation/instance_list.html:23
@@ -191,7 +191,19 @@ msgstr "Seguidores"
msgid "Private"
msgstr "Privado"
-#: bookwyrm/models/link.py:60
+#: bookwyrm/models/link.py:51
+msgid "Free"
+msgstr ""
+
+#: bookwyrm/models/link.py:52
+msgid "Purchasable"
+msgstr ""
+
+#: bookwyrm/models/link.py:53
+msgid "Available for loan"
+msgstr ""
+
+#: bookwyrm/models/link.py:70
#: bookwyrm/templates/settings/link_domains/link_domains.html:23
msgid "Approved"
msgstr ""
@@ -675,7 +687,8 @@ msgstr "ISNI:"
#: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:193
#: bookwyrm/templates/book/edit/edit_book.html:121
-#: bookwyrm/templates/book/file_links/add_link_modal.html:50
+#: bookwyrm/templates/book/file_links/add_link_modal.html:58
+#: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:30
#: bookwyrm/templates/lists/bookmark_button.html:15
#: bookwyrm/templates/lists/form.html:130
@@ -697,7 +710,7 @@ msgstr "Salvar"
#: bookwyrm/templates/book/cover_add_modal.html:32
#: bookwyrm/templates/book/edit/edit_book.html:123
#: bookwyrm/templates/book/edit/edit_book.html:126
-#: bookwyrm/templates/book/file_links/add_link_modal.html:52
+#: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/verification_modal.html:21
#: bookwyrm/templates/book/sync_modal.html:23
#: bookwyrm/templates/groups/delete_group_modal.html:17
@@ -1067,9 +1080,13 @@ msgstr ""
msgid "File type:"
msgstr ""
+#: bookwyrm/templates/book/file_links/add_link_modal.html:48
+msgid "Availability:"
+msgstr ""
+
#: bookwyrm/templates/book/file_links/edit_links.html:5
#: bookwyrm/templates/book/file_links/edit_links.html:22
-#: bookwyrm/templates/book/file_links/links.html:47
+#: bookwyrm/templates/book/file_links/links.html:53
msgid "Edit links"
msgstr ""
@@ -1102,21 +1119,32 @@ msgid "Domain"
msgstr "Domínio"
#: bookwyrm/templates/book/file_links/edit_links.html:36
+#: bookwyrm/templates/import/import_status.html:127
+#: bookwyrm/templates/settings/announcements/announcements.html:38
+#: bookwyrm/templates/settings/federation/instance_list.html:46
+#: bookwyrm/templates/settings/invites/manage_invite_requests.html:44
+#: bookwyrm/templates/settings/invites/status_filter.html:5
+#: bookwyrm/templates/settings/users/user_admin.html:34
+#: bookwyrm/templates/settings/users/user_info.html:20
+msgid "Status"
+msgstr "Estado"
+
+#: bookwyrm/templates/book/file_links/edit_links.html:37
#: bookwyrm/templates/settings/federation/instance.html:94
#: bookwyrm/templates/settings/reports/report_links_table.html:6
msgid "Actions"
msgstr "Acções"
-#: bookwyrm/templates/book/file_links/edit_links.html:52
+#: bookwyrm/templates/book/file_links/edit_links.html:53
#: bookwyrm/templates/book/file_links/verification_modal.html:25
msgid "Report spam"
msgstr ""
-#: bookwyrm/templates/book/file_links/edit_links.html:65
+#: bookwyrm/templates/book/file_links/edit_links.html:97
msgid "No links available for this book."
msgstr ""
-#: bookwyrm/templates/book/file_links/edit_links.html:76
+#: bookwyrm/templates/book/file_links/edit_links.html:108
#: bookwyrm/templates/book/file_links/links.html:18
msgid "Add link to file"
msgstr ""
@@ -1129,7 +1157,7 @@ msgstr ""
msgid "Get a copy"
msgstr ""
-#: bookwyrm/templates/book/file_links/links.html:41
+#: bookwyrm/templates/book/file_links/links.html:47
msgid "No links available"
msgstr ""
@@ -1968,16 +1996,6 @@ msgstr "Critica"
msgid "Book"
msgstr "Livro"
-#: bookwyrm/templates/import/import_status.html:127
-#: bookwyrm/templates/settings/announcements/announcements.html:38
-#: bookwyrm/templates/settings/federation/instance_list.html:46
-#: bookwyrm/templates/settings/invites/manage_invite_requests.html:44
-#: bookwyrm/templates/settings/invites/status_filter.html:5
-#: bookwyrm/templates/settings/users/user_admin.html:34
-#: bookwyrm/templates/settings/users/user_info.html:20
-msgid "Status"
-msgstr "Estado"
-
#: bookwyrm/templates/import/import_status.html:135
msgid "Import preview unavailable."
msgstr "Importação de pré-visualização indisponível."
@@ -2026,8 +2044,8 @@ msgid "Reject"
msgstr "Rejeitar"
#: bookwyrm/templates/import/tooltip.html:6
-msgid "You can download your Goodreads data from the Import/Export page of your Goodreads account."
-msgstr "Podes fazer download dos teus dados do Goodreads na Importar/Exportar página da tua conta do Goodreads."
+msgid "You can download your Goodreads data from the Import/Export page of your Goodreads account."
+msgstr ""
#: bookwyrm/templates/import/troubleshoot.html:7
msgid "Failed items"
@@ -4293,29 +4311,29 @@ msgstr "Remover de %(name)s"
msgid "Finish reading"
msgstr "Terminar leitura"
-#: bookwyrm/templates/snippets/status/content_status.html:75
+#: bookwyrm/templates/snippets/status/content_status.html:72
msgid "Content warning"
msgstr "Aviso de Conteúdo"
-#: bookwyrm/templates/snippets/status/content_status.html:82
+#: bookwyrm/templates/snippets/status/content_status.html:79
msgid "Show status"
msgstr "Mostrar o estado"
-#: bookwyrm/templates/snippets/status/content_status.html:104
+#: bookwyrm/templates/snippets/status/content_status.html:101
#, python-format
msgid "(Page %(page)s)"
msgstr "(Página %(page)s)"
-#: bookwyrm/templates/snippets/status/content_status.html:106
+#: bookwyrm/templates/snippets/status/content_status.html:103
#, python-format
msgid "(%(percent)s%%)"
msgstr "(%(percent)s%%)"
-#: bookwyrm/templates/snippets/status/content_status.html:128
+#: bookwyrm/templates/snippets/status/content_status.html:125
msgid "Open image in new window"
msgstr "Abrir imagem numa nova janela"
-#: bookwyrm/templates/snippets/status/content_status.html:147
+#: bookwyrm/templates/snippets/status/content_status.html:144
msgid "Hide status"
msgstr "Ocultar estado"
diff --git a/locale/zh_Hans/LC_MESSAGES/django.po b/locale/zh_Hans/LC_MESSAGES/django.po
index 35695336c..557694222 100644
--- a/locale/zh_Hans/LC_MESSAGES/django.po
+++ b/locale/zh_Hans/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-01-17 16:05+0000\n"
-"PO-Revision-Date: 2022-01-17 17:10\n"
+"POT-Creation-Date: 2022-01-17 19:26+0000\n"
+"PO-Revision-Date: 2022-01-17 19:57\n"
"Last-Translator: Mouse Reeve \n"
"Language-Team: Chinese Simplified\n"
"Language: zh\n"
@@ -84,7 +84,7 @@ msgstr "加载书籍时出错"
msgid "Could not find a match for book"
msgstr "找不到匹配的书"
-#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:62
+#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending"
@@ -132,7 +132,7 @@ msgstr "平装"
msgid "Federated"
msgstr "跨站"
-#: bookwyrm/models/federated_server.py:12 bookwyrm/models/link.py:61
+#: bookwyrm/models/federated_server.py:12 bookwyrm/models/link.py:71
#: bookwyrm/templates/settings/federation/edit_instance.html:44
#: bookwyrm/templates/settings/federation/instance.html:10
#: bookwyrm/templates/settings/federation/instance_list.html:23
@@ -191,7 +191,19 @@ msgstr "关注者"
msgid "Private"
msgstr "私密"
-#: bookwyrm/models/link.py:60
+#: bookwyrm/models/link.py:51
+msgid "Free"
+msgstr ""
+
+#: bookwyrm/models/link.py:52
+msgid "Purchasable"
+msgstr ""
+
+#: bookwyrm/models/link.py:53
+msgid "Available for loan"
+msgstr ""
+
+#: bookwyrm/models/link.py:70
#: bookwyrm/templates/settings/link_domains/link_domains.html:23
msgid "Approved"
msgstr ""
@@ -671,7 +683,8 @@ msgstr "ISNI:"
#: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:193
#: bookwyrm/templates/book/edit/edit_book.html:121
-#: bookwyrm/templates/book/file_links/add_link_modal.html:50
+#: bookwyrm/templates/book/file_links/add_link_modal.html:58
+#: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:30
#: bookwyrm/templates/lists/bookmark_button.html:15
#: bookwyrm/templates/lists/form.html:130
@@ -693,7 +706,7 @@ msgstr "保存"
#: bookwyrm/templates/book/cover_add_modal.html:32
#: bookwyrm/templates/book/edit/edit_book.html:123
#: bookwyrm/templates/book/edit/edit_book.html:126
-#: bookwyrm/templates/book/file_links/add_link_modal.html:52
+#: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/verification_modal.html:21
#: bookwyrm/templates/book/sync_modal.html:23
#: bookwyrm/templates/groups/delete_group_modal.html:17
@@ -1062,9 +1075,13 @@ msgstr ""
msgid "File type:"
msgstr ""
+#: bookwyrm/templates/book/file_links/add_link_modal.html:48
+msgid "Availability:"
+msgstr ""
+
#: bookwyrm/templates/book/file_links/edit_links.html:5
#: bookwyrm/templates/book/file_links/edit_links.html:22
-#: bookwyrm/templates/book/file_links/links.html:47
+#: bookwyrm/templates/book/file_links/links.html:53
msgid "Edit links"
msgstr ""
@@ -1097,21 +1114,32 @@ msgid "Domain"
msgstr "域名"
#: bookwyrm/templates/book/file_links/edit_links.html:36
+#: bookwyrm/templates/import/import_status.html:127
+#: bookwyrm/templates/settings/announcements/announcements.html:38
+#: bookwyrm/templates/settings/federation/instance_list.html:46
+#: bookwyrm/templates/settings/invites/manage_invite_requests.html:44
+#: bookwyrm/templates/settings/invites/status_filter.html:5
+#: bookwyrm/templates/settings/users/user_admin.html:34
+#: bookwyrm/templates/settings/users/user_info.html:20
+msgid "Status"
+msgstr "状态"
+
+#: bookwyrm/templates/book/file_links/edit_links.html:37
#: bookwyrm/templates/settings/federation/instance.html:94
#: bookwyrm/templates/settings/reports/report_links_table.html:6
msgid "Actions"
msgstr "动作"
-#: bookwyrm/templates/book/file_links/edit_links.html:52
+#: bookwyrm/templates/book/file_links/edit_links.html:53
#: bookwyrm/templates/book/file_links/verification_modal.html:25
msgid "Report spam"
msgstr ""
-#: bookwyrm/templates/book/file_links/edit_links.html:65
+#: bookwyrm/templates/book/file_links/edit_links.html:97
msgid "No links available for this book."
msgstr ""
-#: bookwyrm/templates/book/file_links/edit_links.html:76
+#: bookwyrm/templates/book/file_links/edit_links.html:108
#: bookwyrm/templates/book/file_links/links.html:18
msgid "Add link to file"
msgstr ""
@@ -1124,7 +1152,7 @@ msgstr ""
msgid "Get a copy"
msgstr ""
-#: bookwyrm/templates/book/file_links/links.html:41
+#: bookwyrm/templates/book/file_links/links.html:47
msgid "No links available"
msgstr ""
@@ -1957,16 +1985,6 @@ msgstr "书评"
msgid "Book"
msgstr "书目"
-#: bookwyrm/templates/import/import_status.html:127
-#: bookwyrm/templates/settings/announcements/announcements.html:38
-#: bookwyrm/templates/settings/federation/instance_list.html:46
-#: bookwyrm/templates/settings/invites/manage_invite_requests.html:44
-#: bookwyrm/templates/settings/invites/status_filter.html:5
-#: bookwyrm/templates/settings/users/user_admin.html:34
-#: bookwyrm/templates/settings/users/user_info.html:20
-msgid "Status"
-msgstr "状态"
-
#: bookwyrm/templates/import/import_status.html:135
msgid "Import preview unavailable."
msgstr "导入预览不可用。"
@@ -2015,8 +2033,8 @@ msgid "Reject"
msgstr "驳回"
#: bookwyrm/templates/import/tooltip.html:6
-msgid "You can download your Goodreads data from the Import/Export page of your Goodreads account."
-msgstr "您可以从 导入/导出页面 下载或导出您的 Goodread 数据。"
+msgid "You can download your Goodreads data from the Import/Export page of your Goodreads account."
+msgstr ""
#: bookwyrm/templates/import/troubleshoot.html:7
msgid "Failed items"
@@ -4271,29 +4289,29 @@ msgstr "从 %(name)s 移除"
msgid "Finish reading"
msgstr "完成阅读"
-#: bookwyrm/templates/snippets/status/content_status.html:75
+#: bookwyrm/templates/snippets/status/content_status.html:72
msgid "Content warning"
msgstr "内容警告"
-#: bookwyrm/templates/snippets/status/content_status.html:82
+#: bookwyrm/templates/snippets/status/content_status.html:79
msgid "Show status"
msgstr "显示状态"
-#: bookwyrm/templates/snippets/status/content_status.html:104
+#: bookwyrm/templates/snippets/status/content_status.html:101
#, python-format
msgid "(Page %(page)s)"
msgstr "(第 %(page)s 页)"
-#: bookwyrm/templates/snippets/status/content_status.html:106
+#: bookwyrm/templates/snippets/status/content_status.html:103
#, python-format
msgid "(%(percent)s%%)"
msgstr "(%(percent)s%%)"
-#: bookwyrm/templates/snippets/status/content_status.html:128
+#: bookwyrm/templates/snippets/status/content_status.html:125
msgid "Open image in new window"
msgstr "在新窗口中打开图像"
-#: bookwyrm/templates/snippets/status/content_status.html:147
+#: bookwyrm/templates/snippets/status/content_status.html:144
msgid "Hide status"
msgstr "隐藏状态"
diff --git a/locale/zh_Hant/LC_MESSAGES/django.po b/locale/zh_Hant/LC_MESSAGES/django.po
index d6985203b..b2c6bde91 100644
--- a/locale/zh_Hant/LC_MESSAGES/django.po
+++ b/locale/zh_Hant/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-01-17 16:05+0000\n"
-"PO-Revision-Date: 2022-01-17 17:10\n"
+"POT-Creation-Date: 2022-01-17 19:26+0000\n"
+"PO-Revision-Date: 2022-01-17 19:57\n"
"Last-Translator: Mouse Reeve \n"
"Language-Team: Chinese Traditional\n"
"Language: zh\n"
@@ -84,7 +84,7 @@ msgstr ""
msgid "Could not find a match for book"
msgstr ""
-#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:62
+#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending"
@@ -132,7 +132,7 @@ msgstr ""
msgid "Federated"
msgstr "跨站"
-#: bookwyrm/models/federated_server.py:12 bookwyrm/models/link.py:61
+#: bookwyrm/models/federated_server.py:12 bookwyrm/models/link.py:71
#: bookwyrm/templates/settings/federation/edit_instance.html:44
#: bookwyrm/templates/settings/federation/instance.html:10
#: bookwyrm/templates/settings/federation/instance_list.html:23
@@ -191,7 +191,19 @@ msgstr "關注者"
msgid "Private"
msgstr "私密"
-#: bookwyrm/models/link.py:60
+#: bookwyrm/models/link.py:51
+msgid "Free"
+msgstr ""
+
+#: bookwyrm/models/link.py:52
+msgid "Purchasable"
+msgstr ""
+
+#: bookwyrm/models/link.py:53
+msgid "Available for loan"
+msgstr ""
+
+#: bookwyrm/models/link.py:70
#: bookwyrm/templates/settings/link_domains/link_domains.html:23
msgid "Approved"
msgstr ""
@@ -671,7 +683,8 @@ msgstr ""
#: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:193
#: bookwyrm/templates/book/edit/edit_book.html:121
-#: bookwyrm/templates/book/file_links/add_link_modal.html:50
+#: bookwyrm/templates/book/file_links/add_link_modal.html:58
+#: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:30
#: bookwyrm/templates/lists/bookmark_button.html:15
#: bookwyrm/templates/lists/form.html:130
@@ -693,7 +706,7 @@ msgstr "儲存"
#: bookwyrm/templates/book/cover_add_modal.html:32
#: bookwyrm/templates/book/edit/edit_book.html:123
#: bookwyrm/templates/book/edit/edit_book.html:126
-#: bookwyrm/templates/book/file_links/add_link_modal.html:52
+#: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/verification_modal.html:21
#: bookwyrm/templates/book/sync_modal.html:23
#: bookwyrm/templates/groups/delete_group_modal.html:17
@@ -1062,9 +1075,13 @@ msgstr ""
msgid "File type:"
msgstr ""
+#: bookwyrm/templates/book/file_links/add_link_modal.html:48
+msgid "Availability:"
+msgstr ""
+
#: bookwyrm/templates/book/file_links/edit_links.html:5
#: bookwyrm/templates/book/file_links/edit_links.html:22
-#: bookwyrm/templates/book/file_links/links.html:47
+#: bookwyrm/templates/book/file_links/links.html:53
msgid "Edit links"
msgstr ""
@@ -1097,21 +1114,32 @@ msgid "Domain"
msgstr ""
#: bookwyrm/templates/book/file_links/edit_links.html:36
+#: bookwyrm/templates/import/import_status.html:127
+#: bookwyrm/templates/settings/announcements/announcements.html:38
+#: bookwyrm/templates/settings/federation/instance_list.html:46
+#: bookwyrm/templates/settings/invites/manage_invite_requests.html:44
+#: bookwyrm/templates/settings/invites/status_filter.html:5
+#: bookwyrm/templates/settings/users/user_admin.html:34
+#: bookwyrm/templates/settings/users/user_info.html:20
+msgid "Status"
+msgstr "狀態"
+
+#: bookwyrm/templates/book/file_links/edit_links.html:37
#: bookwyrm/templates/settings/federation/instance.html:94
#: bookwyrm/templates/settings/reports/report_links_table.html:6
msgid "Actions"
msgstr "動作"
-#: bookwyrm/templates/book/file_links/edit_links.html:52
+#: bookwyrm/templates/book/file_links/edit_links.html:53
#: bookwyrm/templates/book/file_links/verification_modal.html:25
msgid "Report spam"
msgstr ""
-#: bookwyrm/templates/book/file_links/edit_links.html:65
+#: bookwyrm/templates/book/file_links/edit_links.html:97
msgid "No links available for this book."
msgstr ""
-#: bookwyrm/templates/book/file_links/edit_links.html:76
+#: bookwyrm/templates/book/file_links/edit_links.html:108
#: bookwyrm/templates/book/file_links/links.html:18
msgid "Add link to file"
msgstr ""
@@ -1124,7 +1152,7 @@ msgstr ""
msgid "Get a copy"
msgstr ""
-#: bookwyrm/templates/book/file_links/links.html:41
+#: bookwyrm/templates/book/file_links/links.html:47
msgid "No links available"
msgstr ""
@@ -1957,16 +1985,6 @@ msgstr "書評"
msgid "Book"
msgstr "書目"
-#: bookwyrm/templates/import/import_status.html:127
-#: bookwyrm/templates/settings/announcements/announcements.html:38
-#: bookwyrm/templates/settings/federation/instance_list.html:46
-#: bookwyrm/templates/settings/invites/manage_invite_requests.html:44
-#: bookwyrm/templates/settings/invites/status_filter.html:5
-#: bookwyrm/templates/settings/users/user_admin.html:34
-#: bookwyrm/templates/settings/users/user_info.html:20
-msgid "Status"
-msgstr "狀態"
-
#: bookwyrm/templates/import/import_status.html:135
msgid "Import preview unavailable."
msgstr ""
@@ -2015,7 +2033,7 @@ msgid "Reject"
msgstr ""
#: bookwyrm/templates/import/tooltip.html:6
-msgid "You can download your Goodreads data from the Import/Export page of your Goodreads account."
+msgid "You can download your Goodreads data from the Import/Export page of your Goodreads account."
msgstr ""
#: bookwyrm/templates/import/troubleshoot.html:7
@@ -4271,29 +4289,29 @@ msgstr "從 %(name)s 移除"
msgid "Finish reading"
msgstr "完成閱讀"
-#: bookwyrm/templates/snippets/status/content_status.html:75
+#: bookwyrm/templates/snippets/status/content_status.html:72
msgid "Content warning"
msgstr ""
-#: bookwyrm/templates/snippets/status/content_status.html:82
+#: bookwyrm/templates/snippets/status/content_status.html:79
msgid "Show status"
msgstr ""
-#: bookwyrm/templates/snippets/status/content_status.html:104
+#: bookwyrm/templates/snippets/status/content_status.html:101
#, python-format
msgid "(Page %(page)s)"
msgstr ""
-#: bookwyrm/templates/snippets/status/content_status.html:106
+#: bookwyrm/templates/snippets/status/content_status.html:103
#, python-format
msgid "(%(percent)s%%)"
msgstr ""
-#: bookwyrm/templates/snippets/status/content_status.html:128
+#: bookwyrm/templates/snippets/status/content_status.html:125
msgid "Open image in new window"
msgstr "在新視窗中開啟圖片"
-#: bookwyrm/templates/snippets/status/content_status.html:147
+#: bookwyrm/templates/snippets/status/content_status.html:144
msgid "Hide status"
msgstr ""