Merge branch 'main' into black

This commit is contained in:
Mouse Reeve 2021-03-08 08:36:30 -08:00
commit a07f955781
41 changed files with 699 additions and 452 deletions

View file

@ -102,7 +102,7 @@ class ActivityObject:
if allow_create and \ if allow_create and \
hasattr(model, 'ignore_activity') and \ hasattr(model, 'ignore_activity') and \
model.ignore_activity(self): model.ignore_activity(self):
return None raise ActivitySerializerError()
# check for an existing instance # check for an existing instance
instance = instance or model.find_existing(self.serialize()) instance = instance or model.find_existing(self.serialize())

View file

@ -26,7 +26,7 @@ class Book(ActivityObject):
librarythingKey: str = '' librarythingKey: str = ''
goodreadsKey: str = '' goodreadsKey: str = ''
cover: Image = field(default_factory=lambda: {}) cover: Image = None
type: str = 'Book' type: str = 'Book'

View file

@ -449,7 +449,7 @@ def broadcast_task(sender_id, activity, recipients):
for recipient in recipients: for recipient in recipients:
try: try:
sign_and_send(sender, activity, recipient) sign_and_send(sender, activity, recipient)
except (HTTPError, SSLError) as e: except (HTTPError, SSLError, ConnectionError) as e:
logger.exception(e) logger.exception(e)

View file

@ -37,6 +37,10 @@ class BookDataModel(ObjectMixin, BookWyrmModel):
self.remote_id = None self.remote_id = None
return super().save(*args, **kwargs) return super().save(*args, **kwargs)
def broadcast(self, activity, sender, software='bookwyrm'):
''' only send book data updates to other bookwyrm instances '''
super().broadcast(activity, sender, software=software)
class Book(BookDataModel): class Book(BookDataModel):
''' a generic book, which can mean either an edition or a work ''' ''' a generic book, which can mean either an edition or a work '''

View file

@ -7,6 +7,7 @@ from bookwyrm import activitypub
from .activitypub_mixin import ActivityMixin from .activitypub_mixin import ActivityMixin
from .base_model import BookWyrmModel from .base_model import BookWyrmModel
from . import fields from . import fields
from .status import Status
class Favorite(ActivityMixin, BookWyrmModel): class Favorite(ActivityMixin, BookWyrmModel):
''' fav'ing a post ''' ''' fav'ing a post '''
@ -17,6 +18,11 @@ class Favorite(ActivityMixin, BookWyrmModel):
activity_serializer = activitypub.Like activity_serializer = activitypub.Like
@classmethod
def ignore_activity(cls, activity):
''' don't bother with incoming favs of unknown statuses '''
return not Status.objects.filter(remote_id=activity.object).exists()
def save(self, *args, **kwargs): def save(self, *args, **kwargs):
''' update user active time ''' ''' update user active time '''
self.user.last_active_date = timezone.now() self.user.last_active_date = timezone.now()

View file

@ -35,7 +35,7 @@
</div> </div>
<div class="columns"> <div class="columns">
<div class="column is-narrow"> <div class="column is-one-fifth">
{% include 'snippets/book_cover.html' with book=book size=large %} {% include 'snippets/book_cover.html' with book=book size=large %}
{% include 'snippets/rate_action.html' with user=request.user book=book %} {% include 'snippets/rate_action.html' with user=request.user book=book %}
{% include 'snippets/shelve_button/shelve_button.html' %} {% include 'snippets/shelve_button/shelve_button.html' %}
@ -93,7 +93,7 @@
</section> </section>
</div> </div>
<div class="column"> <div class="column is-three-fifths">
<div class="block"> <div class="block">
<h3 class="field is-grouped"> <h3 class="field is-grouped">
{% include 'snippets/stars.html' with rating=rating %} {% include 'snippets/stars.html' with rating=rating %}
@ -201,7 +201,7 @@
</div> </div>
</div> </div>
<div class="column is-narrow"> <div class="column is-one-fifth">
{% if book.subjects %} {% if book.subjects %}
<section class="content block"> <section class="content block">
<h2 class="title is-5">{% trans "Subjects" %}</h2> <h2 class="title is-5">{% trans "Subjects" %}</h2>
@ -217,7 +217,7 @@
<section class="content block"> <section class="content block">
<h2 class="title is-5">{% trans "Places" %}</h2> <h2 class="title is-5">{% trans "Places" %}</h2>
<ul> <ul>
{% for place in book.subject_placess %} {% for place in book.subject_places %}
<li>{{ place }}</li> <li>{{ place }}</li>
{% endfor %} {% endfor %}
</ul> </ul>
@ -252,10 +252,10 @@
<div class="media-left">{% include 'snippets/avatar.html' with user=rating.user %}</div> <div class="media-left">{% include 'snippets/avatar.html' with user=rating.user %}</div>
<div class="media-content"> <div class="media-content">
<div> <div>
{% include 'snippets/username.html' with user=rating.user %} <a href="{{ rating.user.local_path }}">{{ rating.user.display_name }}</a>
</div> </div>
<div class="field is-grouped mb-0"> <div class="is-flex">
<div>{% trans "rated it" %}</div> <p class="mr-1">{% trans "rated it" %}</p>
{% include 'snippets/stars.html' with rating=rating.rating %} {% include 'snippets/stars.html' with rating=rating.rating %}
</div> </div>
<div> <div>

View file

@ -6,13 +6,13 @@
<h1 class="title">{% blocktrans %}{{ tab_title }} Timeline{% endblocktrans %}</h1> <h1 class="title">{% blocktrans %}{{ tab_title }} Timeline{% endblocktrans %}</h1>
<div class="tabs"> <div class="tabs">
<ul> <ul>
<li class="{% if tab == 'home' %}is-active{% endif %}"> <li class="{% if tab == 'home' %}is-active{% endif %}"{% if tab == 'home' %} aria-current="page"{% endif %}>
<a href="/#feed">{% trans "Home" %}</a> <a href="/#feed">{% trans "Home" %}</a>
</li> </li>
<li class="{% if tab == 'local' %}is-active{% endif %}"> <li class="{% if tab == 'local' %}is-active{% endif %}"{% if tab == 'local' %} aria-current="page"{% endif %}>
<a href="/local#feed">{% trans "Local" %}</a> <a href="/local#feed">{% trans "Local" %}</a>
</li> </li>
<li class="{% if tab == 'federated' %}is-active{% endif %}"> <li class="{% if tab == 'federated' %}is-active{% endif %}"{% if tab == 'federated' %} aria-current="page"{% endif %}>
<a href="/federated#feed">{% trans "Federated" %}</a> <a href="/federated#feed">{% trans "Federated" %}</a>
</li> </li>
</ul> </ul>

View file

@ -4,7 +4,7 @@
{% block panel %} {% block panel %}
<header class="block"> <header class="block">
<a href="/#feed" class="button" data-back> <a href="/#feed" class="button" data-back>
<span class="icon icon-arrow-left" aira-hidden="true"></span> <span class="icon icon-arrow-left" aria-hidden="true"></span>
<span>{% trans "Back" %}</span> <span>{% trans "Back" %}</span>
</a> </a>
</header> </header>

View file

@ -79,7 +79,7 @@
aria-controls="navbar-dropdown" aria-controls="navbar-dropdown"
> >
{% include 'snippets/avatar.html' with user=request.user %} {% include 'snippets/avatar.html' with user=request.user %}
{% include 'snippets/username.html' with user=request.user anchor=false %} <span class="ml-2">{{ user.display_name }}</span>
</a> </a>
<ul class="navbar-dropdown" id="navbar-dropdown"> <ul class="navbar-dropdown" id="navbar-dropdown">
<li> <li>
@ -199,7 +199,7 @@
{% if site.support_link %} {% if site.support_link %}
<div class="column"> <div class="column">
<span class="icon icon-heart"></span> <span class="icon icon-heart"></span>
{% blocktrans %}Support {{ site.name }} on <a href="{{ site.support_link }}" target="_blank">{{ site.support_title }}</a>{% endblocktrans %} {% blocktrans with site_name=site.name support_link=site.support_link support_title=site.support_title %}Support {{ site_name }} on <a href="{{ support_link }}" target="_blank">{{ support_title }}</a>{% endblocktrans %}
</div> </div>
{% endif %} {% endif %}
<div class="column"> <div class="column">

View file

@ -0,0 +1,10 @@
{% load i18n %}
{% spaceless %}
{% if list.curation != 'open' %}
{% blocktrans with username=list.user.display_name path=list.user.local_path %}Created and curated by <a href="{{ path }}">{{ username }}</a>{% endblocktrans %}
{% else %}
{% blocktrans with username=list.user.display_name path=list.user.local_path %}Created by <a href="{{ path }}">{{ username }}</a>{% endblocktrans %}
{% endif %}
{% endspaceless %}

View file

@ -24,7 +24,7 @@
{% include 'snippets/book_titleby.html' with book=item.book %} {% include 'snippets/book_titleby.html' with book=item.book %}
</td> </td>
<td> <td>
{% include 'snippets/username.html' with user=item.user %} <a href="{{ item.user.local_path }}">{{ item.user.display_name }}</a>
</td> </td>
<td> <td>
<div class="field has-addons"> <div class="field has-addons">

View file

@ -1,5 +1,4 @@
{% load bookwyrm_tags %} {% load bookwyrm_tags %}
{% load i18n %}
<div class="columns is-multiline"> <div class="columns is-multiline">
{% for list in lists %} {% for list in lists %}
<div class="column is-one-quarter"> <div class="column is-one-quarter">
@ -16,7 +15,9 @@
</div> </div>
<div class="card-content is-flex-grow-0"> <div class="card-content is-flex-grow-0">
{% if list.description %}{{ list.description | to_markdown | safe | truncatewords_html:20 }}{% endif %} {% if list.description %}{{ list.description | to_markdown | safe | truncatewords_html:20 }}{% endif %}
<p class="subtitle help">{% if list.curation != 'open' %}{% trans "Created and curated by" %}{% else %}{% trans "Created by" %}{% endif %} {% include 'snippets/username.html' with user=list.user %}</p> <p class="subtitle help">
{% include 'lists/created_text.html' with list=list %}
</p>
</div> </div>
</div> </div>
</div> </div>

View file

@ -8,8 +8,9 @@
<header class="columns content is-mobile"> <header class="columns content is-mobile">
<div class="column"> <div class="column">
<h1 class="title">{{ list.name }} <span class="subtitle">{% include 'snippets/privacy-icons.html' with item=list %}</span></h1> <h1 class="title">{{ list.name }} <span class="subtitle">{% include 'snippets/privacy-icons.html' with item=list %}</span></h1>
<p class="subtitle help">{% if list.curation != 'open' %}{% trans "Created and curated by" %}{% else %}{% trans "Created by" %} {% include 'snippets/username.html' with user=list.user %}</p> <p class="subtitle help">
{% endif %} {% include 'lists/created_text.html' with list=list %}
</p>
{% include 'snippets/trimmed_text.html' with full=list.description %} {% include 'snippets/trimmed_text.html' with full=list.description %}
</div> </div>
{% if request.user == list.user %} {% if request.user == list.user %}

View file

@ -42,8 +42,10 @@
<p> <p>
{# DESCRIPTION #} {# DESCRIPTION #}
{% if notification.related_user %} {% if notification.related_user %}
{% include 'snippets/avatar.html' with user=notification.related_user %} <a href="{{ notification.related_user.local_path }}">
{% include 'snippets/username.html' with user=notification.related_user %} {% include 'snippets/avatar.html' with user=notification.related_user %}
{{ notification.related_user.display_name }}
</a>
{% if notification.notification_type == 'FAVORITE' %} {% if notification.notification_type == 'FAVORITE' %}
{% if related_status.status_type == 'Review' %} {% if related_status.status_type == 'Review' %}
{% blocktrans with book_title=related_status.book.title related_path=related_status.local_path %}favorited your <a href="{{ related_path }}">review of <em>{{ book_title }}</em></a>{% endblocktrans %} {% blocktrans with book_title=related_status.book.title related_path=related_status.local_path %}favorited your <a href="{{ related_path }}">review of <em>{{ book_title }}</em></a>{% endblocktrans %}
@ -114,7 +116,9 @@
<div class="columns"> <div class="columns">
<div class="column"> <div class="column">
{% if related_status.content %} {% if related_status.content %}
<a href="{{ related_status.local_path }}">{{ related_status.content | safe | truncatewords_html:10 }}</a> <a href="{{ related_status.local_path }}">
{{ related_status.content | safe | truncatewords_html:10 }}{% if related_status.mention_books %} <em>{{ related_status.mention_books.first.title }}</em>{% endif %}
</a>
{% elif related_status.quote %} {% elif related_status.quote %}
<a href="{{ related_status.local_path }}">{{ related_status.quote | safe | truncatewords_html:10 }}</a> <a href="{{ related_status.local_path }}">{{ related_status.quote | safe | truncatewords_html:10 }}</a>
{% elif related_status.rating %} {% elif related_status.rating %}

View file

@ -15,7 +15,7 @@
{% for user in request.user.blocks.all %} {% for user in request.user.blocks.all %}
<li class="is-flex"> <li class="is-flex">
<p> <p>
{% include 'snippets/avatar.html' with user=user %} {% include 'snippets/username.html' with user=user %} <a href="{{ user.local_path }}">{% include 'snippets/avatar.html' with user=user %} {{ user.display_name }}</a>
</p> </p>
<p class="mr-2"> <p class="mr-2">
{% include 'snippets/block_button.html' with user=user %} {% include 'snippets/block_button.html' with user=user %}

View file

@ -79,8 +79,10 @@
<ul> <ul>
{% for result in user_results %} {% for result in user_results %}
<li class="block"> <li class="block">
{% include 'snippets/avatar.html' with user=result %}</h2> <a href="{{ result.local_path }}">
{% include 'snippets/username.html' with user=result show_full=True %}</h2> {% include 'snippets/avatar.html' with user=result %}
{{ result.display_name }}
</a> ({{ result.username }})
{% include 'snippets/follow_button.html' with user=result %} {% include 'snippets/follow_button.html' with user=result %}
</li> </li>
{% endfor %} {% endfor %}

View file

@ -1,3 +1,3 @@
{% load bookwyrm_tags %} {% load bookwyrm_tags %}
<img class="avatar image {% if large %}is-96x96{% else %}is-32x32{% endif %}" src="{% if user.avatar %}/images/{{ user.avatar }}{% else %}/static/images/default_avi.jpg{% endif %}" alt="{{ user.alt_text }}"> <img class="avatar image {% if large %}is-96x96{% else %}is-32x32{% endif %}" src="{% if user.avatar %}/images/{{ user.avatar }}{% else %}/static/images/default_avi.jpg{% endif %}" {% if ariaHide %}aria-hidden="true"{% endif %} alt="{{ user.alt_text }}">

View file

@ -6,8 +6,7 @@
<div class="no-cover book-cover"> <div class="no-cover book-cover">
<img class="book-cover" src="/static/images/no_cover.jpg" alt="No cover"> <img class="book-cover" src="/static/images/no_cover.jpg" alt="No cover">
<div> <div>
<p>{{ book.title }}</p> <p>{{ book.alt_text }}</p>
<p>({{ book.edition_info }})</p>
</div> </div>
</div> </div>
{% endif %} {% endif %}

View file

@ -67,4 +67,4 @@
</div> </div>
</form> </form>
</div> </div>
{% include 'snippets/delete_readthrough_modal.html' with controls_text="delete-readthrough" controls_uid=readthrough.id %} {% include 'snippets/delete_readthrough_modal.html' with controls_text="delete-readthrough" controls_uid=readthrough.id no_body=True %}

View file

@ -2,8 +2,10 @@
{% load i18n %} {% load i18n %}
{% if not status.deleted %} {% if not status.deleted %}
{% if status.status_type == 'Announce' %} {% if status.status_type == 'Announce' %}
{% include 'snippets/avatar.html' with user=status.user %} <a href="{{ status.user.local_path }}">
{% include 'snippets/username.html' with user=status.user %} {% include 'snippets/avatar.html' with user=status.user %}
{{ status.user.display_name }}
</a>
{% trans "boosted" %} {% trans "boosted" %}
{% include 'snippets/status/status_body.html' with status=status|boosted_status %} {% include 'snippets/status/status_body.html' with status=status|boosted_status %}
{% else %} {% else %}

View file

@ -1,7 +1,9 @@
{% load bookwyrm_tags %} {% load bookwyrm_tags %}
{% load i18n %} {% load i18n %}
{% include 'snippets/avatar.html' with user=status.user %} <a href="{{ status.user.local_path }}">
{% include 'snippets/username.html' with user=status.user %} {% include 'snippets/avatar.html' with user=status.user ariaHide="true" %}
{{ status.user.display_name }}
</a>
{% if status.status_type == 'GeneratedNote' %} {% if status.status_type == 'GeneratedNote' %}
{{ status.content | safe }} {{ status.content | safe }}
@ -15,7 +17,17 @@
{% trans "quoted" %} {% trans "quoted" %}
{% elif status.reply_parent %} {% elif status.reply_parent %}
{% with parent_status=status|parent %} {% with parent_status=status|parent %}
replied to {% include 'snippets/username.html' with user=parent_status.user possessive=True %} <a href="{{parent_status.remote_id }}">{% if parent_status.status_type == 'GeneratedNote' %}update{% else %}{{ parent_status.status_type | lower }}{% endif %}</a>
{% if parent_status.status_type == 'Review' %}
{% blocktrans with username=parent_status.user.display_name user_path=parent_status.user.local_path status_path=parent_status.local_path %}replied to <a href="{{ user_path }}">{{ username}}'s</a> <a href="{{ status_path }}">review</a>{% endblocktrans %}
{% elif parent_status.status_type == 'Comment' %}
{% blocktrans with username=parent_status.user.display_name user_path=parent_status.user.local_path status_path=parent_status.local_path %}replied to <a href="{{ user_path }}">{{ username}}'s</a> <a href="{{ status_path }}">comment</a>{% endblocktrans %}
{% elif parent_status.status_type == 'Quotation' %}
{% blocktrans with username=parent_status.user.display_name user_path=parent_status.user.local_path status_path=parent_status.local_path %}replied to <a href="{{ user_path }}">{{ username}}'s</a> <a href="{{ status_path }}">quote</a>{% endblocktrans %}
{% else %}
{% blocktrans with username=parent_status.user.display_name user_path=parent_status.user.local_path status_path=parent_status.local_path %}replied to <a href="{{ user_path }}">{{ username}}'s</a> <a href="{{ status_path }}">status</a>{% endblocktrans %}
{% endif %}
{% endwith %} {% endwith %}
{% endif %} {% endif %}
{% if status.book %} {% if status.book %}

View file

@ -1,15 +0,0 @@
{% spaceless %}
{% load bookwyrm_tags %}
<{% if anchor %}a href="{{ user.local_path }}"{% else %}span{% endif %}
class="user ml-1"
>
{{ user.display_name }}
</a>
{% if possessive %}'s{% endif %}
{% if show_full and user.name or show_full and user.localname %}
({{ user.username }})
{% endif %}
{% endspaceless %}

View file

@ -11,19 +11,22 @@
{% block panel %} {% block panel %}
<div class="block"> <div class="block">
<h2 class="title">{% trans "Followers" %}</h2> <h2 class="title">{% trans "Followers" %}</h2>
{% for followers in followers %} {% for follower in followers %}
<div class="block columns"> <div class="block columns">
<div class="column"> <div class="column">
{% include 'snippets/avatar.html' with user=followers %} <a href="{{ follower.local_path }}">
{% include 'snippets/username.html' with user=followers show_full=True %} {% include 'snippets/avatar.html' with user=follower %}
{{ follower.display_name }}
</a>
({{ follower.username }})
</div> </div>
<div class="column is-narrow"> <div class="column is-narrow">
{% include 'snippets/follow_button.html' with user=followers %} {% include 'snippets/follow_button.html' with user=follower %}
</div> </div>
</div> </div>
{% endfor %} {% endfor %}
{% if not followers.count %} {% if not followers.count %}
<div>{% blocktrans with username=user|username %}{{ username }} has no followers{% endblocktrans %}</div> <div>{% blocktrans with username=user.display_name %}{{ username }} has no followers{% endblocktrans %}</div>
{% endif %} {% endif %}
</div> </div>
{% endblock %} {% endblock %}

View file

@ -14,8 +14,11 @@
{% for follower in user.following.all %} {% for follower in user.following.all %}
<div class="block columns"> <div class="block columns">
<div class="column"> <div class="column">
{% include 'snippets/avatar.html' with user=follower %} <a href="{{ follower.local_path }}">
{% include 'snippets/username.html' with user=follower show_full=True %} {% include 'snippets/avatar.html' with user=follower %}
{{ follower.display_name }}
</a>
({{ follower.username }})
</div> </div>
<div class="column"> <div class="column">
{% include 'snippets/follow_button.html' with user=follower %} {% include 'snippets/follow_button.html' with user=follower %}

View file

@ -33,7 +33,7 @@
{% for requester in user.follower_requests.all %} {% for requester in user.follower_requests.all %}
<div class="row shrink"> <div class="row shrink">
<p> <p>
{% include 'snippets/username.html' with user=requester show_full=True %} <a href="{{ requester.local_path }}">{{ requester.display_name }}</a> ({{ requester.username }})
</p> </p>
{% include 'snippets/follow_request_buttons.html' with user=requester %} {% include 'snippets/follow_request_buttons.html' with user=requester %}
</div> </div>
@ -56,7 +56,7 @@
<a href="{{ url }}">{% trans "Reading Goal" %}</a> <a href="{{ url }}">{% trans "Reading Goal" %}</a>
</li> </li>
{% endif %} {% endif %}
{% if is_self or user.lists.exists %} {% if is_self or user.list_set.exists %}
{% url 'user-lists' user|username as url %} {% url 'user-lists' user|username as url %}
<li{% if url in request.path %} class="is-active"{% endif %}> <li{% if url in request.path %} class="is-active"{% endif %}>
<a href="{{ url }}">{% trans "Lists" %}</a> <a href="{{ url }}">{% trans "Lists" %}</a>

View file

@ -1 +0,0 @@
from . import *

View file

@ -208,7 +208,10 @@ class BaseActivity(TestCase):
# sets the celery task call to the function call # sets the celery task call to the function call
with patch( with patch(
'bookwyrm.activitypub.base_activity.set_related_field.delay'): 'bookwyrm.activitypub.base_activity.set_related_field.delay'):
update_data.to_model(model=models.Status, instance=status) with patch('bookwyrm.models.status.Status.ignore_activity') \
as discarder:
discarder.return_value = False
update_data.to_model(model=models.Status, instance=status)
self.assertIsNone(status.attachments.first()) self.assertIsNone(status.attachments.first())

View file

@ -74,7 +74,7 @@ class Inbox(TestCase):
mock_valid.return_value = False mock_valid.return_value = False
result = self.client.post( result = self.client.post(
'/user/mouse/inbox', '/user/mouse/inbox',
'{"type": "Test", "object": "exists"}', '{"type": "Announce", "object": "exists"}',
content_type="application/json" content_type="application/json"
) )
self.assertEqual(result.status_code, 401) self.assertEqual(result.status_code, 401)
@ -484,7 +484,7 @@ class Inbox(TestCase):
'actor': 'https://example.com/users/rat', 'actor': 'https://example.com/users/rat',
'type': 'Like', 'type': 'Like',
'published': 'Mon, 25 May 2020 19:31:20 GMT', 'published': 'Mon, 25 May 2020 19:31:20 GMT',
'object': 'https://example.com/status/1', 'object': self.status.remote_id,
} }
views.inbox.activity_task(activity) views.inbox.activity_task(activity)
@ -494,6 +494,21 @@ class Inbox(TestCase):
self.assertEqual(fav.remote_id, 'https://example.com/fav/1') self.assertEqual(fav.remote_id, 'https://example.com/fav/1')
self.assertEqual(fav.user, self.remote_user) self.assertEqual(fav.user, self.remote_user)
def test_ignore_favorite(self):
''' don't try to save an unknown status '''
activity = {
'@context': 'https://www.w3.org/ns/activitystreams',
'id': 'https://example.com/fav/1',
'actor': 'https://example.com/users/rat',
'type': 'Like',
'published': 'Mon, 25 May 2020 19:31:20 GMT',
'object': 'https://unknown.status/not-found',
}
views.inbox.activity_task(activity)
self.assertFalse(models.Favorite.objects.exists())
def test_handle_unfavorite(self): def test_handle_unfavorite(self):
''' fav a status ''' ''' fav a status '''
activity = { activity = {

View file

@ -89,7 +89,7 @@ class Book(View):
'rating': reviews.aggregate(Avg('rating'))['rating__avg'], 'rating': reviews.aggregate(Avg('rating'))['rating__avg'],
'tags': models.UserTag.objects.filter(book=book), 'tags': models.UserTag.objects.filter(book=book),
'lists': privacy_filter( 'lists': privacy_filter(
request.user, book.list_set.all() request.user, book.list_set.filter(listitem__approved=True)
), ),
'user_tags': user_tags, 'user_tags': user_tags,
'user_shelves': user_shelves, 'user_shelves': user_shelves,

View file

@ -20,7 +20,7 @@ class Inbox(View):
''' requests sent by outside servers''' ''' requests sent by outside servers'''
def post(self, request, username=None): def post(self, request, username=None):
''' only works as POST request ''' ''' only works as POST request '''
# first let's do some basic checks to see if this is legible # make sure the user's inbox even exists
if username: if username:
try: try:
models.User.objects.get(localname=username) models.User.objects.get(localname=username)
@ -33,6 +33,11 @@ class Inbox(View):
except json.decoder.JSONDecodeError: except json.decoder.JSONDecodeError:
return HttpResponseBadRequest() return HttpResponseBadRequest()
if not 'object' in activity_json or \
not 'type' in activity_json or \
not activity_json['type'] in activitypub.activity_objects:
return HttpResponseNotFound()
# verify the signature # verify the signature
if not has_valid_signature(request, activity_json): if not has_valid_signature(request, activity_json):
if activity_json['type'] == 'Delete': if activity_json['type'] == 'Delete':
@ -42,12 +47,6 @@ class Inbox(View):
return HttpResponse() return HttpResponse()
return HttpResponse(status=401) return HttpResponse(status=401)
# just some quick smell tests before we try to parse the json
if not 'object' in activity_json or \
not 'type' in activity_json or \
not activity_json['type'] in activitypub.activity_objects:
return HttpResponseNotFound()
activity_task.delay(activity_json) activity_task.delay(activity_json)
return HttpResponse() return HttpResponse()
@ -63,7 +62,11 @@ def activity_task(activity_json):
# cool that worked, now we should do the action described by the type # cool that worked, now we should do the action described by the type
# (create, update, delete, etc) # (create, update, delete, etc)
activity.action() try:
activity.action()
except activitypub.ActivitySerializerError:
# this is raised if the activity is discarded
return
def has_valid_signature(request, activity): def has_valid_signature(request, activity):

9
bw-dev
View file

@ -35,6 +35,10 @@ function initdb {
execweb python manage.py initdb execweb python manage.py initdb
} }
function makeitblack {
runweb black celerywyrm bookwyrm
}
CMD=$1 CMD=$1
shift shift
@ -102,7 +106,10 @@ case "$CMD" in
clean) clean)
clean clean
;; ;;
black)
makeitblack
;;
*) *)
echo "Unrecognised command. Try: build, clean, up, initdb, resetdb, makemigrations, migrate, bash, shell, dbshell, restart_celery, test, pytest, test_report" echo "Unrecognised command. Try: build, clean, up, initdb, resetdb, makemigrations, migrate, bash, shell, dbshell, restart_celery, test, pytest, test_report, black"
;; ;;
esac esac

Binary file not shown.

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 0.0.1\n" "Project-Id-Version: 0.0.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-03-04 22:24+0000\n" "POT-Creation-Date: 2021-03-07 23:40+0000\n"
"PO-Revision-Date: 2021-03-02 17:19-0800\n" "PO-Revision-Date: 2021-03-02 17:19-0800\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n" "Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: English <LL@li.org>\n" "Language-Team: English <LL@li.org>\n"
@ -56,10 +56,8 @@ msgid "%(value)s is not a valid username"
msgstr "%(value)s ist kein gültiger Username" msgstr "%(value)s ist kein gültiger Username"
#: bookwyrm/models/fields.py:164 bookwyrm/templates/layout.html:152 #: bookwyrm/models/fields.py:164 bookwyrm/templates/layout.html:152
#, fuzzy
#| msgid "Server name"
msgid "username" msgid "username"
msgstr "Servername" msgstr "Username"
#: bookwyrm/models/fields.py:169 #: bookwyrm/models/fields.py:169
msgid "A user with that username already exists." msgid "A user with that username already exists."
@ -132,15 +130,15 @@ msgstr ""
#: bookwyrm/templates/book.html:84 #: bookwyrm/templates/book.html:84
#, fuzzy, python-format #, fuzzy, python-format
#| msgid "of %(book.pages)s pages" #| msgid "%(format)s, %(pages)s pages"
msgid "%(format)s, %(pages)s pages" msgid "%(format)s, %(pages)s pages"
msgstr "von %(book.pages)s Seiten" msgstr "%(format)s, %(book.pages)s Seiten"
#: bookwyrm/templates/book.html:86 #: bookwyrm/templates/book.html:86
#, fuzzy, python-format #, fuzzy, python-format
#| msgid "of %(book.pages)s pages" #| msgid "%(pages)s pages"
msgid "%(pages)s pages" msgid "%(pages)s pages"
msgstr "von %(book.pages)s Seiten" msgstr "%(book.pages)s Seiten"
#: bookwyrm/templates/book.html:91 #: bookwyrm/templates/book.html:91
msgid "View on OpenLibrary" msgid "View on OpenLibrary"
@ -236,7 +234,7 @@ msgstr "Orte"
#: bookwyrm/templates/book.html:229 bookwyrm/templates/layout.html:64 #: bookwyrm/templates/book.html:229 bookwyrm/templates/layout.html:64
#: bookwyrm/templates/lists/lists.html:4 bookwyrm/templates/lists/lists.html:9 #: bookwyrm/templates/lists/lists.html:4 bookwyrm/templates/lists/lists.html:9
#: bookwyrm/templates/search_results.html:90 #: bookwyrm/templates/search_results.html:92
#: bookwyrm/templates/user/user_layout.html:62 #: bookwyrm/templates/user/user_layout.html:62
msgid "Lists" msgid "Lists"
msgstr "Listen" msgstr "Listen"
@ -536,7 +534,7 @@ msgstr "%(name)s hat sich für %(year)s kein Leseziel gesetzt."
#: bookwyrm/templates/goal.html:51 #: bookwyrm/templates/goal.html:51
#, python-format #, python-format
msgid "Your %(year)s Books" msgid "Your %(year)s Books"
msgstr "Deine %(year)s Bücher" msgstr "Deine Bücher %(year)s"
#: bookwyrm/templates/goal.html:53 #: bookwyrm/templates/goal.html:53
#, python-format #, python-format
@ -601,35 +599,40 @@ msgstr "(Aktualisiere für ein Update!)"
msgid "Failed to load" msgid "Failed to load"
msgstr "Laden fehlgeschlagen" msgstr "Laden fehlgeschlagen"
#: bookwyrm/templates/import_status.html:59 #: bookwyrm/templates/import_status.html:44
#, python-format
msgid "Jump to the bottom of the list to select the %(failed_count)s items which failed to import."
msgstr ""
#: bookwyrm/templates/import_status.html:79
msgid "Select all" msgid "Select all"
msgstr "Alle auswählen" msgstr "Alle auswählen"
#: bookwyrm/templates/import_status.html:62 #: bookwyrm/templates/import_status.html:82
msgid "Retry items" msgid "Retry items"
msgstr "Punkte erneut versuchen" msgstr "Punkte erneut versuchen"
#: bookwyrm/templates/import_status.html:84 #: bookwyrm/templates/import_status.html:108
msgid "Successfully imported" msgid "Successfully imported"
msgstr "Erfolgreich importiert" msgstr "Erfolgreich importiert"
#: bookwyrm/templates/import_status.html:88 #: bookwyrm/templates/import_status.html:112
#: bookwyrm/templates/lists/curate.html:14 #: bookwyrm/templates/lists/curate.html:14
msgid "Book" msgid "Book"
msgstr "Buch" msgstr "Buch"
#: bookwyrm/templates/import_status.html:91 #: bookwyrm/templates/import_status.html:115
#: bookwyrm/templates/snippets/create_status_form.html:10 #: bookwyrm/templates/snippets/create_status_form.html:10
#: bookwyrm/templates/snippets/shelf.html:10 #: bookwyrm/templates/snippets/shelf.html:10
msgid "Title" msgid "Title"
msgstr "Titel" msgstr "Titel"
#: bookwyrm/templates/import_status.html:94 #: bookwyrm/templates/import_status.html:118
#: bookwyrm/templates/snippets/shelf.html:11 #: bookwyrm/templates/snippets/shelf.html:11
msgid "Author" msgid "Author"
msgstr "Autor*in" msgstr "Autor*in"
#: bookwyrm/templates/import_status.html:117 #: bookwyrm/templates/import_status.html:141
msgid "Imported" msgid "Imported"
msgstr "Importiert" msgstr "Importiert"
@ -646,6 +649,28 @@ msgstr "Zugiff verweigert"
msgid "Sorry! This invite code is no longer valid." msgid "Sorry! This invite code is no longer valid."
msgstr "Sorry! Dieser Einladecode ist mehr gültig." msgstr "Sorry! Dieser Einladecode ist mehr gültig."
#: bookwyrm/templates/isbn_search_results.html:4
#: bookwyrm/templates/search_results.html:4
msgid "Search Results"
msgstr "Suchergebnisse"
#: bookwyrm/templates/isbn_search_results.html:9
#: bookwyrm/templates/search_results.html:9
#, python-format
msgid "Search Results for \"%(query)s\""
msgstr "Suchergebnisse für \"%(query)s\""
#: bookwyrm/templates/isbn_search_results.html:14
#: bookwyrm/templates/search_results.html:14
msgid "Matching Books"
msgstr "Passende Bücher"
#: bookwyrm/templates/isbn_search_results.html:17
#: bookwyrm/templates/search_results.html:17
#, python-format
msgid "No books found for \"%(query)s\""
msgstr "Keine Bücher für \"%(query)s\" gefunden"
#: bookwyrm/templates/layout.html:33 #: bookwyrm/templates/layout.html:33
msgid "Search for a book or user" msgid "Search for a book or user"
msgstr "Suche nach Buch oder Benutzer*in" msgstr "Suche nach Buch oder Benutzer*in"
@ -670,7 +695,7 @@ msgstr ""
#: bookwyrm/templates/layout.html:92 #: bookwyrm/templates/layout.html:92
#: bookwyrm/templates/preferences/preferences_layout.html:14 #: bookwyrm/templates/preferences/preferences_layout.html:14
msgid "Profile" msgid "Profile"
msgstr "" msgstr "Profil"
#: bookwyrm/templates/layout.html:97 #: bookwyrm/templates/layout.html:97
msgid "Settings" msgid "Settings"
@ -729,7 +754,7 @@ msgstr "Admin kontaktieren"
#: bookwyrm/templates/layout.html:202 #: bookwyrm/templates/layout.html:202
#, python-format #, python-format
msgid "Support %(site.name)s on <a href=\"%(site.support_link)s\" target=\"_blank\">%(site.support_title)s</a>" msgid "Support %(site_name)s on <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>"
msgstr "" msgstr ""
#: bookwyrm/templates/layout.html:206 #: bookwyrm/templates/layout.html:206
@ -741,6 +766,18 @@ msgstr "BookWyrm ist open source Software. Du kannst dich auf <a href=\"https://
msgid "Create List" msgid "Create List"
msgstr "Liste erstellen" msgstr "Liste erstellen"
#: bookwyrm/templates/lists/created_text.html:5
#, fuzzy, python-format
#| msgid "Direct Messages with <a href=\"%(path)s\">%(username)s</a>"
msgid "Created and curated by <a href=\"%(path)s\">%(username)s</a>"
msgstr "Direktnachrichten mit <a href=\"%(path)s\">%(username)s</a>"
#: bookwyrm/templates/lists/created_text.html:7
#, fuzzy, python-format
#| msgid "Direct Messages with <a href=\"%(path)s\">%(username)s</a>"
msgid "Created by <a href=\"%(path)s\">%(username)s</a>"
msgstr "Direktnachrichten mit <a href=\"%(path)s\">%(username)s</a>"
#: bookwyrm/templates/lists/curate.html:6 #: bookwyrm/templates/lists/curate.html:6
msgid "Pending Books" msgid "Pending Books"
msgstr "Unbestätigte Bücher" msgstr "Unbestätigte Bücher"
@ -766,7 +803,7 @@ msgid "Discard"
msgstr "Ablehnen" msgstr "Ablehnen"
#: bookwyrm/templates/lists/edit_form.html:5 #: bookwyrm/templates/lists/edit_form.html:5
#: bookwyrm/templates/lists/list_layout.html:17 #: bookwyrm/templates/lists/list_layout.html:18
msgid "Edit List" msgid "Edit List"
msgstr "Liste bearbeiten" msgstr "Liste bearbeiten"
@ -845,16 +882,6 @@ msgstr "Keine Bücher gefunden"
msgid "Suggest" msgid "Suggest"
msgstr "Vorschlagen" msgstr "Vorschlagen"
#: bookwyrm/templates/lists/list_items.html:19
#: bookwyrm/templates/lists/list_layout.html:11
msgid "Created and curated by"
msgstr "Erstellt und kuratiert von"
#: bookwyrm/templates/lists/list_items.html:19
#: bookwyrm/templates/lists/list_layout.html:11
msgid "Created by"
msgstr "Erstellt von"
#: bookwyrm/templates/lists/lists.html:14 #: bookwyrm/templates/lists/lists.html:14
msgid "Your lists" msgid "Your lists"
msgstr "Deine Listen" msgstr "Deine Listen"
@ -898,110 +925,110 @@ msgstr "Die Seite die du angefordert hast scheint nicht zu existieren!"
msgid "Delete notifications" msgid "Delete notifications"
msgstr "Benachrichtigungen löschen" msgstr "Benachrichtigungen löschen"
#: bookwyrm/templates/notifications.html:49 #: bookwyrm/templates/notifications.html:51
#, python-format #, python-format
msgid "favorited your <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>" msgid "favorited your <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>"
msgstr "hat deine <a href=\"%(related_path)s\">Bewertung von <em>%(book_title)s</em></a> favorisiert" msgstr "hat deine <a href=\"%(related_path)s\">Bewertung von <em>%(book_title)s</em></a> favorisiert"
#: bookwyrm/templates/notifications.html:51 #: bookwyrm/templates/notifications.html:53
#, python-format #, python-format
msgid "favorited your <a href=\"%(related_path)s\">comment on <em>%(book_title)s</em></a>" msgid "favorited your <a href=\"%(related_path)s\">comment on <em>%(book_title)s</em></a>"
msgstr "hat deinen <a href=\"%(related_path)s\">Kommentar zu <em>%(book_title)s</em></a> favorisiert" msgstr "hat deinen <a href=\"%(related_path)s\">Kommentar zu <em>%(book_title)s</em></a> favorisiert"
#: bookwyrm/templates/notifications.html:53 #: bookwyrm/templates/notifications.html:55
#, python-format #, python-format
msgid "favorited your <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>" msgid "favorited your <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>"
msgstr " hat dein <a href=\"%(related_path)s\">Zitat aus <em>%(book_title)s</em></a>" msgstr " hat dein <a href=\"%(related_path)s\">Zitat aus <em>%(book_title)s</em></a> favorisiert"
#: bookwyrm/templates/notifications.html:55 #: bookwyrm/templates/notifications.html:57
#, python-format #, python-format
msgid "favorited your <a href=\"%(related_path)s\">status</a>" msgid "favorited your <a href=\"%(related_path)s\">status</a>"
msgstr "hat deinen <a href=\"%(related_path)s\">Status</a> favorisiert" msgstr "hat deinen <a href=\"%(related_path)s\">Status</a> favorisiert"
#: bookwyrm/templates/notifications.html:60 #: bookwyrm/templates/notifications.html:62
#, python-format #, python-format
msgid "mentioned you in a <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>" msgid "mentioned you in a <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>"
msgstr "hat dich in einer <a href=\"%(related_path)s\">Bewertung von <em>%(book_title)s</em></a> erwähnt" msgstr "hat dich in einer <a href=\"%(related_path)s\">Bewertung von <em>%(book_title)s</em></a> erwähnt"
#: bookwyrm/templates/notifications.html:62 #: bookwyrm/templates/notifications.html:64
#, python-format #, python-format
msgid "mentioned you in a <a href=\"%(related_path)s\">comment on <em>%(book_title)s</em></a>" msgid "mentioned you in a <a href=\"%(related_path)s\">comment on <em>%(book_title)s</em></a>"
msgstr "hat dich in einem <a href=\"%(related_path)s\">Kommentar zu <em>%(book_title)s</em></a> erwähnt" msgstr "hat dich in einem <a href=\"%(related_path)s\">Kommentar zu <em>%(book_title)s</em></a> erwähnt"
#: bookwyrm/templates/notifications.html:64 #: bookwyrm/templates/notifications.html:66
#, python-format #, python-format
msgid "mentioned you in a <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>" msgid "mentioned you in a <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>"
msgstr "hat dich in einem <a href=\"%(related_path)s\">Zitat von <em>%(book_title)s</em></a> erwähnt" msgstr "hat dich in einem <a href=\"%(related_path)s\">Zitat von <em>%(book_title)s</em></a> erwähnt"
#: bookwyrm/templates/notifications.html:66 #: bookwyrm/templates/notifications.html:68
#, python-format #, python-format
msgid "mentioned you in a <a href=\"%(related_path)s\">status</a>" msgid "mentioned you in a <a href=\"%(related_path)s\">status</a>"
msgstr "hat dich in einem <a href=\"%(related_path)s\">Status</a> erwähnt" msgstr "hat dich in einem <a href=\"%(related_path)s\">Status</a> erwähnt"
#: bookwyrm/templates/notifications.html:71 #: bookwyrm/templates/notifications.html:73
#, python-format #, python-format
msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">review of <em>%(book_title)s</em></a>" msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">review of <em>%(book_title)s</em></a>"
msgstr "hat auf deine <a href=\"%(parent_path)s\">Bewertung von <em>%(book_title)s</em></a> <a href=\"%(related_path)s\">geantwortet</a> " msgstr "hat auf deine <a href=\"%(parent_path)s\">Bewertung von <em>%(book_title)s</em></a> <a href=\"%(related_path)s\">geantwortet</a> "
#: bookwyrm/templates/notifications.html:73 #: bookwyrm/templates/notifications.html:75
#, python-format #, python-format
msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">comment on <em>%(book_title)s</em></a>" msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">comment on <em>%(book_title)s</em></a>"
msgstr "hat auf deinen <a href=\"%(parent_path)s\">Kommentar zu <em>%(book_title)s</em></a> <a href=\"%(related_path)s\">geantwortet</a>" msgstr "hat auf deinen <a href=\"%(parent_path)s\">Kommentar zu <em>%(book_title)s</em></a> <a href=\"%(related_path)s\">geantwortet</a>"
#: bookwyrm/templates/notifications.html:75 #: bookwyrm/templates/notifications.html:77
#, python-format #, python-format
msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">quote from <em>%(book_title)s</em></a>" msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">quote from <em>%(book_title)s</em></a>"
msgstr "hat auf dein <a href=\"%(parent_path)s\">Zitat aus <em>%(book_title)s</em></a> <a href=\"%(related_path)s\">geantwortet</a>" msgstr "hat auf dein <a href=\"%(parent_path)s\">Zitat aus <em>%(book_title)s</em></a> <a href=\"%(related_path)s\">geantwortet</a>"
#: bookwyrm/templates/notifications.html:77 #: bookwyrm/templates/notifications.html:79
#, python-format #, python-format
msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">status</a>" msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">status</a>"
msgstr "hat auf deinen <a href=\"%(parent_path)s\">Status</a> <a href=\"%(related_path)s\">geantwortet</a>" msgstr "hat auf deinen <a href=\"%(parent_path)s\">Status</a> <a href=\"%(related_path)s\">geantwortet</a>"
#: bookwyrm/templates/notifications.html:81 #: bookwyrm/templates/notifications.html:83
msgid "followed you" msgid "followed you"
msgstr "folgt dir" msgstr "folgt dir"
#: bookwyrm/templates/notifications.html:84 #: bookwyrm/templates/notifications.html:86
msgid "sent you a follow request" msgid "sent you a follow request"
msgstr "hat dir eine Folgeanfrage geschickt" msgstr "hat dir eine Folgeanfrage geschickt"
#: bookwyrm/templates/notifications.html:90 #: bookwyrm/templates/notifications.html:92
#, python-format #, python-format
msgid "boosted your <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>" msgid "boosted your <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>"
msgstr "hat deine <a href=\"%(related_path)s\">Bewertung von <em>%(book_title)s</em></a> geteilt" msgstr "hat deine <a href=\"%(related_path)s\">Bewertung von <em>%(book_title)s</em></a> geteilt"
#: bookwyrm/templates/notifications.html:92 #: bookwyrm/templates/notifications.html:94
#, python-format #, python-format
msgid "boosted your <a href=\"%(related_path)s\">comment on<em>%(book_title)s</em></a>" msgid "boosted your <a href=\"%(related_path)s\">comment on<em>%(book_title)s</em></a>"
msgstr "hat deinen <a href=\"%(related_path)s\">Kommentar zu<em>%(book_title)s</em></a> geteilt" msgstr "hat deinen <a href=\"%(related_path)s\">Kommentar zu<em>%(book_title)s</em></a> geteilt"
#: bookwyrm/templates/notifications.html:94 #: bookwyrm/templates/notifications.html:96
#, python-format #, python-format
msgid "boosted your <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>" msgid "boosted your <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>"
msgstr "hat dein <a href=\"%(related_path)s\">Zitat aus <em>%(book_title)s</em></a> geteilt" msgstr "hat dein <a href=\"%(related_path)s\">Zitat aus <em>%(book_title)s</em></a> geteilt"
#: bookwyrm/templates/notifications.html:96 #: bookwyrm/templates/notifications.html:98
#, python-format #, python-format
msgid "boosted your <a href=\"%(related_path)s\">status</a>" msgid "boosted your <a href=\"%(related_path)s\">status</a>"
msgstr "hat deinen <a href=\"%(related_path)s\">Status</a> geteilt" msgstr "hat deinen <a href=\"%(related_path)s\">Status</a> geteilt"
#: bookwyrm/templates/notifications.html:100 #: bookwyrm/templates/notifications.html:102
#, python-format #, python-format
msgid " added <em><a href=\"%(book_path)s\">%(book_title)s</a></em> to your list \"<a href=\"%(list_path)s\">%(list_name)s</a>\"" msgid " added <em><a href=\"%(book_path)s\">%(book_title)s</a></em> to your list \"<a href=\"%(list_path)s\">%(list_name)s</a>\""
msgstr "hat <em><a href=\"%(book_path)s\">%(book_title)s</a></em> zu deiner Liste \"<a href=\"%(list_path)s\">%(list_name)s</a>\" Hinzugefügt" msgstr "hat <em><a href=\"%(book_path)s\">%(book_title)s</a></em> zu deiner Liste \"<a href=\"%(list_path)s\">%(list_name)s</a>\" Hinzugefügt"
#: bookwyrm/templates/notifications.html:102 #: bookwyrm/templates/notifications.html:104
#, python-format #, python-format
msgid " suggested adding <em><a href=\"%(book_path)s\">%(book_title)s</a></em> to your list \"<a href=\"%(list_path)s/curate\">%(list_name)s</a>\"" msgid " suggested adding <em><a href=\"%(book_path)s\">%(book_title)s</a></em> to your list \"<a href=\"%(list_path)s/curate\">%(list_name)s</a>\""
msgstr "hat <em><a href=\"%(book_path)s\">%(book_title)s</a></em> für deine Liste \"<a href=\"%(list_path)s/curate\">%(list_name)s</a>\" vorgeschlagen" msgstr "hat <em><a href=\"%(book_path)s\">%(book_title)s</a></em> für deine Liste \"<a href=\"%(list_path)s/curate\">%(list_name)s</a>\" vorgeschlagen"
#: bookwyrm/templates/notifications.html:106 #: bookwyrm/templates/notifications.html:108
#, python-format #, python-format
msgid " your <a href=\"/import/%(related_id)s\">import</a> completed." msgid " your <a href=\"/import/%(related_id)s\">import</a> completed."
msgstr " dein <a href=\"/import/%(related_id)s\">Import</a> ist abgeschlossen." msgstr " dein <a href=\"/import/%(related_id)s\">Import</a> ist abgeschlossen."
#: bookwyrm/templates/notifications.html:138 #: bookwyrm/templates/notifications.html:142
msgid "You're all caught up!" msgid "You're all caught up!"
msgstr "Du bist auf dem neusten Stand!" msgstr "Du bist auf dem neusten Stand!"
@ -1071,7 +1098,7 @@ msgstr "Displayname:"
#: bookwyrm/templates/preferences/edit_user.html:31 #: bookwyrm/templates/preferences/edit_user.html:31
msgid "Summary:" msgid "Summary:"
msgstr "Zusammenfassung:" msgstr "Bio:"
#: bookwyrm/templates/preferences/edit_user.html:46 #: bookwyrm/templates/preferences/edit_user.html:46
msgid "Manually approve followers:" msgid "Manually approve followers:"
@ -1085,24 +1112,6 @@ msgstr ""
msgid "Relationships" msgid "Relationships"
msgstr "Beziehungen" msgstr "Beziehungen"
#: bookwyrm/templates/search_results.html:4
msgid "Search Results"
msgstr "Suchergebnisse"
#: bookwyrm/templates/search_results.html:9
#, python-format
msgid "Search Results for \"%(query)s\""
msgstr "Suchergebnisse für \"%(query)s\""
#: bookwyrm/templates/search_results.html:14
msgid "Matching Books"
msgstr "Passende Bücher"
#: bookwyrm/templates/search_results.html:17
#, python-format
msgid "No books found for \"%(query)s\""
msgstr "Keine Bücher für \"%(query)s\" gefunden"
#: bookwyrm/templates/search_results.html:33 #: bookwyrm/templates/search_results.html:33
msgid "Didn't find what you were looking for?" msgid "Didn't find what you were looking for?"
msgstr "Nicht gefunden, wonach du gesucht hast?" msgstr "Nicht gefunden, wonach du gesucht hast?"
@ -1128,7 +1137,7 @@ msgstr "Passende Nutzer*innen"
msgid "No users found for \"%(query)s\"" msgid "No users found for \"%(query)s\""
msgstr "Keine Nutzer*innen für \"%(query)s\" gefunden" msgstr "Keine Nutzer*innen für \"%(query)s\" gefunden"
#: bookwyrm/templates/search_results.html:92 #: bookwyrm/templates/search_results.html:94
#, python-format #, python-format
msgid "No lists found for \"%(query)s\"" msgid "No lists found for \"%(query)s\""
msgstr "Keine Liste für \"%(query)s\" gefunden" msgstr "Keine Liste für \"%(query)s\" gefunden"
@ -1454,11 +1463,11 @@ msgstr "%(username)s hat <a href=\"%(path)s\">%(read_count)s von %(goal_count)s
#: bookwyrm/templates/snippets/pagination.html:7 #: bookwyrm/templates/snippets/pagination.html:7
msgid "Previous" msgid "Previous"
msgstr "Vorher" msgstr "Zurück"
#: bookwyrm/templates/snippets/pagination.html:15 #: bookwyrm/templates/snippets/pagination.html:15
msgid "Next" msgid "Next"
msgstr "Danach" msgstr "Weiter"
#: bookwyrm/templates/snippets/privacy-icons.html:3 #: bookwyrm/templates/snippets/privacy-icons.html:3
#: bookwyrm/templates/snippets/privacy-icons.html:4 #: bookwyrm/templates/snippets/privacy-icons.html:4
@ -1518,7 +1527,7 @@ msgstr "Fortschrittsupdates:"
#: bookwyrm/templates/snippets/readthrough.html:11 #: bookwyrm/templates/snippets/readthrough.html:11
msgid "finished" msgid "finished"
msgstr "beendet" msgstr "Abgeschlossen"
#: bookwyrm/templates/snippets/readthrough.html:14 #: bookwyrm/templates/snippets/readthrough.html:14
msgid "Show all updates" msgid "Show all updates"
@ -1554,31 +1563,31 @@ msgstr "Fortschritt"
#: bookwyrm/templates/snippets/readthrough_form.html:30 #: bookwyrm/templates/snippets/readthrough_form.html:30
#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:25 #: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:25
msgid "Finished reading" msgid "Finished reading"
msgstr "Lesen beendet" msgstr "Lesen abgeschlossen"
#: bookwyrm/templates/snippets/register_form.html:32 #: bookwyrm/templates/snippets/register_form.html:32
msgid "Sign Up" msgid "Sign Up"
msgstr "Registrieren" msgstr "Registrieren"
#: bookwyrm/templates/snippets/rss_title.html:5 #: bookwyrm/templates/snippets/rss_title.html:5
#: bookwyrm/templates/snippets/status/status_header.html:9 #: bookwyrm/templates/snippets/status/status_header.html:11
msgid "rated" msgid "rated"
msgstr "" msgstr ""
#: bookwyrm/templates/snippets/rss_title.html:7 #: bookwyrm/templates/snippets/rss_title.html:7
#: bookwyrm/templates/snippets/status/status_header.html:11 #: bookwyrm/templates/snippets/status/status_header.html:13
msgid "reviewed" msgid "reviewed"
msgstr "bewertet" msgstr "bewertete"
#: bookwyrm/templates/snippets/rss_title.html:9 #: bookwyrm/templates/snippets/rss_title.html:9
#: bookwyrm/templates/snippets/status/status_header.html:13 #: bookwyrm/templates/snippets/status/status_header.html:15
msgid "commented on" msgid "commented on"
msgstr "kommentiert zu" msgstr "kommentierte"
#: bookwyrm/templates/snippets/rss_title.html:11 #: bookwyrm/templates/snippets/rss_title.html:11
#: bookwyrm/templates/snippets/status/status_header.html:15 #: bookwyrm/templates/snippets/status/status_header.html:17
msgid "quoted" msgid "quoted"
msgstr "zitiert" msgstr "zitierte"
#: bookwyrm/templates/snippets/search_result_text.html:3 #: bookwyrm/templates/snippets/search_result_text.html:3
#, python-format #, python-format
@ -1599,7 +1608,7 @@ msgstr "Gestartet"
#: bookwyrm/templates/snippets/shelf.html:15 #: bookwyrm/templates/snippets/shelf.html:15
msgid "Finished" msgid "Finished"
msgstr "Beendet" msgstr "Abgeschlossen"
#: bookwyrm/templates/snippets/shelf.html:16 #: bookwyrm/templates/snippets/shelf.html:16
msgid "External links" msgid "External links"
@ -1628,7 +1637,7 @@ msgstr "Vom Regal nehmen"
#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:5 #: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:5
#, python-format #, python-format
msgid "Finish \"<em>%(book_title)s</em>\"" msgid "Finish \"<em>%(book_title)s</em>\""
msgstr "\"<em>%(book_title)s</em>\" beenden" msgstr "\"<em>%(book_title)s</em>\" abschließen"
#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown.html:5 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown.html:5
msgid "More shelves" msgid "More shelves"
@ -1640,7 +1649,7 @@ msgstr "Zu lesen beginnen"
#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:13 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:13
msgid "Finish reading" msgid "Finish reading"
msgstr "Lesen beenden" msgstr "Lesen abschließen"
#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:16 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:16
#: bookwyrm/templates/snippets/shelve_button/want_to_read_modal.html:26 #: bookwyrm/templates/snippets/shelve_button/want_to_read_modal.html:26
@ -1657,9 +1666,9 @@ msgstr "\"<em>%(book_title)s</em>\" beginnen"
msgid "Want to Read \"<em>%(book_title)s</em>\"" msgid "Want to Read \"<em>%(book_title)s</em>\""
msgstr "\"<em>%(book_title)s</em>\" auf Leseliste setzen" msgstr "\"<em>%(book_title)s</em>\" auf Leseliste setzen"
#: bookwyrm/templates/snippets/status/status.html:7 #: bookwyrm/templates/snippets/status/status.html:9
msgid "boosted" msgid "boosted"
msgstr "geteilt" msgstr "teilt"
#: bookwyrm/templates/snippets/status/status_body.html:24 #: bookwyrm/templates/snippets/status/status_body.html:24
#: bookwyrm/templates/snippets/status/status_body.html:37 #: bookwyrm/templates/snippets/status/status_body.html:37
@ -1681,6 +1690,30 @@ msgstr "Weniger anzeigen"
msgid "Open image in new window" msgid "Open image in new window"
msgstr "Bild in neuem Fenster öffnen" msgstr "Bild in neuem Fenster öffnen"
#: bookwyrm/templates/snippets/status/status_header.html:22
#, fuzzy, python-format
#| msgid "Direct Messages with <a href=\"%(path)s\">%(username)s</a>"
msgid "replied to <a href=\"%(user_path)s\">%(username)s's</a> <a href=\"%(status_path)s\">review</a>"
msgstr "Direktnachrichten mit <a href=\"%(path)s\">%(username)s</a>"
#: bookwyrm/templates/snippets/status/status_header.html:24
#, fuzzy, python-format
#| msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">status</a>"
msgid "replied to <a href=\"%(user_path)s\">%(username)s's</a> <a href=\"%(status_path)s\">comment</a>"
msgstr "hat auf deinen <a href=\"%(parent_path)s\">Status</a> geantwortet</a>"
#: bookwyrm/templates/snippets/status/status_header.html:26
#, fuzzy, python-format
#| msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">status</a>"
msgid "replied to <a href=\"%(user_path)s\">%(username)s's</a> <a href=\"%(status_path)s\">quote</a>"
msgstr "hat auf deinen <a href=\"%(parent_path)s\">Status</a> <a href=\"%(related_path)s\">geantwortet</a>"
#: bookwyrm/templates/snippets/status/status_header.html:28
#, fuzzy, python-format
#| msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">status</a>"
msgid "replied to <a href=\"%(user_path)s\">%(username)s's</a> <a href=\"%(status_path)s\">status</a>"
msgstr "hat auf deinen <a href=\"%(parent_path)s\">Status</a> <a href=\"%(related_path)s\">geantwortet</a>"
#: bookwyrm/templates/snippets/status/status_options.html:7 #: bookwyrm/templates/snippets/status/status_options.html:7
#: bookwyrm/templates/snippets/user_options.html:7 #: bookwyrm/templates/snippets/user_options.html:7
msgid "More options" msgid "More options"
@ -1726,7 +1759,7 @@ msgstr "Regal aktualisieren"
msgid "User Profile" msgid "User Profile"
msgstr "Benutzerprofil" msgstr "Benutzerprofil"
#: bookwyrm/templates/user/followers.html:26 #: bookwyrm/templates/user/followers.html:29
#, python-format #, python-format
msgid "%(username)s has no followers" msgid "%(username)s has no followers"
msgstr "niemand folgt %(username)s " msgstr "niemand folgt %(username)s "
@ -1735,7 +1768,7 @@ msgstr "niemand folgt %(username)s "
msgid "Following" msgid "Following"
msgstr "Folgend" msgstr "Folgend"
#: bookwyrm/templates/user/following.html:26 #: bookwyrm/templates/user/following.html:29
#, python-format #, python-format
msgid "%(username)s isn't following any users" msgid "%(username)s isn't following any users"
msgstr "%(username)s folgt niemandem" msgstr "%(username)s folgt niemandem"
@ -1833,7 +1866,13 @@ msgstr[1] "%(counter)s Folgende"
#: bookwyrm/templates/user/user_preview.html:16 #: bookwyrm/templates/user/user_preview.html:16
#, python-format #, python-format
msgid "%(counter)s following" msgid "%(counter)s following"
msgstr "%(counter)s folgen" msgstr "Folgt %(counter)s"
#~ msgid "Created and curated by"
#~ msgstr "Erstellt und kuratiert von"
#~ msgid "Created by"
#~ msgstr "Erstellt von"
#~ msgid "Added by" #~ msgid "Added by"
#~ msgstr "Hinzugefügt von" #~ msgstr "Hinzugefügt von"

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 0.0.1\n" "Project-Id-Version: 0.0.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-03-04 22:24+0000\n" "POT-Creation-Date: 2021-03-07 23:40+0000\n"
"PO-Revision-Date: 2021-02-28 17:19-0800\n" "PO-Revision-Date: 2021-02-28 17:19-0800\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n" "Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: English <LL@li.org>\n" "Language-Team: English <LL@li.org>\n"
@ -227,7 +227,7 @@ msgstr ""
#: bookwyrm/templates/book.html:229 bookwyrm/templates/layout.html:64 #: bookwyrm/templates/book.html:229 bookwyrm/templates/layout.html:64
#: bookwyrm/templates/lists/lists.html:4 bookwyrm/templates/lists/lists.html:9 #: bookwyrm/templates/lists/lists.html:4 bookwyrm/templates/lists/lists.html:9
#: bookwyrm/templates/search_results.html:90 #: bookwyrm/templates/search_results.html:92
#: bookwyrm/templates/user/user_layout.html:62 #: bookwyrm/templates/user/user_layout.html:62
msgid "Lists" msgid "Lists"
msgstr "" msgstr ""
@ -588,35 +588,40 @@ msgstr ""
msgid "Failed to load" msgid "Failed to load"
msgstr "" msgstr ""
#: bookwyrm/templates/import_status.html:59 #: bookwyrm/templates/import_status.html:44
#, python-format
msgid "Jump to the bottom of the list to select the %(failed_count)s items which failed to import."
msgstr ""
#: bookwyrm/templates/import_status.html:79
msgid "Select all" msgid "Select all"
msgstr "" msgstr ""
#: bookwyrm/templates/import_status.html:62 #: bookwyrm/templates/import_status.html:82
msgid "Retry items" msgid "Retry items"
msgstr "" msgstr ""
#: bookwyrm/templates/import_status.html:84 #: bookwyrm/templates/import_status.html:108
msgid "Successfully imported" msgid "Successfully imported"
msgstr "" msgstr ""
#: bookwyrm/templates/import_status.html:88 #: bookwyrm/templates/import_status.html:112
#: bookwyrm/templates/lists/curate.html:14 #: bookwyrm/templates/lists/curate.html:14
msgid "Book" msgid "Book"
msgstr "" msgstr ""
#: bookwyrm/templates/import_status.html:91 #: bookwyrm/templates/import_status.html:115
#: bookwyrm/templates/snippets/create_status_form.html:10 #: bookwyrm/templates/snippets/create_status_form.html:10
#: bookwyrm/templates/snippets/shelf.html:10 #: bookwyrm/templates/snippets/shelf.html:10
msgid "Title" msgid "Title"
msgstr "" msgstr ""
#: bookwyrm/templates/import_status.html:94 #: bookwyrm/templates/import_status.html:118
#: bookwyrm/templates/snippets/shelf.html:11 #: bookwyrm/templates/snippets/shelf.html:11
msgid "Author" msgid "Author"
msgstr "" msgstr ""
#: bookwyrm/templates/import_status.html:117 #: bookwyrm/templates/import_status.html:141
msgid "Imported" msgid "Imported"
msgstr "" msgstr ""
@ -633,6 +638,28 @@ msgstr ""
msgid "Sorry! This invite code is no longer valid." msgid "Sorry! This invite code is no longer valid."
msgstr "" msgstr ""
#: bookwyrm/templates/isbn_search_results.html:4
#: bookwyrm/templates/search_results.html:4
msgid "Search Results"
msgstr ""
#: bookwyrm/templates/isbn_search_results.html:9
#: bookwyrm/templates/search_results.html:9
#, python-format
msgid "Search Results for \"%(query)s\""
msgstr ""
#: bookwyrm/templates/isbn_search_results.html:14
#: bookwyrm/templates/search_results.html:14
msgid "Matching Books"
msgstr ""
#: bookwyrm/templates/isbn_search_results.html:17
#: bookwyrm/templates/search_results.html:17
#, python-format
msgid "No books found for \"%(query)s\""
msgstr ""
#: bookwyrm/templates/layout.html:33 #: bookwyrm/templates/layout.html:33
msgid "Search for a book or user" msgid "Search for a book or user"
msgstr "" msgstr ""
@ -716,7 +743,7 @@ msgstr ""
#: bookwyrm/templates/layout.html:202 #: bookwyrm/templates/layout.html:202
#, python-format #, python-format
msgid "Support %(site.name)s on <a href=\"%(site.support_link)s\" target=\"_blank\">%(site.support_title)s</a>" msgid "Support %(site_name)s on <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>"
msgstr "" msgstr ""
#: bookwyrm/templates/layout.html:206 #: bookwyrm/templates/layout.html:206
@ -728,6 +755,16 @@ msgstr ""
msgid "Create List" msgid "Create List"
msgstr "" msgstr ""
#: bookwyrm/templates/lists/created_text.html:5
#, python-format
msgid "Created and curated by <a href=\"%(path)s\">%(username)s</a>"
msgstr ""
#: bookwyrm/templates/lists/created_text.html:7
#, python-format
msgid "Created by <a href=\"%(path)s\">%(username)s</a>"
msgstr ""
#: bookwyrm/templates/lists/curate.html:6 #: bookwyrm/templates/lists/curate.html:6
msgid "Pending Books" msgid "Pending Books"
msgstr "" msgstr ""
@ -753,7 +790,7 @@ msgid "Discard"
msgstr "" msgstr ""
#: bookwyrm/templates/lists/edit_form.html:5 #: bookwyrm/templates/lists/edit_form.html:5
#: bookwyrm/templates/lists/list_layout.html:17 #: bookwyrm/templates/lists/list_layout.html:18
msgid "Edit List" msgid "Edit List"
msgstr "" msgstr ""
@ -831,16 +868,6 @@ msgstr ""
msgid "Suggest" msgid "Suggest"
msgstr "" msgstr ""
#: bookwyrm/templates/lists/list_items.html:19
#: bookwyrm/templates/lists/list_layout.html:11
msgid "Created and curated by"
msgstr ""
#: bookwyrm/templates/lists/list_items.html:19
#: bookwyrm/templates/lists/list_layout.html:11
msgid "Created by"
msgstr ""
#: bookwyrm/templates/lists/lists.html:14 #: bookwyrm/templates/lists/lists.html:14
msgid "Your lists" msgid "Your lists"
msgstr "" msgstr ""
@ -883,110 +910,110 @@ msgstr ""
msgid "Delete notifications" msgid "Delete notifications"
msgstr "" msgstr ""
#: bookwyrm/templates/notifications.html:49 #: bookwyrm/templates/notifications.html:51
#, python-format #, python-format
msgid "favorited your <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>" msgid "favorited your <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>"
msgstr "" msgstr ""
#: bookwyrm/templates/notifications.html:51 #: bookwyrm/templates/notifications.html:53
#, python-format #, python-format
msgid "favorited your <a href=\"%(related_path)s\">comment on <em>%(book_title)s</em></a>" msgid "favorited your <a href=\"%(related_path)s\">comment on <em>%(book_title)s</em></a>"
msgstr "" msgstr ""
#: bookwyrm/templates/notifications.html:53 #: bookwyrm/templates/notifications.html:55
#, python-format #, python-format
msgid "favorited your <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>" msgid "favorited your <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>"
msgstr "" msgstr ""
#: bookwyrm/templates/notifications.html:55 #: bookwyrm/templates/notifications.html:57
#, python-format #, python-format
msgid "favorited your <a href=\"%(related_path)s\">status</a>" msgid "favorited your <a href=\"%(related_path)s\">status</a>"
msgstr "" msgstr ""
#: bookwyrm/templates/notifications.html:60 #: bookwyrm/templates/notifications.html:62
#, python-format #, python-format
msgid "mentioned you in a <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>" msgid "mentioned you in a <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>"
msgstr "" msgstr ""
#: bookwyrm/templates/notifications.html:62 #: bookwyrm/templates/notifications.html:64
#, python-format #, python-format
msgid "mentioned you in a <a href=\"%(related_path)s\">comment on <em>%(book_title)s</em></a>" msgid "mentioned you in a <a href=\"%(related_path)s\">comment on <em>%(book_title)s</em></a>"
msgstr "" msgstr ""
#: bookwyrm/templates/notifications.html:64 #: bookwyrm/templates/notifications.html:66
#, python-format #, python-format
msgid "mentioned you in a <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>" msgid "mentioned you in a <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>"
msgstr "" msgstr ""
#: bookwyrm/templates/notifications.html:66 #: bookwyrm/templates/notifications.html:68
#, python-format #, python-format
msgid "mentioned you in a <a href=\"%(related_path)s\">status</a>" msgid "mentioned you in a <a href=\"%(related_path)s\">status</a>"
msgstr "" msgstr ""
#: bookwyrm/templates/notifications.html:71 #: bookwyrm/templates/notifications.html:73
#, python-format #, python-format
msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">review of <em>%(book_title)s</em></a>" msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">review of <em>%(book_title)s</em></a>"
msgstr "" msgstr ""
#: bookwyrm/templates/notifications.html:73 #: bookwyrm/templates/notifications.html:75
#, python-format #, python-format
msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">comment on <em>%(book_title)s</em></a>" msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">comment on <em>%(book_title)s</em></a>"
msgstr "" msgstr ""
#: bookwyrm/templates/notifications.html:75 #: bookwyrm/templates/notifications.html:77
#, python-format #, python-format
msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">quote from <em>%(book_title)s</em></a>" msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">quote from <em>%(book_title)s</em></a>"
msgstr "" msgstr ""
#: bookwyrm/templates/notifications.html:77 #: bookwyrm/templates/notifications.html:79
#, python-format #, python-format
msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">status</a>" msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">status</a>"
msgstr "" msgstr ""
#: bookwyrm/templates/notifications.html:81 #: bookwyrm/templates/notifications.html:83
msgid "followed you" msgid "followed you"
msgstr "" msgstr ""
#: bookwyrm/templates/notifications.html:84 #: bookwyrm/templates/notifications.html:86
msgid "sent you a follow request" msgid "sent you a follow request"
msgstr "" msgstr ""
#: bookwyrm/templates/notifications.html:90
#, python-format
msgid "boosted your <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>"
msgstr ""
#: bookwyrm/templates/notifications.html:92 #: bookwyrm/templates/notifications.html:92
#, python-format #, python-format
msgid "boosted your <a href=\"%(related_path)s\">comment on<em>%(book_title)s</em></a>" msgid "boosted your <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>"
msgstr "" msgstr ""
#: bookwyrm/templates/notifications.html:94 #: bookwyrm/templates/notifications.html:94
#, python-format #, python-format
msgid "boosted your <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>" msgid "boosted your <a href=\"%(related_path)s\">comment on<em>%(book_title)s</em></a>"
msgstr "" msgstr ""
#: bookwyrm/templates/notifications.html:96 #: bookwyrm/templates/notifications.html:96
#, python-format #, python-format
msgid "boosted your <a href=\"%(related_path)s\">status</a>" msgid "boosted your <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>"
msgstr "" msgstr ""
#: bookwyrm/templates/notifications.html:100 #: bookwyrm/templates/notifications.html:98
#, python-format #, python-format
msgid " added <em><a href=\"%(book_path)s\">%(book_title)s</a></em> to your list \"<a href=\"%(list_path)s\">%(list_name)s</a>\"" msgid "boosted your <a href=\"%(related_path)s\">status</a>"
msgstr "" msgstr ""
#: bookwyrm/templates/notifications.html:102 #: bookwyrm/templates/notifications.html:102
#, python-format #, python-format
msgid " added <em><a href=\"%(book_path)s\">%(book_title)s</a></em> to your list \"<a href=\"%(list_path)s\">%(list_name)s</a>\""
msgstr ""
#: bookwyrm/templates/notifications.html:104
#, python-format
msgid " suggested adding <em><a href=\"%(book_path)s\">%(book_title)s</a></em> to your list \"<a href=\"%(list_path)s/curate\">%(list_name)s</a>\"" msgid " suggested adding <em><a href=\"%(book_path)s\">%(book_title)s</a></em> to your list \"<a href=\"%(list_path)s/curate\">%(list_name)s</a>\""
msgstr "" msgstr ""
#: bookwyrm/templates/notifications.html:106 #: bookwyrm/templates/notifications.html:108
#, python-format #, python-format
msgid " your <a href=\"/import/%(related_id)s\">import</a> completed." msgid " your <a href=\"/import/%(related_id)s\">import</a> completed."
msgstr "" msgstr ""
#: bookwyrm/templates/notifications.html:138 #: bookwyrm/templates/notifications.html:142
msgid "You're all caught up!" msgid "You're all caught up!"
msgstr "" msgstr ""
@ -1070,24 +1097,6 @@ msgstr ""
msgid "Relationships" msgid "Relationships"
msgstr "" msgstr ""
#: bookwyrm/templates/search_results.html:4
msgid "Search Results"
msgstr ""
#: bookwyrm/templates/search_results.html:9
#, python-format
msgid "Search Results for \"%(query)s\""
msgstr ""
#: bookwyrm/templates/search_results.html:14
msgid "Matching Books"
msgstr ""
#: bookwyrm/templates/search_results.html:17
#, python-format
msgid "No books found for \"%(query)s\""
msgstr ""
#: bookwyrm/templates/search_results.html:33 #: bookwyrm/templates/search_results.html:33
msgid "Didn't find what you were looking for?" msgid "Didn't find what you were looking for?"
msgstr "" msgstr ""
@ -1113,7 +1122,7 @@ msgstr ""
msgid "No users found for \"%(query)s\"" msgid "No users found for \"%(query)s\""
msgstr "" msgstr ""
#: bookwyrm/templates/search_results.html:92 #: bookwyrm/templates/search_results.html:94
#, python-format #, python-format
msgid "No lists found for \"%(query)s\"" msgid "No lists found for \"%(query)s\""
msgstr "" msgstr ""
@ -1546,22 +1555,22 @@ msgid "Sign Up"
msgstr "" msgstr ""
#: bookwyrm/templates/snippets/rss_title.html:5 #: bookwyrm/templates/snippets/rss_title.html:5
#: bookwyrm/templates/snippets/status/status_header.html:9 #: bookwyrm/templates/snippets/status/status_header.html:11
msgid "rated" msgid "rated"
msgstr "" msgstr ""
#: bookwyrm/templates/snippets/rss_title.html:7 #: bookwyrm/templates/snippets/rss_title.html:7
#: bookwyrm/templates/snippets/status/status_header.html:11 #: bookwyrm/templates/snippets/status/status_header.html:13
msgid "reviewed" msgid "reviewed"
msgstr "" msgstr ""
#: bookwyrm/templates/snippets/rss_title.html:9 #: bookwyrm/templates/snippets/rss_title.html:9
#: bookwyrm/templates/snippets/status/status_header.html:13 #: bookwyrm/templates/snippets/status/status_header.html:15
msgid "commented on" msgid "commented on"
msgstr "" msgstr ""
#: bookwyrm/templates/snippets/rss_title.html:11 #: bookwyrm/templates/snippets/rss_title.html:11
#: bookwyrm/templates/snippets/status/status_header.html:15 #: bookwyrm/templates/snippets/status/status_header.html:17
msgid "quoted" msgid "quoted"
msgstr "" msgstr ""
@ -1642,7 +1651,7 @@ msgstr ""
msgid "Want to Read \"<em>%(book_title)s</em>\"" msgid "Want to Read \"<em>%(book_title)s</em>\""
msgstr "" msgstr ""
#: bookwyrm/templates/snippets/status/status.html:7 #: bookwyrm/templates/snippets/status/status.html:9
msgid "boosted" msgid "boosted"
msgstr "" msgstr ""
@ -1666,6 +1675,26 @@ msgstr ""
msgid "Open image in new window" msgid "Open image in new window"
msgstr "" msgstr ""
#: bookwyrm/templates/snippets/status/status_header.html:22
#, python-format
msgid "replied to <a href=\"%(user_path)s\">%(username)s's</a> <a href=\"%(status_path)s\">review</a>"
msgstr ""
#: bookwyrm/templates/snippets/status/status_header.html:24
#, python-format
msgid "replied to <a href=\"%(user_path)s\">%(username)s's</a> <a href=\"%(status_path)s\">comment</a>"
msgstr ""
#: bookwyrm/templates/snippets/status/status_header.html:26
#, python-format
msgid "replied to <a href=\"%(user_path)s\">%(username)s's</a> <a href=\"%(status_path)s\">quote</a>"
msgstr ""
#: bookwyrm/templates/snippets/status/status_header.html:28
#, python-format
msgid "replied to <a href=\"%(user_path)s\">%(username)s's</a> <a href=\"%(status_path)s\">status</a>"
msgstr ""
#: bookwyrm/templates/snippets/status/status_options.html:7 #: bookwyrm/templates/snippets/status/status_options.html:7
#: bookwyrm/templates/snippets/user_options.html:7 #: bookwyrm/templates/snippets/user_options.html:7
msgid "More options" msgid "More options"
@ -1711,7 +1740,7 @@ msgstr ""
msgid "User Profile" msgid "User Profile"
msgstr "" msgstr ""
#: bookwyrm/templates/user/followers.html:26 #: bookwyrm/templates/user/followers.html:29
#, python-format #, python-format
msgid "%(username)s has no followers" msgid "%(username)s has no followers"
msgstr "" msgstr ""
@ -1720,7 +1749,7 @@ msgstr ""
msgid "Following" msgid "Following"
msgstr "" msgstr ""
#: bookwyrm/templates/user/following.html:26 #: bookwyrm/templates/user/following.html:29
#, python-format #, python-format
msgid "%(username)s isn't following any users" msgid "%(username)s isn't following any users"
msgstr "" msgstr ""

Binary file not shown.

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-03-04 22:37+0000\n" "POT-Creation-Date: 2021-03-07 23:40+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -227,7 +227,7 @@ msgstr "Lugares"
#: bookwyrm/templates/book.html:229 bookwyrm/templates/layout.html:64 #: bookwyrm/templates/book.html:229 bookwyrm/templates/layout.html:64
#: bookwyrm/templates/lists/lists.html:4 bookwyrm/templates/lists/lists.html:9 #: bookwyrm/templates/lists/lists.html:4 bookwyrm/templates/lists/lists.html:9
#: bookwyrm/templates/search_results.html:90 #: bookwyrm/templates/search_results.html:92
#: bookwyrm/templates/user/user_layout.html:62 #: bookwyrm/templates/user/user_layout.html:62
msgid "Lists" msgid "Lists"
msgstr "Listas" msgstr "Listas"
@ -476,7 +476,6 @@ msgstr "¡No hay ningún libro aqui ahorita! Busca a un libro para empezar"
#: bookwyrm/templates/feed/feed_layout.html:23 #: bookwyrm/templates/feed/feed_layout.html:23
#: bookwyrm/templates/user/shelf.html:24 #: bookwyrm/templates/user/shelf.html:24
#| msgid "Read"
msgid "To Read" msgid "To Read"
msgstr "Para leer" msgstr "Para leer"
@ -589,35 +588,40 @@ msgstr "(¡Refresca para actualizar!)"
msgid "Failed to load" msgid "Failed to load"
msgstr "Se falló a cargar" msgstr "Se falló a cargar"
#: bookwyrm/templates/import_status.html:59 #: bookwyrm/templates/import_status.html:44
#, python-format
msgid "Jump to the bottom of the list to select the %(failed_count)s items which failed to import."
msgstr ""
#: bookwyrm/templates/import_status.html:79
msgid "Select all" msgid "Select all"
msgstr "Seleccionar todo" msgstr "Seleccionar todo"
#: bookwyrm/templates/import_status.html:62 #: bookwyrm/templates/import_status.html:82
msgid "Retry items" msgid "Retry items"
msgstr "Reintentar ítems" msgstr "Reintentar ítems"
#: bookwyrm/templates/import_status.html:84 #: bookwyrm/templates/import_status.html:108
msgid "Successfully imported" msgid "Successfully imported"
msgstr "Importado exitosamente" msgstr "Importado exitosamente"
#: bookwyrm/templates/import_status.html:88 #: bookwyrm/templates/import_status.html:112
#: bookwyrm/templates/lists/curate.html:14 #: bookwyrm/templates/lists/curate.html:14
msgid "Book" msgid "Book"
msgstr "Libro" msgstr "Libro"
#: bookwyrm/templates/import_status.html:91 #: bookwyrm/templates/import_status.html:115
#: bookwyrm/templates/snippets/create_status_form.html:10 #: bookwyrm/templates/snippets/create_status_form.html:10
#: bookwyrm/templates/snippets/shelf.html:10 #: bookwyrm/templates/snippets/shelf.html:10
msgid "Title" msgid "Title"
msgstr "Título" msgstr "Título"
#: bookwyrm/templates/import_status.html:94 #: bookwyrm/templates/import_status.html:118
#: bookwyrm/templates/snippets/shelf.html:11 #: bookwyrm/templates/snippets/shelf.html:11
msgid "Author" msgid "Author"
msgstr "Autor/Autora" msgstr "Autor/Autora"
#: bookwyrm/templates/import_status.html:117 #: bookwyrm/templates/import_status.html:141
msgid "Imported" msgid "Imported"
msgstr "Importado" msgstr "Importado"
@ -634,6 +638,28 @@ msgstr "Permiso denegado"
msgid "Sorry! This invite code is no longer valid." msgid "Sorry! This invite code is no longer valid."
msgstr "¡Disculpa! Este código de invitación no queda válido." msgstr "¡Disculpa! Este código de invitación no queda válido."
#: bookwyrm/templates/isbn_search_results.html:4
#: bookwyrm/templates/search_results.html:4
msgid "Search Results"
msgstr "Resultados de búsqueda"
#: bookwyrm/templates/isbn_search_results.html:9
#: bookwyrm/templates/search_results.html:9
#, python-format
msgid "Search Results for \"%(query)s\""
msgstr "Resultados de búsqueda por \"%(query)s\""
#: bookwyrm/templates/isbn_search_results.html:14
#: bookwyrm/templates/search_results.html:14
msgid "Matching Books"
msgstr "Libros correspondientes"
#: bookwyrm/templates/isbn_search_results.html:17
#: bookwyrm/templates/search_results.html:17
#, python-format
msgid "No books found for \"%(query)s\""
msgstr "No se encontró ningún libro correspondiente a \"%(query)s\""
#: bookwyrm/templates/layout.html:33 #: bookwyrm/templates/layout.html:33
msgid "Search for a book or user" msgid "Search for a book or user"
msgstr "Buscar un libro o un usuario" msgstr "Buscar un libro o un usuario"
@ -717,7 +743,7 @@ msgstr "Contactarse con administradores del sitio"
#: bookwyrm/templates/layout.html:202 #: bookwyrm/templates/layout.html:202
#, python-format #, python-format
msgid "Support %(site.name)s on <a href=\"%(site.support_link)s\" target=\"_blank\">%(site.support_title)s</a>" msgid "Support %(site_name)s on <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>"
msgstr "" msgstr ""
#: bookwyrm/templates/layout.html:206 #: bookwyrm/templates/layout.html:206
@ -729,6 +755,18 @@ msgstr "BookWyrm es software de código abierto. Puedes contribuir o reportar pr
msgid "Create List" msgid "Create List"
msgstr "Crear lista" msgstr "Crear lista"
#: bookwyrm/templates/lists/created_text.html:5
#, fuzzy, python-format
#| msgid "Added by <a href=\"%(user_path)s\">%(username)s</a>"
msgid "Created and curated by <a href=\"%(path)s\">%(username)s</a>"
msgstr "Agregado por <a href=\"%(user_path)s\">%(username)s</a>"
#: bookwyrm/templates/lists/created_text.html:7
#, fuzzy, python-format
#| msgid "Added by <a href=\"%(user_path)s\">%(username)s</a>"
msgid "Created by <a href=\"%(path)s\">%(username)s</a>"
msgstr "Agregado por <a href=\"%(user_path)s\">%(username)s</a>"
#: bookwyrm/templates/lists/curate.html:6 #: bookwyrm/templates/lists/curate.html:6
msgid "Pending Books" msgid "Pending Books"
msgstr "Libros pendientes" msgstr "Libros pendientes"
@ -754,7 +792,7 @@ msgid "Discard"
msgstr "Desechar" msgstr "Desechar"
#: bookwyrm/templates/lists/edit_form.html:5 #: bookwyrm/templates/lists/edit_form.html:5
#: bookwyrm/templates/lists/list_layout.html:17 #: bookwyrm/templates/lists/list_layout.html:18
msgid "Edit List" msgid "Edit List"
msgstr "Editar lista" msgstr "Editar lista"
@ -832,16 +870,6 @@ msgstr "No se encontró ningún libro"
msgid "Suggest" msgid "Suggest"
msgstr "Sugerir" msgstr "Sugerir"
#: bookwyrm/templates/lists/list_items.html:19
#: bookwyrm/templates/lists/list_layout.html:11
msgid "Created and curated by"
msgstr "Creado y comisariado por"
#: bookwyrm/templates/lists/list_items.html:19
#: bookwyrm/templates/lists/list_layout.html:11
msgid "Created by"
msgstr "Creado por"
#: bookwyrm/templates/lists/lists.html:14 #: bookwyrm/templates/lists/lists.html:14
msgid "Your lists" msgid "Your lists"
msgstr "Tus listas" msgstr "Tus listas"
@ -884,110 +912,110 @@ msgstr "¡Parece que la página solicitada no existe!"
msgid "Delete notifications" msgid "Delete notifications"
msgstr "Borrar notificaciones" msgstr "Borrar notificaciones"
#: bookwyrm/templates/notifications.html:49 #: bookwyrm/templates/notifications.html:51
#, python-format #, python-format
msgid "favorited your <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>" msgid "favorited your <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>"
msgstr "le gustó tu <a href=\"%(related_path)s\">reseña de <em>%(book_title)s</em></a>" msgstr "le gustó tu <a href=\"%(related_path)s\">reseña de <em>%(book_title)s</em></a>"
#: bookwyrm/templates/notifications.html:51 #: bookwyrm/templates/notifications.html:53
#, python-format #, python-format
msgid "favorited your <a href=\"%(related_path)s\">comment on <em>%(book_title)s</em></a>" msgid "favorited your <a href=\"%(related_path)s\">comment on <em>%(book_title)s</em></a>"
msgstr "le gustó tu <a href=\"%(related_path)s\">comentario en <em>%(book_title)s</em></a>" msgstr "le gustó tu <a href=\"%(related_path)s\">comentario en <em>%(book_title)s</em></a>"
#: bookwyrm/templates/notifications.html:53 #: bookwyrm/templates/notifications.html:55
#, python-format #, python-format
msgid "favorited your <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>" msgid "favorited your <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>"
msgstr "le gustó tu <a href=\"%(related_path)s\">cita de <em>%(book_title)s</em></a>" msgstr "le gustó tu <a href=\"%(related_path)s\">cita de <em>%(book_title)s</em></a>"
#: bookwyrm/templates/notifications.html:55 #: bookwyrm/templates/notifications.html:57
#, python-format #, python-format
msgid "favorited your <a href=\"%(related_path)s\">status</a>" msgid "favorited your <a href=\"%(related_path)s\">status</a>"
msgstr "le gustó tu <a href=\"%(related_path)s\">status</a>" msgstr "le gustó tu <a href=\"%(related_path)s\">status</a>"
#: bookwyrm/templates/notifications.html:60 #: bookwyrm/templates/notifications.html:62
#, python-format #, python-format
msgid "mentioned you in a <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>" msgid "mentioned you in a <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>"
msgstr "te mencionó en una <a href=\"%(related_path)s\">reseña de <em>%(book_title)s</em></a>" msgstr "te mencionó en una <a href=\"%(related_path)s\">reseña de <em>%(book_title)s</em></a>"
#: bookwyrm/templates/notifications.html:62 #: bookwyrm/templates/notifications.html:64
#, python-format #, python-format
msgid "mentioned you in a <a href=\"%(related_path)s\">comment on <em>%(book_title)s</em></a>" msgid "mentioned you in a <a href=\"%(related_path)s\">comment on <em>%(book_title)s</em></a>"
msgstr "te mencionó en un <a href=\"%(related_path)s\">comentario de <em>%(book_title)s</em></a>" msgstr "te mencionó en un <a href=\"%(related_path)s\">comentario de <em>%(book_title)s</em></a>"
#: bookwyrm/templates/notifications.html:64 #: bookwyrm/templates/notifications.html:66
#, python-format #, python-format
msgid "mentioned you in a <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>" msgid "mentioned you in a <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>"
msgstr "te mencionó en una <a href=\"%(related_path)s\">cita de <em>%(book_title)s</em></a>" msgstr "te mencionó en una <a href=\"%(related_path)s\">cita de <em>%(book_title)s</em></a>"
#: bookwyrm/templates/notifications.html:66 #: bookwyrm/templates/notifications.html:68
#, python-format #, python-format
msgid "mentioned you in a <a href=\"%(related_path)s\">status</a>" msgid "mentioned you in a <a href=\"%(related_path)s\">status</a>"
msgstr "te mencionó en un <a href=\"%(related_path)s\">status</a>" msgstr "te mencionó en un <a href=\"%(related_path)s\">status</a>"
#: bookwyrm/templates/notifications.html:71 #: bookwyrm/templates/notifications.html:73
#, python-format #, python-format
msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">review of <em>%(book_title)s</em></a>" msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">review of <em>%(book_title)s</em></a>"
msgstr "<a href=\"%(related_path)s\">respondió a</a> tu <a href=\"%(parent_path)s\">reseña de <em>%(book_title)s</em></a>" msgstr "<a href=\"%(related_path)s\">respondió a</a> tu <a href=\"%(parent_path)s\">reseña de <em>%(book_title)s</em></a>"
#: bookwyrm/templates/notifications.html:73 #: bookwyrm/templates/notifications.html:75
#, python-format #, python-format
msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">comment on <em>%(book_title)s</em></a>" msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">comment on <em>%(book_title)s</em></a>"
msgstr "<a href=\"%(related_path)s\">respondió a</a> tu <a href=\"%(parent_path)s\">comentario en <em>%(book_title)s</em></a>" msgstr "<a href=\"%(related_path)s\">respondió a</a> tu <a href=\"%(parent_path)s\">comentario en <em>%(book_title)s</em></a>"
#: bookwyrm/templates/notifications.html:75 #: bookwyrm/templates/notifications.html:77
#, python-format #, python-format
msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">quote from <em>%(book_title)s</em></a>" msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">quote from <em>%(book_title)s</em></a>"
msgstr "<a href=\"%(related_path)s\">respondió a</a> tu <a href=\"%(parent_path)s\">cita de <em>%(book_title)s</em></a>" msgstr "<a href=\"%(related_path)s\">respondió a</a> tu <a href=\"%(parent_path)s\">cita de <em>%(book_title)s</em></a>"
#: bookwyrm/templates/notifications.html:77 #: bookwyrm/templates/notifications.html:79
#, python-format #, python-format
msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">status</a>" msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">status</a>"
msgstr "<a href=\"%(related_path)s\">respondió a</a> tu <a href=\"%(parent_path)s\">status</a>" msgstr "<a href=\"%(related_path)s\">respondió a</a> tu <a href=\"%(parent_path)s\">status</a>"
#: bookwyrm/templates/notifications.html:81 #: bookwyrm/templates/notifications.html:83
msgid "followed you" msgid "followed you"
msgstr "te siguió" msgstr "te siguió"
#: bookwyrm/templates/notifications.html:84 #: bookwyrm/templates/notifications.html:86
msgid "sent you a follow request" msgid "sent you a follow request"
msgstr "te quiere seguir" msgstr "te quiere seguir"
#: bookwyrm/templates/notifications.html:90 #: bookwyrm/templates/notifications.html:92
#, python-format #, python-format
msgid "boosted your <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>" msgid "boosted your <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>"
msgstr "respaldó tu <a href=\"%(related_path)s\">reseña de <em>%(book_title)s</em></a>" msgstr "respaldó tu <a href=\"%(related_path)s\">reseña de <em>%(book_title)s</em></a>"
#: bookwyrm/templates/notifications.html:92 #: bookwyrm/templates/notifications.html:94
#, python-format #, python-format
msgid "boosted your <a href=\"%(related_path)s\">comment on<em>%(book_title)s</em></a>" msgid "boosted your <a href=\"%(related_path)s\">comment on<em>%(book_title)s</em></a>"
msgstr "respaldó tu <a href=\"%(related_path)s\">comentario en<em>%(book_title)s</em></a>" msgstr "respaldó tu <a href=\"%(related_path)s\">comentario en<em>%(book_title)s</em></a>"
#: bookwyrm/templates/notifications.html:94 #: bookwyrm/templates/notifications.html:96
#, python-format #, python-format
msgid "boosted your <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>" msgid "boosted your <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>"
msgstr "respaldó tu<a href=\"%(related_path)s\">cita de <em>%(book_title)s</em></a>" msgstr "respaldó tu<a href=\"%(related_path)s\">cita de <em>%(book_title)s</em></a>"
#: bookwyrm/templates/notifications.html:96 #: bookwyrm/templates/notifications.html:98
#, python-format #, python-format
msgid "boosted your <a href=\"%(related_path)s\">status</a>" msgid "boosted your <a href=\"%(related_path)s\">status</a>"
msgstr "respaldó tu <a href=\"%(related_path)s\">status</a>" msgstr "respaldó tu <a href=\"%(related_path)s\">status</a>"
#: bookwyrm/templates/notifications.html:100 #: bookwyrm/templates/notifications.html:102
#, python-format #, python-format
msgid " added <em><a href=\"%(book_path)s\">%(book_title)s</a></em> to your list \"<a href=\"%(list_path)s\">%(list_name)s</a>\"" msgid " added <em><a href=\"%(book_path)s\">%(book_title)s</a></em> to your list \"<a href=\"%(list_path)s\">%(list_name)s</a>\""
msgstr " agregó <em><a href=\"%(book_path)s\">%(book_title)s</a></em> a tu lista \"<a href=\"%(list_path)s\">%(list_name)s</a>\"" msgstr " agregó <em><a href=\"%(book_path)s\">%(book_title)s</a></em> a tu lista \"<a href=\"%(list_path)s\">%(list_name)s</a>\""
#: bookwyrm/templates/notifications.html:102 #: bookwyrm/templates/notifications.html:104
#, python-format #, python-format
msgid " suggested adding <em><a href=\"%(book_path)s\">%(book_title)s</a></em> to your list \"<a href=\"%(list_path)s/curate\">%(list_name)s</a>\"" msgid " suggested adding <em><a href=\"%(book_path)s\">%(book_title)s</a></em> to your list \"<a href=\"%(list_path)s/curate\">%(list_name)s</a>\""
msgstr " sugirió agregar <em><a href=\"%(book_path)s\">%(book_title)s</a></em> a tu lista \"<a href=\"%(list_path)s/curate\">%(list_name)s</a>\"" msgstr " sugirió agregar <em><a href=\"%(book_path)s\">%(book_title)s</a></em> a tu lista \"<a href=\"%(list_path)s/curate\">%(list_name)s</a>\""
#: bookwyrm/templates/notifications.html:106 #: bookwyrm/templates/notifications.html:108
#, python-format #, python-format
msgid " your <a href=\"/import/%(related_id)s\">import</a> completed." msgid " your <a href=\"/import/%(related_id)s\">import</a> completed."
msgstr " tu <a href=\"/import/%(related_id)s\">importación</a> ha terminado." msgstr " tu <a href=\"/import/%(related_id)s\">importación</a> ha terminado."
#: bookwyrm/templates/notifications.html:138 #: bookwyrm/templates/notifications.html:142
msgid "You're all caught up!" msgid "You're all caught up!"
msgstr "¡Estás al día!" msgstr "¡Estás al día!"
@ -1071,24 +1099,6 @@ msgstr "Cuenta"
msgid "Relationships" msgid "Relationships"
msgstr "Relaciones" msgstr "Relaciones"
#: bookwyrm/templates/search_results.html:4
msgid "Search Results"
msgstr "Resultados de búsqueda"
#: bookwyrm/templates/search_results.html:9
#, python-format
msgid "Search Results for \"%(query)s\""
msgstr "Resultados de búsqueda por \"%(query)s\""
#: bookwyrm/templates/search_results.html:14
msgid "Matching Books"
msgstr "Libros correspondientes"
#: bookwyrm/templates/search_results.html:17
#, python-format
msgid "No books found for \"%(query)s\""
msgstr "No se encontró ningún libro correspondiente a \"%(query)s\""
#: bookwyrm/templates/search_results.html:33 #: bookwyrm/templates/search_results.html:33
msgid "Didn't find what you were looking for?" msgid "Didn't find what you were looking for?"
msgstr "¿No encontraste lo que buscabas?" msgstr "¿No encontraste lo que buscabas?"
@ -1114,7 +1124,7 @@ msgstr "Usuarios correspondientes"
msgid "No users found for \"%(query)s\"" msgid "No users found for \"%(query)s\""
msgstr "No se encontró ningún usuario correspondiente a \"%(query)s\"" msgstr "No se encontró ningún usuario correspondiente a \"%(query)s\""
#: bookwyrm/templates/search_results.html:92 #: bookwyrm/templates/search_results.html:94
#, python-format #, python-format
msgid "No lists found for \"%(query)s\"" msgid "No lists found for \"%(query)s\""
msgstr "No se encontró ningúna lista correspondiente a \"%(query)s\"" msgstr "No se encontró ningúna lista correspondiente a \"%(query)s\""
@ -1547,22 +1557,22 @@ msgid "Sign Up"
msgstr "Inscribirse" msgstr "Inscribirse"
#: bookwyrm/templates/snippets/rss_title.html:5 #: bookwyrm/templates/snippets/rss_title.html:5
#: bookwyrm/templates/snippets/status/status_header.html:9 #: bookwyrm/templates/snippets/status/status_header.html:11
msgid "rated" msgid "rated"
msgstr "calificó" msgstr "calificó"
#: bookwyrm/templates/snippets/rss_title.html:7 #: bookwyrm/templates/snippets/rss_title.html:7
#: bookwyrm/templates/snippets/status/status_header.html:11 #: bookwyrm/templates/snippets/status/status_header.html:13
msgid "reviewed" msgid "reviewed"
msgstr "reseñó" msgstr "reseñó"
#: bookwyrm/templates/snippets/rss_title.html:9 #: bookwyrm/templates/snippets/rss_title.html:9
#: bookwyrm/templates/snippets/status/status_header.html:13 #: bookwyrm/templates/snippets/status/status_header.html:15
msgid "commented on" msgid "commented on"
msgstr "comentó en" msgstr "comentó en"
#: bookwyrm/templates/snippets/rss_title.html:11 #: bookwyrm/templates/snippets/rss_title.html:11
#: bookwyrm/templates/snippets/status/status_header.html:15 #: bookwyrm/templates/snippets/status/status_header.html:17
msgid "quoted" msgid "quoted"
msgstr "citó" msgstr "citó"
@ -1643,7 +1653,7 @@ msgstr "Empezar \"<em>%(book_title)s</em>\""
msgid "Want to Read \"<em>%(book_title)s</em>\"" msgid "Want to Read \"<em>%(book_title)s</em>\""
msgstr "Quiero leer \"<em>%(book_title)s</em>\"" msgstr "Quiero leer \"<em>%(book_title)s</em>\""
#: bookwyrm/templates/snippets/status/status.html:7 #: bookwyrm/templates/snippets/status/status.html:9
msgid "boosted" msgid "boosted"
msgstr "respaldó" msgstr "respaldó"
@ -1667,6 +1677,30 @@ msgstr "Mostrar menos"
msgid "Open image in new window" msgid "Open image in new window"
msgstr "Abrir imagen en una nueva ventana" msgstr "Abrir imagen en una nueva ventana"
#: bookwyrm/templates/snippets/status/status_header.html:22
#, fuzzy, python-format
#| msgid "Added by <a href=\"%(user_path)s\">%(username)s</a>"
msgid "replied to <a href=\"%(user_path)s\">%(username)s's</a> <a href=\"%(status_path)s\">review</a>"
msgstr "Agregado por <a href=\"%(user_path)s\">%(username)s</a>"
#: bookwyrm/templates/snippets/status/status_header.html:24
#, fuzzy, python-format
#| msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">status</a>"
msgid "replied to <a href=\"%(user_path)s\">%(username)s's</a> <a href=\"%(status_path)s\">comment</a>"
msgstr "<a href=\"%(related_path)s\">respondió a</a> tu <a href=\"%(parent_path)s\">status</a>"
#: bookwyrm/templates/snippets/status/status_header.html:26
#, fuzzy, python-format
#| msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">status</a>"
msgid "replied to <a href=\"%(user_path)s\">%(username)s's</a> <a href=\"%(status_path)s\">quote</a>"
msgstr "<a href=\"%(related_path)s\">respondió a</a> tu <a href=\"%(parent_path)s\">status</a>"
#: bookwyrm/templates/snippets/status/status_header.html:28
#, fuzzy, python-format
#| msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">status</a>"
msgid "replied to <a href=\"%(user_path)s\">%(username)s's</a> <a href=\"%(status_path)s\">status</a>"
msgstr "<a href=\"%(related_path)s\">respondió a</a> tu <a href=\"%(parent_path)s\">status</a>"
#: bookwyrm/templates/snippets/status/status_options.html:7 #: bookwyrm/templates/snippets/status/status_options.html:7
#: bookwyrm/templates/snippets/user_options.html:7 #: bookwyrm/templates/snippets/user_options.html:7
msgid "More options" msgid "More options"
@ -1712,7 +1746,7 @@ msgstr "Actualizar estante"
msgid "User Profile" msgid "User Profile"
msgstr "Perfil de usuario" msgstr "Perfil de usuario"
#: bookwyrm/templates/user/followers.html:26 #: bookwyrm/templates/user/followers.html:29
#, python-format #, python-format
msgid "%(username)s has no followers" msgid "%(username)s has no followers"
msgstr "%(username)s no tiene seguidores" msgstr "%(username)s no tiene seguidores"
@ -1721,7 +1755,7 @@ msgstr "%(username)s no tiene seguidores"
msgid "Following" msgid "Following"
msgstr "Siguiendo" msgstr "Siguiendo"
#: bookwyrm/templates/user/following.html:26 #: bookwyrm/templates/user/following.html:29
#, python-format #, python-format
msgid "%(username)s isn't following any users" msgid "%(username)s isn't following any users"
msgstr "%(username)s no sigue a nadie" msgstr "%(username)s no sigue a nadie"
@ -1821,6 +1855,12 @@ msgstr[1] "%(counter)s seguidores"
msgid "%(counter)s following" msgid "%(counter)s following"
msgstr "%(counter)s siguiendo" msgstr "%(counter)s siguiendo"
#~ msgid "Created and curated by"
#~ msgstr "Creado y comisariado por"
#~ msgid "Created by"
#~ msgstr "Creado por"
#~ msgid "Added by" #~ msgid "Added by"
#~ msgstr "Agregado por" #~ msgstr "Agregado por"

Binary file not shown.

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 0.1.1\n" "Project-Id-Version: 0.1.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-03-05 14:10+0000\n" "POT-Creation-Date: 2021-03-07 23:40+0000\n"
"PO-Revision-Date: 2021-03-02 12:37+0100\n" "PO-Revision-Date: 2021-03-02 12:37+0100\n"
"Last-Translator: Fabien Basmaison <contact@arkhi.org>\n" "Last-Translator: Fabien Basmaison <contact@arkhi.org>\n"
"Language-Team: Mouse Reeve <LL@li.org>\n" "Language-Team: Mouse Reeve <LL@li.org>\n"
@ -240,7 +240,7 @@ msgstr "Lieux"
#: bookwyrm/templates/book.html:229 bookwyrm/templates/layout.html:64 #: bookwyrm/templates/book.html:229 bookwyrm/templates/layout.html:64
#: bookwyrm/templates/lists/lists.html:4 bookwyrm/templates/lists/lists.html:9 #: bookwyrm/templates/lists/lists.html:4 bookwyrm/templates/lists/lists.html:9
#: bookwyrm/templates/search_results.html:90 #: bookwyrm/templates/search_results.html:92
#: bookwyrm/templates/user/user_layout.html:62 #: bookwyrm/templates/user/user_layout.html:62
msgid "Lists" msgid "Lists"
msgstr "Listes" msgstr "Listes"
@ -615,40 +615,40 @@ msgstr "(Rechargez la page pour mettre à jour!"
msgid "Failed to load" msgid "Failed to load"
msgstr "Items non importés" msgstr "Items non importés"
#: bookwyrm/templates/import_status.html:42 #: bookwyrm/templates/import_status.html:44
#, python-format #, python-format
msgid "Jump to the bottom of the list to select the %(failed_count)s items which failed to import." msgid "Jump to the bottom of the list to select the %(failed_count)s items which failed to import."
msgstr "Sauter en bas de liste pour sélectionner les %(failed_count)s items nayant pu être importés." msgstr "Sauter en bas de liste pour sélectionner les %(failed_count)s items nayant pu être importés."
#: bookwyrm/templates/import_status.html:74 #: bookwyrm/templates/import_status.html:79
msgid "Select all" msgid "Select all"
msgstr "Tout sélectionner" msgstr "Tout sélectionner"
#: bookwyrm/templates/import_status.html:79 #: bookwyrm/templates/import_status.html:82
msgid "Retry items" msgid "Retry items"
msgstr "Essayer dimporter les items sélectionnés de nouveau" msgstr "Essayer dimporter les items sélectionnés de nouveau"
#: bookwyrm/templates/import_status.html:101 #: bookwyrm/templates/import_status.html:108
msgid "Successfully imported" msgid "Successfully imported"
msgstr "Importation réussie" msgstr "Importation réussie"
#: bookwyrm/templates/import_status.html:105 #: bookwyrm/templates/import_status.html:112
#: bookwyrm/templates/lists/curate.html:14 #: bookwyrm/templates/lists/curate.html:14
msgid "Book" msgid "Book"
msgstr "Livre" msgstr "Livre"
#: bookwyrm/templates/import_status.html:108 #: bookwyrm/templates/import_status.html:115
#: bookwyrm/templates/snippets/create_status_form.html:10 #: bookwyrm/templates/snippets/create_status_form.html:10
#: bookwyrm/templates/snippets/shelf.html:10 #: bookwyrm/templates/snippets/shelf.html:10
msgid "Title" msgid "Title"
msgstr "Titre" msgstr "Titre"
#: bookwyrm/templates/import_status.html:111 #: bookwyrm/templates/import_status.html:118
#: bookwyrm/templates/snippets/shelf.html:11 #: bookwyrm/templates/snippets/shelf.html:11
msgid "Author" msgid "Author"
msgstr "Auteur ou autrice" msgstr "Auteur ou autrice"
#: bookwyrm/templates/import_status.html:134 #: bookwyrm/templates/import_status.html:141
msgid "Imported" msgid "Imported"
msgstr "Importé" msgstr "Importé"
@ -665,6 +665,28 @@ msgstr "Autorisation refusée"
msgid "Sorry! This invite code is no longer valid." msgid "Sorry! This invite code is no longer valid."
msgstr "Cette invitation nest plus valide; désolé!" msgstr "Cette invitation nest plus valide; désolé!"
#: bookwyrm/templates/isbn_search_results.html:4
#: bookwyrm/templates/search_results.html:4
msgid "Search Results"
msgstr "Résultats de recherche"
#: bookwyrm/templates/isbn_search_results.html:9
#: bookwyrm/templates/search_results.html:9
#, python-format
msgid "Search Results for \"%(query)s\""
msgstr "Résultats de recherche pour « %(query)s»"
#: bookwyrm/templates/isbn_search_results.html:14
#: bookwyrm/templates/search_results.html:14
msgid "Matching Books"
msgstr "Livres correspondants"
#: bookwyrm/templates/isbn_search_results.html:17
#: bookwyrm/templates/search_results.html:17
#, python-format
msgid "No books found for \"%(query)s\""
msgstr "Aucun livre trouvé pour « %(query)s»"
#: bookwyrm/templates/layout.html:33 #: bookwyrm/templates/layout.html:33
msgid "Search for a book or user" msgid "Search for a book or user"
msgstr "Chercher un livre ou un compte" msgstr "Chercher un livre ou un compte"
@ -752,7 +774,7 @@ msgstr "Contacter ladministrateur du site"
#: bookwyrm/templates/layout.html:202 #: bookwyrm/templates/layout.html:202
#, python-format #, python-format
msgid "Support %(site.name)s on <a href=\"%(site.support_link)s\" target=\"_blank\">%(site.support_title)s</a>" msgid "Support %(site_name)s on <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>"
msgstr "" msgstr ""
#: bookwyrm/templates/layout.html:206 #: bookwyrm/templates/layout.html:206
@ -764,6 +786,18 @@ msgstr "Bookwyrm est un logiciel libre. Vous pouvez contribuer ou faire des rapp
msgid "Create List" msgid "Create List"
msgstr "Créer une liste" msgstr "Créer une liste"
#: bookwyrm/templates/lists/created_text.html:5
#, fuzzy, python-format
#| msgid "favorited your <a href=\"%(related_path)s\">%(preview_name)s</a>"
msgid "Created and curated by <a href=\"%(path)s\">%(username)s</a>"
msgstr "Messages directs avec <a href=\"%(path)s\">%(username)s</a>"
#: bookwyrm/templates/lists/created_text.html:7
#, fuzzy, python-format
#| msgid "favorited your <a href=\"%(related_path)s\">%(preview_name)s</a>"
msgid "Created by <a href=\"%(path)s\">%(username)s</a>"
msgstr "Messages directs avec <a href=\"%(path)s\">%(username)s</a>"
#: bookwyrm/templates/lists/curate.html:6 #: bookwyrm/templates/lists/curate.html:6
msgid "Pending Books" msgid "Pending Books"
msgstr "Livres en attente de modération" msgstr "Livres en attente de modération"
@ -789,7 +823,7 @@ msgid "Discard"
msgstr "Rejeter" msgstr "Rejeter"
#: bookwyrm/templates/lists/edit_form.html:5 #: bookwyrm/templates/lists/edit_form.html:5
#: bookwyrm/templates/lists/list_layout.html:17 #: bookwyrm/templates/lists/list_layout.html:18
msgid "Edit List" msgid "Edit List"
msgstr "Modifier la liste" msgstr "Modifier la liste"
@ -868,16 +902,6 @@ msgstr "Aucun livre trouvé"
msgid "Suggest" msgid "Suggest"
msgstr "Suggérer" msgstr "Suggérer"
#: bookwyrm/templates/lists/list_items.html:19
#: bookwyrm/templates/lists/list_layout.html:11
msgid "Created and curated by"
msgstr "Créée et modérée par"
#: bookwyrm/templates/lists/list_items.html:19
#: bookwyrm/templates/lists/list_layout.html:11
msgid "Created by"
msgstr "Créée par"
#: bookwyrm/templates/lists/lists.html:14 #: bookwyrm/templates/lists/lists.html:14
msgid "Your lists" msgid "Your lists"
msgstr "Vos listes" msgstr "Vos listes"
@ -921,110 +945,110 @@ msgstr "Il semblerait que la page que vous avez demandée nexiste pas!"
msgid "Delete notifications" msgid "Delete notifications"
msgstr "Supprimer les notifications" msgstr "Supprimer les notifications"
#: bookwyrm/templates/notifications.html:49 #: bookwyrm/templates/notifications.html:51
#, python-format #, python-format
msgid "favorited your <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>" msgid "favorited your <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>"
msgstr "a ajouté votre <a href=\"%(related_path)s\">critique de <em>%(book_title)s</em></a> à ses favoris" msgstr "a ajouté votre <a href=\"%(related_path)s\">critique de <em>%(book_title)s</em></a> à ses favoris"
#: bookwyrm/templates/notifications.html:51 #: bookwyrm/templates/notifications.html:53
#, python-format #, python-format
msgid "favorited your <a href=\"%(related_path)s\">comment on <em>%(book_title)s</em></a>" msgid "favorited your <a href=\"%(related_path)s\">comment on <em>%(book_title)s</em></a>"
msgstr "a ajouté votre <a href=\"%(related_path)s\">commentaire sur <em>%(book_title)s</em></a> à ses favoris" msgstr "a ajouté votre <a href=\"%(related_path)s\">commentaire sur <em>%(book_title)s</em></a> à ses favoris"
#: bookwyrm/templates/notifications.html:53 #: bookwyrm/templates/notifications.html:55
#, python-format #, python-format
msgid "favorited your <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>" msgid "favorited your <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>"
msgstr "a ajouté votre <a href=\"%(related_path)s\">citation de <em>%(book_title)s</em></a> à ses favoris" msgstr "a ajouté votre <a href=\"%(related_path)s\">citation de <em>%(book_title)s</em></a> à ses favoris"
#: bookwyrm/templates/notifications.html:55 #: bookwyrm/templates/notifications.html:57
#, python-format #, python-format
msgid "favorited your <a href=\"%(related_path)s\">status</a>" msgid "favorited your <a href=\"%(related_path)s\">status</a>"
msgstr "a ajouté votre <a href=\"%(related_path)s\">statut</a> à ses favoris" msgstr "a ajouté votre <a href=\"%(related_path)s\">statut</a> à ses favoris"
#: bookwyrm/templates/notifications.html:60 #: bookwyrm/templates/notifications.html:62
#, python-format #, python-format
msgid "mentioned you in a <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>" msgid "mentioned you in a <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>"
msgstr "vous a mentionné dans sa <a href=\"%(related_path)s\">critique de <em>%(book_title)s</em></a>" msgstr "vous a mentionné dans sa <a href=\"%(related_path)s\">critique de <em>%(book_title)s</em></a>"
#: bookwyrm/templates/notifications.html:62 #: bookwyrm/templates/notifications.html:64
#, python-format #, python-format
msgid "mentioned you in a <a href=\"%(related_path)s\">comment on <em>%(book_title)s</em></a>" msgid "mentioned you in a <a href=\"%(related_path)s\">comment on <em>%(book_title)s</em></a>"
msgstr "vous a mentionné dans son <a href=\"%(related_path)s\">commentaire sur <em>%(book_title)s</em></a>" msgstr "vous a mentionné dans son <a href=\"%(related_path)s\">commentaire sur <em>%(book_title)s</em></a>"
#: bookwyrm/templates/notifications.html:64 #: bookwyrm/templates/notifications.html:66
#, python-format #, python-format
msgid "mentioned you in a <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>" msgid "mentioned you in a <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>"
msgstr "vous a mentionné dans sa <a href=\"%(related_path)s\">citation de <em>%(book_title)s</em></a>" msgstr "vous a mentionné dans sa <a href=\"%(related_path)s\">citation de <em>%(book_title)s</em></a>"
#: bookwyrm/templates/notifications.html:66 #: bookwyrm/templates/notifications.html:68
#, python-format #, python-format
msgid "mentioned you in a <a href=\"%(related_path)s\">status</a>" msgid "mentioned you in a <a href=\"%(related_path)s\">status</a>"
msgstr "vous a mentionné dans son <a href=\"%(related_path)s\">statut</a>" msgstr "vous a mentionné dans son <a href=\"%(related_path)s\">statut</a>"
#: bookwyrm/templates/notifications.html:71 #: bookwyrm/templates/notifications.html:73
#, python-format #, python-format
msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">review of <em>%(book_title)s</em></a>" msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">review of <em>%(book_title)s</em></a>"
msgstr "<a href=\"%(related_path)s\">a répondu</a> à votre <a href=\"%(parent_path)s\">critique de <em>%(book_title)s</em></a>" msgstr "<a href=\"%(related_path)s\">a répondu</a> à votre <a href=\"%(parent_path)s\">critique de <em>%(book_title)s</em></a>"
#: bookwyrm/templates/notifications.html:73 #: bookwyrm/templates/notifications.html:75
#, python-format #, python-format
msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">comment on <em>%(book_title)s</em></a>" msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">comment on <em>%(book_title)s</em></a>"
msgstr "<a href=\"%(related_path)s\">a répondu</a> à votre <a href=\"%(parent_path)s\">commentaire sur <em>%(book_title)s</em></a>" msgstr "<a href=\"%(related_path)s\">a répondu</a> à votre <a href=\"%(parent_path)s\">commentaire sur <em>%(book_title)s</em></a>"
#: bookwyrm/templates/notifications.html:75 #: bookwyrm/templates/notifications.html:77
#, python-format #, python-format
msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">quote from <em>%(book_title)s</em></a>" msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">quote from <em>%(book_title)s</em></a>"
msgstr "<a href=\"%(related_path)s\">a répondu</a> à votre <a href=\"%(parent_path)s\">citation de <em>%(book_title)s</em></a>" msgstr "<a href=\"%(related_path)s\">a répondu</a> à votre <a href=\"%(parent_path)s\">citation de <em>%(book_title)s</em></a>"
#: bookwyrm/templates/notifications.html:77 #: bookwyrm/templates/notifications.html:79
#, python-format #, python-format
msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">status</a>" msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">status</a>"
msgstr "<a href=\"%(related_path)s\">a répondu</a> à votre <a href=\"%(parent_path)s\">statut</a>" msgstr "<a href=\"%(related_path)s\">a répondu</a> à votre <a href=\"%(parent_path)s\">statut</a>"
#: bookwyrm/templates/notifications.html:81 #: bookwyrm/templates/notifications.html:83
msgid "followed you" msgid "followed you"
msgstr "sest abonné(e)" msgstr "sest abonné(e)"
#: bookwyrm/templates/notifications.html:84 #: bookwyrm/templates/notifications.html:86
msgid "sent you a follow request" msgid "sent you a follow request"
msgstr "vous a envoyé une demande dabonnement" msgstr "vous a envoyé une demande dabonnement"
#: bookwyrm/templates/notifications.html:90 #: bookwyrm/templates/notifications.html:92
#, python-format #, python-format
msgid "boosted your <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>" msgid "boosted your <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>"
msgstr "a partagé votre <a href=\"%(related_path)s\">critique de <em>%(book_title)s</em></a>" msgstr "a partagé votre <a href=\"%(related_path)s\">critique de <em>%(book_title)s</em></a>"
#: bookwyrm/templates/notifications.html:92 #: bookwyrm/templates/notifications.html:94
#, python-format #, python-format
msgid "boosted your <a href=\"%(related_path)s\">comment on<em>%(book_title)s</em></a>" msgid "boosted your <a href=\"%(related_path)s\">comment on<em>%(book_title)s</em></a>"
msgstr "a partagé votre <a href=\"%(related_path)s\">commentaire sur <em>%(book_title)s</em></a>" msgstr "a partagé votre <a href=\"%(related_path)s\">commentaire sur <em>%(book_title)s</em></a>"
#: bookwyrm/templates/notifications.html:94 #: bookwyrm/templates/notifications.html:96
#, python-format #, python-format
msgid "boosted your <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>" msgid "boosted your <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>"
msgstr "a partagé votre <a href=\"%(related_path)s\">citation de <em>%(book_title)s</em></a>" msgstr "a partagé votre <a href=\"%(related_path)s\">citation de <em>%(book_title)s</em></a>"
#: bookwyrm/templates/notifications.html:96 #: bookwyrm/templates/notifications.html:98
#, python-format #, python-format
msgid "boosted your <a href=\"%(related_path)s\">status</a>" msgid "boosted your <a href=\"%(related_path)s\">status</a>"
msgstr "a partagé votre <a href=\"%(related_path)s\">statut</a>" msgstr "a partagé votre <a href=\"%(related_path)s\">statut</a>"
#: bookwyrm/templates/notifications.html:100 #: bookwyrm/templates/notifications.html:102
#, python-format #, python-format
msgid " added <em><a href=\"%(book_path)s\">%(book_title)s</a></em> to your list \"<a href=\"%(list_path)s\">%(list_name)s</a>\"" msgid " added <em><a href=\"%(book_path)s\">%(book_title)s</a></em> to your list \"<a href=\"%(list_path)s\">%(list_name)s</a>\""
msgstr " a ajouté <em><a href=\"%(book_path)s\">%(book_title)s</a></em> à votre liste « <a href=\"%(list_path)s\">%(list_name)s</a> »" msgstr " a ajouté <em><a href=\"%(book_path)s\">%(book_title)s</a></em> à votre liste « <a href=\"%(list_path)s\">%(list_name)s</a> »"
#: bookwyrm/templates/notifications.html:102 #: bookwyrm/templates/notifications.html:104
#, python-format #, python-format
msgid " suggested adding <em><a href=\"%(book_path)s\">%(book_title)s</a></em> to your list \"<a href=\"%(list_path)s/curate\">%(list_name)s</a>\"" msgid " suggested adding <em><a href=\"%(book_path)s\">%(book_title)s</a></em> to your list \"<a href=\"%(list_path)s/curate\">%(list_name)s</a>\""
msgstr " a suggégré lajout de <em><a href=\"%(book_path)s\">%(book_title)s</a></em> à votre liste « <a href=\"%(list_path)s/curate\">%(list_name)s</a> »" msgstr " a suggégré lajout de <em><a href=\"%(book_path)s\">%(book_title)s</a></em> à votre liste « <a href=\"%(list_path)s/curate\">%(list_name)s</a> »"
#: bookwyrm/templates/notifications.html:106 #: bookwyrm/templates/notifications.html:108
#, python-format #, python-format
msgid " your <a href=\"/import/%(related_id)s\">import</a> completed." msgid " your <a href=\"/import/%(related_id)s\">import</a> completed."
msgstr " votre <a href=\"/import/%(related_id)s\">importation</a> est terminée." msgstr " votre <a href=\"/import/%(related_id)s\">importation</a> est terminée."
#: bookwyrm/templates/notifications.html:138 #: bookwyrm/templates/notifications.html:142
msgid "You're all caught up!" msgid "You're all caught up!"
msgstr "Aucune nouvelle notification!" msgstr "Aucune nouvelle notification!"
@ -1108,24 +1132,6 @@ msgstr "Compte"
msgid "Relationships" msgid "Relationships"
msgstr "Relations" msgstr "Relations"
#: bookwyrm/templates/search_results.html:4
msgid "Search Results"
msgstr "Résultats de recherche"
#: bookwyrm/templates/search_results.html:9
#, python-format
msgid "Search Results for \"%(query)s\""
msgstr "Résultats de recherche pour « %(query)s»"
#: bookwyrm/templates/search_results.html:14
msgid "Matching Books"
msgstr "Livres correspondants"
#: bookwyrm/templates/search_results.html:17
#, python-format
msgid "No books found for \"%(query)s\""
msgstr "Aucun livre trouvé pour « %(query)s»"
#: bookwyrm/templates/search_results.html:33 #: bookwyrm/templates/search_results.html:33
msgid "Didn't find what you were looking for?" msgid "Didn't find what you were looking for?"
msgstr "Vous navez pas trouvé ce que vous cherchiez?" msgstr "Vous navez pas trouvé ce que vous cherchiez?"
@ -1151,7 +1157,7 @@ msgstr "Comptes correspondants"
msgid "No users found for \"%(query)s\"" msgid "No users found for \"%(query)s\""
msgstr "Aucun compte trouvé pour « %(query)s»" msgstr "Aucun compte trouvé pour « %(query)s»"
#: bookwyrm/templates/search_results.html:92 #: bookwyrm/templates/search_results.html:94
#, python-format #, python-format
msgid "No lists found for \"%(query)s\"" msgid "No lists found for \"%(query)s\""
msgstr "Aucune liste trouvée pour « %(query)s»" msgstr "Aucune liste trouvée pour « %(query)s»"
@ -1588,22 +1594,22 @@ msgid "Sign Up"
msgstr "Senregistrer" msgstr "Senregistrer"
#: bookwyrm/templates/snippets/rss_title.html:5 #: bookwyrm/templates/snippets/rss_title.html:5
#: bookwyrm/templates/snippets/status/status_header.html:9 #: bookwyrm/templates/snippets/status/status_header.html:11
msgid "rated" msgid "rated"
msgstr "a noté" msgstr "a noté"
#: bookwyrm/templates/snippets/rss_title.html:7 #: bookwyrm/templates/snippets/rss_title.html:7
#: bookwyrm/templates/snippets/status/status_header.html:11 #: bookwyrm/templates/snippets/status/status_header.html:13
msgid "reviewed" msgid "reviewed"
msgstr "a écrit une critique de" msgstr "a écrit une critique de"
#: bookwyrm/templates/snippets/rss_title.html:9 #: bookwyrm/templates/snippets/rss_title.html:9
#: bookwyrm/templates/snippets/status/status_header.html:13 #: bookwyrm/templates/snippets/status/status_header.html:15
msgid "commented on" msgid "commented on"
msgstr "a commenté" msgstr "a commenté"
#: bookwyrm/templates/snippets/rss_title.html:11 #: bookwyrm/templates/snippets/rss_title.html:11
#: bookwyrm/templates/snippets/status/status_header.html:15 #: bookwyrm/templates/snippets/status/status_header.html:17
msgid "quoted" msgid "quoted"
msgstr "a cité" msgstr "a cité"
@ -1688,7 +1694,7 @@ msgstr "Commencer « <em>%(book_title)s</em> »"
msgid "Want to Read \"<em>%(book_title)s</em>\"" msgid "Want to Read \"<em>%(book_title)s</em>\""
msgstr "A envie de lire « <em>%(book_title)s</em> »" msgstr "A envie de lire « <em>%(book_title)s</em> »"
#: bookwyrm/templates/snippets/status/status.html:7 #: bookwyrm/templates/snippets/status/status.html:9
msgid "boosted" msgid "boosted"
msgstr "partagé" msgstr "partagé"
@ -1712,6 +1718,30 @@ msgstr "Replier"
msgid "Open image in new window" msgid "Open image in new window"
msgstr "Ouvrir limage dans une nouvelle fenêtre" msgstr "Ouvrir limage dans une nouvelle fenêtre"
#: bookwyrm/templates/snippets/status/status_header.html:22
#, fuzzy, python-format
#| msgid "favorited your <a href=\"%(related_path)s\">%(preview_name)s</a>"
msgid "replied to <a href=\"%(user_path)s\">%(username)s's</a> <a href=\"%(status_path)s\">review</a>"
msgstr "Messages directs avec <a href=\"%(path)s\">%(username)s</a>"
#: bookwyrm/templates/snippets/status/status_header.html:24
#, fuzzy, python-format
#| msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">status</a>"
msgid "replied to <a href=\"%(user_path)s\">%(username)s's</a> <a href=\"%(status_path)s\">comment</a>"
msgstr "<a href=\"%(related_path)s\">a répondu</a> à votre <a href=\"%(parent_path)s\">statut</a>"
#: bookwyrm/templates/snippets/status/status_header.html:26
#, fuzzy, python-format
#| msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">status</a>"
msgid "replied to <a href=\"%(user_path)s\">%(username)s's</a> <a href=\"%(status_path)s\">quote</a>"
msgstr "<a href=\"%(related_path)s\">a répondu</a> à votre <a href=\"%(parent_path)s\">statut</a>"
#: bookwyrm/templates/snippets/status/status_header.html:28
#, fuzzy, python-format
#| msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">status</a>"
msgid "replied to <a href=\"%(user_path)s\">%(username)s's</a> <a href=\"%(status_path)s\">status</a>"
msgstr "<a href=\"%(related_path)s\">a répondu</a> à votre <a href=\"%(parent_path)s\">statut</a>"
#: bookwyrm/templates/snippets/status/status_options.html:7 #: bookwyrm/templates/snippets/status/status_options.html:7
#: bookwyrm/templates/snippets/user_options.html:7 #: bookwyrm/templates/snippets/user_options.html:7
msgid "More options" msgid "More options"
@ -1757,7 +1787,7 @@ msgstr "Mettre létagère à jour"
msgid "User Profile" msgid "User Profile"
msgstr "Profil" msgstr "Profil"
#: bookwyrm/templates/user/followers.html:26 #: bookwyrm/templates/user/followers.html:29
#, python-format #, python-format
msgid "%(username)s has no followers" msgid "%(username)s has no followers"
msgstr "%(username)s na pas dabonné(e)" msgstr "%(username)s na pas dabonné(e)"
@ -1766,7 +1796,7 @@ msgstr "%(username)s na pas dabonné(e)"
msgid "Following" msgid "Following"
msgstr "Abonné(e) à" msgstr "Abonné(e) à"
#: bookwyrm/templates/user/following.html:26 #: bookwyrm/templates/user/following.html:29
#, python-format #, python-format
msgid "%(username)s isn't following any users" msgid "%(username)s isn't following any users"
msgstr "%(username)s nest abonné(e) à personne" msgstr "%(username)s nest abonné(e) à personne"
@ -1868,6 +1898,12 @@ msgstr[1] "%(username)s na pas dabonné(e)s"
msgid "%(counter)s following" msgid "%(counter)s following"
msgstr "%(counter)s abonnements" msgstr "%(counter)s abonnements"
#~ msgid "Created and curated by"
#~ msgstr "Créée et modérée par"
#~ msgid "Created by"
#~ msgstr "Créée par"
#~ msgid "Create New Shelf" #~ msgid "Create New Shelf"
#~ msgstr "Créer une nouvelle étagère" #~ msgstr "Créer une nouvelle étagère"

Binary file not shown.

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 0.1.1\n" "Project-Id-Version: 0.1.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-03-04 22:24+0000\n" "POT-Creation-Date: 2021-03-07 23:40+0000\n"
"PO-Revision-Date: 2021-03-02 10:35+0000\n" "PO-Revision-Date: 2021-03-02 10:35+0000\n"
"Last-Translator: Kana <gudzpoz@live.com>\n" "Last-Translator: Kana <gudzpoz@live.com>\n"
"Language-Team: Mouse Reeve <LL@li.org>\n" "Language-Team: Mouse Reeve <LL@li.org>\n"
@ -233,7 +233,7 @@ msgstr "地点"
#: bookwyrm/templates/book.html:229 bookwyrm/templates/layout.html:64 #: bookwyrm/templates/book.html:229 bookwyrm/templates/layout.html:64
#: bookwyrm/templates/lists/lists.html:4 bookwyrm/templates/lists/lists.html:9 #: bookwyrm/templates/lists/lists.html:4 bookwyrm/templates/lists/lists.html:9
#: bookwyrm/templates/search_results.html:90 #: bookwyrm/templates/search_results.html:92
#: bookwyrm/templates/user/user_layout.html:62 #: bookwyrm/templates/user/user_layout.html:62
msgid "Lists" msgid "Lists"
msgstr "列表" msgstr "列表"
@ -598,35 +598,40 @@ msgstr "(按下重新加载来更新!)"
msgid "Failed to load" msgid "Failed to load"
msgstr "加载失败" msgstr "加载失败"
#: bookwyrm/templates/import_status.html:59 #: bookwyrm/templates/import_status.html:44
#, python-format
msgid "Jump to the bottom of the list to select the %(failed_count)s items which failed to import."
msgstr ""
#: bookwyrm/templates/import_status.html:79
msgid "Select all" msgid "Select all"
msgstr "全选" msgstr "全选"
#: bookwyrm/templates/import_status.html:62 #: bookwyrm/templates/import_status.html:82
msgid "Retry items" msgid "Retry items"
msgstr "重试项目" msgstr "重试项目"
#: bookwyrm/templates/import_status.html:84 #: bookwyrm/templates/import_status.html:108
msgid "Successfully imported" msgid "Successfully imported"
msgstr "成功导入了" msgstr "成功导入了"
#: bookwyrm/templates/import_status.html:88 #: bookwyrm/templates/import_status.html:112
#: bookwyrm/templates/lists/curate.html:14 #: bookwyrm/templates/lists/curate.html:14
msgid "Book" msgid "Book"
msgstr "书目" msgstr "书目"
#: bookwyrm/templates/import_status.html:91 #: bookwyrm/templates/import_status.html:115
#: bookwyrm/templates/snippets/create_status_form.html:10 #: bookwyrm/templates/snippets/create_status_form.html:10
#: bookwyrm/templates/snippets/shelf.html:10 #: bookwyrm/templates/snippets/shelf.html:10
msgid "Title" msgid "Title"
msgstr "标题" msgstr "标题"
#: bookwyrm/templates/import_status.html:94 #: bookwyrm/templates/import_status.html:118
#: bookwyrm/templates/snippets/shelf.html:11 #: bookwyrm/templates/snippets/shelf.html:11
msgid "Author" msgid "Author"
msgstr "作者" msgstr "作者"
#: bookwyrm/templates/import_status.html:117 #: bookwyrm/templates/import_status.html:141
msgid "Imported" msgid "Imported"
msgstr "已导入" msgstr "已导入"
@ -643,6 +648,28 @@ msgstr "没有权限"
msgid "Sorry! This invite code is no longer valid." msgid "Sorry! This invite code is no longer valid."
msgstr "抱歉!此邀请码已不再有效。" msgstr "抱歉!此邀请码已不再有效。"
#: bookwyrm/templates/isbn_search_results.html:4
#: bookwyrm/templates/search_results.html:4
msgid "Search Results"
msgstr "搜索结果"
#: bookwyrm/templates/isbn_search_results.html:9
#: bookwyrm/templates/search_results.html:9
#, python-format
msgid "Search Results for \"%(query)s\""
msgstr "\"%(query)s\" 的搜索结果"
#: bookwyrm/templates/isbn_search_results.html:14
#: bookwyrm/templates/search_results.html:14
msgid "Matching Books"
msgstr "匹配的书目"
#: bookwyrm/templates/isbn_search_results.html:17
#: bookwyrm/templates/search_results.html:17
#, python-format
msgid "No books found for \"%(query)s\""
msgstr "没有找到 \"%(query)s\" 的书目"
#: bookwyrm/templates/layout.html:33 #: bookwyrm/templates/layout.html:33
msgid "Search for a book or user" msgid "Search for a book or user"
msgstr "搜索书目或用户" msgstr "搜索书目或用户"
@ -726,7 +753,7 @@ msgstr "联系站点管理员"
#: bookwyrm/templates/layout.html:202 #: bookwyrm/templates/layout.html:202
#, python-format #, python-format
msgid "Support %(site.name)s on <a href=\"%(site.support_link)s\" target=\"_blank\">%(site.support_title)s</a>" msgid "Support %(site_name)s on <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>"
msgstr "" msgstr ""
#: bookwyrm/templates/layout.html:206 #: bookwyrm/templates/layout.html:206
@ -738,6 +765,18 @@ msgstr "BookWyrm 是开源软件。你可以在<a href=\"https://github.com/mous
msgid "Create List" msgid "Create List"
msgstr "创建列表" msgstr "创建列表"
#: bookwyrm/templates/lists/created_text.html:5
#, fuzzy, python-format
#| msgid "Direct Messages with <a href=\"%(path)s\">%(username)s</a>"
msgid "Created and curated by <a href=\"%(path)s\">%(username)s</a>"
msgstr "与 <a href=\"%(path)s\">%(username)s</a> 私信"
#: bookwyrm/templates/lists/created_text.html:7
#, fuzzy, python-format
#| msgid "Direct Messages with <a href=\"%(path)s\">%(username)s</a>"
msgid "Created by <a href=\"%(path)s\">%(username)s</a>"
msgstr "与 <a href=\"%(path)s\">%(username)s</a> 私信"
#: bookwyrm/templates/lists/curate.html:6 #: bookwyrm/templates/lists/curate.html:6
msgid "Pending Books" msgid "Pending Books"
msgstr "等候中的书目" msgstr "等候中的书目"
@ -763,7 +802,7 @@ msgid "Discard"
msgstr "削除" msgstr "削除"
#: bookwyrm/templates/lists/edit_form.html:5 #: bookwyrm/templates/lists/edit_form.html:5
#: bookwyrm/templates/lists/list_layout.html:17 #: bookwyrm/templates/lists/list_layout.html:18
msgid "Edit List" msgid "Edit List"
msgstr "编辑列表" msgstr "编辑列表"
@ -842,16 +881,6 @@ msgstr "没有找到书目"
msgid "Suggest" msgid "Suggest"
msgstr "推荐" msgstr "推荐"
#: bookwyrm/templates/lists/list_items.html:19
#: bookwyrm/templates/lists/list_layout.html:11
msgid "Created and curated by"
msgstr "创建者及策展者为"
#: bookwyrm/templates/lists/list_items.html:19
#: bookwyrm/templates/lists/list_layout.html:11
msgid "Created by"
msgstr "创建者为"
#: bookwyrm/templates/lists/lists.html:14 #: bookwyrm/templates/lists/lists.html:14
msgid "Your lists" msgid "Your lists"
msgstr "你的列表" msgstr "你的列表"
@ -895,110 +924,110 @@ msgstr "你请求的页面似乎并不存在!"
msgid "Delete notifications" msgid "Delete notifications"
msgstr "删除通知" msgstr "删除通知"
#: bookwyrm/templates/notifications.html:49 #: bookwyrm/templates/notifications.html:51
#, python-format #, python-format
msgid "favorited your <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>" msgid "favorited your <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>"
msgstr "喜欢了你 <a href=\"%(related_path)s\">对 <em>%(book_title)s</em> 的书评</a>" msgstr "喜欢了你 <a href=\"%(related_path)s\">对 <em>%(book_title)s</em> 的书评</a>"
#: bookwyrm/templates/notifications.html:51 #: bookwyrm/templates/notifications.html:53
#, python-format #, python-format
msgid "favorited your <a href=\"%(related_path)s\">comment on <em>%(book_title)s</em></a>" msgid "favorited your <a href=\"%(related_path)s\">comment on <em>%(book_title)s</em></a>"
msgstr "喜欢了你 <a href=\"%(related_path)s\">对 <em>%(book_title)s</em> 的评论</a>" msgstr "喜欢了你 <a href=\"%(related_path)s\">对 <em>%(book_title)s</em> 的评论</a>"
#: bookwyrm/templates/notifications.html:53 #: bookwyrm/templates/notifications.html:55
#, python-format #, python-format
msgid "favorited your <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>" msgid "favorited your <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>"
msgstr "喜欢了你 <a href=\"%(related_path)s\">来自 <em>%(book_title)s</em> 的引用</a>" msgstr "喜欢了你 <a href=\"%(related_path)s\">来自 <em>%(book_title)s</em> 的引用</a>"
#: bookwyrm/templates/notifications.html:55 #: bookwyrm/templates/notifications.html:57
#, python-format #, python-format
msgid "favorited your <a href=\"%(related_path)s\">status</a>" msgid "favorited your <a href=\"%(related_path)s\">status</a>"
msgstr "喜欢了你的 <a href=\"%(related_path)s\">状态</a>" msgstr "喜欢了你的 <a href=\"%(related_path)s\">状态</a>"
#: bookwyrm/templates/notifications.html:60 #: bookwyrm/templates/notifications.html:62
#, python-format #, python-format
msgid "mentioned you in a <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>" msgid "mentioned you in a <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>"
msgstr "在 <a href=\"%(related_path)s\">对 <em>%(book_title)s</em> 的书评</a> 里提到了你" msgstr "在 <a href=\"%(related_path)s\">对 <em>%(book_title)s</em> 的书评</a> 里提到了你"
#: bookwyrm/templates/notifications.html:62 #: bookwyrm/templates/notifications.html:64
#, python-format #, python-format
msgid "mentioned you in a <a href=\"%(related_path)s\">comment on <em>%(book_title)s</em></a>" msgid "mentioned you in a <a href=\"%(related_path)s\">comment on <em>%(book_title)s</em></a>"
msgstr "在 <a href=\"%(related_path)s\">对 <em>%(book_title)s</em> 的评论</a> 里提到了你" msgstr "在 <a href=\"%(related_path)s\">对 <em>%(book_title)s</em> 的评论</a> 里提到了你"
#: bookwyrm/templates/notifications.html:64 #: bookwyrm/templates/notifications.html:66
#, python-format #, python-format
msgid "mentioned you in a <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>" msgid "mentioned you in a <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>"
msgstr "在 <a href=\"%(related_path)s\">对 <em>%(book_title)s</em> 的引用</a> 中提到了你" msgstr "在 <a href=\"%(related_path)s\">对 <em>%(book_title)s</em> 的引用</a> 中提到了你"
#: bookwyrm/templates/notifications.html:66 #: bookwyrm/templates/notifications.html:68
#, python-format #, python-format
msgid "mentioned you in a <a href=\"%(related_path)s\">status</a>" msgid "mentioned you in a <a href=\"%(related_path)s\">status</a>"
msgstr "在 <a href=\"%(related_path)s\">状态</a> 中提到了你" msgstr "在 <a href=\"%(related_path)s\">状态</a> 中提到了你"
#: bookwyrm/templates/notifications.html:71 #: bookwyrm/templates/notifications.html:73
#, python-format #, python-format
msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">review of <em>%(book_title)s</em></a>" msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">review of <em>%(book_title)s</em></a>"
msgstr "<a href=\"%(related_path)s\">回复</a> 了你的 <a href=\"%(parent_path)s\">对 <em>%(book_title)s</em> 的书评</a>" msgstr "<a href=\"%(related_path)s\">回复</a> 了你的 <a href=\"%(parent_path)s\">对 <em>%(book_title)s</em> 的书评</a>"
#: bookwyrm/templates/notifications.html:73 #: bookwyrm/templates/notifications.html:75
#, python-format #, python-format
msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">comment on <em>%(book_title)s</em></a>" msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">comment on <em>%(book_title)s</em></a>"
msgstr "<a href=\"%(related_path)s\">回复</a> 了你的 <a href=\"%(parent_path)s\">对 <em>%(book_title)s</em> 的评论</a>" msgstr "<a href=\"%(related_path)s\">回复</a> 了你的 <a href=\"%(parent_path)s\">对 <em>%(book_title)s</em> 的评论</a>"
#: bookwyrm/templates/notifications.html:75 #: bookwyrm/templates/notifications.html:77
#, python-format #, python-format
msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">quote from <em>%(book_title)s</em></a>" msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">quote from <em>%(book_title)s</em></a>"
msgstr "<a href=\"%(related_path)s\">回复</a> 了你 <a href=\"%(parent_path)s\">对 <em>%(book_title)s</em> 中的引用</a>" msgstr "<a href=\"%(related_path)s\">回复</a> 了你 <a href=\"%(parent_path)s\">对 <em>%(book_title)s</em> 中的引用</a>"
#: bookwyrm/templates/notifications.html:77 #: bookwyrm/templates/notifications.html:79
#, python-format #, python-format
msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">status</a>" msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">status</a>"
msgstr "<a href=\"%(related_path)s\">回复</a> 了你的 <a href=\"%(parent_path)s\">状态</a>" msgstr "<a href=\"%(related_path)s\">回复</a> 了你的 <a href=\"%(parent_path)s\">状态</a>"
#: bookwyrm/templates/notifications.html:81 #: bookwyrm/templates/notifications.html:83
msgid "followed you" msgid "followed you"
msgstr "关注了你" msgstr "关注了你"
#: bookwyrm/templates/notifications.html:84 #: bookwyrm/templates/notifications.html:86
msgid "sent you a follow request" msgid "sent you a follow request"
msgstr "向你发送了关注请求" msgstr "向你发送了关注请求"
#: bookwyrm/templates/notifications.html:90 #: bookwyrm/templates/notifications.html:92
#, python-format #, python-format
msgid "boosted your <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>" msgid "boosted your <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>"
msgstr "转发了你的 <a href=\"%(related_path)s\">对 <em>%(book_title)s</em> 的书评</a>" msgstr "转发了你的 <a href=\"%(related_path)s\">对 <em>%(book_title)s</em> 的书评</a>"
#: bookwyrm/templates/notifications.html:92 #: bookwyrm/templates/notifications.html:94
#, python-format #, python-format
msgid "boosted your <a href=\"%(related_path)s\">comment on<em>%(book_title)s</em></a>" msgid "boosted your <a href=\"%(related_path)s\">comment on<em>%(book_title)s</em></a>"
msgstr "转发了你的 <a href=\"%(related_path)s\">对 <em>%(book_title)s</em> 的评论</a>" msgstr "转发了你的 <a href=\"%(related_path)s\">对 <em>%(book_title)s</em> 的评论</a>"
#: bookwyrm/templates/notifications.html:94 #: bookwyrm/templates/notifications.html:96
#, python-format #, python-format
msgid "boosted your <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>" msgid "boosted your <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>"
msgstr "转发了你的 <a href=\"%(related_path)s\">对 <em>%(book_title)s</em> 的引用</a>" msgstr "转发了你的 <a href=\"%(related_path)s\">对 <em>%(book_title)s</em> 的引用</a>"
#: bookwyrm/templates/notifications.html:96 #: bookwyrm/templates/notifications.html:98
#, python-format #, python-format
msgid "boosted your <a href=\"%(related_path)s\">status</a>" msgid "boosted your <a href=\"%(related_path)s\">status</a>"
msgstr "转发了你的 <a href=\"%(related_path)s\">状态</a>" msgstr "转发了你的 <a href=\"%(related_path)s\">状态</a>"
#: bookwyrm/templates/notifications.html:100 #: bookwyrm/templates/notifications.html:102
#, python-format #, python-format
msgid " added <em><a href=\"%(book_path)s\">%(book_title)s</a></em> to your list \"<a href=\"%(list_path)s\">%(list_name)s</a>\"" msgid " added <em><a href=\"%(book_path)s\">%(book_title)s</a></em> to your list \"<a href=\"%(list_path)s\">%(list_name)s</a>\""
msgstr " 添加了 <em><a href=\"%(book_path)s\">%(book_title)s</a></em> 到你的列表 \"<a href=\"%(list_path)s\">%(list_name)s</a>\"" msgstr " 添加了 <em><a href=\"%(book_path)s\">%(book_title)s</a></em> 到你的列表 \"<a href=\"%(list_path)s\">%(list_name)s</a>\""
#: bookwyrm/templates/notifications.html:102 #: bookwyrm/templates/notifications.html:104
#, python-format #, python-format
msgid " suggested adding <em><a href=\"%(book_path)s\">%(book_title)s</a></em> to your list \"<a href=\"%(list_path)s/curate\">%(list_name)s</a>\"" msgid " suggested adding <em><a href=\"%(book_path)s\">%(book_title)s</a></em> to your list \"<a href=\"%(list_path)s/curate\">%(list_name)s</a>\""
msgstr " 推荐添加 <em><a href=\"%(book_path)s\">%(book_title)s</a></em> 到你的列表 \"<a href=\"%(list_path)s/curate\">%(list_name)s</a>\"" msgstr " 推荐添加 <em><a href=\"%(book_path)s\">%(book_title)s</a></em> 到你的列表 \"<a href=\"%(list_path)s/curate\">%(list_name)s</a>\""
#: bookwyrm/templates/notifications.html:106 #: bookwyrm/templates/notifications.html:108
#, python-format #, python-format
msgid " your <a href=\"/import/%(related_id)s\">import</a> completed." msgid " your <a href=\"/import/%(related_id)s\">import</a> completed."
msgstr " 你的 <a href=\"/import/%(related_id)s\">导入</a> 已完成。" msgstr " 你的 <a href=\"/import/%(related_id)s\">导入</a> 已完成。"
#: bookwyrm/templates/notifications.html:138 #: bookwyrm/templates/notifications.html:142
msgid "You're all caught up!" msgid "You're all caught up!"
msgstr "你什么也没错过!" msgstr "你什么也没错过!"
@ -1082,24 +1111,6 @@ msgstr "帐号"
msgid "Relationships" msgid "Relationships"
msgstr "关系" msgstr "关系"
#: bookwyrm/templates/search_results.html:4
msgid "Search Results"
msgstr "搜索结果"
#: bookwyrm/templates/search_results.html:9
#, python-format
msgid "Search Results for \"%(query)s\""
msgstr "\"%(query)s\" 的搜索结果"
#: bookwyrm/templates/search_results.html:14
msgid "Matching Books"
msgstr "匹配的书目"
#: bookwyrm/templates/search_results.html:17
#, python-format
msgid "No books found for \"%(query)s\""
msgstr "没有找到 \"%(query)s\" 的书目"
#: bookwyrm/templates/search_results.html:33 #: bookwyrm/templates/search_results.html:33
msgid "Didn't find what you were looking for?" msgid "Didn't find what you were looking for?"
msgstr "没有找到你想找的?" msgstr "没有找到你想找的?"
@ -1125,7 +1136,7 @@ msgstr "匹配的用户"
msgid "No users found for \"%(query)s\"" msgid "No users found for \"%(query)s\""
msgstr "没有找到 \"%(query)s\" 的用户" msgstr "没有找到 \"%(query)s\" 的用户"
#: bookwyrm/templates/search_results.html:92 #: bookwyrm/templates/search_results.html:94
#, python-format #, python-format
msgid "No lists found for \"%(query)s\"" msgid "No lists found for \"%(query)s\""
msgstr "没有找到 \"%(query)s\" 的条目" msgstr "没有找到 \"%(query)s\" 的条目"
@ -1557,22 +1568,22 @@ msgid "Sign Up"
msgstr "注册" msgstr "注册"
#: bookwyrm/templates/snippets/rss_title.html:5 #: bookwyrm/templates/snippets/rss_title.html:5
#: bookwyrm/templates/snippets/status/status_header.html:9 #: bookwyrm/templates/snippets/status/status_header.html:11
msgid "rated" msgid "rated"
msgstr "评价了" msgstr "评价了"
#: bookwyrm/templates/snippets/rss_title.html:7 #: bookwyrm/templates/snippets/rss_title.html:7
#: bookwyrm/templates/snippets/status/status_header.html:11 #: bookwyrm/templates/snippets/status/status_header.html:13
msgid "reviewed" msgid "reviewed"
msgstr "写了书评给" msgstr "写了书评给"
#: bookwyrm/templates/snippets/rss_title.html:9 #: bookwyrm/templates/snippets/rss_title.html:9
#: bookwyrm/templates/snippets/status/status_header.html:13 #: bookwyrm/templates/snippets/status/status_header.html:15
msgid "commented on" msgid "commented on"
msgstr "评论了" msgstr "评论了"
#: bookwyrm/templates/snippets/rss_title.html:11 #: bookwyrm/templates/snippets/rss_title.html:11
#: bookwyrm/templates/snippets/status/status_header.html:15 #: bookwyrm/templates/snippets/status/status_header.html:17
msgid "quoted" msgid "quoted"
msgstr "引用了" msgstr "引用了"
@ -1653,7 +1664,7 @@ msgstr "开始 \"<em>%(book_title)s</em>\""
msgid "Want to Read \"<em>%(book_title)s</em>\"" msgid "Want to Read \"<em>%(book_title)s</em>\""
msgstr "想要阅读 \"<em>%(book_title)s</em>\"" msgstr "想要阅读 \"<em>%(book_title)s</em>\""
#: bookwyrm/templates/snippets/status/status.html:7 #: bookwyrm/templates/snippets/status/status.html:9
msgid "boosted" msgid "boosted"
msgstr "转发了" msgstr "转发了"
@ -1677,6 +1688,30 @@ msgstr "显示更少"
msgid "Open image in new window" msgid "Open image in new window"
msgstr "在新窗口中打开图像" msgstr "在新窗口中打开图像"
#: bookwyrm/templates/snippets/status/status_header.html:22
#, fuzzy, python-format
#| msgid "Direct Messages with <a href=\"%(path)s\">%(username)s</a>"
msgid "replied to <a href=\"%(user_path)s\">%(username)s's</a> <a href=\"%(status_path)s\">review</a>"
msgstr "与 <a href=\"%(path)s\">%(username)s</a> 私信"
#: bookwyrm/templates/snippets/status/status_header.html:24
#, fuzzy, python-format
#| msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">status</a>"
msgid "replied to <a href=\"%(user_path)s\">%(username)s's</a> <a href=\"%(status_path)s\">comment</a>"
msgstr "<a href=\"%(related_path)s\">回复</a> 了你的 <a href=\"%(parent_path)s\">状态</a>"
#: bookwyrm/templates/snippets/status/status_header.html:26
#, fuzzy, python-format
#| msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">status</a>"
msgid "replied to <a href=\"%(user_path)s\">%(username)s's</a> <a href=\"%(status_path)s\">quote</a>"
msgstr "<a href=\"%(related_path)s\">回复</a> 了你的 <a href=\"%(parent_path)s\">状态</a>"
#: bookwyrm/templates/snippets/status/status_header.html:28
#, fuzzy, python-format
#| msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">status</a>"
msgid "replied to <a href=\"%(user_path)s\">%(username)s's</a> <a href=\"%(status_path)s\">status</a>"
msgstr "<a href=\"%(related_path)s\">回复</a> 了你的 <a href=\"%(parent_path)s\">状态</a>"
#: bookwyrm/templates/snippets/status/status_options.html:7 #: bookwyrm/templates/snippets/status/status_options.html:7
#: bookwyrm/templates/snippets/user_options.html:7 #: bookwyrm/templates/snippets/user_options.html:7
msgid "More options" msgid "More options"
@ -1722,7 +1757,7 @@ msgstr "更新书架"
msgid "User Profile" msgid "User Profile"
msgstr "用户个人资料" msgstr "用户个人资料"
#: bookwyrm/templates/user/followers.html:26 #: bookwyrm/templates/user/followers.html:29
#, python-format #, python-format
msgid "%(username)s has no followers" msgid "%(username)s has no followers"
msgstr "%(username)s 没有关注者" msgstr "%(username)s 没有关注者"
@ -1731,7 +1766,7 @@ msgstr "%(username)s 没有关注者"
msgid "Following" msgid "Following"
msgstr "正在关注" msgstr "正在关注"
#: bookwyrm/templates/user/following.html:26 #: bookwyrm/templates/user/following.html:29
#, python-format #, python-format
msgid "%(username)s isn't following any users" msgid "%(username)s isn't following any users"
msgstr "%(username)s 没有关注任何用户" msgstr "%(username)s 没有关注任何用户"
@ -1830,6 +1865,12 @@ msgstr[0] "%(counter)s 个关注者"
msgid "%(counter)s following" msgid "%(counter)s following"
msgstr "关注着 %(counter)s 人" msgstr "关注着 %(counter)s 人"
#~ msgid "Created and curated by"
#~ msgstr "创建者及策展者为"
#~ msgid "Created by"
#~ msgstr "创建者为"
#~ msgid "Create New Shelf" #~ msgid "Create New Shelf"
#~ msgstr "新建书架" #~ msgstr "新建书架"

View file

@ -1,5 +1,4 @@
celery==4.4.2 celery==4.4.2
coverage==5.1
Django==3.0.7 Django==3.0.7
django-model-utils==4.0.0 django-model-utils==4.0.0
environs==7.2.0 environs==7.2.0
@ -8,11 +7,15 @@ Markdown==3.3.3
Pillow>=7.1.0 Pillow>=7.1.0
psycopg2==2.8.4 psycopg2==2.8.4
pycryptodome==3.9.4 pycryptodome==3.9.4
pytest-django==4.1.0
pytest==6.1.2
pytest-cov==2.10.1
python-dateutil==2.8.1 python-dateutil==2.8.1
redis==3.4.1 redis==3.4.1
requests==2.22.0 requests==2.22.0
responses==0.10.14 responses==0.10.14
django-rename-app==0.1.2 django-rename-app==0.1.2
# Dev
black==20.8b1
coverage==5.1
pytest-django==4.1.0
pytest==6.1.2
pytest-cov==2.10.1