Merge branch 'main' into production

This commit is contained in:
Mouse Reeve 2022-01-30 06:32:51 -08:00
commit dd16ccd093
65 changed files with 7529 additions and 2146 deletions

View file

@ -8,6 +8,8 @@ USE_HTTPS=true
DOMAIN=your.domain.here DOMAIN=your.domain.here
EMAIL=your@email.here EMAIL=your@email.here
# Instance defualt language (see options at bookwyrm/settings.py "LANGUAGES"
LANGUAGE_CODE="en-us"
# Used for deciding which editions to prefer # Used for deciding which editions to prefer
DEFAULT_LANGUAGE="English" DEFAULT_LANGUAGE="English"

View file

@ -444,6 +444,12 @@ class ListForm(CustomForm):
fields = ["user", "name", "description", "curation", "privacy", "group"] fields = ["user", "name", "description", "curation", "privacy", "group"]
class ListItemForm(CustomForm):
class Meta:
model = models.ListItem
fields = ["user", "book", "book_list", "notes"]
class GroupForm(CustomForm): class GroupForm(CustomForm):
class Meta: class Meta:
model = models.Group model = models.Group

View file

@ -19,9 +19,7 @@ def init_permissions():
{ {
"codename": "edit_instance_settings", "codename": "edit_instance_settings",
"name": "change the instance info", "name": "change the instance info",
"groups": [ "groups": ["admin"],
"admin",
],
}, },
{ {
"codename": "set_user_group", "codename": "set_user_group",
@ -55,7 +53,7 @@ def init_permissions():
}, },
] ]
content_type = models.ContentType.objects.get_for_model(User) content_type = ContentType.objects.get_for_model(models.User)
for permission in permissions: for permission in permissions:
permission_obj = Permission.objects.create( permission_obj = Permission.objects.create(
codename=permission["codename"], codename=permission["codename"],
@ -66,15 +64,12 @@ def init_permissions():
for group_name in permission["groups"]: for group_name in permission["groups"]:
Group.objects.get(name=group_name).permissions.add(permission_obj) Group.objects.get(name=group_name).permissions.add(permission_obj)
# while the groups and permissions shouldn't be changed because the code
# depends on them, what permissions go with what groups should be editable
def init_connectors(): def init_connectors():
"""access book data sources""" """access book data sources"""
models.Connector.objects.create( models.Connector.objects.create(
identifier="bookwyrm.social", identifier="bookwyrm.social",
name="BookWyrm dot Social", name="Bookwyrm.social",
connector_file="bookwyrm_connector", connector_file="bookwyrm_connector",
base_url="https://bookwyrm.social", base_url="https://bookwyrm.social",
books_url="https://bookwyrm.social/book", books_url="https://bookwyrm.social/book",
@ -84,6 +79,7 @@ def init_connectors():
priority=2, priority=2,
) )
# pylint: disable=line-too-long
models.Connector.objects.create( models.Connector.objects.create(
identifier="inventaire.io", identifier="inventaire.io",
name="Inventaire", name="Inventaire",
@ -127,7 +123,7 @@ def init_settings():
) )
def init_link_domains(*_): def init_link_domains():
"""safe book links""" """safe book links"""
domains = [ domains = [
("standardebooks.org", "Standard EBooks"), ("standardebooks.org", "Standard EBooks"),
@ -144,10 +140,15 @@ def init_link_domains(*_):
) )
# pylint: disable=no-self-use
# pylint: disable=unused-argument
class Command(BaseCommand): class Command(BaseCommand):
"""command-line options"""
help = "Initializes the database with starter data" help = "Initializes the database with starter data"
def add_arguments(self, parser): def add_arguments(self, parser):
"""specify which function to run"""
parser.add_argument( parser.add_argument(
"--limit", "--limit",
default=None, default=None,
@ -155,6 +156,7 @@ class Command(BaseCommand):
) )
def handle(self, *args, **options): def handle(self, *args, **options):
"""execute init"""
limit = options.get("limit") limit = options.get("limit")
tables = [ tables = [
"group", "group",
@ -164,7 +166,7 @@ class Command(BaseCommand):
"settings", "settings",
"linkdomain", "linkdomain",
] ]
if limit not in tables: if limit and limit not in tables:
raise Exception("Invalid table limit:", limit) raise Exception("Invalid table limit:", limit)
if not limit or limit == "group": if not limit or limit == "group":

View file

@ -0,0 +1,21 @@
# Generated by Django 3.2.10 on 2022-01-24 20:01
import bookwyrm.models.fields
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("bookwyrm", "0129_auto_20220117_1716"),
]
operations = [
migrations.AlterField(
model_name="listitem",
name="notes",
field=bookwyrm.models.fields.TextField(
blank=True, max_length=300, null=True
),
),
]

View file

@ -0,0 +1,37 @@
# Generated by Django 3.2.10 on 2022-01-24 17:32
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("bookwyrm", "0129_auto_20220117_1716"),
]
operations = [
migrations.AlterField(
model_name="user",
name="preferred_language",
field=models.CharField(
blank=True,
choices=[
("en-us", "English"),
("de-de", "Deutsch (German)"),
("es-es", "Español (Spanish)"),
("gl-es", "Galego (Galician)"),
("it-it", "Italiano (Italian)"),
("fr-fr", "Français (French)"),
("lt-lt", "Lietuvių (Lithuanian)"),
("no-no", "Norsk (Norwegian)"),
("pt-br", "Português do Brasil (Brazilian Portuguese)"),
("pt-pt", "Português Europeu (European Portuguese)"),
("sv-se", "Swedish (Svenska)"),
("zh-hans", "简体中文 (Simplified Chinese)"),
("zh-hant", "繁體中文 (Traditional Chinese)"),
],
max_length=255,
null=True,
),
),
]

View file

@ -0,0 +1,13 @@
# Generated by Django 3.2.10 on 2022-01-25 16:44
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("bookwyrm", "0130_alter_listitem_notes"),
("bookwyrm", "0130_alter_user_preferred_language"),
]
operations = []

View file

@ -2,6 +2,7 @@
import uuid import uuid
from django.apps import apps from django.apps import apps
from django.core.exceptions import PermissionDenied
from django.db import models from django.db import models
from django.db.models import Q from django.db.models import Q
from django.utils import timezone from django.utils import timezone
@ -74,6 +75,22 @@ class List(OrderedCollectionMixin, BookWyrmModel):
return return
super().raise_not_editable(viewer) super().raise_not_editable(viewer)
def raise_not_submittable(self, viewer):
"""can the user submit a book to the list?"""
# if you can't view the list you can't submit to it
self.raise_visible_to_user(viewer)
# all good if you're the owner or the list is open
if self.user == viewer or self.curation in ["open", "curated"]:
return
if self.curation == "group":
is_group_member = GroupMember.objects.filter(
group=self.group, user=viewer
).exists()
if is_group_member:
return
raise PermissionDenied()
@classmethod @classmethod
def followers_filter(cls, queryset, viewer): def followers_filter(cls, queryset, viewer):
"""Override filter for "followers" privacy level to allow non-following """Override filter for "followers" privacy level to allow non-following
@ -125,7 +142,7 @@ class ListItem(CollectionItemMixin, BookWyrmModel):
user = fields.ForeignKey( user = fields.ForeignKey(
"User", on_delete=models.PROTECT, activitypub_field="actor" "User", on_delete=models.PROTECT, activitypub_field="actor"
) )
notes = fields.TextField(blank=True, null=True) notes = fields.TextField(blank=True, null=True, max_length=300)
approved = models.BooleanField(default=True) approved = models.BooleanField(default=True)
order = fields.IntegerField() order = fields.IntegerField()
endorsement = models.ManyToManyField("User", related_name="endorsers") endorsement = models.ManyToManyField("User", related_name="endorsers")

View file

@ -14,7 +14,7 @@ VERSION = "0.2.0"
PAGE_LENGTH = env("PAGE_LENGTH", 15) PAGE_LENGTH = env("PAGE_LENGTH", 15)
DEFAULT_LANGUAGE = env("DEFAULT_LANGUAGE", "English") DEFAULT_LANGUAGE = env("DEFAULT_LANGUAGE", "English")
JS_CACHE = "76c5ff1f" JS_CACHE = "7b5303af"
# email # email
EMAIL_BACKEND = env("EMAIL_BACKEND", "django.core.mail.backends.smtp.EmailBackend") EMAIL_BACKEND = env("EMAIL_BACKEND", "django.core.mail.backends.smtp.EmailBackend")
@ -243,7 +243,7 @@ AUTH_PASSWORD_VALIDATORS = [
# Internationalization # Internationalization
# https://docs.djangoproject.com/en/3.2/topics/i18n/ # https://docs.djangoproject.com/en/3.2/topics/i18n/
LANGUAGE_CODE = "en-us" LANGUAGE_CODE = env("LANGUAGE_CODE", "en-us")
LANGUAGES = [ LANGUAGES = [
("en-us", _("English")), ("en-us", _("English")),
("de-de", _("Deutsch (German)")), ("de-de", _("Deutsch (German)")),
@ -255,6 +255,7 @@ LANGUAGES = [
("no-no", _("Norsk (Norwegian)")), ("no-no", _("Norsk (Norwegian)")),
("pt-br", _("Português do Brasil (Brazilian Portuguese)")), ("pt-br", _("Português do Brasil (Brazilian Portuguese)")),
("pt-pt", _("Português Europeu (European Portuguese)")), ("pt-pt", _("Português Europeu (European Portuguese)")),
("sv-se", _("Swedish (Svenska)")),
("zh-hans", _("简体中文 (Simplified Chinese)")), ("zh-hans", _("简体中文 (Simplified Chinese)")),
("zh-hant", _("繁體中文 (Traditional Chinese)")), ("zh-hant", _("繁體中文 (Traditional Chinese)")),
] ]

View file

@ -122,39 +122,13 @@ let BookWyrm = new (class {
*/ */
updateCountElement(counter, data) { updateCountElement(counter, data) {
let count = data.count; let count = data.count;
const count_by_type = data.count_by_type;
if (count === undefined) {
return;
}
const currentCount = counter.innerText; const currentCount = counter.innerText;
const hasMentions = data.has_mentions; const hasMentions = data.has_mentions;
const allowedStatusTypesEl = document.getElementById("unread-notifications-wrapper");
// If we're on the right counter element
if (counter.closest("[data-poll-wrapper]").contains(allowedStatusTypesEl)) {
const allowedStatusTypes = JSON.parse(allowedStatusTypesEl.textContent);
// For keys in common between allowedStatusTypes and count_by_type
// This concerns 'review', 'quotation', 'comment'
count = allowedStatusTypes.reduce(function (prev, currentKey) {
const currentValue = count_by_type[currentKey] | 0;
return prev + currentValue;
}, 0);
// Add all the "other" in count_by_type if 'everything' is allowed
if (allowedStatusTypes.includes("everything")) {
// Clone count_by_type with 0 for reviews/quotations/comments
const count_by_everything_else = Object.assign({}, count_by_type, {
review: 0,
quotation: 0,
comment: 0,
});
count = Object.keys(count_by_everything_else).reduce(function (prev, currentKey) {
const currentValue = count_by_everything_else[currentKey] | 0;
return prev + currentValue;
}, count);
}
}
if (count != currentCount) { if (count != currentCount) {
this.addRemoveClass(counter.closest("[data-poll-wrapper]"), "is-hidden", count < 1); this.addRemoveClass(counter.closest("[data-poll-wrapper]"), "is-hidden", count < 1);
@ -517,7 +491,7 @@ let BookWyrm = new (class {
duplicateInput(event) { duplicateInput(event) {
const trigger = event.currentTarget; const trigger = event.currentTarget;
const input_id = trigger.dataset["duplicate"]; const input_id = trigger.dataset.duplicate;
const orig = document.getElementById(input_id); const orig = document.getElementById(input_id);
const parent = orig.parentNode; const parent = orig.parentNode;
const new_count = parent.querySelectorAll("input").length + 1; const new_count = parent.querySelectorAll("input").length + 1;

View file

@ -24,9 +24,12 @@
{# announcements and system messages #} {# announcements and system messages #}
{% if not activities.number > 1 %} {% if not activities.number > 1 %}
<a href="{{ request.path }}" class="transition-y is-hidden notification is-primary is-block" data-poll-wrapper> <a
{% blocktrans with tab_key=tab.key %}load <span data-poll="stream/{{ tab_key }}">0</span> unread status(es){% endblocktrans %} href="{{ request.path }}"
{{ allowed_status_types|json_script:"unread-notifications-wrapper" }} class="transition-y is-hidden notification is-primary is-block"
data-poll-wrapper
>
<span data-poll="stream/{{ tab.key }}"></span>
</a> </a>
{% if request.user.show_goal and not goal and tab.key == 'home' %} {% if request.user.show_goal and not goal and tab.key == 'home' %}

View file

@ -9,7 +9,7 @@
<div class="modal is-active" role="dialog" aria-modal="true" aria-labelledby="get_started_header"> <div class="modal is-active" role="dialog" aria-modal="true" aria-labelledby="get_started_header">
<div class="modal-background"></div> <div class="modal-background"></div>
<div class="modal-card is-fullwidth"> <div class="modal-card is-fullwidth">
<header class="modal-card-head"> <header class="modal-card-head navbar">
<img <img
class="image logo mr-2" class="image logo mr-2"
src="{% if site.logo_small %}{% get_media_prefix %}{{ site.logo_small }}{% else %}{% static "images/logo-small.png" %}{% endif %}" src="{% if site.logo_small %}{% get_media_prefix %}{{ site.logo_small }}{% else %}{% static "images/logo-small.png" %}{% endif %}"

View file

@ -0,0 +1,45 @@
{% extends 'components/modal.html' %}
{% load i18n %}
{% load utilities %}
{% load group_tags %}
{% block modal-title %}
{% if list.curation == 'open' or request.user == list.user or list.group|is_member:request.user %}
{% blocktrans trimmed with title=book|book_title %}
Add "<em>{{ title }}</em>" to this list
{% endblocktrans %}
{% else %}
{% blocktrans trimmed with title=book|book_title %}
Suggest "<em>{{ title }}</em>" for this list
{% endblocktrans %}
{% endif %}
{% endblock %}
{% block modal-form-open %}
<form
name="add-book-{{ book.id }}"
method="POST"
action="{% url 'list-add-book' %}{% if query %}?q={{ query }}{% endif %}"
>
{% endblock %}
{% block modal-body %}
{% csrf_token %}
<input type="hidden" name="book" value="{{ book.id }}">
<input type="hidden" name="book_list" value="{{ list.id }}">
<input type="hidden" name="user" value="{{ request.user.id }}">
{% include "lists/item_notes_field.html" with form_id=id show_label=True %}
{% endblock %}
{% block modal-footer %}
<button type="submit" class="button is-link">
{% if list.curation == 'open' or request.user == list.user or list.group|is_member:request.user %}
{% trans "Add" %}
{% else %}
{% trans "Suggest" %}
{% endif %}
</button>
<button type="button" class="button" data-modal-close>{% trans "Cancel" %}</button>
{% endblock %}
{% block modal-form-close %}</form>{% endblock %}

View file

@ -1,5 +1,6 @@
{% extends 'lists/layout.html' %} {% extends 'lists/layout.html' %}
{% load i18n %} {% load i18n %}
{% load utilities %}
{% block breadcrumbs %} {% block breadcrumbs %}
<nav class="breadcrumb subtitle" aria-label="breadcrumbs"> <nav class="breadcrumb subtitle" aria-label="breadcrumbs">
@ -38,6 +39,17 @@
<div class="column ml-3"> <div class="column ml-3">
{% include 'snippets/book_titleby.html' %} {% include 'snippets/book_titleby.html' %}
{% if item.notes %}
<div>
{% url 'user-feed' item.user|username as user_path %}
{% blocktrans trimmed with username=item.user.display_name %}
<a href="{{ user_path }}">{{ username }}</a> says:
{% endblocktrans %}
<p class="notification">
{{ item.notes }}
</p>
</div>
{% endif %}
<p> <p>
{% trans "Suggested by" %} {% trans "Suggested by" %}

View file

@ -0,0 +1,20 @@
{% load i18n %}
<form
name="edit-notes-{{ item.id }}"
method="POST"
action="{% url 'list-item' list.id item.id %}"
>
{% csrf_token %}
<input type="hidden" name="book" value="{{ book.id }}">
<input type="hidden" name="book_list" value="{{ list.id }}">
<input type="hidden" name="user" value="{{ request.user.id }}">
{% include "lists/item_notes_field.html" with form_id=item.id %}
<div class="field">
<div class="control">
<button type="submit" class="button is-success">
{% trans "Save" %}
</button>
</div>
</div>
</form>

View file

@ -0,0 +1,21 @@
{% load i18n %}
<div class="field">
<label
for="id_notes_{{ form_id }}"
class="{% if show_label %}label{% else %}is-sr-only{% endif %}"
>
{% trans "Notes:" %}
</label>
<div class="control">
<textarea
class="textarea"
id="id_notes_{{ form_id }}"
maxlength="300"
name="notes"
aria-describedby="notes_description_{{ form_id }}"
>{{ item.notes|default:'' }}</textarea>
</div>
<p class="help" id="notes_description_{{ form_id }}">
{% trans "An optional note that will be displayed with the book." %}
</p>
</div>

View file

@ -1,9 +1,10 @@
{% extends 'lists/layout.html' %} {% extends 'lists/layout.html' %}
{% load i18n %} {% load i18n %}
{% load rating_tags %} {% load rating_tags %}
{% load book_display_tags %}
{% load group_tags %} {% load group_tags %}
{% load book_display_tags %}
{% load markdown %} {% load markdown %}
{% load utilities %}
{% block breadcrumbs %} {% block breadcrumbs %}
<nav class="breadcrumb subtitle" aria-label="breadcrumbs"> <nav class="breadcrumb subtitle" aria-label="breadcrumbs">
@ -21,7 +22,7 @@
{% block panel %} {% block panel %}
{% if request.user == list.user and pending_count %} {% if request.user == list.user and pending_count %}
<div class="block content"> <div class="block content">
<p> <p class="notification">
<a href="{% url 'list-curate' list.id %}">{{ pending_count }} book{{ pending_count|pluralize }} awaiting your approval</a> <a href="{% url 'list-curate' list.id %}">{{ pending_count }} book{{ pending_count|pluralize }} awaiting your approval</a>
</p> </p>
</div> </div>
@ -46,21 +47,16 @@
{% for item in items %} {% for item in items %}
<li class="block mb-5"> <li class="block mb-5">
<div class="card"> <div class="card">
{% with book=item.book %} <div class="card-content">
<div {% with book=item.book %}
class=" <div class="columns is-mobile">
card-content p-0 mb-0 <div class="column is-narrow is-cover">
columns is-gapless
is-mobile
"
>
<div class="column is-3-mobile is-2-tablet is-cover align to-t">
<a href="{{ item.book.local_path }}" aria-hidden="true"> <a href="{{ item.book.local_path }}" aria-hidden="true">
{% include 'snippets/book_cover.html' with cover_class='is-w-auto is-h-m-tablet is-align-items-flex-start' size='medium' %} {% include 'snippets/book_cover.html' with cover_class='is-w-auto is-h-m-tablet is-align-items-flex-start' size='medium' %}
</a> </a>
</div> </div>
<div class="column mx-3 my-2"> <div class="column">
<p> <p>
{% include 'snippets/book_titleby.html' %} {% include 'snippets/book_titleby.html' %}
</p> </p>
@ -73,8 +69,54 @@
{% include 'snippets/shelve_button/shelve_button.html' with book=book %} {% include 'snippets/shelve_button/shelve_button.html' with book=book %}
</div> </div>
</div> </div>
{% endwith %} {% endwith %}
{% if item.notes %}
<div class="media notification">
<figure class="media-left" aria-hidden="true">
{% include "snippets/avatar.html" with user=item.user %}
</figure>
<div class="media-content">
<div class="content">
<header>
{% url 'user-feed' user|username as user_path %}
{% blocktrans trimmed with username=user.display_name %}
<a href="{{ user_path }}">{{ username }}</a> says:
{% endblocktrans %}
</header>
<p>
{{ item.notes|to_markdown|safe }}
</p>
</div>
{% if item.user == request.user %}
<div>
<details class="details-panel box">
<summary>
<span role="heading" aria-level="3">
{% trans "Edit notes" %}
<span class="details-close icon icon-pencil" aria-hidden></span>
</span>
</summary>
{% include "lists/edit_item_form.html" %}
</details>
</div>
{% endif %}
</div>
</div>
{% elif item.user == request.user %}
<div>
<details class="details-panel box">
<summary>
<span role="heading" aria-level="3">
{% trans "Add notes" %}
<span class="details-close icon icon-plus" aria-hidden></span>
</span>
</summary>
{% include "lists/edit_item_form.html" %}
</details>
</div>
{% endif %}
</div>
<div class="card-footer is-stacked-mobile has-background-white-bis is-align-items-stretch"> <div class="card-footer is-stacked-mobile has-background-white-bis is-align-items-stretch">
<div class="card-footer-item"> <div class="card-footer-item">
<p> <p>
@ -195,23 +237,19 @@
<div class="column ml-3"> <div class="column ml-3">
<p>{% include 'snippets/book_titleby.html' with book=book %}</p> <p>{% include 'snippets/book_titleby.html' with book=book %}</p>
<form {% join "add_item" list.id book.id as modal_id %}
class="mt-1" <button
name="add-book-{{ book.id }}" type="button"
method="post" class="button is-small is-link"
action="{% url 'list-add-book' %}{% if query %}?q={{ query }}{% endif %}" data-modal-open="{{ modal_id }}"
> >
{% csrf_token %} {% if list.curation == 'open' or request.user == list.user or list.group|is_member:request.user %}
<input type="hidden" name="book" value="{{ book.id }}"> {% trans "Add" %}
<input type="hidden" name="list" value="{{ list.id }}"> {% else %}
<button type="submit" class="button is-small is-link"> {% trans "Suggest" %}
{% if list.curation == 'open' or request.user == list.user or list.group|is_member:request.user %} {% endif %}
{% trans "Add" %} </button>
{% else %} {% include "lists/add_item_modal.html" with id=modal_id %}
{% trans "Suggest" %}
{% endif %}
</button>
</form>
</div> </div>
</div> </div>
{% endfor %} {% endfor %}
@ -225,7 +263,7 @@
<textarea <textarea
readonly readonly
class="textarea is-small" class="textarea is-small"
aria-labelledby="embed-label" aria-describedby="embed-label"
data-copytext data-copytext
data-copytext-label="{% trans 'Copy embed code' %}" data-copytext-label="{% trans 'Copy embed code' %}"
data-copytext-success="{% trans 'Copied!' %}" data-copytext-success="{% trans 'Copied!' %}"

View file

@ -6,5 +6,5 @@
{% endblock %} {% endblock %}
{% block content %} {% block content %}
{% include "snippets/report_modal.html" with user=user active=True static=True %} {% include "snippets/report_modal.html" with user=user active=True static=True id="report-modal" %}
{% endblock %} {% endblock %}

View file

@ -1,5 +1,78 @@
# See http://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file # See http://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file
##### AhrefsBot #####
# see http://ahrefs.com/robot/
User-agent: AhrefsBot
Crawl-Delay: 10
#Disallow: /
##### SemrushBot #####
# see http://www.semrush.com/bot.html
User-agent: SemrushBot
Crawl-Delay: 10
#Disallow: /
# To block SemrushBot from crawling your site for different SEO and technical issues:
User-agent: SiteAuditBot
Disallow: /
#To block SemrushBot from crawling your site for Backlink Audit tool:
User-agent: SemrushBot-BA
Disallow: /
#To block SemrushBot from crawling your site for On Page SEO Checker tool and similar tools:
User-agent: SemrushBot-SI
Disallow: /
#To block SemrushBot from checking URLs on your site for SWA tool:
User-agent: SemrushBot-SWA
Disallow: /
#To block SemrushBot from crawling your site for Content Analyzer and Post Tracking tools:
User-agent: SemrushBot-CT
Disallow: /
#To block SemrushBot from crawling your site for Brand Monitoring:
User-agent: SemrushBot-BM
Disallow: /
#To block SplitSignalBot from crawling your site for SplitSignal tool:
User-agent: SplitSignalBot
Disallow: /
#To block SemrushBot-COUB from crawling your site for Content Outline Builder tool:
User-agent: SemrushBot-COUB
Disallow: /
##### DotBot #####
# see https://opensiteexplorer.org/dotbot
User-agent: dotbot
Crawl-delay: 10
#Disallow: /
##### BLEXBot #####
# see http://webmeup-crawler.com/
User-agent: BLEXBot
Crawl-delay: 10
#Disallow: /
##### MJ12bot #####
# see http://mj12bot.com/
User-Agent: MJ12bot
Crawl-Delay: 20
#Disallow: /
##### PetalBot #####
# see https://webmaster.petalsearch.com/site/petalbot
User-agent: PetalBot
Disallow: /
User-agent: * User-agent: *
Disallow: /static/js/ Disallow: /static/js/
Disallow: /static/css/ Disallow: /static/css/

View file

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

View file

@ -0,0 +1,113 @@
""" test populating user streams """
from django.contrib.auth.models import Group, Permission
from django.test import TestCase
from bookwyrm import models
from bookwyrm.management.commands import initdb
class InitDB(TestCase):
"""gotta init that db"""
def test_init_groups(self):
"""Create groups"""
initdb.init_groups()
self.assertEqual(Group.objects.count(), 3)
self.assertTrue(Group.objects.filter(name="admin").exists())
self.assertTrue(Group.objects.filter(name="moderator").exists())
self.assertTrue(Group.objects.filter(name="editor").exists())
def test_init_permissions(self):
"""User permissions"""
initdb.init_groups()
initdb.init_permissions()
group = Group.objects.get(name="admin")
self.assertTrue(
group.permissions.filter(codename="edit_instance_settings").exists()
)
self.assertTrue(group.permissions.filter(codename="set_user_group").exists())
self.assertTrue(
group.permissions.filter(codename="control_federation").exists()
)
self.assertTrue(group.permissions.filter(codename="create_invites").exists())
self.assertTrue(group.permissions.filter(codename="moderate_user").exists())
self.assertTrue(group.permissions.filter(codename="moderate_post").exists())
self.assertTrue(group.permissions.filter(codename="edit_book").exists())
group = Group.objects.get(name="moderator")
self.assertTrue(group.permissions.filter(codename="set_user_group").exists())
self.assertTrue(
group.permissions.filter(codename="control_federation").exists()
)
self.assertTrue(group.permissions.filter(codename="create_invites").exists())
self.assertTrue(group.permissions.filter(codename="moderate_user").exists())
self.assertTrue(group.permissions.filter(codename="moderate_post").exists())
self.assertTrue(group.permissions.filter(codename="edit_book").exists())
group = Group.objects.get(name="editor")
self.assertTrue(group.permissions.filter(codename="edit_book").exists())
def test_init_connectors(self):
"""Outside data sources"""
initdb.init_connectors()
self.assertTrue(
models.Connector.objects.filter(identifier="bookwyrm.social").exists()
)
self.assertTrue(
models.Connector.objects.filter(identifier="inventaire.io").exists()
)
self.assertTrue(
models.Connector.objects.filter(identifier="openlibrary.org").exists()
)
def test_init_settings(self):
"""Create the settings file"""
initdb.init_settings()
settings = models.SiteSettings.objects.get()
self.assertEqual(settings.name, "BookWyrm")
def test_init_link_domains(self):
"""Common trusted domains for links"""
initdb.init_link_domains()
self.assertTrue(
models.LinkDomain.objects.filter(
status="approved", domain="standardebooks.org"
).exists()
)
self.assertTrue(
models.LinkDomain.objects.filter(
status="approved", domain="theanarchistlibrary.org"
).exists()
)
def test_command_no_args(self):
"""command line calls"""
command = initdb.Command()
command.handle()
# everything should have been called
self.assertEqual(Group.objects.count(), 3)
self.assertTrue(Permission.objects.exists())
self.assertEqual(models.Connector.objects.count(), 3)
self.assertEqual(models.FederatedServer.objects.count(), 2)
self.assertEqual(models.SiteSettings.objects.count(), 1)
self.assertEqual(models.LinkDomain.objects.count(), 5)
def test_command_with_args(self):
"""command line calls"""
command = initdb.Command()
command.handle(limit="group")
# everything should have been called
self.assertEqual(Group.objects.count(), 3)
self.assertEqual(models.Connector.objects.count(), 0)
self.assertEqual(models.FederatedServer.objects.count(), 0)
self.assertEqual(models.SiteSettings.objects.count(), 0)
self.assertEqual(models.LinkDomain.objects.count(), 0)
def test_command_invalid_args(self):
"""command line calls"""
command = initdb.Command()
with self.assertRaises(Exception):
command.handle(limit="sdkfjhsdkjf")

View file

@ -1,4 +1,5 @@
""" test for app action functionality """ """ test for app action functionality """
import os
import json import json
from unittest.mock import patch from unittest.mock import patch
@ -207,3 +208,6 @@ class FederationViews(TestCase):
created = models.FederatedServer.objects.get(server_name="server.name") created = models.FederatedServer.objects.get(server_name="server.name")
self.assertEqual(created.status, "blocked") self.assertEqual(created.status, "blocked")
self.assertEqual(created.notes, "https://explanation.url") self.assertEqual(created.notes, "https://explanation.url")
# remove file.json after test
os.remove("file.json")

View file

@ -4,7 +4,7 @@ from django.template.response import TemplateResponse
from django.test import TestCase from django.test import TestCase
from django.test.client import RequestFactory from django.test.client import RequestFactory
from bookwyrm import models, views from bookwyrm import forms, models, views
from bookwyrm.tests.validate_html import validate_html from bookwyrm.tests.validate_html import validate_html
@ -39,3 +39,35 @@ class IPBlocklistViews(TestCase):
self.assertIsInstance(result, TemplateResponse) self.assertIsInstance(result, TemplateResponse)
validate_html(result.render()) validate_html(result.render())
self.assertEqual(result.status_code, 200) self.assertEqual(result.status_code, 200)
def test_blocklist_page_post(self):
"""there are so many views, this just makes sure it LOADS"""
view = views.IPBlocklist.as_view()
form = forms.IPBlocklistForm()
form.data["address"] = "0.0.0.0"
request = self.factory.post("", form.data)
request.user = self.local_user
request.user.is_superuser = True
result = view(request)
self.assertIsInstance(result, TemplateResponse)
validate_html(result.render())
self.assertEqual(result.status_code, 200)
block = models.IPBlocklist.objects.get()
self.assertEqual(block.address, "0.0.0.0")
self.assertTrue(block.is_active)
def test_blocklist_page_delete(self):
"""there are so many views, this just makes sure it LOADS"""
block = models.IPBlocklist.objects.create(address="0.0.0.0")
view = views.IPBlocklist.as_view()
request = self.factory.post("")
request.user = self.local_user
request.user.is_superuser = True
view(request, block.id)
self.assertFalse(models.IPBlocklist.objects.exists())

View file

@ -89,6 +89,14 @@ class ReportViews(TestCase):
self.assertEqual(comment.note, "hi") self.assertEqual(comment.note, "hi")
self.assertEqual(comment.report, report) self.assertEqual(comment.report, report)
def test_report_modal_view(self):
"""a user reports another user"""
request = self.factory.get("")
request.user = self.local_user
result = views.Report.as_view()(request, self.local_user.id)
validate_html(result.render())
def test_make_report(self): def test_make_report(self):
"""a user reports another user""" """a user reports another user"""
form = forms.ReportForm() form = forms.ReportForm()
@ -103,6 +111,30 @@ class ReportViews(TestCase):
self.assertEqual(report.reporter, self.local_user) self.assertEqual(report.reporter, self.local_user)
self.assertEqual(report.user, self.rat) self.assertEqual(report.user, self.rat)
def test_report_link(self):
"""a user reports a link as spam"""
book = models.Edition.objects.create(title="hi")
link = models.FileLink.objects.create(
book=book, added_by=self.local_user, url="https://skdjfs.sdf"
)
domain = link.domain
domain.status = "approved"
domain.save()
form = forms.ReportForm()
form.data["reporter"] = self.local_user.id
form.data["user"] = self.rat.id
form.data["links"] = link.id
request = self.factory.post("", form.data)
request.user = self.local_user
views.Report.as_view()(request)
report = models.Report.objects.get()
domain.refresh_from_db()
self.assertEqual(report.links.first().id, link.id)
self.assertEqual(domain.status, "pending")
def test_resolve_report(self): def test_resolve_report(self):
"""toggle report resolution status""" """toggle report resolution status"""
report = models.Report.objects.create(reporter=self.local_user, user=self.rat) report = models.Report.objects.create(reporter=self.local_user, user=self.rat)

View file

@ -118,6 +118,7 @@ class InboxAdd(TestCase):
"type": "ListItem", "type": "ListItem",
"book": self.book.remote_id, "book": self.book.remote_id,
"id": "https://example.com/listbook/6189", "id": "https://example.com/listbook/6189",
"notes": "hi hello",
"order": 1, "order": 1,
}, },
"target": "https://example.com/user/mouse/list/to-read", "target": "https://example.com/user/mouse/list/to-read",
@ -130,3 +131,4 @@ class InboxAdd(TestCase):
self.assertEqual(booklist.name, "Test List") self.assertEqual(booklist.name, "Test List")
self.assertEqual(booklist.books.first(), self.book) self.assertEqual(booklist.books.first(), self.book)
self.assertEqual(listitem.remote_id, "https://example.com/listbook/6189") self.assertEqual(listitem.remote_id, "https://example.com/listbook/6189")
self.assertEqual(listitem.notes, "hi hello")

View file

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

View file

@ -0,0 +1,129 @@
""" test for app action functionality """
import json
from unittest.mock import patch
from django.contrib.auth.models import AnonymousUser
from django.template.response import TemplateResponse
from django.test import TestCase
from django.test.client import RequestFactory
from bookwyrm import models, views
from bookwyrm.tests.validate_html import validate_html
# pylint: disable=unused-argument
class ListViews(TestCase):
"""list view"""
def setUp(self):
"""we need basic test data and mocks"""
self.factory = RequestFactory()
with patch("bookwyrm.suggested_users.rerank_suggestions_task.delay"), patch(
"bookwyrm.activitystreams.populate_stream_task.delay"
), patch("bookwyrm.lists_stream.populate_lists_task.delay"):
self.local_user = models.User.objects.create_user(
"mouse@local.com",
"mouse@mouse.com",
"mouseword",
local=True,
localname="mouse",
remote_id="https://example.com/users/mouse",
)
work = models.Work.objects.create(title="Work")
self.book = models.Edition.objects.create(
title="Example Edition",
remote_id="https://example.com/book/1",
parent_work=work,
)
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
self.list = models.List.objects.create(
name="Test List", user=self.local_user
)
self.anonymous_user = AnonymousUser
self.anonymous_user.is_authenticated = False
models.SiteSettings.objects.create()
def test_curate_page(self):
"""there are so many views, this just makes sure it LOADS"""
view = views.Curate.as_view()
request = self.factory.get("")
request.user = self.local_user
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
models.ListItem.objects.create(
book_list=self.list,
user=self.local_user,
book=self.book,
approved=False,
order=1,
)
result = view(request, self.list.id)
self.assertIsInstance(result, TemplateResponse)
validate_html(result.render())
self.assertEqual(result.status_code, 200)
request.user = self.anonymous_user
result = view(request, self.list.id)
self.assertEqual(result.status_code, 302)
def test_curate_approve(self):
"""approve a pending item"""
view = views.Curate.as_view()
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
pending = models.ListItem.objects.create(
book_list=self.list,
user=self.local_user,
book=self.book,
approved=False,
order=1,
)
request = self.factory.post(
"",
{"item": pending.id, "approved": "true"},
)
request.user = self.local_user
with patch(
"bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"
) as mock:
view(request, self.list.id)
self.assertEqual(mock.call_count, 2)
activity = json.loads(mock.call_args[1]["args"][1])
self.assertEqual(activity["type"], "Add")
self.assertEqual(activity["actor"], self.local_user.remote_id)
self.assertEqual(activity["target"], self.list.remote_id)
pending.refresh_from_db()
self.assertEqual(self.list.books.count(), 1)
self.assertEqual(self.list.listitem_set.first(), pending)
self.assertTrue(pending.approved)
def test_curate_reject(self):
"""approve a pending item"""
view = views.Curate.as_view()
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
pending = models.ListItem.objects.create(
book_list=self.list,
user=self.local_user,
book=self.book,
approved=False,
order=1,
)
request = self.factory.post(
"",
{
"item": pending.id,
"approved": "false",
},
)
request.user = self.local_user
view(request, self.list.id)
self.assertFalse(self.list.books.exists())
self.assertFalse(models.ListItem.objects.exists())

View file

@ -0,0 +1,89 @@
""" test for app action functionality """
from unittest.mock import patch
from django.contrib.auth.models import AnonymousUser
from django.http.response import Http404
from django.template.response import TemplateResponse
from django.test import TestCase
from django.test.client import RequestFactory
from bookwyrm import models, views
from bookwyrm.tests.validate_html import validate_html
# pylint: disable=unused-argument
class ListViews(TestCase):
"""list view"""
def setUp(self):
"""we need basic test data and mocks"""
self.factory = RequestFactory()
with patch("bookwyrm.suggested_users.rerank_suggestions_task.delay"), patch(
"bookwyrm.activitystreams.populate_stream_task.delay"
), patch("bookwyrm.lists_stream.populate_lists_task.delay"):
self.local_user = models.User.objects.create_user(
"mouse@local.com",
"mouse@mouse.com",
"mouseword",
local=True,
localname="mouse",
remote_id="https://example.com/users/mouse",
)
work = models.Work.objects.create(title="Work")
self.book = models.Edition.objects.create(
title="Example Edition",
remote_id="https://example.com/book/1",
parent_work=work,
)
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
self.list = models.List.objects.create(
name="Test List", user=self.local_user
)
self.anonymous_user = AnonymousUser
self.anonymous_user.is_authenticated = False
models.SiteSettings.objects.create()
def test_embed_call_without_key(self):
"""there are so many views, this just makes sure it DOESNT load"""
view = views.unsafe_embed_list
request = self.factory.get("")
request.user = self.anonymous_user
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
models.ListItem.objects.create(
book_list=self.list,
user=self.local_user,
book=self.book,
approved=True,
order=1,
)
with patch("bookwyrm.views.list.list.is_api_request") as is_api:
is_api.return_value = False
with self.assertRaises(Http404):
view(request, self.list.id, "")
def test_embed_call_with_key(self):
"""there are so many views, this just makes sure it LOADS"""
view = views.unsafe_embed_list
request = self.factory.get("")
request.user = self.anonymous_user
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
models.ListItem.objects.create(
book_list=self.list,
user=self.local_user,
book=self.book,
approved=True,
order=1,
)
embed_key = str(self.list.embed_key.hex)
with patch("bookwyrm.views.list.list.is_api_request") as is_api:
is_api.return_value = False
result = view(request, self.list.id, embed_key)
self.assertIsInstance(result, TemplateResponse)
validate_html(result.render())
self.assertEqual(result.status_code, 200)

View file

@ -4,14 +4,19 @@ from unittest.mock import patch
from django.contrib.auth.models import AnonymousUser from django.contrib.auth.models import AnonymousUser
from django.core.exceptions import PermissionDenied from django.core.exceptions import PermissionDenied
from django.template.response import TemplateResponse
from django.test import TestCase from django.test import TestCase
from django.test.client import RequestFactory from django.test.client import RequestFactory
from bookwyrm import models, views from bookwyrm import models, views
from bookwyrm.activitypub import ActivitypubResponse
from bookwyrm.tests.validate_html import validate_html
# pylint: disable=unused-argument # pylint: disable=unused-argument
class ListActionViews(TestCase): # pylint: disable=too-many-public-methods
"""tag views""" class ListViews(TestCase):
"""list view"""
def setUp(self): def setUp(self):
"""we need basic test data and mocks""" """we need basic test data and mocks"""
@ -35,7 +40,6 @@ class ListActionViews(TestCase):
localname="rat", localname="rat",
remote_id="https://example.com/users/rat", remote_id="https://example.com/users/rat",
) )
work = models.Work.objects.create(title="Work") work = models.Work.objects.create(title="Work")
self.book = models.Edition.objects.create( self.book = models.Edition.objects.create(
title="Example Edition", title="Example Edition",
@ -67,8 +71,194 @@ class ListActionViews(TestCase):
) )
self.anonymous_user = AnonymousUser self.anonymous_user = AnonymousUser
self.anonymous_user.is_authenticated = False self.anonymous_user.is_authenticated = False
models.SiteSettings.objects.create() models.SiteSettings.objects.create()
def test_list_page(self):
"""there are so many views, this just makes sure it LOADS"""
view = views.List.as_view()
request = self.factory.get("")
request.user = self.local_user
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
models.ListItem.objects.create(
book_list=self.list,
user=self.local_user,
book=self.book,
approved=True,
order=1,
)
with patch("bookwyrm.views.list.list.is_api_request") as is_api:
is_api.return_value = False
result = view(request, self.list.id)
self.assertIsInstance(result, TemplateResponse)
validate_html(result.render())
self.assertEqual(result.status_code, 200)
def test_list_page_with_query(self):
"""searching for a book to add"""
view = views.List.as_view()
request = self.factory.get("", {"q": "Example Edition"})
request.user = self.local_user
with patch("bookwyrm.views.list.list.is_api_request") as is_api:
is_api.return_value = False
result = view(request, self.list.id)
self.assertIsInstance(result, TemplateResponse)
validate_html(result.render())
self.assertEqual(result.status_code, 200)
def test_list_page_sorted(self):
"""there are so many views, this just makes sure it LOADS"""
view = views.List.as_view()
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
for (i, book) in enumerate([self.book, self.book_two, self.book_three]):
models.ListItem.objects.create(
book_list=self.list,
user=self.local_user,
book=book,
approved=True,
order=i + 1,
)
request = self.factory.get("/?sort_by=order")
request.user = self.local_user
with patch("bookwyrm.views.list.list.is_api_request") as is_api:
is_api.return_value = False
result = view(request, self.list.id)
self.assertIsInstance(result, TemplateResponse)
validate_html(result.render())
self.assertEqual(result.status_code, 200)
request = self.factory.get("/?sort_by=title")
request.user = self.local_user
with patch("bookwyrm.views.list.list.is_api_request") as is_api:
is_api.return_value = False
result = view(request, self.list.id)
self.assertIsInstance(result, TemplateResponse)
validate_html(result.render())
self.assertEqual(result.status_code, 200)
request = self.factory.get("/?sort_by=rating")
request.user = self.local_user
with patch("bookwyrm.views.list.list.is_api_request") as is_api:
is_api.return_value = False
result = view(request, self.list.id)
self.assertIsInstance(result, TemplateResponse)
validate_html(result.render())
self.assertEqual(result.status_code, 200)
request = self.factory.get("/?sort_by=sdkfh")
request.user = self.local_user
with patch("bookwyrm.views.list.list.is_api_request") as is_api:
is_api.return_value = False
result = view(request, self.list.id)
self.assertIsInstance(result, TemplateResponse)
validate_html(result.render())
self.assertEqual(result.status_code, 200)
def test_list_page_empty(self):
"""there are so many views, this just makes sure it LOADS"""
view = views.List.as_view()
request = self.factory.get("")
request.user = self.local_user
with patch("bookwyrm.views.list.list.is_api_request") as is_api:
is_api.return_value = False
result = view(request, self.list.id)
self.assertIsInstance(result, TemplateResponse)
validate_html(result.render())
self.assertEqual(result.status_code, 200)
def test_list_page_logged_out(self):
"""there are so many views, this just makes sure it LOADS"""
view = views.List.as_view()
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
models.ListItem.objects.create(
book_list=self.list,
user=self.local_user,
book=self.book,
approved=True,
order=1,
)
request = self.factory.get("")
request.user = self.anonymous_user
with patch("bookwyrm.views.list.list.is_api_request") as is_api:
is_api.return_value = False
result = view(request, self.list.id)
self.assertIsInstance(result, TemplateResponse)
validate_html(result.render())
self.assertEqual(result.status_code, 200)
def test_list_page_json_view(self):
"""there are so many views, this just makes sure it LOADS"""
view = views.List.as_view()
request = self.factory.get("")
request.user = self.local_user
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
models.ListItem.objects.create(
book_list=self.list,
user=self.local_user,
book=self.book,
approved=True,
order=1,
)
with patch("bookwyrm.views.list.list.is_api_request") as is_api:
is_api.return_value = True
result = view(request, self.list.id)
self.assertIsInstance(result, ActivitypubResponse)
self.assertEqual(result.status_code, 200)
def test_list_page_json_view_page(self):
"""there are so many views, this just makes sure it LOADS"""
view = views.List.as_view()
request = self.factory.get("")
request.user = self.local_user
request = self.factory.get("/?page=1")
request.user = self.local_user
with patch("bookwyrm.views.list.list.is_api_request") as is_api:
is_api.return_value = True
result = view(request, self.list.id)
self.assertIsInstance(result, ActivitypubResponse)
self.assertEqual(result.status_code, 200)
def test_list_edit(self):
"""edit a list"""
view = views.List.as_view()
request = self.factory.post(
"",
{
"name": "New Name",
"description": "wow",
"privacy": "direct",
"curation": "curated",
"user": self.local_user.id,
},
)
request.user = self.local_user
with patch(
"bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"
) as mock:
result = view(request, self.list.id)
self.assertEqual(mock.call_count, 1)
activity = json.loads(mock.call_args[1]["args"][1])
self.assertEqual(activity["type"], "Update")
self.assertEqual(activity["actor"], self.local_user.remote_id)
self.assertEqual(activity["object"]["id"], self.list.remote_id)
self.assertEqual(result.status_code, 302)
self.list.refresh_from_db()
self.assertEqual(self.list.name, "New Name")
self.assertEqual(self.list.description, "wow")
self.assertEqual(self.list.privacy, "direct")
self.assertEqual(self.list.curation, "curated")
def test_delete_list(self): def test_delete_list(self):
"""delete an entire list""" """delete an entire list"""
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"): with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
@ -110,73 +300,14 @@ class ListActionViews(TestCase):
with self.assertRaises(PermissionDenied): with self.assertRaises(PermissionDenied):
views.delete_list(request, self.list.id) views.delete_list(request, self.list.id)
def test_curate_approve(self):
"""approve a pending item"""
view = views.Curate.as_view()
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
pending = models.ListItem.objects.create(
book_list=self.list,
user=self.local_user,
book=self.book,
approved=False,
order=1,
)
request = self.factory.post(
"",
{"item": pending.id, "approved": "true"},
)
request.user = self.local_user
with patch(
"bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"
) as mock:
view(request, self.list.id)
self.assertEqual(mock.call_count, 2)
activity = json.loads(mock.call_args[1]["args"][1])
self.assertEqual(activity["type"], "Add")
self.assertEqual(activity["actor"], self.local_user.remote_id)
self.assertEqual(activity["target"], self.list.remote_id)
pending.refresh_from_db()
self.assertEqual(self.list.books.count(), 1)
self.assertEqual(self.list.listitem_set.first(), pending)
self.assertTrue(pending.approved)
def test_curate_reject(self):
"""approve a pending item"""
view = views.Curate.as_view()
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
pending = models.ListItem.objects.create(
book_list=self.list,
user=self.local_user,
book=self.book,
approved=False,
order=1,
)
request = self.factory.post(
"",
{
"item": pending.id,
"approved": "false",
},
)
request.user = self.local_user
view(request, self.list.id)
self.assertFalse(self.list.books.exists())
self.assertFalse(models.ListItem.objects.exists())
def test_add_book(self): def test_add_book(self):
"""put a book on a list""" """put a book on a list"""
request = self.factory.post( request = self.factory.post(
"", "",
{ {
"book": self.book.id, "book": self.book.id,
"list": self.list.id, "book_list": self.list.id,
"user": self.local_user.id,
}, },
) )
request.user = self.local_user request.user = self.local_user
@ -184,7 +315,7 @@ class ListActionViews(TestCase):
with patch( with patch(
"bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"
) as mock: ) as mock:
views.list.add_book(request) views.add_book(request)
self.assertEqual(mock.call_count, 1) self.assertEqual(mock.call_count, 1)
activity = json.loads(mock.call_args[1]["args"][1]) activity = json.loads(mock.call_args[1]["args"][1])
self.assertEqual(activity["type"], "Add") self.assertEqual(activity["type"], "Add")
@ -205,7 +336,8 @@ class ListActionViews(TestCase):
"", "",
{ {
"book": self.book.id, "book": self.book.id,
"list": self.list.id, "book_list": self.list.id,
"user": self.local_user.id,
}, },
) )
request_one.user = self.local_user request_one.user = self.local_user
@ -214,13 +346,14 @@ class ListActionViews(TestCase):
"", "",
{ {
"book": self.book_two.id, "book": self.book_two.id,
"list": self.list.id, "book_list": self.list.id,
"user": self.local_user.id,
}, },
) )
request_two.user = self.local_user request_two.user = self.local_user
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"): with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
views.list.add_book(request_one) views.add_book(request_one)
views.list.add_book(request_two) views.add_book(request_two)
items = self.list.listitem_set.order_by("order").all() items = self.list.listitem_set.order_by("order").all()
self.assertEqual(items[0].book, self.book) self.assertEqual(items[0].book, self.book)
@ -237,7 +370,8 @@ class ListActionViews(TestCase):
"", "",
{ {
"book": self.book.id, "book": self.book.id,
"list": self.list.id, "book_list": self.list.id,
"user": self.local_user.id,
}, },
) )
request_one.user = self.local_user request_one.user = self.local_user
@ -246,7 +380,8 @@ class ListActionViews(TestCase):
"", "",
{ {
"book": self.book_two.id, "book": self.book_two.id,
"list": self.list.id, "book_list": self.list.id,
"user": self.local_user.id,
}, },
) )
request_two.user = self.local_user request_two.user = self.local_user
@ -255,15 +390,16 @@ class ListActionViews(TestCase):
"", "",
{ {
"book": self.book_three.id, "book": self.book_three.id,
"list": self.list.id, "book_list": self.list.id,
"user": self.local_user.id,
}, },
) )
request_three.user = self.local_user request_three.user = self.local_user
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"): with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
views.list.add_book(request_one) views.add_book(request_one)
views.list.add_book(request_two) views.add_book(request_two)
views.list.add_book(request_three) views.add_book(request_three)
items = self.list.listitem_set.order_by("order").all() items = self.list.listitem_set.order_by("order").all()
self.assertEqual(items[0].book, self.book) self.assertEqual(items[0].book, self.book)
@ -276,7 +412,7 @@ class ListActionViews(TestCase):
remove_request = self.factory.post("", {"item": items[1].id}) remove_request = self.factory.post("", {"item": items[1].id})
remove_request.user = self.local_user remove_request.user = self.local_user
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"): with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
views.list.remove_book(remove_request, self.list.id) views.remove_book(remove_request, self.list.id)
items = self.list.listitem_set.order_by("order").all() items = self.list.listitem_set.order_by("order").all()
self.assertEqual(items[0].book, self.book) self.assertEqual(items[0].book, self.book)
self.assertEqual(items[1].book, self.book_three) self.assertEqual(items[1].book, self.book_three)
@ -293,7 +429,8 @@ class ListActionViews(TestCase):
"", "",
{ {
"book": self.book_three.id, "book": self.book_three.id,
"list": self.list.id, "book_list": self.list.id,
"user": self.local_user.id,
}, },
) )
request.user = self.local_user request.user = self.local_user
@ -312,7 +449,7 @@ class ListActionViews(TestCase):
approved=False, approved=False,
order=2, order=2,
) )
views.list.add_book(request) views.add_book(request)
items = self.list.listitem_set.order_by("order").all() items = self.list.listitem_set.order_by("order").all()
self.assertEqual(items[0].book, self.book) self.assertEqual(items[0].book, self.book)
@ -403,7 +540,8 @@ class ListActionViews(TestCase):
"", "",
{ {
"book": self.book.id, "book": self.book.id,
"list": self.list.id, "book_list": self.list.id,
"user": self.local_user.id,
}, },
) )
request_one.user = self.local_user request_one.user = self.local_user
@ -412,7 +550,8 @@ class ListActionViews(TestCase):
"", "",
{ {
"book": self.book_two.id, "book": self.book_two.id,
"list": self.list.id, "book_list": self.list.id,
"user": self.local_user.id,
}, },
) )
request_two.user = self.local_user request_two.user = self.local_user
@ -421,15 +560,16 @@ class ListActionViews(TestCase):
"", "",
{ {
"book": self.book_three.id, "book": self.book_three.id,
"list": self.list.id, "book_list": self.list.id,
"user": self.local_user.id,
}, },
) )
request_three.user = self.local_user request_three.user = self.local_user
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"): with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
views.list.add_book(request_one) views.add_book(request_one)
views.list.add_book(request_two) views.add_book(request_two)
views.list.add_book(request_three) views.add_book(request_three)
items = self.list.listitem_set.order_by("order").all() items = self.list.listitem_set.order_by("order").all()
self.assertEqual(items[0].book, self.book) self.assertEqual(items[0].book, self.book)
@ -442,7 +582,7 @@ class ListActionViews(TestCase):
set_position_request = self.factory.post("", {"position": 1}) set_position_request = self.factory.post("", {"position": 1})
set_position_request.user = self.local_user set_position_request.user = self.local_user
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"): with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
views.list.set_book_position(set_position_request, items[2].id) views.set_book_position(set_position_request, items[2].id)
items = self.list.listitem_set.order_by("order").all() items = self.list.listitem_set.order_by("order").all()
self.assertEqual(items[0].book, self.book_three) self.assertEqual(items[0].book, self.book_three)
self.assertEqual(items[1].book, self.book) self.assertEqual(items[1].book, self.book)
@ -459,7 +599,8 @@ class ListActionViews(TestCase):
"", "",
{ {
"book": self.book.id, "book": self.book.id,
"list": self.list.id, "book_list": self.list.id,
"user": self.rat.id,
}, },
) )
request.user = self.rat request.user = self.rat
@ -467,7 +608,7 @@ class ListActionViews(TestCase):
with patch( with patch(
"bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"
) as mock: ) as mock:
views.list.add_book(request) views.add_book(request)
self.assertEqual(mock.call_count, 1) self.assertEqual(mock.call_count, 1)
activity = json.loads(mock.call_args[1]["args"][1]) activity = json.loads(mock.call_args[1]["args"][1])
self.assertEqual(activity["type"], "Add") self.assertEqual(activity["type"], "Add")
@ -487,7 +628,8 @@ class ListActionViews(TestCase):
"", "",
{ {
"book": self.book.id, "book": self.book.id,
"list": self.list.id, "book_list": self.list.id,
"user": self.rat.id,
}, },
) )
request.user = self.rat request.user = self.rat
@ -495,7 +637,7 @@ class ListActionViews(TestCase):
with patch( with patch(
"bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"
) as mock: ) as mock:
views.list.add_book(request) views.add_book(request)
self.assertEqual(mock.call_count, 1) self.assertEqual(mock.call_count, 1)
activity = json.loads(mock.call_args[1]["args"][1]) activity = json.loads(mock.call_args[1]["args"][1])
@ -519,7 +661,8 @@ class ListActionViews(TestCase):
"", "",
{ {
"book": self.book.id, "book": self.book.id,
"list": self.list.id, "book_list": self.list.id,
"user": self.local_user.id,
}, },
) )
request.user = self.local_user request.user = self.local_user
@ -527,7 +670,7 @@ class ListActionViews(TestCase):
with patch( with patch(
"bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"
) as mock: ) as mock:
views.list.add_book(request) views.add_book(request)
self.assertEqual(mock.call_count, 1) self.assertEqual(mock.call_count, 1)
activity = json.loads(mock.call_args[1]["args"][1]) activity = json.loads(mock.call_args[1]["args"][1])
self.assertEqual(activity["type"], "Add") self.assertEqual(activity["type"], "Add")
@ -539,6 +682,23 @@ class ListActionViews(TestCase):
self.assertEqual(item.user, self.local_user) self.assertEqual(item.user, self.local_user)
self.assertTrue(item.approved) self.assertTrue(item.approved)
def test_add_book_permission_denied(self):
"""you can't add to that list"""
self.list.curation = "closed"
self.list.save(broadcast=False)
request = self.factory.post(
"",
{
"book": self.book.id,
"book_list": self.list.id,
"user": self.rat.id,
},
)
request.user = self.rat
with self.assertRaises(PermissionDenied):
views.add_book(request)
def test_remove_book(self): def test_remove_book(self):
"""take an item off a list""" """take an item off a list"""
@ -555,7 +715,7 @@ class ListActionViews(TestCase):
request.user = self.local_user request.user = self.local_user
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"): with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
views.list.remove_book(request, self.list.id) views.remove_book(request, self.list.id)
self.assertFalse(self.list.listitem_set.exists()) self.assertFalse(self.list.listitem_set.exists())
def test_remove_book_unauthorized(self): def test_remove_book_unauthorized(self):
@ -569,7 +729,7 @@ class ListActionViews(TestCase):
request.user = self.rat request.user = self.rat
with self.assertRaises(PermissionDenied): with self.assertRaises(PermissionDenied):
views.list.remove_book(request, self.list.id) views.remove_book(request, self.list.id)
self.assertTrue(self.list.listitem_set.exists()) self.assertTrue(self.list.listitem_set.exists())
def test_save_unsave_list(self): def test_save_unsave_list(self):

View file

@ -0,0 +1,70 @@
""" test for app action functionality """
from unittest.mock import patch
from django.test import TestCase
from django.test.client import RequestFactory
from bookwyrm import models, views
# pylint: disable=unused-argument
# pylint: disable=too-many-public-methods
class ListItemViews(TestCase):
"""list view"""
def setUp(self):
"""we need basic test data and mocks"""
self.factory = RequestFactory()
with patch("bookwyrm.suggested_users.rerank_suggestions_task.delay"), patch(
"bookwyrm.activitystreams.populate_stream_task.delay"
), patch("bookwyrm.lists_stream.populate_lists_task.delay"):
self.local_user = models.User.objects.create_user(
"mouse@local.com",
"mouse@mouse.com",
"mouseword",
local=True,
localname="mouse",
remote_id="https://example.com/users/mouse",
)
work = models.Work.objects.create(title="Work")
self.book = models.Edition.objects.create(
title="Example Edition",
remote_id="https://example.com/book/1",
parent_work=work,
)
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
self.list = models.List.objects.create(
name="Test List", user=self.local_user
)
models.SiteSettings.objects.create()
def test_add_list_item_notes(self):
"""there are so many views, this just makes sure it LOADS"""
view = views.ListItem.as_view()
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
item = models.ListItem.objects.create(
book_list=self.list,
user=self.local_user,
book=self.book,
approved=True,
order=1,
)
request = self.factory.post(
"",
{
"book_list": self.list.id,
"book": self.book.id,
"user": self.local_user.id,
"notes": "beep boop",
},
)
request.user = self.local_user
with patch(
"bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"
) as mock:
view(request, self.list.id, item.id)
self.assertEqual(mock.call_count, 1)
item.refresh_from_db()
self.assertEqual(item.notes, "beep boop")

View file

@ -0,0 +1,161 @@
""" test for app action functionality """
import json
from unittest.mock import patch
from django.contrib.auth.models import AnonymousUser
from django.template.response import TemplateResponse
from django.test import TestCase
from django.test.client import RequestFactory
from bookwyrm import models, views
from bookwyrm.tests.validate_html import validate_html
# pylint: disable=unused-argument
class ListViews(TestCase):
"""lists of lists"""
def setUp(self):
"""we need basic test data and mocks"""
self.factory = RequestFactory()
with patch("bookwyrm.suggested_users.rerank_suggestions_task.delay"), patch(
"bookwyrm.activitystreams.populate_stream_task.delay"
), patch("bookwyrm.lists_stream.populate_lists_task.delay"):
self.local_user = models.User.objects.create_user(
"mouse@local.com",
"mouse@mouse.com",
"mouseword",
local=True,
localname="mouse",
remote_id="https://example.com/users/mouse",
)
self.anonymous_user = AnonymousUser
self.anonymous_user.is_authenticated = False
models.SiteSettings.objects.create()
@patch("bookwyrm.lists_stream.ListsStream.get_list_stream")
def test_lists_page(self, _):
"""there are so many views, this just makes sure it LOADS"""
view = views.Lists.as_view()
with patch(
"bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"
), patch("bookwyrm.lists_stream.add_list_task.delay"):
models.List.objects.create(name="Public list", user=self.local_user)
models.List.objects.create(
name="Private list", privacy="direct", user=self.local_user
)
request = self.factory.get("")
request.user = self.local_user
result = view(request)
self.assertIsInstance(result, TemplateResponse)
validate_html(result.render())
self.assertEqual(result.status_code, 200)
request.user = self.anonymous_user
result = view(request)
self.assertIsInstance(result, TemplateResponse)
validate_html(result.render())
self.assertEqual(result.status_code, 200)
def test_saved_lists_page(self):
"""there are so many views, this just makes sure it LOADS"""
view = views.SavedLists.as_view()
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
booklist = models.List.objects.create(
name="Public list", user=self.local_user
)
models.List.objects.create(
name="Private list", privacy="direct", user=self.local_user
)
self.local_user.saved_lists.add(booklist)
request = self.factory.get("")
request.user = self.local_user
result = view(request)
self.assertIsInstance(result, TemplateResponse)
validate_html(result.render())
self.assertEqual(result.status_code, 200)
self.assertEqual(result.context_data["lists"].object_list, [booklist])
def test_saved_lists_page_empty(self):
"""there are so many views, this just makes sure it LOADS"""
view = views.SavedLists.as_view()
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
models.List.objects.create(name="Public list", user=self.local_user)
models.List.objects.create(
name="Private list", privacy="direct", user=self.local_user
)
request = self.factory.get("")
request.user = self.local_user
result = view(request)
self.assertIsInstance(result, TemplateResponse)
validate_html(result.render())
self.assertEqual(result.status_code, 200)
self.assertEqual(len(result.context_data["lists"].object_list), 0)
def test_saved_lists_page_logged_out(self):
"""logged out saved lists"""
view = views.SavedLists.as_view()
request = self.factory.get("")
request.user = self.anonymous_user
result = view(request)
self.assertEqual(result.status_code, 302)
def test_user_lists_page(self):
"""there are so many views, this just makes sure it LOADS"""
view = views.UserLists.as_view()
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
models.List.objects.create(name="Public list", user=self.local_user)
models.List.objects.create(
name="Private list", privacy="direct", user=self.local_user
)
request = self.factory.get("")
request.user = self.local_user
result = view(request, self.local_user.localname)
self.assertIsInstance(result, TemplateResponse)
validate_html(result.render())
self.assertEqual(result.status_code, 200)
def test_user_lists_page_logged_out(self):
"""there are so many views, this just makes sure it LOADS"""
view = views.UserLists.as_view()
request = self.factory.get("")
request.user = self.anonymous_user
result = view(request, self.local_user.username)
self.assertEqual(result.status_code, 302)
def test_lists_create(self):
"""create list view"""
view = views.Lists.as_view()
request = self.factory.post(
"",
{
"name": "A list",
"description": "wow",
"privacy": "unlisted",
"curation": "open",
"user": self.local_user.id,
},
)
request.user = self.local_user
with patch(
"bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"
) as mock:
result = view(request)
self.assertEqual(mock.call_count, 1)
activity = json.loads(mock.call_args[1]["args"][1])
self.assertEqual(activity["type"], "Create")
self.assertEqual(activity["actor"], self.local_user.remote_id)
self.assertEqual(result.status_code, 302)
new_list = models.List.objects.filter(name="A list").get()
self.assertEqual(new_list.description, "wow")
self.assertEqual(new_list.privacy, "unlisted")
self.assertEqual(new_list.curation, "open")

View file

@ -140,3 +140,14 @@ class AnnualSummary(TestCase):
self.assertIsInstance(result, TemplateResponse) self.assertIsInstance(result, TemplateResponse)
validate_html(result.render()) validate_html(result.render())
self.assertEqual(result.status_code, 200) self.assertEqual(result.status_code, 200)
def test_personal_annual_summary(self, *_):
"""redirect to unique user url"""
view = views.personal_annual_summary
request = self.factory.get("")
request.user = self.local_user
result = view(request, 2020)
self.assertEqual(result.status_code, 302)
self.assertEqual(result.url, "/user/mouse/2020-in-the-books")

View file

@ -1,438 +0,0 @@
""" test for app action functionality """
import json
from unittest.mock import patch
from django.contrib.auth.models import AnonymousUser
from django.http.response import Http404
from django.template.response import TemplateResponse
from django.test import TestCase
from django.test.client import RequestFactory
from bookwyrm import models, views
from bookwyrm.activitypub import ActivitypubResponse
from bookwyrm.tests.validate_html import validate_html
# pylint: disable=unused-argument
class ListViews(TestCase):
"""tag views"""
def setUp(self):
"""we need basic test data and mocks"""
self.factory = RequestFactory()
with patch("bookwyrm.suggested_users.rerank_suggestions_task.delay"), patch(
"bookwyrm.activitystreams.populate_stream_task.delay"
), patch("bookwyrm.lists_stream.populate_lists_task.delay"):
self.local_user = models.User.objects.create_user(
"mouse@local.com",
"mouse@mouse.com",
"mouseword",
local=True,
localname="mouse",
remote_id="https://example.com/users/mouse",
)
self.rat = models.User.objects.create_user(
"rat@local.com",
"rat@rat.com",
"ratword",
local=True,
localname="rat",
remote_id="https://example.com/users/rat",
)
work = models.Work.objects.create(title="Work")
self.book = models.Edition.objects.create(
title="Example Edition",
remote_id="https://example.com/book/1",
parent_work=work,
)
work_two = models.Work.objects.create(title="Labori")
self.book_two = models.Edition.objects.create(
title="Example Edition 2",
remote_id="https://example.com/book/2",
parent_work=work_two,
)
work_three = models.Work.objects.create(title="Trabajar")
self.book_three = models.Edition.objects.create(
title="Example Edition 3",
remote_id="https://example.com/book/3",
parent_work=work_three,
)
work_four = models.Work.objects.create(title="Travailler")
self.book_four = models.Edition.objects.create(
title="Example Edition 4",
remote_id="https://example.com/book/4",
parent_work=work_four,
)
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
self.list = models.List.objects.create(
name="Test List", user=self.local_user
)
self.anonymous_user = AnonymousUser
self.anonymous_user.is_authenticated = False
models.SiteSettings.objects.create()
@patch("bookwyrm.lists_stream.ListsStream.get_list_stream")
def test_lists_page(self, _):
"""there are so many views, this just makes sure it LOADS"""
view = views.Lists.as_view()
with patch(
"bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"
), patch("bookwyrm.lists_stream.add_list_task.delay"):
models.List.objects.create(name="Public list", user=self.local_user)
models.List.objects.create(
name="Private list", privacy="direct", user=self.local_user
)
request = self.factory.get("")
request.user = self.local_user
result = view(request)
self.assertIsInstance(result, TemplateResponse)
validate_html(result.render())
self.assertEqual(result.status_code, 200)
request.user = self.anonymous_user
result = view(request)
self.assertIsInstance(result, TemplateResponse)
validate_html(result.render())
self.assertEqual(result.status_code, 200)
def test_saved_lists_page(self):
"""there are so many views, this just makes sure it LOADS"""
view = views.SavedLists.as_view()
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
booklist = models.List.objects.create(
name="Public list", user=self.local_user
)
models.List.objects.create(
name="Private list", privacy="direct", user=self.local_user
)
self.local_user.saved_lists.add(booklist)
request = self.factory.get("")
request.user = self.local_user
result = view(request)
self.assertIsInstance(result, TemplateResponse)
validate_html(result.render())
self.assertEqual(result.status_code, 200)
self.assertEqual(result.context_data["lists"].object_list, [booklist])
def test_saved_lists_page_empty(self):
"""there are so many views, this just makes sure it LOADS"""
view = views.SavedLists.as_view()
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
models.List.objects.create(name="Public list", user=self.local_user)
models.List.objects.create(
name="Private list", privacy="direct", user=self.local_user
)
request = self.factory.get("")
request.user = self.local_user
result = view(request)
self.assertIsInstance(result, TemplateResponse)
validate_html(result.render())
self.assertEqual(result.status_code, 200)
self.assertEqual(len(result.context_data["lists"].object_list), 0)
def test_saved_lists_page_logged_out(self):
"""logged out saved lists"""
view = views.SavedLists.as_view()
request = self.factory.get("")
request.user = self.anonymous_user
result = view(request)
self.assertEqual(result.status_code, 302)
def test_lists_create(self):
"""create list view"""
view = views.Lists.as_view()
request = self.factory.post(
"",
{
"name": "A list",
"description": "wow",
"privacy": "unlisted",
"curation": "open",
"user": self.local_user.id,
},
)
request.user = self.local_user
with patch(
"bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"
) as mock:
result = view(request)
self.assertEqual(mock.call_count, 1)
activity = json.loads(mock.call_args[1]["args"][1])
self.assertEqual(activity["type"], "Create")
self.assertEqual(activity["actor"], self.local_user.remote_id)
self.assertEqual(result.status_code, 302)
new_list = models.List.objects.filter(name="A list").get()
self.assertEqual(new_list.description, "wow")
self.assertEqual(new_list.privacy, "unlisted")
self.assertEqual(new_list.curation, "open")
def test_list_page(self):
"""there are so many views, this just makes sure it LOADS"""
view = views.List.as_view()
request = self.factory.get("")
request.user = self.local_user
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
models.ListItem.objects.create(
book_list=self.list,
user=self.local_user,
book=self.book,
approved=True,
order=1,
)
with patch("bookwyrm.views.list.is_api_request") as is_api:
is_api.return_value = False
result = view(request, self.list.id)
self.assertIsInstance(result, TemplateResponse)
validate_html(result.render())
self.assertEqual(result.status_code, 200)
def test_list_page_sorted(self):
"""there are so many views, this just makes sure it LOADS"""
view = views.List.as_view()
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
for (i, book) in enumerate([self.book, self.book_two, self.book_three]):
models.ListItem.objects.create(
book_list=self.list,
user=self.local_user,
book=book,
approved=True,
order=i + 1,
)
request = self.factory.get("/?sort_by=order")
request.user = self.local_user
with patch("bookwyrm.views.list.is_api_request") as is_api:
is_api.return_value = False
result = view(request, self.list.id)
self.assertIsInstance(result, TemplateResponse)
validate_html(result.render())
self.assertEqual(result.status_code, 200)
request = self.factory.get("/?sort_by=title")
request.user = self.local_user
with patch("bookwyrm.views.list.is_api_request") as is_api:
is_api.return_value = False
result = view(request, self.list.id)
self.assertIsInstance(result, TemplateResponse)
validate_html(result.render())
self.assertEqual(result.status_code, 200)
request = self.factory.get("/?sort_by=rating")
request.user = self.local_user
with patch("bookwyrm.views.list.is_api_request") as is_api:
is_api.return_value = False
result = view(request, self.list.id)
self.assertIsInstance(result, TemplateResponse)
validate_html(result.render())
self.assertEqual(result.status_code, 200)
request = self.factory.get("/?sort_by=sdkfh")
request.user = self.local_user
with patch("bookwyrm.views.list.is_api_request") as is_api:
is_api.return_value = False
result = view(request, self.list.id)
self.assertIsInstance(result, TemplateResponse)
validate_html(result.render())
self.assertEqual(result.status_code, 200)
def test_list_page_empty(self):
"""there are so many views, this just makes sure it LOADS"""
view = views.List.as_view()
request = self.factory.get("")
request.user = self.local_user
with patch("bookwyrm.views.list.is_api_request") as is_api:
is_api.return_value = False
result = view(request, self.list.id)
self.assertIsInstance(result, TemplateResponse)
validate_html(result.render())
self.assertEqual(result.status_code, 200)
def test_list_page_logged_out(self):
"""there are so many views, this just makes sure it LOADS"""
view = views.List.as_view()
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
models.ListItem.objects.create(
book_list=self.list,
user=self.local_user,
book=self.book,
approved=True,
order=1,
)
request = self.factory.get("")
request.user = self.anonymous_user
with patch("bookwyrm.views.list.is_api_request") as is_api:
is_api.return_value = False
result = view(request, self.list.id)
self.assertIsInstance(result, TemplateResponse)
validate_html(result.render())
self.assertEqual(result.status_code, 200)
def test_list_page_json_view(self):
"""there are so many views, this just makes sure it LOADS"""
view = views.List.as_view()
request = self.factory.get("")
request.user = self.local_user
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
models.ListItem.objects.create(
book_list=self.list,
user=self.local_user,
book=self.book,
approved=True,
order=1,
)
with patch("bookwyrm.views.list.is_api_request") as is_api:
is_api.return_value = True
result = view(request, self.list.id)
self.assertIsInstance(result, ActivitypubResponse)
self.assertEqual(result.status_code, 200)
def test_list_page_json_view_page(self):
"""there are so many views, this just makes sure it LOADS"""
view = views.List.as_view()
request = self.factory.get("")
request.user = self.local_user
request = self.factory.get("/?page=1")
request.user = self.local_user
with patch("bookwyrm.views.list.is_api_request") as is_api:
is_api.return_value = True
result = view(request, self.list.id)
self.assertIsInstance(result, ActivitypubResponse)
self.assertEqual(result.status_code, 200)
def test_list_edit(self):
"""edit a list"""
view = views.List.as_view()
request = self.factory.post(
"",
{
"name": "New Name",
"description": "wow",
"privacy": "direct",
"curation": "curated",
"user": self.local_user.id,
},
)
request.user = self.local_user
with patch(
"bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"
) as mock:
result = view(request, self.list.id)
self.assertEqual(mock.call_count, 1)
activity = json.loads(mock.call_args[1]["args"][1])
self.assertEqual(activity["type"], "Update")
self.assertEqual(activity["actor"], self.local_user.remote_id)
self.assertEqual(activity["object"]["id"], self.list.remote_id)
self.assertEqual(result.status_code, 302)
self.list.refresh_from_db()
self.assertEqual(self.list.name, "New Name")
self.assertEqual(self.list.description, "wow")
self.assertEqual(self.list.privacy, "direct")
self.assertEqual(self.list.curation, "curated")
def test_curate_page(self):
"""there are so many views, this just makes sure it LOADS"""
view = views.Curate.as_view()
request = self.factory.get("")
request.user = self.local_user
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
models.ListItem.objects.create(
book_list=self.list,
user=self.local_user,
book=self.book,
approved=False,
order=1,
)
result = view(request, self.list.id)
self.assertIsInstance(result, TemplateResponse)
validate_html(result.render())
self.assertEqual(result.status_code, 200)
request.user = self.anonymous_user
result = view(request, self.list.id)
self.assertEqual(result.status_code, 302)
def test_user_lists_page(self):
"""there are so many views, this just makes sure it LOADS"""
view = views.UserLists.as_view()
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
models.List.objects.create(name="Public list", user=self.local_user)
models.List.objects.create(
name="Private list", privacy="direct", user=self.local_user
)
request = self.factory.get("")
request.user = self.local_user
result = view(request, self.local_user.localname)
self.assertIsInstance(result, TemplateResponse)
validate_html(result.render())
self.assertEqual(result.status_code, 200)
def test_user_lists_page_logged_out(self):
"""there are so many views, this just makes sure it LOADS"""
view = views.UserLists.as_view()
request = self.factory.get("")
request.user = self.anonymous_user
result = view(request, self.local_user.username)
self.assertEqual(result.status_code, 302)
def test_embed_call_without_key(self):
"""there are so many views, this just makes sure it DOESNT load"""
view = views.unsafe_embed_list
request = self.factory.get("")
request.user = self.anonymous_user
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
models.ListItem.objects.create(
book_list=self.list,
user=self.local_user,
book=self.book,
approved=True,
order=1,
)
with patch("bookwyrm.views.list.is_api_request") as is_api:
is_api.return_value = False
with self.assertRaises(Http404):
view(request, self.list.id, "")
def test_embed_call_with_key(self):
"""there are so many views, this just makes sure it LOADS"""
view = views.unsafe_embed_list
request = self.factory.get("")
request.user = self.anonymous_user
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
models.ListItem.objects.create(
book_list=self.list,
user=self.local_user,
book=self.book,
approved=True,
order=1,
)
embed_key = str(self.list.embed_key.hex)
with patch("bookwyrm.views.list.is_api_request") as is_api:
is_api.return_value = False
result = view(request, self.list.id, embed_key)
self.assertIsInstance(result, TemplateResponse)
validate_html(result.render())
self.assertEqual(result.status_code, 200)

View file

@ -45,31 +45,51 @@ class UpdateViews(TestCase):
data = json.loads(result.getvalue()) data = json.loads(result.getvalue())
self.assertEqual(data["count"], 1) self.assertEqual(data["count"], 1)
def test_get_unread_status_count(self): def test_get_unread_status_string(self):
"""there are so many views, this just makes sure it LOADS""" """there are so many views, this just makes sure it LOADS"""
request = self.factory.get("") request = self.factory.get("")
request.user = self.local_user request.user = self.local_user
with patch( with patch(
"bookwyrm.activitystreams.ActivityStream.get_unread_count" "bookwyrm.activitystreams.ActivityStream.get_unread_count"
) as mock_count: ) as mock_count, patch(
with patch( "bookwyrm.activitystreams.ActivityStream.get_unread_count_by_status_type"
# pylint:disable=line-too-long ) as mock_count_by_status:
"bookwyrm.activitystreams.ActivityStream.get_unread_count_by_status_type" mock_count.return_value = 3
) as mock_count_by_status: mock_count_by_status.return_value = {"review": 5}
mock_count.return_value = 3 result = views.get_unread_status_string(request, "home")
mock_count_by_status.return_value = {"review": 5}
result = views.get_unread_status_count(request, "home")
self.assertIsInstance(result, JsonResponse) self.assertIsInstance(result, JsonResponse)
data = json.loads(result.getvalue()) data = json.loads(result.getvalue())
self.assertEqual(data["count"], 3) self.assertEqual(data["count"], "Load 5 unread statuses")
self.assertEqual(data["count_by_type"]["review"], 5)
def test_get_unread_status_count_invalid_stream(self): def test_get_unread_status_string_with_filters(self):
"""there are so many views, this just makes sure it LOADS"""
self.local_user.feed_status_types = ["comment", "everything"]
request = self.factory.get("")
request.user = self.local_user
with patch(
"bookwyrm.activitystreams.ActivityStream.get_unread_count"
) as mock_count, patch(
"bookwyrm.activitystreams.ActivityStream.get_unread_count_by_status_type"
) as mock_count_by_status:
mock_count.return_value = 3
mock_count_by_status.return_value = {
"generated_note": 1,
"comment": 1,
"review": 10,
}
result = views.get_unread_status_string(request, "home")
self.assertIsInstance(result, JsonResponse)
data = json.loads(result.getvalue())
self.assertEqual(data["count"], "Load 2 unread statuses")
def test_get_unread_status_string_invalid_stream(self):
"""there are so many views, this just makes sure it LOADS""" """there are so many views, this just makes sure it LOADS"""
request = self.factory.get("") request = self.factory.get("")
request.user = self.local_user request.user = self.local_user
with self.assertRaises(Http404): with self.assertRaises(Http404):
views.get_unread_status_count(request, "fish") views.get_unread_status_string(request, "fish")

View file

@ -369,16 +369,21 @@ urlpatterns = [
re_path(r"^list/?$", views.Lists.as_view(), name="lists"), re_path(r"^list/?$", views.Lists.as_view(), name="lists"),
re_path(r"^list/saved/?$", views.SavedLists.as_view(), name="saved-lists"), re_path(r"^list/saved/?$", views.SavedLists.as_view(), name="saved-lists"),
re_path(r"^list/(?P<list_id>\d+)(.json)?/?$", views.List.as_view(), name="list"), re_path(r"^list/(?P<list_id>\d+)(.json)?/?$", views.List.as_view(), name="list"),
re_path(
r"^list/(?P<list_id>\d+)/item/(?P<list_item>\d+)/?$",
views.ListItem.as_view(),
name="list-item",
),
re_path(r"^list/delete/(?P<list_id>\d+)/?$", views.delete_list, name="delete-list"), re_path(r"^list/delete/(?P<list_id>\d+)/?$", views.delete_list, name="delete-list"),
re_path(r"^list/add-book/?$", views.list.add_book, name="list-add-book"), re_path(r"^list/add-book/?$", views.add_book, name="list-add-book"),
re_path( re_path(
r"^list/(?P<list_id>\d+)/remove/?$", r"^list/(?P<list_id>\d+)/remove/?$",
views.list.remove_book, views.remove_book,
name="list-remove-book", name="list-remove-book",
), ),
re_path( re_path(
r"^list-item/(?P<list_item_id>\d+)/set-position$", r"^list-item/(?P<list_item_id>\d+)/set-position$",
views.list.set_book_position, views.set_book_position,
name="list-set-book-position", name="list-set-book-position",
), ),
re_path( re_path(

View file

@ -61,6 +61,21 @@ from .imports.manually_review import (
delete_import_item, delete_import_item,
) )
# lists
from .list.curate import Curate
from .list.embed import unsafe_embed_list
from .list.list_item import ListItem
from .list.lists import Lists, SavedLists, UserLists
from .list.list import (
List,
save_list,
unsave_list,
delete_list,
add_book,
remove_book,
set_book_position,
)
# misc views # misc views
from .author import Author, EditAuthor, update_author_from_remote from .author import Author, EditAuthor, update_author_from_remote
from .directory import Directory from .directory import Directory
@ -90,8 +105,6 @@ from .group import (
from .inbox import Inbox from .inbox import Inbox
from .interaction import Favorite, Unfavorite, Boost, Unboost from .interaction import Favorite, Unfavorite, Boost, Unboost
from .isbn import Isbn from .isbn import Isbn
from .list import Lists, SavedLists, List, Curate, UserLists
from .list import save_list, unsave_list, delete_list, unsafe_embed_list
from .notifications import Notifications from .notifications import Notifications
from .outbox import Outbox from .outbox import Outbox
from .reading import ReadThrough, delete_readthrough, delete_progressupdate from .reading import ReadThrough, delete_readthrough, delete_progressupdate
@ -101,7 +114,7 @@ from .rss_feed import RssFeed
from .search import Search from .search import Search
from .status import CreateStatus, EditStatus, DeleteStatus, update_progress from .status import CreateStatus, EditStatus, DeleteStatus, update_progress
from .status import edit_readthrough from .status import edit_readthrough
from .updates import get_notification_count, get_unread_status_count from .updates import get_notification_count, get_unread_status_string
from .user import User, Followers, Following, hide_suggestions, user_redirect from .user import User, Followers, Following, hide_suggestions, user_redirect
from .wellknown import * from .wellknown import *
from .annual_summary import ( from .annual_summary import (

View file

@ -62,7 +62,6 @@ class Feed(View):
"streams": STREAMS, "streams": STREAMS,
"goal_form": forms.GoalForm(), "goal_form": forms.GoalForm(),
"feed_status_types_options": FeedFilterChoices, "feed_status_types_options": FeedFilterChoices,
"allowed_status_types": request.user.feed_status_types,
"filters_applied": filters_applied, "filters_applied": filters_applied,
"path": f"/{tab['key']}", "path": f"/{tab['key']}",
"annual_summary_year": get_annual_summary_year(), "annual_summary_year": get_annual_summary_year(),

View file

@ -57,14 +57,7 @@ class GetStartedBooks(View):
if len(book_results) < 5: if len(book_results) < 5:
popular_books = ( popular_books = (
models.Edition.objects.exclude( models.Edition.objects.exclude(
# exclude already shelved Q( # exclude if it's already in search results
Q(
parent_work__in=[
b.book.parent_work
for b in request.user.shelfbook_set.distinct().all()
]
)
| Q( # and exclude if it's already in search results
parent_work__in=[b.parent_work for b in book_results] parent_work__in=[b.parent_work for b in book_results]
) )
) )

View file

@ -0,0 +1,55 @@
""" book list views"""
from django.contrib.auth.decorators import login_required
from django.db.models import Max
from django.shortcuts import get_object_or_404, redirect
from django.template.response import TemplateResponse
from django.utils.decorators import method_decorator
from django.views import View
from bookwyrm import forms, models
from bookwyrm.views.list.list import increment_order_in_reverse
from bookwyrm.views.list.list import normalize_book_list_ordering
# pylint: disable=no-self-use
@method_decorator(login_required, name="dispatch")
class Curate(View):
"""approve or discard list suggestsions"""
def get(self, request, list_id):
"""display a pending list"""
book_list = get_object_or_404(models.List, id=list_id)
book_list.raise_not_editable(request.user)
data = {
"list": book_list,
"pending": book_list.listitem_set.filter(approved=False),
"list_form": forms.ListForm(instance=book_list),
}
return TemplateResponse(request, "lists/curate.html", data)
def post(self, request, list_id):
"""edit a book_list"""
book_list = get_object_or_404(models.List, id=list_id)
book_list.raise_not_editable(request.user)
suggestion = get_object_or_404(models.ListItem, id=request.POST.get("item"))
approved = request.POST.get("approved") == "true"
if approved:
# update the book and set it to be the last in the order of approved books,
# before any pending books
suggestion.approved = True
order_max = (
book_list.listitem_set.filter(approved=True).aggregate(Max("order"))[
"order__max"
]
or 0
) + 1
suggestion.order = order_max
increment_order_in_reverse(book_list.id, order_max)
suggestion.save()
else:
deleted_order = suggestion.order
suggestion.delete(broadcast=False)
normalize_book_list_ordering(book_list.id, start=deleted_order)
return redirect("list-curate", book_list.id)

View file

@ -0,0 +1,75 @@
""" book list views"""
from django.core.paginator import Paginator
from django.db.models import Avg, DecimalField
from django.db.models.functions import Coalesce
from django.http import Http404
from django.shortcuts import get_object_or_404
from django.template.response import TemplateResponse
from django.views import View
from django.views.decorators.clickjacking import xframe_options_exempt
from bookwyrm import models
from bookwyrm.settings import PAGE_LENGTH
# pylint: disable=no-self-use
class EmbedList(View):
"""embeded book list page"""
def get(self, request, list_id, list_key):
"""display a book list"""
book_list = get_object_or_404(models.List, id=list_id)
embed_key = str(book_list.embed_key.hex)
if list_key != embed_key:
raise Http404()
# sort_by shall be "order" unless a valid alternative is given
sort_by = request.GET.get("sort_by", "order")
if sort_by not in ("order", "title", "rating"):
sort_by = "order"
# direction shall be "ascending" unless a valid alternative is given
direction = request.GET.get("direction", "ascending")
if direction not in ("ascending", "descending"):
direction = "ascending"
directional_sort_by = {
"order": "order",
"title": "book__title",
"rating": "average_rating",
}[sort_by]
if direction == "descending":
directional_sort_by = "-" + directional_sort_by
items = book_list.listitem_set.prefetch_related("user", "book", "book__authors")
if sort_by == "rating":
items = items.annotate(
average_rating=Avg(
Coalesce("book__review__rating", 0.0),
output_field=DecimalField(),
)
)
items = items.filter(approved=True).order_by(directional_sort_by)
paginated = Paginator(items, PAGE_LENGTH)
page = paginated.get_page(request.GET.get("page"))
data = {
"list": book_list,
"items": page,
"page_range": paginated.get_elided_page_range(
page.number, on_each_side=2, on_ends=1
),
}
return TemplateResponse(request, "lists/embed-list.html", data)
@xframe_options_exempt
def unsafe_embed_list(request, *args, **kwargs):
"""allows the EmbedList view to be loaded through unsafe iframe origins"""
embed_list_view = EmbedList.as_view()
return embed_list_view(request, *args, **kwargs)

View file

@ -3,96 +3,26 @@ from typing import Optional
from urllib.parse import urlencode from urllib.parse import urlencode
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.core.exceptions import PermissionDenied
from django.core.paginator import Paginator from django.core.paginator import Paginator
from django.db import IntegrityError, transaction from django.db import IntegrityError, transaction
from django.db.models import Avg, DecimalField, Q, Max from django.db.models import Avg, DecimalField, Q, Max
from django.db.models.functions import Coalesce from django.db.models.functions import Coalesce
from django.http import HttpResponseBadRequest, HttpResponse, Http404 from django.http import HttpResponseBadRequest, HttpResponse
from django.shortcuts import get_object_or_404, redirect from django.shortcuts import get_object_or_404, redirect
from django.template.response import TemplateResponse from django.template.response import TemplateResponse
from django.urls import reverse from django.urls import reverse
from django.utils.decorators import method_decorator from django.utils.decorators import method_decorator
from django.views import View from django.views import View
from django.views.decorators.http import require_POST from django.views.decorators.http import require_POST
from django.views.decorators.clickjacking import xframe_options_exempt
from bookwyrm import book_search, forms, models from bookwyrm import book_search, forms, models
from bookwyrm.activitypub import ActivitypubResponse from bookwyrm.activitypub import ActivitypubResponse
from bookwyrm.lists_stream import ListsStream
from bookwyrm.settings import PAGE_LENGTH from bookwyrm.settings import PAGE_LENGTH
from .helpers import is_api_request from bookwyrm.views.helpers import is_api_request
from .helpers import get_user_from_username
# pylint: disable=no-self-use # pylint: disable=no-self-use
class Lists(View):
"""book list page"""
def get(self, request):
"""display a book list"""
lists = ListsStream().get_list_stream(request.user)
paginated = Paginator(lists, 12)
data = {
"lists": paginated.get_page(request.GET.get("page")),
"list_form": forms.ListForm(),
"path": "/list",
}
return TemplateResponse(request, "lists/lists.html", data)
@method_decorator(login_required, name="dispatch")
# pylint: disable=unused-argument
def post(self, request):
"""create a book_list"""
form = forms.ListForm(request.POST)
if not form.is_valid():
return redirect("lists")
book_list = form.save()
# list should not have a group if it is not group curated
if not book_list.curation == "group":
book_list.group = None
book_list.save(broadcast=False)
return redirect(book_list.local_path)
@method_decorator(login_required, name="dispatch")
class SavedLists(View):
"""saved book list page"""
def get(self, request):
"""display book lists"""
# hide lists with no approved books
lists = request.user.saved_lists.order_by("-updated_date")
paginated = Paginator(lists, 12)
data = {
"lists": paginated.get_page(request.GET.get("page")),
"list_form": forms.ListForm(),
"path": "/list",
}
return TemplateResponse(request, "lists/lists.html", data)
@method_decorator(login_required, name="dispatch")
class UserLists(View):
"""a user's book list page"""
def get(self, request, username):
"""display a book list"""
user = get_user_from_username(request.user, username)
lists = models.List.privacy_filter(request.user).filter(user=user)
paginated = Paginator(lists, 12)
data = {
"user": user,
"is_self": request.user.id == user.id,
"lists": paginated.get_page(request.GET.get("page")),
"list_form": forms.ListForm(),
"path": user.local_path + "/lists",
}
return TemplateResponse(request, "user/lists.html", data)
class List(View): class List(View):
"""book list page""" """book list page"""
@ -191,7 +121,8 @@ class List(View):
form = forms.ListForm(request.POST, instance=book_list) form = forms.ListForm(request.POST, instance=book_list)
if not form.is_valid(): if not form.is_valid():
return redirect("list", book_list.id) # this shouldn't happen
raise Exception(form.errors)
book_list = form.save() book_list = form.save()
if not book_list.curation == "group": if not book_list.curation == "group":
book_list.group = None book_list.group = None
@ -200,103 +131,6 @@ class List(View):
return redirect(book_list.local_path) return redirect(book_list.local_path)
class EmbedList(View):
"""embeded book list page"""
def get(self, request, list_id, list_key):
"""display a book list"""
book_list = get_object_or_404(models.List, id=list_id)
embed_key = str(book_list.embed_key.hex)
if list_key != embed_key:
raise Http404()
# sort_by shall be "order" unless a valid alternative is given
sort_by = request.GET.get("sort_by", "order")
if sort_by not in ("order", "title", "rating"):
sort_by = "order"
# direction shall be "ascending" unless a valid alternative is given
direction = request.GET.get("direction", "ascending")
if direction not in ("ascending", "descending"):
direction = "ascending"
directional_sort_by = {
"order": "order",
"title": "book__title",
"rating": "average_rating",
}[sort_by]
if direction == "descending":
directional_sort_by = "-" + directional_sort_by
items = book_list.listitem_set.prefetch_related("user", "book", "book__authors")
if sort_by == "rating":
items = items.annotate(
average_rating=Avg(
Coalesce("book__review__rating", 0.0),
output_field=DecimalField(),
)
)
items = items.filter(approved=True).order_by(directional_sort_by)
paginated = Paginator(items, PAGE_LENGTH)
page = paginated.get_page(request.GET.get("page"))
data = {
"list": book_list,
"items": page,
"page_range": paginated.get_elided_page_range(
page.number, on_each_side=2, on_ends=1
),
}
return TemplateResponse(request, "lists/embed-list.html", data)
@method_decorator(login_required, name="dispatch")
class Curate(View):
"""approve or discard list suggestsions"""
def get(self, request, list_id):
"""display a pending list"""
book_list = get_object_or_404(models.List, id=list_id)
book_list.raise_not_editable(request.user)
data = {
"list": book_list,
"pending": book_list.listitem_set.filter(approved=False),
"list_form": forms.ListForm(instance=book_list),
}
return TemplateResponse(request, "lists/curate.html", data)
def post(self, request, list_id):
"""edit a book_list"""
book_list = get_object_or_404(models.List, id=list_id)
book_list.raise_not_editable(request.user)
suggestion = get_object_or_404(models.ListItem, id=request.POST.get("item"))
approved = request.POST.get("approved") == "true"
if approved:
# update the book and set it to be the last in the order of approved books,
# before any pending books
suggestion.approved = True
order_max = (
book_list.listitem_set.filter(approved=True).aggregate(Max("order"))[
"order__max"
]
or 0
) + 1
suggestion.order = order_max
increment_order_in_reverse(book_list.id, order_max)
suggestion.save()
else:
deleted_order = suggestion.order
suggestion.delete(broadcast=False)
normalize_book_list_ordering(book_list.id, start=deleted_order)
return redirect("list-curate", book_list.id)
@require_POST @require_POST
@login_required @login_required
def save_list(request, list_id): def save_list(request, list_id):
@ -330,53 +164,41 @@ def delete_list(request, list_id):
@require_POST @require_POST
@login_required @login_required
@transaction.atomic
def add_book(request): def add_book(request):
"""put a book on a list""" """put a book on a list"""
book_list = get_object_or_404(models.List, id=request.POST.get("list")) book_list = get_object_or_404(models.List, id=request.POST.get("book_list"))
is_group_member = False # make sure the user is allowed to submit to this list
if book_list.curation == "group":
is_group_member = models.GroupMember.objects.filter(
group=book_list.group, user=request.user
).exists()
book_list.raise_visible_to_user(request.user) book_list.raise_visible_to_user(request.user)
if request.user != book_list.user and book_list.curation == "closed":
raise PermissionDenied()
is_group_member = models.GroupMember.objects.filter(
group=book_list.group, user=request.user
).exists()
form = forms.ListItemForm(request.POST)
if not form.is_valid():
# this shouldn't happen, there aren't validated fields
raise Exception(form.errors)
item = form.save(commit=False)
if book_list.curation == "curated":
# make a pending entry at the end of the list
order_max = (book_list.listitem_set.aggregate(Max("order"))["order__max"]) or 0
item.approved = is_group_member or request.user == book_list.user
else:
# add the book at the latest order of approved books, before pending books
order_max = (
book_list.listitem_set.filter(approved=True).aggregate(Max("order"))[
"order__max"
]
) or 0
increment_order_in_reverse(book_list.id, order_max + 1)
item.order = order_max + 1
book = get_object_or_404(models.Edition, id=request.POST.get("book"))
# do you have permission to add to the list?
try: try:
if ( item.save()
request.user == book_list.user
or is_group_member
or book_list.curation == "open"
):
# add the book at the latest order of approved books, before pending books
order_max = (
book_list.listitem_set.filter(approved=True).aggregate(Max("order"))[
"order__max"
]
) or 0
increment_order_in_reverse(book_list.id, order_max + 1)
models.ListItem.objects.create(
book=book,
book_list=book_list,
user=request.user,
order=order_max + 1,
)
elif book_list.curation == "curated":
# make a pending entry at the end of the list
order_max = (
book_list.listitem_set.aggregate(Max("order"))["order__max"]
) or 0
models.ListItem.objects.create(
approved=False,
book=book,
book_list=book_list,
user=request.user,
order=order_max + 1,
)
else:
# you can't add to this list, what were you THINKING
return HttpResponseBadRequest()
except IntegrityError: except IntegrityError:
# if the book is already on the list, don't flip out # if the book is already on the list, don't flip out
pass pass
@ -499,11 +321,3 @@ def normalize_book_list_ordering(book_list_id, start=0, add_offset=0):
if item.order != effective_order: if item.order != effective_order:
item.order = effective_order item.order = effective_order
item.save() item.save()
@xframe_options_exempt
def unsafe_embed_list(request, *args, **kwargs):
"""allows the EmbedList view to be loaded through unsafe iframe origins"""
embed_list_view = EmbedList.as_view()
return embed_list_view(request, *args, **kwargs)

View file

@ -0,0 +1,22 @@
""" book list views"""
from django.contrib.auth.decorators import login_required
from django.shortcuts import get_object_or_404, redirect
from django.utils.decorators import method_decorator
from django.views import View
from bookwyrm import forms, models
# pylint: disable=no-self-use
@method_decorator(login_required, name="dispatch")
class ListItem(View):
"""book list page"""
def post(self, request, list_id, list_item):
"""Edit a list item's notes"""
list_item = get_object_or_404(models.ListItem, id=list_item, book_list=list_id)
list_item.raise_not_editable(request.user)
form = forms.ListItemForm(request.POST, instance=list_item)
if form.is_valid():
form.save()
return redirect("list", list_item.book_list.id)

View file

@ -0,0 +1,80 @@
""" book list views"""
from django.contrib.auth.decorators import login_required
from django.core.paginator import Paginator
from django.shortcuts import redirect
from django.template.response import TemplateResponse
from django.utils.decorators import method_decorator
from django.views import View
from bookwyrm import forms, models
from bookwyrm.lists_stream import ListsStream
from bookwyrm.views.helpers import get_user_from_username
# pylint: disable=no-self-use
class Lists(View):
"""book list page"""
def get(self, request):
"""display a book list"""
lists = ListsStream().get_list_stream(request.user)
paginated = Paginator(lists, 12)
data = {
"lists": paginated.get_page(request.GET.get("page")),
"list_form": forms.ListForm(),
"path": "/list",
}
return TemplateResponse(request, "lists/lists.html", data)
@method_decorator(login_required, name="dispatch")
# pylint: disable=unused-argument
def post(self, request):
"""create a book_list"""
form = forms.ListForm(request.POST)
if not form.is_valid():
return redirect("lists")
book_list = form.save()
# list should not have a group if it is not group curated
if not book_list.curation == "group":
book_list.group = None
book_list.save(broadcast=False)
return redirect(book_list.local_path)
@method_decorator(login_required, name="dispatch")
class SavedLists(View):
"""saved book list page"""
def get(self, request):
"""display book lists"""
# hide lists with no approved books
lists = request.user.saved_lists.order_by("-updated_date")
paginated = Paginator(lists, 12)
data = {
"lists": paginated.get_page(request.GET.get("page")),
"list_form": forms.ListForm(),
"path": "/list",
}
return TemplateResponse(request, "lists/lists.html", data)
@method_decorator(login_required, name="dispatch")
class UserLists(View):
"""a user's book list page"""
def get(self, request, username):
"""display a book list"""
user = get_user_from_username(request.user, username)
lists = models.List.privacy_filter(request.user).filter(user=user)
paginated = Paginator(lists, 12)
data = {
"user": user,
"is_self": request.user.id == user.id,
"lists": paginated.get_page(request.GET.get("page")),
"list_form": forms.ListForm(),
"path": user.local_path + "/lists",
}
return TemplateResponse(request, "user/lists.html", data)

View file

@ -1,6 +1,7 @@
""" endpoints for getting updates about activity """ """ endpoints for getting updates about activity """
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.http import Http404, JsonResponse from django.http import Http404, JsonResponse
from django.utils.translation import ngettext
from bookwyrm import activitystreams from bookwyrm import activitystreams
@ -17,14 +18,31 @@ def get_notification_count(request):
@login_required @login_required
def get_unread_status_count(request, stream="home"): def get_unread_status_string(request, stream="home"):
"""any unread statuses for this feed?""" """any unread statuses for this feed?"""
stream = activitystreams.streams.get(stream) stream = activitystreams.streams.get(stream)
if not stream: if not stream:
raise Http404 raise Http404
return JsonResponse(
{ counts_by_type = stream.get_unread_count_by_status_type(request.user).items()
"count": stream.get_unread_count(request.user), if counts_by_type == {}:
"count_by_type": stream.get_unread_count_by_status_type(request.user), count = stream.get_unread_count(request.user)
} else:
) # only consider the types that are visible in the feed
allowed_status_types = request.user.feed_status_types
count = sum(c for (k, c) in counts_by_type if k in allowed_status_types)
# if "everything else" is allowed, add other types to the sum
count += sum(
c
for (k, c) in counts_by_type
if k not in ["review", "comment", "quotation"]
)
if not count:
return JsonResponse({})
translation_string = lambda c: ngettext(
"Load %(count)d unread status", "Load %(count)d unread statuses", c
) % {"count": c}
return JsonResponse({"count": translation_string(count)})

View file

@ -30,17 +30,15 @@ class User(View):
shelf_preview = [] shelf_preview = []
# only show other shelves that should be visible # only show shelves that should be visible
shelves = user.shelf_set shelves = user.shelf_set
is_self = request.user.id == user.id is_self = request.user.id == user.id
if not is_self: if not is_self:
shelves = models.Shelf.privacy_filter( shelves = models.Shelf.privacy_filter(
request.user, privacy_levels=["public", "followers"] request.user, privacy_levels=["public", "followers"]
).filter(user=user) ).filter(user=user, books__isnull=False)
for user_shelf in shelves.all(): for user_shelf in shelves.all()[:3]:
if not user_shelf.books.count():
continue
shelf_preview.append( shelf_preview.append(
{ {
"name": user_shelf.name, "name": user_shelf.name,
@ -49,8 +47,6 @@ class User(View):
"size": user_shelf.books.count(), "size": user_shelf.books.count(),
} }
) )
if len(shelf_preview) > 2:
break
# user's posts # user's posts
activities = ( activities = (

View file

@ -2,8 +2,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: bookwyrm\n" "Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-01-17 19:26+0000\n" "POT-Creation-Date: 2022-01-24 17:25+0000\n"
"PO-Revision-Date: 2022-01-20 08:20\n" "PO-Revision-Date: 2022-01-24 18:55\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n" "Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: German\n" "Language-Team: German\n"
"Language: de\n" "Language: de\n"
@ -56,11 +56,11 @@ msgstr "Buchtitel"
#: bookwyrm/forms.py:485 bookwyrm/templates/shelf/shelf.html:155 #: bookwyrm/forms.py:485 bookwyrm/templates/shelf/shelf.html:155
#: bookwyrm/templates/shelf/shelf.html:187 #: bookwyrm/templates/shelf/shelf.html:187
#: bookwyrm/templates/snippets/create_status/review.html:33 #: bookwyrm/templates/snippets/create_status/review.html:32
msgid "Rating" msgid "Rating"
msgstr "Bewertung" msgstr "Bewertung"
#: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:134 #: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:135
msgid "Sort By" msgid "Sort By"
msgstr "Sortieren nach" msgstr "Sortieren nach"
@ -224,69 +224,69 @@ msgstr "Zitate"
msgid "Everything else" msgid "Everything else"
msgstr "Alles andere" msgstr "Alles andere"
#: bookwyrm/settings.py:121 #: bookwyrm/settings.py:173
msgid "Home Timeline" msgid "Home Timeline"
msgstr "Start-Zeitleiste" msgstr "Start-Zeitleiste"
#: bookwyrm/settings.py:121 #: bookwyrm/settings.py:173
msgid "Home" msgid "Home"
msgstr "Startseite" msgstr "Startseite"
#: bookwyrm/settings.py:122 #: bookwyrm/settings.py:174
msgid "Books Timeline" msgid "Books Timeline"
msgstr "Bücher-Zeitleiste" msgstr "Bücher-Zeitleiste"
#: bookwyrm/settings.py:122 bookwyrm/templates/search/layout.html:21 #: bookwyrm/settings.py:174 bookwyrm/templates/search/layout.html:21
#: bookwyrm/templates/search/layout.html:42 #: bookwyrm/templates/search/layout.html:42
#: bookwyrm/templates/user/layout.html:91 #: bookwyrm/templates/user/layout.html:91
msgid "Books" msgid "Books"
msgstr "Bücher" msgstr "Bücher"
#: bookwyrm/settings.py:196 #: bookwyrm/settings.py:248
msgid "English" msgid "English"
msgstr "English (Englisch)" msgstr "English (Englisch)"
#: bookwyrm/settings.py:197 #: bookwyrm/settings.py:249
msgid "Deutsch (German)" msgid "Deutsch (German)"
msgstr "Deutsch" msgstr "Deutsch"
#: bookwyrm/settings.py:198 #: bookwyrm/settings.py:250
msgid "Español (Spanish)" msgid "Español (Spanish)"
msgstr "Español (Spanisch)" msgstr "Español (Spanisch)"
#: bookwyrm/settings.py:199 #: bookwyrm/settings.py:251
msgid "Galego (Galician)" msgid "Galego (Galician)"
msgstr "Galego (Galizisch)" msgstr "Galego (Galizisch)"
#: bookwyrm/settings.py:200 #: bookwyrm/settings.py:252
msgid "Italiano (Italian)" msgid "Italiano (Italian)"
msgstr "Italiano (Italienisch)" msgstr "Italiano (Italienisch)"
#: bookwyrm/settings.py:201 #: bookwyrm/settings.py:253
msgid "Français (French)" msgid "Français (French)"
msgstr "Français (Französisch)" msgstr "Français (Französisch)"
#: bookwyrm/settings.py:202 #: bookwyrm/settings.py:254
msgid "Lietuvių (Lithuanian)" msgid "Lietuvių (Lithuanian)"
msgstr "Lietuvių (Litauisch)" msgstr "Lietuvių (Litauisch)"
#: bookwyrm/settings.py:203 #: bookwyrm/settings.py:255
msgid "Norsk (Norwegian)" msgid "Norsk (Norwegian)"
msgstr "Norsk (Norwegisch)" msgstr "Norsk (Norwegisch)"
#: bookwyrm/settings.py:204 #: bookwyrm/settings.py:256
msgid "Português do Brasil (Brazilian Portuguese)" msgid "Português do Brasil (Brazilian Portuguese)"
msgstr "Português do Brasil (brasilianisches Portugiesisch)" msgstr "Português do Brasil (brasilianisches Portugiesisch)"
#: bookwyrm/settings.py:205 #: bookwyrm/settings.py:257
msgid "Português Europeu (European Portuguese)" msgid "Português Europeu (European Portuguese)"
msgstr "Português Europeu (Portugiesisch)" msgstr "Português Europeu (Portugiesisch)"
#: bookwyrm/settings.py:206 #: bookwyrm/settings.py:258
msgid "简体中文 (Simplified Chinese)" msgid "简体中文 (Simplified Chinese)"
msgstr "简体中文 (vereinfachtes Chinesisch)" msgstr "简体中文 (vereinfachtes Chinesisch)"
#: bookwyrm/settings.py:207 #: bookwyrm/settings.py:259
msgid "繁體中文 (Traditional Chinese)" msgid "繁體中文 (Traditional Chinese)"
msgstr "繁體中文 (Chinesisch, traditionell)" msgstr "繁體中文 (Chinesisch, traditionell)"
@ -315,58 +315,54 @@ msgstr "Etwas ist schief gelaufen! Tut uns leid."
msgid "About" msgid "About"
msgstr "Über" msgstr "Über"
#: bookwyrm/templates/about/about.html:18 #: bookwyrm/templates/about/about.html:19
#: bookwyrm/templates/get_started/layout.html:20 #: bookwyrm/templates/get_started/layout.html:20
#, python-format #, python-format
msgid "Welcome to %(site_name)s!" msgid "Welcome to %(site_name)s!"
msgstr "Willkommen auf %(site_name)s!" msgstr "Willkommen auf %(site_name)s!"
#: bookwyrm/templates/about/about.html:22 #: bookwyrm/templates/about/about.html:23
#, python-format #, python-format
msgid "%(site_name)s is part of <em>BookWyrm</em>, a network of independent, self-directed communities for readers. While you can interact seamlessly with users anywhere in the <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">BookWyrm network</a>, this community is unique." msgid "%(site_name)s is part of <em>BookWyrm</em>, a network of independent, self-directed communities for readers. While you can interact seamlessly with users anywhere in the <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">BookWyrm network</a>, this community is unique."
msgstr "%(site_name)s ist Teil von <em>BookWyrm</em>, ein Netzwerk unabhängiger, selbstverwalteter Gemeinschaften für Leser*innen. Obwohl du dich nahtlos mit anderen Benutzer*innen überall im <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">BookWyrm-Netzwerk</a> austauschen kannst, ist diese Gemeinschaft einzigartig." msgstr "%(site_name)s ist Teil von <em>BookWyrm</em>, ein Netzwerk unabhängiger, selbstverwalteter Gemeinschaften für Leser*innen. Obwohl du dich nahtlos mit anderen Benutzer*innen überall im <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">BookWyrm-Netzwerk</a> austauschen kannst, ist diese Gemeinschaft einzigartig."
#: bookwyrm/templates/about/about.html:39 #: bookwyrm/templates/about/about.html:40
#, python-format #, python-format
msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> is %(site_name)s's most beloved book, with an average rating of %(rating)s out of 5." msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> is %(site_name)s's most beloved book, with an average rating of %(rating)s out of 5."
msgstr "<a href=\"%(book_path)s\"><em>%(title)s</em></a> ist mit einer durchschnittlichen Bewertung von %(rating)s (von 5) das beliebtestes Buch auf %(site_name)s." msgstr "<a href=\"%(book_path)s\"><em>%(title)s</em></a> ist mit einer durchschnittlichen Bewertung von %(rating)s (von 5) das beliebtestes Buch auf %(site_name)s."
#: bookwyrm/templates/about/about.html:58 #: bookwyrm/templates/about/about.html:59
#, python-format #, python-format
msgid "More %(site_name)s users want to read <a href=\"%(book_path)s\"><em>%(title)s</em></a> than any other book." msgid "More %(site_name)s users want to read <a href=\"%(book_path)s\"><em>%(title)s</em></a> than any other book."
msgstr "Das Buch <a href=\"%(book_path)s\"><em>%(title)s</em></a> wollen mehr Benutzer*innen von %(site_name)s lesen als jedes andere Buch." msgstr "Das Buch <a href=\"%(book_path)s\"><em>%(title)s</em></a> wollen mehr Benutzer*innen von %(site_name)s lesen als jedes andere Buch."
#: bookwyrm/templates/about/about.html:77 #: bookwyrm/templates/about/about.html:78
#, python-format #, python-format
msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> has the most divisive ratings of any book on %(site_name)s." msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> has the most divisive ratings of any book on %(site_name)s."
msgstr "<a href=\"%(book_path)s\"><em>%(title)s</em></a> hat die unterschiedlichsten Bewertungen aller Bücher auf %(site_name)s." msgstr "<a href=\"%(book_path)s\"><em>%(title)s</em></a> hat die unterschiedlichsten Bewertungen aller Bücher auf %(site_name)s."
#: bookwyrm/templates/about/about.html:88 #: bookwyrm/templates/about/about.html:89
msgid "Track your reading, talk about books, write reviews, and discover what to read next. Always ad-free, anti-corporate, and community-oriented, BookWyrm is human-scale software, designed to stay small and personal. If you have feature requests, bug reports, or grand dreams, <a href='https://joinbookwyrm.com/get-involved' target='_blank'>reach out</a> and make yourself heard." msgid "Track your reading, talk about books, write reviews, and discover what to read next. Always ad-free, anti-corporate, and community-oriented, BookWyrm is human-scale software, designed to stay small and personal. If you have feature requests, bug reports, or grand dreams, <a href='https://joinbookwyrm.com/get-involved' target='_blank'>reach out</a> and make yourself heard."
msgstr "Verfolge deine Lektüre, sprich über Bücher, schreibe Besprechungen und entdecke, was Du als Nächstes lesen könntest. BookWyrm ist eine Software im menschlichen Maßstab, die immer übersichtlich, werbefrei, persönlich, und gemeinschaftsorientiert sein wird. Wenn du Feature-Anfragen, Fehlerberichte oder große Träume hast, wende dich <a href='https://joinbookwyrm.com/get-involved' target='_blank'>an</a> und verschaffe dir Gehör." msgstr "Verfolge deine Lektüre, sprich über Bücher, schreibe Besprechungen und entdecke, was Du als Nächstes lesen könntest. BookWyrm ist eine Software im menschlichen Maßstab, die immer übersichtlich, werbefrei, persönlich, und gemeinschaftsorientiert sein wird. Wenn du Feature-Anfragen, Fehlerberichte oder große Träume hast, wende dich <a href='https://joinbookwyrm.com/get-involved' target='_blank'>an</a> und verschaffe dir Gehör."
#: bookwyrm/templates/about/about.html:95 #: bookwyrm/templates/about/about.html:96
msgid "Meet your admins" msgid "Meet your admins"
msgstr "Lerne deinen Admins kennen" msgstr "Lerne deinen Admins kennen"
#: bookwyrm/templates/about/about.html:98 #: bookwyrm/templates/about/about.html:99
#, python-format #, python-format
msgid "\n" msgid "%(site_name)s's moderators and administrators keep the site up and running, enforce the <a href=\"coc_path\">code of conduct</a>, and respond when users report spam and bad behavior."
" %(site_name)s's moderators and administrators keep the site up and running, enforce the <a href=\"coc_path\">code of conduct</a>, and respond when users report spam and bad behavior.\n" msgstr ""
" "
msgstr "\n"
" die Moderator*innen und Administrator*innen von %(site_name)s halten diese Seite in Betrieb, setzen die <a href=\"coc_path\">Verhaltensregeln</a> durch und reagieren auf Meldungen über Spam oder schlechtes Benehmen von Nutzer*innen.\n"
" "
#: bookwyrm/templates/about/about.html:112 #: bookwyrm/templates/about/about.html:113
msgid "Moderator" msgid "Moderator"
msgstr "Moderator*in" msgstr "Moderator*in"
#: bookwyrm/templates/about/about.html:114 bookwyrm/templates/layout.html:131 #: bookwyrm/templates/about/about.html:115 bookwyrm/templates/layout.html:131
msgid "Admin" msgid "Admin"
msgstr "Administration" msgstr "Administration"
#: bookwyrm/templates/about/about.html:130 #: bookwyrm/templates/about/about.html:131
#: bookwyrm/templates/settings/users/user_moderation_actions.html:14 #: bookwyrm/templates/settings/users/user_moderation_actions.html:14
#: bookwyrm/templates/snippets/status/status_options.html:35 #: bookwyrm/templates/snippets/status/status_options.html:35
#: bookwyrm/templates/snippets/user_options.html:13 #: bookwyrm/templates/snippets/user_options.html:13
@ -428,7 +424,7 @@ msgid "Copy address"
msgstr "Adresse kopieren" msgstr "Adresse kopieren"
#: bookwyrm/templates/annual_summary/layout.html:68 #: bookwyrm/templates/annual_summary/layout.html:68
#: bookwyrm/templates/lists/list.html:230 #: bookwyrm/templates/lists/list.html:231
msgid "Copied!" msgid "Copied!"
msgstr "Kopiert!" msgstr "Kopiert!"
@ -497,7 +493,7 @@ msgstr "Das am schnellsten gelesene Buch dieses Jahr&nbsp;…"
#: bookwyrm/templates/annual_summary/layout.html:245 #: bookwyrm/templates/annual_summary/layout.html:245
#: bookwyrm/templates/book/book.html:47 #: bookwyrm/templates/book/book.html:47
#: bookwyrm/templates/discover/large-book.html:22 #: bookwyrm/templates/discover/large-book.html:22
#: bookwyrm/templates/landing/large-book.html:25 #: bookwyrm/templates/landing/large-book.html:26
#: bookwyrm/templates/landing/small-book.html:18 #: bookwyrm/templates/landing/small-book.html:18
msgid "by" msgid "by"
msgstr "von" msgstr "von"
@ -733,9 +729,9 @@ msgstr "Das Laden von Daten wird eine Verbindung zu <strong>%(source_name)s</str
#: bookwyrm/templates/author/sync_modal.html:22 #: bookwyrm/templates/author/sync_modal.html:22
#: bookwyrm/templates/book/edit/edit_book.html:108 #: bookwyrm/templates/book/edit/edit_book.html:108
#: bookwyrm/templates/book/sync_modal.html:22 #: bookwyrm/templates/book/sync_modal.html:22
#: bookwyrm/templates/groups/members.html:30 #: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42 #: bookwyrm/templates/landing/password_reset.html:42
#: bookwyrm/templates/snippets/remove_from_group_button.html:16 #: bookwyrm/templates/snippets/remove_from_group_button.html:17
msgid "Confirm" msgid "Confirm"
msgstr "Bestätigen" msgstr "Bestätigen"
@ -819,8 +815,8 @@ msgid "Places"
msgstr "Orte" msgstr "Orte"
#: bookwyrm/templates/book/book.html:348 #: bookwyrm/templates/book/book.html:348
#: bookwyrm/templates/groups/group.html:20 bookwyrm/templates/layout.html:74 #: bookwyrm/templates/groups/group.html:19 bookwyrm/templates/layout.html:74
#: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:10 #: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:11
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
#: bookwyrm/templates/search/layout.html:25 #: bookwyrm/templates/search/layout.html:25
#: bookwyrm/templates/search/layout.html:50 #: bookwyrm/templates/search/layout.html:50
@ -834,7 +830,7 @@ msgstr "Zur Liste hinzufügen"
#: bookwyrm/templates/book/book.html:369 #: bookwyrm/templates/book/book.html:369
#: bookwyrm/templates/book/cover_add_modal.html:31 #: bookwyrm/templates/book/cover_add_modal.html:31
#: bookwyrm/templates/lists/list.html:208 #: bookwyrm/templates/lists/list.html:209
#: bookwyrm/templates/settings/email_blocklist/domain_form.html:24 #: bookwyrm/templates/settings/email_blocklist/domain_form.html:24
#: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:31 #: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:31
msgid "Add" msgid "Add"
@ -936,7 +932,7 @@ msgid "Back"
msgstr "Zurück" msgstr "Zurück"
#: bookwyrm/templates/book/edit/edit_book_form.html:21 #: bookwyrm/templates/book/edit/edit_book_form.html:21
#: bookwyrm/templates/snippets/create_status/review.html:16 #: bookwyrm/templates/snippets/create_status/review.html:15
msgid "Title:" msgid "Title:"
msgstr "Titel:" msgstr "Titel:"
@ -1653,7 +1649,7 @@ msgid "What are you reading?"
msgstr "Was liest du gerade?" msgstr "Was liest du gerade?"
#: bookwyrm/templates/get_started/books.html:9 #: bookwyrm/templates/get_started/books.html:9
#: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:162 #: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:163
msgid "Search for a book" msgid "Search for a book"
msgstr "Nach einem Buch suchen" msgstr "Nach einem Buch suchen"
@ -1671,9 +1667,9 @@ msgstr "Du kannst Bücher hinzufügen, wenn du %(site_name)s benutzt."
#: bookwyrm/templates/get_started/books.html:17 #: bookwyrm/templates/get_started/books.html:17
#: bookwyrm/templates/get_started/users.html:18 #: bookwyrm/templates/get_started/users.html:18
#: bookwyrm/templates/get_started/users.html:19 #: bookwyrm/templates/get_started/users.html:19
#: bookwyrm/templates/groups/members.html:16 #: bookwyrm/templates/groups/members.html:15
#: bookwyrm/templates/groups/members.html:17 bookwyrm/templates/layout.html:53 #: bookwyrm/templates/groups/members.html:16 bookwyrm/templates/layout.html:53
#: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:166 #: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:167
#: bookwyrm/templates/search/layout.html:4 #: bookwyrm/templates/search/layout.html:4
#: bookwyrm/templates/search/layout.html:9 #: bookwyrm/templates/search/layout.html:9
msgid "Search" msgid "Search"
@ -1689,7 +1685,7 @@ msgid "Popular on %(site_name)s"
msgstr "Auf %(site_name)s beliebt" msgstr "Auf %(site_name)s beliebt"
#: bookwyrm/templates/get_started/books.html:58 #: bookwyrm/templates/get_started/books.html:58
#: bookwyrm/templates/lists/list.html:179 #: bookwyrm/templates/lists/list.html:180
msgid "No books found" msgid "No books found"
msgstr "Keine Bücher gefunden" msgstr "Keine Bücher gefunden"
@ -1794,7 +1790,7 @@ msgstr "Diese Aktion kann nicht rückgängig gemacht werden"
#: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:49 #: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:49
#: bookwyrm/templates/settings/ip_blocklist/ip_blocklist.html:36 #: bookwyrm/templates/settings/ip_blocklist/ip_blocklist.html:36
#: bookwyrm/templates/snippets/follow_request_buttons.html:12 #: bookwyrm/templates/snippets/follow_request_buttons.html:12
#: bookwyrm/templates/snippets/join_invitation_buttons.html:13 #: bookwyrm/templates/snippets/join_invitation_buttons.html:14
msgid "Delete" msgid "Delete"
msgstr "Löschen" msgstr "Löschen"
@ -1814,17 +1810,17 @@ msgstr "Gruppenbeschreibung:"
msgid "Delete group" msgid "Delete group"
msgstr "Gruppe löschen" msgstr "Gruppe löschen"
#: bookwyrm/templates/groups/group.html:22 #: bookwyrm/templates/groups/group.html:21
msgid "Members of this group can create group-curated lists." msgid "Members of this group can create group-curated lists."
msgstr "Mitglieder dieser Gruppe können von der Gruppe kuratierte Listen anlegen." msgstr "Mitglieder dieser Gruppe können von der Gruppe kuratierte Listen anlegen."
#: bookwyrm/templates/groups/group.html:27 #: bookwyrm/templates/groups/group.html:26
#: bookwyrm/templates/lists/create_form.html:5 #: bookwyrm/templates/lists/create_form.html:5
#: bookwyrm/templates/lists/lists.html:20 #: bookwyrm/templates/lists/lists.html:20
msgid "Create List" msgid "Create List"
msgstr "Liste erstellen" msgstr "Liste erstellen"
#: bookwyrm/templates/groups/group.html:40 #: bookwyrm/templates/groups/group.html:39
msgid "This group has no lists" msgid "This group has no lists"
msgstr "Diese Gruppe enthält keine Listen" msgstr "Diese Gruppe enthält keine Listen"
@ -1832,15 +1828,15 @@ msgstr "Diese Gruppe enthält keine Listen"
msgid "Edit group" msgid "Edit group"
msgstr "Gruppe bearbeiten" msgstr "Gruppe bearbeiten"
#: bookwyrm/templates/groups/members.html:12 #: bookwyrm/templates/groups/members.html:11
msgid "Search to add a user" msgid "Search to add a user"
msgstr "Hinzuzufügende*n Benutzer*in suchen" msgstr "Hinzuzufügende*n Benutzer*in suchen"
#: bookwyrm/templates/groups/members.html:33 #: bookwyrm/templates/groups/members.html:32
msgid "Leave group" msgid "Leave group"
msgstr "Gruppe verlassen" msgstr "Gruppe verlassen"
#: bookwyrm/templates/groups/members.html:55 #: bookwyrm/templates/groups/members.html:54
#: bookwyrm/templates/groups/suggested_users.html:35 #: bookwyrm/templates/groups/suggested_users.html:35
#: bookwyrm/templates/snippets/suggested_users.html:31 #: bookwyrm/templates/snippets/suggested_users.html:31
#: bookwyrm/templates/user/user_preview.html:36 #: bookwyrm/templates/user/user_preview.html:36
@ -2297,18 +2293,18 @@ msgstr "Diese Liste löschen?"
msgid "Edit List" msgid "Edit List"
msgstr "Liste bearbeiten" msgstr "Liste bearbeiten"
#: bookwyrm/templates/lists/embed-list.html:7 #: bookwyrm/templates/lists/embed-list.html:8
#, python-format #, python-format
msgid "%(list_name)s, a list by %(owner)s" msgid "%(list_name)s, a list by %(owner)s"
msgstr "%(list_name)s, eine Liste von %(owner)s" msgstr "%(list_name)s, eine Liste von %(owner)s"
#: bookwyrm/templates/lists/embed-list.html:17 #: bookwyrm/templates/lists/embed-list.html:18
#, python-format #, python-format
msgid "on <a href=\"/\">%(site_name)s</a>" msgid "on <a href=\"/\">%(site_name)s</a>"
msgstr "auf <a href=\"/\">%(site_name)s</a>" msgstr "auf <a href=\"/\">%(site_name)s</a>"
#: bookwyrm/templates/lists/embed-list.html:26 #: bookwyrm/templates/lists/embed-list.html:27
#: bookwyrm/templates/lists/list.html:42 #: bookwyrm/templates/lists/list.html:43
msgid "This list is currently empty" msgid "This list is currently empty"
msgstr "Diese Liste ist momentan leer" msgstr "Diese Liste ist momentan leer"
@ -2369,76 +2365,76 @@ msgstr "Gruppe erstellen"
msgid "Delete list" msgid "Delete list"
msgstr "Liste löschen" msgstr "Liste löschen"
#: bookwyrm/templates/lists/list.html:34 #: bookwyrm/templates/lists/list.html:35
msgid "You successfully suggested a book for this list!" msgid "You successfully suggested a book for this list!"
msgstr "Dein Buchvorschlag wurde dieser Liste hinzugefügt!" msgstr "Dein Buchvorschlag wurde dieser Liste hinzugefügt!"
#: bookwyrm/templates/lists/list.html:36 #: bookwyrm/templates/lists/list.html:37
msgid "You successfully added a book to this list!" msgid "You successfully added a book to this list!"
msgstr "Du hast ein Buch zu dieser Liste hinzugefügt!" msgstr "Du hast ein Buch zu dieser Liste hinzugefügt!"
#: bookwyrm/templates/lists/list.html:80 #: bookwyrm/templates/lists/list.html:81
#, python-format #, python-format
msgid "Added by <a href=\"%(user_path)s\">%(username)s</a>" msgid "Added by <a href=\"%(user_path)s\">%(username)s</a>"
msgstr "Hinzugefügt von <a href=\"%(user_path)s\">%(username)s</a>" msgstr "Hinzugefügt von <a href=\"%(user_path)s\">%(username)s</a>"
#: bookwyrm/templates/lists/list.html:95 #: bookwyrm/templates/lists/list.html:96
msgid "List position" msgid "List position"
msgstr "Listenposition" msgstr "Listenposition"
#: bookwyrm/templates/lists/list.html:101 #: bookwyrm/templates/lists/list.html:102
#: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:21 #: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:21
msgid "Set" msgid "Set"
msgstr "Übernehmen" msgstr "Übernehmen"
#: bookwyrm/templates/lists/list.html:116 #: bookwyrm/templates/lists/list.html:117
#: bookwyrm/templates/snippets/remove_from_group_button.html:19 #: bookwyrm/templates/snippets/remove_from_group_button.html:20
msgid "Remove" msgid "Remove"
msgstr "Entfernen" msgstr "Entfernen"
#: bookwyrm/templates/lists/list.html:130 #: bookwyrm/templates/lists/list.html:131
#: bookwyrm/templates/lists/list.html:147 #: bookwyrm/templates/lists/list.html:148
msgid "Sort List" msgid "Sort List"
msgstr "Liste sortieren" msgstr "Liste sortieren"
#: bookwyrm/templates/lists/list.html:140 #: bookwyrm/templates/lists/list.html:141
msgid "Direction" msgid "Direction"
msgstr "Reihenfolge" msgstr "Reihenfolge"
#: bookwyrm/templates/lists/list.html:154 #: bookwyrm/templates/lists/list.html:155
msgid "Add Books" msgid "Add Books"
msgstr "Bücher hinzufügen" msgstr "Bücher hinzufügen"
#: bookwyrm/templates/lists/list.html:156 #: bookwyrm/templates/lists/list.html:157
msgid "Suggest Books" msgid "Suggest Books"
msgstr "Bücher vorschlagen" msgstr "Bücher vorschlagen"
#: bookwyrm/templates/lists/list.html:167 #: bookwyrm/templates/lists/list.html:168
msgid "search" msgid "search"
msgstr "suchen" msgstr "suchen"
#: bookwyrm/templates/lists/list.html:173 #: bookwyrm/templates/lists/list.html:174
msgid "Clear search" msgid "Clear search"
msgstr "Suche zurücksetzen" msgstr "Suche zurücksetzen"
#: bookwyrm/templates/lists/list.html:178 #: bookwyrm/templates/lists/list.html:179
#, python-format #, python-format
msgid "No books found matching the query \"%(query)s\"" msgid "No books found matching the query \"%(query)s\""
msgstr "Keine passenden Bücher zu „%(query)s“ gefunden" msgstr "Keine passenden Bücher zu „%(query)s“ gefunden"
#: bookwyrm/templates/lists/list.html:210 #: bookwyrm/templates/lists/list.html:211
msgid "Suggest" msgid "Suggest"
msgstr "Vorschlagen" msgstr "Vorschlagen"
#: bookwyrm/templates/lists/list.html:221 #: bookwyrm/templates/lists/list.html:222
msgid "Embed this list on a website" msgid "Embed this list on a website"
msgstr "Diese Liste auf einer Webseite einbetten" msgstr "Diese Liste auf einer Webseite einbetten"
#: bookwyrm/templates/lists/list.html:229 #: bookwyrm/templates/lists/list.html:230
msgid "Copy embed code" msgid "Copy embed code"
msgstr "Code zum einbetten kopieren" msgstr "Code zum einbetten kopieren"
#: bookwyrm/templates/lists/list.html:231 #: bookwyrm/templates/lists/list.html:232
#, python-format #, python-format
msgid "%(list_name)s, a list by %(owner)s on %(site_name)s" msgid "%(list_name)s, a list by %(owner)s on %(site_name)s"
msgstr "%(list_name)s, eine Liste von %(owner)s auf %(site_name)s" msgstr "%(list_name)s, eine Liste von %(owner)s auf %(site_name)s"
@ -3914,15 +3910,15 @@ msgstr "Abgeschlossen"
msgid "This shelf is empty." msgid "This shelf is empty."
msgstr "Dieses Regal ist leer." msgstr "Dieses Regal ist leer."
#: bookwyrm/templates/snippets/add_to_group_button.html:15 #: bookwyrm/templates/snippets/add_to_group_button.html:16
msgid "Invite" msgid "Invite"
msgstr "Einladen" msgstr "Einladen"
#: bookwyrm/templates/snippets/add_to_group_button.html:24 #: bookwyrm/templates/snippets/add_to_group_button.html:25
msgid "Uninvite" msgid "Uninvite"
msgstr "Einladung stornieren" msgstr "Einladung stornieren"
#: bookwyrm/templates/snippets/add_to_group_button.html:28 #: bookwyrm/templates/snippets/add_to_group_button.html:29
#, python-format #, python-format
msgid "Remove @%(username)s" msgid "Remove @%(username)s"
msgstr "@%(username)s entfernen" msgstr "@%(username)s entfernen"
@ -4010,7 +4006,7 @@ msgstr "Spoileralarm!"
msgid "Include spoiler alert" msgid "Include spoiler alert"
msgstr "Spoileralarm aktivieren" msgstr "Spoileralarm aktivieren"
#: bookwyrm/templates/snippets/create_status/layout.html:48 #: bookwyrm/templates/snippets/create_status/layout.html:47
#: bookwyrm/templates/snippets/reading_modals/form.html:7 #: bookwyrm/templates/snippets/reading_modals/form.html:7
msgid "Comment:" msgid "Comment:"
msgstr "Kommentar:" msgstr "Kommentar:"
@ -4019,33 +4015,33 @@ msgstr "Kommentar:"
msgid "Post" msgid "Post"
msgstr "Veröffentlichen" msgstr "Veröffentlichen"
#: bookwyrm/templates/snippets/create_status/quotation.html:17 #: bookwyrm/templates/snippets/create_status/quotation.html:16
msgid "Quote:" msgid "Quote:"
msgstr "Zitat:" msgstr "Zitat:"
#: bookwyrm/templates/snippets/create_status/quotation.html:25 #: bookwyrm/templates/snippets/create_status/quotation.html:24
#, python-format #, python-format
msgid "An excerpt from '%(book_title)s'" msgid "An excerpt from '%(book_title)s'"
msgstr "Ein Auszug aus „%(book_title)s“" msgstr "Ein Auszug aus „%(book_title)s“"
#: bookwyrm/templates/snippets/create_status/quotation.html:32 #: bookwyrm/templates/snippets/create_status/quotation.html:31
msgid "Position:" msgid "Position:"
msgstr "Position:" msgstr "Position:"
#: bookwyrm/templates/snippets/create_status/quotation.html:45 #: bookwyrm/templates/snippets/create_status/quotation.html:44
msgid "On page:" msgid "On page:"
msgstr "Auf Seite:" msgstr "Auf Seite:"
#: bookwyrm/templates/snippets/create_status/quotation.html:51 #: bookwyrm/templates/snippets/create_status/quotation.html:50
msgid "At percent:" msgid "At percent:"
msgstr "Bei Prozentsatz:" msgstr "Bei Prozentsatz:"
#: bookwyrm/templates/snippets/create_status/review.html:25 #: bookwyrm/templates/snippets/create_status/review.html:24
#, python-format #, python-format
msgid "Your review of '%(book_title)s'" msgid "Your review of '%(book_title)s'"
msgstr "Deine Besprechung von „%(book_title)s“" msgstr "Deine Besprechung von „%(book_title)s“"
#: bookwyrm/templates/snippets/create_status/review.html:40 #: bookwyrm/templates/snippets/create_status/review.html:39
msgid "Review:" msgid "Review:"
msgstr "Besprechung:" msgstr "Besprechung:"
@ -4099,7 +4095,7 @@ msgid "Unfollow"
msgstr "Entfolgen" msgstr "Entfolgen"
#: bookwyrm/templates/snippets/follow_request_buttons.html:7 #: bookwyrm/templates/snippets/follow_request_buttons.html:7
#: bookwyrm/templates/snippets/join_invitation_buttons.html:8 #: bookwyrm/templates/snippets/join_invitation_buttons.html:9
msgid "Accept" msgid "Accept"
msgstr "Annehmen" msgstr "Annehmen"
@ -4139,15 +4135,15 @@ msgstr[1] "hat <em><a href=\"%(path)s\">%(title)s</a></em> mit %(display_rating)
#: bookwyrm/templates/snippets/generated_status/review_pure_name.html:4 #: bookwyrm/templates/snippets/generated_status/review_pure_name.html:4
#, python-format #, python-format
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(display_rating)s star): %(review_title)s" msgid "Review of \"%(book_title)s\" (%(display_rating)s star): %(review_title)s"
msgid_plural "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(display_rating)s stars): %(review_title)s" msgid_plural "Review of \"%(book_title)s\" (%(display_rating)s stars): %(review_title)s"
msgstr[0] "Besprechung von „<a href='%(book_path)s'>%(book_title)s</a>“ (%(display_rating)s Stern): %(review_title)s" msgstr[0] ""
msgstr[1] "Besprechungen von „<a href='%(book_path)s'>%(book_title)s</a>“ (%(display_rating)s Stern): %(review_title)s" msgstr[1] ""
#: bookwyrm/templates/snippets/generated_status/review_pure_name.html:12 #: bookwyrm/templates/snippets/generated_status/review_pure_name.html:12
#, python-format #, python-format
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\": %(review_title)s" msgid "Review of \"%(book_title)s\": %(review_title)s"
msgstr "Besprechung von „<a href='%(book_path)s'>%(book_title)s</a>: %(review_title)s" msgstr ""
#: bookwyrm/templates/snippets/goal_form.html:4 #: bookwyrm/templates/snippets/goal_form.html:4
#, python-format #, python-format
@ -4217,11 +4213,11 @@ msgstr "Nur für Follower*innen"
msgid "Post privacy" msgid "Post privacy"
msgstr "Beitragssichtbarkeit" msgstr "Beitragssichtbarkeit"
#: bookwyrm/templates/snippets/rate_action.html:4 #: bookwyrm/templates/snippets/rate_action.html:5
msgid "Leave a rating" msgid "Leave a rating"
msgstr "Bewerten" msgstr "Bewerten"
#: bookwyrm/templates/snippets/rate_action.html:19 #: bookwyrm/templates/snippets/rate_action.html:20
msgid "Rate" msgid "Rate"
msgstr "Bewerten" msgstr "Bewerten"
@ -4315,29 +4311,29 @@ msgstr "Aus %(name)s entfernen"
msgid "Finish reading" msgid "Finish reading"
msgstr "Lesen abschließen" msgstr "Lesen abschließen"
#: bookwyrm/templates/snippets/status/content_status.html:72 #: bookwyrm/templates/snippets/status/content_status.html:73
msgid "Content warning" msgid "Content warning"
msgstr "Inhaltswarnung" msgstr "Inhaltswarnung"
#: bookwyrm/templates/snippets/status/content_status.html:79 #: bookwyrm/templates/snippets/status/content_status.html:80
msgid "Show status" msgid "Show status"
msgstr "Status anzeigen" msgstr "Status anzeigen"
#: bookwyrm/templates/snippets/status/content_status.html:101 #: bookwyrm/templates/snippets/status/content_status.html:102
#, python-format #, python-format
msgid "(Page %(page)s)" msgid "(Page %(page)s)"
msgstr "(Seite %(page)s)" msgstr "(Seite %(page)s)"
#: bookwyrm/templates/snippets/status/content_status.html:103 #: bookwyrm/templates/snippets/status/content_status.html:104
#, python-format #, python-format
msgid "(%(percent)s%%)" msgid "(%(percent)s%%)"
msgstr "(%(percent)s%%)" msgstr "(%(percent)s%%)"
#: bookwyrm/templates/snippets/status/content_status.html:125 #: bookwyrm/templates/snippets/status/content_status.html:126
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/content_status.html:144 #: bookwyrm/templates/snippets/status/content_status.html:145
msgid "Hide status" msgid "Hide status"
msgstr "Status ausblenden" msgstr "Status ausblenden"
@ -4630,7 +4626,7 @@ msgstr "Es wurde kein*e Benutzer*in mit dieser E-Mail-Adresse gefunden."
msgid "A password reset link was sent to {email}" msgid "A password reset link was sent to {email}"
msgstr "Ein Link zum Zurücksetzen des Passworts wurde an {email} gesendet" msgstr "Ein Link zum Zurücksetzen des Passworts wurde an {email} gesendet"
#: bookwyrm/views/rss_feed.py:35 #: bookwyrm/views/rss_feed.py:34
#, python-brace-format #, python-brace-format
msgid "Status updates from {obj.display_name}" msgid "Status updates from {obj.display_name}"
msgstr "Status -Updates von {obj.display_name}" msgstr "Status -Updates von {obj.display_name}"

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: 2022-01-20 17:58+0000\n" "POT-Creation-Date: 2022-01-28 02:50+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"
@ -47,33 +47,33 @@ msgstr ""
msgid "Unlimited" msgid "Unlimited"
msgstr "" msgstr ""
#: bookwyrm/forms.py:483 #: bookwyrm/forms.py:489
msgid "List Order" msgid "List Order"
msgstr "" msgstr ""
#: bookwyrm/forms.py:484 #: bookwyrm/forms.py:490
msgid "Book Title" msgid "Book Title"
msgstr "" msgstr ""
#: bookwyrm/forms.py:485 bookwyrm/templates/shelf/shelf.html:155 #: bookwyrm/forms.py:491 bookwyrm/templates/shelf/shelf.html:155
#: bookwyrm/templates/shelf/shelf.html:187 #: bookwyrm/templates/shelf/shelf.html:187
#: bookwyrm/templates/snippets/create_status/review.html:32 #: bookwyrm/templates/snippets/create_status/review.html:32
msgid "Rating" msgid "Rating"
msgstr "" msgstr ""
#: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:135 #: bookwyrm/forms.py:493 bookwyrm/templates/lists/list.html:177
msgid "Sort By" msgid "Sort By"
msgstr "" msgstr ""
#: bookwyrm/forms.py:491 #: bookwyrm/forms.py:497
msgid "Ascending" msgid "Ascending"
msgstr "" msgstr ""
#: bookwyrm/forms.py:492 #: bookwyrm/forms.py:498
msgid "Descending" msgid "Descending"
msgstr "" msgstr ""
#: bookwyrm/forms.py:505 #: bookwyrm/forms.py:511
msgid "Reading finish date cannot be before start date." msgid "Reading finish date cannot be before start date."
msgstr "" msgstr ""
@ -284,10 +284,14 @@ msgid "Português Europeu (European Portuguese)"
msgstr "" msgstr ""
#: bookwyrm/settings.py:258 #: bookwyrm/settings.py:258
msgid "简体中文 (Simplified Chinese)" msgid "Swedish (Svenska)"
msgstr "" msgstr ""
#: bookwyrm/settings.py:259 #: bookwyrm/settings.py:259
msgid "简体中文 (Simplified Chinese)"
msgstr ""
#: bookwyrm/settings.py:260
msgid "繁體中文 (Traditional Chinese)" msgid "繁體中文 (Traditional Chinese)"
msgstr "" msgstr ""
@ -316,54 +320,54 @@ msgstr ""
msgid "About" msgid "About"
msgstr "" msgstr ""
#: bookwyrm/templates/about/about.html:18 #: bookwyrm/templates/about/about.html:19
#: bookwyrm/templates/get_started/layout.html:20 #: bookwyrm/templates/get_started/layout.html:20
#, python-format #, python-format
msgid "Welcome to %(site_name)s!" msgid "Welcome to %(site_name)s!"
msgstr "" msgstr ""
#: bookwyrm/templates/about/about.html:22 #: bookwyrm/templates/about/about.html:23
#, python-format #, python-format
msgid "%(site_name)s is part of <em>BookWyrm</em>, a network of independent, self-directed communities for readers. While you can interact seamlessly with users anywhere in the <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">BookWyrm network</a>, this community is unique." msgid "%(site_name)s is part of <em>BookWyrm</em>, a network of independent, self-directed communities for readers. While you can interact seamlessly with users anywhere in the <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">BookWyrm network</a>, this community is unique."
msgstr "" msgstr ""
#: bookwyrm/templates/about/about.html:39 #: bookwyrm/templates/about/about.html:40
#, python-format #, python-format
msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> is %(site_name)s's most beloved book, with an average rating of %(rating)s out of 5." msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> is %(site_name)s's most beloved book, with an average rating of %(rating)s out of 5."
msgstr "" msgstr ""
#: bookwyrm/templates/about/about.html:58 #: bookwyrm/templates/about/about.html:59
#, python-format #, python-format
msgid "More %(site_name)s users want to read <a href=\"%(book_path)s\"><em>%(title)s</em></a> than any other book." msgid "More %(site_name)s users want to read <a href=\"%(book_path)s\"><em>%(title)s</em></a> than any other book."
msgstr "" msgstr ""
#: bookwyrm/templates/about/about.html:77 #: bookwyrm/templates/about/about.html:78
#, python-format #, python-format
msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> has the most divisive ratings of any book on %(site_name)s." msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> has the most divisive ratings of any book on %(site_name)s."
msgstr "" msgstr ""
#: bookwyrm/templates/about/about.html:88 #: bookwyrm/templates/about/about.html:89
msgid "Track your reading, talk about books, write reviews, and discover what to read next. Always ad-free, anti-corporate, and community-oriented, BookWyrm is human-scale software, designed to stay small and personal. If you have feature requests, bug reports, or grand dreams, <a href='https://joinbookwyrm.com/get-involved' target='_blank'>reach out</a> and make yourself heard." msgid "Track your reading, talk about books, write reviews, and discover what to read next. Always ad-free, anti-corporate, and community-oriented, BookWyrm is human-scale software, designed to stay small and personal. If you have feature requests, bug reports, or grand dreams, <a href='https://joinbookwyrm.com/get-involved' target='_blank'>reach out</a> and make yourself heard."
msgstr "" msgstr ""
#: bookwyrm/templates/about/about.html:95 #: bookwyrm/templates/about/about.html:96
msgid "Meet your admins" msgid "Meet your admins"
msgstr "" msgstr ""
#: bookwyrm/templates/about/about.html:98 #: bookwyrm/templates/about/about.html:99
#, python-format #, python-format
msgid "%(site_name)s's moderators and administrators keep the site up and running, enforce the <a href=\"coc_path\">code of conduct</a>, and respond when users report spam and bad behavior." msgid "%(site_name)s's moderators and administrators keep the site up and running, enforce the <a href=\"coc_path\">code of conduct</a>, and respond when users report spam and bad behavior."
msgstr "" msgstr ""
#: bookwyrm/templates/about/about.html:112 #: bookwyrm/templates/about/about.html:113
msgid "Moderator" msgid "Moderator"
msgstr "" msgstr ""
#: bookwyrm/templates/about/about.html:114 bookwyrm/templates/layout.html:131 #: bookwyrm/templates/about/about.html:115 bookwyrm/templates/layout.html:131
msgid "Admin" msgid "Admin"
msgstr "" msgstr ""
#: bookwyrm/templates/about/about.html:130 #: bookwyrm/templates/about/about.html:131
#: bookwyrm/templates/settings/users/user_moderation_actions.html:14 #: bookwyrm/templates/settings/users/user_moderation_actions.html:14
#: bookwyrm/templates/snippets/status/status_options.html:35 #: bookwyrm/templates/snippets/status/status_options.html:35
#: bookwyrm/templates/snippets/user_options.html:13 #: bookwyrm/templates/snippets/user_options.html:13
@ -425,7 +429,7 @@ msgid "Copy address"
msgstr "" msgstr ""
#: bookwyrm/templates/annual_summary/layout.html:68 #: bookwyrm/templates/annual_summary/layout.html:68
#: bookwyrm/templates/lists/list.html:231 #: bookwyrm/templates/lists/list.html:269
msgid "Copied!" msgid "Copied!"
msgstr "" msgstr ""
@ -690,6 +694,7 @@ msgstr ""
#: bookwyrm/templates/book/file_links/edit_links.html:82 #: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:30 #: bookwyrm/templates/groups/form.html:30
#: bookwyrm/templates/lists/bookmark_button.html:15 #: bookwyrm/templates/lists/bookmark_button.html:15
#: bookwyrm/templates/lists/edit_item_form.html:15
#: bookwyrm/templates/lists/form.html:130 #: bookwyrm/templates/lists/form.html:130
#: bookwyrm/templates/preferences/edit_user.html:124 #: bookwyrm/templates/preferences/edit_user.html:124
#: bookwyrm/templates/readthrough/readthrough_modal.html:72 #: bookwyrm/templates/readthrough/readthrough_modal.html:72
@ -713,6 +718,7 @@ msgstr ""
#: bookwyrm/templates/book/file_links/verification_modal.html:21 #: bookwyrm/templates/book/file_links/verification_modal.html:21
#: bookwyrm/templates/book/sync_modal.html:23 #: bookwyrm/templates/book/sync_modal.html:23
#: bookwyrm/templates/groups/delete_group_modal.html:17 #: bookwyrm/templates/groups/delete_group_modal.html:17
#: bookwyrm/templates/lists/add_item_modal.html:42
#: bookwyrm/templates/lists/delete_list_modal.html:18 #: bookwyrm/templates/lists/delete_list_modal.html:18
#: bookwyrm/templates/readthrough/delete_readthrough_modal.html:23 #: bookwyrm/templates/readthrough/delete_readthrough_modal.html:23
#: bookwyrm/templates/readthrough/readthrough_modal.html:74 #: bookwyrm/templates/readthrough/readthrough_modal.html:74
@ -817,7 +823,7 @@ msgstr ""
#: bookwyrm/templates/book/book.html:348 #: bookwyrm/templates/book/book.html:348
#: bookwyrm/templates/groups/group.html:19 bookwyrm/templates/layout.html:74 #: bookwyrm/templates/groups/group.html:19 bookwyrm/templates/layout.html:74
#: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:11 #: bookwyrm/templates/lists/curate.html:8 bookwyrm/templates/lists/list.html:12
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
#: bookwyrm/templates/search/layout.html:25 #: bookwyrm/templates/search/layout.html:25
#: bookwyrm/templates/search/layout.html:50 #: bookwyrm/templates/search/layout.html:50
@ -831,7 +837,8 @@ msgstr ""
#: bookwyrm/templates/book/book.html:369 #: bookwyrm/templates/book/book.html:369
#: bookwyrm/templates/book/cover_add_modal.html:31 #: bookwyrm/templates/book/cover_add_modal.html:31
#: bookwyrm/templates/lists/list.html:209 #: bookwyrm/templates/lists/add_item_modal.html:37
#: bookwyrm/templates/lists/list.html:247
#: bookwyrm/templates/settings/email_blocklist/domain_form.html:24 #: bookwyrm/templates/settings/email_blocklist/domain_form.html:24
#: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:31 #: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:31
msgid "Add" msgid "Add"
@ -1551,16 +1558,11 @@ msgstr ""
msgid "You have no messages right now." msgid "You have no messages right now."
msgstr "" msgstr ""
#: bookwyrm/templates/feed/feed.html:28 #: bookwyrm/templates/feed/feed.html:54
#, python-format
msgid "load <span data-poll=\"stream/%(tab_key)s\">0</span> unread status(es)"
msgstr ""
#: bookwyrm/templates/feed/feed.html:51
msgid "There aren't any activities right now! Try following a user to get started" msgid "There aren't any activities right now! Try following a user to get started"
msgstr "" msgstr ""
#: bookwyrm/templates/feed/feed.html:52 #: bookwyrm/templates/feed/feed.html:55
msgid "Alternatively, you can try enabling more status types" msgid "Alternatively, you can try enabling more status types"
msgstr "" msgstr ""
@ -1649,7 +1651,7 @@ msgid "What are you reading?"
msgstr "" msgstr ""
#: bookwyrm/templates/get_started/books.html:9 #: bookwyrm/templates/get_started/books.html:9
#: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:163 #: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:205
msgid "Search for a book" msgid "Search for a book"
msgstr "" msgstr ""
@ -1669,7 +1671,7 @@ msgstr ""
#: bookwyrm/templates/get_started/users.html:19 #: bookwyrm/templates/get_started/users.html:19
#: bookwyrm/templates/groups/members.html:15 #: bookwyrm/templates/groups/members.html:15
#: bookwyrm/templates/groups/members.html:16 bookwyrm/templates/layout.html:53 #: bookwyrm/templates/groups/members.html:16 bookwyrm/templates/layout.html:53
#: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:167 #: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:209
#: bookwyrm/templates/search/layout.html:4 #: bookwyrm/templates/search/layout.html:4
#: bookwyrm/templates/search/layout.html:9 #: bookwyrm/templates/search/layout.html:9
msgid "Search" msgid "Search"
@ -1685,7 +1687,7 @@ msgid "Popular on %(site_name)s"
msgstr "" msgstr ""
#: bookwyrm/templates/get_started/books.html:58 #: bookwyrm/templates/get_started/books.html:58
#: bookwyrm/templates/lists/list.html:180 #: bookwyrm/templates/lists/list.html:222
msgid "No books found" msgid "No books found"
msgstr "" msgstr ""
@ -2034,7 +2036,7 @@ msgid "Approving a suggestion will permanently add the suggested book to your sh
msgstr "" msgstr ""
#: bookwyrm/templates/import/manual_review.html:58 #: bookwyrm/templates/import/manual_review.html:58
#: bookwyrm/templates/lists/curate.html:59 #: bookwyrm/templates/lists/curate.html:71
#: bookwyrm/templates/settings/link_domains/link_domains.html:76 #: bookwyrm/templates/settings/link_domains/link_domains.html:76
msgid "Approve" msgid "Approve"
msgstr "" msgstr ""
@ -2245,6 +2247,21 @@ msgstr ""
msgid "BookWyrm's source code is freely available. You can contribute or report issues on <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>." msgid "BookWyrm's source code is freely available. You can contribute or report issues on <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>."
msgstr "" msgstr ""
#: bookwyrm/templates/lists/add_item_modal.html:8
#, python-format
msgid "Add \"<em>%(title)s</em>\" to this list"
msgstr ""
#: bookwyrm/templates/lists/add_item_modal.html:12
#, python-format
msgid "Suggest \"<em>%(title)s</em>\" for this list"
msgstr ""
#: bookwyrm/templates/lists/add_item_modal.html:39
#: bookwyrm/templates/lists/list.html:249
msgid "Suggest"
msgstr ""
#: bookwyrm/templates/lists/bookmark_button.html:30 #: bookwyrm/templates/lists/bookmark_button.html:30
msgid "Un-save" msgid "Un-save"
msgstr "" msgstr ""
@ -2264,23 +2281,29 @@ msgstr ""
msgid "Created by <a href=\"%(path)s\">%(username)s</a>" msgid "Created by <a href=\"%(path)s\">%(username)s</a>"
msgstr "" msgstr ""
#: bookwyrm/templates/lists/curate.html:11 #: bookwyrm/templates/lists/curate.html:12
msgid "Curate" msgid "Curate"
msgstr "" msgstr ""
#: bookwyrm/templates/lists/curate.html:20 #: bookwyrm/templates/lists/curate.html:21
msgid "Pending Books" msgid "Pending Books"
msgstr "" msgstr ""
#: bookwyrm/templates/lists/curate.html:23 #: bookwyrm/templates/lists/curate.html:24
msgid "You're all set!" msgid "You're all set!"
msgstr "" msgstr ""
#: bookwyrm/templates/lists/curate.html:43 #: bookwyrm/templates/lists/curate.html:45
#: bookwyrm/templates/lists/list.html:83
#, python-format
msgid "<a href=\"%(user_path)s\">%(username)s</a> says:"
msgstr ""
#: bookwyrm/templates/lists/curate.html:55
msgid "Suggested by" msgid "Suggested by"
msgstr "" msgstr ""
#: bookwyrm/templates/lists/curate.html:65 #: bookwyrm/templates/lists/curate.html:77
msgid "Discard" msgid "Discard"
msgstr "" msgstr ""
@ -2304,7 +2327,7 @@ msgid "on <a href=\"/\">%(site_name)s</a>"
msgstr "" msgstr ""
#: bookwyrm/templates/lists/embed-list.html:27 #: bookwyrm/templates/lists/embed-list.html:27
#: bookwyrm/templates/lists/list.html:43 #: bookwyrm/templates/lists/list.html:44
msgid "This list is currently empty" msgid "This list is currently empty"
msgstr "" msgstr ""
@ -2365,76 +2388,89 @@ msgstr ""
msgid "Delete list" msgid "Delete list"
msgstr "" msgstr ""
#: bookwyrm/templates/lists/list.html:35 #: bookwyrm/templates/lists/item_notes_field.html:7
#: bookwyrm/templates/settings/federation/edit_instance.html:74
msgid "Notes:"
msgstr ""
#: bookwyrm/templates/lists/item_notes_field.html:19
msgid "An optional note that will be displayed with the book."
msgstr ""
#: bookwyrm/templates/lists/list.html:36
msgid "You successfully suggested a book for this list!" msgid "You successfully suggested a book for this list!"
msgstr "" msgstr ""
#: bookwyrm/templates/lists/list.html:37 #: bookwyrm/templates/lists/list.html:38
msgid "You successfully added a book to this list!" msgid "You successfully added a book to this list!"
msgstr "" msgstr ""
#: bookwyrm/templates/lists/list.html:81 #: bookwyrm/templates/lists/list.html:96
msgid "Edit notes"
msgstr ""
#: bookwyrm/templates/lists/list.html:111
msgid "Add notes"
msgstr ""
#: bookwyrm/templates/lists/list.html:123
#, python-format #, python-format
msgid "Added by <a href=\"%(user_path)s\">%(username)s</a>" msgid "Added by <a href=\"%(user_path)s\">%(username)s</a>"
msgstr "" msgstr ""
#: bookwyrm/templates/lists/list.html:96 #: bookwyrm/templates/lists/list.html:138
msgid "List position" msgid "List position"
msgstr "" msgstr ""
#: bookwyrm/templates/lists/list.html:102 #: bookwyrm/templates/lists/list.html:144
#: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:21 #: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:21
msgid "Set" msgid "Set"
msgstr "" msgstr ""
#: bookwyrm/templates/lists/list.html:117 #: bookwyrm/templates/lists/list.html:159
#: bookwyrm/templates/snippets/remove_from_group_button.html:20 #: bookwyrm/templates/snippets/remove_from_group_button.html:20
msgid "Remove" msgid "Remove"
msgstr "" msgstr ""
#: bookwyrm/templates/lists/list.html:131 #: bookwyrm/templates/lists/list.html:173
#: bookwyrm/templates/lists/list.html:148 #: bookwyrm/templates/lists/list.html:190
msgid "Sort List" msgid "Sort List"
msgstr "" msgstr ""
#: bookwyrm/templates/lists/list.html:141 #: bookwyrm/templates/lists/list.html:183
msgid "Direction" msgid "Direction"
msgstr "" msgstr ""
#: bookwyrm/templates/lists/list.html:155 #: bookwyrm/templates/lists/list.html:197
msgid "Add Books" msgid "Add Books"
msgstr "" msgstr ""
#: bookwyrm/templates/lists/list.html:157 #: bookwyrm/templates/lists/list.html:199
msgid "Suggest Books" msgid "Suggest Books"
msgstr "" msgstr ""
#: bookwyrm/templates/lists/list.html:168 #: bookwyrm/templates/lists/list.html:210
msgid "search" msgid "search"
msgstr "" msgstr ""
#: bookwyrm/templates/lists/list.html:174 #: bookwyrm/templates/lists/list.html:216
msgid "Clear search" msgid "Clear search"
msgstr "" msgstr ""
#: bookwyrm/templates/lists/list.html:179 #: bookwyrm/templates/lists/list.html:221
#, python-format #, python-format
msgid "No books found matching the query \"%(query)s\"" msgid "No books found matching the query \"%(query)s\""
msgstr "" msgstr ""
#: bookwyrm/templates/lists/list.html:211 #: bookwyrm/templates/lists/list.html:260
msgid "Suggest"
msgstr ""
#: bookwyrm/templates/lists/list.html:222
msgid "Embed this list on a website" msgid "Embed this list on a website"
msgstr "" msgstr ""
#: bookwyrm/templates/lists/list.html:230 #: bookwyrm/templates/lists/list.html:268
msgid "Copy embed code" msgid "Copy embed code"
msgstr "" msgstr ""
#: bookwyrm/templates/lists/list.html:232 #: bookwyrm/templates/lists/list.html:270
#, python-format #, python-format
msgid "%(list_name)s, a list by %(owner)s on %(site_name)s" msgid "%(list_name)s, a list by %(owner)s on %(site_name)s"
msgstr "" msgstr ""
@ -3222,10 +3258,6 @@ msgstr ""
msgid "Version:" msgid "Version:"
msgstr "" msgstr ""
#: bookwyrm/templates/settings/federation/edit_instance.html:74
msgid "Notes:"
msgstr ""
#: bookwyrm/templates/settings/federation/instance.html:19 #: bookwyrm/templates/settings/federation/instance.html:19
msgid "Details" msgid "Details"
msgstr "" msgstr ""
@ -4626,7 +4658,14 @@ msgstr ""
msgid "A password reset link was sent to {email}" msgid "A password reset link was sent to {email}"
msgstr "" msgstr ""
#: bookwyrm/views/rss_feed.py:35 #: bookwyrm/views/rss_feed.py:34
#, python-brace-format #, python-brace-format
msgid "Status updates from {obj.display_name}" msgid "Status updates from {obj.display_name}"
msgstr "" msgstr ""
#: bookwyrm/views/updates.py:45
#, python-format
msgid "Load %(count)d unread status"
msgid_plural "Load %(count)d unread statuses"
msgstr[0] ""
msgstr[1] ""

Binary file not shown.

View file

@ -2,8 +2,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: bookwyrm\n" "Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-01-17 19:26+0000\n" "POT-Creation-Date: 2022-01-24 17:25+0000\n"
"PO-Revision-Date: 2022-01-17 20:55\n" "PO-Revision-Date: 2022-01-26 11:26\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n" "Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: Spanish\n" "Language-Team: Spanish\n"
"Language: es\n" "Language: es\n"
@ -56,11 +56,11 @@ msgstr "Título"
#: bookwyrm/forms.py:485 bookwyrm/templates/shelf/shelf.html:155 #: bookwyrm/forms.py:485 bookwyrm/templates/shelf/shelf.html:155
#: bookwyrm/templates/shelf/shelf.html:187 #: bookwyrm/templates/shelf/shelf.html:187
#: bookwyrm/templates/snippets/create_status/review.html:33 #: bookwyrm/templates/snippets/create_status/review.html:32
msgid "Rating" msgid "Rating"
msgstr "Valoración" msgstr "Valoración"
#: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:134 #: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:135
msgid "Sort By" msgid "Sort By"
msgstr "Ordenar por" msgstr "Ordenar por"
@ -224,69 +224,69 @@ msgstr "Citas"
msgid "Everything else" msgid "Everything else"
msgstr "Todo lo demás" msgstr "Todo lo demás"
#: bookwyrm/settings.py:121 #: bookwyrm/settings.py:173
msgid "Home Timeline" msgid "Home Timeline"
msgstr "Línea de tiempo principal" msgstr "Línea de tiempo principal"
#: bookwyrm/settings.py:121 #: bookwyrm/settings.py:173
msgid "Home" msgid "Home"
msgstr "Inicio" msgstr "Inicio"
#: bookwyrm/settings.py:122 #: bookwyrm/settings.py:174
msgid "Books Timeline" msgid "Books Timeline"
msgstr "Línea temporal de libros" msgstr "Línea temporal de libros"
#: bookwyrm/settings.py:122 bookwyrm/templates/search/layout.html:21 #: bookwyrm/settings.py:174 bookwyrm/templates/search/layout.html:21
#: bookwyrm/templates/search/layout.html:42 #: bookwyrm/templates/search/layout.html:42
#: bookwyrm/templates/user/layout.html:91 #: bookwyrm/templates/user/layout.html:91
msgid "Books" msgid "Books"
msgstr "Libros" msgstr "Libros"
#: bookwyrm/settings.py:196 #: bookwyrm/settings.py:248
msgid "English" msgid "English"
msgstr "English (Inglés)" msgstr "English (Inglés)"
#: bookwyrm/settings.py:197 #: bookwyrm/settings.py:249
msgid "Deutsch (German)" msgid "Deutsch (German)"
msgstr "Deutsch (Alemán)" msgstr "Deutsch (Alemán)"
#: bookwyrm/settings.py:198 #: bookwyrm/settings.py:250
msgid "Español (Spanish)" msgid "Español (Spanish)"
msgstr "Español" msgstr "Español"
#: bookwyrm/settings.py:199 #: bookwyrm/settings.py:251
msgid "Galego (Galician)" msgid "Galego (Galician)"
msgstr "Galego (Gallego)" msgstr "Galego (Gallego)"
#: bookwyrm/settings.py:200 #: bookwyrm/settings.py:252
msgid "Italiano (Italian)" msgid "Italiano (Italian)"
msgstr "Italiano" msgstr "Italiano"
#: bookwyrm/settings.py:201 #: bookwyrm/settings.py:253
msgid "Français (French)" msgid "Français (French)"
msgstr "Français (Francés)" msgstr "Français (Francés)"
#: bookwyrm/settings.py:202 #: bookwyrm/settings.py:254
msgid "Lietuvių (Lithuanian)" msgid "Lietuvių (Lithuanian)"
msgstr "Lietuvių (Lituano)" msgstr "Lietuvių (Lituano)"
#: bookwyrm/settings.py:203 #: bookwyrm/settings.py:255
msgid "Norsk (Norwegian)" msgid "Norsk (Norwegian)"
msgstr "Norsk (Noruego)" msgstr "Norsk (Noruego)"
#: bookwyrm/settings.py:204 #: bookwyrm/settings.py:256
msgid "Português do Brasil (Brazilian Portuguese)" msgid "Português do Brasil (Brazilian Portuguese)"
msgstr "Português do Brasil (Portugués brasileño)" msgstr "Português do Brasil (Portugués brasileño)"
#: bookwyrm/settings.py:205 #: bookwyrm/settings.py:257
msgid "Português Europeu (European Portuguese)" msgid "Português Europeu (European Portuguese)"
msgstr "Português Europeu (Portugués europeo)" msgstr "Português Europeu (Portugués europeo)"
#: bookwyrm/settings.py:206 #: bookwyrm/settings.py:258
msgid "简体中文 (Simplified Chinese)" msgid "简体中文 (Simplified Chinese)"
msgstr "简体中文 (Chino simplificado)" msgstr "简体中文 (Chino simplificado)"
#: bookwyrm/settings.py:207 #: bookwyrm/settings.py:259
msgid "繁體中文 (Traditional Chinese)" msgid "繁體中文 (Traditional Chinese)"
msgstr "繁體中文 (Chino tradicional)" msgstr "繁體中文 (Chino tradicional)"
@ -315,58 +315,54 @@ msgstr "¡Algo salió mal! Disculpa."
msgid "About" msgid "About"
msgstr "Acerca de" msgstr "Acerca de"
#: bookwyrm/templates/about/about.html:18 #: bookwyrm/templates/about/about.html:19
#: bookwyrm/templates/get_started/layout.html:20 #: bookwyrm/templates/get_started/layout.html:20
#, python-format #, python-format
msgid "Welcome to %(site_name)s!" msgid "Welcome to %(site_name)s!"
msgstr "¡Bienvenido a %(site_name)s!" msgstr "¡Bienvenido a %(site_name)s!"
#: bookwyrm/templates/about/about.html:22 #: bookwyrm/templates/about/about.html:23
#, python-format #, python-format
msgid "%(site_name)s is part of <em>BookWyrm</em>, a network of independent, self-directed communities for readers. While you can interact seamlessly with users anywhere in the <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">BookWyrm network</a>, this community is unique." msgid "%(site_name)s is part of <em>BookWyrm</em>, a network of independent, self-directed communities for readers. While you can interact seamlessly with users anywhere in the <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">BookWyrm network</a>, this community is unique."
msgstr "%(site_name)s es parte de <em>BookWyrm</em>, una red de comunidades independientes y autogestionadas para lectores. Aunque puedes interactuar sin problemas con los usuarios de cualquier parte de la <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">red BookWyrm</a>, esta comunidad es única." msgstr "%(site_name)s es parte de <em>BookWyrm</em>, una red de comunidades independientes y autogestionadas para lectores. Aunque puedes interactuar sin problemas con los usuarios de cualquier parte de la <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">red BookWyrm</a>, esta comunidad es única."
#: bookwyrm/templates/about/about.html:39 #: bookwyrm/templates/about/about.html:40
#, python-format #, python-format
msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> is %(site_name)s's most beloved book, with an average rating of %(rating)s out of 5." msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> is %(site_name)s's most beloved book, with an average rating of %(rating)s out of 5."
msgstr "<a href=\"%(book_path)s\"><em>%(title)s</em></a> es el libro más querido de %(site_name)s, con una valoración promedio de %(rating)s sobre 5." msgstr "<a href=\"%(book_path)s\"><em>%(title)s</em></a> es el libro más querido de %(site_name)s, con una valoración promedio de %(rating)s sobre 5."
#: bookwyrm/templates/about/about.html:58 #: bookwyrm/templates/about/about.html:59
#, python-format #, python-format
msgid "More %(site_name)s users want to read <a href=\"%(book_path)s\"><em>%(title)s</em></a> than any other book." msgid "More %(site_name)s users want to read <a href=\"%(book_path)s\"><em>%(title)s</em></a> than any other book."
msgstr "Los usuarios de %(site_name)s quieren leer <a href=\"%(book_path)s\"><em>%(title)s</em></a> más que cualquier otro libro." msgstr "Los usuarios de %(site_name)s quieren leer <a href=\"%(book_path)s\"><em>%(title)s</em></a> más que cualquier otro libro."
#: bookwyrm/templates/about/about.html:77 #: bookwyrm/templates/about/about.html:78
#, python-format #, python-format
msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> has the most divisive ratings of any book on %(site_name)s." msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> has the most divisive ratings of any book on %(site_name)s."
msgstr "Las valoraciones de <a href=\"%(book_path)s\"><em>%(title)s</em></a> están más divididas que las de cualquier otro libro en %(site_name)s." msgstr "Las valoraciones de <a href=\"%(book_path)s\"><em>%(title)s</em></a> están más divididas que las de cualquier otro libro en %(site_name)s."
#: bookwyrm/templates/about/about.html:88 #: bookwyrm/templates/about/about.html:89
msgid "Track your reading, talk about books, write reviews, and discover what to read next. Always ad-free, anti-corporate, and community-oriented, BookWyrm is human-scale software, designed to stay small and personal. If you have feature requests, bug reports, or grand dreams, <a href='https://joinbookwyrm.com/get-involved' target='_blank'>reach out</a> and make yourself heard." msgid "Track your reading, talk about books, write reviews, and discover what to read next. Always ad-free, anti-corporate, and community-oriented, BookWyrm is human-scale software, designed to stay small and personal. If you have feature requests, bug reports, or grand dreams, <a href='https://joinbookwyrm.com/get-involved' target='_blank'>reach out</a> and make yourself heard."
msgstr "Haz un registro de tu lectura, habla sobre libros, escribe reseñas y descubre qué leer a continuación. BookWyrm es un software de escala humana, siempre sin anuncios, anticorporativo y orientado a la comunidad, diseñado para ser pequeño y personal. Si tienes solicitudes de características, informes de errores o grandes sueños, <a href='https://joinbookwyrm.com/get-involved' target='_blank'>contacta</a> y hazte oír." msgstr "Haz un registro de tu lectura, habla sobre libros, escribe reseñas y descubre qué leer a continuación. BookWyrm es un software de escala humana, siempre sin anuncios, anticorporativo y orientado a la comunidad, diseñado para ser pequeño y personal. Si tienes solicitudes de características, informes de errores o grandes sueños, <a href='https://joinbookwyrm.com/get-involved' target='_blank'>contacta</a> y hazte oír."
#: bookwyrm/templates/about/about.html:95 #: bookwyrm/templates/about/about.html:96
msgid "Meet your admins" msgid "Meet your admins"
msgstr "Conoce a tus administradores" msgstr "Conoce a tus administradores"
#: bookwyrm/templates/about/about.html:98 #: bookwyrm/templates/about/about.html:99
#, python-format #, python-format
msgid "\n" msgid "%(site_name)s's moderators and administrators keep the site up and running, enforce the <a href=\"coc_path\">code of conduct</a>, and respond when users report spam and bad behavior."
" %(site_name)s's moderators and administrators keep the site up and running, enforce the <a href=\"coc_path\">code of conduct</a>, and respond when users report spam and bad behavior.\n" msgstr "Los moderadores y administradores de %(site_name)s mantienen el sitio en funcionamiento, hacen cumplir el <a href=\"coc_path\">código de conducta</a> y responden cuando los usuarios informan de spam y mal comportamiento."
" "
msgstr "\n"
" Los moderadores y administradores de %(site_name)s mantienen el sitio en funcionamiento, hacen cumplir el <a href=\"coc_path\">código de conducta</a> y responden cuando los usuarios reportan spam y mal comportamiento.\n"
" "
#: bookwyrm/templates/about/about.html:112 #: bookwyrm/templates/about/about.html:113
msgid "Moderator" msgid "Moderator"
msgstr "Moderador" msgstr "Moderador"
#: bookwyrm/templates/about/about.html:114 bookwyrm/templates/layout.html:131 #: bookwyrm/templates/about/about.html:115 bookwyrm/templates/layout.html:131
msgid "Admin" msgid "Admin"
msgstr "Administrador" msgstr "Administrador"
#: bookwyrm/templates/about/about.html:130 #: bookwyrm/templates/about/about.html:131
#: bookwyrm/templates/settings/users/user_moderation_actions.html:14 #: bookwyrm/templates/settings/users/user_moderation_actions.html:14
#: bookwyrm/templates/snippets/status/status_options.html:35 #: bookwyrm/templates/snippets/status/status_options.html:35
#: bookwyrm/templates/snippets/user_options.html:13 #: bookwyrm/templates/snippets/user_options.html:13
@ -428,7 +424,7 @@ msgid "Copy address"
msgstr "Copiar dirección" msgstr "Copiar dirección"
#: bookwyrm/templates/annual_summary/layout.html:68 #: bookwyrm/templates/annual_summary/layout.html:68
#: bookwyrm/templates/lists/list.html:230 #: bookwyrm/templates/lists/list.html:231
msgid "Copied!" msgid "Copied!"
msgstr "¡Copiado!" msgstr "¡Copiado!"
@ -497,7 +493,7 @@ msgstr "Su lectura más corta de este año…"
#: bookwyrm/templates/annual_summary/layout.html:245 #: bookwyrm/templates/annual_summary/layout.html:245
#: bookwyrm/templates/book/book.html:47 #: bookwyrm/templates/book/book.html:47
#: bookwyrm/templates/discover/large-book.html:22 #: bookwyrm/templates/discover/large-book.html:22
#: bookwyrm/templates/landing/large-book.html:25 #: bookwyrm/templates/landing/large-book.html:26
#: bookwyrm/templates/landing/small-book.html:18 #: bookwyrm/templates/landing/small-book.html:18
msgid "by" msgid "by"
msgstr "por" msgstr "por"
@ -733,9 +729,9 @@ msgstr "La carga de datos se conectará a <strong>%(source_name)s</strong> y com
#: bookwyrm/templates/author/sync_modal.html:22 #: bookwyrm/templates/author/sync_modal.html:22
#: bookwyrm/templates/book/edit/edit_book.html:108 #: bookwyrm/templates/book/edit/edit_book.html:108
#: bookwyrm/templates/book/sync_modal.html:22 #: bookwyrm/templates/book/sync_modal.html:22
#: bookwyrm/templates/groups/members.html:30 #: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42 #: bookwyrm/templates/landing/password_reset.html:42
#: bookwyrm/templates/snippets/remove_from_group_button.html:16 #: bookwyrm/templates/snippets/remove_from_group_button.html:17
msgid "Confirm" msgid "Confirm"
msgstr "Confirmar" msgstr "Confirmar"
@ -819,8 +815,8 @@ msgid "Places"
msgstr "Lugares" msgstr "Lugares"
#: bookwyrm/templates/book/book.html:348 #: bookwyrm/templates/book/book.html:348
#: bookwyrm/templates/groups/group.html:20 bookwyrm/templates/layout.html:74 #: bookwyrm/templates/groups/group.html:19 bookwyrm/templates/layout.html:74
#: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:10 #: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:11
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
#: bookwyrm/templates/search/layout.html:25 #: bookwyrm/templates/search/layout.html:25
#: bookwyrm/templates/search/layout.html:50 #: bookwyrm/templates/search/layout.html:50
@ -834,7 +830,7 @@ msgstr "Agregar a lista"
#: bookwyrm/templates/book/book.html:369 #: bookwyrm/templates/book/book.html:369
#: bookwyrm/templates/book/cover_add_modal.html:31 #: bookwyrm/templates/book/cover_add_modal.html:31
#: bookwyrm/templates/lists/list.html:208 #: bookwyrm/templates/lists/list.html:209
#: bookwyrm/templates/settings/email_blocklist/domain_form.html:24 #: bookwyrm/templates/settings/email_blocklist/domain_form.html:24
#: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:31 #: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:31
msgid "Add" msgid "Add"
@ -936,7 +932,7 @@ msgid "Back"
msgstr "Volver" msgstr "Volver"
#: bookwyrm/templates/book/edit/edit_book_form.html:21 #: bookwyrm/templates/book/edit/edit_book_form.html:21
#: bookwyrm/templates/snippets/create_status/review.html:16 #: bookwyrm/templates/snippets/create_status/review.html:15
msgid "Title:" msgid "Title:"
msgstr "Título:" msgstr "Título:"
@ -1653,7 +1649,7 @@ msgid "What are you reading?"
msgstr "¿Qué estás leyendo?" msgstr "¿Qué estás leyendo?"
#: bookwyrm/templates/get_started/books.html:9 #: bookwyrm/templates/get_started/books.html:9
#: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:162 #: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:163
msgid "Search for a book" msgid "Search for a book"
msgstr "Buscar libros" msgstr "Buscar libros"
@ -1671,9 +1667,9 @@ msgstr "Puedes agregar libros cuando comiences a usar %(site_name)s."
#: bookwyrm/templates/get_started/books.html:17 #: bookwyrm/templates/get_started/books.html:17
#: bookwyrm/templates/get_started/users.html:18 #: bookwyrm/templates/get_started/users.html:18
#: bookwyrm/templates/get_started/users.html:19 #: bookwyrm/templates/get_started/users.html:19
#: bookwyrm/templates/groups/members.html:16 #: bookwyrm/templates/groups/members.html:15
#: bookwyrm/templates/groups/members.html:17 bookwyrm/templates/layout.html:53 #: bookwyrm/templates/groups/members.html:16 bookwyrm/templates/layout.html:53
#: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:166 #: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:167
#: bookwyrm/templates/search/layout.html:4 #: bookwyrm/templates/search/layout.html:4
#: bookwyrm/templates/search/layout.html:9 #: bookwyrm/templates/search/layout.html:9
msgid "Search" msgid "Search"
@ -1689,7 +1685,7 @@ msgid "Popular on %(site_name)s"
msgstr "Popular en %(site_name)s" msgstr "Popular en %(site_name)s"
#: bookwyrm/templates/get_started/books.html:58 #: bookwyrm/templates/get_started/books.html:58
#: bookwyrm/templates/lists/list.html:179 #: bookwyrm/templates/lists/list.html:180
msgid "No books found" msgid "No books found"
msgstr "No se encontró ningún libro" msgstr "No se encontró ningún libro"
@ -1794,7 +1790,7 @@ msgstr "Esta acción no se puede deshacer"
#: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:49 #: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:49
#: bookwyrm/templates/settings/ip_blocklist/ip_blocklist.html:36 #: bookwyrm/templates/settings/ip_blocklist/ip_blocklist.html:36
#: bookwyrm/templates/snippets/follow_request_buttons.html:12 #: bookwyrm/templates/snippets/follow_request_buttons.html:12
#: bookwyrm/templates/snippets/join_invitation_buttons.html:13 #: bookwyrm/templates/snippets/join_invitation_buttons.html:14
msgid "Delete" msgid "Delete"
msgstr "Eliminar" msgstr "Eliminar"
@ -1814,17 +1810,17 @@ msgstr "Descripción del grupo:"
msgid "Delete group" msgid "Delete group"
msgstr "Eliminar grupo" msgstr "Eliminar grupo"
#: bookwyrm/templates/groups/group.html:22 #: bookwyrm/templates/groups/group.html:21
msgid "Members of this group can create group-curated lists." msgid "Members of this group can create group-curated lists."
msgstr "Los miembros de este grupo pueden crear listas comisariadas en grupo." msgstr "Los miembros de este grupo pueden crear listas comisariadas en grupo."
#: bookwyrm/templates/groups/group.html:27 #: bookwyrm/templates/groups/group.html:26
#: bookwyrm/templates/lists/create_form.html:5 #: bookwyrm/templates/lists/create_form.html:5
#: bookwyrm/templates/lists/lists.html:20 #: bookwyrm/templates/lists/lists.html:20
msgid "Create List" msgid "Create List"
msgstr "Crear lista" msgstr "Crear lista"
#: bookwyrm/templates/groups/group.html:40 #: bookwyrm/templates/groups/group.html:39
msgid "This group has no lists" msgid "This group has no lists"
msgstr "Este grupo no tiene listas" msgstr "Este grupo no tiene listas"
@ -1832,15 +1828,15 @@ msgstr "Este grupo no tiene listas"
msgid "Edit group" msgid "Edit group"
msgstr "Editar grupo" msgstr "Editar grupo"
#: bookwyrm/templates/groups/members.html:12 #: bookwyrm/templates/groups/members.html:11
msgid "Search to add a user" msgid "Search to add a user"
msgstr "Buscar para agregar un usuario" msgstr "Buscar para agregar un usuario"
#: bookwyrm/templates/groups/members.html:33 #: bookwyrm/templates/groups/members.html:32
msgid "Leave group" msgid "Leave group"
msgstr "Dejar grupo" msgstr "Dejar grupo"
#: bookwyrm/templates/groups/members.html:55 #: bookwyrm/templates/groups/members.html:54
#: bookwyrm/templates/groups/suggested_users.html:35 #: bookwyrm/templates/groups/suggested_users.html:35
#: bookwyrm/templates/snippets/suggested_users.html:31 #: bookwyrm/templates/snippets/suggested_users.html:31
#: bookwyrm/templates/user/user_preview.html:36 #: bookwyrm/templates/user/user_preview.html:36
@ -2297,18 +2293,18 @@ msgstr "¿Eliminar esta lista?"
msgid "Edit List" msgid "Edit List"
msgstr "Editar lista" msgstr "Editar lista"
#: bookwyrm/templates/lists/embed-list.html:7 #: bookwyrm/templates/lists/embed-list.html:8
#, python-format #, python-format
msgid "%(list_name)s, a list by %(owner)s" msgid "%(list_name)s, a list by %(owner)s"
msgstr "%(list_name)s, una lista de %(owner)s" msgstr "%(list_name)s, una lista de %(owner)s"
#: bookwyrm/templates/lists/embed-list.html:17 #: bookwyrm/templates/lists/embed-list.html:18
#, python-format #, python-format
msgid "on <a href=\"/\">%(site_name)s</a>" msgid "on <a href=\"/\">%(site_name)s</a>"
msgstr "en <a href=\"/\">%(site_name)s</a>" msgstr "en <a href=\"/\">%(site_name)s</a>"
#: bookwyrm/templates/lists/embed-list.html:26 #: bookwyrm/templates/lists/embed-list.html:27
#: bookwyrm/templates/lists/list.html:42 #: bookwyrm/templates/lists/list.html:43
msgid "This list is currently empty" msgid "This list is currently empty"
msgstr "Esta lista está vacia" msgstr "Esta lista está vacia"
@ -2369,76 +2365,76 @@ msgstr "Crear un grupo"
msgid "Delete list" msgid "Delete list"
msgstr "Eliminar lista" msgstr "Eliminar lista"
#: bookwyrm/templates/lists/list.html:34 #: bookwyrm/templates/lists/list.html:35
msgid "You successfully suggested a book for this list!" msgid "You successfully suggested a book for this list!"
msgstr "¡Has sugerido un libro para esta lista exitosamente!" msgstr "¡Has sugerido un libro para esta lista exitosamente!"
#: bookwyrm/templates/lists/list.html:36 #: bookwyrm/templates/lists/list.html:37
msgid "You successfully added a book to this list!" msgid "You successfully added a book to this list!"
msgstr "¡Has agregado un libro a esta lista exitosamente!" msgstr "¡Has agregado un libro a esta lista exitosamente!"
#: bookwyrm/templates/lists/list.html:80 #: bookwyrm/templates/lists/list.html:81
#, python-format #, python-format
msgid "Added by <a href=\"%(user_path)s\">%(username)s</a>" msgid "Added by <a href=\"%(user_path)s\">%(username)s</a>"
msgstr "Agregado por <a href=\"%(user_path)s\">%(username)s</a>" msgstr "Agregado por <a href=\"%(user_path)s\">%(username)s</a>"
#: bookwyrm/templates/lists/list.html:95 #: bookwyrm/templates/lists/list.html:96
msgid "List position" msgid "List position"
msgstr "Posición" msgstr "Posición"
#: bookwyrm/templates/lists/list.html:101 #: bookwyrm/templates/lists/list.html:102
#: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:21 #: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:21
msgid "Set" msgid "Set"
msgstr "Establecido" msgstr "Establecido"
#: bookwyrm/templates/lists/list.html:116 #: bookwyrm/templates/lists/list.html:117
#: bookwyrm/templates/snippets/remove_from_group_button.html:19 #: bookwyrm/templates/snippets/remove_from_group_button.html:20
msgid "Remove" msgid "Remove"
msgstr "Quitar" msgstr "Quitar"
#: bookwyrm/templates/lists/list.html:130 #: bookwyrm/templates/lists/list.html:131
#: bookwyrm/templates/lists/list.html:147 #: bookwyrm/templates/lists/list.html:148
msgid "Sort List" msgid "Sort List"
msgstr "Ordena la lista" msgstr "Ordena la lista"
#: bookwyrm/templates/lists/list.html:140 #: bookwyrm/templates/lists/list.html:141
msgid "Direction" msgid "Direction"
msgstr "Dirección" msgstr "Dirección"
#: bookwyrm/templates/lists/list.html:154 #: bookwyrm/templates/lists/list.html:155
msgid "Add Books" msgid "Add Books"
msgstr "Agregar libros" msgstr "Agregar libros"
#: bookwyrm/templates/lists/list.html:156 #: bookwyrm/templates/lists/list.html:157
msgid "Suggest Books" msgid "Suggest Books"
msgstr "Sugerir libros" msgstr "Sugerir libros"
#: bookwyrm/templates/lists/list.html:167 #: bookwyrm/templates/lists/list.html:168
msgid "search" msgid "search"
msgstr "buscar" msgstr "buscar"
#: bookwyrm/templates/lists/list.html:173 #: bookwyrm/templates/lists/list.html:174
msgid "Clear search" msgid "Clear search"
msgstr "Borrar búsqueda" msgstr "Borrar búsqueda"
#: bookwyrm/templates/lists/list.html:178 #: bookwyrm/templates/lists/list.html:179
#, python-format #, python-format
msgid "No books found matching the query \"%(query)s\"" msgid "No books found matching the query \"%(query)s\""
msgstr "No se encontró ningún libro correspondiente a la búsqueda: \"%(query)s\"" msgstr "No se encontró ningún libro correspondiente a la búsqueda: \"%(query)s\""
#: bookwyrm/templates/lists/list.html:210 #: bookwyrm/templates/lists/list.html:211
msgid "Suggest" msgid "Suggest"
msgstr "Sugerir" msgstr "Sugerir"
#: bookwyrm/templates/lists/list.html:221 #: bookwyrm/templates/lists/list.html:222
msgid "Embed this list on a website" msgid "Embed this list on a website"
msgstr "Incrustar esta lista en un sitio web" msgstr "Incrustar esta lista en un sitio web"
#: bookwyrm/templates/lists/list.html:229 #: bookwyrm/templates/lists/list.html:230
msgid "Copy embed code" msgid "Copy embed code"
msgstr "Copiar código para incrustar" msgstr "Copiar código para incrustar"
#: bookwyrm/templates/lists/list.html:231 #: bookwyrm/templates/lists/list.html:232
#, python-format #, python-format
msgid "%(list_name)s, a list by %(owner)s on %(site_name)s" msgid "%(list_name)s, a list by %(owner)s on %(site_name)s"
msgstr "%(list_name)s, una lista de %(owner)s en %(site_name)s" msgstr "%(list_name)s, una lista de %(owner)s en %(site_name)s"
@ -3914,15 +3910,15 @@ msgstr "Terminado"
msgid "This shelf is empty." msgid "This shelf is empty."
msgstr "Esta estantería está vacía." msgstr "Esta estantería está vacía."
#: bookwyrm/templates/snippets/add_to_group_button.html:15 #: bookwyrm/templates/snippets/add_to_group_button.html:16
msgid "Invite" msgid "Invite"
msgstr "Invitar" msgstr "Invitar"
#: bookwyrm/templates/snippets/add_to_group_button.html:24 #: bookwyrm/templates/snippets/add_to_group_button.html:25
msgid "Uninvite" msgid "Uninvite"
msgstr "Anular la invitación" msgstr "Anular la invitación"
#: bookwyrm/templates/snippets/add_to_group_button.html:28 #: bookwyrm/templates/snippets/add_to_group_button.html:29
#, python-format #, python-format
msgid "Remove @%(username)s" msgid "Remove @%(username)s"
msgstr "Eliminar a @%(username)s" msgstr "Eliminar a @%(username)s"
@ -4010,7 +4006,7 @@ msgstr "¡Advertencia, ya vienen spoilers!"
msgid "Include spoiler alert" msgid "Include spoiler alert"
msgstr "Incluir alerta de spoiler" msgstr "Incluir alerta de spoiler"
#: bookwyrm/templates/snippets/create_status/layout.html:48 #: bookwyrm/templates/snippets/create_status/layout.html:47
#: bookwyrm/templates/snippets/reading_modals/form.html:7 #: bookwyrm/templates/snippets/reading_modals/form.html:7
msgid "Comment:" msgid "Comment:"
msgstr "Comentario:" msgstr "Comentario:"
@ -4019,33 +4015,33 @@ msgstr "Comentario:"
msgid "Post" msgid "Post"
msgstr "Compartir" msgstr "Compartir"
#: bookwyrm/templates/snippets/create_status/quotation.html:17 #: bookwyrm/templates/snippets/create_status/quotation.html:16
msgid "Quote:" msgid "Quote:"
msgstr "Cita:" msgstr "Cita:"
#: bookwyrm/templates/snippets/create_status/quotation.html:25 #: bookwyrm/templates/snippets/create_status/quotation.html:24
#, python-format #, python-format
msgid "An excerpt from '%(book_title)s'" msgid "An excerpt from '%(book_title)s'"
msgstr "Un extracto de '%(book_title)s'" msgstr "Un extracto de '%(book_title)s'"
#: bookwyrm/templates/snippets/create_status/quotation.html:32 #: bookwyrm/templates/snippets/create_status/quotation.html:31
msgid "Position:" msgid "Position:"
msgstr "Posición:" msgstr "Posición:"
#: bookwyrm/templates/snippets/create_status/quotation.html:45 #: bookwyrm/templates/snippets/create_status/quotation.html:44
msgid "On page:" msgid "On page:"
msgstr "En la página:" msgstr "En la página:"
#: bookwyrm/templates/snippets/create_status/quotation.html:51 #: bookwyrm/templates/snippets/create_status/quotation.html:50
msgid "At percent:" msgid "At percent:"
msgstr "Al por ciento:" msgstr "Al por ciento:"
#: bookwyrm/templates/snippets/create_status/review.html:25 #: bookwyrm/templates/snippets/create_status/review.html:24
#, python-format #, python-format
msgid "Your review of '%(book_title)s'" msgid "Your review of '%(book_title)s'"
msgstr "Tu reseña de '%(book_title)s'" msgstr "Tu reseña de '%(book_title)s'"
#: bookwyrm/templates/snippets/create_status/review.html:40 #: bookwyrm/templates/snippets/create_status/review.html:39
msgid "Review:" msgid "Review:"
msgstr "Reseña:" msgstr "Reseña:"
@ -4099,7 +4095,7 @@ msgid "Unfollow"
msgstr "Dejar de seguir" msgstr "Dejar de seguir"
#: bookwyrm/templates/snippets/follow_request_buttons.html:7 #: bookwyrm/templates/snippets/follow_request_buttons.html:7
#: bookwyrm/templates/snippets/join_invitation_buttons.html:8 #: bookwyrm/templates/snippets/join_invitation_buttons.html:9
msgid "Accept" msgid "Accept"
msgstr "Aceptar" msgstr "Aceptar"
@ -4139,15 +4135,15 @@ msgstr[1] "valoró <em><a href=\"%(path)s\">%(title)s</a></em>: %(display_rating
#: bookwyrm/templates/snippets/generated_status/review_pure_name.html:4 #: bookwyrm/templates/snippets/generated_status/review_pure_name.html:4
#, python-format #, python-format
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(display_rating)s star): %(review_title)s" msgid "Review of \"%(book_title)s\" (%(display_rating)s star): %(review_title)s"
msgid_plural "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(display_rating)s stars): %(review_title)s" msgid_plural "Review of \"%(book_title)s\" (%(display_rating)s stars): %(review_title)s"
msgstr[0] "Reseña de «<a href='%(book_path)s'>%(book_title)s</a>» (%(display_rating)s estrella): %(review_title)s" msgstr[0] "Reseña de «%(book_title)s» (%(display_rating)s estrella): %(review_title)s"
msgstr[1] "Reseña de «<a href='%(book_path)s'>%(book_title)s</a>» (%(display_rating)s estrellas): %(review_title)s" msgstr[1] "Reseña de «%(book_title)s» (%(display_rating)s estrellas): %(review_title)s"
#: bookwyrm/templates/snippets/generated_status/review_pure_name.html:12 #: bookwyrm/templates/snippets/generated_status/review_pure_name.html:12
#, python-format #, python-format
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\": %(review_title)s" msgid "Review of \"%(book_title)s\": %(review_title)s"
msgstr "Reseña de «<a href='%(book_path)s'>%(book_title)s</a>»: %(review_title)s" msgstr "Reseña de «%(book_title)s»: %(review_title)s"
#: bookwyrm/templates/snippets/goal_form.html:4 #: bookwyrm/templates/snippets/goal_form.html:4
#, python-format #, python-format
@ -4217,11 +4213,11 @@ msgstr "Solo seguidores"
msgid "Post privacy" msgid "Post privacy"
msgstr "Privacidad de publicación" msgstr "Privacidad de publicación"
#: bookwyrm/templates/snippets/rate_action.html:4 #: bookwyrm/templates/snippets/rate_action.html:5
msgid "Leave a rating" msgid "Leave a rating"
msgstr "Da una valoración" msgstr "Da una valoración"
#: bookwyrm/templates/snippets/rate_action.html:19 #: bookwyrm/templates/snippets/rate_action.html:20
msgid "Rate" msgid "Rate"
msgstr "Valorar" msgstr "Valorar"
@ -4315,29 +4311,29 @@ msgstr "Quitar de %(name)s"
msgid "Finish reading" msgid "Finish reading"
msgstr "Terminar de leer" msgstr "Terminar de leer"
#: bookwyrm/templates/snippets/status/content_status.html:72 #: bookwyrm/templates/snippets/status/content_status.html:73
msgid "Content warning" msgid "Content warning"
msgstr "Advertencia de contenido" msgstr "Advertencia de contenido"
#: bookwyrm/templates/snippets/status/content_status.html:79 #: bookwyrm/templates/snippets/status/content_status.html:80
msgid "Show status" msgid "Show status"
msgstr "Mostrar estado" msgstr "Mostrar estado"
#: bookwyrm/templates/snippets/status/content_status.html:101 #: bookwyrm/templates/snippets/status/content_status.html:102
#, python-format #, python-format
msgid "(Page %(page)s)" msgid "(Page %(page)s)"
msgstr "(Página %(page)s)" msgstr "(Página %(page)s)"
#: bookwyrm/templates/snippets/status/content_status.html:103 #: bookwyrm/templates/snippets/status/content_status.html:104
#, python-format #, python-format
msgid "(%(percent)s%%)" msgid "(%(percent)s%%)"
msgstr "(%(percent)s%%)" msgstr "(%(percent)s%%)"
#: bookwyrm/templates/snippets/status/content_status.html:125 #: bookwyrm/templates/snippets/status/content_status.html:126
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/content_status.html:144 #: bookwyrm/templates/snippets/status/content_status.html:145
msgid "Hide status" msgid "Hide status"
msgstr "Ocultar estado" msgstr "Ocultar estado"
@ -4630,7 +4626,7 @@ msgstr "No se pudo encontrar un usuario con esa dirección de correo electrónic
msgid "A password reset link was sent to {email}" msgid "A password reset link was sent to {email}"
msgstr "Un enlace para reestablecer tu contraseña se envió a {email}" msgstr "Un enlace para reestablecer tu contraseña se envió a {email}"
#: bookwyrm/views/rss_feed.py:35 #: bookwyrm/views/rss_feed.py:34
#, python-brace-format #, python-brace-format
msgid "Status updates from {obj.display_name}" msgid "Status updates from {obj.display_name}"
msgstr "Actualizaciones de status de {obj.display_name}" msgstr "Actualizaciones de status de {obj.display_name}"

View file

@ -2,8 +2,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: bookwyrm\n" "Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-01-17 19:26+0000\n" "POT-Creation-Date: 2022-01-24 17:25+0000\n"
"PO-Revision-Date: 2022-01-17 20:55\n" "PO-Revision-Date: 2022-01-24 18:55\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n" "Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: French\n" "Language-Team: French\n"
"Language: fr\n" "Language: fr\n"
@ -56,11 +56,11 @@ msgstr "Titre du livre"
#: bookwyrm/forms.py:485 bookwyrm/templates/shelf/shelf.html:155 #: bookwyrm/forms.py:485 bookwyrm/templates/shelf/shelf.html:155
#: bookwyrm/templates/shelf/shelf.html:187 #: bookwyrm/templates/shelf/shelf.html:187
#: bookwyrm/templates/snippets/create_status/review.html:33 #: bookwyrm/templates/snippets/create_status/review.html:32
msgid "Rating" msgid "Rating"
msgstr "Note" msgstr "Note"
#: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:134 #: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:135
msgid "Sort By" msgid "Sort By"
msgstr "Trier par" msgstr "Trier par"
@ -224,69 +224,69 @@ msgstr "Citations"
msgid "Everything else" msgid "Everything else"
msgstr "Tout le reste" msgstr "Tout le reste"
#: bookwyrm/settings.py:121 #: bookwyrm/settings.py:173
msgid "Home Timeline" msgid "Home Timeline"
msgstr "Mon fil dactualité" msgstr "Mon fil dactualité"
#: bookwyrm/settings.py:121 #: bookwyrm/settings.py:173
msgid "Home" msgid "Home"
msgstr "Accueil" msgstr "Accueil"
#: bookwyrm/settings.py:122 #: bookwyrm/settings.py:174
msgid "Books Timeline" msgid "Books Timeline"
msgstr "Actualité de mes livres" msgstr "Actualité de mes livres"
#: bookwyrm/settings.py:122 bookwyrm/templates/search/layout.html:21 #: bookwyrm/settings.py:174 bookwyrm/templates/search/layout.html:21
#: bookwyrm/templates/search/layout.html:42 #: bookwyrm/templates/search/layout.html:42
#: bookwyrm/templates/user/layout.html:91 #: bookwyrm/templates/user/layout.html:91
msgid "Books" msgid "Books"
msgstr "Livres" msgstr "Livres"
#: bookwyrm/settings.py:196 #: bookwyrm/settings.py:248
msgid "English" msgid "English"
msgstr "English" msgstr "English"
#: bookwyrm/settings.py:197 #: bookwyrm/settings.py:249
msgid "Deutsch (German)" msgid "Deutsch (German)"
msgstr "Deutsch" msgstr "Deutsch"
#: bookwyrm/settings.py:198 #: bookwyrm/settings.py:250
msgid "Español (Spanish)" msgid "Español (Spanish)"
msgstr "Español" msgstr "Español"
#: bookwyrm/settings.py:199 #: bookwyrm/settings.py:251
msgid "Galego (Galician)" msgid "Galego (Galician)"
msgstr "Galego (Galicien)" msgstr "Galego (Galicien)"
#: bookwyrm/settings.py:200 #: bookwyrm/settings.py:252
msgid "Italiano (Italian)" msgid "Italiano (Italian)"
msgstr "Italiano (italien)" msgstr "Italiano (italien)"
#: bookwyrm/settings.py:201 #: bookwyrm/settings.py:253
msgid "Français (French)" msgid "Français (French)"
msgstr "Français" msgstr "Français"
#: bookwyrm/settings.py:202 #: bookwyrm/settings.py:254
msgid "Lietuvių (Lithuanian)" msgid "Lietuvių (Lithuanian)"
msgstr "Lietuvių (Lituanien)" msgstr "Lietuvių (Lituanien)"
#: bookwyrm/settings.py:203 #: bookwyrm/settings.py:255
msgid "Norsk (Norwegian)" msgid "Norsk (Norwegian)"
msgstr "Norsk (norvégien)" msgstr "Norsk (norvégien)"
#: bookwyrm/settings.py:204 #: bookwyrm/settings.py:256
msgid "Português do Brasil (Brazilian Portuguese)" msgid "Português do Brasil (Brazilian Portuguese)"
msgstr "Português do Brasil (Portugais brésilien)" msgstr "Português do Brasil (Portugais brésilien)"
#: bookwyrm/settings.py:205 #: bookwyrm/settings.py:257
msgid "Português Europeu (European Portuguese)" msgid "Português Europeu (European Portuguese)"
msgstr "Português Europeu (Portugais européen)" msgstr "Português Europeu (Portugais européen)"
#: bookwyrm/settings.py:206 #: bookwyrm/settings.py:258
msgid "简体中文 (Simplified Chinese)" msgid "简体中文 (Simplified Chinese)"
msgstr "简化字" msgstr "简化字"
#: bookwyrm/settings.py:207 #: bookwyrm/settings.py:259
msgid "繁體中文 (Traditional Chinese)" msgid "繁體中文 (Traditional Chinese)"
msgstr "Infos supplémentaires:" msgstr "Infos supplémentaires:"
@ -315,58 +315,54 @@ msgstr "Une erreur sest produite; désolé!"
msgid "About" msgid "About"
msgstr "À propos" msgstr "À propos"
#: bookwyrm/templates/about/about.html:18 #: bookwyrm/templates/about/about.html:19
#: bookwyrm/templates/get_started/layout.html:20 #: bookwyrm/templates/get_started/layout.html:20
#, python-format #, python-format
msgid "Welcome to %(site_name)s!" msgid "Welcome to %(site_name)s!"
msgstr "Bienvenue sur %(site_name)s!" msgstr "Bienvenue sur %(site_name)s!"
#: bookwyrm/templates/about/about.html:22 #: bookwyrm/templates/about/about.html:23
#, python-format #, python-format
msgid "%(site_name)s is part of <em>BookWyrm</em>, a network of independent, self-directed communities for readers. While you can interact seamlessly with users anywhere in the <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">BookWyrm network</a>, this community is unique." msgid "%(site_name)s is part of <em>BookWyrm</em>, a network of independent, self-directed communities for readers. While you can interact seamlessly with users anywhere in the <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">BookWyrm network</a>, this community is unique."
msgstr "%(site_name)s fait partie de <em>BookWyrm</em>, un réseau de communautés indépendantes et autogérées, à destination des lecteurs. Bien que vous puissiez interagir apparemment avec les comptes n'importe où dans le <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">réseau BookWyrm</a>, cette communauté est unique." msgstr "%(site_name)s fait partie de <em>BookWyrm</em>, un réseau de communautés indépendantes et autogérées, à destination des lecteurs. Bien que vous puissiez interagir apparemment avec les comptes n'importe où dans le <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">réseau BookWyrm</a>, cette communauté est unique."
#: bookwyrm/templates/about/about.html:39 #: bookwyrm/templates/about/about.html:40
#, python-format #, python-format
msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> is %(site_name)s's most beloved book, with an average rating of %(rating)s out of 5." msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> is %(site_name)s's most beloved book, with an average rating of %(rating)s out of 5."
msgstr "<a href=\"%(book_path)s\"><em>%(title)s</em></a> est le livre le plus aimé de %(site_name)s, avec une note moyenne de %(rating)s sur 5." msgstr "<a href=\"%(book_path)s\"><em>%(title)s</em></a> est le livre le plus aimé de %(site_name)s, avec une note moyenne de %(rating)s sur 5."
#: bookwyrm/templates/about/about.html:58 #: bookwyrm/templates/about/about.html:59
#, python-format #, python-format
msgid "More %(site_name)s users want to read <a href=\"%(book_path)s\"><em>%(title)s</em></a> than any other book." msgid "More %(site_name)s users want to read <a href=\"%(book_path)s\"><em>%(title)s</em></a> than any other book."
msgstr "Sur %(site_name)s, cest <a href=\"%(book_path)s\"><em>%(title)s</em></a> que tout le monde veut lire plus que nimporte quel autre livre." msgstr "Sur %(site_name)s, cest <a href=\"%(book_path)s\"><em>%(title)s</em></a> que tout le monde veut lire plus que nimporte quel autre livre."
#: bookwyrm/templates/about/about.html:77 #: bookwyrm/templates/about/about.html:78
#, python-format #, python-format
msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> has the most divisive ratings of any book on %(site_name)s." msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> has the most divisive ratings of any book on %(site_name)s."
msgstr "<a href=\"%(book_path)s\"><em>%(title)s</em></a> divise les critiques plus que nimporte quel autre livre sur %(site_name)s." msgstr "<a href=\"%(book_path)s\"><em>%(title)s</em></a> divise les critiques plus que nimporte quel autre livre sur %(site_name)s."
#: bookwyrm/templates/about/about.html:88 #: bookwyrm/templates/about/about.html:89
msgid "Track your reading, talk about books, write reviews, and discover what to read next. Always ad-free, anti-corporate, and community-oriented, BookWyrm is human-scale software, designed to stay small and personal. If you have feature requests, bug reports, or grand dreams, <a href='https://joinbookwyrm.com/get-involved' target='_blank'>reach out</a> and make yourself heard." msgid "Track your reading, talk about books, write reviews, and discover what to read next. Always ad-free, anti-corporate, and community-oriented, BookWyrm is human-scale software, designed to stay small and personal. If you have feature requests, bug reports, or grand dreams, <a href='https://joinbookwyrm.com/get-involved' target='_blank'>reach out</a> and make yourself heard."
msgstr "Gardez trace de vos lectures, parlez de livres, écrivez des commentaires et découvrez quoi lire ensuite. BookWyrm est un logiciel à échelle humaine, sans publicité, anti-capitaliste et axé sur la communauté, conçu pour rester petit et personnel. Si vous avez des demandes de fonctionnalités, des rapports de bogue ou des rêves grandioses, <a href='https://joinbookwyrm.com/get-involved' target='_blank'>rejoignez-nous</a> et faites-vous entendre." msgstr "Gardez trace de vos lectures, parlez de livres, écrivez des commentaires et découvrez quoi lire ensuite. BookWyrm est un logiciel à échelle humaine, sans publicité, anti-capitaliste et axé sur la communauté, conçu pour rester petit et personnel. Si vous avez des demandes de fonctionnalités, des rapports de bogue ou des rêves grandioses, <a href='https://joinbookwyrm.com/get-involved' target='_blank'>rejoignez-nous</a> et faites-vous entendre."
#: bookwyrm/templates/about/about.html:95 #: bookwyrm/templates/about/about.html:96
msgid "Meet your admins" msgid "Meet your admins"
msgstr "Rencontrez vos admins" msgstr "Rencontrez vos admins"
#: bookwyrm/templates/about/about.html:98 #: bookwyrm/templates/about/about.html:99
#, python-format #, python-format
msgid "\n" msgid "%(site_name)s's moderators and administrators keep the site up and running, enforce the <a href=\"coc_path\">code of conduct</a>, and respond when users report spam and bad behavior."
" %(site_name)s's moderators and administrators keep the site up and running, enforce the <a href=\"coc_path\">code of conduct</a>, and respond when users report spam and bad behavior.\n" msgstr ""
" "
msgstr "\n"
" Les admins et modérateurs/modératrices de %(site_name)s maintiennent le site opérationnel, font respecter le <a href=\"coc_path\">code de conduite</a>, et répondent lorsque les utilisateurs signalent spam et mauvais comportements.\n"
" "
#: bookwyrm/templates/about/about.html:112 #: bookwyrm/templates/about/about.html:113
msgid "Moderator" msgid "Moderator"
msgstr "Modérateur/modératrice" msgstr "Modérateur/modératrice"
#: bookwyrm/templates/about/about.html:114 bookwyrm/templates/layout.html:131 #: bookwyrm/templates/about/about.html:115 bookwyrm/templates/layout.html:131
msgid "Admin" msgid "Admin"
msgstr "Admin" msgstr "Admin"
#: bookwyrm/templates/about/about.html:130 #: bookwyrm/templates/about/about.html:131
#: bookwyrm/templates/settings/users/user_moderation_actions.html:14 #: bookwyrm/templates/settings/users/user_moderation_actions.html:14
#: bookwyrm/templates/snippets/status/status_options.html:35 #: bookwyrm/templates/snippets/status/status_options.html:35
#: bookwyrm/templates/snippets/user_options.html:13 #: bookwyrm/templates/snippets/user_options.html:13
@ -428,7 +424,7 @@ msgid "Copy address"
msgstr "Copier ladresse" msgstr "Copier ladresse"
#: bookwyrm/templates/annual_summary/layout.html:68 #: bookwyrm/templates/annual_summary/layout.html:68
#: bookwyrm/templates/lists/list.html:230 #: bookwyrm/templates/lists/list.html:231
msgid "Copied!" msgid "Copied!"
msgstr "Copié!" msgstr "Copié!"
@ -497,7 +493,7 @@ msgstr "Sa lecture la plus courte lannée…"
#: bookwyrm/templates/annual_summary/layout.html:245 #: bookwyrm/templates/annual_summary/layout.html:245
#: bookwyrm/templates/book/book.html:47 #: bookwyrm/templates/book/book.html:47
#: bookwyrm/templates/discover/large-book.html:22 #: bookwyrm/templates/discover/large-book.html:22
#: bookwyrm/templates/landing/large-book.html:25 #: bookwyrm/templates/landing/large-book.html:26
#: bookwyrm/templates/landing/small-book.html:18 #: bookwyrm/templates/landing/small-book.html:18
msgid "by" msgid "by"
msgstr "de" msgstr "de"
@ -733,9 +729,9 @@ msgstr "Le chargement des données se connectera à <strong>%(source_name)s</str
#: bookwyrm/templates/author/sync_modal.html:22 #: bookwyrm/templates/author/sync_modal.html:22
#: bookwyrm/templates/book/edit/edit_book.html:108 #: bookwyrm/templates/book/edit/edit_book.html:108
#: bookwyrm/templates/book/sync_modal.html:22 #: bookwyrm/templates/book/sync_modal.html:22
#: bookwyrm/templates/groups/members.html:30 #: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42 #: bookwyrm/templates/landing/password_reset.html:42
#: bookwyrm/templates/snippets/remove_from_group_button.html:16 #: bookwyrm/templates/snippets/remove_from_group_button.html:17
msgid "Confirm" msgid "Confirm"
msgstr "Confirmer" msgstr "Confirmer"
@ -819,8 +815,8 @@ msgid "Places"
msgstr "Lieux" msgstr "Lieux"
#: bookwyrm/templates/book/book.html:348 #: bookwyrm/templates/book/book.html:348
#: bookwyrm/templates/groups/group.html:20 bookwyrm/templates/layout.html:74 #: bookwyrm/templates/groups/group.html:19 bookwyrm/templates/layout.html:74
#: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:10 #: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:11
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
#: bookwyrm/templates/search/layout.html:25 #: bookwyrm/templates/search/layout.html:25
#: bookwyrm/templates/search/layout.html:50 #: bookwyrm/templates/search/layout.html:50
@ -834,7 +830,7 @@ msgstr "Ajouter à la liste"
#: bookwyrm/templates/book/book.html:369 #: bookwyrm/templates/book/book.html:369
#: bookwyrm/templates/book/cover_add_modal.html:31 #: bookwyrm/templates/book/cover_add_modal.html:31
#: bookwyrm/templates/lists/list.html:208 #: bookwyrm/templates/lists/list.html:209
#: bookwyrm/templates/settings/email_blocklist/domain_form.html:24 #: bookwyrm/templates/settings/email_blocklist/domain_form.html:24
#: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:31 #: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:31
msgid "Add" msgid "Add"
@ -936,7 +932,7 @@ msgid "Back"
msgstr "Retour" msgstr "Retour"
#: bookwyrm/templates/book/edit/edit_book_form.html:21 #: bookwyrm/templates/book/edit/edit_book_form.html:21
#: bookwyrm/templates/snippets/create_status/review.html:16 #: bookwyrm/templates/snippets/create_status/review.html:15
msgid "Title:" msgid "Title:"
msgstr "Titre:" msgstr "Titre:"
@ -1653,7 +1649,7 @@ msgid "What are you reading?"
msgstr "Que lisezvous?" msgstr "Que lisezvous?"
#: bookwyrm/templates/get_started/books.html:9 #: bookwyrm/templates/get_started/books.html:9
#: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:162 #: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:163
msgid "Search for a book" msgid "Search for a book"
msgstr "Chercher un livre" msgstr "Chercher un livre"
@ -1671,9 +1667,9 @@ msgstr "Vous pourrez ajouter des livres lorsque vous commencerez à utiliser %(s
#: bookwyrm/templates/get_started/books.html:17 #: bookwyrm/templates/get_started/books.html:17
#: bookwyrm/templates/get_started/users.html:18 #: bookwyrm/templates/get_started/users.html:18
#: bookwyrm/templates/get_started/users.html:19 #: bookwyrm/templates/get_started/users.html:19
#: bookwyrm/templates/groups/members.html:16 #: bookwyrm/templates/groups/members.html:15
#: bookwyrm/templates/groups/members.html:17 bookwyrm/templates/layout.html:53 #: bookwyrm/templates/groups/members.html:16 bookwyrm/templates/layout.html:53
#: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:166 #: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:167
#: bookwyrm/templates/search/layout.html:4 #: bookwyrm/templates/search/layout.html:4
#: bookwyrm/templates/search/layout.html:9 #: bookwyrm/templates/search/layout.html:9
msgid "Search" msgid "Search"
@ -1689,7 +1685,7 @@ msgid "Popular on %(site_name)s"
msgstr "Populaire sur %(site_name)s" msgstr "Populaire sur %(site_name)s"
#: bookwyrm/templates/get_started/books.html:58 #: bookwyrm/templates/get_started/books.html:58
#: bookwyrm/templates/lists/list.html:179 #: bookwyrm/templates/lists/list.html:180
msgid "No books found" msgid "No books found"
msgstr "Aucun livre trouvé" msgstr "Aucun livre trouvé"
@ -1794,7 +1790,7 @@ msgstr "Cette action ne peut pas être annulée"
#: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:49 #: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:49
#: bookwyrm/templates/settings/ip_blocklist/ip_blocklist.html:36 #: bookwyrm/templates/settings/ip_blocklist/ip_blocklist.html:36
#: bookwyrm/templates/snippets/follow_request_buttons.html:12 #: bookwyrm/templates/snippets/follow_request_buttons.html:12
#: bookwyrm/templates/snippets/join_invitation_buttons.html:13 #: bookwyrm/templates/snippets/join_invitation_buttons.html:14
msgid "Delete" msgid "Delete"
msgstr "Supprimer" msgstr "Supprimer"
@ -1814,17 +1810,17 @@ msgstr "Description du groupe :"
msgid "Delete group" msgid "Delete group"
msgstr "Supprimer le groupe" msgstr "Supprimer le groupe"
#: bookwyrm/templates/groups/group.html:22 #: bookwyrm/templates/groups/group.html:21
msgid "Members of this group can create group-curated lists." msgid "Members of this group can create group-curated lists."
msgstr "Les membres de ce groupe peuvent créer des listes gérées par le groupe." msgstr "Les membres de ce groupe peuvent créer des listes gérées par le groupe."
#: bookwyrm/templates/groups/group.html:27 #: bookwyrm/templates/groups/group.html:26
#: bookwyrm/templates/lists/create_form.html:5 #: bookwyrm/templates/lists/create_form.html:5
#: bookwyrm/templates/lists/lists.html:20 #: bookwyrm/templates/lists/lists.html:20
msgid "Create List" msgid "Create List"
msgstr "Créer une liste" msgstr "Créer une liste"
#: bookwyrm/templates/groups/group.html:40 #: bookwyrm/templates/groups/group.html:39
msgid "This group has no lists" msgid "This group has no lists"
msgstr "Ce groupe n'a pas de liste" msgstr "Ce groupe n'a pas de liste"
@ -1832,15 +1828,15 @@ msgstr "Ce groupe n'a pas de liste"
msgid "Edit group" msgid "Edit group"
msgstr "Modifier le groupe" msgstr "Modifier le groupe"
#: bookwyrm/templates/groups/members.html:12 #: bookwyrm/templates/groups/members.html:11
msgid "Search to add a user" msgid "Search to add a user"
msgstr "Chercher et ajouter un·e utilisateur·rice" msgstr "Chercher et ajouter un·e utilisateur·rice"
#: bookwyrm/templates/groups/members.html:33 #: bookwyrm/templates/groups/members.html:32
msgid "Leave group" msgid "Leave group"
msgstr "Quitter le groupe" msgstr "Quitter le groupe"
#: bookwyrm/templates/groups/members.html:55 #: bookwyrm/templates/groups/members.html:54
#: bookwyrm/templates/groups/suggested_users.html:35 #: bookwyrm/templates/groups/suggested_users.html:35
#: bookwyrm/templates/snippets/suggested_users.html:31 #: bookwyrm/templates/snippets/suggested_users.html:31
#: bookwyrm/templates/user/user_preview.html:36 #: bookwyrm/templates/user/user_preview.html:36
@ -2297,18 +2293,18 @@ msgstr "Supprimer cette liste ?"
msgid "Edit List" msgid "Edit List"
msgstr "Modifier la liste" msgstr "Modifier la liste"
#: bookwyrm/templates/lists/embed-list.html:7 #: bookwyrm/templates/lists/embed-list.html:8
#, python-format #, python-format
msgid "%(list_name)s, a list by %(owner)s" msgid "%(list_name)s, a list by %(owner)s"
msgstr "%(list_name)s, une liste de %(owner)s" msgstr "%(list_name)s, une liste de %(owner)s"
#: bookwyrm/templates/lists/embed-list.html:17 #: bookwyrm/templates/lists/embed-list.html:18
#, python-format #, python-format
msgid "on <a href=\"/\">%(site_name)s</a>" msgid "on <a href=\"/\">%(site_name)s</a>"
msgstr "sur <a href=\"/\">%(site_name)s</a>" msgstr "sur <a href=\"/\">%(site_name)s</a>"
#: bookwyrm/templates/lists/embed-list.html:26 #: bookwyrm/templates/lists/embed-list.html:27
#: bookwyrm/templates/lists/list.html:42 #: bookwyrm/templates/lists/list.html:43
msgid "This list is currently empty" msgid "This list is currently empty"
msgstr "Cette liste est actuellement vide" msgstr "Cette liste est actuellement vide"
@ -2369,76 +2365,76 @@ msgstr "Créer un Groupe"
msgid "Delete list" msgid "Delete list"
msgstr "Supprimer la liste" msgstr "Supprimer la liste"
#: bookwyrm/templates/lists/list.html:34 #: bookwyrm/templates/lists/list.html:35
msgid "You successfully suggested a book for this list!" msgid "You successfully suggested a book for this list!"
msgstr "Vous avez suggéré un livre à cette liste!" msgstr "Vous avez suggéré un livre à cette liste!"
#: bookwyrm/templates/lists/list.html:36 #: bookwyrm/templates/lists/list.html:37
msgid "You successfully added a book to this list!" msgid "You successfully added a book to this list!"
msgstr "Vous avez ajouté un livre à cette liste!" msgstr "Vous avez ajouté un livre à cette liste!"
#: bookwyrm/templates/lists/list.html:80 #: bookwyrm/templates/lists/list.html:81
#, python-format #, python-format
msgid "Added by <a href=\"%(user_path)s\">%(username)s</a>" msgid "Added by <a href=\"%(user_path)s\">%(username)s</a>"
msgstr "Ajouté par <a href=\"%(user_path)s\">%(username)s</a>" msgstr "Ajouté par <a href=\"%(user_path)s\">%(username)s</a>"
#: bookwyrm/templates/lists/list.html:95 #: bookwyrm/templates/lists/list.html:96
msgid "List position" msgid "List position"
msgstr "Position" msgstr "Position"
#: bookwyrm/templates/lists/list.html:101 #: bookwyrm/templates/lists/list.html:102
#: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:21 #: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:21
msgid "Set" msgid "Set"
msgstr "Appliquer" msgstr "Appliquer"
#: bookwyrm/templates/lists/list.html:116 #: bookwyrm/templates/lists/list.html:117
#: bookwyrm/templates/snippets/remove_from_group_button.html:19 #: bookwyrm/templates/snippets/remove_from_group_button.html:20
msgid "Remove" msgid "Remove"
msgstr "Retirer" msgstr "Retirer"
#: bookwyrm/templates/lists/list.html:130 #: bookwyrm/templates/lists/list.html:131
#: bookwyrm/templates/lists/list.html:147 #: bookwyrm/templates/lists/list.html:148
msgid "Sort List" msgid "Sort List"
msgstr "Trier la liste" msgstr "Trier la liste"
#: bookwyrm/templates/lists/list.html:140 #: bookwyrm/templates/lists/list.html:141
msgid "Direction" msgid "Direction"
msgstr "Direction" msgstr "Direction"
#: bookwyrm/templates/lists/list.html:154 #: bookwyrm/templates/lists/list.html:155
msgid "Add Books" msgid "Add Books"
msgstr "Ajouter des livres" msgstr "Ajouter des livres"
#: bookwyrm/templates/lists/list.html:156 #: bookwyrm/templates/lists/list.html:157
msgid "Suggest Books" msgid "Suggest Books"
msgstr "Suggérer des livres" msgstr "Suggérer des livres"
#: bookwyrm/templates/lists/list.html:167 #: bookwyrm/templates/lists/list.html:168
msgid "search" msgid "search"
msgstr "chercher" msgstr "chercher"
#: bookwyrm/templates/lists/list.html:173 #: bookwyrm/templates/lists/list.html:174
msgid "Clear search" msgid "Clear search"
msgstr "Vider la requête" msgstr "Vider la requête"
#: bookwyrm/templates/lists/list.html:178 #: bookwyrm/templates/lists/list.html:179
#, python-format #, python-format
msgid "No books found matching the query \"%(query)s\"" msgid "No books found matching the query \"%(query)s\""
msgstr "Aucun livre trouvé pour la requête « %(query)s»" msgstr "Aucun livre trouvé pour la requête « %(query)s»"
#: bookwyrm/templates/lists/list.html:210 #: bookwyrm/templates/lists/list.html:211
msgid "Suggest" msgid "Suggest"
msgstr "Suggérer" msgstr "Suggérer"
#: bookwyrm/templates/lists/list.html:221 #: bookwyrm/templates/lists/list.html:222
msgid "Embed this list on a website" msgid "Embed this list on a website"
msgstr "Intégrez cette liste sur un autre site internet" msgstr "Intégrez cette liste sur un autre site internet"
#: bookwyrm/templates/lists/list.html:229 #: bookwyrm/templates/lists/list.html:230
msgid "Copy embed code" msgid "Copy embed code"
msgstr "Copier le code d'intégration" msgstr "Copier le code d'intégration"
#: bookwyrm/templates/lists/list.html:231 #: bookwyrm/templates/lists/list.html:232
#, python-format #, python-format
msgid "%(list_name)s, a list by %(owner)s on %(site_name)s" msgid "%(list_name)s, a list by %(owner)s on %(site_name)s"
msgstr "%(list_name)s, une liste de %(owner)s sur %(site_name)s" msgstr "%(list_name)s, une liste de %(owner)s sur %(site_name)s"
@ -3914,15 +3910,15 @@ msgstr "Terminé"
msgid "This shelf is empty." msgid "This shelf is empty."
msgstr "Cette étagère est vide" msgstr "Cette étagère est vide"
#: bookwyrm/templates/snippets/add_to_group_button.html:15 #: bookwyrm/templates/snippets/add_to_group_button.html:16
msgid "Invite" msgid "Invite"
msgstr "Inviter" msgstr "Inviter"
#: bookwyrm/templates/snippets/add_to_group_button.html:24 #: bookwyrm/templates/snippets/add_to_group_button.html:25
msgid "Uninvite" msgid "Uninvite"
msgstr "Annuler l'invitation" msgstr "Annuler l'invitation"
#: bookwyrm/templates/snippets/add_to_group_button.html:28 #: bookwyrm/templates/snippets/add_to_group_button.html:29
#, python-format #, python-format
msgid "Remove @%(username)s" msgid "Remove @%(username)s"
msgstr "Retirer @%(username)s" msgstr "Retirer @%(username)s"
@ -4010,7 +4006,7 @@ msgstr "Attention spoilers!"
msgid "Include spoiler alert" msgid "Include spoiler alert"
msgstr "Afficher une alerte spoiler" msgstr "Afficher une alerte spoiler"
#: bookwyrm/templates/snippets/create_status/layout.html:48 #: bookwyrm/templates/snippets/create_status/layout.html:47
#: bookwyrm/templates/snippets/reading_modals/form.html:7 #: bookwyrm/templates/snippets/reading_modals/form.html:7
msgid "Comment:" msgid "Comment:"
msgstr "Commentaire:" msgstr "Commentaire:"
@ -4019,33 +4015,33 @@ msgstr "Commentaire:"
msgid "Post" msgid "Post"
msgstr "Publier" msgstr "Publier"
#: bookwyrm/templates/snippets/create_status/quotation.html:17 #: bookwyrm/templates/snippets/create_status/quotation.html:16
msgid "Quote:" msgid "Quote:"
msgstr "Citation:" msgstr "Citation:"
#: bookwyrm/templates/snippets/create_status/quotation.html:25 #: bookwyrm/templates/snippets/create_status/quotation.html:24
#, python-format #, python-format
msgid "An excerpt from '%(book_title)s'" msgid "An excerpt from '%(book_title)s'"
msgstr "Un extrait de '%(book_title)s'" msgstr "Un extrait de '%(book_title)s'"
#: bookwyrm/templates/snippets/create_status/quotation.html:32 #: bookwyrm/templates/snippets/create_status/quotation.html:31
msgid "Position:" msgid "Position:"
msgstr "Emplacement :" msgstr "Emplacement :"
#: bookwyrm/templates/snippets/create_status/quotation.html:45 #: bookwyrm/templates/snippets/create_status/quotation.html:44
msgid "On page:" msgid "On page:"
msgstr "À la page :" msgstr "À la page :"
#: bookwyrm/templates/snippets/create_status/quotation.html:51 #: bookwyrm/templates/snippets/create_status/quotation.html:50
msgid "At percent:" msgid "At percent:"
msgstr "Au pourcentage :" msgstr "Au pourcentage :"
#: bookwyrm/templates/snippets/create_status/review.html:25 #: bookwyrm/templates/snippets/create_status/review.html:24
#, python-format #, python-format
msgid "Your review of '%(book_title)s'" msgid "Your review of '%(book_title)s'"
msgstr "Votre critique de '%(book_title)s'" msgstr "Votre critique de '%(book_title)s'"
#: bookwyrm/templates/snippets/create_status/review.html:40 #: bookwyrm/templates/snippets/create_status/review.html:39
msgid "Review:" msgid "Review:"
msgstr "Critique:" msgstr "Critique:"
@ -4099,7 +4095,7 @@ msgid "Unfollow"
msgstr "Se désabonner" msgstr "Se désabonner"
#: bookwyrm/templates/snippets/follow_request_buttons.html:7 #: bookwyrm/templates/snippets/follow_request_buttons.html:7
#: bookwyrm/templates/snippets/join_invitation_buttons.html:8 #: bookwyrm/templates/snippets/join_invitation_buttons.html:9
msgid "Accept" msgid "Accept"
msgstr "Accepter" msgstr "Accepter"
@ -4139,15 +4135,15 @@ msgstr[1] "a noté <em><a href=\"%(path)s\">%(title)s</a></em> : %(display_ratin
#: bookwyrm/templates/snippets/generated_status/review_pure_name.html:4 #: bookwyrm/templates/snippets/generated_status/review_pure_name.html:4
#, python-format #, python-format
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(display_rating)s star): %(review_title)s" msgid "Review of \"%(book_title)s\" (%(display_rating)s star): %(review_title)s"
msgid_plural "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(display_rating)s stars): %(review_title)s" msgid_plural "Review of \"%(book_title)s\" (%(display_rating)s stars): %(review_title)s"
msgstr[0] "Critique de « <a href='%(book_path)s'>%(book_title)s</a> » (%(display_rating)s étoile) : %(review_title)s" msgstr[0] ""
msgstr[1] "Critique de « <a href='%(book_path)s'>%(book_title)s</a> » (%(display_rating)s étoile) : %(review_title)s" msgstr[1] ""
#: bookwyrm/templates/snippets/generated_status/review_pure_name.html:12 #: bookwyrm/templates/snippets/generated_status/review_pure_name.html:12
#, python-format #, python-format
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\": %(review_title)s" msgid "Review of \"%(book_title)s\": %(review_title)s"
msgstr "Critique de « <a href='%(book_path)s'>%(book_title)s</a> » : %(review_title)s" msgstr ""
#: bookwyrm/templates/snippets/goal_form.html:4 #: bookwyrm/templates/snippets/goal_form.html:4
#, python-format #, python-format
@ -4217,11 +4213,11 @@ msgstr "Abonnemé(e)s uniquement"
msgid "Post privacy" msgid "Post privacy"
msgstr "Confidentialité du statut" msgstr "Confidentialité du statut"
#: bookwyrm/templates/snippets/rate_action.html:4 #: bookwyrm/templates/snippets/rate_action.html:5
msgid "Leave a rating" msgid "Leave a rating"
msgstr "Laisser une note" msgstr "Laisser une note"
#: bookwyrm/templates/snippets/rate_action.html:19 #: bookwyrm/templates/snippets/rate_action.html:20
msgid "Rate" msgid "Rate"
msgstr "Noter" msgstr "Noter"
@ -4315,29 +4311,29 @@ msgstr "Retirer de %(name)s"
msgid "Finish reading" msgid "Finish reading"
msgstr "Terminer la lecture" msgstr "Terminer la lecture"
#: bookwyrm/templates/snippets/status/content_status.html:72 #: bookwyrm/templates/snippets/status/content_status.html:73
msgid "Content warning" msgid "Content warning"
msgstr "Avertissement sur le contenu" msgstr "Avertissement sur le contenu"
#: bookwyrm/templates/snippets/status/content_status.html:79 #: bookwyrm/templates/snippets/status/content_status.html:80
msgid "Show status" msgid "Show status"
msgstr "Afficher le statut" msgstr "Afficher le statut"
#: bookwyrm/templates/snippets/status/content_status.html:101 #: bookwyrm/templates/snippets/status/content_status.html:102
#, python-format #, python-format
msgid "(Page %(page)s)" msgid "(Page %(page)s)"
msgstr "(Page %(page)s)" msgstr "(Page %(page)s)"
#: bookwyrm/templates/snippets/status/content_status.html:103 #: bookwyrm/templates/snippets/status/content_status.html:104
#, python-format #, python-format
msgid "(%(percent)s%%)" msgid "(%(percent)s%%)"
msgstr "(%(percent)s%%)" msgstr "(%(percent)s%%)"
#: bookwyrm/templates/snippets/status/content_status.html:125 #: bookwyrm/templates/snippets/status/content_status.html:126
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/content_status.html:144 #: bookwyrm/templates/snippets/status/content_status.html:145
msgid "Hide status" msgid "Hide status"
msgstr "Masquer le statut" msgstr "Masquer le statut"
@ -4630,7 +4626,7 @@ msgstr "Aucun compte avec cette adresse email na été trouvé."
msgid "A password reset link was sent to {email}" msgid "A password reset link was sent to {email}"
msgstr "Un lien de réinitialisation a été envoyé à {email}." msgstr "Un lien de réinitialisation a été envoyé à {email}."
#: bookwyrm/views/rss_feed.py:35 #: bookwyrm/views/rss_feed.py:34
#, python-brace-format #, python-brace-format
msgid "Status updates from {obj.display_name}" msgid "Status updates from {obj.display_name}"
msgstr "Mises à jour de statut de {obj.display_name}" msgstr "Mises à jour de statut de {obj.display_name}"

Binary file not shown.

View file

@ -2,8 +2,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: bookwyrm\n" "Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-01-17 19:26+0000\n" "POT-Creation-Date: 2022-01-24 17:25+0000\n"
"PO-Revision-Date: 2022-01-18 06:22\n" "PO-Revision-Date: 2022-01-24 18:54\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n" "Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: Galician\n" "Language-Team: Galician\n"
"Language: gl\n" "Language: gl\n"
@ -56,11 +56,11 @@ msgstr "Título do libro"
#: bookwyrm/forms.py:485 bookwyrm/templates/shelf/shelf.html:155 #: bookwyrm/forms.py:485 bookwyrm/templates/shelf/shelf.html:155
#: bookwyrm/templates/shelf/shelf.html:187 #: bookwyrm/templates/shelf/shelf.html:187
#: bookwyrm/templates/snippets/create_status/review.html:33 #: bookwyrm/templates/snippets/create_status/review.html:32
msgid "Rating" msgid "Rating"
msgstr "Puntuación" msgstr "Puntuación"
#: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:134 #: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:135
msgid "Sort By" msgid "Sort By"
msgstr "Ordenar por" msgstr "Ordenar por"
@ -224,69 +224,69 @@ msgstr "Citas"
msgid "Everything else" msgid "Everything else"
msgstr "As outras cousas" msgstr "As outras cousas"
#: bookwyrm/settings.py:121 #: bookwyrm/settings.py:173
msgid "Home Timeline" msgid "Home Timeline"
msgstr "Cronoloxía de Inicio" msgstr "Cronoloxía de Inicio"
#: bookwyrm/settings.py:121 #: bookwyrm/settings.py:173
msgid "Home" msgid "Home"
msgstr "Inicio" msgstr "Inicio"
#: bookwyrm/settings.py:122 #: bookwyrm/settings.py:174
msgid "Books Timeline" msgid "Books Timeline"
msgstr "Cronoloxía de libros" msgstr "Cronoloxía de libros"
#: bookwyrm/settings.py:122 bookwyrm/templates/search/layout.html:21 #: bookwyrm/settings.py:174 bookwyrm/templates/search/layout.html:21
#: bookwyrm/templates/search/layout.html:42 #: bookwyrm/templates/search/layout.html:42
#: bookwyrm/templates/user/layout.html:91 #: bookwyrm/templates/user/layout.html:91
msgid "Books" msgid "Books"
msgstr "Libros" msgstr "Libros"
#: bookwyrm/settings.py:196 #: bookwyrm/settings.py:248
msgid "English" msgid "English"
msgstr "English (Inglés)" msgstr "English (Inglés)"
#: bookwyrm/settings.py:197 #: bookwyrm/settings.py:249
msgid "Deutsch (German)" msgid "Deutsch (German)"
msgstr "Alemán (Alemaña)" msgstr "Alemán (Alemaña)"
#: bookwyrm/settings.py:198 #: bookwyrm/settings.py:250
msgid "Español (Spanish)" msgid "Español (Spanish)"
msgstr "Español (España)" msgstr "Español (España)"
#: bookwyrm/settings.py:199 #: bookwyrm/settings.py:251
msgid "Galego (Galician)" msgid "Galego (Galician)"
msgstr "Galego (Galician)" msgstr "Galego (Galician)"
#: bookwyrm/settings.py:200 #: bookwyrm/settings.py:252
msgid "Italiano (Italian)" msgid "Italiano (Italian)"
msgstr "Italiano (Italian)" msgstr "Italiano (Italian)"
#: bookwyrm/settings.py:201 #: bookwyrm/settings.py:253
msgid "Français (French)" msgid "Français (French)"
msgstr "Francés (Francia)" msgstr "Francés (Francia)"
#: bookwyrm/settings.py:202 #: bookwyrm/settings.py:254
msgid "Lietuvių (Lithuanian)" msgid "Lietuvių (Lithuanian)"
msgstr "Lietuvių (Lithuanian)" msgstr "Lietuvių (Lithuanian)"
#: bookwyrm/settings.py:203 #: bookwyrm/settings.py:255
msgid "Norsk (Norwegian)" msgid "Norsk (Norwegian)"
msgstr "Noruegués (Norwegian)" msgstr "Noruegués (Norwegian)"
#: bookwyrm/settings.py:204 #: bookwyrm/settings.py:256
msgid "Português do Brasil (Brazilian Portuguese)" msgid "Português do Brasil (Brazilian Portuguese)"
msgstr "Português do Brasil (Portugués brasileiro)" msgstr "Português do Brasil (Portugués brasileiro)"
#: bookwyrm/settings.py:205 #: bookwyrm/settings.py:257
msgid "Português Europeu (European Portuguese)" msgid "Português Europeu (European Portuguese)"
msgstr "Português Europeu (Portugués europeo)" msgstr "Português Europeu (Portugués europeo)"
#: bookwyrm/settings.py:206 #: bookwyrm/settings.py:258
msgid "简体中文 (Simplified Chinese)" msgid "简体中文 (Simplified Chinese)"
msgstr "简体中文 (Chinés simplificado)" msgstr "简体中文 (Chinés simplificado)"
#: bookwyrm/settings.py:207 #: bookwyrm/settings.py:259
msgid "繁體中文 (Traditional Chinese)" msgid "繁體中文 (Traditional Chinese)"
msgstr "繁體中文 (Chinés tradicional)" msgstr "繁體中文 (Chinés tradicional)"
@ -315,58 +315,54 @@ msgstr "Algo fallou! Lamentámolo."
msgid "About" msgid "About"
msgstr "Acerca de" msgstr "Acerca de"
#: bookwyrm/templates/about/about.html:18 #: bookwyrm/templates/about/about.html:19
#: bookwyrm/templates/get_started/layout.html:20 #: bookwyrm/templates/get_started/layout.html:20
#, python-format #, python-format
msgid "Welcome to %(site_name)s!" msgid "Welcome to %(site_name)s!"
msgstr "Sexas ben vida a %(site_name)s!" msgstr "Sexas ben vida a %(site_name)s!"
#: bookwyrm/templates/about/about.html:22 #: bookwyrm/templates/about/about.html:23
#, python-format #, python-format
msgid "%(site_name)s is part of <em>BookWyrm</em>, a network of independent, self-directed communities for readers. While you can interact seamlessly with users anywhere in the <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">BookWyrm network</a>, this community is unique." msgid "%(site_name)s is part of <em>BookWyrm</em>, a network of independent, self-directed communities for readers. While you can interact seamlessly with users anywhere in the <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">BookWyrm network</a>, this community is unique."
msgstr "%(site_name)s é parte de <em>BookWyrm</em>, unha rede independente, auto-xestionada por comunidades de persoas lectoras. Aínda que podes interactuar con outras usuarias da <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">rede BookWyrm</a>, esta comunidade é única." msgstr "%(site_name)s é parte de <em>BookWyrm</em>, unha rede independente, auto-xestionada por comunidades de persoas lectoras. Aínda que podes interactuar con outras usuarias da <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">rede BookWyrm</a>, esta comunidade é única."
#: bookwyrm/templates/about/about.html:39 #: bookwyrm/templates/about/about.html:40
#, python-format #, python-format
msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> is %(site_name)s's most beloved book, with an average rating of %(rating)s out of 5." msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> is %(site_name)s's most beloved book, with an average rating of %(rating)s out of 5."
msgstr "<a href=\"%(book_path)s\"><em>%(title)s</em></a> é o libro máis querido de %(site_name)s, cunha valoración media de %(rating)s sobre 5." msgstr "<a href=\"%(book_path)s\"><em>%(title)s</em></a> é o libro máis querido de %(site_name)s, cunha valoración media de %(rating)s sobre 5."
#: bookwyrm/templates/about/about.html:58 #: bookwyrm/templates/about/about.html:59
#, python-format #, python-format
msgid "More %(site_name)s users want to read <a href=\"%(book_path)s\"><em>%(title)s</em></a> than any other book." msgid "More %(site_name)s users want to read <a href=\"%(book_path)s\"><em>%(title)s</em></a> than any other book."
msgstr "<a href=\"%(book_path)s\"><em>%(title)s</em></a> é o libro que máis queren ler as usuarias de %(site_name)s." msgstr "<a href=\"%(book_path)s\"><em>%(title)s</em></a> é o libro que máis queren ler as usuarias de %(site_name)s."
#: bookwyrm/templates/about/about.html:77 #: bookwyrm/templates/about/about.html:78
#, python-format #, python-format
msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> has the most divisive ratings of any book on %(site_name)s." msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> has the most divisive ratings of any book on %(site_name)s."
msgstr "<a href=\"%(book_path)s\"><em>%(title)s</em></a> é o libro con valoracións máis diverxentes en %(site_name)s." msgstr "<a href=\"%(book_path)s\"><em>%(title)s</em></a> é o libro con valoracións máis diverxentes en %(site_name)s."
#: bookwyrm/templates/about/about.html:88 #: bookwyrm/templates/about/about.html:89
msgid "Track your reading, talk about books, write reviews, and discover what to read next. Always ad-free, anti-corporate, and community-oriented, BookWyrm is human-scale software, designed to stay small and personal. If you have feature requests, bug reports, or grand dreams, <a href='https://joinbookwyrm.com/get-involved' target='_blank'>reach out</a> and make yourself heard." msgid "Track your reading, talk about books, write reviews, and discover what to read next. Always ad-free, anti-corporate, and community-oriented, BookWyrm is human-scale software, designed to stay small and personal. If you have feature requests, bug reports, or grand dreams, <a href='https://joinbookwyrm.com/get-involved' target='_blank'>reach out</a> and make yourself heard."
msgstr "Rexistra as túas lecturas, conversa acerca dos libros, escribe recensións e descubre próximas lecturas. Sempre sen publicidade, anti-corporacións e orientado á comunidade, BookWyrm é software a escala humana, deseñado para ser pequeno e persoal. Se queres propoñer novas ferramentas, informar de fallos, ou colaborar, <a href='https://joinbookwyrm.com/get-involved' target='_blank'>contacta con nós</a> e deixa oír a túa voz." msgstr "Rexistra as túas lecturas, conversa acerca dos libros, escribe recensións e descubre próximas lecturas. Sempre sen publicidade, anti-corporacións e orientado á comunidade, BookWyrm é software a escala humana, deseñado para ser pequeno e persoal. Se queres propoñer novas ferramentas, informar de fallos, ou colaborar, <a href='https://joinbookwyrm.com/get-involved' target='_blank'>contacta con nós</a> e deixa oír a túa voz."
#: bookwyrm/templates/about/about.html:95 #: bookwyrm/templates/about/about.html:96
msgid "Meet your admins" msgid "Meet your admins"
msgstr "Contacta coa administración" msgstr "Contacta coa administración"
#: bookwyrm/templates/about/about.html:98 #: bookwyrm/templates/about/about.html:99
#, python-format #, python-format
msgid "\n" msgid "%(site_name)s's moderators and administrators keep the site up and running, enforce the <a href=\"coc_path\">code of conduct</a>, and respond when users report spam and bad behavior."
" %(site_name)s's moderators and administrators keep the site up and running, enforce the <a href=\"coc_path\">code of conduct</a>, and respond when users report spam and bad behavior.\n" msgstr "A moderación e administración de %(site_name)s coidan e xestionan o sitio web, fan cumprir co <a href=\"coc_path\">código de conduta</a> e responden ás denuncias das usuarias sobre spam e mal comportamento."
" "
msgstr "\n"
"A moderación e administración de %(site_name)s coidan e xestionan o sitio web, fan cumprir co <a href=\"coc_path\">código de conducta</a> e responden ás denuncias das usuarias sobre spam e mal comportamento.\n"
" "
#: bookwyrm/templates/about/about.html:112 #: bookwyrm/templates/about/about.html:113
msgid "Moderator" msgid "Moderator"
msgstr "Moderación" msgstr "Moderación"
#: bookwyrm/templates/about/about.html:114 bookwyrm/templates/layout.html:131 #: bookwyrm/templates/about/about.html:115 bookwyrm/templates/layout.html:131
msgid "Admin" msgid "Admin"
msgstr "Admin" msgstr "Admin"
#: bookwyrm/templates/about/about.html:130 #: bookwyrm/templates/about/about.html:131
#: bookwyrm/templates/settings/users/user_moderation_actions.html:14 #: bookwyrm/templates/settings/users/user_moderation_actions.html:14
#: bookwyrm/templates/snippets/status/status_options.html:35 #: bookwyrm/templates/snippets/status/status_options.html:35
#: bookwyrm/templates/snippets/user_options.html:13 #: bookwyrm/templates/snippets/user_options.html:13
@ -428,7 +424,7 @@ msgid "Copy address"
msgstr "Copiar enderezo" msgstr "Copiar enderezo"
#: bookwyrm/templates/annual_summary/layout.html:68 #: bookwyrm/templates/annual_summary/layout.html:68
#: bookwyrm/templates/lists/list.html:230 #: bookwyrm/templates/lists/list.html:231
msgid "Copied!" msgid "Copied!"
msgstr "Copiado!" msgstr "Copiado!"
@ -497,7 +493,7 @@ msgstr "A lectura máis curta deste ano…"
#: bookwyrm/templates/annual_summary/layout.html:245 #: bookwyrm/templates/annual_summary/layout.html:245
#: bookwyrm/templates/book/book.html:47 #: bookwyrm/templates/book/book.html:47
#: bookwyrm/templates/discover/large-book.html:22 #: bookwyrm/templates/discover/large-book.html:22
#: bookwyrm/templates/landing/large-book.html:25 #: bookwyrm/templates/landing/large-book.html:26
#: bookwyrm/templates/landing/small-book.html:18 #: bookwyrm/templates/landing/small-book.html:18
msgid "by" msgid "by"
msgstr "por" msgstr "por"
@ -733,9 +729,9 @@ msgstr "Ao cargar os datos vas conectar con <strong>%(source_name)s</strong> e c
#: bookwyrm/templates/author/sync_modal.html:22 #: bookwyrm/templates/author/sync_modal.html:22
#: bookwyrm/templates/book/edit/edit_book.html:108 #: bookwyrm/templates/book/edit/edit_book.html:108
#: bookwyrm/templates/book/sync_modal.html:22 #: bookwyrm/templates/book/sync_modal.html:22
#: bookwyrm/templates/groups/members.html:30 #: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42 #: bookwyrm/templates/landing/password_reset.html:42
#: bookwyrm/templates/snippets/remove_from_group_button.html:16 #: bookwyrm/templates/snippets/remove_from_group_button.html:17
msgid "Confirm" msgid "Confirm"
msgstr "Confirmar" msgstr "Confirmar"
@ -819,8 +815,8 @@ msgid "Places"
msgstr "Lugares" msgstr "Lugares"
#: bookwyrm/templates/book/book.html:348 #: bookwyrm/templates/book/book.html:348
#: bookwyrm/templates/groups/group.html:20 bookwyrm/templates/layout.html:74 #: bookwyrm/templates/groups/group.html:19 bookwyrm/templates/layout.html:74
#: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:10 #: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:11
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
#: bookwyrm/templates/search/layout.html:25 #: bookwyrm/templates/search/layout.html:25
#: bookwyrm/templates/search/layout.html:50 #: bookwyrm/templates/search/layout.html:50
@ -834,7 +830,7 @@ msgstr "Engadir a listaxe"
#: bookwyrm/templates/book/book.html:369 #: bookwyrm/templates/book/book.html:369
#: bookwyrm/templates/book/cover_add_modal.html:31 #: bookwyrm/templates/book/cover_add_modal.html:31
#: bookwyrm/templates/lists/list.html:208 #: bookwyrm/templates/lists/list.html:209
#: bookwyrm/templates/settings/email_blocklist/domain_form.html:24 #: bookwyrm/templates/settings/email_blocklist/domain_form.html:24
#: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:31 #: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:31
msgid "Add" msgid "Add"
@ -936,7 +932,7 @@ msgid "Back"
msgstr "Atrás" msgstr "Atrás"
#: bookwyrm/templates/book/edit/edit_book_form.html:21 #: bookwyrm/templates/book/edit/edit_book_form.html:21
#: bookwyrm/templates/snippets/create_status/review.html:16 #: bookwyrm/templates/snippets/create_status/review.html:15
msgid "Title:" msgid "Title:"
msgstr "Título:" msgstr "Título:"
@ -1653,7 +1649,7 @@ msgid "What are you reading?"
msgstr "Que estás a ler?" msgstr "Que estás a ler?"
#: bookwyrm/templates/get_started/books.html:9 #: bookwyrm/templates/get_started/books.html:9
#: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:162 #: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:163
msgid "Search for a book" msgid "Search for a book"
msgstr "Buscar un libro" msgstr "Buscar un libro"
@ -1671,9 +1667,9 @@ msgstr "Podes engadir libros cando comeces a usar %(site_name)s."
#: bookwyrm/templates/get_started/books.html:17 #: bookwyrm/templates/get_started/books.html:17
#: bookwyrm/templates/get_started/users.html:18 #: bookwyrm/templates/get_started/users.html:18
#: bookwyrm/templates/get_started/users.html:19 #: bookwyrm/templates/get_started/users.html:19
#: bookwyrm/templates/groups/members.html:16 #: bookwyrm/templates/groups/members.html:15
#: bookwyrm/templates/groups/members.html:17 bookwyrm/templates/layout.html:53 #: bookwyrm/templates/groups/members.html:16 bookwyrm/templates/layout.html:53
#: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:166 #: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:167
#: bookwyrm/templates/search/layout.html:4 #: bookwyrm/templates/search/layout.html:4
#: bookwyrm/templates/search/layout.html:9 #: bookwyrm/templates/search/layout.html:9
msgid "Search" msgid "Search"
@ -1689,7 +1685,7 @@ msgid "Popular on %(site_name)s"
msgstr "Populares en %(site_name)s" msgstr "Populares en %(site_name)s"
#: bookwyrm/templates/get_started/books.html:58 #: bookwyrm/templates/get_started/books.html:58
#: bookwyrm/templates/lists/list.html:179 #: bookwyrm/templates/lists/list.html:180
msgid "No books found" msgid "No books found"
msgstr "Non se atopan libros" msgstr "Non se atopan libros"
@ -1794,7 +1790,7 @@ msgstr "Esta acción non ten volta atrás"
#: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:49 #: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:49
#: bookwyrm/templates/settings/ip_blocklist/ip_blocklist.html:36 #: bookwyrm/templates/settings/ip_blocklist/ip_blocklist.html:36
#: bookwyrm/templates/snippets/follow_request_buttons.html:12 #: bookwyrm/templates/snippets/follow_request_buttons.html:12
#: bookwyrm/templates/snippets/join_invitation_buttons.html:13 #: bookwyrm/templates/snippets/join_invitation_buttons.html:14
msgid "Delete" msgid "Delete"
msgstr "Eliminar" msgstr "Eliminar"
@ -1814,17 +1810,17 @@ msgstr "Descrición do grupo:"
msgid "Delete group" msgid "Delete group"
msgstr "Eliminar grupo" msgstr "Eliminar grupo"
#: bookwyrm/templates/groups/group.html:22 #: bookwyrm/templates/groups/group.html:21
msgid "Members of this group can create group-curated lists." msgid "Members of this group can create group-curated lists."
msgstr "Os membros deste grupo poden crear listas xestionadas comunitariamente." msgstr "Os membros deste grupo poden crear listas xestionadas comunitariamente."
#: bookwyrm/templates/groups/group.html:27 #: bookwyrm/templates/groups/group.html:26
#: bookwyrm/templates/lists/create_form.html:5 #: bookwyrm/templates/lists/create_form.html:5
#: bookwyrm/templates/lists/lists.html:20 #: bookwyrm/templates/lists/lists.html:20
msgid "Create List" msgid "Create List"
msgstr "Crear lista" msgstr "Crear lista"
#: bookwyrm/templates/groups/group.html:40 #: bookwyrm/templates/groups/group.html:39
msgid "This group has no lists" msgid "This group has no lists"
msgstr "Este grupo non ten listaxes" msgstr "Este grupo non ten listaxes"
@ -1832,15 +1828,15 @@ msgstr "Este grupo non ten listaxes"
msgid "Edit group" msgid "Edit group"
msgstr "Editar grupo" msgstr "Editar grupo"
#: bookwyrm/templates/groups/members.html:12 #: bookwyrm/templates/groups/members.html:11
msgid "Search to add a user" msgid "Search to add a user"
msgstr "Buscar para engadir usuaria" msgstr "Buscar para engadir usuaria"
#: bookwyrm/templates/groups/members.html:33 #: bookwyrm/templates/groups/members.html:32
msgid "Leave group" msgid "Leave group"
msgstr "Saír do grupo" msgstr "Saír do grupo"
#: bookwyrm/templates/groups/members.html:55 #: bookwyrm/templates/groups/members.html:54
#: bookwyrm/templates/groups/suggested_users.html:35 #: bookwyrm/templates/groups/suggested_users.html:35
#: bookwyrm/templates/snippets/suggested_users.html:31 #: bookwyrm/templates/snippets/suggested_users.html:31
#: bookwyrm/templates/user/user_preview.html:36 #: bookwyrm/templates/user/user_preview.html:36
@ -2297,18 +2293,18 @@ msgstr "Eliminar esta lista?"
msgid "Edit List" msgid "Edit List"
msgstr "Editar lista" msgstr "Editar lista"
#: bookwyrm/templates/lists/embed-list.html:7 #: bookwyrm/templates/lists/embed-list.html:8
#, python-format #, python-format
msgid "%(list_name)s, a list by %(owner)s" msgid "%(list_name)s, a list by %(owner)s"
msgstr "%(list_name)s, unha lista de %(owner)s" msgstr "%(list_name)s, unha lista de %(owner)s"
#: bookwyrm/templates/lists/embed-list.html:17 #: bookwyrm/templates/lists/embed-list.html:18
#, python-format #, python-format
msgid "on <a href=\"/\">%(site_name)s</a>" msgid "on <a href=\"/\">%(site_name)s</a>"
msgstr "en <a href=\"/\">%(site_name)s</a>" msgstr "en <a href=\"/\">%(site_name)s</a>"
#: bookwyrm/templates/lists/embed-list.html:26 #: bookwyrm/templates/lists/embed-list.html:27
#: bookwyrm/templates/lists/list.html:42 #: bookwyrm/templates/lists/list.html:43
msgid "This list is currently empty" msgid "This list is currently empty"
msgstr "A lista está baleira neste intre" msgstr "A lista está baleira neste intre"
@ -2369,76 +2365,76 @@ msgstr "Crea un Grupo"
msgid "Delete list" msgid "Delete list"
msgstr "Eliminar lista" msgstr "Eliminar lista"
#: bookwyrm/templates/lists/list.html:34 #: bookwyrm/templates/lists/list.html:35
msgid "You successfully suggested a book for this list!" msgid "You successfully suggested a book for this list!"
msgstr "Suxeriches correctamente un libro para esta lista!" msgstr "Suxeriches correctamente un libro para esta lista!"
#: bookwyrm/templates/lists/list.html:36 #: bookwyrm/templates/lists/list.html:37
msgid "You successfully added a book to this list!" msgid "You successfully added a book to this list!"
msgstr "Engadiches correctamente un libro a esta lista!" msgstr "Engadiches correctamente un libro a esta lista!"
#: bookwyrm/templates/lists/list.html:80 #: bookwyrm/templates/lists/list.html:81
#, python-format #, python-format
msgid "Added by <a href=\"%(user_path)s\">%(username)s</a>" msgid "Added by <a href=\"%(user_path)s\">%(username)s</a>"
msgstr "Engadido por <a href=\"%(user_path)s\">%(username)s</a>" msgstr "Engadido por <a href=\"%(user_path)s\">%(username)s</a>"
#: bookwyrm/templates/lists/list.html:95 #: bookwyrm/templates/lists/list.html:96
msgid "List position" msgid "List position"
msgstr "Posición da lista" msgstr "Posición da lista"
#: bookwyrm/templates/lists/list.html:101 #: bookwyrm/templates/lists/list.html:102
#: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:21 #: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:21
msgid "Set" msgid "Set"
msgstr "Establecer" msgstr "Establecer"
#: bookwyrm/templates/lists/list.html:116 #: bookwyrm/templates/lists/list.html:117
#: bookwyrm/templates/snippets/remove_from_group_button.html:19 #: bookwyrm/templates/snippets/remove_from_group_button.html:20
msgid "Remove" msgid "Remove"
msgstr "Eliminar" msgstr "Eliminar"
#: bookwyrm/templates/lists/list.html:130 #: bookwyrm/templates/lists/list.html:131
#: bookwyrm/templates/lists/list.html:147 #: bookwyrm/templates/lists/list.html:148
msgid "Sort List" msgid "Sort List"
msgstr "Ordenar lista" msgstr "Ordenar lista"
#: bookwyrm/templates/lists/list.html:140 #: bookwyrm/templates/lists/list.html:141
msgid "Direction" msgid "Direction"
msgstr "Dirección" msgstr "Dirección"
#: bookwyrm/templates/lists/list.html:154 #: bookwyrm/templates/lists/list.html:155
msgid "Add Books" msgid "Add Books"
msgstr "Engadir Libros" msgstr "Engadir Libros"
#: bookwyrm/templates/lists/list.html:156 #: bookwyrm/templates/lists/list.html:157
msgid "Suggest Books" msgid "Suggest Books"
msgstr "Suxerir Libros" msgstr "Suxerir Libros"
#: bookwyrm/templates/lists/list.html:167 #: bookwyrm/templates/lists/list.html:168
msgid "search" msgid "search"
msgstr "buscar" msgstr "buscar"
#: bookwyrm/templates/lists/list.html:173 #: bookwyrm/templates/lists/list.html:174
msgid "Clear search" msgid "Clear search"
msgstr "Limpar busca" msgstr "Limpar busca"
#: bookwyrm/templates/lists/list.html:178 #: bookwyrm/templates/lists/list.html:179
#, python-format #, python-format
msgid "No books found matching the query \"%(query)s\"" msgid "No books found matching the query \"%(query)s\""
msgstr "Non se atopan libros coa consulta \"%(query)s\"" msgstr "Non se atopan libros coa consulta \"%(query)s\""
#: bookwyrm/templates/lists/list.html:210 #: bookwyrm/templates/lists/list.html:211
msgid "Suggest" msgid "Suggest"
msgstr "Suxire" msgstr "Suxire"
#: bookwyrm/templates/lists/list.html:221 #: bookwyrm/templates/lists/list.html:222
msgid "Embed this list on a website" msgid "Embed this list on a website"
msgstr "Utiliza esta lista nunha páxina web" msgstr "Utiliza esta lista nunha páxina web"
#: bookwyrm/templates/lists/list.html:229 #: bookwyrm/templates/lists/list.html:230
msgid "Copy embed code" msgid "Copy embed code"
msgstr "Copia o código a incluír" msgstr "Copia o código a incluír"
#: bookwyrm/templates/lists/list.html:231 #: bookwyrm/templates/lists/list.html:232
#, python-format #, python-format
msgid "%(list_name)s, a list by %(owner)s on %(site_name)s" msgid "%(list_name)s, a list by %(owner)s on %(site_name)s"
msgstr "%(list_name)s, unha lista de %(owner)s en %(site_name)s" msgstr "%(list_name)s, unha lista de %(owner)s en %(site_name)s"
@ -3914,15 +3910,15 @@ msgstr "Rematado"
msgid "This shelf is empty." msgid "This shelf is empty."
msgstr "Este estante esta baleiro." msgstr "Este estante esta baleiro."
#: bookwyrm/templates/snippets/add_to_group_button.html:15 #: bookwyrm/templates/snippets/add_to_group_button.html:16
msgid "Invite" msgid "Invite"
msgstr "Convidar" msgstr "Convidar"
#: bookwyrm/templates/snippets/add_to_group_button.html:24 #: bookwyrm/templates/snippets/add_to_group_button.html:25
msgid "Uninvite" msgid "Uninvite"
msgstr "Retirar convite" msgstr "Retirar convite"
#: bookwyrm/templates/snippets/add_to_group_button.html:28 #: bookwyrm/templates/snippets/add_to_group_button.html:29
#, python-format #, python-format
msgid "Remove @%(username)s" msgid "Remove @%(username)s"
msgstr "Eliminar @%(username)s" msgstr "Eliminar @%(username)s"
@ -4010,7 +4006,7 @@ msgstr "Contén Spoilers!"
msgid "Include spoiler alert" msgid "Include spoiler alert"
msgstr "Incluír alerta de spoiler" msgstr "Incluír alerta de spoiler"
#: bookwyrm/templates/snippets/create_status/layout.html:48 #: bookwyrm/templates/snippets/create_status/layout.html:47
#: bookwyrm/templates/snippets/reading_modals/form.html:7 #: bookwyrm/templates/snippets/reading_modals/form.html:7
msgid "Comment:" msgid "Comment:"
msgstr "Comentario:" msgstr "Comentario:"
@ -4019,33 +4015,33 @@ msgstr "Comentario:"
msgid "Post" msgid "Post"
msgstr "Publicación" msgstr "Publicación"
#: bookwyrm/templates/snippets/create_status/quotation.html:17 #: bookwyrm/templates/snippets/create_status/quotation.html:16
msgid "Quote:" msgid "Quote:"
msgstr "Cita:" msgstr "Cita:"
#: bookwyrm/templates/snippets/create_status/quotation.html:25 #: bookwyrm/templates/snippets/create_status/quotation.html:24
#, python-format #, python-format
msgid "An excerpt from '%(book_title)s'" msgid "An excerpt from '%(book_title)s'"
msgstr "Un extracto de '%(book_title)s'" msgstr "Un extracto de '%(book_title)s'"
#: bookwyrm/templates/snippets/create_status/quotation.html:32 #: bookwyrm/templates/snippets/create_status/quotation.html:31
msgid "Position:" msgid "Position:"
msgstr "Posición:" msgstr "Posición:"
#: bookwyrm/templates/snippets/create_status/quotation.html:45 #: bookwyrm/templates/snippets/create_status/quotation.html:44
msgid "On page:" msgid "On page:"
msgstr "Na páxina:" msgstr "Na páxina:"
#: bookwyrm/templates/snippets/create_status/quotation.html:51 #: bookwyrm/templates/snippets/create_status/quotation.html:50
msgid "At percent:" msgid "At percent:"
msgstr "Na porcentaxe:" msgstr "Na porcentaxe:"
#: bookwyrm/templates/snippets/create_status/review.html:25 #: bookwyrm/templates/snippets/create_status/review.html:24
#, python-format #, python-format
msgid "Your review of '%(book_title)s'" msgid "Your review of '%(book_title)s'"
msgstr "A túa recensión de '%(book_title)s'" msgstr "A túa recensión de '%(book_title)s'"
#: bookwyrm/templates/snippets/create_status/review.html:40 #: bookwyrm/templates/snippets/create_status/review.html:39
msgid "Review:" msgid "Review:"
msgstr "Recensión:" msgstr "Recensión:"
@ -4099,7 +4095,7 @@ msgid "Unfollow"
msgstr "Non seguir" msgstr "Non seguir"
#: bookwyrm/templates/snippets/follow_request_buttons.html:7 #: bookwyrm/templates/snippets/follow_request_buttons.html:7
#: bookwyrm/templates/snippets/join_invitation_buttons.html:8 #: bookwyrm/templates/snippets/join_invitation_buttons.html:9
msgid "Accept" msgid "Accept"
msgstr "Aceptar" msgstr "Aceptar"
@ -4139,15 +4135,15 @@ msgstr[1] "valorado <em><a href=\"%(path)s\">%(title)s</a></em>: %(display_ratin
#: bookwyrm/templates/snippets/generated_status/review_pure_name.html:4 #: bookwyrm/templates/snippets/generated_status/review_pure_name.html:4
#, python-format #, python-format
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(display_rating)s star): %(review_title)s" msgid "Review of \"%(book_title)s\" (%(display_rating)s star): %(review_title)s"
msgid_plural "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(display_rating)s stars): %(review_title)s" msgid_plural "Review of \"%(book_title)s\" (%(display_rating)s stars): %(review_title)s"
msgstr[0] "Recensión de \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(display_rating)s estrela): %(review_title)s" msgstr[0] "Recensión de \"%(book_title)s\" (%(display_rating)s estrela): %(review_title)s"
msgstr[1] "Recensión de \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(display_rating)s estrelas): %(review_title)s" msgstr[1] "Recensión de \"%(book_title)s\" (%(display_rating)s estrelas): %(review_title)s"
#: bookwyrm/templates/snippets/generated_status/review_pure_name.html:12 #: bookwyrm/templates/snippets/generated_status/review_pure_name.html:12
#, python-format #, python-format
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\": %(review_title)s" msgid "Review of \"%(book_title)s\": %(review_title)s"
msgstr "Recensión de \"<a href='%(book_path)s'>%(book_title)s</a>\" %(review_title)s" msgstr "Recensión de \"%(book_title)s\": %(review_title)s"
#: bookwyrm/templates/snippets/goal_form.html:4 #: bookwyrm/templates/snippets/goal_form.html:4
#, python-format #, python-format
@ -4217,11 +4213,11 @@ msgstr "Só seguidoras"
msgid "Post privacy" msgid "Post privacy"
msgstr "Privacidade da publicación" msgstr "Privacidade da publicación"
#: bookwyrm/templates/snippets/rate_action.html:4 #: bookwyrm/templates/snippets/rate_action.html:5
msgid "Leave a rating" msgid "Leave a rating"
msgstr "Fai unha valoración" msgstr "Fai unha valoración"
#: bookwyrm/templates/snippets/rate_action.html:19 #: bookwyrm/templates/snippets/rate_action.html:20
msgid "Rate" msgid "Rate"
msgstr "Valorar" msgstr "Valorar"
@ -4315,29 +4311,29 @@ msgstr "Eliminar de %(name)s"
msgid "Finish reading" msgid "Finish reading"
msgstr "Rematar a lectura" msgstr "Rematar a lectura"
#: bookwyrm/templates/snippets/status/content_status.html:72 #: bookwyrm/templates/snippets/status/content_status.html:73
msgid "Content warning" msgid "Content warning"
msgstr "Aviso sobre o contido" msgstr "Aviso sobre o contido"
#: bookwyrm/templates/snippets/status/content_status.html:79 #: bookwyrm/templates/snippets/status/content_status.html:80
msgid "Show status" msgid "Show status"
msgstr "Mostrar estado" msgstr "Mostrar estado"
#: bookwyrm/templates/snippets/status/content_status.html:101 #: bookwyrm/templates/snippets/status/content_status.html:102
#, python-format #, python-format
msgid "(Page %(page)s)" msgid "(Page %(page)s)"
msgstr "(Páxina %(page)s)" msgstr "(Páxina %(page)s)"
#: bookwyrm/templates/snippets/status/content_status.html:103 #: bookwyrm/templates/snippets/status/content_status.html:104
#, python-format #, python-format
msgid "(%(percent)s%%)" msgid "(%(percent)s%%)"
msgstr "(%(percent)s%%)" msgstr "(%(percent)s%%)"
#: bookwyrm/templates/snippets/status/content_status.html:125 #: bookwyrm/templates/snippets/status/content_status.html:126
msgid "Open image in new window" msgid "Open image in new window"
msgstr "Abrir imaxe en nova ventá" msgstr "Abrir imaxe en nova ventá"
#: bookwyrm/templates/snippets/status/content_status.html:144 #: bookwyrm/templates/snippets/status/content_status.html:145
msgid "Hide status" msgid "Hide status"
msgstr "Agochar estado" msgstr "Agochar estado"
@ -4630,7 +4626,7 @@ msgstr "Non atopamos unha usuaria con ese email."
msgid "A password reset link was sent to {email}" msgid "A password reset link was sent to {email}"
msgstr "Enviamos unha ligazón de restablecemento a {email}" msgstr "Enviamos unha ligazón de restablecemento a {email}"
#: bookwyrm/views/rss_feed.py:35 #: bookwyrm/views/rss_feed.py:34
#, python-brace-format #, python-brace-format
msgid "Status updates from {obj.display_name}" msgid "Status updates from {obj.display_name}"
msgstr "Actualizacións de estados desde {obj.display_name}" msgstr "Actualizacións de estados desde {obj.display_name}"

Binary file not shown.

View file

@ -2,8 +2,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: bookwyrm\n" "Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-01-17 19:26+0000\n" "POT-Creation-Date: 2022-01-24 17:25+0000\n"
"PO-Revision-Date: 2022-01-19 23:20\n" "PO-Revision-Date: 2022-01-24 18:54\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n" "Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: Italian\n" "Language-Team: Italian\n"
"Language: it\n" "Language: it\n"
@ -56,11 +56,11 @@ msgstr "Titolo del libro"
#: bookwyrm/forms.py:485 bookwyrm/templates/shelf/shelf.html:155 #: bookwyrm/forms.py:485 bookwyrm/templates/shelf/shelf.html:155
#: bookwyrm/templates/shelf/shelf.html:187 #: bookwyrm/templates/shelf/shelf.html:187
#: bookwyrm/templates/snippets/create_status/review.html:33 #: bookwyrm/templates/snippets/create_status/review.html:32
msgid "Rating" msgid "Rating"
msgstr "Valutazione" msgstr "Valutazione"
#: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:134 #: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:135
msgid "Sort By" msgid "Sort By"
msgstr "Ordina per" msgstr "Ordina per"
@ -224,69 +224,69 @@ msgstr "Citazioni"
msgid "Everything else" msgid "Everything else"
msgstr "Tutto il resto" msgstr "Tutto il resto"
#: bookwyrm/settings.py:121 #: bookwyrm/settings.py:173
msgid "Home Timeline" msgid "Home Timeline"
msgstr "La tua timeline" msgstr "La tua timeline"
#: bookwyrm/settings.py:121 #: bookwyrm/settings.py:173
msgid "Home" msgid "Home"
msgstr "Home" msgstr "Home"
#: bookwyrm/settings.py:122 #: bookwyrm/settings.py:174
msgid "Books Timeline" msgid "Books Timeline"
msgstr "Timeline dei libri" msgstr "Timeline dei libri"
#: bookwyrm/settings.py:122 bookwyrm/templates/search/layout.html:21 #: bookwyrm/settings.py:174 bookwyrm/templates/search/layout.html:21
#: bookwyrm/templates/search/layout.html:42 #: bookwyrm/templates/search/layout.html:42
#: bookwyrm/templates/user/layout.html:91 #: bookwyrm/templates/user/layout.html:91
msgid "Books" msgid "Books"
msgstr "Libri" msgstr "Libri"
#: bookwyrm/settings.py:196 #: bookwyrm/settings.py:248
msgid "English" msgid "English"
msgstr "English (Inglese)" msgstr "English (Inglese)"
#: bookwyrm/settings.py:197 #: bookwyrm/settings.py:249
msgid "Deutsch (German)" msgid "Deutsch (German)"
msgstr "Deutsch (Tedesco)" msgstr "Deutsch (Tedesco)"
#: bookwyrm/settings.py:198 #: bookwyrm/settings.py:250
msgid "Español (Spanish)" msgid "Español (Spanish)"
msgstr "Español (Spagnolo)" msgstr "Español (Spagnolo)"
#: bookwyrm/settings.py:199 #: bookwyrm/settings.py:251
msgid "Galego (Galician)" msgid "Galego (Galician)"
msgstr "Galego (Galiziano)" msgstr "Galego (Galiziano)"
#: bookwyrm/settings.py:200 #: bookwyrm/settings.py:252
msgid "Italiano (Italian)" msgid "Italiano (Italian)"
msgstr "Italiano (Italiano)" msgstr "Italiano (Italiano)"
#: bookwyrm/settings.py:201 #: bookwyrm/settings.py:253
msgid "Français (French)" msgid "Français (French)"
msgstr "Français (Francese)" msgstr "Français (Francese)"
#: bookwyrm/settings.py:202 #: bookwyrm/settings.py:254
msgid "Lietuvių (Lithuanian)" msgid "Lietuvių (Lithuanian)"
msgstr "Lietuvių (Lituano)" msgstr "Lietuvių (Lituano)"
#: bookwyrm/settings.py:203 #: bookwyrm/settings.py:255
msgid "Norsk (Norwegian)" msgid "Norsk (Norwegian)"
msgstr "Norsk (Norvegese)" msgstr "Norsk (Norvegese)"
#: bookwyrm/settings.py:204 #: bookwyrm/settings.py:256
msgid "Português do Brasil (Brazilian Portuguese)" msgid "Português do Brasil (Brazilian Portuguese)"
msgstr "Português do Brasil (Portoghese Brasiliano)" msgstr "Português do Brasil (Portoghese Brasiliano)"
#: bookwyrm/settings.py:205 #: bookwyrm/settings.py:257
msgid "Português Europeu (European Portuguese)" msgid "Português Europeu (European Portuguese)"
msgstr "Português Europeu (Portoghese europeo)" msgstr "Português Europeu (Portoghese europeo)"
#: bookwyrm/settings.py:206 #: bookwyrm/settings.py:258
msgid "简体中文 (Simplified Chinese)" msgid "简体中文 (Simplified Chinese)"
msgstr "简体中文 (Cinese Semplificato)" msgstr "简体中文 (Cinese Semplificato)"
#: bookwyrm/settings.py:207 #: bookwyrm/settings.py:259
msgid "繁體中文 (Traditional Chinese)" msgid "繁體中文 (Traditional Chinese)"
msgstr "繁體中文 (Cinese Tradizionale)" msgstr "繁體中文 (Cinese Tradizionale)"
@ -315,58 +315,54 @@ msgstr "Qualcosa è andato storto! Ci dispiace."
msgid "About" msgid "About"
msgstr "Informazioni su" msgstr "Informazioni su"
#: bookwyrm/templates/about/about.html:18 #: bookwyrm/templates/about/about.html:19
#: bookwyrm/templates/get_started/layout.html:20 #: bookwyrm/templates/get_started/layout.html:20
#, python-format #, python-format
msgid "Welcome to %(site_name)s!" msgid "Welcome to %(site_name)s!"
msgstr "Benvenuto su %(site_name)s!" msgstr "Benvenuto su %(site_name)s!"
#: bookwyrm/templates/about/about.html:22 #: bookwyrm/templates/about/about.html:23
#, python-format #, python-format
msgid "%(site_name)s is part of <em>BookWyrm</em>, a network of independent, self-directed communities for readers. While you can interact seamlessly with users anywhere in the <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">BookWyrm network</a>, this community is unique." msgid "%(site_name)s is part of <em>BookWyrm</em>, a network of independent, self-directed communities for readers. While you can interact seamlessly with users anywhere in the <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">BookWyrm network</a>, this community is unique."
msgstr "%(site_name)s fa parte di <em>BookWyrm</em>, una rete di comunità indipendenti e autogestite per i lettori. Mentre puoi interagire apparentemente con gli utenti ovunque nella rete <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">di BookWyrm</a>, questa comunità è unica." msgstr "%(site_name)s fa parte di <em>BookWyrm</em>, una rete di comunità indipendenti e autogestite per i lettori. Mentre puoi interagire apparentemente con gli utenti ovunque nella rete <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">di BookWyrm</a>, questa comunità è unica."
#: bookwyrm/templates/about/about.html:39 #: bookwyrm/templates/about/about.html:40
#, python-format #, python-format
msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> is %(site_name)s's most beloved book, with an average rating of %(rating)s out of 5." msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> is %(site_name)s's most beloved book, with an average rating of %(rating)s out of 5."
msgstr "<a href=\"%(book_path)s\"><em>%(title)s</em></a> è il libro più amato di %(site_name)s, con un punteggio medio di %(rating)s su 5." msgstr "<a href=\"%(book_path)s\"><em>%(title)s</em></a> è il libro più amato di %(site_name)s, con un punteggio medio di %(rating)s su 5."
#: bookwyrm/templates/about/about.html:58 #: bookwyrm/templates/about/about.html:59
#, python-format #, python-format
msgid "More %(site_name)s users want to read <a href=\"%(book_path)s\"><em>%(title)s</em></a> than any other book." msgid "More %(site_name)s users want to read <a href=\"%(book_path)s\"><em>%(title)s</em></a> than any other book."
msgstr "Più %(site_name)s utenti vogliono leggere <a href=\"%(book_path)s\"><em>%(title)s</em></a> rispetto a qualsiasi altro libro." msgstr "Più %(site_name)s utenti vogliono leggere <a href=\"%(book_path)s\"><em>%(title)s</em></a> rispetto a qualsiasi altro libro."
#: bookwyrm/templates/about/about.html:77 #: bookwyrm/templates/about/about.html:78
#, python-format #, python-format
msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> has the most divisive ratings of any book on %(site_name)s." msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> has the most divisive ratings of any book on %(site_name)s."
msgstr "<a href=\"%(book_path)s\"><em>%(title)s</em></a> ha le valutazioni più divisive di ogni libro su %(site_name)s." msgstr "<a href=\"%(book_path)s\"><em>%(title)s</em></a> ha le valutazioni più divisive di ogni libro su %(site_name)s."
#: bookwyrm/templates/about/about.html:88 #: bookwyrm/templates/about/about.html:89
msgid "Track your reading, talk about books, write reviews, and discover what to read next. Always ad-free, anti-corporate, and community-oriented, BookWyrm is human-scale software, designed to stay small and personal. If you have feature requests, bug reports, or grand dreams, <a href='https://joinbookwyrm.com/get-involved' target='_blank'>reach out</a> and make yourself heard." msgid "Track your reading, talk about books, write reviews, and discover what to read next. Always ad-free, anti-corporate, and community-oriented, BookWyrm is human-scale software, designed to stay small and personal. If you have feature requests, bug reports, or grand dreams, <a href='https://joinbookwyrm.com/get-involved' target='_blank'>reach out</a> and make yourself heard."
msgstr "Traccia la tue letture, parla di libri, scrivi recensioni, e scopri cosa leggere dopo. BookWyrm, sempre libero, anti-corporate, orientato alla comunità, è un software a misura d'uomo, progettato per rimanere piccolo e personale. Se hai richieste di funzionalità, segnalazioni di bug o grandi sogni, <a href='https://joinbookwyrm.com/get-involved' target='_blank'>contatta</a> e fai sentire la tua voce." msgstr "Traccia la tue letture, parla di libri, scrivi recensioni, e scopri cosa leggere dopo. BookWyrm, sempre libero, anti-corporate, orientato alla comunità, è un software a misura d'uomo, progettato per rimanere piccolo e personale. Se hai richieste di funzionalità, segnalazioni di bug o grandi sogni, <a href='https://joinbookwyrm.com/get-involved' target='_blank'>contatta</a> e fai sentire la tua voce."
#: bookwyrm/templates/about/about.html:95 #: bookwyrm/templates/about/about.html:96
msgid "Meet your admins" msgid "Meet your admins"
msgstr "Incontra gli amministratori" msgstr "Incontra gli amministratori"
#: bookwyrm/templates/about/about.html:98 #: bookwyrm/templates/about/about.html:99
#, python-format #, python-format
msgid "\n" msgid "%(site_name)s's moderators and administrators keep the site up and running, enforce the <a href=\"coc_path\">code of conduct</a>, and respond when users report spam and bad behavior."
" %(site_name)s's moderators and administrators keep the site up and running, enforce the <a href=\"coc_path\">code of conduct</a>, and respond when users report spam and bad behavior.\n" msgstr "I moderatori e gli amministratori di %(site_name)s mantengono il sito attivo e funzionante, applicano il <a href=\"coc_path\">codice di condotta</a>, e rispondono quando gli utenti segnalano spam o comportamenti non adeguati."
" "
msgstr "\n"
"I moderatori e gli amministratori di %(site_name)s mantengono il sito attivo e funzionante, applicano il <a href=\"coc_path\">codice di condotta</a>, e rispondono quando gli utenti segnalano spam o comportamenti non adeguati.\n"
" "
#: bookwyrm/templates/about/about.html:112 #: bookwyrm/templates/about/about.html:113
msgid "Moderator" msgid "Moderator"
msgstr "Moderatori" msgstr "Moderatori"
#: bookwyrm/templates/about/about.html:114 bookwyrm/templates/layout.html:131 #: bookwyrm/templates/about/about.html:115 bookwyrm/templates/layout.html:131
msgid "Admin" msgid "Admin"
msgstr "Admin" msgstr "Admin"
#: bookwyrm/templates/about/about.html:130 #: bookwyrm/templates/about/about.html:131
#: bookwyrm/templates/settings/users/user_moderation_actions.html:14 #: bookwyrm/templates/settings/users/user_moderation_actions.html:14
#: bookwyrm/templates/snippets/status/status_options.html:35 #: bookwyrm/templates/snippets/status/status_options.html:35
#: bookwyrm/templates/snippets/user_options.html:13 #: bookwyrm/templates/snippets/user_options.html:13
@ -428,7 +424,7 @@ msgid "Copy address"
msgstr "Copia l'indirizzo" msgstr "Copia l'indirizzo"
#: bookwyrm/templates/annual_summary/layout.html:68 #: bookwyrm/templates/annual_summary/layout.html:68
#: bookwyrm/templates/lists/list.html:230 #: bookwyrm/templates/lists/list.html:231
msgid "Copied!" msgid "Copied!"
msgstr "Copiato!" msgstr "Copiato!"
@ -497,7 +493,7 @@ msgstr "La loro lettura più breve questanno…"
#: bookwyrm/templates/annual_summary/layout.html:245 #: bookwyrm/templates/annual_summary/layout.html:245
#: bookwyrm/templates/book/book.html:47 #: bookwyrm/templates/book/book.html:47
#: bookwyrm/templates/discover/large-book.html:22 #: bookwyrm/templates/discover/large-book.html:22
#: bookwyrm/templates/landing/large-book.html:25 #: bookwyrm/templates/landing/large-book.html:26
#: bookwyrm/templates/landing/small-book.html:18 #: bookwyrm/templates/landing/small-book.html:18
msgid "by" msgid "by"
msgstr "di" msgstr "di"
@ -733,9 +729,9 @@ msgstr "Il caricamento dei dati si collegherà a <strong>%(source_name)s</strong
#: bookwyrm/templates/author/sync_modal.html:22 #: bookwyrm/templates/author/sync_modal.html:22
#: bookwyrm/templates/book/edit/edit_book.html:108 #: bookwyrm/templates/book/edit/edit_book.html:108
#: bookwyrm/templates/book/sync_modal.html:22 #: bookwyrm/templates/book/sync_modal.html:22
#: bookwyrm/templates/groups/members.html:30 #: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42 #: bookwyrm/templates/landing/password_reset.html:42
#: bookwyrm/templates/snippets/remove_from_group_button.html:16 #: bookwyrm/templates/snippets/remove_from_group_button.html:17
msgid "Confirm" msgid "Confirm"
msgstr "Conferma" msgstr "Conferma"
@ -819,14 +815,14 @@ msgid "Places"
msgstr "Luoghi" msgstr "Luoghi"
#: bookwyrm/templates/book/book.html:348 #: bookwyrm/templates/book/book.html:348
#: bookwyrm/templates/groups/group.html:20 bookwyrm/templates/layout.html:74 #: bookwyrm/templates/groups/group.html:19 bookwyrm/templates/layout.html:74
#: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:10 #: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:11
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
#: bookwyrm/templates/search/layout.html:25 #: bookwyrm/templates/search/layout.html:25
#: bookwyrm/templates/search/layout.html:50 #: bookwyrm/templates/search/layout.html:50
#: bookwyrm/templates/user/layout.html:85 #: bookwyrm/templates/user/layout.html:85
msgid "Lists" msgid "Lists"
msgstr "Elenchi" msgstr "Liste"
#: bookwyrm/templates/book/book.html:359 #: bookwyrm/templates/book/book.html:359
msgid "Add to list" msgid "Add to list"
@ -834,7 +830,7 @@ msgstr "Aggiungi all'elenco"
#: bookwyrm/templates/book/book.html:369 #: bookwyrm/templates/book/book.html:369
#: bookwyrm/templates/book/cover_add_modal.html:31 #: bookwyrm/templates/book/cover_add_modal.html:31
#: bookwyrm/templates/lists/list.html:208 #: bookwyrm/templates/lists/list.html:209
#: bookwyrm/templates/settings/email_blocklist/domain_form.html:24 #: bookwyrm/templates/settings/email_blocklist/domain_form.html:24
#: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:31 #: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:31
msgid "Add" msgid "Add"
@ -936,7 +932,7 @@ msgid "Back"
msgstr "Indietro" msgstr "Indietro"
#: bookwyrm/templates/book/edit/edit_book_form.html:21 #: bookwyrm/templates/book/edit/edit_book_form.html:21
#: bookwyrm/templates/snippets/create_status/review.html:16 #: bookwyrm/templates/snippets/create_status/review.html:15
msgid "Title:" msgid "Title:"
msgstr "Titolo:" msgstr "Titolo:"
@ -1653,7 +1649,7 @@ msgid "What are you reading?"
msgstr "Cosa stai leggendo?" msgstr "Cosa stai leggendo?"
#: bookwyrm/templates/get_started/books.html:9 #: bookwyrm/templates/get_started/books.html:9
#: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:162 #: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:163
msgid "Search for a book" msgid "Search for a book"
msgstr "Cerca un libro" msgstr "Cerca un libro"
@ -1671,9 +1667,9 @@ msgstr "Puoi aggiungere libri quando inizi a usare %(site_name)s."
#: bookwyrm/templates/get_started/books.html:17 #: bookwyrm/templates/get_started/books.html:17
#: bookwyrm/templates/get_started/users.html:18 #: bookwyrm/templates/get_started/users.html:18
#: bookwyrm/templates/get_started/users.html:19 #: bookwyrm/templates/get_started/users.html:19
#: bookwyrm/templates/groups/members.html:16 #: bookwyrm/templates/groups/members.html:15
#: bookwyrm/templates/groups/members.html:17 bookwyrm/templates/layout.html:53 #: bookwyrm/templates/groups/members.html:16 bookwyrm/templates/layout.html:53
#: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:166 #: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:167
#: bookwyrm/templates/search/layout.html:4 #: bookwyrm/templates/search/layout.html:4
#: bookwyrm/templates/search/layout.html:9 #: bookwyrm/templates/search/layout.html:9
msgid "Search" msgid "Search"
@ -1689,7 +1685,7 @@ msgid "Popular on %(site_name)s"
msgstr "Popolare su %(site_name)s" msgstr "Popolare su %(site_name)s"
#: bookwyrm/templates/get_started/books.html:58 #: bookwyrm/templates/get_started/books.html:58
#: bookwyrm/templates/lists/list.html:179 #: bookwyrm/templates/lists/list.html:180
msgid "No books found" msgid "No books found"
msgstr "Nessun libro trovato" msgstr "Nessun libro trovato"
@ -1794,7 +1790,7 @@ msgstr "Questa azione non può essere annullata"
#: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:49 #: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:49
#: bookwyrm/templates/settings/ip_blocklist/ip_blocklist.html:36 #: bookwyrm/templates/settings/ip_blocklist/ip_blocklist.html:36
#: bookwyrm/templates/snippets/follow_request_buttons.html:12 #: bookwyrm/templates/snippets/follow_request_buttons.html:12
#: bookwyrm/templates/snippets/join_invitation_buttons.html:13 #: bookwyrm/templates/snippets/join_invitation_buttons.html:14
msgid "Delete" msgid "Delete"
msgstr "Elimina" msgstr "Elimina"
@ -1814,17 +1810,17 @@ msgstr "Descrizione gruppo:"
msgid "Delete group" msgid "Delete group"
msgstr "Elimina gruppo" msgstr "Elimina gruppo"
#: bookwyrm/templates/groups/group.html:22 #: bookwyrm/templates/groups/group.html:21
msgid "Members of this group can create group-curated lists." msgid "Members of this group can create group-curated lists."
msgstr "I membri di questo gruppo possono creare liste curate dal gruppo." msgstr "I membri di questo gruppo possono creare liste curate dal gruppo."
#: bookwyrm/templates/groups/group.html:27 #: bookwyrm/templates/groups/group.html:26
#: bookwyrm/templates/lists/create_form.html:5 #: bookwyrm/templates/lists/create_form.html:5
#: bookwyrm/templates/lists/lists.html:20 #: bookwyrm/templates/lists/lists.html:20
msgid "Create List" msgid "Create List"
msgstr "Crea Lista" msgstr "Crea Lista"
#: bookwyrm/templates/groups/group.html:40 #: bookwyrm/templates/groups/group.html:39
msgid "This group has no lists" msgid "This group has no lists"
msgstr "Questo gruppo non ha alcuna lista" msgstr "Questo gruppo non ha alcuna lista"
@ -1832,15 +1828,15 @@ msgstr "Questo gruppo non ha alcuna lista"
msgid "Edit group" msgid "Edit group"
msgstr "Modifica gruppo" msgstr "Modifica gruppo"
#: bookwyrm/templates/groups/members.html:12 #: bookwyrm/templates/groups/members.html:11
msgid "Search to add a user" msgid "Search to add a user"
msgstr "Cerca o aggiungi utente" msgstr "Cerca o aggiungi utente"
#: bookwyrm/templates/groups/members.html:33 #: bookwyrm/templates/groups/members.html:32
msgid "Leave group" msgid "Leave group"
msgstr "Lascia il gruppo" msgstr "Lascia il gruppo"
#: bookwyrm/templates/groups/members.html:55 #: bookwyrm/templates/groups/members.html:54
#: bookwyrm/templates/groups/suggested_users.html:35 #: bookwyrm/templates/groups/suggested_users.html:35
#: bookwyrm/templates/snippets/suggested_users.html:31 #: bookwyrm/templates/snippets/suggested_users.html:31
#: bookwyrm/templates/user/user_preview.html:36 #: bookwyrm/templates/user/user_preview.html:36
@ -2297,18 +2293,18 @@ msgstr "Vuoi eliminare la lista selezionata?"
msgid "Edit List" msgid "Edit List"
msgstr "Modifica lista" msgstr "Modifica lista"
#: bookwyrm/templates/lists/embed-list.html:7 #: bookwyrm/templates/lists/embed-list.html:8
#, python-format #, python-format
msgid "%(list_name)s, a list by %(owner)s" msgid "%(list_name)s, a list by %(owner)s"
msgstr "%(list_name)s, una lista di %(owner)s" msgstr "%(list_name)s, una lista di %(owner)s"
#: bookwyrm/templates/lists/embed-list.html:17 #: bookwyrm/templates/lists/embed-list.html:18
#, python-format #, python-format
msgid "on <a href=\"/\">%(site_name)s</a>" msgid "on <a href=\"/\">%(site_name)s</a>"
msgstr "su <a href=\"/\">%(site_name)s</a>" msgstr "su <a href=\"/\">%(site_name)s</a>"
#: bookwyrm/templates/lists/embed-list.html:26 #: bookwyrm/templates/lists/embed-list.html:27
#: bookwyrm/templates/lists/list.html:42 #: bookwyrm/templates/lists/list.html:43
msgid "This list is currently empty" msgid "This list is currently empty"
msgstr "Questa lista è attualmente vuota" msgstr "Questa lista è attualmente vuota"
@ -2369,76 +2365,76 @@ msgstr "Crea un gruppo"
msgid "Delete list" msgid "Delete list"
msgstr "Elimina lista" msgstr "Elimina lista"
#: bookwyrm/templates/lists/list.html:34 #: bookwyrm/templates/lists/list.html:35
msgid "You successfully suggested a book for this list!" msgid "You successfully suggested a book for this list!"
msgstr "Hai consigliato con successo un libro per questa lista!" msgstr "Hai consigliato con successo un libro per questa lista!"
#: bookwyrm/templates/lists/list.html:36 #: bookwyrm/templates/lists/list.html:37
msgid "You successfully added a book to this list!" msgid "You successfully added a book to this list!"
msgstr "Hai consigliato con successo un libro per questa lista!" msgstr "Hai consigliato con successo un libro per questa lista!"
#: bookwyrm/templates/lists/list.html:80 #: bookwyrm/templates/lists/list.html:81
#, python-format #, python-format
msgid "Added by <a href=\"%(user_path)s\">%(username)s</a>" msgid "Added by <a href=\"%(user_path)s\">%(username)s</a>"
msgstr "Aggiunto da <a href=\"%(user_path)s\">%(username)s</a>" msgstr "Aggiunto da <a href=\"%(user_path)s\">%(username)s</a>"
#: bookwyrm/templates/lists/list.html:95 #: bookwyrm/templates/lists/list.html:96
msgid "List position" msgid "List position"
msgstr "Posizione elenco" msgstr "Posizione elenco"
#: bookwyrm/templates/lists/list.html:101 #: bookwyrm/templates/lists/list.html:102
#: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:21 #: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:21
msgid "Set" msgid "Set"
msgstr "Imposta" msgstr "Imposta"
#: bookwyrm/templates/lists/list.html:116 #: bookwyrm/templates/lists/list.html:117
#: bookwyrm/templates/snippets/remove_from_group_button.html:19 #: bookwyrm/templates/snippets/remove_from_group_button.html:20
msgid "Remove" msgid "Remove"
msgstr "Elimina" msgstr "Elimina"
#: bookwyrm/templates/lists/list.html:130 #: bookwyrm/templates/lists/list.html:131
#: bookwyrm/templates/lists/list.html:147 #: bookwyrm/templates/lists/list.html:148
msgid "Sort List" msgid "Sort List"
msgstr "Ordine lista" msgstr "Ordine lista"
#: bookwyrm/templates/lists/list.html:140 #: bookwyrm/templates/lists/list.html:141
msgid "Direction" msgid "Direction"
msgstr "Direzione" msgstr "Direzione"
#: bookwyrm/templates/lists/list.html:154 #: bookwyrm/templates/lists/list.html:155
msgid "Add Books" msgid "Add Books"
msgstr "Aggiungi Libri" msgstr "Aggiungi Libri"
#: bookwyrm/templates/lists/list.html:156 #: bookwyrm/templates/lists/list.html:157
msgid "Suggest Books" msgid "Suggest Books"
msgstr "Libri consigliati" msgstr "Libri consigliati"
#: bookwyrm/templates/lists/list.html:167 #: bookwyrm/templates/lists/list.html:168
msgid "search" msgid "search"
msgstr "cerca" msgstr "cerca"
#: bookwyrm/templates/lists/list.html:173 #: bookwyrm/templates/lists/list.html:174
msgid "Clear search" msgid "Clear search"
msgstr "Cancella ricerca" msgstr "Cancella ricerca"
#: bookwyrm/templates/lists/list.html:178 #: bookwyrm/templates/lists/list.html:179
#, python-format #, python-format
msgid "No books found matching the query \"%(query)s\"" msgid "No books found matching the query \"%(query)s\""
msgstr "Nessun libro trovato corrispondente alla query \"%(query)s\"" msgstr "Nessun libro trovato corrispondente alla query \"%(query)s\""
#: bookwyrm/templates/lists/list.html:210 #: bookwyrm/templates/lists/list.html:211
msgid "Suggest" msgid "Suggest"
msgstr "Suggerisci" msgstr "Suggerisci"
#: bookwyrm/templates/lists/list.html:221 #: bookwyrm/templates/lists/list.html:222
msgid "Embed this list on a website" msgid "Embed this list on a website"
msgstr "Incorpora questa lista in un sito web" msgstr "Incorpora questa lista in un sito web"
#: bookwyrm/templates/lists/list.html:229 #: bookwyrm/templates/lists/list.html:230
msgid "Copy embed code" msgid "Copy embed code"
msgstr "Copia codice di incorporamento" msgstr "Copia codice di incorporamento"
#: bookwyrm/templates/lists/list.html:231 #: bookwyrm/templates/lists/list.html:232
#, python-format #, python-format
msgid "%(list_name)s, a list by %(owner)s on %(site_name)s" msgid "%(list_name)s, a list by %(owner)s on %(site_name)s"
msgstr "%(list_name)s, una lista di %(owner)s su %(site_name)s" msgstr "%(list_name)s, una lista di %(owner)s su %(site_name)s"
@ -3914,15 +3910,15 @@ msgstr "Completato"
msgid "This shelf is empty." msgid "This shelf is empty."
msgstr "Questo scaffale è vuoto." msgstr "Questo scaffale è vuoto."
#: bookwyrm/templates/snippets/add_to_group_button.html:15 #: bookwyrm/templates/snippets/add_to_group_button.html:16
msgid "Invite" msgid "Invite"
msgstr "Invita" msgstr "Invita"
#: bookwyrm/templates/snippets/add_to_group_button.html:24 #: bookwyrm/templates/snippets/add_to_group_button.html:25
msgid "Uninvite" msgid "Uninvite"
msgstr "Revoca invito" msgstr "Revoca invito"
#: bookwyrm/templates/snippets/add_to_group_button.html:28 #: bookwyrm/templates/snippets/add_to_group_button.html:29
#, python-format #, python-format
msgid "Remove @%(username)s" msgid "Remove @%(username)s"
msgstr "Rimuovi %(username)s" msgstr "Rimuovi %(username)s"
@ -4010,7 +4006,7 @@ msgstr "Attenzione Spoiler!"
msgid "Include spoiler alert" msgid "Include spoiler alert"
msgstr "Includi avviso spoiler" msgstr "Includi avviso spoiler"
#: bookwyrm/templates/snippets/create_status/layout.html:48 #: bookwyrm/templates/snippets/create_status/layout.html:47
#: bookwyrm/templates/snippets/reading_modals/form.html:7 #: bookwyrm/templates/snippets/reading_modals/form.html:7
msgid "Comment:" msgid "Comment:"
msgstr "Commenta:" msgstr "Commenta:"
@ -4019,33 +4015,33 @@ msgstr "Commenta:"
msgid "Post" msgid "Post"
msgstr "Pubblica" msgstr "Pubblica"
#: bookwyrm/templates/snippets/create_status/quotation.html:17 #: bookwyrm/templates/snippets/create_status/quotation.html:16
msgid "Quote:" msgid "Quote:"
msgstr "Citazione:" msgstr "Citazione:"
#: bookwyrm/templates/snippets/create_status/quotation.html:25 #: bookwyrm/templates/snippets/create_status/quotation.html:24
#, python-format #, python-format
msgid "An excerpt from '%(book_title)s'" msgid "An excerpt from '%(book_title)s'"
msgstr "Un estratto da '%(book_title)s'" msgstr "Un estratto da '%(book_title)s'"
#: bookwyrm/templates/snippets/create_status/quotation.html:32 #: bookwyrm/templates/snippets/create_status/quotation.html:31
msgid "Position:" msgid "Position:"
msgstr "Posizione:" msgstr "Posizione:"
#: bookwyrm/templates/snippets/create_status/quotation.html:45 #: bookwyrm/templates/snippets/create_status/quotation.html:44
msgid "On page:" msgid "On page:"
msgstr "Alla pagina:" msgstr "Alla pagina:"
#: bookwyrm/templates/snippets/create_status/quotation.html:51 #: bookwyrm/templates/snippets/create_status/quotation.html:50
msgid "At percent:" msgid "At percent:"
msgstr "Alla percentuale:" msgstr "Alla percentuale:"
#: bookwyrm/templates/snippets/create_status/review.html:25 #: bookwyrm/templates/snippets/create_status/review.html:24
#, python-format #, python-format
msgid "Your review of '%(book_title)s'" msgid "Your review of '%(book_title)s'"
msgstr "La tua recensione di '%(book_title)s'" msgstr "La tua recensione di '%(book_title)s'"
#: bookwyrm/templates/snippets/create_status/review.html:40 #: bookwyrm/templates/snippets/create_status/review.html:39
msgid "Review:" msgid "Review:"
msgstr "Recensione:" msgstr "Recensione:"
@ -4099,7 +4095,7 @@ msgid "Unfollow"
msgstr "Smetti di seguire" msgstr "Smetti di seguire"
#: bookwyrm/templates/snippets/follow_request_buttons.html:7 #: bookwyrm/templates/snippets/follow_request_buttons.html:7
#: bookwyrm/templates/snippets/join_invitation_buttons.html:8 #: bookwyrm/templates/snippets/join_invitation_buttons.html:9
msgid "Accept" msgid "Accept"
msgstr "Accetta" msgstr "Accetta"
@ -4139,15 +4135,15 @@ msgstr[1] "valutato <em><a href=\"%(path)s\">%(title)s</a></em>: %(display_ratin
#: bookwyrm/templates/snippets/generated_status/review_pure_name.html:4 #: bookwyrm/templates/snippets/generated_status/review_pure_name.html:4
#, python-format #, python-format
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(display_rating)s star): %(review_title)s" msgid "Review of \"%(book_title)s\" (%(display_rating)s star): %(review_title)s"
msgid_plural "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(display_rating)s stars): %(review_title)s" msgid_plural "Review of \"%(book_title)s\" (%(display_rating)s stars): %(review_title)s"
msgstr[0] "Recensione di \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(display_rating)s stella): %(review_title)s" msgstr[0] "Recensione di \"%(book_title)s\" (%(display_rating)s stella): %(review_title)s"
msgstr[1] "Recensione di \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(display_rating)s stelle): %(review_title)s" msgstr[1] "Recensione di \"%(book_title)s\" (%(display_rating)s stelle): %(review_title)s"
#: bookwyrm/templates/snippets/generated_status/review_pure_name.html:12 #: bookwyrm/templates/snippets/generated_status/review_pure_name.html:12
#, python-format #, python-format
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\": %(review_title)s" msgid "Review of \"%(book_title)s\": %(review_title)s"
msgstr "Recensione di \"<a href='%(book_path)s'>%(book_title)s</a>\": %(review_title)s" msgstr "Recensione di \"%(book_title)s\": %(review_title)s"
#: bookwyrm/templates/snippets/goal_form.html:4 #: bookwyrm/templates/snippets/goal_form.html:4
#, python-format #, python-format
@ -4217,11 +4213,11 @@ msgstr "Solo Followers"
msgid "Post privacy" msgid "Post privacy"
msgstr "Privacy dei post" msgstr "Privacy dei post"
#: bookwyrm/templates/snippets/rate_action.html:4 #: bookwyrm/templates/snippets/rate_action.html:5
msgid "Leave a rating" msgid "Leave a rating"
msgstr "Lascia una recensione" msgstr "Lascia una recensione"
#: bookwyrm/templates/snippets/rate_action.html:19 #: bookwyrm/templates/snippets/rate_action.html:20
msgid "Rate" msgid "Rate"
msgstr "Vota" msgstr "Vota"
@ -4315,29 +4311,29 @@ msgstr "Rimuovi da %(name)s"
msgid "Finish reading" msgid "Finish reading"
msgstr "Finito di leggere" msgstr "Finito di leggere"
#: bookwyrm/templates/snippets/status/content_status.html:72 #: bookwyrm/templates/snippets/status/content_status.html:73
msgid "Content warning" msgid "Content warning"
msgstr "Avviso sul contenuto" msgstr "Avviso sul contenuto"
#: bookwyrm/templates/snippets/status/content_status.html:79 #: bookwyrm/templates/snippets/status/content_status.html:80
msgid "Show status" msgid "Show status"
msgstr "Mostra stato" msgstr "Mostra stato"
#: bookwyrm/templates/snippets/status/content_status.html:101 #: bookwyrm/templates/snippets/status/content_status.html:102
#, python-format #, python-format
msgid "(Page %(page)s)" msgid "(Page %(page)s)"
msgstr "(Pagina %(page)s)" msgstr "(Pagina %(page)s)"
#: bookwyrm/templates/snippets/status/content_status.html:103 #: bookwyrm/templates/snippets/status/content_status.html:104
#, python-format #, python-format
msgid "(%(percent)s%%)" msgid "(%(percent)s%%)"
msgstr "(%(percent)s%%)" msgstr "(%(percent)s%%)"
#: bookwyrm/templates/snippets/status/content_status.html:125 #: bookwyrm/templates/snippets/status/content_status.html:126
msgid "Open image in new window" msgid "Open image in new window"
msgstr "Apri immagine in una nuova finestra" msgstr "Apri immagine in una nuova finestra"
#: bookwyrm/templates/snippets/status/content_status.html:144 #: bookwyrm/templates/snippets/status/content_status.html:145
msgid "Hide status" msgid "Hide status"
msgstr "Nascondi lo stato" msgstr "Nascondi lo stato"
@ -4379,7 +4375,7 @@ msgstr "valutato <a href=\"%(book_path)s\">%(book)s</a>:"
#: bookwyrm/templates/snippets/status/headers/read.html:10 #: bookwyrm/templates/snippets/status/headers/read.html:10
#, python-format #, python-format
msgid "finished reading <a href=\"%(book_path)s\">%(book)s</a> by <a href=\"%(author_path)s\">%(author_name)s</a>" msgid "finished reading <a href=\"%(book_path)s\">%(book)s</a> by <a href=\"%(author_path)s\">%(author_name)s</a>"
msgstr "lettura del libro <a href=\"%(book_path)s\">%(book)s</a> di <a href=\"%(author_path)s\">%(author_name)s</a> completata" msgstr "ha finito di leggere <a href=\"%(book_path)s\">%(book)s</a> di <a href=\"%(author_path)s\">%(author_name)s</a>"
#: bookwyrm/templates/snippets/status/headers/read.html:17 #: bookwyrm/templates/snippets/status/headers/read.html:17
#, python-format #, python-format
@ -4389,7 +4385,7 @@ msgstr "lettura di <a href=\"%(book_path)s\">%(book)s</a> completata"
#: bookwyrm/templates/snippets/status/headers/reading.html:10 #: bookwyrm/templates/snippets/status/headers/reading.html:10
#, python-format #, python-format
msgid "started reading <a href=\"%(book_path)s\">%(book)s</a> by <a href=\"%(author_path)s\">%(author_name)s</a>" msgid "started reading <a href=\"%(book_path)s\">%(book)s</a> by <a href=\"%(author_path)s\">%(author_name)s</a>"
msgstr "lettura del libro <a href=\"%(book_path)s\">%(book)s</a> di <a href=\"%(author_path)s\">%(author_name)s</a> iniziata" msgstr "ha iniziato a leggere <a href=\"%(book_path)s\">%(book)s</a> di <a href=\"%(author_path)s\">%(author_name)s</a>"
#: bookwyrm/templates/snippets/status/headers/reading.html:17 #: bookwyrm/templates/snippets/status/headers/reading.html:17
#, python-format #, python-format
@ -4409,7 +4405,7 @@ msgstr "recensito <a href=\"%(book_path)s\">%(book)s</a>"
#: bookwyrm/templates/snippets/status/headers/to_read.html:10 #: bookwyrm/templates/snippets/status/headers/to_read.html:10
#, python-format #, python-format
msgid "wants to read <a href=\"%(book_path)s\">%(book)s</a> by <a href=\"%(author_path)s\">%(author_name)s</a>" msgid "wants to read <a href=\"%(book_path)s\">%(book)s</a> by <a href=\"%(author_path)s\">%(author_name)s</a>"
msgstr "da leggere <a href=\"%(book_path)s\">%(book)s</a> da <a href=\"%(author_path)s\">%(author_name)s</a>" msgstr "vuole leggere <a href=\"%(book_path)s\">%(book)s</a> di <a href=\"%(author_path)s\">%(author_name)s</a>"
#: bookwyrm/templates/snippets/status/headers/to_read.html:17 #: bookwyrm/templates/snippets/status/headers/to_read.html:17
#, python-format #, python-format
@ -4562,7 +4558,7 @@ msgstr "Visualizza tutti i libri"
#: bookwyrm/templates/user/user.html:58 #: bookwyrm/templates/user/user.html:58
#, python-format #, python-format
msgid "%(current_year)s Reading Goal" msgid "%(current_year)s Reading Goal"
msgstr "Obiettivo di lettura del %(current_year)s" msgstr "Obiettivo di lettura %(current_year)s"
#: bookwyrm/templates/user/user.html:65 #: bookwyrm/templates/user/user.html:65
msgid "User Activity" msgid "User Activity"
@ -4630,7 +4626,7 @@ msgstr "Non è stato trovato nessun utente con questo indirizzo email."
msgid "A password reset link was sent to {email}" msgid "A password reset link was sent to {email}"
msgstr "Il link per reimpostare la password è stato inviato a {email}" msgstr "Il link per reimpostare la password è stato inviato a {email}"
#: bookwyrm/views/rss_feed.py:35 #: bookwyrm/views/rss_feed.py:34
#, python-brace-format #, python-brace-format
msgid "Status updates from {obj.display_name}" msgid "Status updates from {obj.display_name}"
msgstr "Aggiornamenti di stato da {obj.display_name}" msgstr "Aggiornamenti di stato da {obj.display_name}"

Binary file not shown.

View file

@ -2,8 +2,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: bookwyrm\n" "Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-01-17 19:26+0000\n" "POT-Creation-Date: 2022-01-24 17:25+0000\n"
"PO-Revision-Date: 2022-01-17 19:57\n" "PO-Revision-Date: 2022-01-24 18:54\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n" "Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: Lithuanian\n" "Language-Team: Lithuanian\n"
"Language: lt\n" "Language: lt\n"
@ -56,11 +56,11 @@ msgstr "Knygos antraštė"
#: bookwyrm/forms.py:485 bookwyrm/templates/shelf/shelf.html:155 #: bookwyrm/forms.py:485 bookwyrm/templates/shelf/shelf.html:155
#: bookwyrm/templates/shelf/shelf.html:187 #: bookwyrm/templates/shelf/shelf.html:187
#: bookwyrm/templates/snippets/create_status/review.html:33 #: bookwyrm/templates/snippets/create_status/review.html:32
msgid "Rating" msgid "Rating"
msgstr "Įvertinimas" msgstr "Įvertinimas"
#: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:134 #: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:135
msgid "Sort By" msgid "Sort By"
msgstr "Rūšiuoti pagal" msgstr "Rūšiuoti pagal"
@ -74,7 +74,7 @@ msgstr "Mažėjančia tvarka"
#: bookwyrm/forms.py:505 #: bookwyrm/forms.py:505
msgid "Reading finish date cannot be before start date." msgid "Reading finish date cannot be before start date."
msgstr "" msgstr "Skaitymo pabaigos data negali būti prieš skaitymo pradžios datą."
#: bookwyrm/importers/importer.py:145 bookwyrm/importers/importer.py:167 #: bookwyrm/importers/importer.py:145 bookwyrm/importers/importer.py:167
msgid "Error loading book" msgid "Error loading book"
@ -193,20 +193,20 @@ msgstr "Privatu"
#: bookwyrm/models/link.py:51 #: bookwyrm/models/link.py:51
msgid "Free" msgid "Free"
msgstr "" msgstr "Nemokama"
#: bookwyrm/models/link.py:52 #: bookwyrm/models/link.py:52
msgid "Purchasable" msgid "Purchasable"
msgstr "" msgstr "Galima nusipirkti"
#: bookwyrm/models/link.py:53 #: bookwyrm/models/link.py:53
msgid "Available for loan" msgid "Available for loan"
msgstr "" msgstr "Galima pasiskolinti"
#: bookwyrm/models/link.py:70 #: bookwyrm/models/link.py:70
#: bookwyrm/templates/settings/link_domains/link_domains.html:23 #: bookwyrm/templates/settings/link_domains/link_domains.html:23
msgid "Approved" msgid "Approved"
msgstr "" msgstr "Patvirtinti"
#: bookwyrm/models/user.py:32 bookwyrm/templates/book/book.html:272 #: bookwyrm/models/user.py:32 bookwyrm/templates/book/book.html:272
msgid "Reviews" msgid "Reviews"
@ -224,69 +224,69 @@ msgstr "Citatos"
msgid "Everything else" msgid "Everything else"
msgstr "Visa kita" msgstr "Visa kita"
#: bookwyrm/settings.py:121 #: bookwyrm/settings.py:173
msgid "Home Timeline" msgid "Home Timeline"
msgstr "Pagrindinė siena" msgstr "Pagrindinė siena"
#: bookwyrm/settings.py:121 #: bookwyrm/settings.py:173
msgid "Home" msgid "Home"
msgstr "Pagrindinis" msgstr "Pagrindinis"
#: bookwyrm/settings.py:122 #: bookwyrm/settings.py:174
msgid "Books Timeline" msgid "Books Timeline"
msgstr "Knygų siena" msgstr "Knygų siena"
#: bookwyrm/settings.py:122 bookwyrm/templates/search/layout.html:21 #: bookwyrm/settings.py:174 bookwyrm/templates/search/layout.html:21
#: bookwyrm/templates/search/layout.html:42 #: bookwyrm/templates/search/layout.html:42
#: bookwyrm/templates/user/layout.html:91 #: bookwyrm/templates/user/layout.html:91
msgid "Books" msgid "Books"
msgstr "Knygos" msgstr "Knygos"
#: bookwyrm/settings.py:196 #: bookwyrm/settings.py:248
msgid "English" msgid "English"
msgstr "English (Anglų)" msgstr "English (Anglų)"
#: bookwyrm/settings.py:197 #: bookwyrm/settings.py:249
msgid "Deutsch (German)" msgid "Deutsch (German)"
msgstr "Deutsch (Vokiečių)" msgstr "Deutsch (Vokiečių)"
#: bookwyrm/settings.py:198 #: bookwyrm/settings.py:250
msgid "Español (Spanish)" msgid "Español (Spanish)"
msgstr "Español (Ispanų)" msgstr "Español (Ispanų)"
#: bookwyrm/settings.py:199 #: bookwyrm/settings.py:251
msgid "Galego (Galician)" msgid "Galego (Galician)"
msgstr "Galego (galisų)" msgstr "Galego (galisų)"
#: bookwyrm/settings.py:200 #: bookwyrm/settings.py:252
msgid "Italiano (Italian)" msgid "Italiano (Italian)"
msgstr "" msgstr "Italų (Italian)"
#: bookwyrm/settings.py:201 #: bookwyrm/settings.py:253
msgid "Français (French)" msgid "Français (French)"
msgstr "Français (Prancūzų)" msgstr "Français (Prancūzų)"
#: bookwyrm/settings.py:202 #: bookwyrm/settings.py:254
msgid "Lietuvių (Lithuanian)" msgid "Lietuvių (Lithuanian)"
msgstr "Lietuvių" msgstr "Lietuvių"
#: bookwyrm/settings.py:203 #: bookwyrm/settings.py:255
msgid "Norsk (Norwegian)" msgid "Norsk (Norwegian)"
msgstr "" msgstr "Norvegų (Norwegian)"
#: bookwyrm/settings.py:204 #: bookwyrm/settings.py:256
msgid "Português do Brasil (Brazilian Portuguese)" msgid "Português do Brasil (Brazilian Portuguese)"
msgstr "Português brasileiro (Brazilijos portugalų)" msgstr "Português brasileiro (Brazilijos portugalų)"
#: bookwyrm/settings.py:205 #: bookwyrm/settings.py:257
msgid "Português Europeu (European Portuguese)" msgid "Português Europeu (European Portuguese)"
msgstr "Português Europeu (Europos portugalų)" msgstr "Português Europeu (Europos portugalų)"
#: bookwyrm/settings.py:206 #: bookwyrm/settings.py:258
msgid "简体中文 (Simplified Chinese)" msgid "简体中文 (Simplified Chinese)"
msgstr "简体中文 (Supaprastinta kinų)" msgstr "简体中文 (Supaprastinta kinų)"
#: bookwyrm/settings.py:207 #: bookwyrm/settings.py:259
msgid "繁體中文 (Traditional Chinese)" msgid "繁體中文 (Traditional Chinese)"
msgstr "繁體中文 (Tradicinė kinų)" msgstr "繁體中文 (Tradicinė kinų)"
@ -313,58 +313,56 @@ msgstr "Kažkas nepavyko. Atsiprašome."
#: bookwyrm/templates/about/about.html:9 #: bookwyrm/templates/about/about.html:9
#: bookwyrm/templates/about/layout.html:35 #: bookwyrm/templates/about/layout.html:35
msgid "About" msgid "About"
msgstr "" msgstr "Apie"
#: bookwyrm/templates/about/about.html:18 #: bookwyrm/templates/about/about.html:19
#: bookwyrm/templates/get_started/layout.html:20 #: bookwyrm/templates/get_started/layout.html:20
#, python-format #, python-format
msgid "Welcome to %(site_name)s!" msgid "Welcome to %(site_name)s!"
msgstr "Sveiki atvykę į %(site_name)s!" msgstr "Sveiki atvykę į %(site_name)s!"
#: bookwyrm/templates/about/about.html:22 #: bookwyrm/templates/about/about.html:23
#, python-format #, python-format
msgid "%(site_name)s is part of <em>BookWyrm</em>, a network of independent, self-directed communities for readers. While you can interact seamlessly with users anywhere in the <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">BookWyrm network</a>, this community is unique." msgid "%(site_name)s is part of <em>BookWyrm</em>, a network of independent, self-directed communities for readers. While you can interact seamlessly with users anywhere in the <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">BookWyrm network</a>, this community is unique."
msgstr "" msgstr "%(site_name)s yra <em>BookWyrm</em>dalis, tinklo nepriklausomų skaitytojų bendruomenių. Jūs galite bendrauti su nariais iš šio <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">BookWyrm tinklo</a>, tačiau ši bendruomenė yra unikali."
#: bookwyrm/templates/about/about.html:39 #: bookwyrm/templates/about/about.html:40
#, python-format #, python-format
msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> is %(site_name)s's most beloved book, with an average rating of %(rating)s out of 5." msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> is %(site_name)s's most beloved book, with an average rating of %(rating)s out of 5."
msgstr "" msgstr "<a href=\"%(book_path)s\"><em>%(title)s</em></a> yra %(site_name)s's mėgstamiausia knyga, kurios vidutinis įvertinimas yra %(rating)s iš 5."
#: bookwyrm/templates/about/about.html:58 #: bookwyrm/templates/about/about.html:59
#, python-format #, python-format
msgid "More %(site_name)s users want to read <a href=\"%(book_path)s\"><em>%(title)s</em></a> than any other book." msgid "More %(site_name)s users want to read <a href=\"%(book_path)s\"><em>%(title)s</em></a> than any other book."
msgstr "" msgstr "Daugiau %(site_name)s narių nori perskaityti <a href=\"%(book_path)s\"><em>%(title)s</em></a> negu bet kurią kitą knygą."
#: bookwyrm/templates/about/about.html:77 #: bookwyrm/templates/about/about.html:78
#, python-format #, python-format
msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> has the most divisive ratings of any book on %(site_name)s." msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> has the most divisive ratings of any book on %(site_name)s."
msgstr "" msgstr "<a href=\"%(book_path)s\"><em>%(title)s</em></a> labiausiai kontroversiškai reitinguota %(site_name)s."
#: bookwyrm/templates/about/about.html:88 #: bookwyrm/templates/about/about.html:89
msgid "Track your reading, talk about books, write reviews, and discover what to read next. Always ad-free, anti-corporate, and community-oriented, BookWyrm is human-scale software, designed to stay small and personal. If you have feature requests, bug reports, or grand dreams, <a href='https://joinbookwyrm.com/get-involved' target='_blank'>reach out</a> and make yourself heard." msgid "Track your reading, talk about books, write reviews, and discover what to read next. Always ad-free, anti-corporate, and community-oriented, BookWyrm is human-scale software, designed to stay small and personal. If you have feature requests, bug reports, or grand dreams, <a href='https://joinbookwyrm.com/get-involved' target='_blank'>reach out</a> and make yourself heard."
msgstr "" msgstr ""
#: bookwyrm/templates/about/about.html:95 #: bookwyrm/templates/about/about.html:96
msgid "Meet your admins" msgid "Meet your admins"
msgstr "" msgstr "Šio serverio administratoriai"
#: bookwyrm/templates/about/about.html:98 #: bookwyrm/templates/about/about.html:99
#, python-format #, python-format
msgid "\n" msgid "%(site_name)s's moderators and administrators keep the site up and running, enforce the <a href=\"coc_path\">code of conduct</a>, and respond when users report spam and bad behavior."
" %(site_name)s's moderators and administrators keep the site up and running, enforce the <a href=\"coc_path\">code of conduct</a>, and respond when users report spam and bad behavior.\n"
" "
msgstr "" msgstr ""
#: bookwyrm/templates/about/about.html:112 #: bookwyrm/templates/about/about.html:113
msgid "Moderator" msgid "Moderator"
msgstr "" msgstr "Moderatorius"
#: bookwyrm/templates/about/about.html:114 bookwyrm/templates/layout.html:131 #: bookwyrm/templates/about/about.html:115 bookwyrm/templates/layout.html:131
msgid "Admin" msgid "Admin"
msgstr "Administravimas" msgstr "Administravimas"
#: bookwyrm/templates/about/about.html:130 #: bookwyrm/templates/about/about.html:131
#: bookwyrm/templates/settings/users/user_moderation_actions.html:14 #: bookwyrm/templates/settings/users/user_moderation_actions.html:14
#: bookwyrm/templates/snippets/status/status_options.html:35 #: bookwyrm/templates/snippets/status/status_options.html:35
#: bookwyrm/templates/snippets/user_options.html:13 #: bookwyrm/templates/snippets/user_options.html:13
@ -379,15 +377,15 @@ msgstr "Elgesio kodeksas"
#: bookwyrm/templates/about/layout.html:11 #: bookwyrm/templates/about/layout.html:11
msgid "Active users:" msgid "Active users:"
msgstr "" msgstr "Aktyvūs vartotojai:"
#: bookwyrm/templates/about/layout.html:15 #: bookwyrm/templates/about/layout.html:15
msgid "Statuses posted:" msgid "Statuses posted:"
msgstr "" msgstr "Publikuotos būsenos:"
#: bookwyrm/templates/about/layout.html:19 #: bookwyrm/templates/about/layout.html:19
msgid "Software version:" msgid "Software version:"
msgstr "" msgstr "Serverio programinės įrangos versija:"
#: bookwyrm/templates/about/layout.html:30 #: bookwyrm/templates/about/layout.html:30
#: bookwyrm/templates/embed-layout.html:34 bookwyrm/templates/layout.html:229 #: bookwyrm/templates/embed-layout.html:34 bookwyrm/templates/layout.html:229
@ -426,7 +424,7 @@ msgid "Copy address"
msgstr "Kopijuoti adresą" msgstr "Kopijuoti adresą"
#: bookwyrm/templates/annual_summary/layout.html:68 #: bookwyrm/templates/annual_summary/layout.html:68
#: bookwyrm/templates/lists/list.html:230 #: bookwyrm/templates/lists/list.html:231
msgid "Copied!" msgid "Copied!"
msgstr "Nukopijuota" msgstr "Nukopijuota"
@ -461,7 +459,7 @@ msgstr "Jei padarysite puslapį privačiu - senas raktas nustos galioti. Ateityj
#: bookwyrm/templates/annual_summary/layout.html:112 #: bookwyrm/templates/annual_summary/layout.html:112
#, python-format #, python-format
msgid "Sadly %(display_name)s didnt finish any books in %(year)s" msgid "Sadly %(display_name)s didnt finish any books in %(year)s"
msgstr "" msgstr "Gaila, bet %(display_name)s %(year)s metais neperskaitė nei vienos knygos"
#: bookwyrm/templates/annual_summary/layout.html:118 #: bookwyrm/templates/annual_summary/layout.html:118
#, python-format #, python-format
@ -499,7 +497,7 @@ msgstr "Trumpiausias skaitinys tais metais…"
#: bookwyrm/templates/annual_summary/layout.html:245 #: bookwyrm/templates/annual_summary/layout.html:245
#: bookwyrm/templates/book/book.html:47 #: bookwyrm/templates/book/book.html:47
#: bookwyrm/templates/discover/large-book.html:22 #: bookwyrm/templates/discover/large-book.html:22
#: bookwyrm/templates/landing/large-book.html:25 #: bookwyrm/templates/landing/large-book.html:26
#: bookwyrm/templates/landing/small-book.html:18 #: bookwyrm/templates/landing/small-book.html:18
msgid "by" msgid "by"
msgstr " " msgstr " "
@ -739,9 +737,9 @@ msgstr "Duomenų įkėlimas prisijungs prie <strong>%(source_name)s</strong> ir
#: bookwyrm/templates/author/sync_modal.html:22 #: bookwyrm/templates/author/sync_modal.html:22
#: bookwyrm/templates/book/edit/edit_book.html:108 #: bookwyrm/templates/book/edit/edit_book.html:108
#: bookwyrm/templates/book/sync_modal.html:22 #: bookwyrm/templates/book/sync_modal.html:22
#: bookwyrm/templates/groups/members.html:30 #: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42 #: bookwyrm/templates/landing/password_reset.html:42
#: bookwyrm/templates/snippets/remove_from_group_button.html:16 #: bookwyrm/templates/snippets/remove_from_group_button.html:17
msgid "Confirm" msgid "Confirm"
msgstr "Patvirtinti" msgstr "Patvirtinti"
@ -827,8 +825,8 @@ msgid "Places"
msgstr "Vietos" msgstr "Vietos"
#: bookwyrm/templates/book/book.html:348 #: bookwyrm/templates/book/book.html:348
#: bookwyrm/templates/groups/group.html:20 bookwyrm/templates/layout.html:74 #: bookwyrm/templates/groups/group.html:19 bookwyrm/templates/layout.html:74
#: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:10 #: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:11
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
#: bookwyrm/templates/search/layout.html:25 #: bookwyrm/templates/search/layout.html:25
#: bookwyrm/templates/search/layout.html:50 #: bookwyrm/templates/search/layout.html:50
@ -842,7 +840,7 @@ msgstr "Pridėti prie sąrašo"
#: bookwyrm/templates/book/book.html:369 #: bookwyrm/templates/book/book.html:369
#: bookwyrm/templates/book/cover_add_modal.html:31 #: bookwyrm/templates/book/cover_add_modal.html:31
#: bookwyrm/templates/lists/list.html:208 #: bookwyrm/templates/lists/list.html:209
#: bookwyrm/templates/settings/email_blocklist/domain_form.html:24 #: bookwyrm/templates/settings/email_blocklist/domain_form.html:24
#: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:31 #: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:31
msgid "Add" msgid "Add"
@ -944,7 +942,7 @@ msgid "Back"
msgstr "Atgal" msgstr "Atgal"
#: bookwyrm/templates/book/edit/edit_book_form.html:21 #: bookwyrm/templates/book/edit/edit_book_form.html:21
#: bookwyrm/templates/snippets/create_status/review.html:16 #: bookwyrm/templates/snippets/create_status/review.html:15
msgid "Title:" msgid "Title:"
msgstr "Pavadinimas:" msgstr "Pavadinimas:"
@ -1076,51 +1074,52 @@ msgstr "Paieškos leidimai"
#: bookwyrm/templates/book/file_links/add_link_modal.html:6 #: bookwyrm/templates/book/file_links/add_link_modal.html:6
msgid "Add file link" msgid "Add file link"
msgstr "" msgstr "Pridėti nuorodą į failą"
#: bookwyrm/templates/book/file_links/add_link_modal.html:19 #: bookwyrm/templates/book/file_links/add_link_modal.html:19
msgid "Links from unknown domains will need to be approved by a moderator before they are added." msgid "Links from unknown domains will need to be approved by a moderator before they are added."
msgstr "" msgstr "Nuorodos iš nežinomų domenų turi būti patvirtintos moderatorių."
#: bookwyrm/templates/book/file_links/add_link_modal.html:24 #: bookwyrm/templates/book/file_links/add_link_modal.html:24
msgid "URL:" msgid "URL:"
msgstr "" msgstr "Nuoroda:"
#: bookwyrm/templates/book/file_links/add_link_modal.html:29 #: bookwyrm/templates/book/file_links/add_link_modal.html:29
msgid "File type:" msgid "File type:"
msgstr "" msgstr "Failo tipas:"
#: bookwyrm/templates/book/file_links/add_link_modal.html:48 #: bookwyrm/templates/book/file_links/add_link_modal.html:48
msgid "Availability:" msgid "Availability:"
msgstr "" msgstr "Prieinamumas:"
#: bookwyrm/templates/book/file_links/edit_links.html:5 #: bookwyrm/templates/book/file_links/edit_links.html:5
#: bookwyrm/templates/book/file_links/edit_links.html:22 #: bookwyrm/templates/book/file_links/edit_links.html:22
#: bookwyrm/templates/book/file_links/links.html:53 #: bookwyrm/templates/book/file_links/links.html:53
msgid "Edit links" msgid "Edit links"
msgstr "" msgstr "Redaguoti nuorodas"
#: bookwyrm/templates/book/file_links/edit_links.html:11 #: bookwyrm/templates/book/file_links/edit_links.html:11
#, python-format #, python-format
msgid "\n" msgid "\n"
" Links for \"<em>%(title)s</em>\"\n" " Links for \"<em>%(title)s</em>\"\n"
" " " "
msgstr "" msgstr "\"<em>%(title)s</em>\" nuorodos\n"
" "
#: bookwyrm/templates/book/file_links/edit_links.html:32 #: bookwyrm/templates/book/file_links/edit_links.html:32
#: bookwyrm/templates/settings/link_domains/link_table.html:6 #: bookwyrm/templates/settings/link_domains/link_table.html:6
msgid "URL" msgid "URL"
msgstr "" msgstr "Nuoroda"
#: bookwyrm/templates/book/file_links/edit_links.html:33 #: bookwyrm/templates/book/file_links/edit_links.html:33
#: bookwyrm/templates/settings/link_domains/link_table.html:7 #: bookwyrm/templates/settings/link_domains/link_table.html:7
msgid "Added by" msgid "Added by"
msgstr "" msgstr "Pridėjo"
#: bookwyrm/templates/book/file_links/edit_links.html:34 #: bookwyrm/templates/book/file_links/edit_links.html:34
#: bookwyrm/templates/settings/link_domains/link_table.html:8 #: bookwyrm/templates/settings/link_domains/link_table.html:8
msgid "Filetype" msgid "Filetype"
msgstr "" msgstr "Failo tipas"
#: bookwyrm/templates/book/file_links/edit_links.html:35 #: bookwyrm/templates/book/file_links/edit_links.html:35
#: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:25 #: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:25
@ -1148,41 +1147,41 @@ msgstr "Veiksmai"
#: bookwyrm/templates/book/file_links/edit_links.html:53 #: bookwyrm/templates/book/file_links/edit_links.html:53
#: bookwyrm/templates/book/file_links/verification_modal.html:25 #: bookwyrm/templates/book/file_links/verification_modal.html:25
msgid "Report spam" msgid "Report spam"
msgstr "" msgstr "Pranešti apie brukalą"
#: bookwyrm/templates/book/file_links/edit_links.html:97 #: bookwyrm/templates/book/file_links/edit_links.html:97
msgid "No links available for this book." msgid "No links available for this book."
msgstr "" msgstr "Šiai knygai nuorodų nėra."
#: bookwyrm/templates/book/file_links/edit_links.html:108 #: bookwyrm/templates/book/file_links/edit_links.html:108
#: bookwyrm/templates/book/file_links/links.html:18 #: bookwyrm/templates/book/file_links/links.html:18
msgid "Add link to file" msgid "Add link to file"
msgstr "" msgstr "Pridėti nuorodą į failą"
#: bookwyrm/templates/book/file_links/file_link_page.html:6 #: bookwyrm/templates/book/file_links/file_link_page.html:6
msgid "File Links" msgid "File Links"
msgstr "" msgstr "Nuorodos į failus"
#: bookwyrm/templates/book/file_links/links.html:9 #: bookwyrm/templates/book/file_links/links.html:9
msgid "Get a copy" msgid "Get a copy"
msgstr "" msgstr "Gauti kopiją"
#: bookwyrm/templates/book/file_links/links.html:47 #: bookwyrm/templates/book/file_links/links.html:47
msgid "No links available" msgid "No links available"
msgstr "" msgstr "Nuorodų nėra"
#: bookwyrm/templates/book/file_links/verification_modal.html:5 #: bookwyrm/templates/book/file_links/verification_modal.html:5
msgid "Leaving BookWyrm" msgid "Leaving BookWyrm"
msgstr "" msgstr "Tęsti naršymą ne BookWyrm"
#: bookwyrm/templates/book/file_links/verification_modal.html:11 #: bookwyrm/templates/book/file_links/verification_modal.html:11
#, python-format #, python-format
msgid "This link is taking you to: <code>%(link_url)s</code>.<br> Is that where you'd like to go?" msgid "This link is taking you to: <code>%(link_url)s</code>.<br> Is that where you'd like to go?"
msgstr "" msgstr "Nuoroda veda į: <code>%(link_url)s</code>.<br> Ar tikrai norite ten nueiti?"
#: bookwyrm/templates/book/file_links/verification_modal.html:20 #: bookwyrm/templates/book/file_links/verification_modal.html:20
msgid "Continue" msgid "Continue"
msgstr "" msgstr "Tęsti"
#: bookwyrm/templates/book/publisher_info.html:23 #: bookwyrm/templates/book/publisher_info.html:23
#, python-format #, python-format
@ -1663,7 +1662,7 @@ msgid "What are you reading?"
msgstr "Ką skaitome?" msgstr "Ką skaitome?"
#: bookwyrm/templates/get_started/books.html:9 #: bookwyrm/templates/get_started/books.html:9
#: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:162 #: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:163
msgid "Search for a book" msgid "Search for a book"
msgstr "Ieškoti knygos" msgstr "Ieškoti knygos"
@ -1681,9 +1680,9 @@ msgstr "Kai pradedate naudotis %(site_name)s, galite pridėti knygų."
#: bookwyrm/templates/get_started/books.html:17 #: bookwyrm/templates/get_started/books.html:17
#: bookwyrm/templates/get_started/users.html:18 #: bookwyrm/templates/get_started/users.html:18
#: bookwyrm/templates/get_started/users.html:19 #: bookwyrm/templates/get_started/users.html:19
#: bookwyrm/templates/groups/members.html:16 #: bookwyrm/templates/groups/members.html:15
#: bookwyrm/templates/groups/members.html:17 bookwyrm/templates/layout.html:53 #: bookwyrm/templates/groups/members.html:16 bookwyrm/templates/layout.html:53
#: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:166 #: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:167
#: bookwyrm/templates/search/layout.html:4 #: bookwyrm/templates/search/layout.html:4
#: bookwyrm/templates/search/layout.html:9 #: bookwyrm/templates/search/layout.html:9
msgid "Search" msgid "Search"
@ -1699,7 +1698,7 @@ msgid "Popular on %(site_name)s"
msgstr "%(site_name)s populiaru" msgstr "%(site_name)s populiaru"
#: bookwyrm/templates/get_started/books.html:58 #: bookwyrm/templates/get_started/books.html:58
#: bookwyrm/templates/lists/list.html:179 #: bookwyrm/templates/lists/list.html:180
msgid "No books found" msgid "No books found"
msgstr "Knygų nerasta" msgstr "Knygų nerasta"
@ -1804,7 +1803,7 @@ msgstr "Nebegalite atšaukti šio veiksmo"
#: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:49 #: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:49
#: bookwyrm/templates/settings/ip_blocklist/ip_blocklist.html:36 #: bookwyrm/templates/settings/ip_blocklist/ip_blocklist.html:36
#: bookwyrm/templates/snippets/follow_request_buttons.html:12 #: bookwyrm/templates/snippets/follow_request_buttons.html:12
#: bookwyrm/templates/snippets/join_invitation_buttons.html:13 #: bookwyrm/templates/snippets/join_invitation_buttons.html:14
msgid "Delete" msgid "Delete"
msgstr "Ištrinti" msgstr "Ištrinti"
@ -1824,17 +1823,17 @@ msgstr "Grupės aprašymas:"
msgid "Delete group" msgid "Delete group"
msgstr "Ištrinti grupę" msgstr "Ištrinti grupę"
#: bookwyrm/templates/groups/group.html:22 #: bookwyrm/templates/groups/group.html:21
msgid "Members of this group can create group-curated lists." msgid "Members of this group can create group-curated lists."
msgstr "" msgstr "Šios grupės nariai gali kurti grupės kuruojamus sąrašus."
#: bookwyrm/templates/groups/group.html:27 #: bookwyrm/templates/groups/group.html:26
#: bookwyrm/templates/lists/create_form.html:5 #: bookwyrm/templates/lists/create_form.html:5
#: bookwyrm/templates/lists/lists.html:20 #: bookwyrm/templates/lists/lists.html:20
msgid "Create List" msgid "Create List"
msgstr "Sukurti sąrašą" msgstr "Sukurti sąrašą"
#: bookwyrm/templates/groups/group.html:40 #: bookwyrm/templates/groups/group.html:39
msgid "This group has no lists" msgid "This group has no lists"
msgstr "Šioje grupėje nėra sąrašų" msgstr "Šioje grupėje nėra sąrašų"
@ -1842,15 +1841,15 @@ msgstr "Šioje grupėje nėra sąrašų"
msgid "Edit group" msgid "Edit group"
msgstr "Redaguoti grupę" msgstr "Redaguoti grupę"
#: bookwyrm/templates/groups/members.html:12 #: bookwyrm/templates/groups/members.html:11
msgid "Search to add a user" msgid "Search to add a user"
msgstr "Ieškokite, kad pridėtumėte naudotoją" msgstr "Ieškokite, kad pridėtumėte naudotoją"
#: bookwyrm/templates/groups/members.html:33 #: bookwyrm/templates/groups/members.html:32
msgid "Leave group" msgid "Leave group"
msgstr "Išeiti iš grupės" msgstr "Išeiti iš grupės"
#: bookwyrm/templates/groups/members.html:55 #: bookwyrm/templates/groups/members.html:54
#: bookwyrm/templates/groups/suggested_users.html:35 #: bookwyrm/templates/groups/suggested_users.html:35
#: bookwyrm/templates/snippets/suggested_users.html:31 #: bookwyrm/templates/snippets/suggested_users.html:31
#: bookwyrm/templates/user/user_preview.html:36 #: bookwyrm/templates/user/user_preview.html:36
@ -2067,7 +2066,7 @@ msgstr "Atmesti"
#: bookwyrm/templates/import/tooltip.html:6 #: bookwyrm/templates/import/tooltip.html:6
msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account." msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account."
msgstr "" msgstr "Galite atsisiųsti savo „Goodreads“ duomenis iš <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Importavimo ir eksportavimo puslapio</a>, esančio jūsų „Goodreads“ paskyroje."
#: bookwyrm/templates/import/troubleshoot.html:7 #: bookwyrm/templates/import/troubleshoot.html:7
msgid "Failed items" msgid "Failed items"
@ -2315,18 +2314,18 @@ msgstr "Ištrinti šį sąrašą?"
msgid "Edit List" msgid "Edit List"
msgstr "Redaguoti sąrašą" msgstr "Redaguoti sąrašą"
#: bookwyrm/templates/lists/embed-list.html:7 #: bookwyrm/templates/lists/embed-list.html:8
#, python-format #, python-format
msgid "%(list_name)s, a list by %(owner)s" msgid "%(list_name)s, a list by %(owner)s"
msgstr "%(list_name)s, sąrašą sudarė %(owner)s" msgstr "%(list_name)s, sąrašą sudarė %(owner)s"
#: bookwyrm/templates/lists/embed-list.html:17 #: bookwyrm/templates/lists/embed-list.html:18
#, python-format #, python-format
msgid "on <a href=\"/\">%(site_name)s</a>" msgid "on <a href=\"/\">%(site_name)s</a>"
msgstr "per <a href=\"/\">%(site_name)s</a>" msgstr "per <a href=\"/\">%(site_name)s</a>"
#: bookwyrm/templates/lists/embed-list.html:26 #: bookwyrm/templates/lists/embed-list.html:27
#: bookwyrm/templates/lists/list.html:42 #: bookwyrm/templates/lists/list.html:43
msgid "This list is currently empty" msgid "This list is currently empty"
msgstr "Šiuo metu sąrašas tuščias" msgstr "Šiuo metu sąrašas tuščias"
@ -2387,76 +2386,76 @@ msgstr "Sukurti grupę"
msgid "Delete list" msgid "Delete list"
msgstr "Ištrinti sąrašą" msgstr "Ištrinti sąrašą"
#: bookwyrm/templates/lists/list.html:34 #: bookwyrm/templates/lists/list.html:35
msgid "You successfully suggested a book for this list!" msgid "You successfully suggested a book for this list!"
msgstr "Sėkmingai pasiūlėte knygą šiam sąrašui!" msgstr "Sėkmingai pasiūlėte knygą šiam sąrašui!"
#: bookwyrm/templates/lists/list.html:36 #: bookwyrm/templates/lists/list.html:37
msgid "You successfully added a book to this list!" msgid "You successfully added a book to this list!"
msgstr "Sėkmingai pridėjote knygą į šį sąrašą!" msgstr "Sėkmingai pridėjote knygą į šį sąrašą!"
#: bookwyrm/templates/lists/list.html:80 #: bookwyrm/templates/lists/list.html:81
#, python-format #, python-format
msgid "Added by <a href=\"%(user_path)s\">%(username)s</a>" msgid "Added by <a href=\"%(user_path)s\">%(username)s</a>"
msgstr "Pridėjo <a href=\"%(user_path)s\">%(username)s</a>" msgstr "Pridėjo <a href=\"%(user_path)s\">%(username)s</a>"
#: bookwyrm/templates/lists/list.html:95 #: bookwyrm/templates/lists/list.html:96
msgid "List position" msgid "List position"
msgstr "Sąrašo pozicija" msgstr "Sąrašo pozicija"
#: bookwyrm/templates/lists/list.html:101 #: bookwyrm/templates/lists/list.html:102
#: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:21 #: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:21
msgid "Set" msgid "Set"
msgstr "Nustatyti" msgstr "Nustatyti"
#: bookwyrm/templates/lists/list.html:116 #: bookwyrm/templates/lists/list.html:117
#: bookwyrm/templates/snippets/remove_from_group_button.html:19 #: bookwyrm/templates/snippets/remove_from_group_button.html:20
msgid "Remove" msgid "Remove"
msgstr "Pašalinti" msgstr "Pašalinti"
#: bookwyrm/templates/lists/list.html:130 #: bookwyrm/templates/lists/list.html:131
#: bookwyrm/templates/lists/list.html:147 #: bookwyrm/templates/lists/list.html:148
msgid "Sort List" msgid "Sort List"
msgstr "Rūšiuoti sąrašą" msgstr "Rūšiuoti sąrašą"
#: bookwyrm/templates/lists/list.html:140 #: bookwyrm/templates/lists/list.html:141
msgid "Direction" msgid "Direction"
msgstr "Kryptis" msgstr "Kryptis"
#: bookwyrm/templates/lists/list.html:154 #: bookwyrm/templates/lists/list.html:155
msgid "Add Books" msgid "Add Books"
msgstr "Pridėti knygų" msgstr "Pridėti knygų"
#: bookwyrm/templates/lists/list.html:156 #: bookwyrm/templates/lists/list.html:157
msgid "Suggest Books" msgid "Suggest Books"
msgstr "Siūlyti knygų" msgstr "Siūlyti knygų"
#: bookwyrm/templates/lists/list.html:167 #: bookwyrm/templates/lists/list.html:168
msgid "search" msgid "search"
msgstr "paieška" msgstr "paieška"
#: bookwyrm/templates/lists/list.html:173 #: bookwyrm/templates/lists/list.html:174
msgid "Clear search" msgid "Clear search"
msgstr "Išvalyti paiešką" msgstr "Išvalyti paiešką"
#: bookwyrm/templates/lists/list.html:178 #: bookwyrm/templates/lists/list.html:179
#, python-format #, python-format
msgid "No books found matching the query \"%(query)s\"" msgid "No books found matching the query \"%(query)s\""
msgstr "Pagal paiešką „%(query)s“ knygų nerasta" msgstr "Pagal paiešką „%(query)s“ knygų nerasta"
#: bookwyrm/templates/lists/list.html:210 #: bookwyrm/templates/lists/list.html:211
msgid "Suggest" msgid "Suggest"
msgstr "Siūlyti" msgstr "Siūlyti"
#: bookwyrm/templates/lists/list.html:221 #: bookwyrm/templates/lists/list.html:222
msgid "Embed this list on a website" msgid "Embed this list on a website"
msgstr "Įdėkite šį sąrašą į tinklalapį" msgstr "Įdėkite šį sąrašą į tinklalapį"
#: bookwyrm/templates/lists/list.html:229 #: bookwyrm/templates/lists/list.html:230
msgid "Copy embed code" msgid "Copy embed code"
msgstr "Nukopijuokite įterptinį kodą" msgstr "Nukopijuokite įterptinį kodą"
#: bookwyrm/templates/lists/list.html:231 #: bookwyrm/templates/lists/list.html:232
#, python-format #, python-format
msgid "%(list_name)s, a list by %(owner)s on %(site_name)s" msgid "%(list_name)s, a list by %(owner)s on %(site_name)s"
msgstr "%(list_name)s, sąrašą sudarė %(owner)s, per %(site_name)s" msgstr "%(list_name)s, sąrašą sudarė %(owner)s, per %(site_name)s"
@ -3523,7 +3522,7 @@ msgstr "Pranešimai"
#: bookwyrm/templates/settings/link_domains/link_domains.html:5 #: bookwyrm/templates/settings/link_domains/link_domains.html:5
#: bookwyrm/templates/settings/link_domains/link_domains.html:7 #: bookwyrm/templates/settings/link_domains/link_domains.html:7
msgid "Link Domains" msgid "Link Domains"
msgstr "" msgstr "Susieti domenus"
#: bookwyrm/templates/settings/layout.html:72 #: bookwyrm/templates/settings/layout.html:72
msgid "Instance Settings" msgid "Instance Settings"
@ -3546,23 +3545,23 @@ msgstr ""
#: bookwyrm/templates/settings/link_domains/link_domains.html:45 #: bookwyrm/templates/settings/link_domains/link_domains.html:45
msgid "Set display name" msgid "Set display name"
msgstr "" msgstr "Nurodyti pavadinimą"
#: bookwyrm/templates/settings/link_domains/link_domains.html:53 #: bookwyrm/templates/settings/link_domains/link_domains.html:53
msgid "View links" msgid "View links"
msgstr "" msgstr "Peržiūrėti nuorodas"
#: bookwyrm/templates/settings/link_domains/link_domains.html:96 #: bookwyrm/templates/settings/link_domains/link_domains.html:96
msgid "No domains currently approved" msgid "No domains currently approved"
msgstr "" msgstr "Nėra patvirtintų domenų"
#: bookwyrm/templates/settings/link_domains/link_domains.html:98 #: bookwyrm/templates/settings/link_domains/link_domains.html:98
msgid "No domains currently pending" msgid "No domains currently pending"
msgstr "" msgstr "Nėra domenų, laukiančių patvirtinimo"
#: bookwyrm/templates/settings/link_domains/link_domains.html:100 #: bookwyrm/templates/settings/link_domains/link_domains.html:100
msgid "No domains currently blocked" msgid "No domains currently blocked"
msgstr "" msgstr "Šiuo metu užblokuotų domenų nėra"
#: bookwyrm/templates/settings/link_domains/link_table.html:39 #: bookwyrm/templates/settings/link_domains/link_table.html:39
msgid "No links available for this domain." msgid "No links available for this domain."
@ -3582,7 +3581,7 @@ msgstr "Būsena ištrinta"
#: bookwyrm/templates/settings/reports/report.html:39 #: bookwyrm/templates/settings/reports/report.html:39
msgid "Reported links" msgid "Reported links"
msgstr "" msgstr "Raportuotos nuorodos"
#: bookwyrm/templates/settings/reports/report.html:55 #: bookwyrm/templates/settings/reports/report.html:55
msgid "Moderator Comments" msgid "Moderator Comments"
@ -3610,7 +3609,7 @@ msgstr ""
#: bookwyrm/templates/settings/reports/report_links_table.html:17 #: bookwyrm/templates/settings/reports/report_links_table.html:17
msgid "Block domain" msgid "Block domain"
msgstr "" msgstr "Užblokuoti domeną"
#: bookwyrm/templates/settings/reports/report_preview.html:17 #: bookwyrm/templates/settings/reports/report_preview.html:17
msgid "No notes provided" msgid "No notes provided"
@ -3865,7 +3864,7 @@ msgstr "Visam laikui ištrintas"
#: bookwyrm/templates/settings/users/user_moderation_actions.html:8 #: bookwyrm/templates/settings/users/user_moderation_actions.html:8
msgid "User Actions" msgid "User Actions"
msgstr "" msgstr "Nario veiksmai"
#: bookwyrm/templates/settings/users/user_moderation_actions.html:21 #: bookwyrm/templates/settings/users/user_moderation_actions.html:21
msgid "Suspend user" msgid "Suspend user"
@ -3889,7 +3888,7 @@ msgstr "Redaguoti lentyną"
#: bookwyrm/templates/shelf/shelf.html:24 #: bookwyrm/templates/shelf/shelf.html:24
msgid "User profile" msgid "User profile"
msgstr "" msgstr "Nario profilis"
#: bookwyrm/templates/shelf/shelf.html:39 #: bookwyrm/templates/shelf/shelf.html:39
#: bookwyrm/templates/snippets/translated_shelf_name.html:3 #: bookwyrm/templates/snippets/translated_shelf_name.html:3
@ -3942,15 +3941,15 @@ msgstr "Baigta"
msgid "This shelf is empty." msgid "This shelf is empty."
msgstr "Ši lentyna tuščia." msgstr "Ši lentyna tuščia."
#: bookwyrm/templates/snippets/add_to_group_button.html:15 #: bookwyrm/templates/snippets/add_to_group_button.html:16
msgid "Invite" msgid "Invite"
msgstr "Pakviesti" msgstr "Pakviesti"
#: bookwyrm/templates/snippets/add_to_group_button.html:24 #: bookwyrm/templates/snippets/add_to_group_button.html:25
msgid "Uninvite" msgid "Uninvite"
msgstr "Atšaukti kvietimą" msgstr "Atšaukti kvietimą"
#: bookwyrm/templates/snippets/add_to_group_button.html:28 #: bookwyrm/templates/snippets/add_to_group_button.html:29
#, python-format #, python-format
msgid "Remove @%(username)s" msgid "Remove @%(username)s"
msgstr "Pašalinti @%(username)s" msgstr "Pašalinti @%(username)s"
@ -4040,7 +4039,7 @@ msgstr "Galimas turinio atskleidimas!"
msgid "Include spoiler alert" msgid "Include spoiler alert"
msgstr "Įdėti įspėjimą apie turinio atskleidimą" msgstr "Įdėti įspėjimą apie turinio atskleidimą"
#: bookwyrm/templates/snippets/create_status/layout.html:48 #: bookwyrm/templates/snippets/create_status/layout.html:47
#: bookwyrm/templates/snippets/reading_modals/form.html:7 #: bookwyrm/templates/snippets/reading_modals/form.html:7
msgid "Comment:" msgid "Comment:"
msgstr "Komentuoti:" msgstr "Komentuoti:"
@ -4049,33 +4048,33 @@ msgstr "Komentuoti:"
msgid "Post" msgid "Post"
msgstr "Publikuoti" msgstr "Publikuoti"
#: bookwyrm/templates/snippets/create_status/quotation.html:17 #: bookwyrm/templates/snippets/create_status/quotation.html:16
msgid "Quote:" msgid "Quote:"
msgstr "Citata:" msgstr "Citata:"
#: bookwyrm/templates/snippets/create_status/quotation.html:25 #: bookwyrm/templates/snippets/create_status/quotation.html:24
#, python-format #, python-format
msgid "An excerpt from '%(book_title)s'" msgid "An excerpt from '%(book_title)s'"
msgstr "Ištrauka iš „%(book_title)s“" msgstr "Ištrauka iš „%(book_title)s“"
#: bookwyrm/templates/snippets/create_status/quotation.html:32 #: bookwyrm/templates/snippets/create_status/quotation.html:31
msgid "Position:" msgid "Position:"
msgstr "Pozicija:" msgstr "Pozicija:"
#: bookwyrm/templates/snippets/create_status/quotation.html:45 #: bookwyrm/templates/snippets/create_status/quotation.html:44
msgid "On page:" msgid "On page:"
msgstr "Puslapyje:" msgstr "Puslapyje:"
#: bookwyrm/templates/snippets/create_status/quotation.html:51 #: bookwyrm/templates/snippets/create_status/quotation.html:50
msgid "At percent:" msgid "At percent:"
msgstr "Proc.:" msgstr "Proc.:"
#: bookwyrm/templates/snippets/create_status/review.html:25 #: bookwyrm/templates/snippets/create_status/review.html:24
#, python-format #, python-format
msgid "Your review of '%(book_title)s'" msgid "Your review of '%(book_title)s'"
msgstr "Jūsų apžvalga apie „%(book_title)s“" msgstr "Jūsų apžvalga apie „%(book_title)s“"
#: bookwyrm/templates/snippets/create_status/review.html:40 #: bookwyrm/templates/snippets/create_status/review.html:39
msgid "Review:" msgid "Review:"
msgstr "Atsiliepimas:" msgstr "Atsiliepimas:"
@ -4129,7 +4128,7 @@ msgid "Unfollow"
msgstr "Nebesekti" msgstr "Nebesekti"
#: bookwyrm/templates/snippets/follow_request_buttons.html:7 #: bookwyrm/templates/snippets/follow_request_buttons.html:7
#: bookwyrm/templates/snippets/join_invitation_buttons.html:8 #: bookwyrm/templates/snippets/join_invitation_buttons.html:9
msgid "Accept" msgid "Accept"
msgstr "Sutikti" msgstr "Sutikti"
@ -4177,8 +4176,8 @@ msgstr[3] "įvertinta <em><a href=\"%(path)s\">%(title)s</a></em>: %(display_rat
#: bookwyrm/templates/snippets/generated_status/review_pure_name.html:4 #: bookwyrm/templates/snippets/generated_status/review_pure_name.html:4
#, python-format #, python-format
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(display_rating)s star): %(review_title)s" msgid "Review of \"%(book_title)s\" (%(display_rating)s star): %(review_title)s"
msgid_plural "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(display_rating)s stars): %(review_title)s" msgid_plural "Review of \"%(book_title)s\" (%(display_rating)s stars): %(review_title)s"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
msgstr[2] "" msgstr[2] ""
@ -4186,7 +4185,7 @@ msgstr[3] ""
#: bookwyrm/templates/snippets/generated_status/review_pure_name.html:12 #: bookwyrm/templates/snippets/generated_status/review_pure_name.html:12
#, python-format #, python-format
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\": %(review_title)s" msgid "Review of \"%(book_title)s\": %(review_title)s"
msgstr "" msgstr ""
#: bookwyrm/templates/snippets/goal_form.html:4 #: bookwyrm/templates/snippets/goal_form.html:4
@ -4257,11 +4256,11 @@ msgstr "Tik sekėjai"
msgid "Post privacy" msgid "Post privacy"
msgstr "Įrašo privatumas" msgstr "Įrašo privatumas"
#: bookwyrm/templates/snippets/rate_action.html:4 #: bookwyrm/templates/snippets/rate_action.html:5
msgid "Leave a rating" msgid "Leave a rating"
msgstr "Palikti įvertinimą" msgstr "Palikti įvertinimą"
#: bookwyrm/templates/snippets/rate_action.html:19 #: bookwyrm/templates/snippets/rate_action.html:20
msgid "Rate" msgid "Rate"
msgstr "Įvertinti" msgstr "Įvertinti"
@ -4355,29 +4354,29 @@ msgstr "Pašalinti iš %(name)s"
msgid "Finish reading" msgid "Finish reading"
msgstr "Baigti skaityti" msgstr "Baigti skaityti"
#: bookwyrm/templates/snippets/status/content_status.html:72 #: bookwyrm/templates/snippets/status/content_status.html:73
msgid "Content warning" msgid "Content warning"
msgstr "Įspėjimas dėl turinio" msgstr "Įspėjimas dėl turinio"
#: bookwyrm/templates/snippets/status/content_status.html:79 #: bookwyrm/templates/snippets/status/content_status.html:80
msgid "Show status" msgid "Show status"
msgstr "Rodyti būseną" msgstr "Rodyti būseną"
#: bookwyrm/templates/snippets/status/content_status.html:101 #: bookwyrm/templates/snippets/status/content_status.html:102
#, python-format #, python-format
msgid "(Page %(page)s)" msgid "(Page %(page)s)"
msgstr "(Psl. %(page)s)" msgstr "(Psl. %(page)s)"
#: bookwyrm/templates/snippets/status/content_status.html:103 #: bookwyrm/templates/snippets/status/content_status.html:104
#, python-format #, python-format
msgid "(%(percent)s%%)" msgid "(%(percent)s%%)"
msgstr "(%(percent)s%%)" msgstr "(%(percent)s%%)"
#: bookwyrm/templates/snippets/status/content_status.html:125 #: bookwyrm/templates/snippets/status/content_status.html:126
msgid "Open image in new window" msgid "Open image in new window"
msgstr "Atidaryti paveikslėlį naujame lange" msgstr "Atidaryti paveikslėlį naujame lange"
#: bookwyrm/templates/snippets/status/content_status.html:144 #: bookwyrm/templates/snippets/status/content_status.html:145
msgid "Hide status" msgid "Hide status"
msgstr "Slėpti būseną" msgstr "Slėpti būseną"
@ -4674,7 +4673,7 @@ msgstr "Šiuo el. pašto adresu nerastas nei vienas narys."
msgid "A password reset link was sent to {email}" msgid "A password reset link was sent to {email}"
msgstr "Slaptažodžio atstatymo nuoroda išsiųsta į {email}" msgstr "Slaptažodžio atstatymo nuoroda išsiųsta į {email}"
#: bookwyrm/views/rss_feed.py:35 #: bookwyrm/views/rss_feed.py:34
#, python-brace-format #, python-brace-format
msgid "Status updates from {obj.display_name}" msgid "Status updates from {obj.display_name}"
msgstr "Būsenos atnaujinimai iš {obj.display_name}" msgstr "Būsenos atnaujinimai iš {obj.display_name}"

Binary file not shown.

View file

@ -2,8 +2,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: bookwyrm\n" "Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-01-17 19:26+0000\n" "POT-Creation-Date: 2022-01-24 17:25+0000\n"
"PO-Revision-Date: 2022-01-17 19:57\n" "PO-Revision-Date: 2022-01-24 18:54\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n" "Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: Norwegian\n" "Language-Team: Norwegian\n"
"Language: no\n" "Language: no\n"
@ -56,11 +56,11 @@ msgstr "Boktittel"
#: bookwyrm/forms.py:485 bookwyrm/templates/shelf/shelf.html:155 #: bookwyrm/forms.py:485 bookwyrm/templates/shelf/shelf.html:155
#: bookwyrm/templates/shelf/shelf.html:187 #: bookwyrm/templates/shelf/shelf.html:187
#: bookwyrm/templates/snippets/create_status/review.html:33 #: bookwyrm/templates/snippets/create_status/review.html:32
msgid "Rating" msgid "Rating"
msgstr "Vurdering" msgstr "Vurdering"
#: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:134 #: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:135
msgid "Sort By" msgid "Sort By"
msgstr "Sorter etter" msgstr "Sorter etter"
@ -224,69 +224,69 @@ msgstr "Sitater"
msgid "Everything else" msgid "Everything else"
msgstr "Andre ting" msgstr "Andre ting"
#: bookwyrm/settings.py:121 #: bookwyrm/settings.py:173
msgid "Home Timeline" msgid "Home Timeline"
msgstr "Lokal tidslinje" msgstr "Lokal tidslinje"
#: bookwyrm/settings.py:121 #: bookwyrm/settings.py:173
msgid "Home" msgid "Home"
msgstr "Hjem" msgstr "Hjem"
#: bookwyrm/settings.py:122 #: bookwyrm/settings.py:174
msgid "Books Timeline" msgid "Books Timeline"
msgstr "Boktidslinja" msgstr "Boktidslinja"
#: bookwyrm/settings.py:122 bookwyrm/templates/search/layout.html:21 #: bookwyrm/settings.py:174 bookwyrm/templates/search/layout.html:21
#: bookwyrm/templates/search/layout.html:42 #: bookwyrm/templates/search/layout.html:42
#: bookwyrm/templates/user/layout.html:91 #: bookwyrm/templates/user/layout.html:91
msgid "Books" msgid "Books"
msgstr "Bøker" msgstr "Bøker"
#: bookwyrm/settings.py:196 #: bookwyrm/settings.py:248
msgid "English" msgid "English"
msgstr "English (Engelsk)" msgstr "English (Engelsk)"
#: bookwyrm/settings.py:197 #: bookwyrm/settings.py:249
msgid "Deutsch (German)" msgid "Deutsch (German)"
msgstr "Deutsch (Tysk)" msgstr "Deutsch (Tysk)"
#: bookwyrm/settings.py:198 #: bookwyrm/settings.py:250
msgid "Español (Spanish)" msgid "Español (Spanish)"
msgstr "Español (Spansk)" msgstr "Español (Spansk)"
#: bookwyrm/settings.py:199 #: bookwyrm/settings.py:251
msgid "Galego (Galician)" msgid "Galego (Galician)"
msgstr "Galego (Gallisk)" msgstr "Galego (Gallisk)"
#: bookwyrm/settings.py:200 #: bookwyrm/settings.py:252
msgid "Italiano (Italian)" msgid "Italiano (Italian)"
msgstr "Italiano (Italiensk)" msgstr "Italiano (Italiensk)"
#: bookwyrm/settings.py:201 #: bookwyrm/settings.py:253
msgid "Français (French)" msgid "Français (French)"
msgstr "Français (Fransk)" msgstr "Français (Fransk)"
#: bookwyrm/settings.py:202 #: bookwyrm/settings.py:254
msgid "Lietuvių (Lithuanian)" msgid "Lietuvių (Lithuanian)"
msgstr "Lietuvių (Litauisk)" msgstr "Lietuvių (Litauisk)"
#: bookwyrm/settings.py:203 #: bookwyrm/settings.py:255
msgid "Norsk (Norwegian)" msgid "Norsk (Norwegian)"
msgstr "Norsk (Norsk)" msgstr "Norsk (Norsk)"
#: bookwyrm/settings.py:204 #: bookwyrm/settings.py:256
msgid "Português do Brasil (Brazilian Portuguese)" msgid "Português do Brasil (Brazilian Portuguese)"
msgstr "Português - Brasil (Brasiliansk portugisisk)" msgstr "Português - Brasil (Brasiliansk portugisisk)"
#: bookwyrm/settings.py:205 #: bookwyrm/settings.py:257
msgid "Português Europeu (European Portuguese)" msgid "Português Europeu (European Portuguese)"
msgstr "Português Europeu (Europeisk Portugisisk)" msgstr "Português Europeu (Europeisk Portugisisk)"
#: bookwyrm/settings.py:206 #: bookwyrm/settings.py:258
msgid "简体中文 (Simplified Chinese)" msgid "简体中文 (Simplified Chinese)"
msgstr "简体中文 (Forenklet kinesisk)" msgstr "简体中文 (Forenklet kinesisk)"
#: bookwyrm/settings.py:207 #: bookwyrm/settings.py:259
msgid "繁體中文 (Traditional Chinese)" msgid "繁體中文 (Traditional Chinese)"
msgstr "繁體中文 (Tradisjonelt kinesisk)" msgstr "繁體中文 (Tradisjonelt kinesisk)"
@ -315,58 +315,54 @@ msgstr "Beklager, noe gikk galt! Leit, det der."
msgid "About" msgid "About"
msgstr "Om" msgstr "Om"
#: bookwyrm/templates/about/about.html:18 #: bookwyrm/templates/about/about.html:19
#: bookwyrm/templates/get_started/layout.html:20 #: bookwyrm/templates/get_started/layout.html:20
#, python-format #, python-format
msgid "Welcome to %(site_name)s!" msgid "Welcome to %(site_name)s!"
msgstr "Velkommen til %(site_name)s!" msgstr "Velkommen til %(site_name)s!"
#: bookwyrm/templates/about/about.html:22 #: bookwyrm/templates/about/about.html:23
#, python-format #, python-format
msgid "%(site_name)s is part of <em>BookWyrm</em>, a network of independent, self-directed communities for readers. While you can interact seamlessly with users anywhere in the <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">BookWyrm network</a>, this community is unique." msgid "%(site_name)s is part of <em>BookWyrm</em>, a network of independent, self-directed communities for readers. While you can interact seamlessly with users anywhere in the <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">BookWyrm network</a>, this community is unique."
msgstr "" msgstr ""
#: bookwyrm/templates/about/about.html:39 #: bookwyrm/templates/about/about.html:40
#, python-format #, python-format
msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> is %(site_name)s's most beloved book, with an average rating of %(rating)s out of 5." msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> is %(site_name)s's most beloved book, with an average rating of %(rating)s out of 5."
msgstr "<a href=\"%(book_path)s\"><em>%(title)s</em></a> er %(site_name)s sin favorittbok, med en gjennomsnittlig vurdering på %(rating)s av 5." msgstr "<a href=\"%(book_path)s\"><em>%(title)s</em></a> er %(site_name)s sin favorittbok, med en gjennomsnittlig vurdering på %(rating)s av 5."
#: bookwyrm/templates/about/about.html:58 #: bookwyrm/templates/about/about.html:59
#, python-format #, python-format
msgid "More %(site_name)s users want to read <a href=\"%(book_path)s\"><em>%(title)s</em></a> than any other book." msgid "More %(site_name)s users want to read <a href=\"%(book_path)s\"><em>%(title)s</em></a> than any other book."
msgstr "Flere av %(site_name)s sine medlemmer ønsker å lese <a href=\"%(book_path)s\"><em>%(title)s</em></a> enn noen annen bok." msgstr "Flere av %(site_name)s sine medlemmer ønsker å lese <a href=\"%(book_path)s\"><em>%(title)s</em></a> enn noen annen bok."
#: bookwyrm/templates/about/about.html:77 #: bookwyrm/templates/about/about.html:78
#, python-format #, python-format
msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> has the most divisive ratings of any book on %(site_name)s." msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> has the most divisive ratings of any book on %(site_name)s."
msgstr "<a href=\"%(book_path)s\"><em>%(title)s</em></a> er den boka på %(site_name)s med de mest polariserte vurderingene." msgstr "<a href=\"%(book_path)s\"><em>%(title)s</em></a> er den boka på %(site_name)s med de mest polariserte vurderingene."
#: bookwyrm/templates/about/about.html:88 #: bookwyrm/templates/about/about.html:89
msgid "Track your reading, talk about books, write reviews, and discover what to read next. Always ad-free, anti-corporate, and community-oriented, BookWyrm is human-scale software, designed to stay small and personal. If you have feature requests, bug reports, or grand dreams, <a href='https://joinbookwyrm.com/get-involved' target='_blank'>reach out</a> and make yourself heard." msgid "Track your reading, talk about books, write reviews, and discover what to read next. Always ad-free, anti-corporate, and community-oriented, BookWyrm is human-scale software, designed to stay small and personal. If you have feature requests, bug reports, or grand dreams, <a href='https://joinbookwyrm.com/get-involved' target='_blank'>reach out</a> and make yourself heard."
msgstr "Journalfør lesingen din, snakk om bøker, skriv anmeldelser, og oppdag din neste bok. BookWyrm er reklamefri, ukommers og fellesskapsorientert, programvare for mennesker, designet for å forbli liten og nær. Hvis du har ønsker, feilrapporter eller store vyer, <a href='https://joinbookwyrm.com/get-involved' target='_blank'>ta kontakt</a> og bli hørt." msgstr "Journalfør lesingen din, snakk om bøker, skriv anmeldelser, og oppdag din neste bok. BookWyrm er reklamefri, ukommers og fellesskapsorientert, programvare for mennesker, designet for å forbli liten og nær. Hvis du har ønsker, feilrapporter eller store vyer, <a href='https://joinbookwyrm.com/get-involved' target='_blank'>ta kontakt</a> og bli hørt."
#: bookwyrm/templates/about/about.html:95 #: bookwyrm/templates/about/about.html:96
msgid "Meet your admins" msgid "Meet your admins"
msgstr "Møt administratorene" msgstr "Møt administratorene"
#: bookwyrm/templates/about/about.html:98 #: bookwyrm/templates/about/about.html:99
#, python-format #, python-format
msgid "\n" msgid "%(site_name)s's moderators and administrators keep the site up and running, enforce the <a href=\"coc_path\">code of conduct</a>, and respond when users report spam and bad behavior."
" %(site_name)s's moderators and administrators keep the site up and running, enforce the <a href=\"coc_path\">code of conduct</a>, and respond when users report spam and bad behavior.\n" msgstr ""
" "
msgstr "\n"
" %(site_name)s sine moderatorer og administratorer holder nettsida oppe og tilgjengelig, håndhever <a href=\"coc_path\">atferdskoden</a>, og svarer på brukernes rapporterer om spam og dårlig atferd.\n"
" "
#: bookwyrm/templates/about/about.html:112 #: bookwyrm/templates/about/about.html:113
msgid "Moderator" msgid "Moderator"
msgstr "Moderator" msgstr "Moderator"
#: bookwyrm/templates/about/about.html:114 bookwyrm/templates/layout.html:131 #: bookwyrm/templates/about/about.html:115 bookwyrm/templates/layout.html:131
msgid "Admin" msgid "Admin"
msgstr "Admin" msgstr "Admin"
#: bookwyrm/templates/about/about.html:130 #: bookwyrm/templates/about/about.html:131
#: bookwyrm/templates/settings/users/user_moderation_actions.html:14 #: bookwyrm/templates/settings/users/user_moderation_actions.html:14
#: bookwyrm/templates/snippets/status/status_options.html:35 #: bookwyrm/templates/snippets/status/status_options.html:35
#: bookwyrm/templates/snippets/user_options.html:13 #: bookwyrm/templates/snippets/user_options.html:13
@ -428,7 +424,7 @@ msgid "Copy address"
msgstr "Kopiér adresse" msgstr "Kopiér adresse"
#: bookwyrm/templates/annual_summary/layout.html:68 #: bookwyrm/templates/annual_summary/layout.html:68
#: bookwyrm/templates/lists/list.html:230 #: bookwyrm/templates/lists/list.html:231
msgid "Copied!" msgid "Copied!"
msgstr "Kopiert!" msgstr "Kopiert!"
@ -497,7 +493,7 @@ msgstr "Den korteste teksten lest i år…"
#: bookwyrm/templates/annual_summary/layout.html:245 #: bookwyrm/templates/annual_summary/layout.html:245
#: bookwyrm/templates/book/book.html:47 #: bookwyrm/templates/book/book.html:47
#: bookwyrm/templates/discover/large-book.html:22 #: bookwyrm/templates/discover/large-book.html:22
#: bookwyrm/templates/landing/large-book.html:25 #: bookwyrm/templates/landing/large-book.html:26
#: bookwyrm/templates/landing/small-book.html:18 #: bookwyrm/templates/landing/small-book.html:18
msgid "by" msgid "by"
msgstr "av" msgstr "av"
@ -733,9 +729,9 @@ msgstr "Laster inn data kobler til <strong>%(source_name)s</strong> og finner me
#: bookwyrm/templates/author/sync_modal.html:22 #: bookwyrm/templates/author/sync_modal.html:22
#: bookwyrm/templates/book/edit/edit_book.html:108 #: bookwyrm/templates/book/edit/edit_book.html:108
#: bookwyrm/templates/book/sync_modal.html:22 #: bookwyrm/templates/book/sync_modal.html:22
#: bookwyrm/templates/groups/members.html:30 #: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42 #: bookwyrm/templates/landing/password_reset.html:42
#: bookwyrm/templates/snippets/remove_from_group_button.html:16 #: bookwyrm/templates/snippets/remove_from_group_button.html:17
msgid "Confirm" msgid "Confirm"
msgstr "Bekreft" msgstr "Bekreft"
@ -819,8 +815,8 @@ msgid "Places"
msgstr "Steder" msgstr "Steder"
#: bookwyrm/templates/book/book.html:348 #: bookwyrm/templates/book/book.html:348
#: bookwyrm/templates/groups/group.html:20 bookwyrm/templates/layout.html:74 #: bookwyrm/templates/groups/group.html:19 bookwyrm/templates/layout.html:74
#: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:10 #: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:11
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
#: bookwyrm/templates/search/layout.html:25 #: bookwyrm/templates/search/layout.html:25
#: bookwyrm/templates/search/layout.html:50 #: bookwyrm/templates/search/layout.html:50
@ -834,7 +830,7 @@ msgstr "Legg til i liste"
#: bookwyrm/templates/book/book.html:369 #: bookwyrm/templates/book/book.html:369
#: bookwyrm/templates/book/cover_add_modal.html:31 #: bookwyrm/templates/book/cover_add_modal.html:31
#: bookwyrm/templates/lists/list.html:208 #: bookwyrm/templates/lists/list.html:209
#: bookwyrm/templates/settings/email_blocklist/domain_form.html:24 #: bookwyrm/templates/settings/email_blocklist/domain_form.html:24
#: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:31 #: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:31
msgid "Add" msgid "Add"
@ -936,7 +932,7 @@ msgid "Back"
msgstr "Tilbake" msgstr "Tilbake"
#: bookwyrm/templates/book/edit/edit_book_form.html:21 #: bookwyrm/templates/book/edit/edit_book_form.html:21
#: bookwyrm/templates/snippets/create_status/review.html:16 #: bookwyrm/templates/snippets/create_status/review.html:15
msgid "Title:" msgid "Title:"
msgstr "Tittel:" msgstr "Tittel:"
@ -1651,7 +1647,7 @@ msgid "What are you reading?"
msgstr "Hva er det du leser nå?" msgstr "Hva er det du leser nå?"
#: bookwyrm/templates/get_started/books.html:9 #: bookwyrm/templates/get_started/books.html:9
#: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:162 #: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:163
msgid "Search for a book" msgid "Search for a book"
msgstr "Søk etter en bok" msgstr "Søk etter en bok"
@ -1669,9 +1665,9 @@ msgstr "Du kan legge til bøker når du begynner å bruke %(site_name)s."
#: bookwyrm/templates/get_started/books.html:17 #: bookwyrm/templates/get_started/books.html:17
#: bookwyrm/templates/get_started/users.html:18 #: bookwyrm/templates/get_started/users.html:18
#: bookwyrm/templates/get_started/users.html:19 #: bookwyrm/templates/get_started/users.html:19
#: bookwyrm/templates/groups/members.html:16 #: bookwyrm/templates/groups/members.html:15
#: bookwyrm/templates/groups/members.html:17 bookwyrm/templates/layout.html:53 #: bookwyrm/templates/groups/members.html:16 bookwyrm/templates/layout.html:53
#: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:166 #: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:167
#: bookwyrm/templates/search/layout.html:4 #: bookwyrm/templates/search/layout.html:4
#: bookwyrm/templates/search/layout.html:9 #: bookwyrm/templates/search/layout.html:9
msgid "Search" msgid "Search"
@ -1687,7 +1683,7 @@ msgid "Popular on %(site_name)s"
msgstr "Populært på %(site_name)s" msgstr "Populært på %(site_name)s"
#: bookwyrm/templates/get_started/books.html:58 #: bookwyrm/templates/get_started/books.html:58
#: bookwyrm/templates/lists/list.html:179 #: bookwyrm/templates/lists/list.html:180
msgid "No books found" msgid "No books found"
msgstr "Ingen bøker funnet" msgstr "Ingen bøker funnet"
@ -1792,7 +1788,7 @@ msgstr "Denne handlingen er endelig"
#: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:49 #: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:49
#: bookwyrm/templates/settings/ip_blocklist/ip_blocklist.html:36 #: bookwyrm/templates/settings/ip_blocklist/ip_blocklist.html:36
#: bookwyrm/templates/snippets/follow_request_buttons.html:12 #: bookwyrm/templates/snippets/follow_request_buttons.html:12
#: bookwyrm/templates/snippets/join_invitation_buttons.html:13 #: bookwyrm/templates/snippets/join_invitation_buttons.html:14
msgid "Delete" msgid "Delete"
msgstr "Slett" msgstr "Slett"
@ -1812,17 +1808,17 @@ msgstr "Gruppebeskrivelse:"
msgid "Delete group" msgid "Delete group"
msgstr "Slett gruppa" msgstr "Slett gruppa"
#: bookwyrm/templates/groups/group.html:22 #: bookwyrm/templates/groups/group.html:21
msgid "Members of this group can create group-curated lists." msgid "Members of this group can create group-curated lists."
msgstr "Medlemmer av denne gruppen kan opprette gruppekontrollerte lister." msgstr "Medlemmer av denne gruppen kan opprette gruppekontrollerte lister."
#: bookwyrm/templates/groups/group.html:27 #: bookwyrm/templates/groups/group.html:26
#: bookwyrm/templates/lists/create_form.html:5 #: bookwyrm/templates/lists/create_form.html:5
#: bookwyrm/templates/lists/lists.html:20 #: bookwyrm/templates/lists/lists.html:20
msgid "Create List" msgid "Create List"
msgstr "Opprett liste" msgstr "Opprett liste"
#: bookwyrm/templates/groups/group.html:40 #: bookwyrm/templates/groups/group.html:39
msgid "This group has no lists" msgid "This group has no lists"
msgstr "Denne gruppa har ingen lister" msgstr "Denne gruppa har ingen lister"
@ -1830,15 +1826,15 @@ msgstr "Denne gruppa har ingen lister"
msgid "Edit group" msgid "Edit group"
msgstr "Rediger gruppe" msgstr "Rediger gruppe"
#: bookwyrm/templates/groups/members.html:12 #: bookwyrm/templates/groups/members.html:11
msgid "Search to add a user" msgid "Search to add a user"
msgstr "Søk for å legge til et medlem" msgstr "Søk for å legge til et medlem"
#: bookwyrm/templates/groups/members.html:33 #: bookwyrm/templates/groups/members.html:32
msgid "Leave group" msgid "Leave group"
msgstr "Forlat gruppa" msgstr "Forlat gruppa"
#: bookwyrm/templates/groups/members.html:55 #: bookwyrm/templates/groups/members.html:54
#: bookwyrm/templates/groups/suggested_users.html:35 #: bookwyrm/templates/groups/suggested_users.html:35
#: bookwyrm/templates/snippets/suggested_users.html:31 #: bookwyrm/templates/snippets/suggested_users.html:31
#: bookwyrm/templates/user/user_preview.html:36 #: bookwyrm/templates/user/user_preview.html:36
@ -2295,18 +2291,18 @@ msgstr "Slett denne lista?"
msgid "Edit List" msgid "Edit List"
msgstr "Redigér lista" msgstr "Redigér lista"
#: bookwyrm/templates/lists/embed-list.html:7 #: bookwyrm/templates/lists/embed-list.html:8
#, python-format #, python-format
msgid "%(list_name)s, a list by %(owner)s" msgid "%(list_name)s, a list by %(owner)s"
msgstr "%(list_name)s, ei liste av %(owner)s" msgstr "%(list_name)s, ei liste av %(owner)s"
#: bookwyrm/templates/lists/embed-list.html:17 #: bookwyrm/templates/lists/embed-list.html:18
#, python-format #, python-format
msgid "on <a href=\"/\">%(site_name)s</a>" msgid "on <a href=\"/\">%(site_name)s</a>"
msgstr "på <a href=\"/\">%(site_name)s</a>" msgstr "på <a href=\"/\">%(site_name)s</a>"
#: bookwyrm/templates/lists/embed-list.html:26 #: bookwyrm/templates/lists/embed-list.html:27
#: bookwyrm/templates/lists/list.html:42 #: bookwyrm/templates/lists/list.html:43
msgid "This list is currently empty" msgid "This list is currently empty"
msgstr "Denne lista er for tida tom" msgstr "Denne lista er for tida tom"
@ -2367,76 +2363,76 @@ msgstr "Opprett ei gruppe"
msgid "Delete list" msgid "Delete list"
msgstr "Slett liste" msgstr "Slett liste"
#: bookwyrm/templates/lists/list.html:34 #: bookwyrm/templates/lists/list.html:35
msgid "You successfully suggested a book for this list!" msgid "You successfully suggested a book for this list!"
msgstr "Du har nå foreslått en bok for denne lista!" msgstr "Du har nå foreslått en bok for denne lista!"
#: bookwyrm/templates/lists/list.html:36 #: bookwyrm/templates/lists/list.html:37
msgid "You successfully added a book to this list!" msgid "You successfully added a book to this list!"
msgstr "Du har nå lagt til ei bok i denne lista!" msgstr "Du har nå lagt til ei bok i denne lista!"
#: bookwyrm/templates/lists/list.html:80 #: bookwyrm/templates/lists/list.html:81
#, python-format #, python-format
msgid "Added by <a href=\"%(user_path)s\">%(username)s</a>" msgid "Added by <a href=\"%(user_path)s\">%(username)s</a>"
msgstr "Lagt til av <a href=\"%(user_path)s\">%(username)s</a>" msgstr "Lagt til av <a href=\"%(user_path)s\">%(username)s</a>"
#: bookwyrm/templates/lists/list.html:95 #: bookwyrm/templates/lists/list.html:96
msgid "List position" msgid "List position"
msgstr "Listeposisjon" msgstr "Listeposisjon"
#: bookwyrm/templates/lists/list.html:101 #: bookwyrm/templates/lists/list.html:102
#: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:21 #: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:21
msgid "Set" msgid "Set"
msgstr "Bruk" msgstr "Bruk"
#: bookwyrm/templates/lists/list.html:116 #: bookwyrm/templates/lists/list.html:117
#: bookwyrm/templates/snippets/remove_from_group_button.html:19 #: bookwyrm/templates/snippets/remove_from_group_button.html:20
msgid "Remove" msgid "Remove"
msgstr "Fjern" msgstr "Fjern"
#: bookwyrm/templates/lists/list.html:130 #: bookwyrm/templates/lists/list.html:131
#: bookwyrm/templates/lists/list.html:147 #: bookwyrm/templates/lists/list.html:148
msgid "Sort List" msgid "Sort List"
msgstr "Sorter liste" msgstr "Sorter liste"
#: bookwyrm/templates/lists/list.html:140 #: bookwyrm/templates/lists/list.html:141
msgid "Direction" msgid "Direction"
msgstr "Retning" msgstr "Retning"
#: bookwyrm/templates/lists/list.html:154 #: bookwyrm/templates/lists/list.html:155
msgid "Add Books" msgid "Add Books"
msgstr "Legg til bøker" msgstr "Legg til bøker"
#: bookwyrm/templates/lists/list.html:156 #: bookwyrm/templates/lists/list.html:157
msgid "Suggest Books" msgid "Suggest Books"
msgstr "Foreslå bøker" msgstr "Foreslå bøker"
#: bookwyrm/templates/lists/list.html:167 #: bookwyrm/templates/lists/list.html:168
msgid "search" msgid "search"
msgstr "søk" msgstr "søk"
#: bookwyrm/templates/lists/list.html:173 #: bookwyrm/templates/lists/list.html:174
msgid "Clear search" msgid "Clear search"
msgstr "Nullstill søk" msgstr "Nullstill søk"
#: bookwyrm/templates/lists/list.html:178 #: bookwyrm/templates/lists/list.html:179
#, python-format #, python-format
msgid "No books found matching the query \"%(query)s\"" msgid "No books found matching the query \"%(query)s\""
msgstr "Ingen bøker funnet for søket\"%(query)s\"" msgstr "Ingen bøker funnet for søket\"%(query)s\""
#: bookwyrm/templates/lists/list.html:210 #: bookwyrm/templates/lists/list.html:211
msgid "Suggest" msgid "Suggest"
msgstr "Foreslå" msgstr "Foreslå"
#: bookwyrm/templates/lists/list.html:221 #: bookwyrm/templates/lists/list.html:222
msgid "Embed this list on a website" msgid "Embed this list on a website"
msgstr "Legg denne lista inn på et nettsted" msgstr "Legg denne lista inn på et nettsted"
#: bookwyrm/templates/lists/list.html:229 #: bookwyrm/templates/lists/list.html:230
msgid "Copy embed code" msgid "Copy embed code"
msgstr "Kopier kode som legger inn lista" msgstr "Kopier kode som legger inn lista"
#: bookwyrm/templates/lists/list.html:231 #: bookwyrm/templates/lists/list.html:232
#, python-format #, python-format
msgid "%(list_name)s, a list by %(owner)s on %(site_name)s" msgid "%(list_name)s, a list by %(owner)s on %(site_name)s"
msgstr "%(list_name)s, en liste av %(owner)s på %(site_name)s" msgstr "%(list_name)s, en liste av %(owner)s på %(site_name)s"
@ -3912,15 +3908,15 @@ msgstr "Fullført"
msgid "This shelf is empty." msgid "This shelf is empty."
msgstr "Denne hylla er tom." msgstr "Denne hylla er tom."
#: bookwyrm/templates/snippets/add_to_group_button.html:15 #: bookwyrm/templates/snippets/add_to_group_button.html:16
msgid "Invite" msgid "Invite"
msgstr "Invitér" msgstr "Invitér"
#: bookwyrm/templates/snippets/add_to_group_button.html:24 #: bookwyrm/templates/snippets/add_to_group_button.html:25
msgid "Uninvite" msgid "Uninvite"
msgstr "Avlys invitasjon" msgstr "Avlys invitasjon"
#: bookwyrm/templates/snippets/add_to_group_button.html:28 #: bookwyrm/templates/snippets/add_to_group_button.html:29
#, python-format #, python-format
msgid "Remove @%(username)s" msgid "Remove @%(username)s"
msgstr "Fjern %(username)s" msgstr "Fjern %(username)s"
@ -4008,7 +4004,7 @@ msgstr "Spoilers forut!"
msgid "Include spoiler alert" msgid "Include spoiler alert"
msgstr "Inkluder spoiler-varsel" msgstr "Inkluder spoiler-varsel"
#: bookwyrm/templates/snippets/create_status/layout.html:48 #: bookwyrm/templates/snippets/create_status/layout.html:47
#: bookwyrm/templates/snippets/reading_modals/form.html:7 #: bookwyrm/templates/snippets/reading_modals/form.html:7
msgid "Comment:" msgid "Comment:"
msgstr "Kommentar:" msgstr "Kommentar:"
@ -4017,33 +4013,33 @@ msgstr "Kommentar:"
msgid "Post" msgid "Post"
msgstr "Innlegg" msgstr "Innlegg"
#: bookwyrm/templates/snippets/create_status/quotation.html:17 #: bookwyrm/templates/snippets/create_status/quotation.html:16
msgid "Quote:" msgid "Quote:"
msgstr "Sitat:" msgstr "Sitat:"
#: bookwyrm/templates/snippets/create_status/quotation.html:25 #: bookwyrm/templates/snippets/create_status/quotation.html:24
#, python-format #, python-format
msgid "An excerpt from '%(book_title)s'" msgid "An excerpt from '%(book_title)s'"
msgstr "En utdrag fra '%(book_title)s'" msgstr "En utdrag fra '%(book_title)s'"
#: bookwyrm/templates/snippets/create_status/quotation.html:32 #: bookwyrm/templates/snippets/create_status/quotation.html:31
msgid "Position:" msgid "Position:"
msgstr "Plassering:" msgstr "Plassering:"
#: bookwyrm/templates/snippets/create_status/quotation.html:45 #: bookwyrm/templates/snippets/create_status/quotation.html:44
msgid "On page:" msgid "On page:"
msgstr "På side:" msgstr "På side:"
#: bookwyrm/templates/snippets/create_status/quotation.html:51 #: bookwyrm/templates/snippets/create_status/quotation.html:50
msgid "At percent:" msgid "At percent:"
msgstr "Ved prosent:" msgstr "Ved prosent:"
#: bookwyrm/templates/snippets/create_status/review.html:25 #: bookwyrm/templates/snippets/create_status/review.html:24
#, python-format #, python-format
msgid "Your review of '%(book_title)s'" msgid "Your review of '%(book_title)s'"
msgstr "Din anmeldelse av '%(book_title)s" msgstr "Din anmeldelse av '%(book_title)s"
#: bookwyrm/templates/snippets/create_status/review.html:40 #: bookwyrm/templates/snippets/create_status/review.html:39
msgid "Review:" msgid "Review:"
msgstr "Anmeldelse:" msgstr "Anmeldelse:"
@ -4097,7 +4093,7 @@ msgid "Unfollow"
msgstr "Slutt å følge" msgstr "Slutt å følge"
#: bookwyrm/templates/snippets/follow_request_buttons.html:7 #: bookwyrm/templates/snippets/follow_request_buttons.html:7
#: bookwyrm/templates/snippets/join_invitation_buttons.html:8 #: bookwyrm/templates/snippets/join_invitation_buttons.html:9
msgid "Accept" msgid "Accept"
msgstr "Godta" msgstr "Godta"
@ -4137,14 +4133,14 @@ msgstr[1] "vurderte <em><a href=\"%(path)s\">%(title)s</a></em> til: %(display_r
#: bookwyrm/templates/snippets/generated_status/review_pure_name.html:4 #: bookwyrm/templates/snippets/generated_status/review_pure_name.html:4
#, python-format #, python-format
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(display_rating)s star): %(review_title)s" msgid "Review of \"%(book_title)s\" (%(display_rating)s star): %(review_title)s"
msgid_plural "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(display_rating)s stars): %(review_title)s" msgid_plural "Review of \"%(book_title)s\" (%(display_rating)s stars): %(review_title)s"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: bookwyrm/templates/snippets/generated_status/review_pure_name.html:12 #: bookwyrm/templates/snippets/generated_status/review_pure_name.html:12
#, python-format #, python-format
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\": %(review_title)s" msgid "Review of \"%(book_title)s\": %(review_title)s"
msgstr "" msgstr ""
#: bookwyrm/templates/snippets/goal_form.html:4 #: bookwyrm/templates/snippets/goal_form.html:4
@ -4215,11 +4211,11 @@ msgstr "Kun følgere"
msgid "Post privacy" msgid "Post privacy"
msgstr "Delingsinstilling for post" msgstr "Delingsinstilling for post"
#: bookwyrm/templates/snippets/rate_action.html:4 #: bookwyrm/templates/snippets/rate_action.html:5
msgid "Leave a rating" msgid "Leave a rating"
msgstr "Legg inn en vurdering" msgstr "Legg inn en vurdering"
#: bookwyrm/templates/snippets/rate_action.html:19 #: bookwyrm/templates/snippets/rate_action.html:20
msgid "Rate" msgid "Rate"
msgstr "Vurdér" msgstr "Vurdér"
@ -4313,29 +4309,29 @@ msgstr "Fjern fra %(name)s"
msgid "Finish reading" msgid "Finish reading"
msgstr "Fullfør lesing" msgstr "Fullfør lesing"
#: bookwyrm/templates/snippets/status/content_status.html:72 #: bookwyrm/templates/snippets/status/content_status.html:73
msgid "Content warning" msgid "Content warning"
msgstr "Varsel om følsomt innhold" msgstr "Varsel om følsomt innhold"
#: bookwyrm/templates/snippets/status/content_status.html:79 #: bookwyrm/templates/snippets/status/content_status.html:80
msgid "Show status" msgid "Show status"
msgstr "Vis status" msgstr "Vis status"
#: bookwyrm/templates/snippets/status/content_status.html:101 #: bookwyrm/templates/snippets/status/content_status.html:102
#, python-format #, python-format
msgid "(Page %(page)s)" msgid "(Page %(page)s)"
msgstr "(side %(page)s)" msgstr "(side %(page)s)"
#: bookwyrm/templates/snippets/status/content_status.html:103 #: bookwyrm/templates/snippets/status/content_status.html:104
#, python-format #, python-format
msgid "(%(percent)s%%)" msgid "(%(percent)s%%)"
msgstr "(%(percent)s%%)" msgstr "(%(percent)s%%)"
#: bookwyrm/templates/snippets/status/content_status.html:125 #: bookwyrm/templates/snippets/status/content_status.html:126
msgid "Open image in new window" msgid "Open image in new window"
msgstr "Åpne bilde i nytt vindu" msgstr "Åpne bilde i nytt vindu"
#: bookwyrm/templates/snippets/status/content_status.html:144 #: bookwyrm/templates/snippets/status/content_status.html:145
msgid "Hide status" msgid "Hide status"
msgstr "Skjul status" msgstr "Skjul status"
@ -4628,7 +4624,7 @@ msgstr "Ingen bruker med den e-postadressen ble funnet."
msgid "A password reset link was sent to {email}" msgid "A password reset link was sent to {email}"
msgstr "En lenke for tilbakestilling av passord er sendt til {email}" msgstr "En lenke for tilbakestilling av passord er sendt til {email}"
#: bookwyrm/views/rss_feed.py:35 #: bookwyrm/views/rss_feed.py:34
#, python-brace-format #, python-brace-format
msgid "Status updates from {obj.display_name}" msgid "Status updates from {obj.display_name}"
msgstr "Statusoppdateringer fra {obj.display_name}" msgstr "Statusoppdateringer fra {obj.display_name}"

Binary file not shown.

View file

@ -2,8 +2,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: bookwyrm\n" "Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-01-17 19:26+0000\n" "POT-Creation-Date: 2022-01-24 17:25+0000\n"
"PO-Revision-Date: 2022-01-18 14:10\n" "PO-Revision-Date: 2022-01-24 18:55\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n" "Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: Portuguese, Brazilian\n" "Language-Team: Portuguese, Brazilian\n"
"Language: pt\n" "Language: pt\n"
@ -56,11 +56,11 @@ msgstr "Título do livro"
#: bookwyrm/forms.py:485 bookwyrm/templates/shelf/shelf.html:155 #: bookwyrm/forms.py:485 bookwyrm/templates/shelf/shelf.html:155
#: bookwyrm/templates/shelf/shelf.html:187 #: bookwyrm/templates/shelf/shelf.html:187
#: bookwyrm/templates/snippets/create_status/review.html:33 #: bookwyrm/templates/snippets/create_status/review.html:32
msgid "Rating" msgid "Rating"
msgstr "Avaliação" msgstr "Avaliação"
#: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:134 #: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:135
msgid "Sort By" msgid "Sort By"
msgstr "Organizar por" msgstr "Organizar por"
@ -224,69 +224,69 @@ msgstr "Citações"
msgid "Everything else" msgid "Everything else"
msgstr "Todo o resto" msgstr "Todo o resto"
#: bookwyrm/settings.py:121 #: bookwyrm/settings.py:173
msgid "Home Timeline" msgid "Home Timeline"
msgstr "Linha do tempo" msgstr "Linha do tempo"
#: bookwyrm/settings.py:121 #: bookwyrm/settings.py:173
msgid "Home" msgid "Home"
msgstr "Página inicial" msgstr "Página inicial"
#: bookwyrm/settings.py:122 #: bookwyrm/settings.py:174
msgid "Books Timeline" msgid "Books Timeline"
msgstr "Linha do tempo dos livros" msgstr "Linha do tempo dos livros"
#: bookwyrm/settings.py:122 bookwyrm/templates/search/layout.html:21 #: bookwyrm/settings.py:174 bookwyrm/templates/search/layout.html:21
#: bookwyrm/templates/search/layout.html:42 #: bookwyrm/templates/search/layout.html:42
#: bookwyrm/templates/user/layout.html:91 #: bookwyrm/templates/user/layout.html:91
msgid "Books" msgid "Books"
msgstr "Livros" msgstr "Livros"
#: bookwyrm/settings.py:196 #: bookwyrm/settings.py:248
msgid "English" msgid "English"
msgstr "English (Inglês)" msgstr "English (Inglês)"
#: bookwyrm/settings.py:197 #: bookwyrm/settings.py:249
msgid "Deutsch (German)" msgid "Deutsch (German)"
msgstr "Deutsch (Alemão)" msgstr "Deutsch (Alemão)"
#: bookwyrm/settings.py:198 #: bookwyrm/settings.py:250
msgid "Español (Spanish)" msgid "Español (Spanish)"
msgstr "Español (Espanhol)" msgstr "Español (Espanhol)"
#: bookwyrm/settings.py:199 #: bookwyrm/settings.py:251
msgid "Galego (Galician)" msgid "Galego (Galician)"
msgstr "Galego (Galego)" msgstr "Galego (Galego)"
#: bookwyrm/settings.py:200 #: bookwyrm/settings.py:252
msgid "Italiano (Italian)" msgid "Italiano (Italian)"
msgstr "Italiano (Italiano)" msgstr "Italiano (Italiano)"
#: bookwyrm/settings.py:201 #: bookwyrm/settings.py:253
msgid "Français (French)" msgid "Français (French)"
msgstr "Français (Francês)" msgstr "Français (Francês)"
#: bookwyrm/settings.py:202 #: bookwyrm/settings.py:254
msgid "Lietuvių (Lithuanian)" msgid "Lietuvių (Lithuanian)"
msgstr "Lietuvių (Lituano)" msgstr "Lietuvių (Lituano)"
#: bookwyrm/settings.py:203 #: bookwyrm/settings.py:255
msgid "Norsk (Norwegian)" msgid "Norsk (Norwegian)"
msgstr "Norsk (Norueguês)" msgstr "Norsk (Norueguês)"
#: bookwyrm/settings.py:204 #: bookwyrm/settings.py:256
msgid "Português do Brasil (Brazilian Portuguese)" msgid "Português do Brasil (Brazilian Portuguese)"
msgstr "Português do Brasil (Português do Brasil)" msgstr "Português do Brasil (Português do Brasil)"
#: bookwyrm/settings.py:205 #: bookwyrm/settings.py:257
msgid "Português Europeu (European Portuguese)" msgid "Português Europeu (European Portuguese)"
msgstr "Português Europeu (Português Europeu)" msgstr "Português Europeu (Português Europeu)"
#: bookwyrm/settings.py:206 #: bookwyrm/settings.py:258
msgid "简体中文 (Simplified Chinese)" msgid "简体中文 (Simplified Chinese)"
msgstr "简体中文 (Chinês simplificado)" msgstr "简体中文 (Chinês simplificado)"
#: bookwyrm/settings.py:207 #: bookwyrm/settings.py:259
msgid "繁體中文 (Traditional Chinese)" msgid "繁體中文 (Traditional Chinese)"
msgstr "繁體中文 (Chinês tradicional)" msgstr "繁體中文 (Chinês tradicional)"
@ -315,57 +315,54 @@ msgstr "Algo deu errado! Foi mal."
msgid "About" msgid "About"
msgstr "Sobre" msgstr "Sobre"
#: bookwyrm/templates/about/about.html:18 #: bookwyrm/templates/about/about.html:19
#: bookwyrm/templates/get_started/layout.html:20 #: bookwyrm/templates/get_started/layout.html:20
#, python-format #, python-format
msgid "Welcome to %(site_name)s!" msgid "Welcome to %(site_name)s!"
msgstr "Bem-vindol(a) a %(site_name)s!" msgstr "Bem-vindol(a) a %(site_name)s!"
#: bookwyrm/templates/about/about.html:22 #: bookwyrm/templates/about/about.html:23
#, python-format #, python-format
msgid "%(site_name)s is part of <em>BookWyrm</em>, a network of independent, self-directed communities for readers. While you can interact seamlessly with users anywhere in the <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">BookWyrm network</a>, this community is unique." msgid "%(site_name)s is part of <em>BookWyrm</em>, a network of independent, self-directed communities for readers. While you can interact seamlessly with users anywhere in the <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">BookWyrm network</a>, this community is unique."
msgstr "%(site_name)s é parte da <em>BookWyrm</em>, uma rede independente e autogestionada para leitores. Apesar de você poder interagir diretamente com usuários de toda a <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">rede BookWyrm</a>, esta comunidade é única." msgstr "%(site_name)s é parte da <em>BookWyrm</em>, uma rede independente e autogestionada para leitores. Apesar de você poder interagir diretamente com usuários de toda a <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">rede BookWyrm</a>, esta comunidade é única."
#: bookwyrm/templates/about/about.html:39 #: bookwyrm/templates/about/about.html:40
#, python-format #, python-format
msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> is %(site_name)s's most beloved book, with an average rating of %(rating)s out of 5." msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> is %(site_name)s's most beloved book, with an average rating of %(rating)s out of 5."
msgstr "<a href=\"%(book_path)s\"><em>%(title)s</em></a> é o livro favorito da instância %(site_name)s, com uma avaliação média de %(rating)s em 5." msgstr "<a href=\"%(book_path)s\"><em>%(title)s</em></a> é o livro favorito da instância %(site_name)s, com uma avaliação média de %(rating)s em 5."
#: bookwyrm/templates/about/about.html:58 #: bookwyrm/templates/about/about.html:59
#, python-format #, python-format
msgid "More %(site_name)s users want to read <a href=\"%(book_path)s\"><em>%(title)s</em></a> than any other book." msgid "More %(site_name)s users want to read <a href=\"%(book_path)s\"><em>%(title)s</em></a> than any other book."
msgstr "O livro mais desejado de toda a instância %(site_name)s é <a href=\"%(book_path)s\"><em>%(title)s</em></a>." msgstr "O livro mais desejado de toda a instância %(site_name)s é <a href=\"%(book_path)s\"><em>%(title)s</em></a>."
#: bookwyrm/templates/about/about.html:77 #: bookwyrm/templates/about/about.html:78
#, python-format #, python-format
msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> has the most divisive ratings of any book on %(site_name)s." msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> has the most divisive ratings of any book on %(site_name)s."
msgstr "<a href=\"%(book_path)s\"><em>%(title)s</em></a> tem a avaliação mais polêmica de toda a instância %(site_name)s." msgstr "<a href=\"%(book_path)s\"><em>%(title)s</em></a> tem a avaliação mais polêmica de toda a instância %(site_name)s."
#: bookwyrm/templates/about/about.html:88 #: bookwyrm/templates/about/about.html:89
msgid "Track your reading, talk about books, write reviews, and discover what to read next. Always ad-free, anti-corporate, and community-oriented, BookWyrm is human-scale software, designed to stay small and personal. If you have feature requests, bug reports, or grand dreams, <a href='https://joinbookwyrm.com/get-involved' target='_blank'>reach out</a> and make yourself heard." msgid "Track your reading, talk about books, write reviews, and discover what to read next. Always ad-free, anti-corporate, and community-oriented, BookWyrm is human-scale software, designed to stay small and personal. If you have feature requests, bug reports, or grand dreams, <a href='https://joinbookwyrm.com/get-involved' target='_blank'>reach out</a> and make yourself heard."
msgstr "Registre o andamento de suas leituras, fale sobre livros, escreva resenhas e ache o que ler em seguida. Sempre sem propagandas, anticorporativa e voltada à comunidade, a BookWyrm é um software em escala humana desenvolvido para permanecer pequeno e pessoal. Se você tem sugestões de funções, avisos sobre bugs ou grandes sonhos para o projeto, <a href='https://joinbookwyrm.com/get-involved' target='_blank'>fale conosco</a> e faça sua voz ser ouvida." msgstr "Registre o andamento de suas leituras, fale sobre livros, escreva resenhas e ache o que ler em seguida. Sempre sem propagandas, anticorporativa e voltada à comunidade, a BookWyrm é um software em escala humana desenvolvido para permanecer pequeno e pessoal. Se você tem sugestões de funções, avisos sobre bugs ou grandes sonhos para o projeto, <a href='https://joinbookwyrm.com/get-involved' target='_blank'>fale conosco</a> e faça sua voz ser ouvida."
#: bookwyrm/templates/about/about.html:95 #: bookwyrm/templates/about/about.html:96
msgid "Meet your admins" msgid "Meet your admins"
msgstr "Conheça a administração" msgstr "Conheça a administração"
#: bookwyrm/templates/about/about.html:98 #: bookwyrm/templates/about/about.html:99
#, python-format #, python-format
msgid "\n" msgid "%(site_name)s's moderators and administrators keep the site up and running, enforce the <a href=\"coc_path\">code of conduct</a>, and respond when users report spam and bad behavior."
" %(site_name)s's moderators and administrators keep the site up and running, enforce the <a href=\"coc_path\">code of conduct</a>, and respond when users report spam and bad behavior.\n" msgstr "Moderadores/as e administradores/as de %(site_name)s mantêm o site funcionando, aplicam o <a href=\"coc_path\">código de conduta</a> e respondem quando usuários denunciam spam e mau comportamento."
" "
msgstr "\n"
" Moderadores/as e administradores/as da instância %(site_name)s mantêm o site em funcionamento, aplicam o <a href=\"coc_path\">código de conduta</a> e respondem às denúncias de spam e mau comportamento na rede. "
#: bookwyrm/templates/about/about.html:112 #: bookwyrm/templates/about/about.html:113
msgid "Moderator" msgid "Moderator"
msgstr "Moderador/a" msgstr "Moderador/a"
#: bookwyrm/templates/about/about.html:114 bookwyrm/templates/layout.html:131 #: bookwyrm/templates/about/about.html:115 bookwyrm/templates/layout.html:131
msgid "Admin" msgid "Admin"
msgstr "Admin" msgstr "Admin"
#: bookwyrm/templates/about/about.html:130 #: bookwyrm/templates/about/about.html:131
#: bookwyrm/templates/settings/users/user_moderation_actions.html:14 #: bookwyrm/templates/settings/users/user_moderation_actions.html:14
#: bookwyrm/templates/snippets/status/status_options.html:35 #: bookwyrm/templates/snippets/status/status_options.html:35
#: bookwyrm/templates/snippets/user_options.html:13 #: bookwyrm/templates/snippets/user_options.html:13
@ -427,7 +424,7 @@ msgid "Copy address"
msgstr "Copiar endereço" msgstr "Copiar endereço"
#: bookwyrm/templates/annual_summary/layout.html:68 #: bookwyrm/templates/annual_summary/layout.html:68
#: bookwyrm/templates/lists/list.html:230 #: bookwyrm/templates/lists/list.html:231
msgid "Copied!" msgid "Copied!"
msgstr "Copiado!" msgstr "Copiado!"
@ -496,7 +493,7 @@ msgstr "A leitura mais curta do ano…"
#: bookwyrm/templates/annual_summary/layout.html:245 #: bookwyrm/templates/annual_summary/layout.html:245
#: bookwyrm/templates/book/book.html:47 #: bookwyrm/templates/book/book.html:47
#: bookwyrm/templates/discover/large-book.html:22 #: bookwyrm/templates/discover/large-book.html:22
#: bookwyrm/templates/landing/large-book.html:25 #: bookwyrm/templates/landing/large-book.html:26
#: bookwyrm/templates/landing/small-book.html:18 #: bookwyrm/templates/landing/small-book.html:18
msgid "by" msgid "by"
msgstr "de" msgstr "de"
@ -732,9 +729,9 @@ msgstr "Para carregar informações nos conectaremos a <strong>%(source_name)s</
#: bookwyrm/templates/author/sync_modal.html:22 #: bookwyrm/templates/author/sync_modal.html:22
#: bookwyrm/templates/book/edit/edit_book.html:108 #: bookwyrm/templates/book/edit/edit_book.html:108
#: bookwyrm/templates/book/sync_modal.html:22 #: bookwyrm/templates/book/sync_modal.html:22
#: bookwyrm/templates/groups/members.html:30 #: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42 #: bookwyrm/templates/landing/password_reset.html:42
#: bookwyrm/templates/snippets/remove_from_group_button.html:16 #: bookwyrm/templates/snippets/remove_from_group_button.html:17
msgid "Confirm" msgid "Confirm"
msgstr "Confirmar" msgstr "Confirmar"
@ -818,8 +815,8 @@ msgid "Places"
msgstr "Lugares" msgstr "Lugares"
#: bookwyrm/templates/book/book.html:348 #: bookwyrm/templates/book/book.html:348
#: bookwyrm/templates/groups/group.html:20 bookwyrm/templates/layout.html:74 #: bookwyrm/templates/groups/group.html:19 bookwyrm/templates/layout.html:74
#: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:10 #: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:11
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
#: bookwyrm/templates/search/layout.html:25 #: bookwyrm/templates/search/layout.html:25
#: bookwyrm/templates/search/layout.html:50 #: bookwyrm/templates/search/layout.html:50
@ -833,7 +830,7 @@ msgstr "Adicionar à lista"
#: bookwyrm/templates/book/book.html:369 #: bookwyrm/templates/book/book.html:369
#: bookwyrm/templates/book/cover_add_modal.html:31 #: bookwyrm/templates/book/cover_add_modal.html:31
#: bookwyrm/templates/lists/list.html:208 #: bookwyrm/templates/lists/list.html:209
#: bookwyrm/templates/settings/email_blocklist/domain_form.html:24 #: bookwyrm/templates/settings/email_blocklist/domain_form.html:24
#: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:31 #: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:31
msgid "Add" msgid "Add"
@ -935,7 +932,7 @@ msgid "Back"
msgstr "Voltar" msgstr "Voltar"
#: bookwyrm/templates/book/edit/edit_book_form.html:21 #: bookwyrm/templates/book/edit/edit_book_form.html:21
#: bookwyrm/templates/snippets/create_status/review.html:16 #: bookwyrm/templates/snippets/create_status/review.html:15
msgid "Title:" msgid "Title:"
msgstr "Título:" msgstr "Título:"
@ -1652,7 +1649,7 @@ msgid "What are you reading?"
msgstr "O que você está lendo?" msgstr "O que você está lendo?"
#: bookwyrm/templates/get_started/books.html:9 #: bookwyrm/templates/get_started/books.html:9
#: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:162 #: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:163
msgid "Search for a book" msgid "Search for a book"
msgstr "Pesquisar livro" msgstr "Pesquisar livro"
@ -1670,9 +1667,9 @@ msgstr "Você pode adicionar livros quando começar a usar o %(site_name)s."
#: bookwyrm/templates/get_started/books.html:17 #: bookwyrm/templates/get_started/books.html:17
#: bookwyrm/templates/get_started/users.html:18 #: bookwyrm/templates/get_started/users.html:18
#: bookwyrm/templates/get_started/users.html:19 #: bookwyrm/templates/get_started/users.html:19
#: bookwyrm/templates/groups/members.html:16 #: bookwyrm/templates/groups/members.html:15
#: bookwyrm/templates/groups/members.html:17 bookwyrm/templates/layout.html:53 #: bookwyrm/templates/groups/members.html:16 bookwyrm/templates/layout.html:53
#: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:166 #: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:167
#: bookwyrm/templates/search/layout.html:4 #: bookwyrm/templates/search/layout.html:4
#: bookwyrm/templates/search/layout.html:9 #: bookwyrm/templates/search/layout.html:9
msgid "Search" msgid "Search"
@ -1688,7 +1685,7 @@ msgid "Popular on %(site_name)s"
msgstr "Popular em %(site_name)s" msgstr "Popular em %(site_name)s"
#: bookwyrm/templates/get_started/books.html:58 #: bookwyrm/templates/get_started/books.html:58
#: bookwyrm/templates/lists/list.html:179 #: bookwyrm/templates/lists/list.html:180
msgid "No books found" msgid "No books found"
msgstr "Nenhum livro encontrado" msgstr "Nenhum livro encontrado"
@ -1793,7 +1790,7 @@ msgstr "Esta ação não pode ser desfeita"
#: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:49 #: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:49
#: bookwyrm/templates/settings/ip_blocklist/ip_blocklist.html:36 #: bookwyrm/templates/settings/ip_blocklist/ip_blocklist.html:36
#: bookwyrm/templates/snippets/follow_request_buttons.html:12 #: bookwyrm/templates/snippets/follow_request_buttons.html:12
#: bookwyrm/templates/snippets/join_invitation_buttons.html:13 #: bookwyrm/templates/snippets/join_invitation_buttons.html:14
msgid "Delete" msgid "Delete"
msgstr "Excluir" msgstr "Excluir"
@ -1813,17 +1810,17 @@ msgstr "Descrição do grupo:"
msgid "Delete group" msgid "Delete group"
msgstr "Excluir grupo" msgstr "Excluir grupo"
#: bookwyrm/templates/groups/group.html:22 #: bookwyrm/templates/groups/group.html:21
msgid "Members of this group can create group-curated lists." msgid "Members of this group can create group-curated lists."
msgstr "Membros deste grupo podem criar listas organizadas coletivamente." msgstr "Membros deste grupo podem criar listas organizadas coletivamente."
#: bookwyrm/templates/groups/group.html:27 #: bookwyrm/templates/groups/group.html:26
#: bookwyrm/templates/lists/create_form.html:5 #: bookwyrm/templates/lists/create_form.html:5
#: bookwyrm/templates/lists/lists.html:20 #: bookwyrm/templates/lists/lists.html:20
msgid "Create List" msgid "Create List"
msgstr "Criar lista" msgstr "Criar lista"
#: bookwyrm/templates/groups/group.html:40 #: bookwyrm/templates/groups/group.html:39
msgid "This group has no lists" msgid "This group has no lists"
msgstr "Este grupo não tem listas" msgstr "Este grupo não tem listas"
@ -1831,15 +1828,15 @@ msgstr "Este grupo não tem listas"
msgid "Edit group" msgid "Edit group"
msgstr "Editar grupo" msgstr "Editar grupo"
#: bookwyrm/templates/groups/members.html:12 #: bookwyrm/templates/groups/members.html:11
msgid "Search to add a user" msgid "Search to add a user"
msgstr "Pesquisar usuário para adicionar" msgstr "Pesquisar usuário para adicionar"
#: bookwyrm/templates/groups/members.html:33 #: bookwyrm/templates/groups/members.html:32
msgid "Leave group" msgid "Leave group"
msgstr "Sair do grupo" msgstr "Sair do grupo"
#: bookwyrm/templates/groups/members.html:55 #: bookwyrm/templates/groups/members.html:54
#: bookwyrm/templates/groups/suggested_users.html:35 #: bookwyrm/templates/groups/suggested_users.html:35
#: bookwyrm/templates/snippets/suggested_users.html:31 #: bookwyrm/templates/snippets/suggested_users.html:31
#: bookwyrm/templates/user/user_preview.html:36 #: bookwyrm/templates/user/user_preview.html:36
@ -2296,18 +2293,18 @@ msgstr "Deletar esta lista?"
msgid "Edit List" msgid "Edit List"
msgstr "Editar lista" msgstr "Editar lista"
#: bookwyrm/templates/lists/embed-list.html:7 #: bookwyrm/templates/lists/embed-list.html:8
#, python-format #, python-format
msgid "%(list_name)s, a list by %(owner)s" msgid "%(list_name)s, a list by %(owner)s"
msgstr "%(list_name)s, uma lista de %(owner)s" msgstr "%(list_name)s, uma lista de %(owner)s"
#: bookwyrm/templates/lists/embed-list.html:17 #: bookwyrm/templates/lists/embed-list.html:18
#, python-format #, python-format
msgid "on <a href=\"/\">%(site_name)s</a>" msgid "on <a href=\"/\">%(site_name)s</a>"
msgstr "em <a href=\"/\">%(site_name)s</a>" msgstr "em <a href=\"/\">%(site_name)s</a>"
#: bookwyrm/templates/lists/embed-list.html:26 #: bookwyrm/templates/lists/embed-list.html:27
#: bookwyrm/templates/lists/list.html:42 #: bookwyrm/templates/lists/list.html:43
msgid "This list is currently empty" msgid "This list is currently empty"
msgstr "Esta lista está vazia" msgstr "Esta lista está vazia"
@ -2368,76 +2365,76 @@ msgstr "Criar grupo"
msgid "Delete list" msgid "Delete list"
msgstr "Excluir lista" msgstr "Excluir lista"
#: bookwyrm/templates/lists/list.html:34 #: bookwyrm/templates/lists/list.html:35
msgid "You successfully suggested a book for this list!" msgid "You successfully suggested a book for this list!"
msgstr "Você sugeriu um livro para esta lista com sucesso!" msgstr "Você sugeriu um livro para esta lista com sucesso!"
#: bookwyrm/templates/lists/list.html:36 #: bookwyrm/templates/lists/list.html:37
msgid "You successfully added a book to this list!" msgid "You successfully added a book to this list!"
msgstr "Você adicionou um livro a esta lista com sucesso!" msgstr "Você adicionou um livro a esta lista com sucesso!"
#: bookwyrm/templates/lists/list.html:80 #: bookwyrm/templates/lists/list.html:81
#, python-format #, python-format
msgid "Added by <a href=\"%(user_path)s\">%(username)s</a>" msgid "Added by <a href=\"%(user_path)s\">%(username)s</a>"
msgstr "Adicionado por <a href=\"%(user_path)s\">%(username)s</a>" msgstr "Adicionado por <a href=\"%(user_path)s\">%(username)s</a>"
#: bookwyrm/templates/lists/list.html:95 #: bookwyrm/templates/lists/list.html:96
msgid "List position" msgid "List position"
msgstr "Posição na lista" msgstr "Posição na lista"
#: bookwyrm/templates/lists/list.html:101 #: bookwyrm/templates/lists/list.html:102
#: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:21 #: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:21
msgid "Set" msgid "Set"
msgstr "Definir" msgstr "Definir"
#: bookwyrm/templates/lists/list.html:116 #: bookwyrm/templates/lists/list.html:117
#: bookwyrm/templates/snippets/remove_from_group_button.html:19 #: bookwyrm/templates/snippets/remove_from_group_button.html:20
msgid "Remove" msgid "Remove"
msgstr "Remover" msgstr "Remover"
#: bookwyrm/templates/lists/list.html:130 #: bookwyrm/templates/lists/list.html:131
#: bookwyrm/templates/lists/list.html:147 #: bookwyrm/templates/lists/list.html:148
msgid "Sort List" msgid "Sort List"
msgstr "Ordenar lista" msgstr "Ordenar lista"
#: bookwyrm/templates/lists/list.html:140 #: bookwyrm/templates/lists/list.html:141
msgid "Direction" msgid "Direction"
msgstr "Sentido" msgstr "Sentido"
#: bookwyrm/templates/lists/list.html:154 #: bookwyrm/templates/lists/list.html:155
msgid "Add Books" msgid "Add Books"
msgstr "Adicionar livros" msgstr "Adicionar livros"
#: bookwyrm/templates/lists/list.html:156 #: bookwyrm/templates/lists/list.html:157
msgid "Suggest Books" msgid "Suggest Books"
msgstr "Sugerir livros" msgstr "Sugerir livros"
#: bookwyrm/templates/lists/list.html:167 #: bookwyrm/templates/lists/list.html:168
msgid "search" msgid "search"
msgstr "pesquisar" msgstr "pesquisar"
#: bookwyrm/templates/lists/list.html:173 #: bookwyrm/templates/lists/list.html:174
msgid "Clear search" msgid "Clear search"
msgstr "Limpar pesquisa" msgstr "Limpar pesquisa"
#: bookwyrm/templates/lists/list.html:178 #: bookwyrm/templates/lists/list.html:179
#, python-format #, python-format
msgid "No books found matching the query \"%(query)s\"" msgid "No books found matching the query \"%(query)s\""
msgstr "Nenhum livro encontrado para \"%(query)s\"" msgstr "Nenhum livro encontrado para \"%(query)s\""
#: bookwyrm/templates/lists/list.html:210 #: bookwyrm/templates/lists/list.html:211
msgid "Suggest" msgid "Suggest"
msgstr "Sugerir" msgstr "Sugerir"
#: bookwyrm/templates/lists/list.html:221 #: bookwyrm/templates/lists/list.html:222
msgid "Embed this list on a website" msgid "Embed this list on a website"
msgstr "Incorpore esta lista em um site" msgstr "Incorpore esta lista em um site"
#: bookwyrm/templates/lists/list.html:229 #: bookwyrm/templates/lists/list.html:230
msgid "Copy embed code" msgid "Copy embed code"
msgstr "Copiar código de incorporação" msgstr "Copiar código de incorporação"
#: bookwyrm/templates/lists/list.html:231 #: bookwyrm/templates/lists/list.html:232
#, python-format #, python-format
msgid "%(list_name)s, a list by %(owner)s on %(site_name)s" msgid "%(list_name)s, a list by %(owner)s on %(site_name)s"
msgstr "%(list_name)s, uma lista de %(owner)s em %(site_name)s" msgstr "%(list_name)s, uma lista de %(owner)s em %(site_name)s"
@ -3913,15 +3910,15 @@ msgstr "Terminado"
msgid "This shelf is empty." msgid "This shelf is empty."
msgstr "Esta estante está vazia." msgstr "Esta estante está vazia."
#: bookwyrm/templates/snippets/add_to_group_button.html:15 #: bookwyrm/templates/snippets/add_to_group_button.html:16
msgid "Invite" msgid "Invite"
msgstr "Convidar" msgstr "Convidar"
#: bookwyrm/templates/snippets/add_to_group_button.html:24 #: bookwyrm/templates/snippets/add_to_group_button.html:25
msgid "Uninvite" msgid "Uninvite"
msgstr "Desconvidar" msgstr "Desconvidar"
#: bookwyrm/templates/snippets/add_to_group_button.html:28 #: bookwyrm/templates/snippets/add_to_group_button.html:29
#, python-format #, python-format
msgid "Remove @%(username)s" msgid "Remove @%(username)s"
msgstr "Excluir @%(username)s" msgstr "Excluir @%(username)s"
@ -4009,7 +4006,7 @@ msgstr "Alerta de spoiler!"
msgid "Include spoiler alert" msgid "Include spoiler alert"
msgstr "Incluir alerta de spoiler" msgstr "Incluir alerta de spoiler"
#: bookwyrm/templates/snippets/create_status/layout.html:48 #: bookwyrm/templates/snippets/create_status/layout.html:47
#: bookwyrm/templates/snippets/reading_modals/form.html:7 #: bookwyrm/templates/snippets/reading_modals/form.html:7
msgid "Comment:" msgid "Comment:"
msgstr "Comentário:" msgstr "Comentário:"
@ -4018,33 +4015,33 @@ msgstr "Comentário:"
msgid "Post" msgid "Post"
msgstr "Publicar" msgstr "Publicar"
#: bookwyrm/templates/snippets/create_status/quotation.html:17 #: bookwyrm/templates/snippets/create_status/quotation.html:16
msgid "Quote:" msgid "Quote:"
msgstr "Citação:" msgstr "Citação:"
#: bookwyrm/templates/snippets/create_status/quotation.html:25 #: bookwyrm/templates/snippets/create_status/quotation.html:24
#, python-format #, python-format
msgid "An excerpt from '%(book_title)s'" msgid "An excerpt from '%(book_title)s'"
msgstr "Um trecho de '%(book_title)s'" msgstr "Um trecho de '%(book_title)s'"
#: bookwyrm/templates/snippets/create_status/quotation.html:32 #: bookwyrm/templates/snippets/create_status/quotation.html:31
msgid "Position:" msgid "Position:"
msgstr "Posição:" msgstr "Posição:"
#: bookwyrm/templates/snippets/create_status/quotation.html:45 #: bookwyrm/templates/snippets/create_status/quotation.html:44
msgid "On page:" msgid "On page:"
msgstr "Na página:" msgstr "Na página:"
#: bookwyrm/templates/snippets/create_status/quotation.html:51 #: bookwyrm/templates/snippets/create_status/quotation.html:50
msgid "At percent:" msgid "At percent:"
msgstr "Na porcentagem:" msgstr "Na porcentagem:"
#: bookwyrm/templates/snippets/create_status/review.html:25 #: bookwyrm/templates/snippets/create_status/review.html:24
#, python-format #, python-format
msgid "Your review of '%(book_title)s'" msgid "Your review of '%(book_title)s'"
msgstr "Sua resenha de '%(book_title)s'" msgstr "Sua resenha de '%(book_title)s'"
#: bookwyrm/templates/snippets/create_status/review.html:40 #: bookwyrm/templates/snippets/create_status/review.html:39
msgid "Review:" msgid "Review:"
msgstr "Resenha:" msgstr "Resenha:"
@ -4098,7 +4095,7 @@ msgid "Unfollow"
msgstr "Deixar de seguir" msgstr "Deixar de seguir"
#: bookwyrm/templates/snippets/follow_request_buttons.html:7 #: bookwyrm/templates/snippets/follow_request_buttons.html:7
#: bookwyrm/templates/snippets/join_invitation_buttons.html:8 #: bookwyrm/templates/snippets/join_invitation_buttons.html:9
msgid "Accept" msgid "Accept"
msgstr "Aceitar" msgstr "Aceitar"
@ -4138,15 +4135,15 @@ msgstr[1] "avaliou <em><a href=\"%(path)s\">%(title)s</a></em>: %(display_rating
#: bookwyrm/templates/snippets/generated_status/review_pure_name.html:4 #: bookwyrm/templates/snippets/generated_status/review_pure_name.html:4
#, python-format #, python-format
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(display_rating)s star): %(review_title)s" msgid "Review of \"%(book_title)s\" (%(display_rating)s star): %(review_title)s"
msgid_plural "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(display_rating)s stars): %(review_title)s" msgid_plural "Review of \"%(book_title)s\" (%(display_rating)s stars): %(review_title)s"
msgstr[0] "Resenha de \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(display_rating)s estrela): %(review_title)s" msgstr[0] "Resenha de \"%(book_title)s\" (%(display_rating)s estrela): %(review_title)s"
msgstr[1] "Resenha de \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(display_rating)s estrelas): %(review_title)s" msgstr[1] "Resenha de \"%(book_title)s\" (%(display_rating)s estrelas): %(review_title)s"
#: bookwyrm/templates/snippets/generated_status/review_pure_name.html:12 #: bookwyrm/templates/snippets/generated_status/review_pure_name.html:12
#, python-format #, python-format
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\": %(review_title)s" msgid "Review of \"%(book_title)s\": %(review_title)s"
msgstr "Resenha de \"<a href='%(book_path)s'>%(book_title)s</a>\": %(review_title)s" msgstr "Resenha de \"%(book_title)s\": %(review_title)s"
#: bookwyrm/templates/snippets/goal_form.html:4 #: bookwyrm/templates/snippets/goal_form.html:4
#, python-format #, python-format
@ -4216,11 +4213,11 @@ msgstr "Apenas seguidores"
msgid "Post privacy" msgid "Post privacy"
msgstr "Privacidade da publicação" msgstr "Privacidade da publicação"
#: bookwyrm/templates/snippets/rate_action.html:4 #: bookwyrm/templates/snippets/rate_action.html:5
msgid "Leave a rating" msgid "Leave a rating"
msgstr "Deixe uma avaliação" msgstr "Deixe uma avaliação"
#: bookwyrm/templates/snippets/rate_action.html:19 #: bookwyrm/templates/snippets/rate_action.html:20
msgid "Rate" msgid "Rate"
msgstr "Avaliar" msgstr "Avaliar"
@ -4314,29 +4311,29 @@ msgstr "Remover de %(name)s"
msgid "Finish reading" msgid "Finish reading"
msgstr "Terminar de ler" msgstr "Terminar de ler"
#: bookwyrm/templates/snippets/status/content_status.html:72 #: bookwyrm/templates/snippets/status/content_status.html:73
msgid "Content warning" msgid "Content warning"
msgstr "Aviso de conteúdo" msgstr "Aviso de conteúdo"
#: bookwyrm/templates/snippets/status/content_status.html:79 #: bookwyrm/templates/snippets/status/content_status.html:80
msgid "Show status" msgid "Show status"
msgstr "Mostrar publicação" msgstr "Mostrar publicação"
#: bookwyrm/templates/snippets/status/content_status.html:101 #: bookwyrm/templates/snippets/status/content_status.html:102
#, python-format #, python-format
msgid "(Page %(page)s)" msgid "(Page %(page)s)"
msgstr "(Página %(page)s)" msgstr "(Página %(page)s)"
#: bookwyrm/templates/snippets/status/content_status.html:103 #: bookwyrm/templates/snippets/status/content_status.html:104
#, python-format #, python-format
msgid "(%(percent)s%%)" msgid "(%(percent)s%%)"
msgstr "(%(percent)s%%)" msgstr "(%(percent)s%%)"
#: bookwyrm/templates/snippets/status/content_status.html:125 #: bookwyrm/templates/snippets/status/content_status.html:126
msgid "Open image in new window" msgid "Open image in new window"
msgstr "Abrir imagem em nova janela" msgstr "Abrir imagem em nova janela"
#: bookwyrm/templates/snippets/status/content_status.html:144 #: bookwyrm/templates/snippets/status/content_status.html:145
msgid "Hide status" msgid "Hide status"
msgstr "Esconder publicação" msgstr "Esconder publicação"
@ -4629,7 +4626,7 @@ msgstr "Não há nenhum usuário com este e-mail."
msgid "A password reset link was sent to {email}" msgid "A password reset link was sent to {email}"
msgstr "Um link para redefinição da senha foi enviado para {email}" msgstr "Um link para redefinição da senha foi enviado para {email}"
#: bookwyrm/views/rss_feed.py:35 #: bookwyrm/views/rss_feed.py:34
#, python-brace-format #, python-brace-format
msgid "Status updates from {obj.display_name}" msgid "Status updates from {obj.display_name}"
msgstr "Novas publicações de {obj.display_name}" msgstr "Novas publicações de {obj.display_name}"

Binary file not shown.

View file

@ -2,8 +2,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: bookwyrm\n" "Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-01-17 19:26+0000\n" "POT-Creation-Date: 2022-01-24 17:25+0000\n"
"PO-Revision-Date: 2022-01-17 19:57\n" "PO-Revision-Date: 2022-01-24 18:54\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n" "Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: Portuguese\n" "Language-Team: Portuguese\n"
"Language: pt\n" "Language: pt\n"
@ -56,11 +56,11 @@ msgstr "Título do livro"
#: bookwyrm/forms.py:485 bookwyrm/templates/shelf/shelf.html:155 #: bookwyrm/forms.py:485 bookwyrm/templates/shelf/shelf.html:155
#: bookwyrm/templates/shelf/shelf.html:187 #: bookwyrm/templates/shelf/shelf.html:187
#: bookwyrm/templates/snippets/create_status/review.html:33 #: bookwyrm/templates/snippets/create_status/review.html:32
msgid "Rating" msgid "Rating"
msgstr "Classificação" msgstr "Classificação"
#: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:134 #: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:135
msgid "Sort By" msgid "Sort By"
msgstr "Ordenar Por" msgstr "Ordenar Por"
@ -224,69 +224,69 @@ msgstr "Citações"
msgid "Everything else" msgid "Everything else"
msgstr "Tudo o resto" msgstr "Tudo o resto"
#: bookwyrm/settings.py:121 #: bookwyrm/settings.py:173
msgid "Home Timeline" msgid "Home Timeline"
msgstr "Cronograma Inicial" msgstr "Cronograma Inicial"
#: bookwyrm/settings.py:121 #: bookwyrm/settings.py:173
msgid "Home" msgid "Home"
msgstr "Início" msgstr "Início"
#: bookwyrm/settings.py:122 #: bookwyrm/settings.py:174
msgid "Books Timeline" msgid "Books Timeline"
msgstr "Cronograma de Livros" msgstr "Cronograma de Livros"
#: bookwyrm/settings.py:122 bookwyrm/templates/search/layout.html:21 #: bookwyrm/settings.py:174 bookwyrm/templates/search/layout.html:21
#: bookwyrm/templates/search/layout.html:42 #: bookwyrm/templates/search/layout.html:42
#: bookwyrm/templates/user/layout.html:91 #: bookwyrm/templates/user/layout.html:91
msgid "Books" msgid "Books"
msgstr "Livros" msgstr "Livros"
#: bookwyrm/settings.py:196 #: bookwyrm/settings.py:248
msgid "English" msgid "English"
msgstr "Inglês" msgstr "Inglês"
#: bookwyrm/settings.py:197 #: bookwyrm/settings.py:249
msgid "Deutsch (German)" msgid "Deutsch (German)"
msgstr "Deutsch (Alemão)" msgstr "Deutsch (Alemão)"
#: bookwyrm/settings.py:198 #: bookwyrm/settings.py:250
msgid "Español (Spanish)" msgid "Español (Spanish)"
msgstr "Español (Espanhol)" msgstr "Español (Espanhol)"
#: bookwyrm/settings.py:199 #: bookwyrm/settings.py:251
msgid "Galego (Galician)" msgid "Galego (Galician)"
msgstr "Galego (Galician)" msgstr "Galego (Galician)"
#: bookwyrm/settings.py:200 #: bookwyrm/settings.py:252
msgid "Italiano (Italian)" msgid "Italiano (Italian)"
msgstr "Italiano (Italiano)" msgstr "Italiano (Italiano)"
#: bookwyrm/settings.py:201 #: bookwyrm/settings.py:253
msgid "Français (French)" msgid "Français (French)"
msgstr "Français (Francês)" msgstr "Français (Francês)"
#: bookwyrm/settings.py:202 #: bookwyrm/settings.py:254
msgid "Lietuvių (Lithuanian)" msgid "Lietuvių (Lithuanian)"
msgstr "Lietuvių (lituano)" msgstr "Lietuvių (lituano)"
#: bookwyrm/settings.py:203 #: bookwyrm/settings.py:255
msgid "Norsk (Norwegian)" msgid "Norsk (Norwegian)"
msgstr "Norsk (Norueguês)" msgstr "Norsk (Norueguês)"
#: bookwyrm/settings.py:204 #: bookwyrm/settings.py:256
msgid "Português do Brasil (Brazilian Portuguese)" msgid "Português do Brasil (Brazilian Portuguese)"
msgstr "Português do Brasil (Português brasileiro)" msgstr "Português do Brasil (Português brasileiro)"
#: bookwyrm/settings.py:205 #: bookwyrm/settings.py:257
msgid "Português Europeu (European Portuguese)" msgid "Português Europeu (European Portuguese)"
msgstr "Português (Português Europeu)" msgstr "Português (Português Europeu)"
#: bookwyrm/settings.py:206 #: bookwyrm/settings.py:258
msgid "简体中文 (Simplified Chinese)" msgid "简体中文 (Simplified Chinese)"
msgstr "简体中文 (Chinês simplificado)" msgstr "简体中文 (Chinês simplificado)"
#: bookwyrm/settings.py:207 #: bookwyrm/settings.py:259
msgid "繁體中文 (Traditional Chinese)" msgid "繁體中文 (Traditional Chinese)"
msgstr "繁體中文 (Chinês tradicional)" msgstr "繁體中文 (Chinês tradicional)"
@ -315,56 +315,54 @@ msgstr "Ocorreu um erro! Pedimos desculpa por isto."
msgid "About" msgid "About"
msgstr "Sobre" msgstr "Sobre"
#: bookwyrm/templates/about/about.html:18 #: bookwyrm/templates/about/about.html:19
#: bookwyrm/templates/get_started/layout.html:20 #: bookwyrm/templates/get_started/layout.html:20
#, python-format #, python-format
msgid "Welcome to %(site_name)s!" msgid "Welcome to %(site_name)s!"
msgstr "Bem-vindo(a) ao %(site_name)s!" msgstr "Bem-vindo(a) ao %(site_name)s!"
#: bookwyrm/templates/about/about.html:22 #: bookwyrm/templates/about/about.html:23
#, python-format #, python-format
msgid "%(site_name)s is part of <em>BookWyrm</em>, a network of independent, self-directed communities for readers. While you can interact seamlessly with users anywhere in the <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">BookWyrm network</a>, this community is unique." msgid "%(site_name)s is part of <em>BookWyrm</em>, a network of independent, self-directed communities for readers. While you can interact seamlessly with users anywhere in the <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">BookWyrm network</a>, this community is unique."
msgstr "%(site_name)s faz parte do <em>BookWyrm</em>, uma rede de comunidades independentes, focada nos leitores. Enquanto podes interagir continuamente com utilizadores por todo o lado na <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">Rede Boomwyrm</a>, esta comunidade é única." msgstr "%(site_name)s faz parte do <em>BookWyrm</em>, uma rede de comunidades independentes, focada nos leitores. Enquanto podes interagir continuamente com utilizadores por todo o lado na <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">Rede Boomwyrm</a>, esta comunidade é única."
#: bookwyrm/templates/about/about.html:39 #: bookwyrm/templates/about/about.html:40
#, python-format #, python-format
msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> is %(site_name)s's most beloved book, with an average rating of %(rating)s out of 5." msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> is %(site_name)s's most beloved book, with an average rating of %(rating)s out of 5."
msgstr "" msgstr ""
#: bookwyrm/templates/about/about.html:58 #: bookwyrm/templates/about/about.html:59
#, python-format #, python-format
msgid "More %(site_name)s users want to read <a href=\"%(book_path)s\"><em>%(title)s</em></a> than any other book." msgid "More %(site_name)s users want to read <a href=\"%(book_path)s\"><em>%(title)s</em></a> than any other book."
msgstr "" msgstr ""
#: bookwyrm/templates/about/about.html:77 #: bookwyrm/templates/about/about.html:78
#, python-format #, python-format
msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> has the most divisive ratings of any book on %(site_name)s." msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> has the most divisive ratings of any book on %(site_name)s."
msgstr "" msgstr ""
#: bookwyrm/templates/about/about.html:88 #: bookwyrm/templates/about/about.html:89
msgid "Track your reading, talk about books, write reviews, and discover what to read next. Always ad-free, anti-corporate, and community-oriented, BookWyrm is human-scale software, designed to stay small and personal. If you have feature requests, bug reports, or grand dreams, <a href='https://joinbookwyrm.com/get-involved' target='_blank'>reach out</a> and make yourself heard." msgid "Track your reading, talk about books, write reviews, and discover what to read next. Always ad-free, anti-corporate, and community-oriented, BookWyrm is human-scale software, designed to stay small and personal. If you have feature requests, bug reports, or grand dreams, <a href='https://joinbookwyrm.com/get-involved' target='_blank'>reach out</a> and make yourself heard."
msgstr "" msgstr ""
#: bookwyrm/templates/about/about.html:95 #: bookwyrm/templates/about/about.html:96
msgid "Meet your admins" msgid "Meet your admins"
msgstr "Conheça os nossos administradores" msgstr "Conheça os nossos administradores"
#: bookwyrm/templates/about/about.html:98 #: bookwyrm/templates/about/about.html:99
#, python-format #, python-format
msgid "\n" msgid "%(site_name)s's moderators and administrators keep the site up and running, enforce the <a href=\"coc_path\">code of conduct</a>, and respond when users report spam and bad behavior."
" %(site_name)s's moderators and administrators keep the site up and running, enforce the <a href=\"coc_path\">code of conduct</a>, and respond when users report spam and bad behavior.\n"
" "
msgstr "" msgstr ""
#: bookwyrm/templates/about/about.html:112 #: bookwyrm/templates/about/about.html:113
msgid "Moderator" msgid "Moderator"
msgstr "Moderador" msgstr "Moderador"
#: bookwyrm/templates/about/about.html:114 bookwyrm/templates/layout.html:131 #: bookwyrm/templates/about/about.html:115 bookwyrm/templates/layout.html:131
msgid "Admin" msgid "Admin"
msgstr "Admin" msgstr "Admin"
#: bookwyrm/templates/about/about.html:130 #: bookwyrm/templates/about/about.html:131
#: bookwyrm/templates/settings/users/user_moderation_actions.html:14 #: bookwyrm/templates/settings/users/user_moderation_actions.html:14
#: bookwyrm/templates/snippets/status/status_options.html:35 #: bookwyrm/templates/snippets/status/status_options.html:35
#: bookwyrm/templates/snippets/user_options.html:13 #: bookwyrm/templates/snippets/user_options.html:13
@ -426,7 +424,7 @@ msgid "Copy address"
msgstr "Copiar endereço" msgstr "Copiar endereço"
#: bookwyrm/templates/annual_summary/layout.html:68 #: bookwyrm/templates/annual_summary/layout.html:68
#: bookwyrm/templates/lists/list.html:230 #: bookwyrm/templates/lists/list.html:231
msgid "Copied!" msgid "Copied!"
msgstr "Copiado!" msgstr "Copiado!"
@ -495,7 +493,7 @@ msgstr "A sua menor leitura este ano…"
#: bookwyrm/templates/annual_summary/layout.html:245 #: bookwyrm/templates/annual_summary/layout.html:245
#: bookwyrm/templates/book/book.html:47 #: bookwyrm/templates/book/book.html:47
#: bookwyrm/templates/discover/large-book.html:22 #: bookwyrm/templates/discover/large-book.html:22
#: bookwyrm/templates/landing/large-book.html:25 #: bookwyrm/templates/landing/large-book.html:26
#: bookwyrm/templates/landing/small-book.html:18 #: bookwyrm/templates/landing/small-book.html:18
msgid "by" msgid "by"
msgstr "por" msgstr "por"
@ -731,9 +729,9 @@ msgstr "Carregar os dados irá conectar a <strong>%(source_name)s</strong> e ver
#: bookwyrm/templates/author/sync_modal.html:22 #: bookwyrm/templates/author/sync_modal.html:22
#: bookwyrm/templates/book/edit/edit_book.html:108 #: bookwyrm/templates/book/edit/edit_book.html:108
#: bookwyrm/templates/book/sync_modal.html:22 #: bookwyrm/templates/book/sync_modal.html:22
#: bookwyrm/templates/groups/members.html:30 #: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42 #: bookwyrm/templates/landing/password_reset.html:42
#: bookwyrm/templates/snippets/remove_from_group_button.html:16 #: bookwyrm/templates/snippets/remove_from_group_button.html:17
msgid "Confirm" msgid "Confirm"
msgstr "Confirmar" msgstr "Confirmar"
@ -817,8 +815,8 @@ msgid "Places"
msgstr "Lugares" msgstr "Lugares"
#: bookwyrm/templates/book/book.html:348 #: bookwyrm/templates/book/book.html:348
#: bookwyrm/templates/groups/group.html:20 bookwyrm/templates/layout.html:74 #: bookwyrm/templates/groups/group.html:19 bookwyrm/templates/layout.html:74
#: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:10 #: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:11
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
#: bookwyrm/templates/search/layout.html:25 #: bookwyrm/templates/search/layout.html:25
#: bookwyrm/templates/search/layout.html:50 #: bookwyrm/templates/search/layout.html:50
@ -832,7 +830,7 @@ msgstr "Adicionar à lista"
#: bookwyrm/templates/book/book.html:369 #: bookwyrm/templates/book/book.html:369
#: bookwyrm/templates/book/cover_add_modal.html:31 #: bookwyrm/templates/book/cover_add_modal.html:31
#: bookwyrm/templates/lists/list.html:208 #: bookwyrm/templates/lists/list.html:209
#: bookwyrm/templates/settings/email_blocklist/domain_form.html:24 #: bookwyrm/templates/settings/email_blocklist/domain_form.html:24
#: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:31 #: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:31
msgid "Add" msgid "Add"
@ -934,7 +932,7 @@ msgid "Back"
msgstr "Voltar" msgstr "Voltar"
#: bookwyrm/templates/book/edit/edit_book_form.html:21 #: bookwyrm/templates/book/edit/edit_book_form.html:21
#: bookwyrm/templates/snippets/create_status/review.html:16 #: bookwyrm/templates/snippets/create_status/review.html:15
msgid "Title:" msgid "Title:"
msgstr "Título:" msgstr "Título:"
@ -1649,7 +1647,7 @@ msgid "What are you reading?"
msgstr "O que andas a ler?" msgstr "O que andas a ler?"
#: bookwyrm/templates/get_started/books.html:9 #: bookwyrm/templates/get_started/books.html:9
#: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:162 #: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:163
msgid "Search for a book" msgid "Search for a book"
msgstr "Pesquisar por um livro" msgstr "Pesquisar por um livro"
@ -1667,9 +1665,9 @@ msgstr "Podes adicionar livros quando começas a usar %(site_name)s."
#: bookwyrm/templates/get_started/books.html:17 #: bookwyrm/templates/get_started/books.html:17
#: bookwyrm/templates/get_started/users.html:18 #: bookwyrm/templates/get_started/users.html:18
#: bookwyrm/templates/get_started/users.html:19 #: bookwyrm/templates/get_started/users.html:19
#: bookwyrm/templates/groups/members.html:16 #: bookwyrm/templates/groups/members.html:15
#: bookwyrm/templates/groups/members.html:17 bookwyrm/templates/layout.html:53 #: bookwyrm/templates/groups/members.html:16 bookwyrm/templates/layout.html:53
#: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:166 #: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:167
#: bookwyrm/templates/search/layout.html:4 #: bookwyrm/templates/search/layout.html:4
#: bookwyrm/templates/search/layout.html:9 #: bookwyrm/templates/search/layout.html:9
msgid "Search" msgid "Search"
@ -1685,7 +1683,7 @@ msgid "Popular on %(site_name)s"
msgstr "Populares em %(site_name)s" msgstr "Populares em %(site_name)s"
#: bookwyrm/templates/get_started/books.html:58 #: bookwyrm/templates/get_started/books.html:58
#: bookwyrm/templates/lists/list.html:179 #: bookwyrm/templates/lists/list.html:180
msgid "No books found" msgid "No books found"
msgstr "Nenhum livro encontrado" msgstr "Nenhum livro encontrado"
@ -1790,7 +1788,7 @@ msgstr "Esta ação não pode ser desfeita"
#: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:49 #: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:49
#: bookwyrm/templates/settings/ip_blocklist/ip_blocklist.html:36 #: bookwyrm/templates/settings/ip_blocklist/ip_blocklist.html:36
#: bookwyrm/templates/snippets/follow_request_buttons.html:12 #: bookwyrm/templates/snippets/follow_request_buttons.html:12
#: bookwyrm/templates/snippets/join_invitation_buttons.html:13 #: bookwyrm/templates/snippets/join_invitation_buttons.html:14
msgid "Delete" msgid "Delete"
msgstr "Apagar" msgstr "Apagar"
@ -1810,17 +1808,17 @@ msgstr "Descrição do Grupo:"
msgid "Delete group" msgid "Delete group"
msgstr "Apagar grupo" msgstr "Apagar grupo"
#: bookwyrm/templates/groups/group.html:22 #: bookwyrm/templates/groups/group.html:21
msgid "Members of this group can create group-curated lists." msgid "Members of this group can create group-curated lists."
msgstr "Os membros deste grupo podem criar listas administradas apenas pelo grupo." msgstr "Os membros deste grupo podem criar listas administradas apenas pelo grupo."
#: bookwyrm/templates/groups/group.html:27 #: bookwyrm/templates/groups/group.html:26
#: bookwyrm/templates/lists/create_form.html:5 #: bookwyrm/templates/lists/create_form.html:5
#: bookwyrm/templates/lists/lists.html:20 #: bookwyrm/templates/lists/lists.html:20
msgid "Create List" msgid "Create List"
msgstr "Criar Lista" msgstr "Criar Lista"
#: bookwyrm/templates/groups/group.html:40 #: bookwyrm/templates/groups/group.html:39
msgid "This group has no lists" msgid "This group has no lists"
msgstr "Este grupo não tem listas" msgstr "Este grupo não tem listas"
@ -1828,15 +1826,15 @@ msgstr "Este grupo não tem listas"
msgid "Edit group" msgid "Edit group"
msgstr "Editar grupo" msgstr "Editar grupo"
#: bookwyrm/templates/groups/members.html:12 #: bookwyrm/templates/groups/members.html:11
msgid "Search to add a user" msgid "Search to add a user"
msgstr "Procura para adicionares um utilizador" msgstr "Procura para adicionares um utilizador"
#: bookwyrm/templates/groups/members.html:33 #: bookwyrm/templates/groups/members.html:32
msgid "Leave group" msgid "Leave group"
msgstr "Sair do grupo" msgstr "Sair do grupo"
#: bookwyrm/templates/groups/members.html:55 #: bookwyrm/templates/groups/members.html:54
#: bookwyrm/templates/groups/suggested_users.html:35 #: bookwyrm/templates/groups/suggested_users.html:35
#: bookwyrm/templates/snippets/suggested_users.html:31 #: bookwyrm/templates/snippets/suggested_users.html:31
#: bookwyrm/templates/user/user_preview.html:36 #: bookwyrm/templates/user/user_preview.html:36
@ -2293,18 +2291,18 @@ msgstr "Apagar esta lista?"
msgid "Edit List" msgid "Edit List"
msgstr "Editar lista" msgstr "Editar lista"
#: bookwyrm/templates/lists/embed-list.html:7 #: bookwyrm/templates/lists/embed-list.html:8
#, python-format #, python-format
msgid "%(list_name)s, a list by %(owner)s" msgid "%(list_name)s, a list by %(owner)s"
msgstr "%(list_name)s, uma lista de %(owner)s" msgstr "%(list_name)s, uma lista de %(owner)s"
#: bookwyrm/templates/lists/embed-list.html:17 #: bookwyrm/templates/lists/embed-list.html:18
#, python-format #, python-format
msgid "on <a href=\"/\">%(site_name)s</a>" msgid "on <a href=\"/\">%(site_name)s</a>"
msgstr "em <a href=\"/\">%(site_name)s</a>" msgstr "em <a href=\"/\">%(site_name)s</a>"
#: bookwyrm/templates/lists/embed-list.html:26 #: bookwyrm/templates/lists/embed-list.html:27
#: bookwyrm/templates/lists/list.html:42 #: bookwyrm/templates/lists/list.html:43
msgid "This list is currently empty" msgid "This list is currently empty"
msgstr "Esta lista está vazia" msgstr "Esta lista está vazia"
@ -2365,76 +2363,76 @@ msgstr "Criar um Grupo"
msgid "Delete list" msgid "Delete list"
msgstr "Apagar lista" msgstr "Apagar lista"
#: bookwyrm/templates/lists/list.html:34 #: bookwyrm/templates/lists/list.html:35
msgid "You successfully suggested a book for this list!" msgid "You successfully suggested a book for this list!"
msgstr "Sugeriste um livro para esta lista com sucesso!" msgstr "Sugeriste um livro para esta lista com sucesso!"
#: bookwyrm/templates/lists/list.html:36 #: bookwyrm/templates/lists/list.html:37
msgid "You successfully added a book to this list!" msgid "You successfully added a book to this list!"
msgstr "Adicionaste um livro a esta lista com sucesso!" msgstr "Adicionaste um livro a esta lista com sucesso!"
#: bookwyrm/templates/lists/list.html:80 #: bookwyrm/templates/lists/list.html:81
#, python-format #, python-format
msgid "Added by <a href=\"%(user_path)s\">%(username)s</a>" msgid "Added by <a href=\"%(user_path)s\">%(username)s</a>"
msgstr "Adicionado por <a href=\"%(user_path)s\">%(username)s</a>" msgstr "Adicionado por <a href=\"%(user_path)s\">%(username)s</a>"
#: bookwyrm/templates/lists/list.html:95 #: bookwyrm/templates/lists/list.html:96
msgid "List position" msgid "List position"
msgstr "Posição da lista" msgstr "Posição da lista"
#: bookwyrm/templates/lists/list.html:101 #: bookwyrm/templates/lists/list.html:102
#: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:21 #: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:21
msgid "Set" msgid "Set"
msgstr "Definir" msgstr "Definir"
#: bookwyrm/templates/lists/list.html:116 #: bookwyrm/templates/lists/list.html:117
#: bookwyrm/templates/snippets/remove_from_group_button.html:19 #: bookwyrm/templates/snippets/remove_from_group_button.html:20
msgid "Remove" msgid "Remove"
msgstr "Remover" msgstr "Remover"
#: bookwyrm/templates/lists/list.html:130 #: bookwyrm/templates/lists/list.html:131
#: bookwyrm/templates/lists/list.html:147 #: bookwyrm/templates/lists/list.html:148
msgid "Sort List" msgid "Sort List"
msgstr "Ordenar lista" msgstr "Ordenar lista"
#: bookwyrm/templates/lists/list.html:140 #: bookwyrm/templates/lists/list.html:141
msgid "Direction" msgid "Direction"
msgstr "Direcção" msgstr "Direcção"
#: bookwyrm/templates/lists/list.html:154 #: bookwyrm/templates/lists/list.html:155
msgid "Add Books" msgid "Add Books"
msgstr "Adicionar Livros" msgstr "Adicionar Livros"
#: bookwyrm/templates/lists/list.html:156 #: bookwyrm/templates/lists/list.html:157
msgid "Suggest Books" msgid "Suggest Books"
msgstr "Sugerir Livros" msgstr "Sugerir Livros"
#: bookwyrm/templates/lists/list.html:167 #: bookwyrm/templates/lists/list.html:168
msgid "search" msgid "search"
msgstr "pesquisar" msgstr "pesquisar"
#: bookwyrm/templates/lists/list.html:173 #: bookwyrm/templates/lists/list.html:174
msgid "Clear search" msgid "Clear search"
msgstr "Limpar Pesquisa" msgstr "Limpar Pesquisa"
#: bookwyrm/templates/lists/list.html:178 #: bookwyrm/templates/lists/list.html:179
#, python-format #, python-format
msgid "No books found matching the query \"%(query)s\"" msgid "No books found matching the query \"%(query)s\""
msgstr "Nenhum livro encontrado que corresponda à consulta \"%(query)s\"" msgstr "Nenhum livro encontrado que corresponda à consulta \"%(query)s\""
#: bookwyrm/templates/lists/list.html:210 #: bookwyrm/templates/lists/list.html:211
msgid "Suggest" msgid "Suggest"
msgstr "Sugerir" msgstr "Sugerir"
#: bookwyrm/templates/lists/list.html:221 #: bookwyrm/templates/lists/list.html:222
msgid "Embed this list on a website" msgid "Embed this list on a website"
msgstr "Incorporar esta lista num website" msgstr "Incorporar esta lista num website"
#: bookwyrm/templates/lists/list.html:229 #: bookwyrm/templates/lists/list.html:230
msgid "Copy embed code" msgid "Copy embed code"
msgstr "Copiar código de incorporação" msgstr "Copiar código de incorporação"
#: bookwyrm/templates/lists/list.html:231 #: bookwyrm/templates/lists/list.html:232
#, python-format #, python-format
msgid "%(list_name)s, a list by %(owner)s on %(site_name)s" msgid "%(list_name)s, a list by %(owner)s on %(site_name)s"
msgstr "%(list_name)s, uma lista de %(owner)s no %(site_name)s" msgstr "%(list_name)s, uma lista de %(owner)s no %(site_name)s"
@ -3910,15 +3908,15 @@ msgstr "Concluído"
msgid "This shelf is empty." msgid "This shelf is empty."
msgstr "Esta prateleira está vazia." msgstr "Esta prateleira está vazia."
#: bookwyrm/templates/snippets/add_to_group_button.html:15 #: bookwyrm/templates/snippets/add_to_group_button.html:16
msgid "Invite" msgid "Invite"
msgstr "Convidar" msgstr "Convidar"
#: bookwyrm/templates/snippets/add_to_group_button.html:24 #: bookwyrm/templates/snippets/add_to_group_button.html:25
msgid "Uninvite" msgid "Uninvite"
msgstr "Cancelar convite" msgstr "Cancelar convite"
#: bookwyrm/templates/snippets/add_to_group_button.html:28 #: bookwyrm/templates/snippets/add_to_group_button.html:29
#, python-format #, python-format
msgid "Remove @%(username)s" msgid "Remove @%(username)s"
msgstr "Remover %(username)s" msgstr "Remover %(username)s"
@ -4006,7 +4004,7 @@ msgstr "Alerta de spoiler!"
msgid "Include spoiler alert" msgid "Include spoiler alert"
msgstr "Incluir aviso de spoiler" msgstr "Incluir aviso de spoiler"
#: bookwyrm/templates/snippets/create_status/layout.html:48 #: bookwyrm/templates/snippets/create_status/layout.html:47
#: bookwyrm/templates/snippets/reading_modals/form.html:7 #: bookwyrm/templates/snippets/reading_modals/form.html:7
msgid "Comment:" msgid "Comment:"
msgstr "Comentar:" msgstr "Comentar:"
@ -4015,33 +4013,33 @@ msgstr "Comentar:"
msgid "Post" msgid "Post"
msgstr "Publicação" msgstr "Publicação"
#: bookwyrm/templates/snippets/create_status/quotation.html:17 #: bookwyrm/templates/snippets/create_status/quotation.html:16
msgid "Quote:" msgid "Quote:"
msgstr "Citação:" msgstr "Citação:"
#: bookwyrm/templates/snippets/create_status/quotation.html:25 #: bookwyrm/templates/snippets/create_status/quotation.html:24
#, python-format #, python-format
msgid "An excerpt from '%(book_title)s'" msgid "An excerpt from '%(book_title)s'"
msgstr "Um excerto de '%(book_title)s'" msgstr "Um excerto de '%(book_title)s'"
#: bookwyrm/templates/snippets/create_status/quotation.html:32 #: bookwyrm/templates/snippets/create_status/quotation.html:31
msgid "Position:" msgid "Position:"
msgstr "Posição:" msgstr "Posição:"
#: bookwyrm/templates/snippets/create_status/quotation.html:45 #: bookwyrm/templates/snippets/create_status/quotation.html:44
msgid "On page:" msgid "On page:"
msgstr "Na página:" msgstr "Na página:"
#: bookwyrm/templates/snippets/create_status/quotation.html:51 #: bookwyrm/templates/snippets/create_status/quotation.html:50
msgid "At percent:" msgid "At percent:"
msgstr "Na percentagem:" msgstr "Na percentagem:"
#: bookwyrm/templates/snippets/create_status/review.html:25 #: bookwyrm/templates/snippets/create_status/review.html:24
#, python-format #, python-format
msgid "Your review of '%(book_title)s'" msgid "Your review of '%(book_title)s'"
msgstr "A tua critica de '%(book_title)s'" msgstr "A tua critica de '%(book_title)s'"
#: bookwyrm/templates/snippets/create_status/review.html:40 #: bookwyrm/templates/snippets/create_status/review.html:39
msgid "Review:" msgid "Review:"
msgstr "Critica:" msgstr "Critica:"
@ -4095,7 +4093,7 @@ msgid "Unfollow"
msgstr "Deixar de seguir" msgstr "Deixar de seguir"
#: bookwyrm/templates/snippets/follow_request_buttons.html:7 #: bookwyrm/templates/snippets/follow_request_buttons.html:7
#: bookwyrm/templates/snippets/join_invitation_buttons.html:8 #: bookwyrm/templates/snippets/join_invitation_buttons.html:9
msgid "Accept" msgid "Accept"
msgstr "Aceitar" msgstr "Aceitar"
@ -4135,14 +4133,14 @@ msgstr[1] "avaliado <em><a href=\"%(path)s\">%(title)s</a></em>: %(display_ratin
#: bookwyrm/templates/snippets/generated_status/review_pure_name.html:4 #: bookwyrm/templates/snippets/generated_status/review_pure_name.html:4
#, python-format #, python-format
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(display_rating)s star): %(review_title)s" msgid "Review of \"%(book_title)s\" (%(display_rating)s star): %(review_title)s"
msgid_plural "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(display_rating)s stars): %(review_title)s" msgid_plural "Review of \"%(book_title)s\" (%(display_rating)s stars): %(review_title)s"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: bookwyrm/templates/snippets/generated_status/review_pure_name.html:12 #: bookwyrm/templates/snippets/generated_status/review_pure_name.html:12
#, python-format #, python-format
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\": %(review_title)s" msgid "Review of \"%(book_title)s\": %(review_title)s"
msgstr "" msgstr ""
#: bookwyrm/templates/snippets/goal_form.html:4 #: bookwyrm/templates/snippets/goal_form.html:4
@ -4213,11 +4211,11 @@ msgstr "Apenas seguidores"
msgid "Post privacy" msgid "Post privacy"
msgstr "Privacidade de publicação" msgstr "Privacidade de publicação"
#: bookwyrm/templates/snippets/rate_action.html:4 #: bookwyrm/templates/snippets/rate_action.html:5
msgid "Leave a rating" msgid "Leave a rating"
msgstr "Deixar uma avaliação" msgstr "Deixar uma avaliação"
#: bookwyrm/templates/snippets/rate_action.html:19 #: bookwyrm/templates/snippets/rate_action.html:20
msgid "Rate" msgid "Rate"
msgstr "Avaliação" msgstr "Avaliação"
@ -4311,29 +4309,29 @@ msgstr "Remover de %(name)s"
msgid "Finish reading" msgid "Finish reading"
msgstr "Terminar leitura" msgstr "Terminar leitura"
#: bookwyrm/templates/snippets/status/content_status.html:72 #: bookwyrm/templates/snippets/status/content_status.html:73
msgid "Content warning" msgid "Content warning"
msgstr "Aviso de Conteúdo" msgstr "Aviso de Conteúdo"
#: bookwyrm/templates/snippets/status/content_status.html:79 #: bookwyrm/templates/snippets/status/content_status.html:80
msgid "Show status" msgid "Show status"
msgstr "Mostrar o estado" msgstr "Mostrar o estado"
#: bookwyrm/templates/snippets/status/content_status.html:101 #: bookwyrm/templates/snippets/status/content_status.html:102
#, python-format #, python-format
msgid "(Page %(page)s)" msgid "(Page %(page)s)"
msgstr "(Página %(page)s)" msgstr "(Página %(page)s)"
#: bookwyrm/templates/snippets/status/content_status.html:103 #: bookwyrm/templates/snippets/status/content_status.html:104
#, python-format #, python-format
msgid "(%(percent)s%%)" msgid "(%(percent)s%%)"
msgstr "(%(percent)s%%)" msgstr "(%(percent)s%%)"
#: bookwyrm/templates/snippets/status/content_status.html:125 #: bookwyrm/templates/snippets/status/content_status.html:126
msgid "Open image in new window" msgid "Open image in new window"
msgstr "Abrir imagem numa nova janela" msgstr "Abrir imagem numa nova janela"
#: bookwyrm/templates/snippets/status/content_status.html:144 #: bookwyrm/templates/snippets/status/content_status.html:145
msgid "Hide status" msgid "Hide status"
msgstr "Ocultar estado" msgstr "Ocultar estado"
@ -4626,7 +4624,7 @@ msgstr "Não foi encontrado nenhum utilizador com este E-Mail."
msgid "A password reset link was sent to {email}" msgid "A password reset link was sent to {email}"
msgstr "Um link para redefinir a palavra-passe foi enviado para este {email}" msgstr "Um link para redefinir a palavra-passe foi enviado para este {email}"
#: bookwyrm/views/rss_feed.py:35 #: bookwyrm/views/rss_feed.py:34
#, python-brace-format #, python-brace-format
msgid "Status updates from {obj.display_name}" msgid "Status updates from {obj.display_name}"
msgstr "Actualização de estado fornecido por {obj.display_name}" msgstr "Actualização de estado fornecido por {obj.display_name}"

Binary file not shown.

File diff suppressed because it is too large Load diff

View file

@ -2,8 +2,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: bookwyrm\n" "Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-01-17 19:26+0000\n" "POT-Creation-Date: 2022-01-24 17:25+0000\n"
"PO-Revision-Date: 2022-01-17 19:57\n" "PO-Revision-Date: 2022-01-24 18:54\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n" "Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: Chinese Simplified\n" "Language-Team: Chinese Simplified\n"
"Language: zh\n" "Language: zh\n"
@ -56,11 +56,11 @@ msgstr "书名"
#: bookwyrm/forms.py:485 bookwyrm/templates/shelf/shelf.html:155 #: bookwyrm/forms.py:485 bookwyrm/templates/shelf/shelf.html:155
#: bookwyrm/templates/shelf/shelf.html:187 #: bookwyrm/templates/shelf/shelf.html:187
#: bookwyrm/templates/snippets/create_status/review.html:33 #: bookwyrm/templates/snippets/create_status/review.html:32
msgid "Rating" msgid "Rating"
msgstr "评价" msgstr "评价"
#: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:134 #: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:135
msgid "Sort By" msgid "Sort By"
msgstr "排序方式" msgstr "排序方式"
@ -224,69 +224,69 @@ msgstr "引用"
msgid "Everything else" msgid "Everything else"
msgstr "所有其它内容" msgstr "所有其它内容"
#: bookwyrm/settings.py:121 #: bookwyrm/settings.py:173
msgid "Home Timeline" msgid "Home Timeline"
msgstr "主页时间线" msgstr "主页时间线"
#: bookwyrm/settings.py:121 #: bookwyrm/settings.py:173
msgid "Home" msgid "Home"
msgstr "主页" msgstr "主页"
#: bookwyrm/settings.py:122 #: bookwyrm/settings.py:174
msgid "Books Timeline" msgid "Books Timeline"
msgstr "书目时间线" msgstr "书目时间线"
#: bookwyrm/settings.py:122 bookwyrm/templates/search/layout.html:21 #: bookwyrm/settings.py:174 bookwyrm/templates/search/layout.html:21
#: bookwyrm/templates/search/layout.html:42 #: bookwyrm/templates/search/layout.html:42
#: bookwyrm/templates/user/layout.html:91 #: bookwyrm/templates/user/layout.html:91
msgid "Books" msgid "Books"
msgstr "书目" msgstr "书目"
#: bookwyrm/settings.py:196 #: bookwyrm/settings.py:248
msgid "English" msgid "English"
msgstr "English英语" msgstr "English英语"
#: bookwyrm/settings.py:197 #: bookwyrm/settings.py:249
msgid "Deutsch (German)" msgid "Deutsch (German)"
msgstr "Deutsch德语" msgstr "Deutsch德语"
#: bookwyrm/settings.py:198 #: bookwyrm/settings.py:250
msgid "Español (Spanish)" msgid "Español (Spanish)"
msgstr "Español西班牙语" msgstr "Español西班牙语"
#: bookwyrm/settings.py:199 #: bookwyrm/settings.py:251
msgid "Galego (Galician)" msgid "Galego (Galician)"
msgstr "Galego加利西亚语" msgstr "Galego加利西亚语"
#: bookwyrm/settings.py:200 #: bookwyrm/settings.py:252
msgid "Italiano (Italian)" msgid "Italiano (Italian)"
msgstr "" msgstr ""
#: bookwyrm/settings.py:201 #: bookwyrm/settings.py:253
msgid "Français (French)" msgid "Français (French)"
msgstr "Français法语" msgstr "Français法语"
#: bookwyrm/settings.py:202 #: bookwyrm/settings.py:254
msgid "Lietuvių (Lithuanian)" msgid "Lietuvių (Lithuanian)"
msgstr "Lietuvių立陶宛语" msgstr "Lietuvių立陶宛语"
#: bookwyrm/settings.py:203 #: bookwyrm/settings.py:255
msgid "Norsk (Norwegian)" msgid "Norsk (Norwegian)"
msgstr "" msgstr ""
#: bookwyrm/settings.py:204 #: bookwyrm/settings.py:256
msgid "Português do Brasil (Brazilian Portuguese)" msgid "Português do Brasil (Brazilian Portuguese)"
msgstr "" msgstr ""
#: bookwyrm/settings.py:205 #: bookwyrm/settings.py:257
msgid "Português Europeu (European Portuguese)" msgid "Português Europeu (European Portuguese)"
msgstr "" msgstr ""
#: bookwyrm/settings.py:206 #: bookwyrm/settings.py:258
msgid "简体中文 (Simplified Chinese)" msgid "简体中文 (Simplified Chinese)"
msgstr "简体中文" msgstr "简体中文"
#: bookwyrm/settings.py:207 #: bookwyrm/settings.py:259
msgid "繁體中文 (Traditional Chinese)" msgid "繁體中文 (Traditional Chinese)"
msgstr "繁體中文(繁体中文)" msgstr "繁體中文(繁体中文)"
@ -315,56 +315,54 @@ msgstr "某些东西出错了!对不起啦。"
msgid "About" msgid "About"
msgstr "" msgstr ""
#: bookwyrm/templates/about/about.html:18 #: bookwyrm/templates/about/about.html:19
#: bookwyrm/templates/get_started/layout.html:20 #: bookwyrm/templates/get_started/layout.html:20
#, python-format #, python-format
msgid "Welcome to %(site_name)s!" msgid "Welcome to %(site_name)s!"
msgstr "欢迎来到 %(site_name)s" msgstr "欢迎来到 %(site_name)s"
#: bookwyrm/templates/about/about.html:22 #: bookwyrm/templates/about/about.html:23
#, python-format #, python-format
msgid "%(site_name)s is part of <em>BookWyrm</em>, a network of independent, self-directed communities for readers. While you can interact seamlessly with users anywhere in the <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">BookWyrm network</a>, this community is unique." msgid "%(site_name)s is part of <em>BookWyrm</em>, a network of independent, self-directed communities for readers. While you can interact seamlessly with users anywhere in the <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">BookWyrm network</a>, this community is unique."
msgstr "" msgstr ""
#: bookwyrm/templates/about/about.html:39 #: bookwyrm/templates/about/about.html:40
#, python-format #, python-format
msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> is %(site_name)s's most beloved book, with an average rating of %(rating)s out of 5." msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> is %(site_name)s's most beloved book, with an average rating of %(rating)s out of 5."
msgstr "" msgstr ""
#: bookwyrm/templates/about/about.html:58 #: bookwyrm/templates/about/about.html:59
#, python-format #, python-format
msgid "More %(site_name)s users want to read <a href=\"%(book_path)s\"><em>%(title)s</em></a> than any other book." msgid "More %(site_name)s users want to read <a href=\"%(book_path)s\"><em>%(title)s</em></a> than any other book."
msgstr "" msgstr ""
#: bookwyrm/templates/about/about.html:77 #: bookwyrm/templates/about/about.html:78
#, python-format #, python-format
msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> has the most divisive ratings of any book on %(site_name)s." msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> has the most divisive ratings of any book on %(site_name)s."
msgstr "" msgstr ""
#: bookwyrm/templates/about/about.html:88 #: bookwyrm/templates/about/about.html:89
msgid "Track your reading, talk about books, write reviews, and discover what to read next. Always ad-free, anti-corporate, and community-oriented, BookWyrm is human-scale software, designed to stay small and personal. If you have feature requests, bug reports, or grand dreams, <a href='https://joinbookwyrm.com/get-involved' target='_blank'>reach out</a> and make yourself heard." msgid "Track your reading, talk about books, write reviews, and discover what to read next. Always ad-free, anti-corporate, and community-oriented, BookWyrm is human-scale software, designed to stay small and personal. If you have feature requests, bug reports, or grand dreams, <a href='https://joinbookwyrm.com/get-involved' target='_blank'>reach out</a> and make yourself heard."
msgstr "" msgstr ""
#: bookwyrm/templates/about/about.html:95 #: bookwyrm/templates/about/about.html:96
msgid "Meet your admins" msgid "Meet your admins"
msgstr "" msgstr ""
#: bookwyrm/templates/about/about.html:98 #: bookwyrm/templates/about/about.html:99
#, python-format #, python-format
msgid "\n" msgid "%(site_name)s's moderators and administrators keep the site up and running, enforce the <a href=\"coc_path\">code of conduct</a>, and respond when users report spam and bad behavior."
" %(site_name)s's moderators and administrators keep the site up and running, enforce the <a href=\"coc_path\">code of conduct</a>, and respond when users report spam and bad behavior.\n"
" "
msgstr "" msgstr ""
#: bookwyrm/templates/about/about.html:112 #: bookwyrm/templates/about/about.html:113
msgid "Moderator" msgid "Moderator"
msgstr "" msgstr ""
#: bookwyrm/templates/about/about.html:114 bookwyrm/templates/layout.html:131 #: bookwyrm/templates/about/about.html:115 bookwyrm/templates/layout.html:131
msgid "Admin" msgid "Admin"
msgstr "管理员" msgstr "管理员"
#: bookwyrm/templates/about/about.html:130 #: bookwyrm/templates/about/about.html:131
#: bookwyrm/templates/settings/users/user_moderation_actions.html:14 #: bookwyrm/templates/settings/users/user_moderation_actions.html:14
#: bookwyrm/templates/snippets/status/status_options.html:35 #: bookwyrm/templates/snippets/status/status_options.html:35
#: bookwyrm/templates/snippets/user_options.html:13 #: bookwyrm/templates/snippets/user_options.html:13
@ -426,7 +424,7 @@ msgid "Copy address"
msgstr "复制地址" msgstr "复制地址"
#: bookwyrm/templates/annual_summary/layout.html:68 #: bookwyrm/templates/annual_summary/layout.html:68
#: bookwyrm/templates/lists/list.html:230 #: bookwyrm/templates/lists/list.html:231
msgid "Copied!" msgid "Copied!"
msgstr "复制成功!" msgstr "复制成功!"
@ -493,7 +491,7 @@ msgstr "TA 今年阅读最短的…"
#: bookwyrm/templates/annual_summary/layout.html:245 #: bookwyrm/templates/annual_summary/layout.html:245
#: bookwyrm/templates/book/book.html:47 #: bookwyrm/templates/book/book.html:47
#: bookwyrm/templates/discover/large-book.html:22 #: bookwyrm/templates/discover/large-book.html:22
#: bookwyrm/templates/landing/large-book.html:25 #: bookwyrm/templates/landing/large-book.html:26
#: bookwyrm/templates/landing/small-book.html:18 #: bookwyrm/templates/landing/small-book.html:18
msgid "by" msgid "by"
msgstr "作者" msgstr "作者"
@ -727,9 +725,9 @@ msgstr "加载数据会连接到 <strong>%(source_name)s</strong> 并检查这
#: bookwyrm/templates/author/sync_modal.html:22 #: bookwyrm/templates/author/sync_modal.html:22
#: bookwyrm/templates/book/edit/edit_book.html:108 #: bookwyrm/templates/book/edit/edit_book.html:108
#: bookwyrm/templates/book/sync_modal.html:22 #: bookwyrm/templates/book/sync_modal.html:22
#: bookwyrm/templates/groups/members.html:30 #: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42 #: bookwyrm/templates/landing/password_reset.html:42
#: bookwyrm/templates/snippets/remove_from_group_button.html:16 #: bookwyrm/templates/snippets/remove_from_group_button.html:17
msgid "Confirm" msgid "Confirm"
msgstr "确认" msgstr "确认"
@ -812,8 +810,8 @@ msgid "Places"
msgstr "地点" msgstr "地点"
#: bookwyrm/templates/book/book.html:348 #: bookwyrm/templates/book/book.html:348
#: bookwyrm/templates/groups/group.html:20 bookwyrm/templates/layout.html:74 #: bookwyrm/templates/groups/group.html:19 bookwyrm/templates/layout.html:74
#: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:10 #: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:11
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
#: bookwyrm/templates/search/layout.html:25 #: bookwyrm/templates/search/layout.html:25
#: bookwyrm/templates/search/layout.html:50 #: bookwyrm/templates/search/layout.html:50
@ -827,7 +825,7 @@ msgstr "添加到列表"
#: bookwyrm/templates/book/book.html:369 #: bookwyrm/templates/book/book.html:369
#: bookwyrm/templates/book/cover_add_modal.html:31 #: bookwyrm/templates/book/cover_add_modal.html:31
#: bookwyrm/templates/lists/list.html:208 #: bookwyrm/templates/lists/list.html:209
#: bookwyrm/templates/settings/email_blocklist/domain_form.html:24 #: bookwyrm/templates/settings/email_blocklist/domain_form.html:24
#: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:31 #: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:31
msgid "Add" msgid "Add"
@ -929,7 +927,7 @@ msgid "Back"
msgstr "返回" msgstr "返回"
#: bookwyrm/templates/book/edit/edit_book_form.html:21 #: bookwyrm/templates/book/edit/edit_book_form.html:21
#: bookwyrm/templates/snippets/create_status/review.html:16 #: bookwyrm/templates/snippets/create_status/review.html:15
msgid "Title:" msgid "Title:"
msgstr "标题:" msgstr "标题:"
@ -1642,7 +1640,7 @@ msgid "What are you reading?"
msgstr "你在阅读什么?" msgstr "你在阅读什么?"
#: bookwyrm/templates/get_started/books.html:9 #: bookwyrm/templates/get_started/books.html:9
#: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:162 #: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:163
msgid "Search for a book" msgid "Search for a book"
msgstr "搜索书目" msgstr "搜索书目"
@ -1660,9 +1658,9 @@ msgstr "你可以在开始使用 %(site_name)s 后添加书目。"
#: bookwyrm/templates/get_started/books.html:17 #: bookwyrm/templates/get_started/books.html:17
#: bookwyrm/templates/get_started/users.html:18 #: bookwyrm/templates/get_started/users.html:18
#: bookwyrm/templates/get_started/users.html:19 #: bookwyrm/templates/get_started/users.html:19
#: bookwyrm/templates/groups/members.html:16 #: bookwyrm/templates/groups/members.html:15
#: bookwyrm/templates/groups/members.html:17 bookwyrm/templates/layout.html:53 #: bookwyrm/templates/groups/members.html:16 bookwyrm/templates/layout.html:53
#: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:166 #: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:167
#: bookwyrm/templates/search/layout.html:4 #: bookwyrm/templates/search/layout.html:4
#: bookwyrm/templates/search/layout.html:9 #: bookwyrm/templates/search/layout.html:9
msgid "Search" msgid "Search"
@ -1678,7 +1676,7 @@ msgid "Popular on %(site_name)s"
msgstr "%(site_name)s 上的热门" msgstr "%(site_name)s 上的热门"
#: bookwyrm/templates/get_started/books.html:58 #: bookwyrm/templates/get_started/books.html:58
#: bookwyrm/templates/lists/list.html:179 #: bookwyrm/templates/lists/list.html:180
msgid "No books found" msgid "No books found"
msgstr "没有找到书目" msgstr "没有找到书目"
@ -1783,7 +1781,7 @@ msgstr "此操作无法被撤销"
#: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:49 #: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:49
#: bookwyrm/templates/settings/ip_blocklist/ip_blocklist.html:36 #: bookwyrm/templates/settings/ip_blocklist/ip_blocklist.html:36
#: bookwyrm/templates/snippets/follow_request_buttons.html:12 #: bookwyrm/templates/snippets/follow_request_buttons.html:12
#: bookwyrm/templates/snippets/join_invitation_buttons.html:13 #: bookwyrm/templates/snippets/join_invitation_buttons.html:14
msgid "Delete" msgid "Delete"
msgstr "删除" msgstr "删除"
@ -1803,17 +1801,17 @@ msgstr "群组描述"
msgid "Delete group" msgid "Delete group"
msgstr "删除群组" msgstr "删除群组"
#: bookwyrm/templates/groups/group.html:22 #: bookwyrm/templates/groups/group.html:21
msgid "Members of this group can create group-curated lists." msgid "Members of this group can create group-curated lists."
msgstr "" msgstr ""
#: bookwyrm/templates/groups/group.html:27 #: bookwyrm/templates/groups/group.html:26
#: bookwyrm/templates/lists/create_form.html:5 #: bookwyrm/templates/lists/create_form.html:5
#: bookwyrm/templates/lists/lists.html:20 #: bookwyrm/templates/lists/lists.html:20
msgid "Create List" msgid "Create List"
msgstr "创建列表" msgstr "创建列表"
#: bookwyrm/templates/groups/group.html:40 #: bookwyrm/templates/groups/group.html:39
msgid "This group has no lists" msgid "This group has no lists"
msgstr "这个群组没有任何列表" msgstr "这个群组没有任何列表"
@ -1821,15 +1819,15 @@ msgstr "这个群组没有任何列表"
msgid "Edit group" msgid "Edit group"
msgstr "编辑群组" msgstr "编辑群组"
#: bookwyrm/templates/groups/members.html:12 #: bookwyrm/templates/groups/members.html:11
msgid "Search to add a user" msgid "Search to add a user"
msgstr "搜索或添加用户" msgstr "搜索或添加用户"
#: bookwyrm/templates/groups/members.html:33 #: bookwyrm/templates/groups/members.html:32
msgid "Leave group" msgid "Leave group"
msgstr "退出群组" msgstr "退出群组"
#: bookwyrm/templates/groups/members.html:55 #: bookwyrm/templates/groups/members.html:54
#: bookwyrm/templates/groups/suggested_users.html:35 #: bookwyrm/templates/groups/suggested_users.html:35
#: bookwyrm/templates/snippets/suggested_users.html:31 #: bookwyrm/templates/snippets/suggested_users.html:31
#: bookwyrm/templates/user/user_preview.html:36 #: bookwyrm/templates/user/user_preview.html:36
@ -2282,18 +2280,18 @@ msgstr "删除此列表?"
msgid "Edit List" msgid "Edit List"
msgstr "编辑列表" msgstr "编辑列表"
#: bookwyrm/templates/lists/embed-list.html:7 #: bookwyrm/templates/lists/embed-list.html:8
#, python-format #, python-format
msgid "%(list_name)s, a list by %(owner)s" msgid "%(list_name)s, a list by %(owner)s"
msgstr "%(list_name)s来自 %(owner)s 的列表" msgstr "%(list_name)s来自 %(owner)s 的列表"
#: bookwyrm/templates/lists/embed-list.html:17 #: bookwyrm/templates/lists/embed-list.html:18
#, python-format #, python-format
msgid "on <a href=\"/\">%(site_name)s</a>" msgid "on <a href=\"/\">%(site_name)s</a>"
msgstr "在 <a href=\"/\">%(site_name)s</a>" msgstr "在 <a href=\"/\">%(site_name)s</a>"
#: bookwyrm/templates/lists/embed-list.html:26 #: bookwyrm/templates/lists/embed-list.html:27
#: bookwyrm/templates/lists/list.html:42 #: bookwyrm/templates/lists/list.html:43
msgid "This list is currently empty" msgid "This list is currently empty"
msgstr "此列表当前是空的" msgstr "此列表当前是空的"
@ -2354,76 +2352,76 @@ msgstr "创建一个群组"
msgid "Delete list" msgid "Delete list"
msgstr "删除列表" msgstr "删除列表"
#: bookwyrm/templates/lists/list.html:34 #: bookwyrm/templates/lists/list.html:35
msgid "You successfully suggested a book for this list!" msgid "You successfully suggested a book for this list!"
msgstr "你成功向该列表推荐了一本书!" msgstr "你成功向该列表推荐了一本书!"
#: bookwyrm/templates/lists/list.html:36 #: bookwyrm/templates/lists/list.html:37
msgid "You successfully added a book to this list!" msgid "You successfully added a book to this list!"
msgstr "你成功向此列表添加了一本书!" msgstr "你成功向此列表添加了一本书!"
#: bookwyrm/templates/lists/list.html:80 #: bookwyrm/templates/lists/list.html:81
#, python-format #, python-format
msgid "Added by <a href=\"%(user_path)s\">%(username)s</a>" msgid "Added by <a href=\"%(user_path)s\">%(username)s</a>"
msgstr "由 <a href=\"%(user_path)s\">%(username)s</a> 添加" msgstr "由 <a href=\"%(user_path)s\">%(username)s</a> 添加"
#: bookwyrm/templates/lists/list.html:95 #: bookwyrm/templates/lists/list.html:96
msgid "List position" msgid "List position"
msgstr "列表位置:" msgstr "列表位置:"
#: bookwyrm/templates/lists/list.html:101 #: bookwyrm/templates/lists/list.html:102
#: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:21 #: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:21
msgid "Set" msgid "Set"
msgstr "设定" msgstr "设定"
#: bookwyrm/templates/lists/list.html:116 #: bookwyrm/templates/lists/list.html:117
#: bookwyrm/templates/snippets/remove_from_group_button.html:19 #: bookwyrm/templates/snippets/remove_from_group_button.html:20
msgid "Remove" msgid "Remove"
msgstr "移除" msgstr "移除"
#: bookwyrm/templates/lists/list.html:130 #: bookwyrm/templates/lists/list.html:131
#: bookwyrm/templates/lists/list.html:147 #: bookwyrm/templates/lists/list.html:148
msgid "Sort List" msgid "Sort List"
msgstr "排序列表" msgstr "排序列表"
#: bookwyrm/templates/lists/list.html:140 #: bookwyrm/templates/lists/list.html:141
msgid "Direction" msgid "Direction"
msgstr "方向" msgstr "方向"
#: bookwyrm/templates/lists/list.html:154 #: bookwyrm/templates/lists/list.html:155
msgid "Add Books" msgid "Add Books"
msgstr "添加书目" msgstr "添加书目"
#: bookwyrm/templates/lists/list.html:156 #: bookwyrm/templates/lists/list.html:157
msgid "Suggest Books" msgid "Suggest Books"
msgstr "推荐书目" msgstr "推荐书目"
#: bookwyrm/templates/lists/list.html:167 #: bookwyrm/templates/lists/list.html:168
msgid "search" msgid "search"
msgstr "搜索" msgstr "搜索"
#: bookwyrm/templates/lists/list.html:173 #: bookwyrm/templates/lists/list.html:174
msgid "Clear search" msgid "Clear search"
msgstr "清除搜索" msgstr "清除搜索"
#: bookwyrm/templates/lists/list.html:178 #: bookwyrm/templates/lists/list.html:179
#, python-format #, python-format
msgid "No books found matching the query \"%(query)s\"" msgid "No books found matching the query \"%(query)s\""
msgstr "没有符合 “%(query)s” 请求的书目" msgstr "没有符合 “%(query)s” 请求的书目"
#: bookwyrm/templates/lists/list.html:210 #: bookwyrm/templates/lists/list.html:211
msgid "Suggest" msgid "Suggest"
msgstr "推荐" msgstr "推荐"
#: bookwyrm/templates/lists/list.html:221 #: bookwyrm/templates/lists/list.html:222
msgid "Embed this list on a website" msgid "Embed this list on a website"
msgstr "将此列表嵌入到网站" msgstr "将此列表嵌入到网站"
#: bookwyrm/templates/lists/list.html:229 #: bookwyrm/templates/lists/list.html:230
msgid "Copy embed code" msgid "Copy embed code"
msgstr "复制嵌入代码" msgstr "复制嵌入代码"
#: bookwyrm/templates/lists/list.html:231 #: bookwyrm/templates/lists/list.html:232
#, python-format #, python-format
msgid "%(list_name)s, a list by %(owner)s on %(site_name)s" msgid "%(list_name)s, a list by %(owner)s on %(site_name)s"
msgstr "%(list_name)s%(owner)s 在 %(site_name)s 上的列表" msgstr "%(list_name)s%(owner)s 在 %(site_name)s 上的列表"
@ -3894,15 +3892,15 @@ msgstr "完成时间"
msgid "This shelf is empty." msgid "This shelf is empty."
msgstr "此书架是空的。" msgstr "此书架是空的。"
#: bookwyrm/templates/snippets/add_to_group_button.html:15 #: bookwyrm/templates/snippets/add_to_group_button.html:16
msgid "Invite" msgid "Invite"
msgstr "邀请" msgstr "邀请"
#: bookwyrm/templates/snippets/add_to_group_button.html:24 #: bookwyrm/templates/snippets/add_to_group_button.html:25
msgid "Uninvite" msgid "Uninvite"
msgstr "移除邀请" msgstr "移除邀请"
#: bookwyrm/templates/snippets/add_to_group_button.html:28 #: bookwyrm/templates/snippets/add_to_group_button.html:29
#, python-format #, python-format
msgid "Remove @%(username)s" msgid "Remove @%(username)s"
msgstr "移除 @%(username)s" msgstr "移除 @%(username)s"
@ -3989,7 +3987,7 @@ msgstr "前有剧透!"
msgid "Include spoiler alert" msgid "Include spoiler alert"
msgstr "加入剧透警告" msgstr "加入剧透警告"
#: bookwyrm/templates/snippets/create_status/layout.html:48 #: bookwyrm/templates/snippets/create_status/layout.html:47
#: bookwyrm/templates/snippets/reading_modals/form.html:7 #: bookwyrm/templates/snippets/reading_modals/form.html:7
msgid "Comment:" msgid "Comment:"
msgstr "评论:" msgstr "评论:"
@ -3998,33 +3996,33 @@ msgstr "评论:"
msgid "Post" msgid "Post"
msgstr "发布" msgstr "发布"
#: bookwyrm/templates/snippets/create_status/quotation.html:17 #: bookwyrm/templates/snippets/create_status/quotation.html:16
msgid "Quote:" msgid "Quote:"
msgstr "引用:" msgstr "引用:"
#: bookwyrm/templates/snippets/create_status/quotation.html:25 #: bookwyrm/templates/snippets/create_status/quotation.html:24
#, python-format #, python-format
msgid "An excerpt from '%(book_title)s'" msgid "An excerpt from '%(book_title)s'"
msgstr "摘自《%(book_title)s》的节录" msgstr "摘自《%(book_title)s》的节录"
#: bookwyrm/templates/snippets/create_status/quotation.html:32 #: bookwyrm/templates/snippets/create_status/quotation.html:31
msgid "Position:" msgid "Position:"
msgstr "位置:" msgstr "位置:"
#: bookwyrm/templates/snippets/create_status/quotation.html:45 #: bookwyrm/templates/snippets/create_status/quotation.html:44
msgid "On page:" msgid "On page:"
msgstr "页码:" msgstr "页码:"
#: bookwyrm/templates/snippets/create_status/quotation.html:51 #: bookwyrm/templates/snippets/create_status/quotation.html:50
msgid "At percent:" msgid "At percent:"
msgstr "百分比:" msgstr "百分比:"
#: bookwyrm/templates/snippets/create_status/review.html:25 #: bookwyrm/templates/snippets/create_status/review.html:24
#, python-format #, python-format
msgid "Your review of '%(book_title)s'" msgid "Your review of '%(book_title)s'"
msgstr "你对《%(book_title)s》的书评" msgstr "你对《%(book_title)s》的书评"
#: bookwyrm/templates/snippets/create_status/review.html:40 #: bookwyrm/templates/snippets/create_status/review.html:39
msgid "Review:" msgid "Review:"
msgstr "书评:" msgstr "书评:"
@ -4078,7 +4076,7 @@ msgid "Unfollow"
msgstr "取消关注" msgstr "取消关注"
#: bookwyrm/templates/snippets/follow_request_buttons.html:7 #: bookwyrm/templates/snippets/follow_request_buttons.html:7
#: bookwyrm/templates/snippets/join_invitation_buttons.html:8 #: bookwyrm/templates/snippets/join_invitation_buttons.html:9
msgid "Accept" msgid "Accept"
msgstr "接受" msgstr "接受"
@ -4114,13 +4112,13 @@ msgstr[0] "为 <em><a href=\"%(path)s\">%(title)s</a></em> 打了分: %(display_
#: bookwyrm/templates/snippets/generated_status/review_pure_name.html:4 #: bookwyrm/templates/snippets/generated_status/review_pure_name.html:4
#, python-format #, python-format
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(display_rating)s star): %(review_title)s" msgid "Review of \"%(book_title)s\" (%(display_rating)s star): %(review_title)s"
msgid_plural "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(display_rating)s stars): %(review_title)s" msgid_plural "Review of \"%(book_title)s\" (%(display_rating)s stars): %(review_title)s"
msgstr[0] "" msgstr[0] ""
#: bookwyrm/templates/snippets/generated_status/review_pure_name.html:12 #: bookwyrm/templates/snippets/generated_status/review_pure_name.html:12
#, python-format #, python-format
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\": %(review_title)s" msgid "Review of \"%(book_title)s\": %(review_title)s"
msgstr "" msgstr ""
#: bookwyrm/templates/snippets/goal_form.html:4 #: bookwyrm/templates/snippets/goal_form.html:4
@ -4191,11 +4189,11 @@ msgstr "仅关注者"
msgid "Post privacy" msgid "Post privacy"
msgstr "发文隐私" msgstr "发文隐私"
#: bookwyrm/templates/snippets/rate_action.html:4 #: bookwyrm/templates/snippets/rate_action.html:5
msgid "Leave a rating" msgid "Leave a rating"
msgstr "留下评价" msgstr "留下评价"
#: bookwyrm/templates/snippets/rate_action.html:19 #: bookwyrm/templates/snippets/rate_action.html:20
msgid "Rate" msgid "Rate"
msgstr "评价" msgstr "评价"
@ -4289,29 +4287,29 @@ msgstr "从 %(name)s 移除"
msgid "Finish reading" msgid "Finish reading"
msgstr "完成阅读" msgstr "完成阅读"
#: bookwyrm/templates/snippets/status/content_status.html:72 #: bookwyrm/templates/snippets/status/content_status.html:73
msgid "Content warning" msgid "Content warning"
msgstr "内容警告" msgstr "内容警告"
#: bookwyrm/templates/snippets/status/content_status.html:79 #: bookwyrm/templates/snippets/status/content_status.html:80
msgid "Show status" msgid "Show status"
msgstr "显示状态" msgstr "显示状态"
#: bookwyrm/templates/snippets/status/content_status.html:101 #: bookwyrm/templates/snippets/status/content_status.html:102
#, python-format #, python-format
msgid "(Page %(page)s)" msgid "(Page %(page)s)"
msgstr "(第 %(page)s 页)" msgstr "(第 %(page)s 页)"
#: bookwyrm/templates/snippets/status/content_status.html:103 #: bookwyrm/templates/snippets/status/content_status.html:104
#, python-format #, python-format
msgid "(%(percent)s%%)" msgid "(%(percent)s%%)"
msgstr "%(percent)s%%" msgstr "%(percent)s%%"
#: bookwyrm/templates/snippets/status/content_status.html:125 #: bookwyrm/templates/snippets/status/content_status.html:126
msgid "Open image in new window" msgid "Open image in new window"
msgstr "在新窗口中打开图像" msgstr "在新窗口中打开图像"
#: bookwyrm/templates/snippets/status/content_status.html:144 #: bookwyrm/templates/snippets/status/content_status.html:145
msgid "Hide status" msgid "Hide status"
msgstr "隐藏状态" msgstr "隐藏状态"
@ -4602,7 +4600,7 @@ msgstr "没有找到使用该邮箱的用户。"
msgid "A password reset link was sent to {email}" msgid "A password reset link was sent to {email}"
msgstr "密码重置连接已发送给 {email}" msgstr "密码重置连接已发送给 {email}"
#: bookwyrm/views/rss_feed.py:35 #: bookwyrm/views/rss_feed.py:34
#, python-brace-format #, python-brace-format
msgid "Status updates from {obj.display_name}" msgid "Status updates from {obj.display_name}"
msgstr "{obj.display_name} 的状态更新" msgstr "{obj.display_name} 的状态更新"

View file

@ -2,8 +2,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: bookwyrm\n" "Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-01-17 19:26+0000\n" "POT-Creation-Date: 2022-01-24 17:25+0000\n"
"PO-Revision-Date: 2022-01-17 19:57\n" "PO-Revision-Date: 2022-01-24 18:54\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n" "Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: Chinese Traditional\n" "Language-Team: Chinese Traditional\n"
"Language: zh\n" "Language: zh\n"
@ -56,11 +56,11 @@ msgstr "書名"
#: bookwyrm/forms.py:485 bookwyrm/templates/shelf/shelf.html:155 #: bookwyrm/forms.py:485 bookwyrm/templates/shelf/shelf.html:155
#: bookwyrm/templates/shelf/shelf.html:187 #: bookwyrm/templates/shelf/shelf.html:187
#: bookwyrm/templates/snippets/create_status/review.html:33 #: bookwyrm/templates/snippets/create_status/review.html:32
msgid "Rating" msgid "Rating"
msgstr "評價" msgstr "評價"
#: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:134 #: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:135
msgid "Sort By" msgid "Sort By"
msgstr "排序方式" msgstr "排序方式"
@ -224,69 +224,69 @@ msgstr ""
msgid "Everything else" msgid "Everything else"
msgstr "" msgstr ""
#: bookwyrm/settings.py:121 #: bookwyrm/settings.py:173
msgid "Home Timeline" msgid "Home Timeline"
msgstr "主頁時間線" msgstr "主頁時間線"
#: bookwyrm/settings.py:121 #: bookwyrm/settings.py:173
msgid "Home" msgid "Home"
msgstr "主頁" msgstr "主頁"
#: bookwyrm/settings.py:122 #: bookwyrm/settings.py:174
msgid "Books Timeline" msgid "Books Timeline"
msgstr "" msgstr ""
#: bookwyrm/settings.py:122 bookwyrm/templates/search/layout.html:21 #: bookwyrm/settings.py:174 bookwyrm/templates/search/layout.html:21
#: bookwyrm/templates/search/layout.html:42 #: bookwyrm/templates/search/layout.html:42
#: bookwyrm/templates/user/layout.html:91 #: bookwyrm/templates/user/layout.html:91
msgid "Books" msgid "Books"
msgstr "書目" msgstr "書目"
#: bookwyrm/settings.py:196 #: bookwyrm/settings.py:248
msgid "English" msgid "English"
msgstr "English英語" msgstr "English英語"
#: bookwyrm/settings.py:197 #: bookwyrm/settings.py:249
msgid "Deutsch (German)" msgid "Deutsch (German)"
msgstr "Deutsch德語" msgstr "Deutsch德語"
#: bookwyrm/settings.py:198 #: bookwyrm/settings.py:250
msgid "Español (Spanish)" msgid "Español (Spanish)"
msgstr "Español西班牙語" msgstr "Español西班牙語"
#: bookwyrm/settings.py:199 #: bookwyrm/settings.py:251
msgid "Galego (Galician)" msgid "Galego (Galician)"
msgstr "" msgstr ""
#: bookwyrm/settings.py:200 #: bookwyrm/settings.py:252
msgid "Italiano (Italian)" msgid "Italiano (Italian)"
msgstr "" msgstr ""
#: bookwyrm/settings.py:201 #: bookwyrm/settings.py:253
msgid "Français (French)" msgid "Français (French)"
msgstr "Français法語" msgstr "Français法語"
#: bookwyrm/settings.py:202 #: bookwyrm/settings.py:254
msgid "Lietuvių (Lithuanian)" msgid "Lietuvių (Lithuanian)"
msgstr "" msgstr ""
#: bookwyrm/settings.py:203 #: bookwyrm/settings.py:255
msgid "Norsk (Norwegian)" msgid "Norsk (Norwegian)"
msgstr "" msgstr ""
#: bookwyrm/settings.py:204 #: bookwyrm/settings.py:256
msgid "Português do Brasil (Brazilian Portuguese)" msgid "Português do Brasil (Brazilian Portuguese)"
msgstr "" msgstr ""
#: bookwyrm/settings.py:205 #: bookwyrm/settings.py:257
msgid "Português Europeu (European Portuguese)" msgid "Português Europeu (European Portuguese)"
msgstr "" msgstr ""
#: bookwyrm/settings.py:206 #: bookwyrm/settings.py:258
msgid "简体中文 (Simplified Chinese)" msgid "简体中文 (Simplified Chinese)"
msgstr "簡體中文" msgstr "簡體中文"
#: bookwyrm/settings.py:207 #: bookwyrm/settings.py:259
msgid "繁體中文 (Traditional Chinese)" msgid "繁體中文 (Traditional Chinese)"
msgstr "繁體中文" msgstr "繁體中文"
@ -315,56 +315,54 @@ msgstr "某些東西出錯了!抱歉。"
msgid "About" msgid "About"
msgstr "" msgstr ""
#: bookwyrm/templates/about/about.html:18 #: bookwyrm/templates/about/about.html:19
#: bookwyrm/templates/get_started/layout.html:20 #: bookwyrm/templates/get_started/layout.html:20
#, python-format #, python-format
msgid "Welcome to %(site_name)s!" msgid "Welcome to %(site_name)s!"
msgstr "歡迎來到 %(site_name)s" msgstr "歡迎來到 %(site_name)s"
#: bookwyrm/templates/about/about.html:22 #: bookwyrm/templates/about/about.html:23
#, python-format #, python-format
msgid "%(site_name)s is part of <em>BookWyrm</em>, a network of independent, self-directed communities for readers. While you can interact seamlessly with users anywhere in the <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">BookWyrm network</a>, this community is unique." msgid "%(site_name)s is part of <em>BookWyrm</em>, a network of independent, self-directed communities for readers. While you can interact seamlessly with users anywhere in the <a href=\"https://joinbookwyrm.com/instances/\" target=\"_blank\">BookWyrm network</a>, this community is unique."
msgstr "" msgstr ""
#: bookwyrm/templates/about/about.html:39 #: bookwyrm/templates/about/about.html:40
#, python-format #, python-format
msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> is %(site_name)s's most beloved book, with an average rating of %(rating)s out of 5." msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> is %(site_name)s's most beloved book, with an average rating of %(rating)s out of 5."
msgstr "" msgstr ""
#: bookwyrm/templates/about/about.html:58 #: bookwyrm/templates/about/about.html:59
#, python-format #, python-format
msgid "More %(site_name)s users want to read <a href=\"%(book_path)s\"><em>%(title)s</em></a> than any other book." msgid "More %(site_name)s users want to read <a href=\"%(book_path)s\"><em>%(title)s</em></a> than any other book."
msgstr "" msgstr ""
#: bookwyrm/templates/about/about.html:77 #: bookwyrm/templates/about/about.html:78
#, python-format #, python-format
msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> has the most divisive ratings of any book on %(site_name)s." msgid "<a href=\"%(book_path)s\"><em>%(title)s</em></a> has the most divisive ratings of any book on %(site_name)s."
msgstr "" msgstr ""
#: bookwyrm/templates/about/about.html:88 #: bookwyrm/templates/about/about.html:89
msgid "Track your reading, talk about books, write reviews, and discover what to read next. Always ad-free, anti-corporate, and community-oriented, BookWyrm is human-scale software, designed to stay small and personal. If you have feature requests, bug reports, or grand dreams, <a href='https://joinbookwyrm.com/get-involved' target='_blank'>reach out</a> and make yourself heard." msgid "Track your reading, talk about books, write reviews, and discover what to read next. Always ad-free, anti-corporate, and community-oriented, BookWyrm is human-scale software, designed to stay small and personal. If you have feature requests, bug reports, or grand dreams, <a href='https://joinbookwyrm.com/get-involved' target='_blank'>reach out</a> and make yourself heard."
msgstr "" msgstr ""
#: bookwyrm/templates/about/about.html:95 #: bookwyrm/templates/about/about.html:96
msgid "Meet your admins" msgid "Meet your admins"
msgstr "" msgstr ""
#: bookwyrm/templates/about/about.html:98 #: bookwyrm/templates/about/about.html:99
#, python-format #, python-format
msgid "\n" msgid "%(site_name)s's moderators and administrators keep the site up and running, enforce the <a href=\"coc_path\">code of conduct</a>, and respond when users report spam and bad behavior."
" %(site_name)s's moderators and administrators keep the site up and running, enforce the <a href=\"coc_path\">code of conduct</a>, and respond when users report spam and bad behavior.\n"
" "
msgstr "" msgstr ""
#: bookwyrm/templates/about/about.html:112 #: bookwyrm/templates/about/about.html:113
msgid "Moderator" msgid "Moderator"
msgstr "" msgstr ""
#: bookwyrm/templates/about/about.html:114 bookwyrm/templates/layout.html:131 #: bookwyrm/templates/about/about.html:115 bookwyrm/templates/layout.html:131
msgid "Admin" msgid "Admin"
msgstr "管理員" msgstr "管理員"
#: bookwyrm/templates/about/about.html:130 #: bookwyrm/templates/about/about.html:131
#: bookwyrm/templates/settings/users/user_moderation_actions.html:14 #: bookwyrm/templates/settings/users/user_moderation_actions.html:14
#: bookwyrm/templates/snippets/status/status_options.html:35 #: bookwyrm/templates/snippets/status/status_options.html:35
#: bookwyrm/templates/snippets/user_options.html:13 #: bookwyrm/templates/snippets/user_options.html:13
@ -426,7 +424,7 @@ msgid "Copy address"
msgstr "" msgstr ""
#: bookwyrm/templates/annual_summary/layout.html:68 #: bookwyrm/templates/annual_summary/layout.html:68
#: bookwyrm/templates/lists/list.html:230 #: bookwyrm/templates/lists/list.html:231
msgid "Copied!" msgid "Copied!"
msgstr "" msgstr ""
@ -493,7 +491,7 @@ msgstr ""
#: bookwyrm/templates/annual_summary/layout.html:245 #: bookwyrm/templates/annual_summary/layout.html:245
#: bookwyrm/templates/book/book.html:47 #: bookwyrm/templates/book/book.html:47
#: bookwyrm/templates/discover/large-book.html:22 #: bookwyrm/templates/discover/large-book.html:22
#: bookwyrm/templates/landing/large-book.html:25 #: bookwyrm/templates/landing/large-book.html:26
#: bookwyrm/templates/landing/small-book.html:18 #: bookwyrm/templates/landing/small-book.html:18
msgid "by" msgid "by"
msgstr "作者" msgstr "作者"
@ -727,9 +725,9 @@ msgstr ""
#: bookwyrm/templates/author/sync_modal.html:22 #: bookwyrm/templates/author/sync_modal.html:22
#: bookwyrm/templates/book/edit/edit_book.html:108 #: bookwyrm/templates/book/edit/edit_book.html:108
#: bookwyrm/templates/book/sync_modal.html:22 #: bookwyrm/templates/book/sync_modal.html:22
#: bookwyrm/templates/groups/members.html:30 #: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42 #: bookwyrm/templates/landing/password_reset.html:42
#: bookwyrm/templates/snippets/remove_from_group_button.html:16 #: bookwyrm/templates/snippets/remove_from_group_button.html:17
msgid "Confirm" msgid "Confirm"
msgstr "確認" msgstr "確認"
@ -812,8 +810,8 @@ msgid "Places"
msgstr "地點" msgstr "地點"
#: bookwyrm/templates/book/book.html:348 #: bookwyrm/templates/book/book.html:348
#: bookwyrm/templates/groups/group.html:20 bookwyrm/templates/layout.html:74 #: bookwyrm/templates/groups/group.html:19 bookwyrm/templates/layout.html:74
#: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:10 #: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:11
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
#: bookwyrm/templates/search/layout.html:25 #: bookwyrm/templates/search/layout.html:25
#: bookwyrm/templates/search/layout.html:50 #: bookwyrm/templates/search/layout.html:50
@ -827,7 +825,7 @@ msgstr "新增到列表"
#: bookwyrm/templates/book/book.html:369 #: bookwyrm/templates/book/book.html:369
#: bookwyrm/templates/book/cover_add_modal.html:31 #: bookwyrm/templates/book/cover_add_modal.html:31
#: bookwyrm/templates/lists/list.html:208 #: bookwyrm/templates/lists/list.html:209
#: bookwyrm/templates/settings/email_blocklist/domain_form.html:24 #: bookwyrm/templates/settings/email_blocklist/domain_form.html:24
#: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:31 #: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:31
msgid "Add" msgid "Add"
@ -929,7 +927,7 @@ msgid "Back"
msgstr "返回" msgstr "返回"
#: bookwyrm/templates/book/edit/edit_book_form.html:21 #: bookwyrm/templates/book/edit/edit_book_form.html:21
#: bookwyrm/templates/snippets/create_status/review.html:16 #: bookwyrm/templates/snippets/create_status/review.html:15
msgid "Title:" msgid "Title:"
msgstr "標題:" msgstr "標題:"
@ -1642,7 +1640,7 @@ msgid "What are you reading?"
msgstr "你在閱讀什麼?" msgstr "你在閱讀什麼?"
#: bookwyrm/templates/get_started/books.html:9 #: bookwyrm/templates/get_started/books.html:9
#: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:162 #: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:163
msgid "Search for a book" msgid "Search for a book"
msgstr "搜尋書目" msgstr "搜尋書目"
@ -1660,9 +1658,9 @@ msgstr "你可以在開始使用 %(site_name)s 後新增書目。"
#: bookwyrm/templates/get_started/books.html:17 #: bookwyrm/templates/get_started/books.html:17
#: bookwyrm/templates/get_started/users.html:18 #: bookwyrm/templates/get_started/users.html:18
#: bookwyrm/templates/get_started/users.html:19 #: bookwyrm/templates/get_started/users.html:19
#: bookwyrm/templates/groups/members.html:16 #: bookwyrm/templates/groups/members.html:15
#: bookwyrm/templates/groups/members.html:17 bookwyrm/templates/layout.html:53 #: bookwyrm/templates/groups/members.html:16 bookwyrm/templates/layout.html:53
#: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:166 #: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:167
#: bookwyrm/templates/search/layout.html:4 #: bookwyrm/templates/search/layout.html:4
#: bookwyrm/templates/search/layout.html:9 #: bookwyrm/templates/search/layout.html:9
msgid "Search" msgid "Search"
@ -1678,7 +1676,7 @@ msgid "Popular on %(site_name)s"
msgstr "%(site_name)s 上的熱門" msgstr "%(site_name)s 上的熱門"
#: bookwyrm/templates/get_started/books.html:58 #: bookwyrm/templates/get_started/books.html:58
#: bookwyrm/templates/lists/list.html:179 #: bookwyrm/templates/lists/list.html:180
msgid "No books found" msgid "No books found"
msgstr "沒有找到書目" msgstr "沒有找到書目"
@ -1783,7 +1781,7 @@ msgstr ""
#: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:49 #: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:49
#: bookwyrm/templates/settings/ip_blocklist/ip_blocklist.html:36 #: bookwyrm/templates/settings/ip_blocklist/ip_blocklist.html:36
#: bookwyrm/templates/snippets/follow_request_buttons.html:12 #: bookwyrm/templates/snippets/follow_request_buttons.html:12
#: bookwyrm/templates/snippets/join_invitation_buttons.html:13 #: bookwyrm/templates/snippets/join_invitation_buttons.html:14
msgid "Delete" msgid "Delete"
msgstr "刪除" msgstr "刪除"
@ -1803,17 +1801,17 @@ msgstr ""
msgid "Delete group" msgid "Delete group"
msgstr "" msgstr ""
#: bookwyrm/templates/groups/group.html:22 #: bookwyrm/templates/groups/group.html:21
msgid "Members of this group can create group-curated lists." msgid "Members of this group can create group-curated lists."
msgstr "" msgstr ""
#: bookwyrm/templates/groups/group.html:27 #: bookwyrm/templates/groups/group.html:26
#: bookwyrm/templates/lists/create_form.html:5 #: bookwyrm/templates/lists/create_form.html:5
#: bookwyrm/templates/lists/lists.html:20 #: bookwyrm/templates/lists/lists.html:20
msgid "Create List" msgid "Create List"
msgstr "建立列表" msgstr "建立列表"
#: bookwyrm/templates/groups/group.html:40 #: bookwyrm/templates/groups/group.html:39
msgid "This group has no lists" msgid "This group has no lists"
msgstr "" msgstr ""
@ -1821,15 +1819,15 @@ msgstr ""
msgid "Edit group" msgid "Edit group"
msgstr "" msgstr ""
#: bookwyrm/templates/groups/members.html:12 #: bookwyrm/templates/groups/members.html:11
msgid "Search to add a user" msgid "Search to add a user"
msgstr "" msgstr ""
#: bookwyrm/templates/groups/members.html:33 #: bookwyrm/templates/groups/members.html:32
msgid "Leave group" msgid "Leave group"
msgstr "" msgstr ""
#: bookwyrm/templates/groups/members.html:55 #: bookwyrm/templates/groups/members.html:54
#: bookwyrm/templates/groups/suggested_users.html:35 #: bookwyrm/templates/groups/suggested_users.html:35
#: bookwyrm/templates/snippets/suggested_users.html:31 #: bookwyrm/templates/snippets/suggested_users.html:31
#: bookwyrm/templates/user/user_preview.html:36 #: bookwyrm/templates/user/user_preview.html:36
@ -2282,18 +2280,18 @@ msgstr ""
msgid "Edit List" msgid "Edit List"
msgstr "編輯列表" msgstr "編輯列表"
#: bookwyrm/templates/lists/embed-list.html:7 #: bookwyrm/templates/lists/embed-list.html:8
#, python-format #, python-format
msgid "%(list_name)s, a list by %(owner)s" msgid "%(list_name)s, a list by %(owner)s"
msgstr "" msgstr ""
#: bookwyrm/templates/lists/embed-list.html:17 #: bookwyrm/templates/lists/embed-list.html:18
#, python-format #, python-format
msgid "on <a href=\"/\">%(site_name)s</a>" msgid "on <a href=\"/\">%(site_name)s</a>"
msgstr "" msgstr ""
#: bookwyrm/templates/lists/embed-list.html:26 #: bookwyrm/templates/lists/embed-list.html:27
#: bookwyrm/templates/lists/list.html:42 #: bookwyrm/templates/lists/list.html:43
msgid "This list is currently empty" msgid "This list is currently empty"
msgstr "此列表當前是空的" msgstr "此列表當前是空的"
@ -2354,76 +2352,76 @@ msgstr ""
msgid "Delete list" msgid "Delete list"
msgstr "" msgstr ""
#: bookwyrm/templates/lists/list.html:34 #: bookwyrm/templates/lists/list.html:35
msgid "You successfully suggested a book for this list!" msgid "You successfully suggested a book for this list!"
msgstr "你成功!向該列表推薦了一本書" msgstr "你成功!向該列表推薦了一本書"
#: bookwyrm/templates/lists/list.html:36 #: bookwyrm/templates/lists/list.html:37
msgid "You successfully added a book to this list!" msgid "You successfully added a book to this list!"
msgstr "你成功在此列表新增了一本書!" msgstr "你成功在此列表新增了一本書!"
#: bookwyrm/templates/lists/list.html:80 #: bookwyrm/templates/lists/list.html:81
#, python-format #, python-format
msgid "Added by <a href=\"%(user_path)s\">%(username)s</a>" msgid "Added by <a href=\"%(user_path)s\">%(username)s</a>"
msgstr "由 <a href=\"%(user_path)s\">%(username)s</a> 新增" msgstr "由 <a href=\"%(user_path)s\">%(username)s</a> 新增"
#: bookwyrm/templates/lists/list.html:95 #: bookwyrm/templates/lists/list.html:96
msgid "List position" msgid "List position"
msgstr "列表位置:" msgstr "列表位置:"
#: bookwyrm/templates/lists/list.html:101 #: bookwyrm/templates/lists/list.html:102
#: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:21 #: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:21
msgid "Set" msgid "Set"
msgstr "設定" msgstr "設定"
#: bookwyrm/templates/lists/list.html:116 #: bookwyrm/templates/lists/list.html:117
#: bookwyrm/templates/snippets/remove_from_group_button.html:19 #: bookwyrm/templates/snippets/remove_from_group_button.html:20
msgid "Remove" msgid "Remove"
msgstr "移除" msgstr "移除"
#: bookwyrm/templates/lists/list.html:130 #: bookwyrm/templates/lists/list.html:131
#: bookwyrm/templates/lists/list.html:147 #: bookwyrm/templates/lists/list.html:148
msgid "Sort List" msgid "Sort List"
msgstr "排序列表" msgstr "排序列表"
#: bookwyrm/templates/lists/list.html:140 #: bookwyrm/templates/lists/list.html:141
msgid "Direction" msgid "Direction"
msgstr "方向" msgstr "方向"
#: bookwyrm/templates/lists/list.html:154 #: bookwyrm/templates/lists/list.html:155
msgid "Add Books" msgid "Add Books"
msgstr "新增書目" msgstr "新增書目"
#: bookwyrm/templates/lists/list.html:156 #: bookwyrm/templates/lists/list.html:157
msgid "Suggest Books" msgid "Suggest Books"
msgstr "推薦書目" msgstr "推薦書目"
#: bookwyrm/templates/lists/list.html:167 #: bookwyrm/templates/lists/list.html:168
msgid "search" msgid "search"
msgstr "搜尋" msgstr "搜尋"
#: bookwyrm/templates/lists/list.html:173 #: bookwyrm/templates/lists/list.html:174
msgid "Clear search" msgid "Clear search"
msgstr "清除搜尋" msgstr "清除搜尋"
#: bookwyrm/templates/lists/list.html:178 #: bookwyrm/templates/lists/list.html:179
#, python-format #, python-format
msgid "No books found matching the query \"%(query)s\"" msgid "No books found matching the query \"%(query)s\""
msgstr "沒有符合 \"%(query)s\" 請求的書目" msgstr "沒有符合 \"%(query)s\" 請求的書目"
#: bookwyrm/templates/lists/list.html:210 #: bookwyrm/templates/lists/list.html:211
msgid "Suggest" msgid "Suggest"
msgstr "推薦" msgstr "推薦"
#: bookwyrm/templates/lists/list.html:221 #: bookwyrm/templates/lists/list.html:222
msgid "Embed this list on a website" msgid "Embed this list on a website"
msgstr "" msgstr ""
#: bookwyrm/templates/lists/list.html:229 #: bookwyrm/templates/lists/list.html:230
msgid "Copy embed code" msgid "Copy embed code"
msgstr "" msgstr ""
#: bookwyrm/templates/lists/list.html:231 #: bookwyrm/templates/lists/list.html:232
#, python-format #, python-format
msgid "%(list_name)s, a list by %(owner)s on %(site_name)s" msgid "%(list_name)s, a list by %(owner)s on %(site_name)s"
msgstr "" msgstr ""
@ -3894,15 +3892,15 @@ msgstr "完成時間"
msgid "This shelf is empty." msgid "This shelf is empty."
msgstr "此書架是空的。" msgstr "此書架是空的。"
#: bookwyrm/templates/snippets/add_to_group_button.html:15 #: bookwyrm/templates/snippets/add_to_group_button.html:16
msgid "Invite" msgid "Invite"
msgstr "" msgstr ""
#: bookwyrm/templates/snippets/add_to_group_button.html:24 #: bookwyrm/templates/snippets/add_to_group_button.html:25
msgid "Uninvite" msgid "Uninvite"
msgstr "" msgstr ""
#: bookwyrm/templates/snippets/add_to_group_button.html:28 #: bookwyrm/templates/snippets/add_to_group_button.html:29
#, python-format #, python-format
msgid "Remove @%(username)s" msgid "Remove @%(username)s"
msgstr "" msgstr ""
@ -3989,7 +3987,7 @@ msgstr "前有劇透!"
msgid "Include spoiler alert" msgid "Include spoiler alert"
msgstr "加入劇透警告" msgstr "加入劇透警告"
#: bookwyrm/templates/snippets/create_status/layout.html:48 #: bookwyrm/templates/snippets/create_status/layout.html:47
#: bookwyrm/templates/snippets/reading_modals/form.html:7 #: bookwyrm/templates/snippets/reading_modals/form.html:7
msgid "Comment:" msgid "Comment:"
msgstr "評論:" msgstr "評論:"
@ -3998,33 +3996,33 @@ msgstr "評論:"
msgid "Post" msgid "Post"
msgstr "釋出" msgstr "釋出"
#: bookwyrm/templates/snippets/create_status/quotation.html:17 #: bookwyrm/templates/snippets/create_status/quotation.html:16
msgid "Quote:" msgid "Quote:"
msgstr "引用:" msgstr "引用:"
#: bookwyrm/templates/snippets/create_status/quotation.html:25 #: bookwyrm/templates/snippets/create_status/quotation.html:24
#, python-format #, python-format
msgid "An excerpt from '%(book_title)s'" msgid "An excerpt from '%(book_title)s'"
msgstr "" msgstr ""
#: bookwyrm/templates/snippets/create_status/quotation.html:32 #: bookwyrm/templates/snippets/create_status/quotation.html:31
msgid "Position:" msgid "Position:"
msgstr "" msgstr ""
#: bookwyrm/templates/snippets/create_status/quotation.html:45 #: bookwyrm/templates/snippets/create_status/quotation.html:44
msgid "On page:" msgid "On page:"
msgstr "" msgstr ""
#: bookwyrm/templates/snippets/create_status/quotation.html:51 #: bookwyrm/templates/snippets/create_status/quotation.html:50
msgid "At percent:" msgid "At percent:"
msgstr "" msgstr ""
#: bookwyrm/templates/snippets/create_status/review.html:25 #: bookwyrm/templates/snippets/create_status/review.html:24
#, python-format #, python-format
msgid "Your review of '%(book_title)s'" msgid "Your review of '%(book_title)s'"
msgstr "" msgstr ""
#: bookwyrm/templates/snippets/create_status/review.html:40 #: bookwyrm/templates/snippets/create_status/review.html:39
msgid "Review:" msgid "Review:"
msgstr "書評:" msgstr "書評:"
@ -4078,7 +4076,7 @@ msgid "Unfollow"
msgstr "取消關注" msgstr "取消關注"
#: bookwyrm/templates/snippets/follow_request_buttons.html:7 #: bookwyrm/templates/snippets/follow_request_buttons.html:7
#: bookwyrm/templates/snippets/join_invitation_buttons.html:8 #: bookwyrm/templates/snippets/join_invitation_buttons.html:9
msgid "Accept" msgid "Accept"
msgstr "接受" msgstr "接受"
@ -4114,13 +4112,13 @@ msgstr[0] ""
#: bookwyrm/templates/snippets/generated_status/review_pure_name.html:4 #: bookwyrm/templates/snippets/generated_status/review_pure_name.html:4
#, python-format #, python-format
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(display_rating)s star): %(review_title)s" msgid "Review of \"%(book_title)s\" (%(display_rating)s star): %(review_title)s"
msgid_plural "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(display_rating)s stars): %(review_title)s" msgid_plural "Review of \"%(book_title)s\" (%(display_rating)s stars): %(review_title)s"
msgstr[0] "" msgstr[0] ""
#: bookwyrm/templates/snippets/generated_status/review_pure_name.html:12 #: bookwyrm/templates/snippets/generated_status/review_pure_name.html:12
#, python-format #, python-format
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\": %(review_title)s" msgid "Review of \"%(book_title)s\": %(review_title)s"
msgstr "" msgstr ""
#: bookwyrm/templates/snippets/goal_form.html:4 #: bookwyrm/templates/snippets/goal_form.html:4
@ -4191,11 +4189,11 @@ msgstr "僅關注者"
msgid "Post privacy" msgid "Post privacy"
msgstr "發文隱私" msgstr "發文隱私"
#: bookwyrm/templates/snippets/rate_action.html:4 #: bookwyrm/templates/snippets/rate_action.html:5
msgid "Leave a rating" msgid "Leave a rating"
msgstr "留下評價" msgstr "留下評價"
#: bookwyrm/templates/snippets/rate_action.html:19 #: bookwyrm/templates/snippets/rate_action.html:20
msgid "Rate" msgid "Rate"
msgstr "評價" msgstr "評價"
@ -4289,29 +4287,29 @@ msgstr "從 %(name)s 移除"
msgid "Finish reading" msgid "Finish reading"
msgstr "完成閱讀" msgstr "完成閱讀"
#: bookwyrm/templates/snippets/status/content_status.html:72 #: bookwyrm/templates/snippets/status/content_status.html:73
msgid "Content warning" msgid "Content warning"
msgstr "" msgstr ""
#: bookwyrm/templates/snippets/status/content_status.html:79 #: bookwyrm/templates/snippets/status/content_status.html:80
msgid "Show status" msgid "Show status"
msgstr "" msgstr ""
#: bookwyrm/templates/snippets/status/content_status.html:101 #: bookwyrm/templates/snippets/status/content_status.html:102
#, python-format #, python-format
msgid "(Page %(page)s)" msgid "(Page %(page)s)"
msgstr "" msgstr ""
#: bookwyrm/templates/snippets/status/content_status.html:103 #: bookwyrm/templates/snippets/status/content_status.html:104
#, python-format #, python-format
msgid "(%(percent)s%%)" msgid "(%(percent)s%%)"
msgstr "" msgstr ""
#: bookwyrm/templates/snippets/status/content_status.html:125 #: bookwyrm/templates/snippets/status/content_status.html:126
msgid "Open image in new window" msgid "Open image in new window"
msgstr "在新視窗中開啟圖片" msgstr "在新視窗中開啟圖片"
#: bookwyrm/templates/snippets/status/content_status.html:144 #: bookwyrm/templates/snippets/status/content_status.html:145
msgid "Hide status" msgid "Hide status"
msgstr "" msgstr ""
@ -4602,7 +4600,7 @@ msgstr "沒有找到使用該郵箱的使用者。"
msgid "A password reset link was sent to {email}" msgid "A password reset link was sent to {email}"
msgstr "密碼重置連結已傳送給 {email}" msgstr "密碼重置連結已傳送給 {email}"
#: bookwyrm/views/rss_feed.py:35 #: bookwyrm/views/rss_feed.py:34
#, python-brace-format #, python-brace-format
msgid "Status updates from {obj.display_name}" msgid "Status updates from {obj.display_name}"
msgstr "" msgstr ""