forked from mirrors/bookwyrm
Merge branch 'main' into production
This commit is contained in:
commit
dd16ccd093
65 changed files with 7529 additions and 2146 deletions
|
@ -8,6 +8,8 @@ USE_HTTPS=true
|
|||
DOMAIN=your.domain.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
|
||||
DEFAULT_LANGUAGE="English"
|
||||
|
||||
|
|
|
@ -444,6 +444,12 @@ class ListForm(CustomForm):
|
|||
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 Meta:
|
||||
model = models.Group
|
||||
|
|
|
@ -19,9 +19,7 @@ def init_permissions():
|
|||
{
|
||||
"codename": "edit_instance_settings",
|
||||
"name": "change the instance info",
|
||||
"groups": [
|
||||
"admin",
|
||||
],
|
||||
"groups": ["admin"],
|
||||
},
|
||||
{
|
||||
"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:
|
||||
permission_obj = Permission.objects.create(
|
||||
codename=permission["codename"],
|
||||
|
@ -66,15 +64,12 @@ def init_permissions():
|
|||
for group_name in permission["groups"]:
|
||||
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():
|
||||
"""access book data sources"""
|
||||
models.Connector.objects.create(
|
||||
identifier="bookwyrm.social",
|
||||
name="BookWyrm dot Social",
|
||||
name="Bookwyrm.social",
|
||||
connector_file="bookwyrm_connector",
|
||||
base_url="https://bookwyrm.social",
|
||||
books_url="https://bookwyrm.social/book",
|
||||
|
@ -84,6 +79,7 @@ def init_connectors():
|
|||
priority=2,
|
||||
)
|
||||
|
||||
# pylint: disable=line-too-long
|
||||
models.Connector.objects.create(
|
||||
identifier="inventaire.io",
|
||||
name="Inventaire",
|
||||
|
@ -127,7 +123,7 @@ def init_settings():
|
|||
)
|
||||
|
||||
|
||||
def init_link_domains(*_):
|
||||
def init_link_domains():
|
||||
"""safe book links"""
|
||||
domains = [
|
||||
("standardebooks.org", "Standard EBooks"),
|
||||
|
@ -144,10 +140,15 @@ def init_link_domains(*_):
|
|||
)
|
||||
|
||||
|
||||
# pylint: disable=no-self-use
|
||||
# pylint: disable=unused-argument
|
||||
class Command(BaseCommand):
|
||||
"""command-line options"""
|
||||
|
||||
help = "Initializes the database with starter data"
|
||||
|
||||
def add_arguments(self, parser):
|
||||
"""specify which function to run"""
|
||||
parser.add_argument(
|
||||
"--limit",
|
||||
default=None,
|
||||
|
@ -155,6 +156,7 @@ class Command(BaseCommand):
|
|||
)
|
||||
|
||||
def handle(self, *args, **options):
|
||||
"""execute init"""
|
||||
limit = options.get("limit")
|
||||
tables = [
|
||||
"group",
|
||||
|
@ -164,7 +166,7 @@ class Command(BaseCommand):
|
|||
"settings",
|
||||
"linkdomain",
|
||||
]
|
||||
if limit not in tables:
|
||||
if limit and limit not in tables:
|
||||
raise Exception("Invalid table limit:", limit)
|
||||
|
||||
if not limit or limit == "group":
|
||||
|
|
21
bookwyrm/migrations/0130_alter_listitem_notes.py
Normal file
21
bookwyrm/migrations/0130_alter_listitem_notes.py
Normal 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
|
||||
),
|
||||
),
|
||||
]
|
37
bookwyrm/migrations/0130_alter_user_preferred_language.py
Normal file
37
bookwyrm/migrations/0130_alter_user_preferred_language.py
Normal 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,
|
||||
),
|
||||
),
|
||||
]
|
13
bookwyrm/migrations/0131_merge_20220125_1644.py
Normal file
13
bookwyrm/migrations/0131_merge_20220125_1644.py
Normal 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 = []
|
|
@ -2,6 +2,7 @@
|
|||
import uuid
|
||||
|
||||
from django.apps import apps
|
||||
from django.core.exceptions import PermissionDenied
|
||||
from django.db import models
|
||||
from django.db.models import Q
|
||||
from django.utils import timezone
|
||||
|
@ -74,6 +75,22 @@ class List(OrderedCollectionMixin, BookWyrmModel):
|
|||
return
|
||||
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
|
||||
def followers_filter(cls, queryset, viewer):
|
||||
"""Override filter for "followers" privacy level to allow non-following
|
||||
|
@ -125,7 +142,7 @@ class ListItem(CollectionItemMixin, BookWyrmModel):
|
|||
user = fields.ForeignKey(
|
||||
"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)
|
||||
order = fields.IntegerField()
|
||||
endorsement = models.ManyToManyField("User", related_name="endorsers")
|
||||
|
|
|
@ -14,7 +14,7 @@ VERSION = "0.2.0"
|
|||
PAGE_LENGTH = env("PAGE_LENGTH", 15)
|
||||
DEFAULT_LANGUAGE = env("DEFAULT_LANGUAGE", "English")
|
||||
|
||||
JS_CACHE = "76c5ff1f"
|
||||
JS_CACHE = "7b5303af"
|
||||
|
||||
# email
|
||||
EMAIL_BACKEND = env("EMAIL_BACKEND", "django.core.mail.backends.smtp.EmailBackend")
|
||||
|
@ -243,7 +243,7 @@ AUTH_PASSWORD_VALIDATORS = [
|
|||
# Internationalization
|
||||
# https://docs.djangoproject.com/en/3.2/topics/i18n/
|
||||
|
||||
LANGUAGE_CODE = "en-us"
|
||||
LANGUAGE_CODE = env("LANGUAGE_CODE", "en-us")
|
||||
LANGUAGES = [
|
||||
("en-us", _("English")),
|
||||
("de-de", _("Deutsch (German)")),
|
||||
|
@ -255,6 +255,7 @@ LANGUAGES = [
|
|||
("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)")),
|
||||
]
|
||||
|
|
|
@ -122,39 +122,13 @@ let BookWyrm = new (class {
|
|||
*/
|
||||
updateCountElement(counter, data) {
|
||||
let count = data.count;
|
||||
const count_by_type = data.count_by_type;
|
||||
|
||||
if (count === undefined) {
|
||||
return;
|
||||
}
|
||||
|
||||
const currentCount = counter.innerText;
|
||||
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) {
|
||||
this.addRemoveClass(counter.closest("[data-poll-wrapper]"), "is-hidden", count < 1);
|
||||
|
@ -517,7 +491,7 @@ let BookWyrm = new (class {
|
|||
|
||||
duplicateInput(event) {
|
||||
const trigger = event.currentTarget;
|
||||
const input_id = trigger.dataset["duplicate"];
|
||||
const input_id = trigger.dataset.duplicate;
|
||||
const orig = document.getElementById(input_id);
|
||||
const parent = orig.parentNode;
|
||||
const new_count = parent.querySelectorAll("input").length + 1;
|
||||
|
|
|
@ -24,9 +24,12 @@
|
|||
|
||||
{# announcements and system messages #}
|
||||
{% if not activities.number > 1 %}
|
||||
<a href="{{ request.path }}" class="transition-y is-hidden notification is-primary is-block" data-poll-wrapper>
|
||||
{% blocktrans with tab_key=tab.key %}load <span data-poll="stream/{{ tab_key }}">0</span> unread status(es){% endblocktrans %}
|
||||
{{ allowed_status_types|json_script:"unread-notifications-wrapper" }}
|
||||
<a
|
||||
href="{{ request.path }}"
|
||||
class="transition-y is-hidden notification is-primary is-block"
|
||||
data-poll-wrapper
|
||||
>
|
||||
<span data-poll="stream/{{ tab.key }}"></span>
|
||||
</a>
|
||||
|
||||
{% if request.user.show_goal and not goal and tab.key == 'home' %}
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
<div class="modal is-active" role="dialog" aria-modal="true" aria-labelledby="get_started_header">
|
||||
<div class="modal-background"></div>
|
||||
<div class="modal-card is-fullwidth">
|
||||
<header class="modal-card-head">
|
||||
<header class="modal-card-head navbar">
|
||||
<img
|
||||
class="image logo mr-2"
|
||||
src="{% if site.logo_small %}{% get_media_prefix %}{{ site.logo_small }}{% else %}{% static "images/logo-small.png" %}{% endif %}"
|
||||
|
|
45
bookwyrm/templates/lists/add_item_modal.html
Normal file
45
bookwyrm/templates/lists/add_item_modal.html
Normal 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 %}
|
|
@ -1,5 +1,6 @@
|
|||
{% extends 'lists/layout.html' %}
|
||||
{% load i18n %}
|
||||
{% load utilities %}
|
||||
|
||||
{% block breadcrumbs %}
|
||||
<nav class="breadcrumb subtitle" aria-label="breadcrumbs">
|
||||
|
@ -38,6 +39,17 @@
|
|||
|
||||
<div class="column ml-3">
|
||||
{% 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>
|
||||
{% trans "Suggested by" %}
|
||||
|
|
20
bookwyrm/templates/lists/edit_item_form.html
Normal file
20
bookwyrm/templates/lists/edit_item_form.html
Normal 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>
|
||||
|
21
bookwyrm/templates/lists/item_notes_field.html
Normal file
21
bookwyrm/templates/lists/item_notes_field.html
Normal 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>
|
|
@ -1,9 +1,10 @@
|
|||
{% extends 'lists/layout.html' %}
|
||||
{% load i18n %}
|
||||
{% load rating_tags %}
|
||||
{% load book_display_tags %}
|
||||
{% load group_tags %}
|
||||
{% load book_display_tags %}
|
||||
{% load markdown %}
|
||||
{% load utilities %}
|
||||
|
||||
{% block breadcrumbs %}
|
||||
<nav class="breadcrumb subtitle" aria-label="breadcrumbs">
|
||||
|
@ -21,7 +22,7 @@
|
|||
{% block panel %}
|
||||
{% if request.user == list.user and pending_count %}
|
||||
<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>
|
||||
</p>
|
||||
</div>
|
||||
|
@ -46,21 +47,16 @@
|
|||
{% for item in items %}
|
||||
<li class="block mb-5">
|
||||
<div class="card">
|
||||
{% with book=item.book %}
|
||||
<div
|
||||
class="
|
||||
card-content p-0 mb-0
|
||||
columns is-gapless
|
||||
is-mobile
|
||||
"
|
||||
>
|
||||
<div class="column is-3-mobile is-2-tablet is-cover align to-t">
|
||||
<div class="card-content">
|
||||
{% with book=item.book %}
|
||||
<div class="columns is-mobile">
|
||||
<div class="column is-narrow is-cover">
|
||||
<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' %}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="column mx-3 my-2">
|
||||
<div class="column">
|
||||
<p>
|
||||
{% include 'snippets/book_titleby.html' %}
|
||||
</p>
|
||||
|
@ -73,8 +69,54 @@
|
|||
{% include 'snippets/shelve_button/shelve_button.html' with book=book %}
|
||||
</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-item">
|
||||
<p>
|
||||
|
@ -195,23 +237,19 @@
|
|||
<div class="column ml-3">
|
||||
<p>{% include 'snippets/book_titleby.html' with book=book %}</p>
|
||||
|
||||
<form
|
||||
class="mt-1"
|
||||
name="add-book-{{ book.id }}"
|
||||
method="post"
|
||||
action="{% url 'list-add-book' %}{% if query %}?q={{ query }}{% endif %}"
|
||||
{% join "add_item" list.id book.id as modal_id %}
|
||||
<button
|
||||
type="button"
|
||||
class="button is-small is-link"
|
||||
data-modal-open="{{ modal_id }}"
|
||||
>
|
||||
{% csrf_token %}
|
||||
<input type="hidden" name="book" value="{{ book.id }}">
|
||||
<input type="hidden" name="list" value="{{ list.id }}">
|
||||
<button type="submit" class="button is-small 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>
|
||||
</form>
|
||||
{% if list.curation == 'open' or request.user == list.user or list.group|is_member:request.user %}
|
||||
{% trans "Add" %}
|
||||
{% else %}
|
||||
{% trans "Suggest" %}
|
||||
{% endif %}
|
||||
</button>
|
||||
{% include "lists/add_item_modal.html" with id=modal_id %}
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
@ -225,7 +263,7 @@
|
|||
<textarea
|
||||
readonly
|
||||
class="textarea is-small"
|
||||
aria-labelledby="embed-label"
|
||||
aria-describedby="embed-label"
|
||||
data-copytext
|
||||
data-copytext-label="{% trans 'Copy embed code' %}"
|
||||
data-copytext-success="{% trans 'Copied!' %}"
|
||||
|
|
|
@ -6,5 +6,5 @@
|
|||
{% endblock %}
|
||||
|
||||
{% 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 %}
|
||||
|
|
|
@ -1,5 +1,78 @@
|
|||
# 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: *
|
||||
Disallow: /static/js/
|
||||
Disallow: /static/css/
|
||||
|
|
|
@ -1,4 +1,8 @@
|
|||
{% 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 }}"
|
||||
>
|
||||
|
|
113
bookwyrm/tests/management/test_initdb.py
Normal file
113
bookwyrm/tests/management/test_initdb.py
Normal 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")
|
|
@ -1,4 +1,5 @@
|
|||
""" test for app action functionality """
|
||||
import os
|
||||
import json
|
||||
from unittest.mock import patch
|
||||
|
||||
|
@ -207,3 +208,6 @@ class FederationViews(TestCase):
|
|||
created = models.FederatedServer.objects.get(server_name="server.name")
|
||||
self.assertEqual(created.status, "blocked")
|
||||
self.assertEqual(created.notes, "https://explanation.url")
|
||||
|
||||
# remove file.json after test
|
||||
os.remove("file.json")
|
||||
|
|
|
@ -4,7 +4,7 @@ from django.template.response import TemplateResponse
|
|||
from django.test import TestCase
|
||||
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
|
||||
|
||||
|
||||
|
@ -39,3 +39,35 @@ class IPBlocklistViews(TestCase):
|
|||
self.assertIsInstance(result, TemplateResponse)
|
||||
validate_html(result.render())
|
||||
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())
|
||||
|
|
|
@ -89,6 +89,14 @@ class ReportViews(TestCase):
|
|||
self.assertEqual(comment.note, "hi")
|
||||
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):
|
||||
"""a user reports another user"""
|
||||
form = forms.ReportForm()
|
||||
|
@ -103,6 +111,30 @@ class ReportViews(TestCase):
|
|||
self.assertEqual(report.reporter, self.local_user)
|
||||
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):
|
||||
"""toggle report resolution status"""
|
||||
report = models.Report.objects.create(reporter=self.local_user, user=self.rat)
|
||||
|
|
|
@ -118,6 +118,7 @@ class InboxAdd(TestCase):
|
|||
"type": "ListItem",
|
||||
"book": self.book.remote_id,
|
||||
"id": "https://example.com/listbook/6189",
|
||||
"notes": "hi hello",
|
||||
"order": 1,
|
||||
},
|
||||
"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.books.first(), self.book)
|
||||
self.assertEqual(listitem.remote_id, "https://example.com/listbook/6189")
|
||||
self.assertEqual(listitem.notes, "hi hello")
|
||||
|
|
1
bookwyrm/tests/views/lists/__init__.py
Normal file
1
bookwyrm/tests/views/lists/__init__.py
Normal file
|
@ -0,0 +1 @@
|
|||
from . import *
|
129
bookwyrm/tests/views/lists/test_curate.py
Normal file
129
bookwyrm/tests/views/lists/test_curate.py
Normal 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())
|
89
bookwyrm/tests/views/lists/test_embed.py
Normal file
89
bookwyrm/tests/views/lists/test_embed.py
Normal 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 DOESN’T 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)
|
|
@ -4,14 +4,19 @@ from unittest.mock import patch
|
|||
|
||||
from django.contrib.auth.models import AnonymousUser
|
||||
from django.core.exceptions import PermissionDenied
|
||||
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 ListActionViews(TestCase):
|
||||
"""tag views"""
|
||||
# pylint: disable=too-many-public-methods
|
||||
class ListViews(TestCase):
|
||||
"""list view"""
|
||||
|
||||
def setUp(self):
|
||||
"""we need basic test data and mocks"""
|
||||
|
@ -35,7 +40,6 @@ class ListActionViews(TestCase):
|
|||
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",
|
||||
|
@ -67,8 +71,194 @@ class ListActionViews(TestCase):
|
|||
)
|
||||
self.anonymous_user = AnonymousUser
|
||||
self.anonymous_user.is_authenticated = False
|
||||
|
||||
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):
|
||||
"""delete an entire list"""
|
||||
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
|
||||
|
@ -110,73 +300,14 @@ class ListActionViews(TestCase):
|
|||
with self.assertRaises(PermissionDenied):
|
||||
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):
|
||||
"""put a book on a list"""
|
||||
request = self.factory.post(
|
||||
"",
|
||||
{
|
||||
"book": self.book.id,
|
||||
"list": self.list.id,
|
||||
"book_list": self.list.id,
|
||||
"user": self.local_user.id,
|
||||
},
|
||||
)
|
||||
request.user = self.local_user
|
||||
|
@ -184,7 +315,7 @@ class ListActionViews(TestCase):
|
|||
with patch(
|
||||
"bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"
|
||||
) as mock:
|
||||
views.list.add_book(request)
|
||||
views.add_book(request)
|
||||
self.assertEqual(mock.call_count, 1)
|
||||
activity = json.loads(mock.call_args[1]["args"][1])
|
||||
self.assertEqual(activity["type"], "Add")
|
||||
|
@ -205,7 +336,8 @@ class ListActionViews(TestCase):
|
|||
"",
|
||||
{
|
||||
"book": self.book.id,
|
||||
"list": self.list.id,
|
||||
"book_list": self.list.id,
|
||||
"user": self.local_user.id,
|
||||
},
|
||||
)
|
||||
request_one.user = self.local_user
|
||||
|
@ -214,13 +346,14 @@ class ListActionViews(TestCase):
|
|||
"",
|
||||
{
|
||||
"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
|
||||
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
|
||||
views.list.add_book(request_one)
|
||||
views.list.add_book(request_two)
|
||||
views.add_book(request_one)
|
||||
views.add_book(request_two)
|
||||
|
||||
items = self.list.listitem_set.order_by("order").all()
|
||||
self.assertEqual(items[0].book, self.book)
|
||||
|
@ -237,7 +370,8 @@ class ListActionViews(TestCase):
|
|||
"",
|
||||
{
|
||||
"book": self.book.id,
|
||||
"list": self.list.id,
|
||||
"book_list": self.list.id,
|
||||
"user": self.local_user.id,
|
||||
},
|
||||
)
|
||||
request_one.user = self.local_user
|
||||
|
@ -246,7 +380,8 @@ class ListActionViews(TestCase):
|
|||
"",
|
||||
{
|
||||
"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
|
||||
|
@ -255,15 +390,16 @@ class ListActionViews(TestCase):
|
|||
"",
|
||||
{
|
||||
"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
|
||||
|
||||
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
|
||||
views.list.add_book(request_one)
|
||||
views.list.add_book(request_two)
|
||||
views.list.add_book(request_three)
|
||||
views.add_book(request_one)
|
||||
views.add_book(request_two)
|
||||
views.add_book(request_three)
|
||||
|
||||
items = self.list.listitem_set.order_by("order").all()
|
||||
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.user = self.local_user
|
||||
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()
|
||||
self.assertEqual(items[0].book, self.book)
|
||||
self.assertEqual(items[1].book, self.book_three)
|
||||
|
@ -293,7 +429,8 @@ class ListActionViews(TestCase):
|
|||
"",
|
||||
{
|
||||
"book": self.book_three.id,
|
||||
"list": self.list.id,
|
||||
"book_list": self.list.id,
|
||||
"user": self.local_user.id,
|
||||
},
|
||||
)
|
||||
request.user = self.local_user
|
||||
|
@ -312,7 +449,7 @@ class ListActionViews(TestCase):
|
|||
approved=False,
|
||||
order=2,
|
||||
)
|
||||
views.list.add_book(request)
|
||||
views.add_book(request)
|
||||
|
||||
items = self.list.listitem_set.order_by("order").all()
|
||||
self.assertEqual(items[0].book, self.book)
|
||||
|
@ -403,7 +540,8 @@ class ListActionViews(TestCase):
|
|||
"",
|
||||
{
|
||||
"book": self.book.id,
|
||||
"list": self.list.id,
|
||||
"book_list": self.list.id,
|
||||
"user": self.local_user.id,
|
||||
},
|
||||
)
|
||||
request_one.user = self.local_user
|
||||
|
@ -412,7 +550,8 @@ class ListActionViews(TestCase):
|
|||
"",
|
||||
{
|
||||
"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
|
||||
|
@ -421,15 +560,16 @@ class ListActionViews(TestCase):
|
|||
"",
|
||||
{
|
||||
"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
|
||||
|
||||
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
|
||||
views.list.add_book(request_one)
|
||||
views.list.add_book(request_two)
|
||||
views.list.add_book(request_three)
|
||||
views.add_book(request_one)
|
||||
views.add_book(request_two)
|
||||
views.add_book(request_three)
|
||||
|
||||
items = self.list.listitem_set.order_by("order").all()
|
||||
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.user = self.local_user
|
||||
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()
|
||||
self.assertEqual(items[0].book, self.book_three)
|
||||
self.assertEqual(items[1].book, self.book)
|
||||
|
@ -459,7 +599,8 @@ class ListActionViews(TestCase):
|
|||
"",
|
||||
{
|
||||
"book": self.book.id,
|
||||
"list": self.list.id,
|
||||
"book_list": self.list.id,
|
||||
"user": self.rat.id,
|
||||
},
|
||||
)
|
||||
request.user = self.rat
|
||||
|
@ -467,7 +608,7 @@ class ListActionViews(TestCase):
|
|||
with patch(
|
||||
"bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"
|
||||
) as mock:
|
||||
views.list.add_book(request)
|
||||
views.add_book(request)
|
||||
self.assertEqual(mock.call_count, 1)
|
||||
activity = json.loads(mock.call_args[1]["args"][1])
|
||||
self.assertEqual(activity["type"], "Add")
|
||||
|
@ -487,7 +628,8 @@ class ListActionViews(TestCase):
|
|||
"",
|
||||
{
|
||||
"book": self.book.id,
|
||||
"list": self.list.id,
|
||||
"book_list": self.list.id,
|
||||
"user": self.rat.id,
|
||||
},
|
||||
)
|
||||
request.user = self.rat
|
||||
|
@ -495,7 +637,7 @@ class ListActionViews(TestCase):
|
|||
with patch(
|
||||
"bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"
|
||||
) as mock:
|
||||
views.list.add_book(request)
|
||||
views.add_book(request)
|
||||
|
||||
self.assertEqual(mock.call_count, 1)
|
||||
activity = json.loads(mock.call_args[1]["args"][1])
|
||||
|
@ -519,7 +661,8 @@ class ListActionViews(TestCase):
|
|||
"",
|
||||
{
|
||||
"book": self.book.id,
|
||||
"list": self.list.id,
|
||||
"book_list": self.list.id,
|
||||
"user": self.local_user.id,
|
||||
},
|
||||
)
|
||||
request.user = self.local_user
|
||||
|
@ -527,7 +670,7 @@ class ListActionViews(TestCase):
|
|||
with patch(
|
||||
"bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"
|
||||
) as mock:
|
||||
views.list.add_book(request)
|
||||
views.add_book(request)
|
||||
self.assertEqual(mock.call_count, 1)
|
||||
activity = json.loads(mock.call_args[1]["args"][1])
|
||||
self.assertEqual(activity["type"], "Add")
|
||||
|
@ -539,6 +682,23 @@ class ListActionViews(TestCase):
|
|||
self.assertEqual(item.user, self.local_user)
|
||||
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):
|
||||
"""take an item off a list"""
|
||||
|
||||
|
@ -555,7 +715,7 @@ class ListActionViews(TestCase):
|
|||
request.user = self.local_user
|
||||
|
||||
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())
|
||||
|
||||
def test_remove_book_unauthorized(self):
|
||||
|
@ -569,7 +729,7 @@ class ListActionViews(TestCase):
|
|||
request.user = self.rat
|
||||
|
||||
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())
|
||||
|
||||
def test_save_unsave_list(self):
|
70
bookwyrm/tests/views/lists/test_list_item.py
Normal file
70
bookwyrm/tests/views/lists/test_list_item.py
Normal 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")
|
161
bookwyrm/tests/views/lists/test_lists.py
Normal file
161
bookwyrm/tests/views/lists/test_lists.py
Normal 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")
|
|
@ -140,3 +140,14 @@ class AnnualSummary(TestCase):
|
|||
self.assertIsInstance(result, TemplateResponse)
|
||||
validate_html(result.render())
|
||||
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")
|
||||
|
|
|
@ -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 DOESN’T 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)
|
|
@ -45,31 +45,51 @@ class UpdateViews(TestCase):
|
|||
data = json.loads(result.getvalue())
|
||||
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"""
|
||||
request = self.factory.get("")
|
||||
request.user = self.local_user
|
||||
|
||||
with patch(
|
||||
"bookwyrm.activitystreams.ActivityStream.get_unread_count"
|
||||
) as mock_count:
|
||||
with patch(
|
||||
# pylint:disable=line-too-long
|
||||
"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 = {"review": 5}
|
||||
result = views.get_unread_status_count(request, "home")
|
||||
) 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 = {"review": 5}
|
||||
result = views.get_unread_status_string(request, "home")
|
||||
|
||||
self.assertIsInstance(result, JsonResponse)
|
||||
data = json.loads(result.getvalue())
|
||||
self.assertEqual(data["count"], 3)
|
||||
self.assertEqual(data["count_by_type"]["review"], 5)
|
||||
self.assertEqual(data["count"], "Load 5 unread statuses")
|
||||
|
||||
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"""
|
||||
request = self.factory.get("")
|
||||
request.user = self.local_user
|
||||
|
||||
with self.assertRaises(Http404):
|
||||
views.get_unread_status_count(request, "fish")
|
||||
views.get_unread_status_string(request, "fish")
|
||||
|
|
|
@ -369,16 +369,21 @@ urlpatterns = [
|
|||
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/(?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/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(
|
||||
r"^list/(?P<list_id>\d+)/remove/?$",
|
||||
views.list.remove_book,
|
||||
views.remove_book,
|
||||
name="list-remove-book",
|
||||
),
|
||||
re_path(
|
||||
r"^list-item/(?P<list_item_id>\d+)/set-position$",
|
||||
views.list.set_book_position,
|
||||
views.set_book_position,
|
||||
name="list-set-book-position",
|
||||
),
|
||||
re_path(
|
||||
|
|
|
@ -61,6 +61,21 @@ from .imports.manually_review import (
|
|||
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
|
||||
from .author import Author, EditAuthor, update_author_from_remote
|
||||
from .directory import Directory
|
||||
|
@ -90,8 +105,6 @@ from .group import (
|
|||
from .inbox import Inbox
|
||||
from .interaction import Favorite, Unfavorite, Boost, Unboost
|
||||
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 .outbox import Outbox
|
||||
from .reading import ReadThrough, delete_readthrough, delete_progressupdate
|
||||
|
@ -101,7 +114,7 @@ from .rss_feed import RssFeed
|
|||
from .search import Search
|
||||
from .status import CreateStatus, EditStatus, DeleteStatus, update_progress
|
||||
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 .wellknown import *
|
||||
from .annual_summary import (
|
||||
|
|
|
@ -62,7 +62,6 @@ class Feed(View):
|
|||
"streams": STREAMS,
|
||||
"goal_form": forms.GoalForm(),
|
||||
"feed_status_types_options": FeedFilterChoices,
|
||||
"allowed_status_types": request.user.feed_status_types,
|
||||
"filters_applied": filters_applied,
|
||||
"path": f"/{tab['key']}",
|
||||
"annual_summary_year": get_annual_summary_year(),
|
||||
|
|
|
@ -57,14 +57,7 @@ class GetStartedBooks(View):
|
|||
if len(book_results) < 5:
|
||||
popular_books = (
|
||||
models.Edition.objects.exclude(
|
||||
# exclude already shelved
|
||||
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
|
||||
Q( # exclude if it's already in search results
|
||||
parent_work__in=[b.parent_work for b in book_results]
|
||||
)
|
||||
)
|
||||
|
|
55
bookwyrm/views/list/curate.py
Normal file
55
bookwyrm/views/list/curate.py
Normal 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)
|
75
bookwyrm/views/list/embed.py
Normal file
75
bookwyrm/views/list/embed.py
Normal 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)
|
|
@ -3,96 +3,26 @@ from typing import Optional
|
|||
from urllib.parse import urlencode
|
||||
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.core.exceptions import PermissionDenied
|
||||
from django.core.paginator import Paginator
|
||||
from django.db import IntegrityError, transaction
|
||||
from django.db.models import Avg, DecimalField, Q, Max
|
||||
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.template.response import TemplateResponse
|
||||
from django.urls import reverse
|
||||
from django.utils.decorators import method_decorator
|
||||
from django.views import View
|
||||
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.activitypub import ActivitypubResponse
|
||||
from bookwyrm.lists_stream import ListsStream
|
||||
from bookwyrm.settings import PAGE_LENGTH
|
||||
from .helpers import is_api_request
|
||||
from .helpers import get_user_from_username
|
||||
from bookwyrm.views.helpers import is_api_request
|
||||
|
||||
|
||||
# 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):
|
||||
"""book list page"""
|
||||
|
||||
|
@ -191,7 +121,8 @@ class List(View):
|
|||
|
||||
form = forms.ListForm(request.POST, instance=book_list)
|
||||
if not form.is_valid():
|
||||
return redirect("list", book_list.id)
|
||||
# this shouldn't happen
|
||||
raise Exception(form.errors)
|
||||
book_list = form.save()
|
||||
if not book_list.curation == "group":
|
||||
book_list.group = None
|
||||
|
@ -200,103 +131,6 @@ class List(View):
|
|||
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
|
||||
@login_required
|
||||
def save_list(request, list_id):
|
||||
|
@ -330,53 +164,41 @@ def delete_list(request, list_id):
|
|||
|
||||
@require_POST
|
||||
@login_required
|
||||
@transaction.atomic
|
||||
def add_book(request):
|
||||
"""put a book on a list"""
|
||||
book_list = get_object_or_404(models.List, id=request.POST.get("list"))
|
||||
is_group_member = False
|
||||
if book_list.curation == "group":
|
||||
is_group_member = models.GroupMember.objects.filter(
|
||||
group=book_list.group, user=request.user
|
||||
).exists()
|
||||
|
||||
book_list = get_object_or_404(models.List, id=request.POST.get("book_list"))
|
||||
# make sure the user is allowed to submit to this list
|
||||
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:
|
||||
if (
|
||||
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()
|
||||
item.save()
|
||||
except IntegrityError:
|
||||
# if the book is already on the list, don't flip out
|
||||
pass
|
||||
|
@ -499,11 +321,3 @@ def normalize_book_list_ordering(book_list_id, start=0, add_offset=0):
|
|||
if item.order != effective_order:
|
||||
item.order = effective_order
|
||||
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)
|
22
bookwyrm/views/list/list_item.py
Normal file
22
bookwyrm/views/list/list_item.py
Normal 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)
|
80
bookwyrm/views/list/lists.py
Normal file
80
bookwyrm/views/list/lists.py
Normal 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)
|
|
@ -1,6 +1,7 @@
|
|||
""" endpoints for getting updates about activity """
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.http import Http404, JsonResponse
|
||||
from django.utils.translation import ngettext
|
||||
|
||||
from bookwyrm import activitystreams
|
||||
|
||||
|
@ -17,14 +18,31 @@ def get_notification_count(request):
|
|||
|
||||
|
||||
@login_required
|
||||
def get_unread_status_count(request, stream="home"):
|
||||
def get_unread_status_string(request, stream="home"):
|
||||
"""any unread statuses for this feed?"""
|
||||
stream = activitystreams.streams.get(stream)
|
||||
if not stream:
|
||||
raise Http404
|
||||
return JsonResponse(
|
||||
{
|
||||
"count": stream.get_unread_count(request.user),
|
||||
"count_by_type": stream.get_unread_count_by_status_type(request.user),
|
||||
}
|
||||
)
|
||||
|
||||
counts_by_type = stream.get_unread_count_by_status_type(request.user).items()
|
||||
if counts_by_type == {}:
|
||||
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)})
|
||||
|
|
|
@ -30,17 +30,15 @@ class User(View):
|
|||
|
||||
shelf_preview = []
|
||||
|
||||
# only show other shelves that should be visible
|
||||
# only show shelves that should be visible
|
||||
shelves = user.shelf_set
|
||||
is_self = request.user.id == user.id
|
||||
if not is_self:
|
||||
shelves = models.Shelf.privacy_filter(
|
||||
request.user, privacy_levels=["public", "followers"]
|
||||
).filter(user=user)
|
||||
).filter(user=user, books__isnull=False)
|
||||
|
||||
for user_shelf in shelves.all():
|
||||
if not user_shelf.books.count():
|
||||
continue
|
||||
for user_shelf in shelves.all()[:3]:
|
||||
shelf_preview.append(
|
||||
{
|
||||
"name": user_shelf.name,
|
||||
|
@ -49,8 +47,6 @@ class User(View):
|
|||
"size": user_shelf.books.count(),
|
||||
}
|
||||
)
|
||||
if len(shelf_preview) > 2:
|
||||
break
|
||||
|
||||
# user's posts
|
||||
activities = (
|
||||
|
|
|
@ -2,8 +2,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: bookwyrm\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-01-17 19:26+0000\n"
|
||||
"PO-Revision-Date: 2022-01-20 08:20\n"
|
||||
"POT-Creation-Date: 2022-01-24 17:25+0000\n"
|
||||
"PO-Revision-Date: 2022-01-24 18:55\n"
|
||||
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
|
||||
"Language-Team: German\n"
|
||||
"Language: de\n"
|
||||
|
@ -56,11 +56,11 @@ msgstr "Buchtitel"
|
|||
|
||||
#: bookwyrm/forms.py:485 bookwyrm/templates/shelf/shelf.html:155
|
||||
#: bookwyrm/templates/shelf/shelf.html:187
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:33
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:32
|
||||
msgid "Rating"
|
||||
msgstr "Bewertung"
|
||||
|
||||
#: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:134
|
||||
#: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:135
|
||||
msgid "Sort By"
|
||||
msgstr "Sortieren nach"
|
||||
|
||||
|
@ -224,69 +224,69 @@ msgstr "Zitate"
|
|||
msgid "Everything else"
|
||||
msgstr "Alles andere"
|
||||
|
||||
#: bookwyrm/settings.py:121
|
||||
#: bookwyrm/settings.py:173
|
||||
msgid "Home Timeline"
|
||||
msgstr "Start-Zeitleiste"
|
||||
|
||||
#: bookwyrm/settings.py:121
|
||||
#: bookwyrm/settings.py:173
|
||||
msgid "Home"
|
||||
msgstr "Startseite"
|
||||
|
||||
#: bookwyrm/settings.py:122
|
||||
#: bookwyrm/settings.py:174
|
||||
msgid "Books Timeline"
|
||||
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/user/layout.html:91
|
||||
msgid "Books"
|
||||
msgstr "Bücher"
|
||||
|
||||
#: bookwyrm/settings.py:196
|
||||
#: bookwyrm/settings.py:248
|
||||
msgid "English"
|
||||
msgstr "English (Englisch)"
|
||||
|
||||
#: bookwyrm/settings.py:197
|
||||
#: bookwyrm/settings.py:249
|
||||
msgid "Deutsch (German)"
|
||||
msgstr "Deutsch"
|
||||
|
||||
#: bookwyrm/settings.py:198
|
||||
#: bookwyrm/settings.py:250
|
||||
msgid "Español (Spanish)"
|
||||
msgstr "Español (Spanisch)"
|
||||
|
||||
#: bookwyrm/settings.py:199
|
||||
#: bookwyrm/settings.py:251
|
||||
msgid "Galego (Galician)"
|
||||
msgstr "Galego (Galizisch)"
|
||||
|
||||
#: bookwyrm/settings.py:200
|
||||
#: bookwyrm/settings.py:252
|
||||
msgid "Italiano (Italian)"
|
||||
msgstr "Italiano (Italienisch)"
|
||||
|
||||
#: bookwyrm/settings.py:201
|
||||
#: bookwyrm/settings.py:253
|
||||
msgid "Français (French)"
|
||||
msgstr "Français (Französisch)"
|
||||
|
||||
#: bookwyrm/settings.py:202
|
||||
#: bookwyrm/settings.py:254
|
||||
msgid "Lietuvių (Lithuanian)"
|
||||
msgstr "Lietuvių (Litauisch)"
|
||||
|
||||
#: bookwyrm/settings.py:203
|
||||
#: bookwyrm/settings.py:255
|
||||
msgid "Norsk (Norwegian)"
|
||||
msgstr "Norsk (Norwegisch)"
|
||||
|
||||
#: bookwyrm/settings.py:204
|
||||
#: bookwyrm/settings.py:256
|
||||
msgid "Português do Brasil (Brazilian Portuguese)"
|
||||
msgstr "Português do Brasil (brasilianisches Portugiesisch)"
|
||||
|
||||
#: bookwyrm/settings.py:205
|
||||
#: bookwyrm/settings.py:257
|
||||
msgid "Português Europeu (European Portuguese)"
|
||||
msgstr "Português Europeu (Portugiesisch)"
|
||||
|
||||
#: bookwyrm/settings.py:206
|
||||
#: bookwyrm/settings.py:258
|
||||
msgid "简体中文 (Simplified Chinese)"
|
||||
msgstr "简体中文 (vereinfachtes Chinesisch)"
|
||||
|
||||
#: bookwyrm/settings.py:207
|
||||
#: bookwyrm/settings.py:259
|
||||
msgid "繁體中文 (Traditional Chinese)"
|
||||
msgstr "繁體中文 (Chinesisch, traditionell)"
|
||||
|
||||
|
@ -315,58 +315,54 @@ msgstr "Etwas ist schief gelaufen! Tut uns leid."
|
|||
msgid "About"
|
||||
msgstr "Über"
|
||||
|
||||
#: bookwyrm/templates/about/about.html:18
|
||||
#: bookwyrm/templates/about/about.html:19
|
||||
#: bookwyrm/templates/get_started/layout.html:20
|
||||
#, python-format
|
||||
msgid "Welcome to %(site_name)s!"
|
||||
msgstr "Willkommen auf %(site_name)s!"
|
||||
|
||||
#: bookwyrm/templates/about/about.html:22
|
||||
#: bookwyrm/templates/about/about.html:23
|
||||
#, 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."
|
||||
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
|
||||
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."
|
||||
|
||||
#: bookwyrm/templates/about/about.html:58
|
||||
#: bookwyrm/templates/about/about.html:59
|
||||
#, 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."
|
||||
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
|
||||
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."
|
||||
|
||||
#: 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."
|
||||
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"
|
||||
msgstr "Lerne deinen Admins kennen"
|
||||
|
||||
#: bookwyrm/templates/about/about.html:98
|
||||
#: bookwyrm/templates/about/about.html:99
|
||||
#, python-format
|
||||
msgid "\n"
|
||||
" %(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 "\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"
|
||||
" "
|
||||
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 ""
|
||||
|
||||
#: bookwyrm/templates/about/about.html:112
|
||||
#: bookwyrm/templates/about/about.html:113
|
||||
msgid "Moderator"
|
||||
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"
|
||||
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/snippets/status/status_options.html:35
|
||||
#: bookwyrm/templates/snippets/user_options.html:13
|
||||
|
@ -428,7 +424,7 @@ msgid "Copy address"
|
|||
msgstr "Adresse kopieren"
|
||||
|
||||
#: bookwyrm/templates/annual_summary/layout.html:68
|
||||
#: bookwyrm/templates/lists/list.html:230
|
||||
#: bookwyrm/templates/lists/list.html:231
|
||||
msgid "Copied!"
|
||||
msgstr "Kopiert!"
|
||||
|
||||
|
@ -497,7 +493,7 @@ msgstr "Das am schnellsten gelesene Buch dieses Jahr …"
|
|||
#: bookwyrm/templates/annual_summary/layout.html:245
|
||||
#: bookwyrm/templates/book/book.html:47
|
||||
#: bookwyrm/templates/discover/large-book.html:22
|
||||
#: bookwyrm/templates/landing/large-book.html:25
|
||||
#: bookwyrm/templates/landing/large-book.html:26
|
||||
#: bookwyrm/templates/landing/small-book.html:18
|
||||
msgid "by"
|
||||
msgstr "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/book/edit/edit_book.html:108
|
||||
#: bookwyrm/templates/book/sync_modal.html:22
|
||||
#: bookwyrm/templates/groups/members.html:30
|
||||
#: bookwyrm/templates/groups/members.html:29
|
||||
#: bookwyrm/templates/landing/password_reset.html:42
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:16
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:17
|
||||
msgid "Confirm"
|
||||
msgstr "Bestätigen"
|
||||
|
||||
|
@ -819,8 +815,8 @@ msgid "Places"
|
|||
msgstr "Orte"
|
||||
|
||||
#: bookwyrm/templates/book/book.html:348
|
||||
#: bookwyrm/templates/groups/group.html:20 bookwyrm/templates/layout.html:74
|
||||
#: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:10
|
||||
#: bookwyrm/templates/groups/group.html:19 bookwyrm/templates/layout.html:74
|
||||
#: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:11
|
||||
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
|
||||
#: bookwyrm/templates/search/layout.html:25
|
||||
#: bookwyrm/templates/search/layout.html:50
|
||||
|
@ -834,7 +830,7 @@ msgstr "Zur Liste hinzufügen"
|
|||
|
||||
#: bookwyrm/templates/book/book.html:369
|
||||
#: bookwyrm/templates/book/cover_add_modal.html:31
|
||||
#: bookwyrm/templates/lists/list.html:208
|
||||
#: bookwyrm/templates/lists/list.html:209
|
||||
#: bookwyrm/templates/settings/email_blocklist/domain_form.html:24
|
||||
#: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:31
|
||||
msgid "Add"
|
||||
|
@ -936,7 +932,7 @@ msgid "Back"
|
|||
msgstr "Zurück"
|
||||
|
||||
#: bookwyrm/templates/book/edit/edit_book_form.html:21
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:16
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:15
|
||||
msgid "Title:"
|
||||
msgstr "Titel:"
|
||||
|
||||
|
@ -1653,7 +1649,7 @@ msgid "What are you reading?"
|
|||
msgstr "Was liest du gerade?"
|
||||
|
||||
#: bookwyrm/templates/get_started/books.html:9
|
||||
#: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:162
|
||||
#: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:163
|
||||
msgid "Search for a book"
|
||||
msgstr "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/users.html:18
|
||||
#: bookwyrm/templates/get_started/users.html:19
|
||||
#: bookwyrm/templates/groups/members.html:16
|
||||
#: bookwyrm/templates/groups/members.html:17 bookwyrm/templates/layout.html:53
|
||||
#: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:166
|
||||
#: bookwyrm/templates/groups/members.html:15
|
||||
#: bookwyrm/templates/groups/members.html:16 bookwyrm/templates/layout.html:53
|
||||
#: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:167
|
||||
#: bookwyrm/templates/search/layout.html:4
|
||||
#: bookwyrm/templates/search/layout.html:9
|
||||
msgid "Search"
|
||||
|
@ -1689,7 +1685,7 @@ msgid "Popular on %(site_name)s"
|
|||
msgstr "Auf %(site_name)s beliebt"
|
||||
|
||||
#: bookwyrm/templates/get_started/books.html:58
|
||||
#: bookwyrm/templates/lists/list.html:179
|
||||
#: bookwyrm/templates/lists/list.html:180
|
||||
msgid "No books found"
|
||||
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/ip_blocklist/ip_blocklist.html:36
|
||||
#: bookwyrm/templates/snippets/follow_request_buttons.html:12
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:13
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:14
|
||||
msgid "Delete"
|
||||
msgstr "Löschen"
|
||||
|
||||
|
@ -1814,17 +1810,17 @@ msgstr "Gruppenbeschreibung:"
|
|||
msgid "Delete group"
|
||||
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."
|
||||
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/lists.html:20
|
||||
msgid "Create List"
|
||||
msgstr "Liste erstellen"
|
||||
|
||||
#: bookwyrm/templates/groups/group.html:40
|
||||
#: bookwyrm/templates/groups/group.html:39
|
||||
msgid "This group has no lists"
|
||||
msgstr "Diese Gruppe enthält keine Listen"
|
||||
|
||||
|
@ -1832,15 +1828,15 @@ msgstr "Diese Gruppe enthält keine Listen"
|
|||
msgid "Edit group"
|
||||
msgstr "Gruppe bearbeiten"
|
||||
|
||||
#: bookwyrm/templates/groups/members.html:12
|
||||
#: bookwyrm/templates/groups/members.html:11
|
||||
msgid "Search to add a user"
|
||||
msgstr "Hinzuzufügende*n Benutzer*in suchen"
|
||||
|
||||
#: bookwyrm/templates/groups/members.html:33
|
||||
#: bookwyrm/templates/groups/members.html:32
|
||||
msgid "Leave group"
|
||||
msgstr "Gruppe verlassen"
|
||||
|
||||
#: bookwyrm/templates/groups/members.html:55
|
||||
#: bookwyrm/templates/groups/members.html:54
|
||||
#: bookwyrm/templates/groups/suggested_users.html:35
|
||||
#: bookwyrm/templates/snippets/suggested_users.html:31
|
||||
#: bookwyrm/templates/user/user_preview.html:36
|
||||
|
@ -2297,18 +2293,18 @@ msgstr "Diese Liste löschen?"
|
|||
msgid "Edit List"
|
||||
msgstr "Liste bearbeiten"
|
||||
|
||||
#: bookwyrm/templates/lists/embed-list.html:7
|
||||
#: bookwyrm/templates/lists/embed-list.html:8
|
||||
#, python-format
|
||||
msgid "%(list_name)s, a list by %(owner)s"
|
||||
msgstr "%(list_name)s, eine Liste von %(owner)s"
|
||||
|
||||
#: bookwyrm/templates/lists/embed-list.html:17
|
||||
#: bookwyrm/templates/lists/embed-list.html:18
|
||||
#, python-format
|
||||
msgid "on <a href=\"/\">%(site_name)s</a>"
|
||||
msgstr "auf <a href=\"/\">%(site_name)s</a>"
|
||||
|
||||
#: bookwyrm/templates/lists/embed-list.html:26
|
||||
#: bookwyrm/templates/lists/list.html:42
|
||||
#: bookwyrm/templates/lists/embed-list.html:27
|
||||
#: bookwyrm/templates/lists/list.html:43
|
||||
msgid "This list is currently empty"
|
||||
msgstr "Diese Liste ist momentan leer"
|
||||
|
||||
|
@ -2369,76 +2365,76 @@ msgstr "Gruppe erstellen"
|
|||
msgid "Delete list"
|
||||
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!"
|
||||
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!"
|
||||
msgstr "Du hast ein Buch zu dieser Liste hinzugefügt!"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:80
|
||||
#: bookwyrm/templates/lists/list.html:81
|
||||
#, python-format
|
||||
msgid "Added by <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"
|
||||
msgstr "Listenposition"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:101
|
||||
#: bookwyrm/templates/lists/list.html:102
|
||||
#: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:21
|
||||
msgid "Set"
|
||||
msgstr "Übernehmen"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:116
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:19
|
||||
#: bookwyrm/templates/lists/list.html:117
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:20
|
||||
msgid "Remove"
|
||||
msgstr "Entfernen"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:130
|
||||
#: bookwyrm/templates/lists/list.html:147
|
||||
#: bookwyrm/templates/lists/list.html:131
|
||||
#: bookwyrm/templates/lists/list.html:148
|
||||
msgid "Sort List"
|
||||
msgstr "Liste sortieren"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:140
|
||||
#: bookwyrm/templates/lists/list.html:141
|
||||
msgid "Direction"
|
||||
msgstr "Reihenfolge"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:154
|
||||
#: bookwyrm/templates/lists/list.html:155
|
||||
msgid "Add Books"
|
||||
msgstr "Bücher hinzufügen"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:156
|
||||
#: bookwyrm/templates/lists/list.html:157
|
||||
msgid "Suggest Books"
|
||||
msgstr "Bücher vorschlagen"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:167
|
||||
#: bookwyrm/templates/lists/list.html:168
|
||||
msgid "search"
|
||||
msgstr "suchen"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:173
|
||||
#: bookwyrm/templates/lists/list.html:174
|
||||
msgid "Clear search"
|
||||
msgstr "Suche zurücksetzen"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:178
|
||||
#: bookwyrm/templates/lists/list.html:179
|
||||
#, python-format
|
||||
msgid "No books found matching the query \"%(query)s\""
|
||||
msgstr "Keine passenden Bücher zu „%(query)s“ gefunden"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:210
|
||||
#: bookwyrm/templates/lists/list.html:211
|
||||
msgid "Suggest"
|
||||
msgstr "Vorschlagen"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:221
|
||||
#: bookwyrm/templates/lists/list.html:222
|
||||
msgid "Embed this list on a website"
|
||||
msgstr "Diese Liste auf einer Webseite einbetten"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:229
|
||||
#: bookwyrm/templates/lists/list.html:230
|
||||
msgid "Copy embed code"
|
||||
msgstr "Code zum einbetten kopieren"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:231
|
||||
#: bookwyrm/templates/lists/list.html:232
|
||||
#, python-format
|
||||
msgid "%(list_name)s, a list by %(owner)s on %(site_name)s"
|
||||
msgstr "%(list_name)s, eine Liste von %(owner)s auf %(site_name)s"
|
||||
|
@ -3914,15 +3910,15 @@ msgstr "Abgeschlossen"
|
|||
msgid "This shelf is empty."
|
||||
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"
|
||||
msgstr "Einladen"
|
||||
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:24
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:25
|
||||
msgid "Uninvite"
|
||||
msgstr "Einladung stornieren"
|
||||
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:28
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:29
|
||||
#, python-format
|
||||
msgid "Remove @%(username)s"
|
||||
msgstr "@%(username)s entfernen"
|
||||
|
@ -4010,7 +4006,7 @@ msgstr "Spoileralarm!"
|
|||
msgid "Include spoiler alert"
|
||||
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
|
||||
msgid "Comment:"
|
||||
msgstr "Kommentar:"
|
||||
|
@ -4019,33 +4015,33 @@ msgstr "Kommentar:"
|
|||
msgid "Post"
|
||||
msgstr "Veröffentlichen"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:17
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:16
|
||||
msgid "Quote:"
|
||||
msgstr "Zitat:"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:25
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:24
|
||||
#, python-format
|
||||
msgid "An excerpt from '%(book_title)s'"
|
||||
msgstr "Ein Auszug aus „%(book_title)s“"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:32
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:31
|
||||
msgid "Position:"
|
||||
msgstr "Position:"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:45
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:44
|
||||
msgid "On page:"
|
||||
msgstr "Auf Seite:"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:51
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:50
|
||||
msgid "At percent:"
|
||||
msgstr "Bei Prozentsatz:"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:25
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:24
|
||||
#, python-format
|
||||
msgid "Your review of '%(book_title)s'"
|
||||
msgstr "Deine Besprechung von „%(book_title)s“"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:40
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:39
|
||||
msgid "Review:"
|
||||
msgstr "Besprechung:"
|
||||
|
||||
|
@ -4099,7 +4095,7 @@ msgid "Unfollow"
|
|||
msgstr "Entfolgen"
|
||||
|
||||
#: bookwyrm/templates/snippets/follow_request_buttons.html:7
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:8
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:9
|
||||
msgid "Accept"
|
||||
msgstr "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
|
||||
#, python-format
|
||||
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(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"
|
||||
msgstr[0] "Besprechung von „<a href='%(book_path)s'>%(book_title)s</a>“ (%(display_rating)s Stern): %(review_title)s"
|
||||
msgstr[1] "Besprechungen von „<a href='%(book_path)s'>%(book_title)s</a>“ (%(display_rating)s Stern): %(review_title)s"
|
||||
msgid "Review of \"%(book_title)s\" (%(display_rating)s star): %(review_title)s"
|
||||
msgid_plural "Review of \"%(book_title)s\" (%(display_rating)s stars): %(review_title)s"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: bookwyrm/templates/snippets/generated_status/review_pure_name.html:12
|
||||
#, python-format
|
||||
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\": %(review_title)s"
|
||||
msgstr "Besprechung von „<a href='%(book_path)s'>%(book_title)s</a>: %(review_title)s"
|
||||
msgid "Review of \"%(book_title)s\": %(review_title)s"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/snippets/goal_form.html:4
|
||||
#, python-format
|
||||
|
@ -4217,11 +4213,11 @@ msgstr "Nur für Follower*innen"
|
|||
msgid "Post privacy"
|
||||
msgstr "Beitragssichtbarkeit"
|
||||
|
||||
#: bookwyrm/templates/snippets/rate_action.html:4
|
||||
#: bookwyrm/templates/snippets/rate_action.html:5
|
||||
msgid "Leave a rating"
|
||||
msgstr "Bewerten"
|
||||
|
||||
#: bookwyrm/templates/snippets/rate_action.html:19
|
||||
#: bookwyrm/templates/snippets/rate_action.html:20
|
||||
msgid "Rate"
|
||||
msgstr "Bewerten"
|
||||
|
||||
|
@ -4315,29 +4311,29 @@ msgstr "Aus %(name)s entfernen"
|
|||
msgid "Finish reading"
|
||||
msgstr "Lesen abschließen"
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:72
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:73
|
||||
msgid "Content warning"
|
||||
msgstr "Inhaltswarnung"
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:79
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:80
|
||||
msgid "Show status"
|
||||
msgstr "Status anzeigen"
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:101
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:102
|
||||
#, python-format
|
||||
msgid "(Page %(page)s)"
|
||||
msgstr "(Seite %(page)s)"
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:103
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:104
|
||||
#, python-format
|
||||
msgid "(%(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"
|
||||
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"
|
||||
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}"
|
||||
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
|
||||
msgid "Status updates from {obj.display_name}"
|
||||
msgstr "Status -Updates von {obj.display_name}"
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: 0.0.1\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"
|
||||
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
|
||||
"Language-Team: English <LL@li.org>\n"
|
||||
|
@ -47,33 +47,33 @@ msgstr ""
|
|||
msgid "Unlimited"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/forms.py:483
|
||||
#: bookwyrm/forms.py:489
|
||||
msgid "List Order"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/forms.py:484
|
||||
#: bookwyrm/forms.py:490
|
||||
msgid "Book Title"
|
||||
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/snippets/create_status/review.html:32
|
||||
msgid "Rating"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:135
|
||||
#: bookwyrm/forms.py:493 bookwyrm/templates/lists/list.html:177
|
||||
msgid "Sort By"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/forms.py:491
|
||||
#: bookwyrm/forms.py:497
|
||||
msgid "Ascending"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/forms.py:492
|
||||
#: bookwyrm/forms.py:498
|
||||
msgid "Descending"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/forms.py:505
|
||||
#: bookwyrm/forms.py:511
|
||||
msgid "Reading finish date cannot be before start date."
|
||||
msgstr ""
|
||||
|
||||
|
@ -284,10 +284,14 @@ msgid "Português Europeu (European Portuguese)"
|
|||
msgstr ""
|
||||
|
||||
#: bookwyrm/settings.py:258
|
||||
msgid "简体中文 (Simplified Chinese)"
|
||||
msgid "Swedish (Svenska)"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/settings.py:259
|
||||
msgid "简体中文 (Simplified Chinese)"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/settings.py:260
|
||||
msgid "繁體中文 (Traditional Chinese)"
|
||||
msgstr ""
|
||||
|
||||
|
@ -316,54 +320,54 @@ msgstr ""
|
|||
msgid "About"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/about/about.html:18
|
||||
#: bookwyrm/templates/about/about.html:19
|
||||
#: bookwyrm/templates/get_started/layout.html:20
|
||||
#, python-format
|
||||
msgid "Welcome to %(site_name)s!"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/about/about.html:22
|
||||
#: bookwyrm/templates/about/about.html:23
|
||||
#, 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."
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/about/about.html:39
|
||||
#: bookwyrm/templates/about/about.html:40
|
||||
#, 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."
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/about/about.html:58
|
||||
#: bookwyrm/templates/about/about.html:59
|
||||
#, 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."
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/about/about.html:77
|
||||
#: bookwyrm/templates/about/about.html:78
|
||||
#, 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."
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/about/about.html:95
|
||||
#: bookwyrm/templates/about/about.html:96
|
||||
msgid "Meet your admins"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/about/about.html:98
|
||||
#: bookwyrm/templates/about/about.html:99
|
||||
#, 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."
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/about/about.html:112
|
||||
#: bookwyrm/templates/about/about.html:113
|
||||
msgid "Moderator"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/about/about.html:130
|
||||
#: bookwyrm/templates/about/about.html:131
|
||||
#: bookwyrm/templates/settings/users/user_moderation_actions.html:14
|
||||
#: bookwyrm/templates/snippets/status/status_options.html:35
|
||||
#: bookwyrm/templates/snippets/user_options.html:13
|
||||
|
@ -425,7 +429,7 @@ msgid "Copy address"
|
|||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/annual_summary/layout.html:68
|
||||
#: bookwyrm/templates/lists/list.html:231
|
||||
#: bookwyrm/templates/lists/list.html:269
|
||||
msgid "Copied!"
|
||||
msgstr ""
|
||||
|
||||
|
@ -690,6 +694,7 @@ msgstr ""
|
|||
#: bookwyrm/templates/book/file_links/edit_links.html:82
|
||||
#: bookwyrm/templates/groups/form.html:30
|
||||
#: bookwyrm/templates/lists/bookmark_button.html:15
|
||||
#: bookwyrm/templates/lists/edit_item_form.html:15
|
||||
#: bookwyrm/templates/lists/form.html:130
|
||||
#: bookwyrm/templates/preferences/edit_user.html:124
|
||||
#: bookwyrm/templates/readthrough/readthrough_modal.html:72
|
||||
|
@ -713,6 +718,7 @@ msgstr ""
|
|||
#: bookwyrm/templates/book/file_links/verification_modal.html:21
|
||||
#: bookwyrm/templates/book/sync_modal.html:23
|
||||
#: 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/readthrough/delete_readthrough_modal.html:23
|
||||
#: bookwyrm/templates/readthrough/readthrough_modal.html:74
|
||||
|
@ -817,7 +823,7 @@ msgstr ""
|
|||
|
||||
#: bookwyrm/templates/book/book.html:348
|
||||
#: 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/search/layout.html:25
|
||||
#: bookwyrm/templates/search/layout.html:50
|
||||
|
@ -831,7 +837,8 @@ msgstr ""
|
|||
|
||||
#: bookwyrm/templates/book/book.html:369
|
||||
#: 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/ip_blocklist/ip_address_form.html:31
|
||||
msgid "Add"
|
||||
|
@ -1551,16 +1558,11 @@ msgstr ""
|
|||
msgid "You have no messages right now."
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/feed/feed.html:28
|
||||
#, python-format
|
||||
msgid "load <span data-poll=\"stream/%(tab_key)s\">0</span> unread status(es)"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/feed/feed.html:51
|
||||
#: bookwyrm/templates/feed/feed.html:54
|
||||
msgid "There aren't any activities right now! Try following a user to get started"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/feed/feed.html:52
|
||||
#: bookwyrm/templates/feed/feed.html:55
|
||||
msgid "Alternatively, you can try enabling more status types"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1649,7 +1651,7 @@ msgid "What are you reading?"
|
|||
msgstr ""
|
||||
|
||||
#: 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"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1669,7 +1671,7 @@ msgstr ""
|
|||
#: bookwyrm/templates/get_started/users.html:19
|
||||
#: bookwyrm/templates/groups/members.html:15
|
||||
#: bookwyrm/templates/groups/members.html:16 bookwyrm/templates/layout.html:53
|
||||
#: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:167
|
||||
#: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:209
|
||||
#: bookwyrm/templates/search/layout.html:4
|
||||
#: bookwyrm/templates/search/layout.html:9
|
||||
msgid "Search"
|
||||
|
@ -1685,7 +1687,7 @@ msgid "Popular on %(site_name)s"
|
|||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/get_started/books.html:58
|
||||
#: bookwyrm/templates/lists/list.html:180
|
||||
#: bookwyrm/templates/lists/list.html:222
|
||||
msgid "No books found"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2034,7 +2036,7 @@ msgid "Approving a suggestion will permanently add the suggested book to your sh
|
|||
msgstr ""
|
||||
|
||||
#: 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
|
||||
msgid "Approve"
|
||||
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>."
|
||||
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
|
||||
msgid "Un-save"
|
||||
msgstr ""
|
||||
|
@ -2264,23 +2281,29 @@ msgstr ""
|
|||
msgid "Created by <a href=\"%(path)s\">%(username)s</a>"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/lists/curate.html:11
|
||||
#: bookwyrm/templates/lists/curate.html:12
|
||||
msgid "Curate"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/lists/curate.html:20
|
||||
#: bookwyrm/templates/lists/curate.html:21
|
||||
msgid "Pending Books"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/lists/curate.html:23
|
||||
#: bookwyrm/templates/lists/curate.html:24
|
||||
msgid "You're all set!"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/lists/curate.html:65
|
||||
#: bookwyrm/templates/lists/curate.html:77
|
||||
msgid "Discard"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2304,7 +2327,7 @@ msgid "on <a href=\"/\">%(site_name)s</a>"
|
|||
msgstr ""
|
||||
|
||||
#: 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"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2365,76 +2388,89 @@ msgstr ""
|
|||
msgid "Delete list"
|
||||
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!"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:37
|
||||
#: bookwyrm/templates/lists/list.html:38
|
||||
msgid "You successfully added a book to this list!"
|
||||
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
|
||||
msgid "Added by <a href=\"%(user_path)s\">%(username)s</a>"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:96
|
||||
#: bookwyrm/templates/lists/list.html:138
|
||||
msgid "List position"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:102
|
||||
#: bookwyrm/templates/lists/list.html:144
|
||||
#: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:21
|
||||
msgid "Set"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:117
|
||||
#: bookwyrm/templates/lists/list.html:159
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:20
|
||||
msgid "Remove"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:131
|
||||
#: bookwyrm/templates/lists/list.html:148
|
||||
#: bookwyrm/templates/lists/list.html:173
|
||||
#: bookwyrm/templates/lists/list.html:190
|
||||
msgid "Sort List"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:141
|
||||
#: bookwyrm/templates/lists/list.html:183
|
||||
msgid "Direction"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:155
|
||||
#: bookwyrm/templates/lists/list.html:197
|
||||
msgid "Add Books"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:157
|
||||
#: bookwyrm/templates/lists/list.html:199
|
||||
msgid "Suggest Books"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:168
|
||||
#: bookwyrm/templates/lists/list.html:210
|
||||
msgid "search"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:174
|
||||
#: bookwyrm/templates/lists/list.html:216
|
||||
msgid "Clear search"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:179
|
||||
#: bookwyrm/templates/lists/list.html:221
|
||||
#, python-format
|
||||
msgid "No books found matching the query \"%(query)s\""
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:211
|
||||
msgid "Suggest"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:222
|
||||
#: bookwyrm/templates/lists/list.html:260
|
||||
msgid "Embed this list on a website"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:230
|
||||
#: bookwyrm/templates/lists/list.html:268
|
||||
msgid "Copy embed code"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:232
|
||||
#: bookwyrm/templates/lists/list.html:270
|
||||
#, python-format
|
||||
msgid "%(list_name)s, a list by %(owner)s on %(site_name)s"
|
||||
msgstr ""
|
||||
|
@ -3222,10 +3258,6 @@ msgstr ""
|
|||
msgid "Version:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/federation/edit_instance.html:74
|
||||
msgid "Notes:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/federation/instance.html:19
|
||||
msgid "Details"
|
||||
msgstr ""
|
||||
|
@ -4626,7 +4658,14 @@ msgstr ""
|
|||
msgid "A password reset link was sent to {email}"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/views/rss_feed.py:35
|
||||
#: bookwyrm/views/rss_feed.py:34
|
||||
#, python-brace-format
|
||||
msgid "Status updates from {obj.display_name}"
|
||||
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.
|
@ -2,8 +2,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: bookwyrm\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-01-17 19:26+0000\n"
|
||||
"PO-Revision-Date: 2022-01-17 20:55\n"
|
||||
"POT-Creation-Date: 2022-01-24 17:25+0000\n"
|
||||
"PO-Revision-Date: 2022-01-26 11:26\n"
|
||||
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
|
||||
"Language-Team: Spanish\n"
|
||||
"Language: es\n"
|
||||
|
@ -56,11 +56,11 @@ msgstr "Título"
|
|||
|
||||
#: bookwyrm/forms.py:485 bookwyrm/templates/shelf/shelf.html:155
|
||||
#: bookwyrm/templates/shelf/shelf.html:187
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:33
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:32
|
||||
msgid "Rating"
|
||||
msgstr "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"
|
||||
msgstr "Ordenar por"
|
||||
|
||||
|
@ -224,69 +224,69 @@ msgstr "Citas"
|
|||
msgid "Everything else"
|
||||
msgstr "Todo lo demás"
|
||||
|
||||
#: bookwyrm/settings.py:121
|
||||
#: bookwyrm/settings.py:173
|
||||
msgid "Home Timeline"
|
||||
msgstr "Línea de tiempo principal"
|
||||
|
||||
#: bookwyrm/settings.py:121
|
||||
#: bookwyrm/settings.py:173
|
||||
msgid "Home"
|
||||
msgstr "Inicio"
|
||||
|
||||
#: bookwyrm/settings.py:122
|
||||
#: bookwyrm/settings.py:174
|
||||
msgid "Books Timeline"
|
||||
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/user/layout.html:91
|
||||
msgid "Books"
|
||||
msgstr "Libros"
|
||||
|
||||
#: bookwyrm/settings.py:196
|
||||
#: bookwyrm/settings.py:248
|
||||
msgid "English"
|
||||
msgstr "English (Inglés)"
|
||||
|
||||
#: bookwyrm/settings.py:197
|
||||
#: bookwyrm/settings.py:249
|
||||
msgid "Deutsch (German)"
|
||||
msgstr "Deutsch (Alemán)"
|
||||
|
||||
#: bookwyrm/settings.py:198
|
||||
#: bookwyrm/settings.py:250
|
||||
msgid "Español (Spanish)"
|
||||
msgstr "Español"
|
||||
|
||||
#: bookwyrm/settings.py:199
|
||||
#: bookwyrm/settings.py:251
|
||||
msgid "Galego (Galician)"
|
||||
msgstr "Galego (Gallego)"
|
||||
|
||||
#: bookwyrm/settings.py:200
|
||||
#: bookwyrm/settings.py:252
|
||||
msgid "Italiano (Italian)"
|
||||
msgstr "Italiano"
|
||||
|
||||
#: bookwyrm/settings.py:201
|
||||
#: bookwyrm/settings.py:253
|
||||
msgid "Français (French)"
|
||||
msgstr "Français (Francés)"
|
||||
|
||||
#: bookwyrm/settings.py:202
|
||||
#: bookwyrm/settings.py:254
|
||||
msgid "Lietuvių (Lithuanian)"
|
||||
msgstr "Lietuvių (Lituano)"
|
||||
|
||||
#: bookwyrm/settings.py:203
|
||||
#: bookwyrm/settings.py:255
|
||||
msgid "Norsk (Norwegian)"
|
||||
msgstr "Norsk (Noruego)"
|
||||
|
||||
#: bookwyrm/settings.py:204
|
||||
#: bookwyrm/settings.py:256
|
||||
msgid "Português do Brasil (Brazilian Portuguese)"
|
||||
msgstr "Português do Brasil (Portugués brasileño)"
|
||||
|
||||
#: bookwyrm/settings.py:205
|
||||
#: bookwyrm/settings.py:257
|
||||
msgid "Português Europeu (European Portuguese)"
|
||||
msgstr "Português Europeu (Portugués europeo)"
|
||||
|
||||
#: bookwyrm/settings.py:206
|
||||
#: bookwyrm/settings.py:258
|
||||
msgid "简体中文 (Simplified Chinese)"
|
||||
msgstr "简体中文 (Chino simplificado)"
|
||||
|
||||
#: bookwyrm/settings.py:207
|
||||
#: bookwyrm/settings.py:259
|
||||
msgid "繁體中文 (Traditional Chinese)"
|
||||
msgstr "繁體中文 (Chino tradicional)"
|
||||
|
||||
|
@ -315,58 +315,54 @@ msgstr "¡Algo salió mal! Disculpa."
|
|||
msgid "About"
|
||||
msgstr "Acerca de"
|
||||
|
||||
#: bookwyrm/templates/about/about.html:18
|
||||
#: bookwyrm/templates/about/about.html:19
|
||||
#: bookwyrm/templates/get_started/layout.html:20
|
||||
#, python-format
|
||||
msgid "Welcome to %(site_name)s!"
|
||||
msgstr "¡Bienvenido a %(site_name)s!"
|
||||
|
||||
#: bookwyrm/templates/about/about.html:22
|
||||
#: bookwyrm/templates/about/about.html:23
|
||||
#, 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."
|
||||
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
|
||||
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."
|
||||
|
||||
#: bookwyrm/templates/about/about.html:58
|
||||
#: bookwyrm/templates/about/about.html:59
|
||||
#, 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."
|
||||
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
|
||||
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."
|
||||
|
||||
#: 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."
|
||||
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"
|
||||
msgstr "Conoce a tus administradores"
|
||||
|
||||
#: bookwyrm/templates/about/about.html:98
|
||||
#: bookwyrm/templates/about/about.html:99
|
||||
#, python-format
|
||||
msgid "\n"
|
||||
" %(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 "\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"
|
||||
" "
|
||||
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 "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."
|
||||
|
||||
#: bookwyrm/templates/about/about.html:112
|
||||
#: bookwyrm/templates/about/about.html:113
|
||||
msgid "Moderator"
|
||||
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"
|
||||
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/snippets/status/status_options.html:35
|
||||
#: bookwyrm/templates/snippets/user_options.html:13
|
||||
|
@ -428,7 +424,7 @@ msgid "Copy address"
|
|||
msgstr "Copiar dirección"
|
||||
|
||||
#: bookwyrm/templates/annual_summary/layout.html:68
|
||||
#: bookwyrm/templates/lists/list.html:230
|
||||
#: bookwyrm/templates/lists/list.html:231
|
||||
msgid "Copied!"
|
||||
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/book/book.html:47
|
||||
#: bookwyrm/templates/discover/large-book.html:22
|
||||
#: bookwyrm/templates/landing/large-book.html:25
|
||||
#: bookwyrm/templates/landing/large-book.html:26
|
||||
#: bookwyrm/templates/landing/small-book.html:18
|
||||
msgid "by"
|
||||
msgstr "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/book/edit/edit_book.html:108
|
||||
#: bookwyrm/templates/book/sync_modal.html:22
|
||||
#: bookwyrm/templates/groups/members.html:30
|
||||
#: bookwyrm/templates/groups/members.html:29
|
||||
#: bookwyrm/templates/landing/password_reset.html:42
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:16
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:17
|
||||
msgid "Confirm"
|
||||
msgstr "Confirmar"
|
||||
|
||||
|
@ -819,8 +815,8 @@ msgid "Places"
|
|||
msgstr "Lugares"
|
||||
|
||||
#: bookwyrm/templates/book/book.html:348
|
||||
#: bookwyrm/templates/groups/group.html:20 bookwyrm/templates/layout.html:74
|
||||
#: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:10
|
||||
#: bookwyrm/templates/groups/group.html:19 bookwyrm/templates/layout.html:74
|
||||
#: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:11
|
||||
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
|
||||
#: bookwyrm/templates/search/layout.html:25
|
||||
#: bookwyrm/templates/search/layout.html:50
|
||||
|
@ -834,7 +830,7 @@ msgstr "Agregar a lista"
|
|||
|
||||
#: bookwyrm/templates/book/book.html:369
|
||||
#: bookwyrm/templates/book/cover_add_modal.html:31
|
||||
#: bookwyrm/templates/lists/list.html:208
|
||||
#: bookwyrm/templates/lists/list.html:209
|
||||
#: bookwyrm/templates/settings/email_blocklist/domain_form.html:24
|
||||
#: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:31
|
||||
msgid "Add"
|
||||
|
@ -936,7 +932,7 @@ msgid "Back"
|
|||
msgstr "Volver"
|
||||
|
||||
#: bookwyrm/templates/book/edit/edit_book_form.html:21
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:16
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:15
|
||||
msgid "Title:"
|
||||
msgstr "Título:"
|
||||
|
||||
|
@ -1653,7 +1649,7 @@ msgid "What are you reading?"
|
|||
msgstr "¿Qué estás leyendo?"
|
||||
|
||||
#: bookwyrm/templates/get_started/books.html:9
|
||||
#: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:162
|
||||
#: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:163
|
||||
msgid "Search for a book"
|
||||
msgstr "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/users.html:18
|
||||
#: bookwyrm/templates/get_started/users.html:19
|
||||
#: bookwyrm/templates/groups/members.html:16
|
||||
#: bookwyrm/templates/groups/members.html:17 bookwyrm/templates/layout.html:53
|
||||
#: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:166
|
||||
#: bookwyrm/templates/groups/members.html:15
|
||||
#: bookwyrm/templates/groups/members.html:16 bookwyrm/templates/layout.html:53
|
||||
#: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:167
|
||||
#: bookwyrm/templates/search/layout.html:4
|
||||
#: bookwyrm/templates/search/layout.html:9
|
||||
msgid "Search"
|
||||
|
@ -1689,7 +1685,7 @@ msgid "Popular on %(site_name)s"
|
|||
msgstr "Popular en %(site_name)s"
|
||||
|
||||
#: bookwyrm/templates/get_started/books.html:58
|
||||
#: bookwyrm/templates/lists/list.html:179
|
||||
#: bookwyrm/templates/lists/list.html:180
|
||||
msgid "No books found"
|
||||
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/ip_blocklist/ip_blocklist.html:36
|
||||
#: bookwyrm/templates/snippets/follow_request_buttons.html:12
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:13
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:14
|
||||
msgid "Delete"
|
||||
msgstr "Eliminar"
|
||||
|
||||
|
@ -1814,17 +1810,17 @@ msgstr "Descripción del grupo:"
|
|||
msgid "Delete group"
|
||||
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."
|
||||
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/lists.html:20
|
||||
msgid "Create List"
|
||||
msgstr "Crear lista"
|
||||
|
||||
#: bookwyrm/templates/groups/group.html:40
|
||||
#: bookwyrm/templates/groups/group.html:39
|
||||
msgid "This group has no lists"
|
||||
msgstr "Este grupo no tiene listas"
|
||||
|
||||
|
@ -1832,15 +1828,15 @@ msgstr "Este grupo no tiene listas"
|
|||
msgid "Edit group"
|
||||
msgstr "Editar grupo"
|
||||
|
||||
#: bookwyrm/templates/groups/members.html:12
|
||||
#: bookwyrm/templates/groups/members.html:11
|
||||
msgid "Search to add a user"
|
||||
msgstr "Buscar para agregar un usuario"
|
||||
|
||||
#: bookwyrm/templates/groups/members.html:33
|
||||
#: bookwyrm/templates/groups/members.html:32
|
||||
msgid "Leave group"
|
||||
msgstr "Dejar grupo"
|
||||
|
||||
#: bookwyrm/templates/groups/members.html:55
|
||||
#: bookwyrm/templates/groups/members.html:54
|
||||
#: bookwyrm/templates/groups/suggested_users.html:35
|
||||
#: bookwyrm/templates/snippets/suggested_users.html:31
|
||||
#: bookwyrm/templates/user/user_preview.html:36
|
||||
|
@ -2297,18 +2293,18 @@ msgstr "¿Eliminar esta lista?"
|
|||
msgid "Edit List"
|
||||
msgstr "Editar lista"
|
||||
|
||||
#: bookwyrm/templates/lists/embed-list.html:7
|
||||
#: bookwyrm/templates/lists/embed-list.html:8
|
||||
#, python-format
|
||||
msgid "%(list_name)s, a list by %(owner)s"
|
||||
msgstr "%(list_name)s, una lista de %(owner)s"
|
||||
|
||||
#: bookwyrm/templates/lists/embed-list.html:17
|
||||
#: bookwyrm/templates/lists/embed-list.html:18
|
||||
#, python-format
|
||||
msgid "on <a href=\"/\">%(site_name)s</a>"
|
||||
msgstr "en <a href=\"/\">%(site_name)s</a>"
|
||||
|
||||
#: bookwyrm/templates/lists/embed-list.html:26
|
||||
#: bookwyrm/templates/lists/list.html:42
|
||||
#: bookwyrm/templates/lists/embed-list.html:27
|
||||
#: bookwyrm/templates/lists/list.html:43
|
||||
msgid "This list is currently empty"
|
||||
msgstr "Esta lista está vacia"
|
||||
|
||||
|
@ -2369,76 +2365,76 @@ msgstr "Crear un grupo"
|
|||
msgid "Delete list"
|
||||
msgstr "Eliminar lista"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:34
|
||||
#: bookwyrm/templates/lists/list.html:35
|
||||
msgid "You successfully suggested a book for this list!"
|
||||
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!"
|
||||
msgstr "¡Has agregado un libro a esta lista exitosamente!"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:80
|
||||
#: bookwyrm/templates/lists/list.html:81
|
||||
#, python-format
|
||||
msgid "Added by <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"
|
||||
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
|
||||
msgid "Set"
|
||||
msgstr "Establecido"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:116
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:19
|
||||
#: bookwyrm/templates/lists/list.html:117
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:20
|
||||
msgid "Remove"
|
||||
msgstr "Quitar"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:130
|
||||
#: bookwyrm/templates/lists/list.html:147
|
||||
#: bookwyrm/templates/lists/list.html:131
|
||||
#: bookwyrm/templates/lists/list.html:148
|
||||
msgid "Sort List"
|
||||
msgstr "Ordena la lista"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:140
|
||||
#: bookwyrm/templates/lists/list.html:141
|
||||
msgid "Direction"
|
||||
msgstr "Dirección"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:154
|
||||
#: bookwyrm/templates/lists/list.html:155
|
||||
msgid "Add Books"
|
||||
msgstr "Agregar libros"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:156
|
||||
#: bookwyrm/templates/lists/list.html:157
|
||||
msgid "Suggest Books"
|
||||
msgstr "Sugerir libros"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:167
|
||||
#: bookwyrm/templates/lists/list.html:168
|
||||
msgid "search"
|
||||
msgstr "buscar"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:173
|
||||
#: bookwyrm/templates/lists/list.html:174
|
||||
msgid "Clear search"
|
||||
msgstr "Borrar búsqueda"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:178
|
||||
#: bookwyrm/templates/lists/list.html:179
|
||||
#, python-format
|
||||
msgid "No books found matching the query \"%(query)s\""
|
||||
msgstr "No se encontró ningún libro correspondiente a la búsqueda: \"%(query)s\""
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:210
|
||||
#: bookwyrm/templates/lists/list.html:211
|
||||
msgid "Suggest"
|
||||
msgstr "Sugerir"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:221
|
||||
#: bookwyrm/templates/lists/list.html:222
|
||||
msgid "Embed this list on a website"
|
||||
msgstr "Incrustar esta lista en un sitio web"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:229
|
||||
#: bookwyrm/templates/lists/list.html:230
|
||||
msgid "Copy embed code"
|
||||
msgstr "Copiar código para incrustar"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:231
|
||||
#: bookwyrm/templates/lists/list.html:232
|
||||
#, python-format
|
||||
msgid "%(list_name)s, a list by %(owner)s on %(site_name)s"
|
||||
msgstr "%(list_name)s, una lista de %(owner)s en %(site_name)s"
|
||||
|
@ -3914,15 +3910,15 @@ msgstr "Terminado"
|
|||
msgid "This shelf is empty."
|
||||
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"
|
||||
msgstr "Invitar"
|
||||
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:24
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:25
|
||||
msgid "Uninvite"
|
||||
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
|
||||
msgid "Remove @%(username)s"
|
||||
msgstr "Eliminar a @%(username)s"
|
||||
|
@ -4010,7 +4006,7 @@ msgstr "¡Advertencia, ya vienen spoilers!"
|
|||
msgid "Include spoiler alert"
|
||||
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
|
||||
msgid "Comment:"
|
||||
msgstr "Comentario:"
|
||||
|
@ -4019,33 +4015,33 @@ msgstr "Comentario:"
|
|||
msgid "Post"
|
||||
msgstr "Compartir"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:17
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:16
|
||||
msgid "Quote:"
|
||||
msgstr "Cita:"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:25
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:24
|
||||
#, python-format
|
||||
msgid "An excerpt from '%(book_title)s'"
|
||||
msgstr "Un extracto de '%(book_title)s'"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:32
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:31
|
||||
msgid "Position:"
|
||||
msgstr "Posición:"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:45
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:44
|
||||
msgid "On page:"
|
||||
msgstr "En la página:"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:51
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:50
|
||||
msgid "At percent:"
|
||||
msgstr "Al por ciento:"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:25
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:24
|
||||
#, python-format
|
||||
msgid "Your review of '%(book_title)s'"
|
||||
msgstr "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:"
|
||||
msgstr "Reseña:"
|
||||
|
||||
|
@ -4099,7 +4095,7 @@ msgid "Unfollow"
|
|||
msgstr "Dejar de seguir"
|
||||
|
||||
#: bookwyrm/templates/snippets/follow_request_buttons.html:7
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:8
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:9
|
||||
msgid "Accept"
|
||||
msgstr "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
|
||||
#, python-format
|
||||
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(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"
|
||||
msgstr[0] "Reseña de «<a href='%(book_path)s'>%(book_title)s</a>» (%(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"
|
||||
msgid "Review of \"%(book_title)s\" (%(display_rating)s star): %(review_title)s"
|
||||
msgid_plural "Review of \"%(book_title)s\" (%(display_rating)s stars): %(review_title)s"
|
||||
msgstr[0] "Reseña de «%(book_title)s» (%(display_rating)s estrella): %(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
|
||||
#, python-format
|
||||
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\": %(review_title)s"
|
||||
msgstr "Reseña de «<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 «%(book_title)s»: %(review_title)s"
|
||||
|
||||
#: bookwyrm/templates/snippets/goal_form.html:4
|
||||
#, python-format
|
||||
|
@ -4217,11 +4213,11 @@ msgstr "Solo seguidores"
|
|||
msgid "Post privacy"
|
||||
msgstr "Privacidad de publicación"
|
||||
|
||||
#: bookwyrm/templates/snippets/rate_action.html:4
|
||||
#: bookwyrm/templates/snippets/rate_action.html:5
|
||||
msgid "Leave a rating"
|
||||
msgstr "Da una valoración"
|
||||
|
||||
#: bookwyrm/templates/snippets/rate_action.html:19
|
||||
#: bookwyrm/templates/snippets/rate_action.html:20
|
||||
msgid "Rate"
|
||||
msgstr "Valorar"
|
||||
|
||||
|
@ -4315,29 +4311,29 @@ msgstr "Quitar de %(name)s"
|
|||
msgid "Finish reading"
|
||||
msgstr "Terminar de leer"
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:72
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:73
|
||||
msgid "Content warning"
|
||||
msgstr "Advertencia de contenido"
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:79
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:80
|
||||
msgid "Show status"
|
||||
msgstr "Mostrar estado"
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:101
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:102
|
||||
#, python-format
|
||||
msgid "(Page %(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
|
||||
msgid "(%(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"
|
||||
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"
|
||||
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}"
|
||||
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
|
||||
msgid "Status updates from {obj.display_name}"
|
||||
msgstr "Actualizaciones de status de {obj.display_name}"
|
||||
|
|
|
@ -2,8 +2,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: bookwyrm\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-01-17 19:26+0000\n"
|
||||
"PO-Revision-Date: 2022-01-17 20:55\n"
|
||||
"POT-Creation-Date: 2022-01-24 17:25+0000\n"
|
||||
"PO-Revision-Date: 2022-01-24 18:55\n"
|
||||
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
|
||||
"Language-Team: French\n"
|
||||
"Language: fr\n"
|
||||
|
@ -56,11 +56,11 @@ msgstr "Titre du livre"
|
|||
|
||||
#: bookwyrm/forms.py:485 bookwyrm/templates/shelf/shelf.html:155
|
||||
#: bookwyrm/templates/shelf/shelf.html:187
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:33
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:32
|
||||
msgid "Rating"
|
||||
msgstr "Note"
|
||||
|
||||
#: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:134
|
||||
#: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:135
|
||||
msgid "Sort By"
|
||||
msgstr "Trier par"
|
||||
|
||||
|
@ -224,69 +224,69 @@ msgstr "Citations"
|
|||
msgid "Everything else"
|
||||
msgstr "Tout le reste"
|
||||
|
||||
#: bookwyrm/settings.py:121
|
||||
#: bookwyrm/settings.py:173
|
||||
msgid "Home Timeline"
|
||||
msgstr "Mon fil d’actualité"
|
||||
|
||||
#: bookwyrm/settings.py:121
|
||||
#: bookwyrm/settings.py:173
|
||||
msgid "Home"
|
||||
msgstr "Accueil"
|
||||
|
||||
#: bookwyrm/settings.py:122
|
||||
#: bookwyrm/settings.py:174
|
||||
msgid "Books Timeline"
|
||||
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/user/layout.html:91
|
||||
msgid "Books"
|
||||
msgstr "Livres"
|
||||
|
||||
#: bookwyrm/settings.py:196
|
||||
#: bookwyrm/settings.py:248
|
||||
msgid "English"
|
||||
msgstr "English"
|
||||
|
||||
#: bookwyrm/settings.py:197
|
||||
#: bookwyrm/settings.py:249
|
||||
msgid "Deutsch (German)"
|
||||
msgstr "Deutsch"
|
||||
|
||||
#: bookwyrm/settings.py:198
|
||||
#: bookwyrm/settings.py:250
|
||||
msgid "Español (Spanish)"
|
||||
msgstr "Español"
|
||||
|
||||
#: bookwyrm/settings.py:199
|
||||
#: bookwyrm/settings.py:251
|
||||
msgid "Galego (Galician)"
|
||||
msgstr "Galego (Galicien)"
|
||||
|
||||
#: bookwyrm/settings.py:200
|
||||
#: bookwyrm/settings.py:252
|
||||
msgid "Italiano (Italian)"
|
||||
msgstr "Italiano (italien)"
|
||||
|
||||
#: bookwyrm/settings.py:201
|
||||
#: bookwyrm/settings.py:253
|
||||
msgid "Français (French)"
|
||||
msgstr "Français"
|
||||
|
||||
#: bookwyrm/settings.py:202
|
||||
#: bookwyrm/settings.py:254
|
||||
msgid "Lietuvių (Lithuanian)"
|
||||
msgstr "Lietuvių (Lituanien)"
|
||||
|
||||
#: bookwyrm/settings.py:203
|
||||
#: bookwyrm/settings.py:255
|
||||
msgid "Norsk (Norwegian)"
|
||||
msgstr "Norsk (norvégien)"
|
||||
|
||||
#: bookwyrm/settings.py:204
|
||||
#: bookwyrm/settings.py:256
|
||||
msgid "Português do Brasil (Brazilian Portuguese)"
|
||||
msgstr "Português do Brasil (Portugais brésilien)"
|
||||
|
||||
#: bookwyrm/settings.py:205
|
||||
#: bookwyrm/settings.py:257
|
||||
msgid "Português Europeu (European Portuguese)"
|
||||
msgstr "Português Europeu (Portugais européen)"
|
||||
|
||||
#: bookwyrm/settings.py:206
|
||||
#: bookwyrm/settings.py:258
|
||||
msgid "简体中文 (Simplified Chinese)"
|
||||
msgstr "简化字"
|
||||
|
||||
#: bookwyrm/settings.py:207
|
||||
#: bookwyrm/settings.py:259
|
||||
msgid "繁體中文 (Traditional Chinese)"
|
||||
msgstr "Infos supplémentaires :"
|
||||
|
||||
|
@ -315,58 +315,54 @@ msgstr "Une erreur s’est produite ; désolé !"
|
|||
msgid "About"
|
||||
msgstr "À propos"
|
||||
|
||||
#: bookwyrm/templates/about/about.html:18
|
||||
#: bookwyrm/templates/about/about.html:19
|
||||
#: bookwyrm/templates/get_started/layout.html:20
|
||||
#, python-format
|
||||
msgid "Welcome to %(site_name)s!"
|
||||
msgstr "Bienvenue sur %(site_name)s !"
|
||||
|
||||
#: bookwyrm/templates/about/about.html:22
|
||||
#: bookwyrm/templates/about/about.html:23
|
||||
#, 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."
|
||||
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
|
||||
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."
|
||||
|
||||
#: bookwyrm/templates/about/about.html:58
|
||||
#: bookwyrm/templates/about/about.html:59
|
||||
#, 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."
|
||||
msgstr "Sur %(site_name)s, c’est <a href=\"%(book_path)s\"><em>%(title)s</em></a> que tout le monde veut lire plus que n’importe quel autre livre."
|
||||
|
||||
#: bookwyrm/templates/about/about.html:77
|
||||
#: bookwyrm/templates/about/about.html:78
|
||||
#, 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."
|
||||
msgstr "<a href=\"%(book_path)s\"><em>%(title)s</em></a> divise les critiques plus que n’importe 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."
|
||||
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"
|
||||
msgstr "Rencontrez vos admins"
|
||||
|
||||
#: bookwyrm/templates/about/about.html:98
|
||||
#: bookwyrm/templates/about/about.html:99
|
||||
#, python-format
|
||||
msgid "\n"
|
||||
" %(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 "\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"
|
||||
" "
|
||||
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 ""
|
||||
|
||||
#: bookwyrm/templates/about/about.html:112
|
||||
#: bookwyrm/templates/about/about.html:113
|
||||
msgid "Moderator"
|
||||
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"
|
||||
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/snippets/status/status_options.html:35
|
||||
#: bookwyrm/templates/snippets/user_options.html:13
|
||||
|
@ -428,7 +424,7 @@ msgid "Copy address"
|
|||
msgstr "Copier l’adresse"
|
||||
|
||||
#: bookwyrm/templates/annual_summary/layout.html:68
|
||||
#: bookwyrm/templates/lists/list.html:230
|
||||
#: bookwyrm/templates/lists/list.html:231
|
||||
msgid "Copied!"
|
||||
msgstr "Copié !"
|
||||
|
||||
|
@ -497,7 +493,7 @@ msgstr "Sa lecture la plus courte l’année…"
|
|||
#: bookwyrm/templates/annual_summary/layout.html:245
|
||||
#: bookwyrm/templates/book/book.html:47
|
||||
#: bookwyrm/templates/discover/large-book.html:22
|
||||
#: bookwyrm/templates/landing/large-book.html:25
|
||||
#: bookwyrm/templates/landing/large-book.html:26
|
||||
#: bookwyrm/templates/landing/small-book.html:18
|
||||
msgid "by"
|
||||
msgstr "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/book/edit/edit_book.html:108
|
||||
#: bookwyrm/templates/book/sync_modal.html:22
|
||||
#: bookwyrm/templates/groups/members.html:30
|
||||
#: bookwyrm/templates/groups/members.html:29
|
||||
#: bookwyrm/templates/landing/password_reset.html:42
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:16
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:17
|
||||
msgid "Confirm"
|
||||
msgstr "Confirmer"
|
||||
|
||||
|
@ -819,8 +815,8 @@ msgid "Places"
|
|||
msgstr "Lieux"
|
||||
|
||||
#: bookwyrm/templates/book/book.html:348
|
||||
#: bookwyrm/templates/groups/group.html:20 bookwyrm/templates/layout.html:74
|
||||
#: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:10
|
||||
#: bookwyrm/templates/groups/group.html:19 bookwyrm/templates/layout.html:74
|
||||
#: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:11
|
||||
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
|
||||
#: bookwyrm/templates/search/layout.html:25
|
||||
#: bookwyrm/templates/search/layout.html:50
|
||||
|
@ -834,7 +830,7 @@ msgstr "Ajouter à la liste"
|
|||
|
||||
#: bookwyrm/templates/book/book.html:369
|
||||
#: bookwyrm/templates/book/cover_add_modal.html:31
|
||||
#: bookwyrm/templates/lists/list.html:208
|
||||
#: bookwyrm/templates/lists/list.html:209
|
||||
#: bookwyrm/templates/settings/email_blocklist/domain_form.html:24
|
||||
#: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:31
|
||||
msgid "Add"
|
||||
|
@ -936,7 +932,7 @@ msgid "Back"
|
|||
msgstr "Retour"
|
||||
|
||||
#: bookwyrm/templates/book/edit/edit_book_form.html:21
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:16
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:15
|
||||
msgid "Title:"
|
||||
msgstr "Titre :"
|
||||
|
||||
|
@ -1653,7 +1649,7 @@ msgid "What are you reading?"
|
|||
msgstr "Que lisez‑vous ?"
|
||||
|
||||
#: bookwyrm/templates/get_started/books.html:9
|
||||
#: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:162
|
||||
#: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:163
|
||||
msgid "Search for a book"
|
||||
msgstr "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/users.html:18
|
||||
#: bookwyrm/templates/get_started/users.html:19
|
||||
#: bookwyrm/templates/groups/members.html:16
|
||||
#: bookwyrm/templates/groups/members.html:17 bookwyrm/templates/layout.html:53
|
||||
#: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:166
|
||||
#: bookwyrm/templates/groups/members.html:15
|
||||
#: bookwyrm/templates/groups/members.html:16 bookwyrm/templates/layout.html:53
|
||||
#: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:167
|
||||
#: bookwyrm/templates/search/layout.html:4
|
||||
#: bookwyrm/templates/search/layout.html:9
|
||||
msgid "Search"
|
||||
|
@ -1689,7 +1685,7 @@ msgid "Popular on %(site_name)s"
|
|||
msgstr "Populaire sur %(site_name)s"
|
||||
|
||||
#: bookwyrm/templates/get_started/books.html:58
|
||||
#: bookwyrm/templates/lists/list.html:179
|
||||
#: bookwyrm/templates/lists/list.html:180
|
||||
msgid "No books found"
|
||||
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/ip_blocklist/ip_blocklist.html:36
|
||||
#: bookwyrm/templates/snippets/follow_request_buttons.html:12
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:13
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:14
|
||||
msgid "Delete"
|
||||
msgstr "Supprimer"
|
||||
|
||||
|
@ -1814,17 +1810,17 @@ msgstr "Description du groupe :"
|
|||
msgid "Delete group"
|
||||
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."
|
||||
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/lists.html:20
|
||||
msgid "Create List"
|
||||
msgstr "Créer une liste"
|
||||
|
||||
#: bookwyrm/templates/groups/group.html:40
|
||||
#: bookwyrm/templates/groups/group.html:39
|
||||
msgid "This group has no lists"
|
||||
msgstr "Ce groupe n'a pas de liste"
|
||||
|
||||
|
@ -1832,15 +1828,15 @@ msgstr "Ce groupe n'a pas de liste"
|
|||
msgid "Edit group"
|
||||
msgstr "Modifier le groupe"
|
||||
|
||||
#: bookwyrm/templates/groups/members.html:12
|
||||
#: bookwyrm/templates/groups/members.html:11
|
||||
msgid "Search to add a user"
|
||||
msgstr "Chercher et ajouter un·e utilisateur·rice"
|
||||
|
||||
#: bookwyrm/templates/groups/members.html:33
|
||||
#: bookwyrm/templates/groups/members.html:32
|
||||
msgid "Leave group"
|
||||
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/snippets/suggested_users.html:31
|
||||
#: bookwyrm/templates/user/user_preview.html:36
|
||||
|
@ -2297,18 +2293,18 @@ msgstr "Supprimer cette liste ?"
|
|||
msgid "Edit List"
|
||||
msgstr "Modifier la liste"
|
||||
|
||||
#: bookwyrm/templates/lists/embed-list.html:7
|
||||
#: bookwyrm/templates/lists/embed-list.html:8
|
||||
#, python-format
|
||||
msgid "%(list_name)s, a list by %(owner)s"
|
||||
msgstr "%(list_name)s, une liste de %(owner)s"
|
||||
|
||||
#: bookwyrm/templates/lists/embed-list.html:17
|
||||
#: bookwyrm/templates/lists/embed-list.html:18
|
||||
#, python-format
|
||||
msgid "on <a href=\"/\">%(site_name)s</a>"
|
||||
msgstr "sur <a href=\"/\">%(site_name)s</a>"
|
||||
|
||||
#: bookwyrm/templates/lists/embed-list.html:26
|
||||
#: bookwyrm/templates/lists/list.html:42
|
||||
#: bookwyrm/templates/lists/embed-list.html:27
|
||||
#: bookwyrm/templates/lists/list.html:43
|
||||
msgid "This list is currently empty"
|
||||
msgstr "Cette liste est actuellement vide"
|
||||
|
||||
|
@ -2369,76 +2365,76 @@ msgstr "Créer un Groupe"
|
|||
msgid "Delete list"
|
||||
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!"
|
||||
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!"
|
||||
msgstr "Vous avez ajouté un livre à cette liste !"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:80
|
||||
#: bookwyrm/templates/lists/list.html:81
|
||||
#, python-format
|
||||
msgid "Added by <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"
|
||||
msgstr "Position"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:101
|
||||
#: bookwyrm/templates/lists/list.html:102
|
||||
#: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:21
|
||||
msgid "Set"
|
||||
msgstr "Appliquer"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:116
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:19
|
||||
#: bookwyrm/templates/lists/list.html:117
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:20
|
||||
msgid "Remove"
|
||||
msgstr "Retirer"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:130
|
||||
#: bookwyrm/templates/lists/list.html:147
|
||||
#: bookwyrm/templates/lists/list.html:131
|
||||
#: bookwyrm/templates/lists/list.html:148
|
||||
msgid "Sort List"
|
||||
msgstr "Trier la liste"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:140
|
||||
#: bookwyrm/templates/lists/list.html:141
|
||||
msgid "Direction"
|
||||
msgstr "Direction"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:154
|
||||
#: bookwyrm/templates/lists/list.html:155
|
||||
msgid "Add Books"
|
||||
msgstr "Ajouter des livres"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:156
|
||||
#: bookwyrm/templates/lists/list.html:157
|
||||
msgid "Suggest Books"
|
||||
msgstr "Suggérer des livres"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:167
|
||||
#: bookwyrm/templates/lists/list.html:168
|
||||
msgid "search"
|
||||
msgstr "chercher"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:173
|
||||
#: bookwyrm/templates/lists/list.html:174
|
||||
msgid "Clear search"
|
||||
msgstr "Vider la requête"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:178
|
||||
#: bookwyrm/templates/lists/list.html:179
|
||||
#, python-format
|
||||
msgid "No books found matching the query \"%(query)s\""
|
||||
msgstr "Aucun livre trouvé pour la requête « %(query)s »"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:210
|
||||
#: bookwyrm/templates/lists/list.html:211
|
||||
msgid "Suggest"
|
||||
msgstr "Suggérer"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:221
|
||||
#: bookwyrm/templates/lists/list.html:222
|
||||
msgid "Embed this list on a website"
|
||||
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"
|
||||
msgstr "Copier le code d'intégration"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:231
|
||||
#: bookwyrm/templates/lists/list.html:232
|
||||
#, python-format
|
||||
msgid "%(list_name)s, a list by %(owner)s on %(site_name)s"
|
||||
msgstr "%(list_name)s, une liste de %(owner)s sur %(site_name)s"
|
||||
|
@ -3914,15 +3910,15 @@ msgstr "Terminé"
|
|||
msgid "This shelf is empty."
|
||||
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"
|
||||
msgstr "Inviter"
|
||||
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:24
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:25
|
||||
msgid "Uninvite"
|
||||
msgstr "Annuler l'invitation"
|
||||
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:28
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:29
|
||||
#, python-format
|
||||
msgid "Remove @%(username)s"
|
||||
msgstr "Retirer @%(username)s"
|
||||
|
@ -4010,7 +4006,7 @@ msgstr "Attention spoilers !"
|
|||
msgid "Include spoiler alert"
|
||||
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
|
||||
msgid "Comment:"
|
||||
msgstr "Commentaire :"
|
||||
|
@ -4019,33 +4015,33 @@ msgstr "Commentaire :"
|
|||
msgid "Post"
|
||||
msgstr "Publier"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:17
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:16
|
||||
msgid "Quote:"
|
||||
msgstr "Citation :"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:25
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:24
|
||||
#, python-format
|
||||
msgid "An excerpt from '%(book_title)s'"
|
||||
msgstr "Un extrait de '%(book_title)s'"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:32
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:31
|
||||
msgid "Position:"
|
||||
msgstr "Emplacement :"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:45
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:44
|
||||
msgid "On page:"
|
||||
msgstr "À la page :"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:51
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:50
|
||||
msgid "At percent:"
|
||||
msgstr "Au pourcentage :"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:25
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:24
|
||||
#, python-format
|
||||
msgid "Your review of '%(book_title)s'"
|
||||
msgstr "Votre critique de '%(book_title)s'"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:40
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:39
|
||||
msgid "Review:"
|
||||
msgstr "Critique :"
|
||||
|
||||
|
@ -4099,7 +4095,7 @@ msgid "Unfollow"
|
|||
msgstr "Se désabonner"
|
||||
|
||||
#: bookwyrm/templates/snippets/follow_request_buttons.html:7
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:8
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:9
|
||||
msgid "Accept"
|
||||
msgstr "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
|
||||
#, python-format
|
||||
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(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"
|
||||
msgstr[0] "Critique de « <a href='%(book_path)s'>%(book_title)s</a> » (%(display_rating)s étoile) : %(review_title)s"
|
||||
msgstr[1] "Critique de « <a href='%(book_path)s'>%(book_title)s</a> » (%(display_rating)s étoile) : %(review_title)s"
|
||||
msgid "Review of \"%(book_title)s\" (%(display_rating)s star): %(review_title)s"
|
||||
msgid_plural "Review of \"%(book_title)s\" (%(display_rating)s stars): %(review_title)s"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: bookwyrm/templates/snippets/generated_status/review_pure_name.html:12
|
||||
#, python-format
|
||||
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\": %(review_title)s"
|
||||
msgstr "Critique de « <a href='%(book_path)s'>%(book_title)s</a> » : %(review_title)s"
|
||||
msgid "Review of \"%(book_title)s\": %(review_title)s"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/snippets/goal_form.html:4
|
||||
#, python-format
|
||||
|
@ -4217,11 +4213,11 @@ msgstr "Abonnemé(e)s uniquement"
|
|||
msgid "Post privacy"
|
||||
msgstr "Confidentialité du statut"
|
||||
|
||||
#: bookwyrm/templates/snippets/rate_action.html:4
|
||||
#: bookwyrm/templates/snippets/rate_action.html:5
|
||||
msgid "Leave a rating"
|
||||
msgstr "Laisser une note"
|
||||
|
||||
#: bookwyrm/templates/snippets/rate_action.html:19
|
||||
#: bookwyrm/templates/snippets/rate_action.html:20
|
||||
msgid "Rate"
|
||||
msgstr "Noter"
|
||||
|
||||
|
@ -4315,29 +4311,29 @@ msgstr "Retirer de %(name)s"
|
|||
msgid "Finish reading"
|
||||
msgstr "Terminer la lecture"
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:72
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:73
|
||||
msgid "Content warning"
|
||||
msgstr "Avertissement sur le contenu"
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:79
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:80
|
||||
msgid "Show status"
|
||||
msgstr "Afficher le statut"
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:101
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:102
|
||||
#, python-format
|
||||
msgid "(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
|
||||
msgid "(%(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"
|
||||
msgstr "Ouvrir l’image dans une nouvelle fenêtre"
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:144
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:145
|
||||
msgid "Hide status"
|
||||
msgstr "Masquer le statut"
|
||||
|
||||
|
@ -4630,7 +4626,7 @@ msgstr "Aucun compte avec cette adresse email n’a été trouvé."
|
|||
msgid "A password reset link was sent to {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
|
||||
msgid "Status updates from {obj.display_name}"
|
||||
msgstr "Mises à jour de statut de {obj.display_name}"
|
||||
|
|
Binary file not shown.
|
@ -2,8 +2,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: bookwyrm\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-01-17 19:26+0000\n"
|
||||
"PO-Revision-Date: 2022-01-18 06:22\n"
|
||||
"POT-Creation-Date: 2022-01-24 17:25+0000\n"
|
||||
"PO-Revision-Date: 2022-01-24 18:54\n"
|
||||
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
|
||||
"Language-Team: Galician\n"
|
||||
"Language: gl\n"
|
||||
|
@ -56,11 +56,11 @@ msgstr "Título do libro"
|
|||
|
||||
#: bookwyrm/forms.py:485 bookwyrm/templates/shelf/shelf.html:155
|
||||
#: bookwyrm/templates/shelf/shelf.html:187
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:33
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:32
|
||||
msgid "Rating"
|
||||
msgstr "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"
|
||||
msgstr "Ordenar por"
|
||||
|
||||
|
@ -224,69 +224,69 @@ msgstr "Citas"
|
|||
msgid "Everything else"
|
||||
msgstr "As outras cousas"
|
||||
|
||||
#: bookwyrm/settings.py:121
|
||||
#: bookwyrm/settings.py:173
|
||||
msgid "Home Timeline"
|
||||
msgstr "Cronoloxía de Inicio"
|
||||
|
||||
#: bookwyrm/settings.py:121
|
||||
#: bookwyrm/settings.py:173
|
||||
msgid "Home"
|
||||
msgstr "Inicio"
|
||||
|
||||
#: bookwyrm/settings.py:122
|
||||
#: bookwyrm/settings.py:174
|
||||
msgid "Books Timeline"
|
||||
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/user/layout.html:91
|
||||
msgid "Books"
|
||||
msgstr "Libros"
|
||||
|
||||
#: bookwyrm/settings.py:196
|
||||
#: bookwyrm/settings.py:248
|
||||
msgid "English"
|
||||
msgstr "English (Inglés)"
|
||||
|
||||
#: bookwyrm/settings.py:197
|
||||
#: bookwyrm/settings.py:249
|
||||
msgid "Deutsch (German)"
|
||||
msgstr "Alemán (Alemaña)"
|
||||
|
||||
#: bookwyrm/settings.py:198
|
||||
#: bookwyrm/settings.py:250
|
||||
msgid "Español (Spanish)"
|
||||
msgstr "Español (España)"
|
||||
|
||||
#: bookwyrm/settings.py:199
|
||||
#: bookwyrm/settings.py:251
|
||||
msgid "Galego (Galician)"
|
||||
msgstr "Galego (Galician)"
|
||||
|
||||
#: bookwyrm/settings.py:200
|
||||
#: bookwyrm/settings.py:252
|
||||
msgid "Italiano (Italian)"
|
||||
msgstr "Italiano (Italian)"
|
||||
|
||||
#: bookwyrm/settings.py:201
|
||||
#: bookwyrm/settings.py:253
|
||||
msgid "Français (French)"
|
||||
msgstr "Francés (Francia)"
|
||||
|
||||
#: bookwyrm/settings.py:202
|
||||
#: bookwyrm/settings.py:254
|
||||
msgid "Lietuvių (Lithuanian)"
|
||||
msgstr "Lietuvių (Lithuanian)"
|
||||
|
||||
#: bookwyrm/settings.py:203
|
||||
#: bookwyrm/settings.py:255
|
||||
msgid "Norsk (Norwegian)"
|
||||
msgstr "Noruegués (Norwegian)"
|
||||
|
||||
#: bookwyrm/settings.py:204
|
||||
#: bookwyrm/settings.py:256
|
||||
msgid "Português do Brasil (Brazilian Portuguese)"
|
||||
msgstr "Português do Brasil (Portugués brasileiro)"
|
||||
|
||||
#: bookwyrm/settings.py:205
|
||||
#: bookwyrm/settings.py:257
|
||||
msgid "Português Europeu (European Portuguese)"
|
||||
msgstr "Português Europeu (Portugués europeo)"
|
||||
|
||||
#: bookwyrm/settings.py:206
|
||||
#: bookwyrm/settings.py:258
|
||||
msgid "简体中文 (Simplified Chinese)"
|
||||
msgstr "简体中文 (Chinés simplificado)"
|
||||
|
||||
#: bookwyrm/settings.py:207
|
||||
#: bookwyrm/settings.py:259
|
||||
msgid "繁體中文 (Traditional Chinese)"
|
||||
msgstr "繁體中文 (Chinés tradicional)"
|
||||
|
||||
|
@ -315,58 +315,54 @@ msgstr "Algo fallou! Lamentámolo."
|
|||
msgid "About"
|
||||
msgstr "Acerca de"
|
||||
|
||||
#: bookwyrm/templates/about/about.html:18
|
||||
#: bookwyrm/templates/about/about.html:19
|
||||
#: bookwyrm/templates/get_started/layout.html:20
|
||||
#, python-format
|
||||
msgid "Welcome to %(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
|
||||
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."
|
||||
|
||||
#: bookwyrm/templates/about/about.html:39
|
||||
#: bookwyrm/templates/about/about.html:40
|
||||
#, 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."
|
||||
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
|
||||
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."
|
||||
|
||||
#: bookwyrm/templates/about/about.html:77
|
||||
#: bookwyrm/templates/about/about.html:78
|
||||
#, 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."
|
||||
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."
|
||||
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"
|
||||
msgstr "Contacta coa administración"
|
||||
|
||||
#: bookwyrm/templates/about/about.html:98
|
||||
#: bookwyrm/templates/about/about.html:99
|
||||
#, python-format
|
||||
msgid "\n"
|
||||
" %(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 "\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"
|
||||
" "
|
||||
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 "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."
|
||||
|
||||
#: bookwyrm/templates/about/about.html:112
|
||||
#: bookwyrm/templates/about/about.html:113
|
||||
msgid "Moderator"
|
||||
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"
|
||||
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/snippets/status/status_options.html:35
|
||||
#: bookwyrm/templates/snippets/user_options.html:13
|
||||
|
@ -428,7 +424,7 @@ msgid "Copy address"
|
|||
msgstr "Copiar enderezo"
|
||||
|
||||
#: bookwyrm/templates/annual_summary/layout.html:68
|
||||
#: bookwyrm/templates/lists/list.html:230
|
||||
#: bookwyrm/templates/lists/list.html:231
|
||||
msgid "Copied!"
|
||||
msgstr "Copiado!"
|
||||
|
||||
|
@ -497,7 +493,7 @@ msgstr "A lectura máis curta deste ano…"
|
|||
#: bookwyrm/templates/annual_summary/layout.html:245
|
||||
#: bookwyrm/templates/book/book.html:47
|
||||
#: bookwyrm/templates/discover/large-book.html:22
|
||||
#: bookwyrm/templates/landing/large-book.html:25
|
||||
#: bookwyrm/templates/landing/large-book.html:26
|
||||
#: bookwyrm/templates/landing/small-book.html:18
|
||||
msgid "by"
|
||||
msgstr "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/book/edit/edit_book.html:108
|
||||
#: bookwyrm/templates/book/sync_modal.html:22
|
||||
#: bookwyrm/templates/groups/members.html:30
|
||||
#: bookwyrm/templates/groups/members.html:29
|
||||
#: bookwyrm/templates/landing/password_reset.html:42
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:16
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:17
|
||||
msgid "Confirm"
|
||||
msgstr "Confirmar"
|
||||
|
||||
|
@ -819,8 +815,8 @@ msgid "Places"
|
|||
msgstr "Lugares"
|
||||
|
||||
#: bookwyrm/templates/book/book.html:348
|
||||
#: bookwyrm/templates/groups/group.html:20 bookwyrm/templates/layout.html:74
|
||||
#: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:10
|
||||
#: bookwyrm/templates/groups/group.html:19 bookwyrm/templates/layout.html:74
|
||||
#: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:11
|
||||
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
|
||||
#: bookwyrm/templates/search/layout.html:25
|
||||
#: bookwyrm/templates/search/layout.html:50
|
||||
|
@ -834,7 +830,7 @@ msgstr "Engadir a listaxe"
|
|||
|
||||
#: bookwyrm/templates/book/book.html:369
|
||||
#: bookwyrm/templates/book/cover_add_modal.html:31
|
||||
#: bookwyrm/templates/lists/list.html:208
|
||||
#: bookwyrm/templates/lists/list.html:209
|
||||
#: bookwyrm/templates/settings/email_blocklist/domain_form.html:24
|
||||
#: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:31
|
||||
msgid "Add"
|
||||
|
@ -936,7 +932,7 @@ msgid "Back"
|
|||
msgstr "Atrás"
|
||||
|
||||
#: bookwyrm/templates/book/edit/edit_book_form.html:21
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:16
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:15
|
||||
msgid "Title:"
|
||||
msgstr "Título:"
|
||||
|
||||
|
@ -1653,7 +1649,7 @@ msgid "What are you reading?"
|
|||
msgstr "Que estás a ler?"
|
||||
|
||||
#: bookwyrm/templates/get_started/books.html:9
|
||||
#: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:162
|
||||
#: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:163
|
||||
msgid "Search for a book"
|
||||
msgstr "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/users.html:18
|
||||
#: bookwyrm/templates/get_started/users.html:19
|
||||
#: bookwyrm/templates/groups/members.html:16
|
||||
#: bookwyrm/templates/groups/members.html:17 bookwyrm/templates/layout.html:53
|
||||
#: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:166
|
||||
#: bookwyrm/templates/groups/members.html:15
|
||||
#: bookwyrm/templates/groups/members.html:16 bookwyrm/templates/layout.html:53
|
||||
#: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:167
|
||||
#: bookwyrm/templates/search/layout.html:4
|
||||
#: bookwyrm/templates/search/layout.html:9
|
||||
msgid "Search"
|
||||
|
@ -1689,7 +1685,7 @@ msgid "Popular on %(site_name)s"
|
|||
msgstr "Populares en %(site_name)s"
|
||||
|
||||
#: bookwyrm/templates/get_started/books.html:58
|
||||
#: bookwyrm/templates/lists/list.html:179
|
||||
#: bookwyrm/templates/lists/list.html:180
|
||||
msgid "No books found"
|
||||
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/ip_blocklist/ip_blocklist.html:36
|
||||
#: bookwyrm/templates/snippets/follow_request_buttons.html:12
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:13
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:14
|
||||
msgid "Delete"
|
||||
msgstr "Eliminar"
|
||||
|
||||
|
@ -1814,17 +1810,17 @@ msgstr "Descrición do grupo:"
|
|||
msgid "Delete group"
|
||||
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."
|
||||
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/lists.html:20
|
||||
msgid "Create List"
|
||||
msgstr "Crear lista"
|
||||
|
||||
#: bookwyrm/templates/groups/group.html:40
|
||||
#: bookwyrm/templates/groups/group.html:39
|
||||
msgid "This group has no lists"
|
||||
msgstr "Este grupo non ten listaxes"
|
||||
|
||||
|
@ -1832,15 +1828,15 @@ msgstr "Este grupo non ten listaxes"
|
|||
msgid "Edit group"
|
||||
msgstr "Editar grupo"
|
||||
|
||||
#: bookwyrm/templates/groups/members.html:12
|
||||
#: bookwyrm/templates/groups/members.html:11
|
||||
msgid "Search to add a user"
|
||||
msgstr "Buscar para engadir usuaria"
|
||||
|
||||
#: bookwyrm/templates/groups/members.html:33
|
||||
#: bookwyrm/templates/groups/members.html:32
|
||||
msgid "Leave group"
|
||||
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/snippets/suggested_users.html:31
|
||||
#: bookwyrm/templates/user/user_preview.html:36
|
||||
|
@ -2297,18 +2293,18 @@ msgstr "Eliminar esta lista?"
|
|||
msgid "Edit List"
|
||||
msgstr "Editar lista"
|
||||
|
||||
#: bookwyrm/templates/lists/embed-list.html:7
|
||||
#: bookwyrm/templates/lists/embed-list.html:8
|
||||
#, python-format
|
||||
msgid "%(list_name)s, a list by %(owner)s"
|
||||
msgstr "%(list_name)s, unha lista de %(owner)s"
|
||||
|
||||
#: bookwyrm/templates/lists/embed-list.html:17
|
||||
#: bookwyrm/templates/lists/embed-list.html:18
|
||||
#, python-format
|
||||
msgid "on <a href=\"/\">%(site_name)s</a>"
|
||||
msgstr "en <a href=\"/\">%(site_name)s</a>"
|
||||
|
||||
#: bookwyrm/templates/lists/embed-list.html:26
|
||||
#: bookwyrm/templates/lists/list.html:42
|
||||
#: bookwyrm/templates/lists/embed-list.html:27
|
||||
#: bookwyrm/templates/lists/list.html:43
|
||||
msgid "This list is currently empty"
|
||||
msgstr "A lista está baleira neste intre"
|
||||
|
||||
|
@ -2369,76 +2365,76 @@ msgstr "Crea un Grupo"
|
|||
msgid "Delete list"
|
||||
msgstr "Eliminar lista"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:34
|
||||
#: bookwyrm/templates/lists/list.html:35
|
||||
msgid "You successfully suggested a book for this list!"
|
||||
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!"
|
||||
msgstr "Engadiches correctamente un libro a esta lista!"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:80
|
||||
#: bookwyrm/templates/lists/list.html:81
|
||||
#, python-format
|
||||
msgid "Added by <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"
|
||||
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
|
||||
msgid "Set"
|
||||
msgstr "Establecer"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:116
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:19
|
||||
#: bookwyrm/templates/lists/list.html:117
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:20
|
||||
msgid "Remove"
|
||||
msgstr "Eliminar"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:130
|
||||
#: bookwyrm/templates/lists/list.html:147
|
||||
#: bookwyrm/templates/lists/list.html:131
|
||||
#: bookwyrm/templates/lists/list.html:148
|
||||
msgid "Sort List"
|
||||
msgstr "Ordenar lista"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:140
|
||||
#: bookwyrm/templates/lists/list.html:141
|
||||
msgid "Direction"
|
||||
msgstr "Dirección"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:154
|
||||
#: bookwyrm/templates/lists/list.html:155
|
||||
msgid "Add Books"
|
||||
msgstr "Engadir Libros"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:156
|
||||
#: bookwyrm/templates/lists/list.html:157
|
||||
msgid "Suggest Books"
|
||||
msgstr "Suxerir Libros"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:167
|
||||
#: bookwyrm/templates/lists/list.html:168
|
||||
msgid "search"
|
||||
msgstr "buscar"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:173
|
||||
#: bookwyrm/templates/lists/list.html:174
|
||||
msgid "Clear search"
|
||||
msgstr "Limpar busca"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:178
|
||||
#: bookwyrm/templates/lists/list.html:179
|
||||
#, python-format
|
||||
msgid "No books found matching the query \"%(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"
|
||||
msgstr "Suxire"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:221
|
||||
#: bookwyrm/templates/lists/list.html:222
|
||||
msgid "Embed this list on a website"
|
||||
msgstr "Utiliza esta lista nunha páxina web"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:229
|
||||
#: bookwyrm/templates/lists/list.html:230
|
||||
msgid "Copy embed code"
|
||||
msgstr "Copia o código a incluír"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:231
|
||||
#: bookwyrm/templates/lists/list.html:232
|
||||
#, python-format
|
||||
msgid "%(list_name)s, a list by %(owner)s on %(site_name)s"
|
||||
msgstr "%(list_name)s, unha lista de %(owner)s en %(site_name)s"
|
||||
|
@ -3914,15 +3910,15 @@ msgstr "Rematado"
|
|||
msgid "This shelf is empty."
|
||||
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"
|
||||
msgstr "Convidar"
|
||||
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:24
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:25
|
||||
msgid "Uninvite"
|
||||
msgstr "Retirar convite"
|
||||
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:28
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:29
|
||||
#, python-format
|
||||
msgid "Remove @%(username)s"
|
||||
msgstr "Eliminar @%(username)s"
|
||||
|
@ -4010,7 +4006,7 @@ msgstr "Contén Spoilers!"
|
|||
msgid "Include spoiler alert"
|
||||
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
|
||||
msgid "Comment:"
|
||||
msgstr "Comentario:"
|
||||
|
@ -4019,33 +4015,33 @@ msgstr "Comentario:"
|
|||
msgid "Post"
|
||||
msgstr "Publicación"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:17
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:16
|
||||
msgid "Quote:"
|
||||
msgstr "Cita:"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:25
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:24
|
||||
#, python-format
|
||||
msgid "An excerpt from '%(book_title)s'"
|
||||
msgstr "Un extracto de '%(book_title)s'"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:32
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:31
|
||||
msgid "Position:"
|
||||
msgstr "Posición:"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:45
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:44
|
||||
msgid "On page:"
|
||||
msgstr "Na páxina:"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:51
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:50
|
||||
msgid "At percent:"
|
||||
msgstr "Na porcentaxe:"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:25
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:24
|
||||
#, python-format
|
||||
msgid "Your review of '%(book_title)s'"
|
||||
msgstr "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:"
|
||||
msgstr "Recensión:"
|
||||
|
||||
|
@ -4099,7 +4095,7 @@ msgid "Unfollow"
|
|||
msgstr "Non seguir"
|
||||
|
||||
#: bookwyrm/templates/snippets/follow_request_buttons.html:7
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:8
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:9
|
||||
msgid "Accept"
|
||||
msgstr "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
|
||||
#, python-format
|
||||
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(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"
|
||||
msgstr[0] "Recensión de \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(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"
|
||||
msgid "Review of \"%(book_title)s\" (%(display_rating)s star): %(review_title)s"
|
||||
msgid_plural "Review of \"%(book_title)s\" (%(display_rating)s stars): %(review_title)s"
|
||||
msgstr[0] "Recensión de \"%(book_title)s\" (%(display_rating)s estrela): %(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
|
||||
#, python-format
|
||||
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\": %(review_title)s"
|
||||
msgstr "Recensión de \"<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 \"%(book_title)s\": %(review_title)s"
|
||||
|
||||
#: bookwyrm/templates/snippets/goal_form.html:4
|
||||
#, python-format
|
||||
|
@ -4217,11 +4213,11 @@ msgstr "Só seguidoras"
|
|||
msgid "Post privacy"
|
||||
msgstr "Privacidade da publicación"
|
||||
|
||||
#: bookwyrm/templates/snippets/rate_action.html:4
|
||||
#: bookwyrm/templates/snippets/rate_action.html:5
|
||||
msgid "Leave a rating"
|
||||
msgstr "Fai unha valoración"
|
||||
|
||||
#: bookwyrm/templates/snippets/rate_action.html:19
|
||||
#: bookwyrm/templates/snippets/rate_action.html:20
|
||||
msgid "Rate"
|
||||
msgstr "Valorar"
|
||||
|
||||
|
@ -4315,29 +4311,29 @@ msgstr "Eliminar de %(name)s"
|
|||
msgid "Finish reading"
|
||||
msgstr "Rematar a lectura"
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:72
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:73
|
||||
msgid "Content warning"
|
||||
msgstr "Aviso sobre o contido"
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:79
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:80
|
||||
msgid "Show status"
|
||||
msgstr "Mostrar estado"
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:101
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:102
|
||||
#, python-format
|
||||
msgid "(Page %(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
|
||||
msgid "(%(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"
|
||||
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"
|
||||
msgstr "Agochar estado"
|
||||
|
||||
|
@ -4630,7 +4626,7 @@ msgstr "Non atopamos unha usuaria con ese email."
|
|||
msgid "A password reset link was sent to {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
|
||||
msgid "Status updates from {obj.display_name}"
|
||||
msgstr "Actualizacións de estados desde {obj.display_name}"
|
||||
|
|
Binary file not shown.
|
@ -2,8 +2,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: bookwyrm\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-01-17 19:26+0000\n"
|
||||
"PO-Revision-Date: 2022-01-19 23:20\n"
|
||||
"POT-Creation-Date: 2022-01-24 17:25+0000\n"
|
||||
"PO-Revision-Date: 2022-01-24 18:54\n"
|
||||
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
|
||||
"Language-Team: Italian\n"
|
||||
"Language: it\n"
|
||||
|
@ -56,11 +56,11 @@ msgstr "Titolo del libro"
|
|||
|
||||
#: bookwyrm/forms.py:485 bookwyrm/templates/shelf/shelf.html:155
|
||||
#: bookwyrm/templates/shelf/shelf.html:187
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:33
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:32
|
||||
msgid "Rating"
|
||||
msgstr "Valutazione"
|
||||
|
||||
#: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:134
|
||||
#: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:135
|
||||
msgid "Sort By"
|
||||
msgstr "Ordina per"
|
||||
|
||||
|
@ -224,69 +224,69 @@ msgstr "Citazioni"
|
|||
msgid "Everything else"
|
||||
msgstr "Tutto il resto"
|
||||
|
||||
#: bookwyrm/settings.py:121
|
||||
#: bookwyrm/settings.py:173
|
||||
msgid "Home Timeline"
|
||||
msgstr "La tua timeline"
|
||||
|
||||
#: bookwyrm/settings.py:121
|
||||
#: bookwyrm/settings.py:173
|
||||
msgid "Home"
|
||||
msgstr "Home"
|
||||
|
||||
#: bookwyrm/settings.py:122
|
||||
#: bookwyrm/settings.py:174
|
||||
msgid "Books Timeline"
|
||||
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/user/layout.html:91
|
||||
msgid "Books"
|
||||
msgstr "Libri"
|
||||
|
||||
#: bookwyrm/settings.py:196
|
||||
#: bookwyrm/settings.py:248
|
||||
msgid "English"
|
||||
msgstr "English (Inglese)"
|
||||
|
||||
#: bookwyrm/settings.py:197
|
||||
#: bookwyrm/settings.py:249
|
||||
msgid "Deutsch (German)"
|
||||
msgstr "Deutsch (Tedesco)"
|
||||
|
||||
#: bookwyrm/settings.py:198
|
||||
#: bookwyrm/settings.py:250
|
||||
msgid "Español (Spanish)"
|
||||
msgstr "Español (Spagnolo)"
|
||||
|
||||
#: bookwyrm/settings.py:199
|
||||
#: bookwyrm/settings.py:251
|
||||
msgid "Galego (Galician)"
|
||||
msgstr "Galego (Galiziano)"
|
||||
|
||||
#: bookwyrm/settings.py:200
|
||||
#: bookwyrm/settings.py:252
|
||||
msgid "Italiano (Italian)"
|
||||
msgstr "Italiano (Italiano)"
|
||||
|
||||
#: bookwyrm/settings.py:201
|
||||
#: bookwyrm/settings.py:253
|
||||
msgid "Français (French)"
|
||||
msgstr "Français (Francese)"
|
||||
|
||||
#: bookwyrm/settings.py:202
|
||||
#: bookwyrm/settings.py:254
|
||||
msgid "Lietuvių (Lithuanian)"
|
||||
msgstr "Lietuvių (Lituano)"
|
||||
|
||||
#: bookwyrm/settings.py:203
|
||||
#: bookwyrm/settings.py:255
|
||||
msgid "Norsk (Norwegian)"
|
||||
msgstr "Norsk (Norvegese)"
|
||||
|
||||
#: bookwyrm/settings.py:204
|
||||
#: bookwyrm/settings.py:256
|
||||
msgid "Português do Brasil (Brazilian Portuguese)"
|
||||
msgstr "Português do Brasil (Portoghese Brasiliano)"
|
||||
|
||||
#: bookwyrm/settings.py:205
|
||||
#: bookwyrm/settings.py:257
|
||||
msgid "Português Europeu (European Portuguese)"
|
||||
msgstr "Português Europeu (Portoghese europeo)"
|
||||
|
||||
#: bookwyrm/settings.py:206
|
||||
#: bookwyrm/settings.py:258
|
||||
msgid "简体中文 (Simplified Chinese)"
|
||||
msgstr "简体中文 (Cinese Semplificato)"
|
||||
|
||||
#: bookwyrm/settings.py:207
|
||||
#: bookwyrm/settings.py:259
|
||||
msgid "繁體中文 (Traditional Chinese)"
|
||||
msgstr "繁體中文 (Cinese Tradizionale)"
|
||||
|
||||
|
@ -315,58 +315,54 @@ msgstr "Qualcosa è andato storto! Ci dispiace."
|
|||
msgid "About"
|
||||
msgstr "Informazioni su"
|
||||
|
||||
#: bookwyrm/templates/about/about.html:18
|
||||
#: bookwyrm/templates/about/about.html:19
|
||||
#: bookwyrm/templates/get_started/layout.html:20
|
||||
#, python-format
|
||||
msgid "Welcome to %(site_name)s!"
|
||||
msgstr "Benvenuto su %(site_name)s!"
|
||||
|
||||
#: bookwyrm/templates/about/about.html:22
|
||||
#: bookwyrm/templates/about/about.html:23
|
||||
#, 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."
|
||||
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
|
||||
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."
|
||||
|
||||
#: bookwyrm/templates/about/about.html:58
|
||||
#: bookwyrm/templates/about/about.html:59
|
||||
#, 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."
|
||||
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
|
||||
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."
|
||||
|
||||
#: 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."
|
||||
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"
|
||||
msgstr "Incontra gli amministratori"
|
||||
|
||||
#: bookwyrm/templates/about/about.html:98
|
||||
#: bookwyrm/templates/about/about.html:99
|
||||
#, python-format
|
||||
msgid "\n"
|
||||
" %(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 "\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"
|
||||
" "
|
||||
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 "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."
|
||||
|
||||
#: bookwyrm/templates/about/about.html:112
|
||||
#: bookwyrm/templates/about/about.html:113
|
||||
msgid "Moderator"
|
||||
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"
|
||||
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/snippets/status/status_options.html:35
|
||||
#: bookwyrm/templates/snippets/user_options.html:13
|
||||
|
@ -428,7 +424,7 @@ msgid "Copy address"
|
|||
msgstr "Copia l'indirizzo"
|
||||
|
||||
#: bookwyrm/templates/annual_summary/layout.html:68
|
||||
#: bookwyrm/templates/lists/list.html:230
|
||||
#: bookwyrm/templates/lists/list.html:231
|
||||
msgid "Copied!"
|
||||
msgstr "Copiato!"
|
||||
|
||||
|
@ -497,7 +493,7 @@ msgstr "La loro lettura più breve quest’anno…"
|
|||
#: bookwyrm/templates/annual_summary/layout.html:245
|
||||
#: bookwyrm/templates/book/book.html:47
|
||||
#: bookwyrm/templates/discover/large-book.html:22
|
||||
#: bookwyrm/templates/landing/large-book.html:25
|
||||
#: bookwyrm/templates/landing/large-book.html:26
|
||||
#: bookwyrm/templates/landing/small-book.html:18
|
||||
msgid "by"
|
||||
msgstr "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/book/edit/edit_book.html:108
|
||||
#: bookwyrm/templates/book/sync_modal.html:22
|
||||
#: bookwyrm/templates/groups/members.html:30
|
||||
#: bookwyrm/templates/groups/members.html:29
|
||||
#: bookwyrm/templates/landing/password_reset.html:42
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:16
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:17
|
||||
msgid "Confirm"
|
||||
msgstr "Conferma"
|
||||
|
||||
|
@ -819,14 +815,14 @@ msgid "Places"
|
|||
msgstr "Luoghi"
|
||||
|
||||
#: bookwyrm/templates/book/book.html:348
|
||||
#: bookwyrm/templates/groups/group.html:20 bookwyrm/templates/layout.html:74
|
||||
#: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:10
|
||||
#: bookwyrm/templates/groups/group.html:19 bookwyrm/templates/layout.html:74
|
||||
#: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:11
|
||||
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
|
||||
#: bookwyrm/templates/search/layout.html:25
|
||||
#: bookwyrm/templates/search/layout.html:50
|
||||
#: bookwyrm/templates/user/layout.html:85
|
||||
msgid "Lists"
|
||||
msgstr "Elenchi"
|
||||
msgstr "Liste"
|
||||
|
||||
#: bookwyrm/templates/book/book.html:359
|
||||
msgid "Add to list"
|
||||
|
@ -834,7 +830,7 @@ msgstr "Aggiungi all'elenco"
|
|||
|
||||
#: bookwyrm/templates/book/book.html:369
|
||||
#: bookwyrm/templates/book/cover_add_modal.html:31
|
||||
#: bookwyrm/templates/lists/list.html:208
|
||||
#: bookwyrm/templates/lists/list.html:209
|
||||
#: bookwyrm/templates/settings/email_blocklist/domain_form.html:24
|
||||
#: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:31
|
||||
msgid "Add"
|
||||
|
@ -936,7 +932,7 @@ msgid "Back"
|
|||
msgstr "Indietro"
|
||||
|
||||
#: bookwyrm/templates/book/edit/edit_book_form.html:21
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:16
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:15
|
||||
msgid "Title:"
|
||||
msgstr "Titolo:"
|
||||
|
||||
|
@ -1653,7 +1649,7 @@ msgid "What are you reading?"
|
|||
msgstr "Cosa stai leggendo?"
|
||||
|
||||
#: bookwyrm/templates/get_started/books.html:9
|
||||
#: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:162
|
||||
#: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:163
|
||||
msgid "Search for a book"
|
||||
msgstr "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/users.html:18
|
||||
#: bookwyrm/templates/get_started/users.html:19
|
||||
#: bookwyrm/templates/groups/members.html:16
|
||||
#: bookwyrm/templates/groups/members.html:17 bookwyrm/templates/layout.html:53
|
||||
#: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:166
|
||||
#: bookwyrm/templates/groups/members.html:15
|
||||
#: bookwyrm/templates/groups/members.html:16 bookwyrm/templates/layout.html:53
|
||||
#: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:167
|
||||
#: bookwyrm/templates/search/layout.html:4
|
||||
#: bookwyrm/templates/search/layout.html:9
|
||||
msgid "Search"
|
||||
|
@ -1689,7 +1685,7 @@ msgid "Popular on %(site_name)s"
|
|||
msgstr "Popolare su %(site_name)s"
|
||||
|
||||
#: bookwyrm/templates/get_started/books.html:58
|
||||
#: bookwyrm/templates/lists/list.html:179
|
||||
#: bookwyrm/templates/lists/list.html:180
|
||||
msgid "No books found"
|
||||
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/ip_blocklist/ip_blocklist.html:36
|
||||
#: bookwyrm/templates/snippets/follow_request_buttons.html:12
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:13
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:14
|
||||
msgid "Delete"
|
||||
msgstr "Elimina"
|
||||
|
||||
|
@ -1814,17 +1810,17 @@ msgstr "Descrizione gruppo:"
|
|||
msgid "Delete group"
|
||||
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."
|
||||
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/lists.html:20
|
||||
msgid "Create List"
|
||||
msgstr "Crea Lista"
|
||||
|
||||
#: bookwyrm/templates/groups/group.html:40
|
||||
#: bookwyrm/templates/groups/group.html:39
|
||||
msgid "This group has no lists"
|
||||
msgstr "Questo gruppo non ha alcuna lista"
|
||||
|
||||
|
@ -1832,15 +1828,15 @@ msgstr "Questo gruppo non ha alcuna lista"
|
|||
msgid "Edit group"
|
||||
msgstr "Modifica gruppo"
|
||||
|
||||
#: bookwyrm/templates/groups/members.html:12
|
||||
#: bookwyrm/templates/groups/members.html:11
|
||||
msgid "Search to add a user"
|
||||
msgstr "Cerca o aggiungi utente"
|
||||
|
||||
#: bookwyrm/templates/groups/members.html:33
|
||||
#: bookwyrm/templates/groups/members.html:32
|
||||
msgid "Leave group"
|
||||
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/snippets/suggested_users.html:31
|
||||
#: bookwyrm/templates/user/user_preview.html:36
|
||||
|
@ -2297,18 +2293,18 @@ msgstr "Vuoi eliminare la lista selezionata?"
|
|||
msgid "Edit List"
|
||||
msgstr "Modifica lista"
|
||||
|
||||
#: bookwyrm/templates/lists/embed-list.html:7
|
||||
#: bookwyrm/templates/lists/embed-list.html:8
|
||||
#, python-format
|
||||
msgid "%(list_name)s, a list by %(owner)s"
|
||||
msgstr "%(list_name)s, una lista di %(owner)s"
|
||||
|
||||
#: bookwyrm/templates/lists/embed-list.html:17
|
||||
#: bookwyrm/templates/lists/embed-list.html:18
|
||||
#, python-format
|
||||
msgid "on <a href=\"/\">%(site_name)s</a>"
|
||||
msgstr "su <a href=\"/\">%(site_name)s</a>"
|
||||
|
||||
#: bookwyrm/templates/lists/embed-list.html:26
|
||||
#: bookwyrm/templates/lists/list.html:42
|
||||
#: bookwyrm/templates/lists/embed-list.html:27
|
||||
#: bookwyrm/templates/lists/list.html:43
|
||||
msgid "This list is currently empty"
|
||||
msgstr "Questa lista è attualmente vuota"
|
||||
|
||||
|
@ -2369,76 +2365,76 @@ msgstr "Crea un gruppo"
|
|||
msgid "Delete list"
|
||||
msgstr "Elimina lista"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:34
|
||||
#: bookwyrm/templates/lists/list.html:35
|
||||
msgid "You successfully suggested a book for this list!"
|
||||
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!"
|
||||
msgstr "Hai consigliato con successo un libro per questa lista!"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:80
|
||||
#: bookwyrm/templates/lists/list.html:81
|
||||
#, python-format
|
||||
msgid "Added by <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"
|
||||
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
|
||||
msgid "Set"
|
||||
msgstr "Imposta"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:116
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:19
|
||||
#: bookwyrm/templates/lists/list.html:117
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:20
|
||||
msgid "Remove"
|
||||
msgstr "Elimina"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:130
|
||||
#: bookwyrm/templates/lists/list.html:147
|
||||
#: bookwyrm/templates/lists/list.html:131
|
||||
#: bookwyrm/templates/lists/list.html:148
|
||||
msgid "Sort List"
|
||||
msgstr "Ordine lista"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:140
|
||||
#: bookwyrm/templates/lists/list.html:141
|
||||
msgid "Direction"
|
||||
msgstr "Direzione"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:154
|
||||
#: bookwyrm/templates/lists/list.html:155
|
||||
msgid "Add Books"
|
||||
msgstr "Aggiungi Libri"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:156
|
||||
#: bookwyrm/templates/lists/list.html:157
|
||||
msgid "Suggest Books"
|
||||
msgstr "Libri consigliati"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:167
|
||||
#: bookwyrm/templates/lists/list.html:168
|
||||
msgid "search"
|
||||
msgstr "cerca"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:173
|
||||
#: bookwyrm/templates/lists/list.html:174
|
||||
msgid "Clear search"
|
||||
msgstr "Cancella ricerca"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:178
|
||||
#: bookwyrm/templates/lists/list.html:179
|
||||
#, python-format
|
||||
msgid "No books found matching the 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"
|
||||
msgstr "Suggerisci"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:221
|
||||
#: bookwyrm/templates/lists/list.html:222
|
||||
msgid "Embed this list on a website"
|
||||
msgstr "Incorpora questa lista in un sito web"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:229
|
||||
#: bookwyrm/templates/lists/list.html:230
|
||||
msgid "Copy embed code"
|
||||
msgstr "Copia codice di incorporamento"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:231
|
||||
#: bookwyrm/templates/lists/list.html:232
|
||||
#, python-format
|
||||
msgid "%(list_name)s, a list by %(owner)s on %(site_name)s"
|
||||
msgstr "%(list_name)s, una lista di %(owner)s su %(site_name)s"
|
||||
|
@ -3914,15 +3910,15 @@ msgstr "Completato"
|
|||
msgid "This shelf is empty."
|
||||
msgstr "Questo scaffale è vuoto."
|
||||
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:15
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:16
|
||||
msgid "Invite"
|
||||
msgstr "Invita"
|
||||
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:24
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:25
|
||||
msgid "Uninvite"
|
||||
msgstr "Revoca invito"
|
||||
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:28
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:29
|
||||
#, python-format
|
||||
msgid "Remove @%(username)s"
|
||||
msgstr "Rimuovi %(username)s"
|
||||
|
@ -4010,7 +4006,7 @@ msgstr "Attenzione Spoiler!"
|
|||
msgid "Include spoiler alert"
|
||||
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
|
||||
msgid "Comment:"
|
||||
msgstr "Commenta:"
|
||||
|
@ -4019,33 +4015,33 @@ msgstr "Commenta:"
|
|||
msgid "Post"
|
||||
msgstr "Pubblica"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:17
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:16
|
||||
msgid "Quote:"
|
||||
msgstr "Citazione:"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:25
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:24
|
||||
#, python-format
|
||||
msgid "An excerpt from '%(book_title)s'"
|
||||
msgstr "Un estratto da '%(book_title)s'"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:32
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:31
|
||||
msgid "Position:"
|
||||
msgstr "Posizione:"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:45
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:44
|
||||
msgid "On page:"
|
||||
msgstr "Alla pagina:"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:51
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:50
|
||||
msgid "At percent:"
|
||||
msgstr "Alla percentuale:"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:25
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:24
|
||||
#, python-format
|
||||
msgid "Your review of '%(book_title)s'"
|
||||
msgstr "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:"
|
||||
msgstr "Recensione:"
|
||||
|
||||
|
@ -4099,7 +4095,7 @@ msgid "Unfollow"
|
|||
msgstr "Smetti di seguire"
|
||||
|
||||
#: bookwyrm/templates/snippets/follow_request_buttons.html:7
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:8
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:9
|
||||
msgid "Accept"
|
||||
msgstr "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
|
||||
#, python-format
|
||||
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(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"
|
||||
msgstr[0] "Recensione di \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(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"
|
||||
msgid "Review of \"%(book_title)s\" (%(display_rating)s star): %(review_title)s"
|
||||
msgid_plural "Review of \"%(book_title)s\" (%(display_rating)s stars): %(review_title)s"
|
||||
msgstr[0] "Recensione di \"%(book_title)s\" (%(display_rating)s stella): %(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
|
||||
#, python-format
|
||||
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\": %(review_title)s"
|
||||
msgstr "Recensione di \"<a href='%(book_path)s'>%(book_title)s</a>\": %(review_title)s"
|
||||
msgid "Review of \"%(book_title)s\": %(review_title)s"
|
||||
msgstr "Recensione di \"%(book_title)s\": %(review_title)s"
|
||||
|
||||
#: bookwyrm/templates/snippets/goal_form.html:4
|
||||
#, python-format
|
||||
|
@ -4217,11 +4213,11 @@ msgstr "Solo Followers"
|
|||
msgid "Post privacy"
|
||||
msgstr "Privacy dei post"
|
||||
|
||||
#: bookwyrm/templates/snippets/rate_action.html:4
|
||||
#: bookwyrm/templates/snippets/rate_action.html:5
|
||||
msgid "Leave a rating"
|
||||
msgstr "Lascia una recensione"
|
||||
|
||||
#: bookwyrm/templates/snippets/rate_action.html:19
|
||||
#: bookwyrm/templates/snippets/rate_action.html:20
|
||||
msgid "Rate"
|
||||
msgstr "Vota"
|
||||
|
||||
|
@ -4315,29 +4311,29 @@ msgstr "Rimuovi da %(name)s"
|
|||
msgid "Finish reading"
|
||||
msgstr "Finito di leggere"
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:72
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:73
|
||||
msgid "Content warning"
|
||||
msgstr "Avviso sul contenuto"
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:79
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:80
|
||||
msgid "Show status"
|
||||
msgstr "Mostra stato"
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:101
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:102
|
||||
#, python-format
|
||||
msgid "(Page %(page)s)"
|
||||
msgstr "(Pagina %(page)s)"
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:103
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:104
|
||||
#, python-format
|
||||
msgid "(%(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"
|
||||
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"
|
||||
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
|
||||
#, python-format
|
||||
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
|
||||
#, 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
|
||||
#, python-format
|
||||
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
|
||||
#, 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
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
|
@ -4562,7 +4558,7 @@ msgstr "Visualizza tutti i libri"
|
|||
#: bookwyrm/templates/user/user.html:58
|
||||
#, python-format
|
||||
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
|
||||
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}"
|
||||
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
|
||||
msgid "Status updates from {obj.display_name}"
|
||||
msgstr "Aggiornamenti di stato da {obj.display_name}"
|
||||
|
|
Binary file not shown.
|
@ -2,8 +2,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: bookwyrm\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-01-17 19:26+0000\n"
|
||||
"PO-Revision-Date: 2022-01-17 19:57\n"
|
||||
"POT-Creation-Date: 2022-01-24 17:25+0000\n"
|
||||
"PO-Revision-Date: 2022-01-24 18:54\n"
|
||||
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
|
||||
"Language-Team: Lithuanian\n"
|
||||
"Language: lt\n"
|
||||
|
@ -56,11 +56,11 @@ msgstr "Knygos antraštė"
|
|||
|
||||
#: bookwyrm/forms.py:485 bookwyrm/templates/shelf/shelf.html:155
|
||||
#: bookwyrm/templates/shelf/shelf.html:187
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:33
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:32
|
||||
msgid "Rating"
|
||||
msgstr "Įvertinimas"
|
||||
|
||||
#: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:134
|
||||
#: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:135
|
||||
msgid "Sort By"
|
||||
msgstr "Rūšiuoti pagal"
|
||||
|
||||
|
@ -74,7 +74,7 @@ msgstr "Mažėjančia tvarka"
|
|||
|
||||
#: bookwyrm/forms.py:505
|
||||
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
|
||||
msgid "Error loading book"
|
||||
|
@ -193,20 +193,20 @@ msgstr "Privatu"
|
|||
|
||||
#: bookwyrm/models/link.py:51
|
||||
msgid "Free"
|
||||
msgstr ""
|
||||
msgstr "Nemokama"
|
||||
|
||||
#: bookwyrm/models/link.py:52
|
||||
msgid "Purchasable"
|
||||
msgstr ""
|
||||
msgstr "Galima nusipirkti"
|
||||
|
||||
#: bookwyrm/models/link.py:53
|
||||
msgid "Available for loan"
|
||||
msgstr ""
|
||||
msgstr "Galima pasiskolinti"
|
||||
|
||||
#: bookwyrm/models/link.py:70
|
||||
#: bookwyrm/templates/settings/link_domains/link_domains.html:23
|
||||
msgid "Approved"
|
||||
msgstr ""
|
||||
msgstr "Patvirtinti"
|
||||
|
||||
#: bookwyrm/models/user.py:32 bookwyrm/templates/book/book.html:272
|
||||
msgid "Reviews"
|
||||
|
@ -224,69 +224,69 @@ msgstr "Citatos"
|
|||
msgid "Everything else"
|
||||
msgstr "Visa kita"
|
||||
|
||||
#: bookwyrm/settings.py:121
|
||||
#: bookwyrm/settings.py:173
|
||||
msgid "Home Timeline"
|
||||
msgstr "Pagrindinė siena"
|
||||
|
||||
#: bookwyrm/settings.py:121
|
||||
#: bookwyrm/settings.py:173
|
||||
msgid "Home"
|
||||
msgstr "Pagrindinis"
|
||||
|
||||
#: bookwyrm/settings.py:122
|
||||
#: bookwyrm/settings.py:174
|
||||
msgid "Books Timeline"
|
||||
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/user/layout.html:91
|
||||
msgid "Books"
|
||||
msgstr "Knygos"
|
||||
|
||||
#: bookwyrm/settings.py:196
|
||||
#: bookwyrm/settings.py:248
|
||||
msgid "English"
|
||||
msgstr "English (Anglų)"
|
||||
|
||||
#: bookwyrm/settings.py:197
|
||||
#: bookwyrm/settings.py:249
|
||||
msgid "Deutsch (German)"
|
||||
msgstr "Deutsch (Vokiečių)"
|
||||
|
||||
#: bookwyrm/settings.py:198
|
||||
#: bookwyrm/settings.py:250
|
||||
msgid "Español (Spanish)"
|
||||
msgstr "Español (Ispanų)"
|
||||
|
||||
#: bookwyrm/settings.py:199
|
||||
#: bookwyrm/settings.py:251
|
||||
msgid "Galego (Galician)"
|
||||
msgstr "Galego (galisų)"
|
||||
|
||||
#: bookwyrm/settings.py:200
|
||||
#: bookwyrm/settings.py:252
|
||||
msgid "Italiano (Italian)"
|
||||
msgstr ""
|
||||
msgstr "Italų (Italian)"
|
||||
|
||||
#: bookwyrm/settings.py:201
|
||||
#: bookwyrm/settings.py:253
|
||||
msgid "Français (French)"
|
||||
msgstr "Français (Prancūzų)"
|
||||
|
||||
#: bookwyrm/settings.py:202
|
||||
#: bookwyrm/settings.py:254
|
||||
msgid "Lietuvių (Lithuanian)"
|
||||
msgstr "Lietuvių"
|
||||
|
||||
#: bookwyrm/settings.py:203
|
||||
#: bookwyrm/settings.py:255
|
||||
msgid "Norsk (Norwegian)"
|
||||
msgstr ""
|
||||
msgstr "Norvegų (Norwegian)"
|
||||
|
||||
#: bookwyrm/settings.py:204
|
||||
#: bookwyrm/settings.py:256
|
||||
msgid "Português do Brasil (Brazilian Portuguese)"
|
||||
msgstr "Português brasileiro (Brazilijos portugalų)"
|
||||
|
||||
#: bookwyrm/settings.py:205
|
||||
#: bookwyrm/settings.py:257
|
||||
msgid "Português Europeu (European Portuguese)"
|
||||
msgstr "Português Europeu (Europos portugalų)"
|
||||
|
||||
#: bookwyrm/settings.py:206
|
||||
#: bookwyrm/settings.py:258
|
||||
msgid "简体中文 (Simplified Chinese)"
|
||||
msgstr "简体中文 (Supaprastinta kinų)"
|
||||
|
||||
#: bookwyrm/settings.py:207
|
||||
#: bookwyrm/settings.py:259
|
||||
msgid "繁體中文 (Traditional Chinese)"
|
||||
msgstr "繁體中文 (Tradicinė kinų)"
|
||||
|
||||
|
@ -313,58 +313,56 @@ msgstr "Kažkas nepavyko. Atsiprašome."
|
|||
#: bookwyrm/templates/about/about.html:9
|
||||
#: bookwyrm/templates/about/layout.html:35
|
||||
msgid "About"
|
||||
msgstr ""
|
||||
msgstr "Apie"
|
||||
|
||||
#: bookwyrm/templates/about/about.html:18
|
||||
#: bookwyrm/templates/about/about.html:19
|
||||
#: bookwyrm/templates/get_started/layout.html:20
|
||||
#, python-format
|
||||
msgid "Welcome to %(site_name)s!"
|
||||
msgstr "Sveiki atvykę į %(site_name)s!"
|
||||
|
||||
#: bookwyrm/templates/about/about.html:22
|
||||
#: bookwyrm/templates/about/about.html:23
|
||||
#, 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."
|
||||
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
|
||||
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
|
||||
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
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/about/about.html:95
|
||||
#: bookwyrm/templates/about/about.html:96
|
||||
msgid "Meet your admins"
|
||||
msgstr ""
|
||||
msgstr "Šio serverio administratoriai"
|
||||
|
||||
#: bookwyrm/templates/about/about.html:98
|
||||
#: bookwyrm/templates/about/about.html:99
|
||||
#, python-format
|
||||
msgid "\n"
|
||||
" %(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"
|
||||
" "
|
||||
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 ""
|
||||
|
||||
#: bookwyrm/templates/about/about.html:112
|
||||
#: bookwyrm/templates/about/about.html:113
|
||||
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"
|
||||
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/snippets/status/status_options.html:35
|
||||
#: bookwyrm/templates/snippets/user_options.html:13
|
||||
|
@ -379,15 +377,15 @@ msgstr "Elgesio kodeksas"
|
|||
|
||||
#: bookwyrm/templates/about/layout.html:11
|
||||
msgid "Active users:"
|
||||
msgstr ""
|
||||
msgstr "Aktyvūs vartotojai:"
|
||||
|
||||
#: bookwyrm/templates/about/layout.html:15
|
||||
msgid "Statuses posted:"
|
||||
msgstr ""
|
||||
msgstr "Publikuotos būsenos:"
|
||||
|
||||
#: bookwyrm/templates/about/layout.html:19
|
||||
msgid "Software version:"
|
||||
msgstr ""
|
||||
msgstr "Serverio programinės įrangos versija:"
|
||||
|
||||
#: bookwyrm/templates/about/layout.html:30
|
||||
#: bookwyrm/templates/embed-layout.html:34 bookwyrm/templates/layout.html:229
|
||||
|
@ -426,7 +424,7 @@ msgid "Copy address"
|
|||
msgstr "Kopijuoti adresą"
|
||||
|
||||
#: bookwyrm/templates/annual_summary/layout.html:68
|
||||
#: bookwyrm/templates/lists/list.html:230
|
||||
#: bookwyrm/templates/lists/list.html:231
|
||||
msgid "Copied!"
|
||||
msgstr "Nukopijuota"
|
||||
|
||||
|
@ -461,7 +459,7 @@ msgstr "Jei padarysite puslapį privačiu - senas raktas nustos galioti. Ateityj
|
|||
#: bookwyrm/templates/annual_summary/layout.html:112
|
||||
#, python-format
|
||||
msgid "Sadly %(display_name)s didn’t 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
|
||||
#, python-format
|
||||
|
@ -499,7 +497,7 @@ msgstr "Trumpiausias skaitinys tais metais…"
|
|||
#: bookwyrm/templates/annual_summary/layout.html:245
|
||||
#: bookwyrm/templates/book/book.html:47
|
||||
#: bookwyrm/templates/discover/large-book.html:22
|
||||
#: bookwyrm/templates/landing/large-book.html:25
|
||||
#: bookwyrm/templates/landing/large-book.html:26
|
||||
#: bookwyrm/templates/landing/small-book.html:18
|
||||
msgid "by"
|
||||
msgstr " "
|
||||
|
@ -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/book/edit/edit_book.html:108
|
||||
#: bookwyrm/templates/book/sync_modal.html:22
|
||||
#: bookwyrm/templates/groups/members.html:30
|
||||
#: bookwyrm/templates/groups/members.html:29
|
||||
#: bookwyrm/templates/landing/password_reset.html:42
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:16
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:17
|
||||
msgid "Confirm"
|
||||
msgstr "Patvirtinti"
|
||||
|
||||
|
@ -827,8 +825,8 @@ msgid "Places"
|
|||
msgstr "Vietos"
|
||||
|
||||
#: bookwyrm/templates/book/book.html:348
|
||||
#: bookwyrm/templates/groups/group.html:20 bookwyrm/templates/layout.html:74
|
||||
#: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:10
|
||||
#: bookwyrm/templates/groups/group.html:19 bookwyrm/templates/layout.html:74
|
||||
#: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:11
|
||||
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
|
||||
#: bookwyrm/templates/search/layout.html:25
|
||||
#: bookwyrm/templates/search/layout.html:50
|
||||
|
@ -842,7 +840,7 @@ msgstr "Pridėti prie sąrašo"
|
|||
|
||||
#: bookwyrm/templates/book/book.html:369
|
||||
#: bookwyrm/templates/book/cover_add_modal.html:31
|
||||
#: bookwyrm/templates/lists/list.html:208
|
||||
#: bookwyrm/templates/lists/list.html:209
|
||||
#: bookwyrm/templates/settings/email_blocklist/domain_form.html:24
|
||||
#: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:31
|
||||
msgid "Add"
|
||||
|
@ -944,7 +942,7 @@ msgid "Back"
|
|||
msgstr "Atgal"
|
||||
|
||||
#: bookwyrm/templates/book/edit/edit_book_form.html:21
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:16
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:15
|
||||
msgid "Title:"
|
||||
msgstr "Pavadinimas:"
|
||||
|
||||
|
@ -1076,51 +1074,52 @@ msgstr "Paieškos leidimai"
|
|||
|
||||
#: bookwyrm/templates/book/file_links/add_link_modal.html:6
|
||||
msgid "Add file link"
|
||||
msgstr ""
|
||||
msgstr "Pridėti nuorodą į failą"
|
||||
|
||||
#: bookwyrm/templates/book/file_links/add_link_modal.html:19
|
||||
msgid "Links from unknown domains will need to be approved by a moderator before they are added."
|
||||
msgstr ""
|
||||
msgstr "Nuorodos iš nežinomų domenų turi būti patvirtintos moderatorių."
|
||||
|
||||
#: bookwyrm/templates/book/file_links/add_link_modal.html:24
|
||||
msgid "URL:"
|
||||
msgstr ""
|
||||
msgstr "Nuoroda:"
|
||||
|
||||
#: bookwyrm/templates/book/file_links/add_link_modal.html:29
|
||||
msgid "File type:"
|
||||
msgstr ""
|
||||
msgstr "Failo tipas:"
|
||||
|
||||
#: bookwyrm/templates/book/file_links/add_link_modal.html:48
|
||||
msgid "Availability:"
|
||||
msgstr ""
|
||||
msgstr "Prieinamumas:"
|
||||
|
||||
#: bookwyrm/templates/book/file_links/edit_links.html:5
|
||||
#: bookwyrm/templates/book/file_links/edit_links.html:22
|
||||
#: bookwyrm/templates/book/file_links/links.html:53
|
||||
msgid "Edit links"
|
||||
msgstr ""
|
||||
msgstr "Redaguoti nuorodas"
|
||||
|
||||
#: bookwyrm/templates/book/file_links/edit_links.html:11
|
||||
#, python-format
|
||||
msgid "\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/settings/link_domains/link_table.html:6
|
||||
msgid "URL"
|
||||
msgstr ""
|
||||
msgstr "Nuoroda"
|
||||
|
||||
#: bookwyrm/templates/book/file_links/edit_links.html:33
|
||||
#: bookwyrm/templates/settings/link_domains/link_table.html:7
|
||||
msgid "Added by"
|
||||
msgstr ""
|
||||
msgstr "Pridėjo"
|
||||
|
||||
#: bookwyrm/templates/book/file_links/edit_links.html:34
|
||||
#: bookwyrm/templates/settings/link_domains/link_table.html:8
|
||||
msgid "Filetype"
|
||||
msgstr ""
|
||||
msgstr "Failo tipas"
|
||||
|
||||
#: bookwyrm/templates/book/file_links/edit_links.html:35
|
||||
#: 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/verification_modal.html:25
|
||||
msgid "Report spam"
|
||||
msgstr ""
|
||||
msgstr "Pranešti apie brukalą"
|
||||
|
||||
#: bookwyrm/templates/book/file_links/edit_links.html:97
|
||||
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/links.html:18
|
||||
msgid "Add link to file"
|
||||
msgstr ""
|
||||
msgstr "Pridėti nuorodą į failą"
|
||||
|
||||
#: bookwyrm/templates/book/file_links/file_link_page.html:6
|
||||
msgid "File Links"
|
||||
msgstr ""
|
||||
msgstr "Nuorodos į failus"
|
||||
|
||||
#: bookwyrm/templates/book/file_links/links.html:9
|
||||
msgid "Get a copy"
|
||||
msgstr ""
|
||||
msgstr "Gauti kopiją"
|
||||
|
||||
#: bookwyrm/templates/book/file_links/links.html:47
|
||||
msgid "No links available"
|
||||
msgstr ""
|
||||
msgstr "Nuorodų nėra"
|
||||
|
||||
#: bookwyrm/templates/book/file_links/verification_modal.html:5
|
||||
msgid "Leaving BookWyrm"
|
||||
msgstr ""
|
||||
msgstr "Tęsti naršymą ne BookWyrm"
|
||||
|
||||
#: bookwyrm/templates/book/file_links/verification_modal.html:11
|
||||
#, python-format
|
||||
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
|
||||
msgid "Continue"
|
||||
msgstr ""
|
||||
msgstr "Tęsti"
|
||||
|
||||
#: bookwyrm/templates/book/publisher_info.html:23
|
||||
#, python-format
|
||||
|
@ -1663,7 +1662,7 @@ msgid "What are you reading?"
|
|||
msgstr "Ką skaitome?"
|
||||
|
||||
#: bookwyrm/templates/get_started/books.html:9
|
||||
#: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:162
|
||||
#: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:163
|
||||
msgid "Search for a book"
|
||||
msgstr "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/users.html:18
|
||||
#: bookwyrm/templates/get_started/users.html:19
|
||||
#: bookwyrm/templates/groups/members.html:16
|
||||
#: bookwyrm/templates/groups/members.html:17 bookwyrm/templates/layout.html:53
|
||||
#: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:166
|
||||
#: bookwyrm/templates/groups/members.html:15
|
||||
#: bookwyrm/templates/groups/members.html:16 bookwyrm/templates/layout.html:53
|
||||
#: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:167
|
||||
#: bookwyrm/templates/search/layout.html:4
|
||||
#: bookwyrm/templates/search/layout.html:9
|
||||
msgid "Search"
|
||||
|
@ -1699,7 +1698,7 @@ msgid "Popular on %(site_name)s"
|
|||
msgstr "%(site_name)s populiaru"
|
||||
|
||||
#: bookwyrm/templates/get_started/books.html:58
|
||||
#: bookwyrm/templates/lists/list.html:179
|
||||
#: bookwyrm/templates/lists/list.html:180
|
||||
msgid "No books found"
|
||||
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/ip_blocklist/ip_blocklist.html:36
|
||||
#: bookwyrm/templates/snippets/follow_request_buttons.html:12
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:13
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:14
|
||||
msgid "Delete"
|
||||
msgstr "Ištrinti"
|
||||
|
||||
|
@ -1824,17 +1823,17 @@ msgstr "Grupės aprašymas:"
|
|||
msgid "Delete group"
|
||||
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."
|
||||
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/lists.html:20
|
||||
msgid "Create List"
|
||||
msgstr "Sukurti sąrašą"
|
||||
|
||||
#: bookwyrm/templates/groups/group.html:40
|
||||
#: bookwyrm/templates/groups/group.html:39
|
||||
msgid "This group has no lists"
|
||||
msgstr "Šioje grupėje nėra sąrašų"
|
||||
|
||||
|
@ -1842,15 +1841,15 @@ msgstr "Šioje grupėje nėra sąrašų"
|
|||
msgid "Edit group"
|
||||
msgstr "Redaguoti grupę"
|
||||
|
||||
#: bookwyrm/templates/groups/members.html:12
|
||||
#: bookwyrm/templates/groups/members.html:11
|
||||
msgid "Search to add a user"
|
||||
msgstr "Ieškokite, kad pridėtumėte naudotoją"
|
||||
|
||||
#: bookwyrm/templates/groups/members.html:33
|
||||
#: bookwyrm/templates/groups/members.html:32
|
||||
msgid "Leave group"
|
||||
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/snippets/suggested_users.html:31
|
||||
#: bookwyrm/templates/user/user_preview.html:36
|
||||
|
@ -2067,7 +2066,7 @@ msgstr "Atmesti"
|
|||
|
||||
#: 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."
|
||||
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
|
||||
msgid "Failed items"
|
||||
|
@ -2315,18 +2314,18 @@ msgstr "Ištrinti šį sąrašą?"
|
|||
msgid "Edit List"
|
||||
msgstr "Redaguoti sąrašą"
|
||||
|
||||
#: bookwyrm/templates/lists/embed-list.html:7
|
||||
#: bookwyrm/templates/lists/embed-list.html:8
|
||||
#, python-format
|
||||
msgid "%(list_name)s, a list by %(owner)s"
|
||||
msgstr "%(list_name)s, sąrašą sudarė %(owner)s"
|
||||
|
||||
#: bookwyrm/templates/lists/embed-list.html:17
|
||||
#: bookwyrm/templates/lists/embed-list.html:18
|
||||
#, python-format
|
||||
msgid "on <a href=\"/\">%(site_name)s</a>"
|
||||
msgstr "per <a href=\"/\">%(site_name)s</a>"
|
||||
|
||||
#: bookwyrm/templates/lists/embed-list.html:26
|
||||
#: bookwyrm/templates/lists/list.html:42
|
||||
#: bookwyrm/templates/lists/embed-list.html:27
|
||||
#: bookwyrm/templates/lists/list.html:43
|
||||
msgid "This list is currently empty"
|
||||
msgstr "Šiuo metu sąrašas tuščias"
|
||||
|
||||
|
@ -2387,76 +2386,76 @@ msgstr "Sukurti grupę"
|
|||
msgid "Delete list"
|
||||
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!"
|
||||
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!"
|
||||
msgstr "Sėkmingai pridėjote knygą į šį sąrašą!"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:80
|
||||
#: bookwyrm/templates/lists/list.html:81
|
||||
#, python-format
|
||||
msgid "Added by <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"
|
||||
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
|
||||
msgid "Set"
|
||||
msgstr "Nustatyti"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:116
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:19
|
||||
#: bookwyrm/templates/lists/list.html:117
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:20
|
||||
msgid "Remove"
|
||||
msgstr "Pašalinti"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:130
|
||||
#: bookwyrm/templates/lists/list.html:147
|
||||
#: bookwyrm/templates/lists/list.html:131
|
||||
#: bookwyrm/templates/lists/list.html:148
|
||||
msgid "Sort List"
|
||||
msgstr "Rūšiuoti sąrašą"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:140
|
||||
#: bookwyrm/templates/lists/list.html:141
|
||||
msgid "Direction"
|
||||
msgstr "Kryptis"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:154
|
||||
#: bookwyrm/templates/lists/list.html:155
|
||||
msgid "Add Books"
|
||||
msgstr "Pridėti knygų"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:156
|
||||
#: bookwyrm/templates/lists/list.html:157
|
||||
msgid "Suggest Books"
|
||||
msgstr "Siūlyti knygų"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:167
|
||||
#: bookwyrm/templates/lists/list.html:168
|
||||
msgid "search"
|
||||
msgstr "paieška"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:173
|
||||
#: bookwyrm/templates/lists/list.html:174
|
||||
msgid "Clear search"
|
||||
msgstr "Išvalyti paiešką"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:178
|
||||
#: bookwyrm/templates/lists/list.html:179
|
||||
#, python-format
|
||||
msgid "No books found matching the query \"%(query)s\""
|
||||
msgstr "Pagal paiešką „%(query)s“ knygų nerasta"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:210
|
||||
#: bookwyrm/templates/lists/list.html:211
|
||||
msgid "Suggest"
|
||||
msgstr "Siūlyti"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:221
|
||||
#: bookwyrm/templates/lists/list.html:222
|
||||
msgid "Embed this list on a website"
|
||||
msgstr "Įdėkite šį sąrašą į tinklalapį"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:229
|
||||
#: bookwyrm/templates/lists/list.html:230
|
||||
msgid "Copy embed code"
|
||||
msgstr "Nukopijuokite įterptinį kodą"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:231
|
||||
#: bookwyrm/templates/lists/list.html:232
|
||||
#, python-format
|
||||
msgid "%(list_name)s, a list by %(owner)s on %(site_name)s"
|
||||
msgstr "%(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:7
|
||||
msgid "Link Domains"
|
||||
msgstr ""
|
||||
msgstr "Susieti domenus"
|
||||
|
||||
#: bookwyrm/templates/settings/layout.html:72
|
||||
msgid "Instance Settings"
|
||||
|
@ -3546,23 +3545,23 @@ msgstr ""
|
|||
|
||||
#: bookwyrm/templates/settings/link_domains/link_domains.html:45
|
||||
msgid "Set display name"
|
||||
msgstr ""
|
||||
msgstr "Nurodyti pavadinimą"
|
||||
|
||||
#: bookwyrm/templates/settings/link_domains/link_domains.html:53
|
||||
msgid "View links"
|
||||
msgstr ""
|
||||
msgstr "Peržiūrėti nuorodas"
|
||||
|
||||
#: bookwyrm/templates/settings/link_domains/link_domains.html:96
|
||||
msgid "No domains currently approved"
|
||||
msgstr ""
|
||||
msgstr "Nėra patvirtintų domenų"
|
||||
|
||||
#: bookwyrm/templates/settings/link_domains/link_domains.html:98
|
||||
msgid "No domains currently pending"
|
||||
msgstr ""
|
||||
msgstr "Nėra domenų, laukiančių patvirtinimo"
|
||||
|
||||
#: bookwyrm/templates/settings/link_domains/link_domains.html:100
|
||||
msgid "No domains currently blocked"
|
||||
msgstr ""
|
||||
msgstr "Šiuo metu užblokuotų domenų nėra"
|
||||
|
||||
#: bookwyrm/templates/settings/link_domains/link_table.html:39
|
||||
msgid "No links available for this domain."
|
||||
|
@ -3582,7 +3581,7 @@ msgstr "Būsena ištrinta"
|
|||
|
||||
#: bookwyrm/templates/settings/reports/report.html:39
|
||||
msgid "Reported links"
|
||||
msgstr ""
|
||||
msgstr "Raportuotos nuorodos"
|
||||
|
||||
#: bookwyrm/templates/settings/reports/report.html:55
|
||||
msgid "Moderator Comments"
|
||||
|
@ -3610,7 +3609,7 @@ msgstr ""
|
|||
|
||||
#: bookwyrm/templates/settings/reports/report_links_table.html:17
|
||||
msgid "Block domain"
|
||||
msgstr ""
|
||||
msgstr "Užblokuoti domeną"
|
||||
|
||||
#: bookwyrm/templates/settings/reports/report_preview.html:17
|
||||
msgid "No notes provided"
|
||||
|
@ -3865,7 +3864,7 @@ msgstr "Visam laikui ištrintas"
|
|||
|
||||
#: bookwyrm/templates/settings/users/user_moderation_actions.html:8
|
||||
msgid "User Actions"
|
||||
msgstr ""
|
||||
msgstr "Nario veiksmai"
|
||||
|
||||
#: bookwyrm/templates/settings/users/user_moderation_actions.html:21
|
||||
msgid "Suspend user"
|
||||
|
@ -3889,7 +3888,7 @@ msgstr "Redaguoti lentyną"
|
|||
|
||||
#: bookwyrm/templates/shelf/shelf.html:24
|
||||
msgid "User profile"
|
||||
msgstr ""
|
||||
msgstr "Nario profilis"
|
||||
|
||||
#: bookwyrm/templates/shelf/shelf.html:39
|
||||
#: bookwyrm/templates/snippets/translated_shelf_name.html:3
|
||||
|
@ -3942,15 +3941,15 @@ msgstr "Baigta"
|
|||
msgid "This shelf is empty."
|
||||
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"
|
||||
msgstr "Pakviesti"
|
||||
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:24
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:25
|
||||
msgid "Uninvite"
|
||||
msgstr "Atšaukti kvietimą"
|
||||
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:28
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:29
|
||||
#, python-format
|
||||
msgid "Remove @%(username)s"
|
||||
msgstr "Pašalinti @%(username)s"
|
||||
|
@ -4040,7 +4039,7 @@ msgstr "Galimas turinio atskleidimas!"
|
|||
msgid "Include spoiler alert"
|
||||
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
|
||||
msgid "Comment:"
|
||||
msgstr "Komentuoti:"
|
||||
|
@ -4049,33 +4048,33 @@ msgstr "Komentuoti:"
|
|||
msgid "Post"
|
||||
msgstr "Publikuoti"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:17
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:16
|
||||
msgid "Quote:"
|
||||
msgstr "Citata:"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:25
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:24
|
||||
#, python-format
|
||||
msgid "An excerpt from '%(book_title)s'"
|
||||
msgstr "Ištrauka iš „%(book_title)s“"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:32
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:31
|
||||
msgid "Position:"
|
||||
msgstr "Pozicija:"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:45
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:44
|
||||
msgid "On page:"
|
||||
msgstr "Puslapyje:"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:51
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:50
|
||||
msgid "At percent:"
|
||||
msgstr "Proc.:"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:25
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:24
|
||||
#, python-format
|
||||
msgid "Your review of '%(book_title)s'"
|
||||
msgstr "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:"
|
||||
msgstr "Atsiliepimas:"
|
||||
|
||||
|
@ -4129,7 +4128,7 @@ msgid "Unfollow"
|
|||
msgstr "Nebesekti"
|
||||
|
||||
#: bookwyrm/templates/snippets/follow_request_buttons.html:7
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:8
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:9
|
||||
msgid "Accept"
|
||||
msgstr "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
|
||||
#, python-format
|
||||
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(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 "Review of \"%(book_title)s\" (%(display_rating)s star): %(review_title)s"
|
||||
msgid_plural "Review of \"%(book_title)s\" (%(display_rating)s stars): %(review_title)s"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[2] ""
|
||||
|
@ -4186,7 +4185,7 @@ msgstr[3] ""
|
|||
|
||||
#: bookwyrm/templates/snippets/generated_status/review_pure_name.html:12
|
||||
#, 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 ""
|
||||
|
||||
#: bookwyrm/templates/snippets/goal_form.html:4
|
||||
|
@ -4257,11 +4256,11 @@ msgstr "Tik sekėjai"
|
|||
msgid "Post privacy"
|
||||
msgstr "Įrašo privatumas"
|
||||
|
||||
#: bookwyrm/templates/snippets/rate_action.html:4
|
||||
#: bookwyrm/templates/snippets/rate_action.html:5
|
||||
msgid "Leave a rating"
|
||||
msgstr "Palikti įvertinimą"
|
||||
|
||||
#: bookwyrm/templates/snippets/rate_action.html:19
|
||||
#: bookwyrm/templates/snippets/rate_action.html:20
|
||||
msgid "Rate"
|
||||
msgstr "Įvertinti"
|
||||
|
||||
|
@ -4355,29 +4354,29 @@ msgstr "Pašalinti iš %(name)s"
|
|||
msgid "Finish reading"
|
||||
msgstr "Baigti skaityti"
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:72
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:73
|
||||
msgid "Content warning"
|
||||
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"
|
||||
msgstr "Rodyti būseną"
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:101
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:102
|
||||
#, python-format
|
||||
msgid "(Page %(page)s)"
|
||||
msgstr "(Psl. %(page)s)"
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:103
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:104
|
||||
#, python-format
|
||||
msgid "(%(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"
|
||||
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"
|
||||
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}"
|
||||
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
|
||||
msgid "Status updates from {obj.display_name}"
|
||||
msgstr "Būsenos atnaujinimai iš {obj.display_name}"
|
||||
|
|
Binary file not shown.
|
@ -2,8 +2,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: bookwyrm\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-01-17 19:26+0000\n"
|
||||
"PO-Revision-Date: 2022-01-17 19:57\n"
|
||||
"POT-Creation-Date: 2022-01-24 17:25+0000\n"
|
||||
"PO-Revision-Date: 2022-01-24 18:54\n"
|
||||
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
|
||||
"Language-Team: Norwegian\n"
|
||||
"Language: no\n"
|
||||
|
@ -56,11 +56,11 @@ msgstr "Boktittel"
|
|||
|
||||
#: bookwyrm/forms.py:485 bookwyrm/templates/shelf/shelf.html:155
|
||||
#: bookwyrm/templates/shelf/shelf.html:187
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:33
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:32
|
||||
msgid "Rating"
|
||||
msgstr "Vurdering"
|
||||
|
||||
#: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:134
|
||||
#: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:135
|
||||
msgid "Sort By"
|
||||
msgstr "Sorter etter"
|
||||
|
||||
|
@ -224,69 +224,69 @@ msgstr "Sitater"
|
|||
msgid "Everything else"
|
||||
msgstr "Andre ting"
|
||||
|
||||
#: bookwyrm/settings.py:121
|
||||
#: bookwyrm/settings.py:173
|
||||
msgid "Home Timeline"
|
||||
msgstr "Lokal tidslinje"
|
||||
|
||||
#: bookwyrm/settings.py:121
|
||||
#: bookwyrm/settings.py:173
|
||||
msgid "Home"
|
||||
msgstr "Hjem"
|
||||
|
||||
#: bookwyrm/settings.py:122
|
||||
#: bookwyrm/settings.py:174
|
||||
msgid "Books Timeline"
|
||||
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/user/layout.html:91
|
||||
msgid "Books"
|
||||
msgstr "Bøker"
|
||||
|
||||
#: bookwyrm/settings.py:196
|
||||
#: bookwyrm/settings.py:248
|
||||
msgid "English"
|
||||
msgstr "English (Engelsk)"
|
||||
|
||||
#: bookwyrm/settings.py:197
|
||||
#: bookwyrm/settings.py:249
|
||||
msgid "Deutsch (German)"
|
||||
msgstr "Deutsch (Tysk)"
|
||||
|
||||
#: bookwyrm/settings.py:198
|
||||
#: bookwyrm/settings.py:250
|
||||
msgid "Español (Spanish)"
|
||||
msgstr "Español (Spansk)"
|
||||
|
||||
#: bookwyrm/settings.py:199
|
||||
#: bookwyrm/settings.py:251
|
||||
msgid "Galego (Galician)"
|
||||
msgstr "Galego (Gallisk)"
|
||||
|
||||
#: bookwyrm/settings.py:200
|
||||
#: bookwyrm/settings.py:252
|
||||
msgid "Italiano (Italian)"
|
||||
msgstr "Italiano (Italiensk)"
|
||||
|
||||
#: bookwyrm/settings.py:201
|
||||
#: bookwyrm/settings.py:253
|
||||
msgid "Français (French)"
|
||||
msgstr "Français (Fransk)"
|
||||
|
||||
#: bookwyrm/settings.py:202
|
||||
#: bookwyrm/settings.py:254
|
||||
msgid "Lietuvių (Lithuanian)"
|
||||
msgstr "Lietuvių (Litauisk)"
|
||||
|
||||
#: bookwyrm/settings.py:203
|
||||
#: bookwyrm/settings.py:255
|
||||
msgid "Norsk (Norwegian)"
|
||||
msgstr "Norsk (Norsk)"
|
||||
|
||||
#: bookwyrm/settings.py:204
|
||||
#: bookwyrm/settings.py:256
|
||||
msgid "Português do Brasil (Brazilian Portuguese)"
|
||||
msgstr "Português - Brasil (Brasiliansk portugisisk)"
|
||||
|
||||
#: bookwyrm/settings.py:205
|
||||
#: bookwyrm/settings.py:257
|
||||
msgid "Português Europeu (European Portuguese)"
|
||||
msgstr "Português Europeu (Europeisk Portugisisk)"
|
||||
|
||||
#: bookwyrm/settings.py:206
|
||||
#: bookwyrm/settings.py:258
|
||||
msgid "简体中文 (Simplified Chinese)"
|
||||
msgstr "简体中文 (Forenklet kinesisk)"
|
||||
|
||||
#: bookwyrm/settings.py:207
|
||||
#: bookwyrm/settings.py:259
|
||||
msgid "繁體中文 (Traditional Chinese)"
|
||||
msgstr "繁體中文 (Tradisjonelt kinesisk)"
|
||||
|
||||
|
@ -315,58 +315,54 @@ msgstr "Beklager, noe gikk galt! Leit, det der."
|
|||
msgid "About"
|
||||
msgstr "Om"
|
||||
|
||||
#: bookwyrm/templates/about/about.html:18
|
||||
#: bookwyrm/templates/about/about.html:19
|
||||
#: bookwyrm/templates/get_started/layout.html:20
|
||||
#, python-format
|
||||
msgid "Welcome to %(site_name)s!"
|
||||
msgstr "Velkommen til %(site_name)s!"
|
||||
|
||||
#: bookwyrm/templates/about/about.html:22
|
||||
#: bookwyrm/templates/about/about.html:23
|
||||
#, 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."
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/about/about.html:39
|
||||
#: bookwyrm/templates/about/about.html:40
|
||||
#, 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."
|
||||
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
|
||||
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."
|
||||
|
||||
#: bookwyrm/templates/about/about.html:77
|
||||
#: bookwyrm/templates/about/about.html:78
|
||||
#, 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."
|
||||
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."
|
||||
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"
|
||||
msgstr "Møt administratorene"
|
||||
|
||||
#: bookwyrm/templates/about/about.html:98
|
||||
#: bookwyrm/templates/about/about.html:99
|
||||
#, python-format
|
||||
msgid "\n"
|
||||
" %(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 "\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"
|
||||
" "
|
||||
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 ""
|
||||
|
||||
#: bookwyrm/templates/about/about.html:112
|
||||
#: bookwyrm/templates/about/about.html:113
|
||||
msgid "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"
|
||||
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/snippets/status/status_options.html:35
|
||||
#: bookwyrm/templates/snippets/user_options.html:13
|
||||
|
@ -428,7 +424,7 @@ msgid "Copy address"
|
|||
msgstr "Kopiér adresse"
|
||||
|
||||
#: bookwyrm/templates/annual_summary/layout.html:68
|
||||
#: bookwyrm/templates/lists/list.html:230
|
||||
#: bookwyrm/templates/lists/list.html:231
|
||||
msgid "Copied!"
|
||||
msgstr "Kopiert!"
|
||||
|
||||
|
@ -497,7 +493,7 @@ msgstr "Den korteste teksten lest i år…"
|
|||
#: bookwyrm/templates/annual_summary/layout.html:245
|
||||
#: bookwyrm/templates/book/book.html:47
|
||||
#: bookwyrm/templates/discover/large-book.html:22
|
||||
#: bookwyrm/templates/landing/large-book.html:25
|
||||
#: bookwyrm/templates/landing/large-book.html:26
|
||||
#: bookwyrm/templates/landing/small-book.html:18
|
||||
msgid "by"
|
||||
msgstr "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/book/edit/edit_book.html:108
|
||||
#: bookwyrm/templates/book/sync_modal.html:22
|
||||
#: bookwyrm/templates/groups/members.html:30
|
||||
#: bookwyrm/templates/groups/members.html:29
|
||||
#: bookwyrm/templates/landing/password_reset.html:42
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:16
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:17
|
||||
msgid "Confirm"
|
||||
msgstr "Bekreft"
|
||||
|
||||
|
@ -819,8 +815,8 @@ msgid "Places"
|
|||
msgstr "Steder"
|
||||
|
||||
#: bookwyrm/templates/book/book.html:348
|
||||
#: bookwyrm/templates/groups/group.html:20 bookwyrm/templates/layout.html:74
|
||||
#: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:10
|
||||
#: bookwyrm/templates/groups/group.html:19 bookwyrm/templates/layout.html:74
|
||||
#: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:11
|
||||
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
|
||||
#: bookwyrm/templates/search/layout.html:25
|
||||
#: bookwyrm/templates/search/layout.html:50
|
||||
|
@ -834,7 +830,7 @@ msgstr "Legg til i liste"
|
|||
|
||||
#: bookwyrm/templates/book/book.html:369
|
||||
#: bookwyrm/templates/book/cover_add_modal.html:31
|
||||
#: bookwyrm/templates/lists/list.html:208
|
||||
#: bookwyrm/templates/lists/list.html:209
|
||||
#: bookwyrm/templates/settings/email_blocklist/domain_form.html:24
|
||||
#: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:31
|
||||
msgid "Add"
|
||||
|
@ -936,7 +932,7 @@ msgid "Back"
|
|||
msgstr "Tilbake"
|
||||
|
||||
#: bookwyrm/templates/book/edit/edit_book_form.html:21
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:16
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:15
|
||||
msgid "Title:"
|
||||
msgstr "Tittel:"
|
||||
|
||||
|
@ -1651,7 +1647,7 @@ msgid "What are you reading?"
|
|||
msgstr "Hva er det du leser nå?"
|
||||
|
||||
#: bookwyrm/templates/get_started/books.html:9
|
||||
#: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:162
|
||||
#: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:163
|
||||
msgid "Search for a book"
|
||||
msgstr "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/users.html:18
|
||||
#: bookwyrm/templates/get_started/users.html:19
|
||||
#: bookwyrm/templates/groups/members.html:16
|
||||
#: bookwyrm/templates/groups/members.html:17 bookwyrm/templates/layout.html:53
|
||||
#: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:166
|
||||
#: bookwyrm/templates/groups/members.html:15
|
||||
#: bookwyrm/templates/groups/members.html:16 bookwyrm/templates/layout.html:53
|
||||
#: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:167
|
||||
#: bookwyrm/templates/search/layout.html:4
|
||||
#: bookwyrm/templates/search/layout.html:9
|
||||
msgid "Search"
|
||||
|
@ -1687,7 +1683,7 @@ msgid "Popular on %(site_name)s"
|
|||
msgstr "Populært på %(site_name)s"
|
||||
|
||||
#: bookwyrm/templates/get_started/books.html:58
|
||||
#: bookwyrm/templates/lists/list.html:179
|
||||
#: bookwyrm/templates/lists/list.html:180
|
||||
msgid "No books found"
|
||||
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/ip_blocklist/ip_blocklist.html:36
|
||||
#: bookwyrm/templates/snippets/follow_request_buttons.html:12
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:13
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:14
|
||||
msgid "Delete"
|
||||
msgstr "Slett"
|
||||
|
||||
|
@ -1812,17 +1808,17 @@ msgstr "Gruppebeskrivelse:"
|
|||
msgid "Delete group"
|
||||
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."
|
||||
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/lists.html:20
|
||||
msgid "Create List"
|
||||
msgstr "Opprett liste"
|
||||
|
||||
#: bookwyrm/templates/groups/group.html:40
|
||||
#: bookwyrm/templates/groups/group.html:39
|
||||
msgid "This group has no lists"
|
||||
msgstr "Denne gruppa har ingen lister"
|
||||
|
||||
|
@ -1830,15 +1826,15 @@ msgstr "Denne gruppa har ingen lister"
|
|||
msgid "Edit group"
|
||||
msgstr "Rediger gruppe"
|
||||
|
||||
#: bookwyrm/templates/groups/members.html:12
|
||||
#: bookwyrm/templates/groups/members.html:11
|
||||
msgid "Search to add a user"
|
||||
msgstr "Søk for å legge til et medlem"
|
||||
|
||||
#: bookwyrm/templates/groups/members.html:33
|
||||
#: bookwyrm/templates/groups/members.html:32
|
||||
msgid "Leave group"
|
||||
msgstr "Forlat gruppa"
|
||||
|
||||
#: bookwyrm/templates/groups/members.html:55
|
||||
#: bookwyrm/templates/groups/members.html:54
|
||||
#: bookwyrm/templates/groups/suggested_users.html:35
|
||||
#: bookwyrm/templates/snippets/suggested_users.html:31
|
||||
#: bookwyrm/templates/user/user_preview.html:36
|
||||
|
@ -2295,18 +2291,18 @@ msgstr "Slett denne lista?"
|
|||
msgid "Edit List"
|
||||
msgstr "Redigér lista"
|
||||
|
||||
#: bookwyrm/templates/lists/embed-list.html:7
|
||||
#: bookwyrm/templates/lists/embed-list.html:8
|
||||
#, python-format
|
||||
msgid "%(list_name)s, a list by %(owner)s"
|
||||
msgstr "%(list_name)s, ei liste av %(owner)s"
|
||||
|
||||
#: bookwyrm/templates/lists/embed-list.html:17
|
||||
#: bookwyrm/templates/lists/embed-list.html:18
|
||||
#, python-format
|
||||
msgid "on <a href=\"/\">%(site_name)s</a>"
|
||||
msgstr "på <a href=\"/\">%(site_name)s</a>"
|
||||
|
||||
#: bookwyrm/templates/lists/embed-list.html:26
|
||||
#: bookwyrm/templates/lists/list.html:42
|
||||
#: bookwyrm/templates/lists/embed-list.html:27
|
||||
#: bookwyrm/templates/lists/list.html:43
|
||||
msgid "This list is currently empty"
|
||||
msgstr "Denne lista er for tida tom"
|
||||
|
||||
|
@ -2367,76 +2363,76 @@ msgstr "Opprett ei gruppe"
|
|||
msgid "Delete list"
|
||||
msgstr "Slett liste"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:34
|
||||
#: bookwyrm/templates/lists/list.html:35
|
||||
msgid "You successfully suggested a book for this list!"
|
||||
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!"
|
||||
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
|
||||
msgid "Added by <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"
|
||||
msgstr "Listeposisjon"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:101
|
||||
#: bookwyrm/templates/lists/list.html:102
|
||||
#: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:21
|
||||
msgid "Set"
|
||||
msgstr "Bruk"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:116
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:19
|
||||
#: bookwyrm/templates/lists/list.html:117
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:20
|
||||
msgid "Remove"
|
||||
msgstr "Fjern"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:130
|
||||
#: bookwyrm/templates/lists/list.html:147
|
||||
#: bookwyrm/templates/lists/list.html:131
|
||||
#: bookwyrm/templates/lists/list.html:148
|
||||
msgid "Sort List"
|
||||
msgstr "Sorter liste"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:140
|
||||
#: bookwyrm/templates/lists/list.html:141
|
||||
msgid "Direction"
|
||||
msgstr "Retning"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:154
|
||||
#: bookwyrm/templates/lists/list.html:155
|
||||
msgid "Add Books"
|
||||
msgstr "Legg til bøker"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:156
|
||||
#: bookwyrm/templates/lists/list.html:157
|
||||
msgid "Suggest Books"
|
||||
msgstr "Foreslå bøker"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:167
|
||||
#: bookwyrm/templates/lists/list.html:168
|
||||
msgid "search"
|
||||
msgstr "søk"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:173
|
||||
#: bookwyrm/templates/lists/list.html:174
|
||||
msgid "Clear search"
|
||||
msgstr "Nullstill søk"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:178
|
||||
#: bookwyrm/templates/lists/list.html:179
|
||||
#, python-format
|
||||
msgid "No books found matching the query \"%(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"
|
||||
msgstr "Foreslå"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:221
|
||||
#: bookwyrm/templates/lists/list.html:222
|
||||
msgid "Embed this list on a website"
|
||||
msgstr "Legg denne lista inn på et nettsted"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:229
|
||||
#: bookwyrm/templates/lists/list.html:230
|
||||
msgid "Copy embed code"
|
||||
msgstr "Kopier kode som legger inn lista"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:231
|
||||
#: bookwyrm/templates/lists/list.html:232
|
||||
#, python-format
|
||||
msgid "%(list_name)s, a list by %(owner)s on %(site_name)s"
|
||||
msgstr "%(list_name)s, en liste av %(owner)s på %(site_name)s"
|
||||
|
@ -3912,15 +3908,15 @@ msgstr "Fullført"
|
|||
msgid "This shelf is empty."
|
||||
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"
|
||||
msgstr "Invitér"
|
||||
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:24
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:25
|
||||
msgid "Uninvite"
|
||||
msgstr "Avlys invitasjon"
|
||||
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:28
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:29
|
||||
#, python-format
|
||||
msgid "Remove @%(username)s"
|
||||
msgstr "Fjern %(username)s"
|
||||
|
@ -4008,7 +4004,7 @@ msgstr "Spoilers forut!"
|
|||
msgid "Include spoiler alert"
|
||||
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
|
||||
msgid "Comment:"
|
||||
msgstr "Kommentar:"
|
||||
|
@ -4017,33 +4013,33 @@ msgstr "Kommentar:"
|
|||
msgid "Post"
|
||||
msgstr "Innlegg"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:17
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:16
|
||||
msgid "Quote:"
|
||||
msgstr "Sitat:"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:25
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:24
|
||||
#, python-format
|
||||
msgid "An excerpt from '%(book_title)s'"
|
||||
msgstr "En utdrag fra '%(book_title)s'"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:32
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:31
|
||||
msgid "Position:"
|
||||
msgstr "Plassering:"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:45
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:44
|
||||
msgid "On page:"
|
||||
msgstr "På side:"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:51
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:50
|
||||
msgid "At percent:"
|
||||
msgstr "Ved prosent:"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:25
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:24
|
||||
#, python-format
|
||||
msgid "Your review of '%(book_title)s'"
|
||||
msgstr "Din anmeldelse av '%(book_title)s"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:40
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:39
|
||||
msgid "Review:"
|
||||
msgstr "Anmeldelse:"
|
||||
|
||||
|
@ -4097,7 +4093,7 @@ msgid "Unfollow"
|
|||
msgstr "Slutt å følge"
|
||||
|
||||
#: bookwyrm/templates/snippets/follow_request_buttons.html:7
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:8
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:9
|
||||
msgid "Accept"
|
||||
msgstr "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
|
||||
#, python-format
|
||||
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(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 "Review of \"%(book_title)s\" (%(display_rating)s star): %(review_title)s"
|
||||
msgid_plural "Review of \"%(book_title)s\" (%(display_rating)s stars): %(review_title)s"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: bookwyrm/templates/snippets/generated_status/review_pure_name.html:12
|
||||
#, python-format
|
||||
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\": %(review_title)s"
|
||||
msgid "Review of \"%(book_title)s\": %(review_title)s"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/snippets/goal_form.html:4
|
||||
|
@ -4215,11 +4211,11 @@ msgstr "Kun følgere"
|
|||
msgid "Post privacy"
|
||||
msgstr "Delingsinstilling for post"
|
||||
|
||||
#: bookwyrm/templates/snippets/rate_action.html:4
|
||||
#: bookwyrm/templates/snippets/rate_action.html:5
|
||||
msgid "Leave a rating"
|
||||
msgstr "Legg inn en vurdering"
|
||||
|
||||
#: bookwyrm/templates/snippets/rate_action.html:19
|
||||
#: bookwyrm/templates/snippets/rate_action.html:20
|
||||
msgid "Rate"
|
||||
msgstr "Vurdér"
|
||||
|
||||
|
@ -4313,29 +4309,29 @@ msgstr "Fjern fra %(name)s"
|
|||
msgid "Finish reading"
|
||||
msgstr "Fullfør lesing"
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:72
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:73
|
||||
msgid "Content warning"
|
||||
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"
|
||||
msgstr "Vis status"
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:101
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:102
|
||||
#, python-format
|
||||
msgid "(Page %(page)s)"
|
||||
msgstr "(side %(page)s)"
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:103
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:104
|
||||
#, python-format
|
||||
msgid "(%(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"
|
||||
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"
|
||||
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}"
|
||||
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
|
||||
msgid "Status updates from {obj.display_name}"
|
||||
msgstr "Statusoppdateringer fra {obj.display_name}"
|
||||
|
|
Binary file not shown.
|
@ -2,8 +2,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: bookwyrm\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-01-17 19:26+0000\n"
|
||||
"PO-Revision-Date: 2022-01-18 14:10\n"
|
||||
"POT-Creation-Date: 2022-01-24 17:25+0000\n"
|
||||
"PO-Revision-Date: 2022-01-24 18:55\n"
|
||||
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
|
||||
"Language-Team: Portuguese, Brazilian\n"
|
||||
"Language: pt\n"
|
||||
|
@ -56,11 +56,11 @@ msgstr "Título do livro"
|
|||
|
||||
#: bookwyrm/forms.py:485 bookwyrm/templates/shelf/shelf.html:155
|
||||
#: bookwyrm/templates/shelf/shelf.html:187
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:33
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:32
|
||||
msgid "Rating"
|
||||
msgstr "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"
|
||||
msgstr "Organizar por"
|
||||
|
||||
|
@ -224,69 +224,69 @@ msgstr "Citações"
|
|||
msgid "Everything else"
|
||||
msgstr "Todo o resto"
|
||||
|
||||
#: bookwyrm/settings.py:121
|
||||
#: bookwyrm/settings.py:173
|
||||
msgid "Home Timeline"
|
||||
msgstr "Linha do tempo"
|
||||
|
||||
#: bookwyrm/settings.py:121
|
||||
#: bookwyrm/settings.py:173
|
||||
msgid "Home"
|
||||
msgstr "Página inicial"
|
||||
|
||||
#: bookwyrm/settings.py:122
|
||||
#: bookwyrm/settings.py:174
|
||||
msgid "Books Timeline"
|
||||
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/user/layout.html:91
|
||||
msgid "Books"
|
||||
msgstr "Livros"
|
||||
|
||||
#: bookwyrm/settings.py:196
|
||||
#: bookwyrm/settings.py:248
|
||||
msgid "English"
|
||||
msgstr "English (Inglês)"
|
||||
|
||||
#: bookwyrm/settings.py:197
|
||||
#: bookwyrm/settings.py:249
|
||||
msgid "Deutsch (German)"
|
||||
msgstr "Deutsch (Alemão)"
|
||||
|
||||
#: bookwyrm/settings.py:198
|
||||
#: bookwyrm/settings.py:250
|
||||
msgid "Español (Spanish)"
|
||||
msgstr "Español (Espanhol)"
|
||||
|
||||
#: bookwyrm/settings.py:199
|
||||
#: bookwyrm/settings.py:251
|
||||
msgid "Galego (Galician)"
|
||||
msgstr "Galego (Galego)"
|
||||
|
||||
#: bookwyrm/settings.py:200
|
||||
#: bookwyrm/settings.py:252
|
||||
msgid "Italiano (Italian)"
|
||||
msgstr "Italiano (Italiano)"
|
||||
|
||||
#: bookwyrm/settings.py:201
|
||||
#: bookwyrm/settings.py:253
|
||||
msgid "Français (French)"
|
||||
msgstr "Français (Francês)"
|
||||
|
||||
#: bookwyrm/settings.py:202
|
||||
#: bookwyrm/settings.py:254
|
||||
msgid "Lietuvių (Lithuanian)"
|
||||
msgstr "Lietuvių (Lituano)"
|
||||
|
||||
#: bookwyrm/settings.py:203
|
||||
#: bookwyrm/settings.py:255
|
||||
msgid "Norsk (Norwegian)"
|
||||
msgstr "Norsk (Norueguês)"
|
||||
|
||||
#: bookwyrm/settings.py:204
|
||||
#: bookwyrm/settings.py:256
|
||||
msgid "Português do Brasil (Brazilian Portuguese)"
|
||||
msgstr "Português do Brasil (Português do Brasil)"
|
||||
|
||||
#: bookwyrm/settings.py:205
|
||||
#: bookwyrm/settings.py:257
|
||||
msgid "Português Europeu (European Portuguese)"
|
||||
msgstr "Português Europeu (Português Europeu)"
|
||||
|
||||
#: bookwyrm/settings.py:206
|
||||
#: bookwyrm/settings.py:258
|
||||
msgid "简体中文 (Simplified Chinese)"
|
||||
msgstr "简体中文 (Chinês simplificado)"
|
||||
|
||||
#: bookwyrm/settings.py:207
|
||||
#: bookwyrm/settings.py:259
|
||||
msgid "繁體中文 (Traditional Chinese)"
|
||||
msgstr "繁體中文 (Chinês tradicional)"
|
||||
|
||||
|
@ -315,57 +315,54 @@ msgstr "Algo deu errado! Foi mal."
|
|||
msgid "About"
|
||||
msgstr "Sobre"
|
||||
|
||||
#: bookwyrm/templates/about/about.html:18
|
||||
#: bookwyrm/templates/about/about.html:19
|
||||
#: bookwyrm/templates/get_started/layout.html:20
|
||||
#, python-format
|
||||
msgid "Welcome to %(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
|
||||
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."
|
||||
|
||||
#: bookwyrm/templates/about/about.html:39
|
||||
#: bookwyrm/templates/about/about.html:40
|
||||
#, 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."
|
||||
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
|
||||
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>."
|
||||
|
||||
#: bookwyrm/templates/about/about.html:77
|
||||
#: bookwyrm/templates/about/about.html:78
|
||||
#, 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."
|
||||
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."
|
||||
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"
|
||||
msgstr "Conheça a administração"
|
||||
|
||||
#: bookwyrm/templates/about/about.html:98
|
||||
#: bookwyrm/templates/about/about.html:99
|
||||
#, python-format
|
||||
msgid "\n"
|
||||
" %(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 "\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. "
|
||||
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 "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."
|
||||
|
||||
#: bookwyrm/templates/about/about.html:112
|
||||
#: bookwyrm/templates/about/about.html:113
|
||||
msgid "Moderator"
|
||||
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"
|
||||
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/snippets/status/status_options.html:35
|
||||
#: bookwyrm/templates/snippets/user_options.html:13
|
||||
|
@ -427,7 +424,7 @@ msgid "Copy address"
|
|||
msgstr "Copiar endereço"
|
||||
|
||||
#: bookwyrm/templates/annual_summary/layout.html:68
|
||||
#: bookwyrm/templates/lists/list.html:230
|
||||
#: bookwyrm/templates/lists/list.html:231
|
||||
msgid "Copied!"
|
||||
msgstr "Copiado!"
|
||||
|
||||
|
@ -496,7 +493,7 @@ msgstr "A leitura mais curta do ano…"
|
|||
#: bookwyrm/templates/annual_summary/layout.html:245
|
||||
#: bookwyrm/templates/book/book.html:47
|
||||
#: bookwyrm/templates/discover/large-book.html:22
|
||||
#: bookwyrm/templates/landing/large-book.html:25
|
||||
#: bookwyrm/templates/landing/large-book.html:26
|
||||
#: bookwyrm/templates/landing/small-book.html:18
|
||||
msgid "by"
|
||||
msgstr "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/book/edit/edit_book.html:108
|
||||
#: bookwyrm/templates/book/sync_modal.html:22
|
||||
#: bookwyrm/templates/groups/members.html:30
|
||||
#: bookwyrm/templates/groups/members.html:29
|
||||
#: bookwyrm/templates/landing/password_reset.html:42
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:16
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:17
|
||||
msgid "Confirm"
|
||||
msgstr "Confirmar"
|
||||
|
||||
|
@ -818,8 +815,8 @@ msgid "Places"
|
|||
msgstr "Lugares"
|
||||
|
||||
#: bookwyrm/templates/book/book.html:348
|
||||
#: bookwyrm/templates/groups/group.html:20 bookwyrm/templates/layout.html:74
|
||||
#: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:10
|
||||
#: bookwyrm/templates/groups/group.html:19 bookwyrm/templates/layout.html:74
|
||||
#: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:11
|
||||
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
|
||||
#: bookwyrm/templates/search/layout.html:25
|
||||
#: bookwyrm/templates/search/layout.html:50
|
||||
|
@ -833,7 +830,7 @@ msgstr "Adicionar à lista"
|
|||
|
||||
#: bookwyrm/templates/book/book.html:369
|
||||
#: bookwyrm/templates/book/cover_add_modal.html:31
|
||||
#: bookwyrm/templates/lists/list.html:208
|
||||
#: bookwyrm/templates/lists/list.html:209
|
||||
#: bookwyrm/templates/settings/email_blocklist/domain_form.html:24
|
||||
#: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:31
|
||||
msgid "Add"
|
||||
|
@ -935,7 +932,7 @@ msgid "Back"
|
|||
msgstr "Voltar"
|
||||
|
||||
#: bookwyrm/templates/book/edit/edit_book_form.html:21
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:16
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:15
|
||||
msgid "Title:"
|
||||
msgstr "Título:"
|
||||
|
||||
|
@ -1652,7 +1649,7 @@ msgid "What are you reading?"
|
|||
msgstr "O que você está lendo?"
|
||||
|
||||
#: bookwyrm/templates/get_started/books.html:9
|
||||
#: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:162
|
||||
#: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:163
|
||||
msgid "Search for a book"
|
||||
msgstr "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/users.html:18
|
||||
#: bookwyrm/templates/get_started/users.html:19
|
||||
#: bookwyrm/templates/groups/members.html:16
|
||||
#: bookwyrm/templates/groups/members.html:17 bookwyrm/templates/layout.html:53
|
||||
#: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:166
|
||||
#: bookwyrm/templates/groups/members.html:15
|
||||
#: bookwyrm/templates/groups/members.html:16 bookwyrm/templates/layout.html:53
|
||||
#: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:167
|
||||
#: bookwyrm/templates/search/layout.html:4
|
||||
#: bookwyrm/templates/search/layout.html:9
|
||||
msgid "Search"
|
||||
|
@ -1688,7 +1685,7 @@ msgid "Popular on %(site_name)s"
|
|||
msgstr "Popular em %(site_name)s"
|
||||
|
||||
#: bookwyrm/templates/get_started/books.html:58
|
||||
#: bookwyrm/templates/lists/list.html:179
|
||||
#: bookwyrm/templates/lists/list.html:180
|
||||
msgid "No books found"
|
||||
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/ip_blocklist/ip_blocklist.html:36
|
||||
#: bookwyrm/templates/snippets/follow_request_buttons.html:12
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:13
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:14
|
||||
msgid "Delete"
|
||||
msgstr "Excluir"
|
||||
|
||||
|
@ -1813,17 +1810,17 @@ msgstr "Descrição do grupo:"
|
|||
msgid "Delete group"
|
||||
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."
|
||||
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/lists.html:20
|
||||
msgid "Create List"
|
||||
msgstr "Criar lista"
|
||||
|
||||
#: bookwyrm/templates/groups/group.html:40
|
||||
#: bookwyrm/templates/groups/group.html:39
|
||||
msgid "This group has no lists"
|
||||
msgstr "Este grupo não tem listas"
|
||||
|
||||
|
@ -1831,15 +1828,15 @@ msgstr "Este grupo não tem listas"
|
|||
msgid "Edit group"
|
||||
msgstr "Editar grupo"
|
||||
|
||||
#: bookwyrm/templates/groups/members.html:12
|
||||
#: bookwyrm/templates/groups/members.html:11
|
||||
msgid "Search to add a user"
|
||||
msgstr "Pesquisar usuário para adicionar"
|
||||
|
||||
#: bookwyrm/templates/groups/members.html:33
|
||||
#: bookwyrm/templates/groups/members.html:32
|
||||
msgid "Leave group"
|
||||
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/snippets/suggested_users.html:31
|
||||
#: bookwyrm/templates/user/user_preview.html:36
|
||||
|
@ -2296,18 +2293,18 @@ msgstr "Deletar esta lista?"
|
|||
msgid "Edit List"
|
||||
msgstr "Editar lista"
|
||||
|
||||
#: bookwyrm/templates/lists/embed-list.html:7
|
||||
#: bookwyrm/templates/lists/embed-list.html:8
|
||||
#, python-format
|
||||
msgid "%(list_name)s, a list by %(owner)s"
|
||||
msgstr "%(list_name)s, uma lista de %(owner)s"
|
||||
|
||||
#: bookwyrm/templates/lists/embed-list.html:17
|
||||
#: bookwyrm/templates/lists/embed-list.html:18
|
||||
#, python-format
|
||||
msgid "on <a href=\"/\">%(site_name)s</a>"
|
||||
msgstr "em <a href=\"/\">%(site_name)s</a>"
|
||||
|
||||
#: bookwyrm/templates/lists/embed-list.html:26
|
||||
#: bookwyrm/templates/lists/list.html:42
|
||||
#: bookwyrm/templates/lists/embed-list.html:27
|
||||
#: bookwyrm/templates/lists/list.html:43
|
||||
msgid "This list is currently empty"
|
||||
msgstr "Esta lista está vazia"
|
||||
|
||||
|
@ -2368,76 +2365,76 @@ msgstr "Criar grupo"
|
|||
msgid "Delete list"
|
||||
msgstr "Excluir lista"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:34
|
||||
#: bookwyrm/templates/lists/list.html:35
|
||||
msgid "You successfully suggested a book for this list!"
|
||||
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!"
|
||||
msgstr "Você adicionou um livro a esta lista com sucesso!"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:80
|
||||
#: bookwyrm/templates/lists/list.html:81
|
||||
#, python-format
|
||||
msgid "Added by <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"
|
||||
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
|
||||
msgid "Set"
|
||||
msgstr "Definir"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:116
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:19
|
||||
#: bookwyrm/templates/lists/list.html:117
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:20
|
||||
msgid "Remove"
|
||||
msgstr "Remover"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:130
|
||||
#: bookwyrm/templates/lists/list.html:147
|
||||
#: bookwyrm/templates/lists/list.html:131
|
||||
#: bookwyrm/templates/lists/list.html:148
|
||||
msgid "Sort List"
|
||||
msgstr "Ordenar lista"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:140
|
||||
#: bookwyrm/templates/lists/list.html:141
|
||||
msgid "Direction"
|
||||
msgstr "Sentido"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:154
|
||||
#: bookwyrm/templates/lists/list.html:155
|
||||
msgid "Add Books"
|
||||
msgstr "Adicionar livros"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:156
|
||||
#: bookwyrm/templates/lists/list.html:157
|
||||
msgid "Suggest Books"
|
||||
msgstr "Sugerir livros"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:167
|
||||
#: bookwyrm/templates/lists/list.html:168
|
||||
msgid "search"
|
||||
msgstr "pesquisar"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:173
|
||||
#: bookwyrm/templates/lists/list.html:174
|
||||
msgid "Clear search"
|
||||
msgstr "Limpar pesquisa"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:178
|
||||
#: bookwyrm/templates/lists/list.html:179
|
||||
#, python-format
|
||||
msgid "No books found matching the query \"%(query)s\""
|
||||
msgstr "Nenhum livro encontrado para \"%(query)s\""
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:210
|
||||
#: bookwyrm/templates/lists/list.html:211
|
||||
msgid "Suggest"
|
||||
msgstr "Sugerir"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:221
|
||||
#: bookwyrm/templates/lists/list.html:222
|
||||
msgid "Embed this list on a website"
|
||||
msgstr "Incorpore esta lista em um site"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:229
|
||||
#: bookwyrm/templates/lists/list.html:230
|
||||
msgid "Copy embed code"
|
||||
msgstr "Copiar código de incorporação"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:231
|
||||
#: bookwyrm/templates/lists/list.html:232
|
||||
#, python-format
|
||||
msgid "%(list_name)s, a list by %(owner)s on %(site_name)s"
|
||||
msgstr "%(list_name)s, uma lista de %(owner)s em %(site_name)s"
|
||||
|
@ -3913,15 +3910,15 @@ msgstr "Terminado"
|
|||
msgid "This shelf is empty."
|
||||
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"
|
||||
msgstr "Convidar"
|
||||
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:24
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:25
|
||||
msgid "Uninvite"
|
||||
msgstr "Desconvidar"
|
||||
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:28
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:29
|
||||
#, python-format
|
||||
msgid "Remove @%(username)s"
|
||||
msgstr "Excluir @%(username)s"
|
||||
|
@ -4009,7 +4006,7 @@ msgstr "Alerta de spoiler!"
|
|||
msgid "Include spoiler alert"
|
||||
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
|
||||
msgid "Comment:"
|
||||
msgstr "Comentário:"
|
||||
|
@ -4018,33 +4015,33 @@ msgstr "Comentário:"
|
|||
msgid "Post"
|
||||
msgstr "Publicar"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:17
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:16
|
||||
msgid "Quote:"
|
||||
msgstr "Citação:"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:25
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:24
|
||||
#, python-format
|
||||
msgid "An excerpt from '%(book_title)s'"
|
||||
msgstr "Um trecho de '%(book_title)s'"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:32
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:31
|
||||
msgid "Position:"
|
||||
msgstr "Posição:"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:45
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:44
|
||||
msgid "On page:"
|
||||
msgstr "Na página:"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:51
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:50
|
||||
msgid "At percent:"
|
||||
msgstr "Na porcentagem:"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:25
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:24
|
||||
#, python-format
|
||||
msgid "Your review of '%(book_title)s'"
|
||||
msgstr "Sua resenha de '%(book_title)s'"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:40
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:39
|
||||
msgid "Review:"
|
||||
msgstr "Resenha:"
|
||||
|
||||
|
@ -4098,7 +4095,7 @@ msgid "Unfollow"
|
|||
msgstr "Deixar de seguir"
|
||||
|
||||
#: bookwyrm/templates/snippets/follow_request_buttons.html:7
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:8
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:9
|
||||
msgid "Accept"
|
||||
msgstr "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
|
||||
#, python-format
|
||||
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(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"
|
||||
msgstr[0] "Resenha de \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(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"
|
||||
msgid "Review of \"%(book_title)s\" (%(display_rating)s star): %(review_title)s"
|
||||
msgid_plural "Review of \"%(book_title)s\" (%(display_rating)s stars): %(review_title)s"
|
||||
msgstr[0] "Resenha de \"%(book_title)s\" (%(display_rating)s estrela): %(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
|
||||
#, python-format
|
||||
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\": %(review_title)s"
|
||||
msgstr "Resenha de \"<a href='%(book_path)s'>%(book_title)s</a>\": %(review_title)s"
|
||||
msgid "Review of \"%(book_title)s\": %(review_title)s"
|
||||
msgstr "Resenha de \"%(book_title)s\": %(review_title)s"
|
||||
|
||||
#: bookwyrm/templates/snippets/goal_form.html:4
|
||||
#, python-format
|
||||
|
@ -4216,11 +4213,11 @@ msgstr "Apenas seguidores"
|
|||
msgid "Post privacy"
|
||||
msgstr "Privacidade da publicação"
|
||||
|
||||
#: bookwyrm/templates/snippets/rate_action.html:4
|
||||
#: bookwyrm/templates/snippets/rate_action.html:5
|
||||
msgid "Leave a rating"
|
||||
msgstr "Deixe uma avaliação"
|
||||
|
||||
#: bookwyrm/templates/snippets/rate_action.html:19
|
||||
#: bookwyrm/templates/snippets/rate_action.html:20
|
||||
msgid "Rate"
|
||||
msgstr "Avaliar"
|
||||
|
||||
|
@ -4314,29 +4311,29 @@ msgstr "Remover de %(name)s"
|
|||
msgid "Finish reading"
|
||||
msgstr "Terminar de ler"
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:72
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:73
|
||||
msgid "Content warning"
|
||||
msgstr "Aviso de conteúdo"
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:79
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:80
|
||||
msgid "Show status"
|
||||
msgstr "Mostrar publicação"
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:101
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:102
|
||||
#, python-format
|
||||
msgid "(Page %(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
|
||||
msgid "(%(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"
|
||||
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"
|
||||
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}"
|
||||
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
|
||||
msgid "Status updates from {obj.display_name}"
|
||||
msgstr "Novas publicações de {obj.display_name}"
|
||||
|
|
Binary file not shown.
|
@ -2,8 +2,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: bookwyrm\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-01-17 19:26+0000\n"
|
||||
"PO-Revision-Date: 2022-01-17 19:57\n"
|
||||
"POT-Creation-Date: 2022-01-24 17:25+0000\n"
|
||||
"PO-Revision-Date: 2022-01-24 18:54\n"
|
||||
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
|
||||
"Language-Team: Portuguese\n"
|
||||
"Language: pt\n"
|
||||
|
@ -56,11 +56,11 @@ msgstr "Título do livro"
|
|||
|
||||
#: bookwyrm/forms.py:485 bookwyrm/templates/shelf/shelf.html:155
|
||||
#: bookwyrm/templates/shelf/shelf.html:187
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:33
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:32
|
||||
msgid "Rating"
|
||||
msgstr "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"
|
||||
msgstr "Ordenar Por"
|
||||
|
||||
|
@ -224,69 +224,69 @@ msgstr "Citações"
|
|||
msgid "Everything else"
|
||||
msgstr "Tudo o resto"
|
||||
|
||||
#: bookwyrm/settings.py:121
|
||||
#: bookwyrm/settings.py:173
|
||||
msgid "Home Timeline"
|
||||
msgstr "Cronograma Inicial"
|
||||
|
||||
#: bookwyrm/settings.py:121
|
||||
#: bookwyrm/settings.py:173
|
||||
msgid "Home"
|
||||
msgstr "Início"
|
||||
|
||||
#: bookwyrm/settings.py:122
|
||||
#: bookwyrm/settings.py:174
|
||||
msgid "Books Timeline"
|
||||
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/user/layout.html:91
|
||||
msgid "Books"
|
||||
msgstr "Livros"
|
||||
|
||||
#: bookwyrm/settings.py:196
|
||||
#: bookwyrm/settings.py:248
|
||||
msgid "English"
|
||||
msgstr "Inglês"
|
||||
|
||||
#: bookwyrm/settings.py:197
|
||||
#: bookwyrm/settings.py:249
|
||||
msgid "Deutsch (German)"
|
||||
msgstr "Deutsch (Alemão)"
|
||||
|
||||
#: bookwyrm/settings.py:198
|
||||
#: bookwyrm/settings.py:250
|
||||
msgid "Español (Spanish)"
|
||||
msgstr "Español (Espanhol)"
|
||||
|
||||
#: bookwyrm/settings.py:199
|
||||
#: bookwyrm/settings.py:251
|
||||
msgid "Galego (Galician)"
|
||||
msgstr "Galego (Galician)"
|
||||
|
||||
#: bookwyrm/settings.py:200
|
||||
#: bookwyrm/settings.py:252
|
||||
msgid "Italiano (Italian)"
|
||||
msgstr "Italiano (Italiano)"
|
||||
|
||||
#: bookwyrm/settings.py:201
|
||||
#: bookwyrm/settings.py:253
|
||||
msgid "Français (French)"
|
||||
msgstr "Français (Francês)"
|
||||
|
||||
#: bookwyrm/settings.py:202
|
||||
#: bookwyrm/settings.py:254
|
||||
msgid "Lietuvių (Lithuanian)"
|
||||
msgstr "Lietuvių (lituano)"
|
||||
|
||||
#: bookwyrm/settings.py:203
|
||||
#: bookwyrm/settings.py:255
|
||||
msgid "Norsk (Norwegian)"
|
||||
msgstr "Norsk (Norueguês)"
|
||||
|
||||
#: bookwyrm/settings.py:204
|
||||
#: bookwyrm/settings.py:256
|
||||
msgid "Português do Brasil (Brazilian Portuguese)"
|
||||
msgstr "Português do Brasil (Português brasileiro)"
|
||||
|
||||
#: bookwyrm/settings.py:205
|
||||
#: bookwyrm/settings.py:257
|
||||
msgid "Português Europeu (European Portuguese)"
|
||||
msgstr "Português (Português Europeu)"
|
||||
|
||||
#: bookwyrm/settings.py:206
|
||||
#: bookwyrm/settings.py:258
|
||||
msgid "简体中文 (Simplified Chinese)"
|
||||
msgstr "简体中文 (Chinês simplificado)"
|
||||
|
||||
#: bookwyrm/settings.py:207
|
||||
#: bookwyrm/settings.py:259
|
||||
msgid "繁體中文 (Traditional Chinese)"
|
||||
msgstr "繁體中文 (Chinês tradicional)"
|
||||
|
||||
|
@ -315,56 +315,54 @@ msgstr "Ocorreu um erro! Pedimos desculpa por isto."
|
|||
msgid "About"
|
||||
msgstr "Sobre"
|
||||
|
||||
#: bookwyrm/templates/about/about.html:18
|
||||
#: bookwyrm/templates/about/about.html:19
|
||||
#: bookwyrm/templates/get_started/layout.html:20
|
||||
#, python-format
|
||||
msgid "Welcome to %(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
|
||||
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."
|
||||
|
||||
#: bookwyrm/templates/about/about.html:39
|
||||
#: bookwyrm/templates/about/about.html:40
|
||||
#, 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."
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/about/about.html:58
|
||||
#: bookwyrm/templates/about/about.html:59
|
||||
#, 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."
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/about/about.html:77
|
||||
#: bookwyrm/templates/about/about.html:78
|
||||
#, 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."
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/about/about.html:95
|
||||
#: bookwyrm/templates/about/about.html:96
|
||||
msgid "Meet your admins"
|
||||
msgstr "Conheça os nossos administradores"
|
||||
|
||||
#: bookwyrm/templates/about/about.html:98
|
||||
#: bookwyrm/templates/about/about.html:99
|
||||
#, python-format
|
||||
msgid "\n"
|
||||
" %(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"
|
||||
" "
|
||||
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 ""
|
||||
|
||||
#: bookwyrm/templates/about/about.html:112
|
||||
#: bookwyrm/templates/about/about.html:113
|
||||
msgid "Moderator"
|
||||
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"
|
||||
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/snippets/status/status_options.html:35
|
||||
#: bookwyrm/templates/snippets/user_options.html:13
|
||||
|
@ -426,7 +424,7 @@ msgid "Copy address"
|
|||
msgstr "Copiar endereço"
|
||||
|
||||
#: bookwyrm/templates/annual_summary/layout.html:68
|
||||
#: bookwyrm/templates/lists/list.html:230
|
||||
#: bookwyrm/templates/lists/list.html:231
|
||||
msgid "Copied!"
|
||||
msgstr "Copiado!"
|
||||
|
||||
|
@ -495,7 +493,7 @@ msgstr "A sua menor leitura este ano…"
|
|||
#: bookwyrm/templates/annual_summary/layout.html:245
|
||||
#: bookwyrm/templates/book/book.html:47
|
||||
#: bookwyrm/templates/discover/large-book.html:22
|
||||
#: bookwyrm/templates/landing/large-book.html:25
|
||||
#: bookwyrm/templates/landing/large-book.html:26
|
||||
#: bookwyrm/templates/landing/small-book.html:18
|
||||
msgid "by"
|
||||
msgstr "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/book/edit/edit_book.html:108
|
||||
#: bookwyrm/templates/book/sync_modal.html:22
|
||||
#: bookwyrm/templates/groups/members.html:30
|
||||
#: bookwyrm/templates/groups/members.html:29
|
||||
#: bookwyrm/templates/landing/password_reset.html:42
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:16
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:17
|
||||
msgid "Confirm"
|
||||
msgstr "Confirmar"
|
||||
|
||||
|
@ -817,8 +815,8 @@ msgid "Places"
|
|||
msgstr "Lugares"
|
||||
|
||||
#: bookwyrm/templates/book/book.html:348
|
||||
#: bookwyrm/templates/groups/group.html:20 bookwyrm/templates/layout.html:74
|
||||
#: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:10
|
||||
#: bookwyrm/templates/groups/group.html:19 bookwyrm/templates/layout.html:74
|
||||
#: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:11
|
||||
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
|
||||
#: bookwyrm/templates/search/layout.html:25
|
||||
#: bookwyrm/templates/search/layout.html:50
|
||||
|
@ -832,7 +830,7 @@ msgstr "Adicionar à lista"
|
|||
|
||||
#: bookwyrm/templates/book/book.html:369
|
||||
#: bookwyrm/templates/book/cover_add_modal.html:31
|
||||
#: bookwyrm/templates/lists/list.html:208
|
||||
#: bookwyrm/templates/lists/list.html:209
|
||||
#: bookwyrm/templates/settings/email_blocklist/domain_form.html:24
|
||||
#: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:31
|
||||
msgid "Add"
|
||||
|
@ -934,7 +932,7 @@ msgid "Back"
|
|||
msgstr "Voltar"
|
||||
|
||||
#: bookwyrm/templates/book/edit/edit_book_form.html:21
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:16
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:15
|
||||
msgid "Title:"
|
||||
msgstr "Título:"
|
||||
|
||||
|
@ -1649,7 +1647,7 @@ msgid "What are you reading?"
|
|||
msgstr "O que andas a ler?"
|
||||
|
||||
#: bookwyrm/templates/get_started/books.html:9
|
||||
#: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:162
|
||||
#: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:163
|
||||
msgid "Search for a book"
|
||||
msgstr "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/users.html:18
|
||||
#: bookwyrm/templates/get_started/users.html:19
|
||||
#: bookwyrm/templates/groups/members.html:16
|
||||
#: bookwyrm/templates/groups/members.html:17 bookwyrm/templates/layout.html:53
|
||||
#: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:166
|
||||
#: bookwyrm/templates/groups/members.html:15
|
||||
#: bookwyrm/templates/groups/members.html:16 bookwyrm/templates/layout.html:53
|
||||
#: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:167
|
||||
#: bookwyrm/templates/search/layout.html:4
|
||||
#: bookwyrm/templates/search/layout.html:9
|
||||
msgid "Search"
|
||||
|
@ -1685,7 +1683,7 @@ msgid "Popular on %(site_name)s"
|
|||
msgstr "Populares em %(site_name)s"
|
||||
|
||||
#: bookwyrm/templates/get_started/books.html:58
|
||||
#: bookwyrm/templates/lists/list.html:179
|
||||
#: bookwyrm/templates/lists/list.html:180
|
||||
msgid "No books found"
|
||||
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/ip_blocklist/ip_blocklist.html:36
|
||||
#: bookwyrm/templates/snippets/follow_request_buttons.html:12
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:13
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:14
|
||||
msgid "Delete"
|
||||
msgstr "Apagar"
|
||||
|
||||
|
@ -1810,17 +1808,17 @@ msgstr "Descrição do Grupo:"
|
|||
msgid "Delete group"
|
||||
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."
|
||||
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/lists.html:20
|
||||
msgid "Create List"
|
||||
msgstr "Criar Lista"
|
||||
|
||||
#: bookwyrm/templates/groups/group.html:40
|
||||
#: bookwyrm/templates/groups/group.html:39
|
||||
msgid "This group has no lists"
|
||||
msgstr "Este grupo não tem listas"
|
||||
|
||||
|
@ -1828,15 +1826,15 @@ msgstr "Este grupo não tem listas"
|
|||
msgid "Edit group"
|
||||
msgstr "Editar grupo"
|
||||
|
||||
#: bookwyrm/templates/groups/members.html:12
|
||||
#: bookwyrm/templates/groups/members.html:11
|
||||
msgid "Search to add a user"
|
||||
msgstr "Procura para adicionares um utilizador"
|
||||
|
||||
#: bookwyrm/templates/groups/members.html:33
|
||||
#: bookwyrm/templates/groups/members.html:32
|
||||
msgid "Leave group"
|
||||
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/snippets/suggested_users.html:31
|
||||
#: bookwyrm/templates/user/user_preview.html:36
|
||||
|
@ -2293,18 +2291,18 @@ msgstr "Apagar esta lista?"
|
|||
msgid "Edit List"
|
||||
msgstr "Editar lista"
|
||||
|
||||
#: bookwyrm/templates/lists/embed-list.html:7
|
||||
#: bookwyrm/templates/lists/embed-list.html:8
|
||||
#, python-format
|
||||
msgid "%(list_name)s, a list by %(owner)s"
|
||||
msgstr "%(list_name)s, uma lista de %(owner)s"
|
||||
|
||||
#: bookwyrm/templates/lists/embed-list.html:17
|
||||
#: bookwyrm/templates/lists/embed-list.html:18
|
||||
#, python-format
|
||||
msgid "on <a href=\"/\">%(site_name)s</a>"
|
||||
msgstr "em <a href=\"/\">%(site_name)s</a>"
|
||||
|
||||
#: bookwyrm/templates/lists/embed-list.html:26
|
||||
#: bookwyrm/templates/lists/list.html:42
|
||||
#: bookwyrm/templates/lists/embed-list.html:27
|
||||
#: bookwyrm/templates/lists/list.html:43
|
||||
msgid "This list is currently empty"
|
||||
msgstr "Esta lista está vazia"
|
||||
|
||||
|
@ -2365,76 +2363,76 @@ msgstr "Criar um Grupo"
|
|||
msgid "Delete list"
|
||||
msgstr "Apagar lista"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:34
|
||||
#: bookwyrm/templates/lists/list.html:35
|
||||
msgid "You successfully suggested a book for this list!"
|
||||
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!"
|
||||
msgstr "Adicionaste um livro a esta lista com sucesso!"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:80
|
||||
#: bookwyrm/templates/lists/list.html:81
|
||||
#, python-format
|
||||
msgid "Added by <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"
|
||||
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
|
||||
msgid "Set"
|
||||
msgstr "Definir"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:116
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:19
|
||||
#: bookwyrm/templates/lists/list.html:117
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:20
|
||||
msgid "Remove"
|
||||
msgstr "Remover"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:130
|
||||
#: bookwyrm/templates/lists/list.html:147
|
||||
#: bookwyrm/templates/lists/list.html:131
|
||||
#: bookwyrm/templates/lists/list.html:148
|
||||
msgid "Sort List"
|
||||
msgstr "Ordenar lista"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:140
|
||||
#: bookwyrm/templates/lists/list.html:141
|
||||
msgid "Direction"
|
||||
msgstr "Direcção"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:154
|
||||
#: bookwyrm/templates/lists/list.html:155
|
||||
msgid "Add Books"
|
||||
msgstr "Adicionar Livros"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:156
|
||||
#: bookwyrm/templates/lists/list.html:157
|
||||
msgid "Suggest Books"
|
||||
msgstr "Sugerir Livros"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:167
|
||||
#: bookwyrm/templates/lists/list.html:168
|
||||
msgid "search"
|
||||
msgstr "pesquisar"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:173
|
||||
#: bookwyrm/templates/lists/list.html:174
|
||||
msgid "Clear search"
|
||||
msgstr "Limpar Pesquisa"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:178
|
||||
#: bookwyrm/templates/lists/list.html:179
|
||||
#, python-format
|
||||
msgid "No books found matching the query \"%(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"
|
||||
msgstr "Sugerir"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:221
|
||||
#: bookwyrm/templates/lists/list.html:222
|
||||
msgid "Embed this list on a website"
|
||||
msgstr "Incorporar esta lista num website"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:229
|
||||
#: bookwyrm/templates/lists/list.html:230
|
||||
msgid "Copy embed code"
|
||||
msgstr "Copiar código de incorporação"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:231
|
||||
#: bookwyrm/templates/lists/list.html:232
|
||||
#, python-format
|
||||
msgid "%(list_name)s, a list by %(owner)s on %(site_name)s"
|
||||
msgstr "%(list_name)s, uma lista de %(owner)s no %(site_name)s"
|
||||
|
@ -3910,15 +3908,15 @@ msgstr "Concluído"
|
|||
msgid "This shelf is empty."
|
||||
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"
|
||||
msgstr "Convidar"
|
||||
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:24
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:25
|
||||
msgid "Uninvite"
|
||||
msgstr "Cancelar convite"
|
||||
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:28
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:29
|
||||
#, python-format
|
||||
msgid "Remove @%(username)s"
|
||||
msgstr "Remover %(username)s"
|
||||
|
@ -4006,7 +4004,7 @@ msgstr "Alerta de spoiler!"
|
|||
msgid "Include spoiler alert"
|
||||
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
|
||||
msgid "Comment:"
|
||||
msgstr "Comentar:"
|
||||
|
@ -4015,33 +4013,33 @@ msgstr "Comentar:"
|
|||
msgid "Post"
|
||||
msgstr "Publicação"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:17
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:16
|
||||
msgid "Quote:"
|
||||
msgstr "Citação:"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:25
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:24
|
||||
#, python-format
|
||||
msgid "An excerpt from '%(book_title)s'"
|
||||
msgstr "Um excerto de '%(book_title)s'"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:32
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:31
|
||||
msgid "Position:"
|
||||
msgstr "Posição:"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:45
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:44
|
||||
msgid "On page:"
|
||||
msgstr "Na página:"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:51
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:50
|
||||
msgid "At percent:"
|
||||
msgstr "Na percentagem:"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:25
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:24
|
||||
#, python-format
|
||||
msgid "Your review of '%(book_title)s'"
|
||||
msgstr "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:"
|
||||
msgstr "Critica:"
|
||||
|
||||
|
@ -4095,7 +4093,7 @@ msgid "Unfollow"
|
|||
msgstr "Deixar de seguir"
|
||||
|
||||
#: bookwyrm/templates/snippets/follow_request_buttons.html:7
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:8
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:9
|
||||
msgid "Accept"
|
||||
msgstr "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
|
||||
#, python-format
|
||||
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(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 "Review of \"%(book_title)s\" (%(display_rating)s star): %(review_title)s"
|
||||
msgid_plural "Review of \"%(book_title)s\" (%(display_rating)s stars): %(review_title)s"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: bookwyrm/templates/snippets/generated_status/review_pure_name.html:12
|
||||
#, python-format
|
||||
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\": %(review_title)s"
|
||||
msgid "Review of \"%(book_title)s\": %(review_title)s"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/snippets/goal_form.html:4
|
||||
|
@ -4213,11 +4211,11 @@ msgstr "Apenas seguidores"
|
|||
msgid "Post privacy"
|
||||
msgstr "Privacidade de publicação"
|
||||
|
||||
#: bookwyrm/templates/snippets/rate_action.html:4
|
||||
#: bookwyrm/templates/snippets/rate_action.html:5
|
||||
msgid "Leave a rating"
|
||||
msgstr "Deixar uma avaliação"
|
||||
|
||||
#: bookwyrm/templates/snippets/rate_action.html:19
|
||||
#: bookwyrm/templates/snippets/rate_action.html:20
|
||||
msgid "Rate"
|
||||
msgstr "Avaliação"
|
||||
|
||||
|
@ -4311,29 +4309,29 @@ msgstr "Remover de %(name)s"
|
|||
msgid "Finish reading"
|
||||
msgstr "Terminar leitura"
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:72
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:73
|
||||
msgid "Content warning"
|
||||
msgstr "Aviso de Conteúdo"
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:79
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:80
|
||||
msgid "Show status"
|
||||
msgstr "Mostrar o estado"
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:101
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:102
|
||||
#, python-format
|
||||
msgid "(Page %(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
|
||||
msgid "(%(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"
|
||||
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"
|
||||
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}"
|
||||
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
|
||||
msgid "Status updates from {obj.display_name}"
|
||||
msgstr "Actualização de estado fornecido por {obj.display_name}"
|
||||
|
|
BIN
locale/sv_SE/LC_MESSAGES/django.mo
Normal file
BIN
locale/sv_SE/LC_MESSAGES/django.mo
Normal file
Binary file not shown.
4633
locale/sv_SE/LC_MESSAGES/django.po
Normal file
4633
locale/sv_SE/LC_MESSAGES/django.po
Normal file
File diff suppressed because it is too large
Load diff
|
@ -2,8 +2,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: bookwyrm\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-01-17 19:26+0000\n"
|
||||
"PO-Revision-Date: 2022-01-17 19:57\n"
|
||||
"POT-Creation-Date: 2022-01-24 17:25+0000\n"
|
||||
"PO-Revision-Date: 2022-01-24 18:54\n"
|
||||
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
|
||||
"Language-Team: Chinese Simplified\n"
|
||||
"Language: zh\n"
|
||||
|
@ -56,11 +56,11 @@ msgstr "书名"
|
|||
|
||||
#: bookwyrm/forms.py:485 bookwyrm/templates/shelf/shelf.html:155
|
||||
#: bookwyrm/templates/shelf/shelf.html:187
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:33
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:32
|
||||
msgid "Rating"
|
||||
msgstr "评价"
|
||||
|
||||
#: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:134
|
||||
#: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:135
|
||||
msgid "Sort By"
|
||||
msgstr "排序方式"
|
||||
|
||||
|
@ -224,69 +224,69 @@ msgstr "引用"
|
|||
msgid "Everything else"
|
||||
msgstr "所有其它内容"
|
||||
|
||||
#: bookwyrm/settings.py:121
|
||||
#: bookwyrm/settings.py:173
|
||||
msgid "Home Timeline"
|
||||
msgstr "主页时间线"
|
||||
|
||||
#: bookwyrm/settings.py:121
|
||||
#: bookwyrm/settings.py:173
|
||||
msgid "Home"
|
||||
msgstr "主页"
|
||||
|
||||
#: bookwyrm/settings.py:122
|
||||
#: bookwyrm/settings.py:174
|
||||
msgid "Books Timeline"
|
||||
msgstr "书目时间线"
|
||||
|
||||
#: bookwyrm/settings.py:122 bookwyrm/templates/search/layout.html:21
|
||||
#: bookwyrm/settings.py:174 bookwyrm/templates/search/layout.html:21
|
||||
#: bookwyrm/templates/search/layout.html:42
|
||||
#: bookwyrm/templates/user/layout.html:91
|
||||
msgid "Books"
|
||||
msgstr "书目"
|
||||
|
||||
#: bookwyrm/settings.py:196
|
||||
#: bookwyrm/settings.py:248
|
||||
msgid "English"
|
||||
msgstr "English(英语)"
|
||||
|
||||
#: bookwyrm/settings.py:197
|
||||
#: bookwyrm/settings.py:249
|
||||
msgid "Deutsch (German)"
|
||||
msgstr "Deutsch(德语)"
|
||||
|
||||
#: bookwyrm/settings.py:198
|
||||
#: bookwyrm/settings.py:250
|
||||
msgid "Español (Spanish)"
|
||||
msgstr "Español(西班牙语)"
|
||||
|
||||
#: bookwyrm/settings.py:199
|
||||
#: bookwyrm/settings.py:251
|
||||
msgid "Galego (Galician)"
|
||||
msgstr "Galego(加利西亚语)"
|
||||
|
||||
#: bookwyrm/settings.py:200
|
||||
#: bookwyrm/settings.py:252
|
||||
msgid "Italiano (Italian)"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/settings.py:201
|
||||
#: bookwyrm/settings.py:253
|
||||
msgid "Français (French)"
|
||||
msgstr "Français(法语)"
|
||||
|
||||
#: bookwyrm/settings.py:202
|
||||
#: bookwyrm/settings.py:254
|
||||
msgid "Lietuvių (Lithuanian)"
|
||||
msgstr "Lietuvių(立陶宛语)"
|
||||
|
||||
#: bookwyrm/settings.py:203
|
||||
#: bookwyrm/settings.py:255
|
||||
msgid "Norsk (Norwegian)"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/settings.py:204
|
||||
#: bookwyrm/settings.py:256
|
||||
msgid "Português do Brasil (Brazilian Portuguese)"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/settings.py:205
|
||||
#: bookwyrm/settings.py:257
|
||||
msgid "Português Europeu (European Portuguese)"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/settings.py:206
|
||||
#: bookwyrm/settings.py:258
|
||||
msgid "简体中文 (Simplified Chinese)"
|
||||
msgstr "简体中文"
|
||||
|
||||
#: bookwyrm/settings.py:207
|
||||
#: bookwyrm/settings.py:259
|
||||
msgid "繁體中文 (Traditional Chinese)"
|
||||
msgstr "繁體中文(繁体中文)"
|
||||
|
||||
|
@ -315,56 +315,54 @@ msgstr "某些东西出错了!对不起啦。"
|
|||
msgid "About"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/about/about.html:18
|
||||
#: bookwyrm/templates/about/about.html:19
|
||||
#: bookwyrm/templates/get_started/layout.html:20
|
||||
#, python-format
|
||||
msgid "Welcome to %(site_name)s!"
|
||||
msgstr "欢迎来到 %(site_name)s!"
|
||||
|
||||
#: bookwyrm/templates/about/about.html:22
|
||||
#: bookwyrm/templates/about/about.html:23
|
||||
#, 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."
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/about/about.html:39
|
||||
#: bookwyrm/templates/about/about.html:40
|
||||
#, 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."
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/about/about.html:58
|
||||
#: bookwyrm/templates/about/about.html:59
|
||||
#, 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."
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/about/about.html:77
|
||||
#: bookwyrm/templates/about/about.html:78
|
||||
#, 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."
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/about/about.html:95
|
||||
#: bookwyrm/templates/about/about.html:96
|
||||
msgid "Meet your admins"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/about/about.html:98
|
||||
#: bookwyrm/templates/about/about.html:99
|
||||
#, python-format
|
||||
msgid "\n"
|
||||
" %(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"
|
||||
" "
|
||||
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 ""
|
||||
|
||||
#: bookwyrm/templates/about/about.html:112
|
||||
#: bookwyrm/templates/about/about.html:113
|
||||
msgid "Moderator"
|
||||
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"
|
||||
msgstr "管理员"
|
||||
|
||||
#: bookwyrm/templates/about/about.html:130
|
||||
#: bookwyrm/templates/about/about.html:131
|
||||
#: bookwyrm/templates/settings/users/user_moderation_actions.html:14
|
||||
#: bookwyrm/templates/snippets/status/status_options.html:35
|
||||
#: bookwyrm/templates/snippets/user_options.html:13
|
||||
|
@ -426,7 +424,7 @@ msgid "Copy address"
|
|||
msgstr "复制地址"
|
||||
|
||||
#: bookwyrm/templates/annual_summary/layout.html:68
|
||||
#: bookwyrm/templates/lists/list.html:230
|
||||
#: bookwyrm/templates/lists/list.html:231
|
||||
msgid "Copied!"
|
||||
msgstr "复制成功!"
|
||||
|
||||
|
@ -493,7 +491,7 @@ msgstr "TA 今年阅读最短的…"
|
|||
#: bookwyrm/templates/annual_summary/layout.html:245
|
||||
#: bookwyrm/templates/book/book.html:47
|
||||
#: bookwyrm/templates/discover/large-book.html:22
|
||||
#: bookwyrm/templates/landing/large-book.html:25
|
||||
#: bookwyrm/templates/landing/large-book.html:26
|
||||
#: bookwyrm/templates/landing/small-book.html:18
|
||||
msgid "by"
|
||||
msgstr "作者"
|
||||
|
@ -727,9 +725,9 @@ msgstr "加载数据会连接到 <strong>%(source_name)s</strong> 并检查这
|
|||
#: bookwyrm/templates/author/sync_modal.html:22
|
||||
#: bookwyrm/templates/book/edit/edit_book.html:108
|
||||
#: bookwyrm/templates/book/sync_modal.html:22
|
||||
#: bookwyrm/templates/groups/members.html:30
|
||||
#: bookwyrm/templates/groups/members.html:29
|
||||
#: bookwyrm/templates/landing/password_reset.html:42
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:16
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:17
|
||||
msgid "Confirm"
|
||||
msgstr "确认"
|
||||
|
||||
|
@ -812,8 +810,8 @@ msgid "Places"
|
|||
msgstr "地点"
|
||||
|
||||
#: bookwyrm/templates/book/book.html:348
|
||||
#: bookwyrm/templates/groups/group.html:20 bookwyrm/templates/layout.html:74
|
||||
#: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:10
|
||||
#: bookwyrm/templates/groups/group.html:19 bookwyrm/templates/layout.html:74
|
||||
#: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:11
|
||||
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
|
||||
#: bookwyrm/templates/search/layout.html:25
|
||||
#: bookwyrm/templates/search/layout.html:50
|
||||
|
@ -827,7 +825,7 @@ msgstr "添加到列表"
|
|||
|
||||
#: bookwyrm/templates/book/book.html:369
|
||||
#: bookwyrm/templates/book/cover_add_modal.html:31
|
||||
#: bookwyrm/templates/lists/list.html:208
|
||||
#: bookwyrm/templates/lists/list.html:209
|
||||
#: bookwyrm/templates/settings/email_blocklist/domain_form.html:24
|
||||
#: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:31
|
||||
msgid "Add"
|
||||
|
@ -929,7 +927,7 @@ msgid "Back"
|
|||
msgstr "返回"
|
||||
|
||||
#: bookwyrm/templates/book/edit/edit_book_form.html:21
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:16
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:15
|
||||
msgid "Title:"
|
||||
msgstr "标题:"
|
||||
|
||||
|
@ -1642,7 +1640,7 @@ msgid "What are you reading?"
|
|||
msgstr "你在阅读什么?"
|
||||
|
||||
#: bookwyrm/templates/get_started/books.html:9
|
||||
#: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:162
|
||||
#: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:163
|
||||
msgid "Search for a book"
|
||||
msgstr "搜索书目"
|
||||
|
||||
|
@ -1660,9 +1658,9 @@ msgstr "你可以在开始使用 %(site_name)s 后添加书目。"
|
|||
#: bookwyrm/templates/get_started/books.html:17
|
||||
#: bookwyrm/templates/get_started/users.html:18
|
||||
#: bookwyrm/templates/get_started/users.html:19
|
||||
#: bookwyrm/templates/groups/members.html:16
|
||||
#: bookwyrm/templates/groups/members.html:17 bookwyrm/templates/layout.html:53
|
||||
#: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:166
|
||||
#: bookwyrm/templates/groups/members.html:15
|
||||
#: bookwyrm/templates/groups/members.html:16 bookwyrm/templates/layout.html:53
|
||||
#: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:167
|
||||
#: bookwyrm/templates/search/layout.html:4
|
||||
#: bookwyrm/templates/search/layout.html:9
|
||||
msgid "Search"
|
||||
|
@ -1678,7 +1676,7 @@ msgid "Popular on %(site_name)s"
|
|||
msgstr "%(site_name)s 上的热门"
|
||||
|
||||
#: bookwyrm/templates/get_started/books.html:58
|
||||
#: bookwyrm/templates/lists/list.html:179
|
||||
#: bookwyrm/templates/lists/list.html:180
|
||||
msgid "No books found"
|
||||
msgstr "没有找到书目"
|
||||
|
||||
|
@ -1783,7 +1781,7 @@ msgstr "此操作无法被撤销"
|
|||
#: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:49
|
||||
#: bookwyrm/templates/settings/ip_blocklist/ip_blocklist.html:36
|
||||
#: bookwyrm/templates/snippets/follow_request_buttons.html:12
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:13
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:14
|
||||
msgid "Delete"
|
||||
msgstr "删除"
|
||||
|
||||
|
@ -1803,17 +1801,17 @@ msgstr "群组描述"
|
|||
msgid "Delete group"
|
||||
msgstr "删除群组"
|
||||
|
||||
#: bookwyrm/templates/groups/group.html:22
|
||||
#: bookwyrm/templates/groups/group.html:21
|
||||
msgid "Members of this group can create group-curated lists."
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/groups/group.html:27
|
||||
#: bookwyrm/templates/groups/group.html:26
|
||||
#: bookwyrm/templates/lists/create_form.html:5
|
||||
#: bookwyrm/templates/lists/lists.html:20
|
||||
msgid "Create List"
|
||||
msgstr "创建列表"
|
||||
|
||||
#: bookwyrm/templates/groups/group.html:40
|
||||
#: bookwyrm/templates/groups/group.html:39
|
||||
msgid "This group has no lists"
|
||||
msgstr "这个群组没有任何列表"
|
||||
|
||||
|
@ -1821,15 +1819,15 @@ msgstr "这个群组没有任何列表"
|
|||
msgid "Edit group"
|
||||
msgstr "编辑群组"
|
||||
|
||||
#: bookwyrm/templates/groups/members.html:12
|
||||
#: bookwyrm/templates/groups/members.html:11
|
||||
msgid "Search to add a user"
|
||||
msgstr "搜索或添加用户"
|
||||
|
||||
#: bookwyrm/templates/groups/members.html:33
|
||||
#: bookwyrm/templates/groups/members.html:32
|
||||
msgid "Leave group"
|
||||
msgstr "退出群组"
|
||||
|
||||
#: bookwyrm/templates/groups/members.html:55
|
||||
#: bookwyrm/templates/groups/members.html:54
|
||||
#: bookwyrm/templates/groups/suggested_users.html:35
|
||||
#: bookwyrm/templates/snippets/suggested_users.html:31
|
||||
#: bookwyrm/templates/user/user_preview.html:36
|
||||
|
@ -2282,18 +2280,18 @@ msgstr "删除此列表?"
|
|||
msgid "Edit List"
|
||||
msgstr "编辑列表"
|
||||
|
||||
#: bookwyrm/templates/lists/embed-list.html:7
|
||||
#: bookwyrm/templates/lists/embed-list.html:8
|
||||
#, python-format
|
||||
msgid "%(list_name)s, a list by %(owner)s"
|
||||
msgstr "%(list_name)s,来自 %(owner)s 的列表"
|
||||
|
||||
#: bookwyrm/templates/lists/embed-list.html:17
|
||||
#: bookwyrm/templates/lists/embed-list.html:18
|
||||
#, python-format
|
||||
msgid "on <a href=\"/\">%(site_name)s</a>"
|
||||
msgstr "在 <a href=\"/\">%(site_name)s</a>"
|
||||
|
||||
#: bookwyrm/templates/lists/embed-list.html:26
|
||||
#: bookwyrm/templates/lists/list.html:42
|
||||
#: bookwyrm/templates/lists/embed-list.html:27
|
||||
#: bookwyrm/templates/lists/list.html:43
|
||||
msgid "This list is currently empty"
|
||||
msgstr "此列表当前是空的"
|
||||
|
||||
|
@ -2354,76 +2352,76 @@ msgstr "创建一个群组"
|
|||
msgid "Delete list"
|
||||
msgstr "删除列表"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:34
|
||||
#: bookwyrm/templates/lists/list.html:35
|
||||
msgid "You successfully suggested a book for this list!"
|
||||
msgstr "你成功向该列表推荐了一本书!"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:36
|
||||
#: bookwyrm/templates/lists/list.html:37
|
||||
msgid "You successfully added a book to this list!"
|
||||
msgstr "你成功向此列表添加了一本书!"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:80
|
||||
#: bookwyrm/templates/lists/list.html:81
|
||||
#, python-format
|
||||
msgid "Added by <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"
|
||||
msgstr "列表位置:"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:101
|
||||
#: bookwyrm/templates/lists/list.html:102
|
||||
#: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:21
|
||||
msgid "Set"
|
||||
msgstr "设定"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:116
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:19
|
||||
#: bookwyrm/templates/lists/list.html:117
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:20
|
||||
msgid "Remove"
|
||||
msgstr "移除"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:130
|
||||
#: bookwyrm/templates/lists/list.html:147
|
||||
#: bookwyrm/templates/lists/list.html:131
|
||||
#: bookwyrm/templates/lists/list.html:148
|
||||
msgid "Sort List"
|
||||
msgstr "排序列表"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:140
|
||||
#: bookwyrm/templates/lists/list.html:141
|
||||
msgid "Direction"
|
||||
msgstr "方向"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:154
|
||||
#: bookwyrm/templates/lists/list.html:155
|
||||
msgid "Add Books"
|
||||
msgstr "添加书目"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:156
|
||||
#: bookwyrm/templates/lists/list.html:157
|
||||
msgid "Suggest Books"
|
||||
msgstr "推荐书目"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:167
|
||||
#: bookwyrm/templates/lists/list.html:168
|
||||
msgid "search"
|
||||
msgstr "搜索"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:173
|
||||
#: bookwyrm/templates/lists/list.html:174
|
||||
msgid "Clear search"
|
||||
msgstr "清除搜索"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:178
|
||||
#: bookwyrm/templates/lists/list.html:179
|
||||
#, python-format
|
||||
msgid "No books found matching the query \"%(query)s\""
|
||||
msgstr "没有符合 “%(query)s” 请求的书目"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:210
|
||||
#: bookwyrm/templates/lists/list.html:211
|
||||
msgid "Suggest"
|
||||
msgstr "推荐"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:221
|
||||
#: bookwyrm/templates/lists/list.html:222
|
||||
msgid "Embed this list on a website"
|
||||
msgstr "将此列表嵌入到网站"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:229
|
||||
#: bookwyrm/templates/lists/list.html:230
|
||||
msgid "Copy embed code"
|
||||
msgstr "复制嵌入代码"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:231
|
||||
#: bookwyrm/templates/lists/list.html:232
|
||||
#, python-format
|
||||
msgid "%(list_name)s, a list by %(owner)s on %(site_name)s"
|
||||
msgstr "%(list_name)s,%(owner)s 在 %(site_name)s 上的列表"
|
||||
|
@ -3894,15 +3892,15 @@ msgstr "完成时间"
|
|||
msgid "This shelf is empty."
|
||||
msgstr "此书架是空的。"
|
||||
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:15
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:16
|
||||
msgid "Invite"
|
||||
msgstr "邀请"
|
||||
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:24
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:25
|
||||
msgid "Uninvite"
|
||||
msgstr "移除邀请"
|
||||
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:28
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:29
|
||||
#, python-format
|
||||
msgid "Remove @%(username)s"
|
||||
msgstr "移除 @%(username)s"
|
||||
|
@ -3989,7 +3987,7 @@ msgstr "前有剧透!"
|
|||
msgid "Include spoiler alert"
|
||||
msgstr "加入剧透警告"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/layout.html:48
|
||||
#: bookwyrm/templates/snippets/create_status/layout.html:47
|
||||
#: bookwyrm/templates/snippets/reading_modals/form.html:7
|
||||
msgid "Comment:"
|
||||
msgstr "评论:"
|
||||
|
@ -3998,33 +3996,33 @@ msgstr "评论:"
|
|||
msgid "Post"
|
||||
msgstr "发布"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:17
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:16
|
||||
msgid "Quote:"
|
||||
msgstr "引用:"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:25
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:24
|
||||
#, python-format
|
||||
msgid "An excerpt from '%(book_title)s'"
|
||||
msgstr "摘自《%(book_title)s》的节录"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:32
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:31
|
||||
msgid "Position:"
|
||||
msgstr "位置:"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:45
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:44
|
||||
msgid "On page:"
|
||||
msgstr "页码:"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:51
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:50
|
||||
msgid "At percent:"
|
||||
msgstr "百分比:"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:25
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:24
|
||||
#, python-format
|
||||
msgid "Your review of '%(book_title)s'"
|
||||
msgstr "你对《%(book_title)s》的书评"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:40
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:39
|
||||
msgid "Review:"
|
||||
msgstr "书评:"
|
||||
|
||||
|
@ -4078,7 +4076,7 @@ msgid "Unfollow"
|
|||
msgstr "取消关注"
|
||||
|
||||
#: bookwyrm/templates/snippets/follow_request_buttons.html:7
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:8
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:9
|
||||
msgid "Accept"
|
||||
msgstr "接受"
|
||||
|
||||
|
@ -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
|
||||
#, python-format
|
||||
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(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 "Review of \"%(book_title)s\" (%(display_rating)s star): %(review_title)s"
|
||||
msgid_plural "Review of \"%(book_title)s\" (%(display_rating)s stars): %(review_title)s"
|
||||
msgstr[0] ""
|
||||
|
||||
#: bookwyrm/templates/snippets/generated_status/review_pure_name.html:12
|
||||
#, 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 ""
|
||||
|
||||
#: bookwyrm/templates/snippets/goal_form.html:4
|
||||
|
@ -4191,11 +4189,11 @@ msgstr "仅关注者"
|
|||
msgid "Post privacy"
|
||||
msgstr "发文隐私"
|
||||
|
||||
#: bookwyrm/templates/snippets/rate_action.html:4
|
||||
#: bookwyrm/templates/snippets/rate_action.html:5
|
||||
msgid "Leave a rating"
|
||||
msgstr "留下评价"
|
||||
|
||||
#: bookwyrm/templates/snippets/rate_action.html:19
|
||||
#: bookwyrm/templates/snippets/rate_action.html:20
|
||||
msgid "Rate"
|
||||
msgstr "评价"
|
||||
|
||||
|
@ -4289,29 +4287,29 @@ msgstr "从 %(name)s 移除"
|
|||
msgid "Finish reading"
|
||||
msgstr "完成阅读"
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:72
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:73
|
||||
msgid "Content warning"
|
||||
msgstr "内容警告"
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:79
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:80
|
||||
msgid "Show status"
|
||||
msgstr "显示状态"
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:101
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:102
|
||||
#, python-format
|
||||
msgid "(Page %(page)s)"
|
||||
msgstr "(第 %(page)s 页)"
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:103
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:104
|
||||
#, python-format
|
||||
msgid "(%(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"
|
||||
msgstr "在新窗口中打开图像"
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:144
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:145
|
||||
msgid "Hide status"
|
||||
msgstr "隐藏状态"
|
||||
|
||||
|
@ -4602,7 +4600,7 @@ msgstr "没有找到使用该邮箱的用户。"
|
|||
msgid "A password reset link was sent to {email}"
|
||||
msgstr "密码重置连接已发送给 {email}"
|
||||
|
||||
#: bookwyrm/views/rss_feed.py:35
|
||||
#: bookwyrm/views/rss_feed.py:34
|
||||
#, python-brace-format
|
||||
msgid "Status updates from {obj.display_name}"
|
||||
msgstr "{obj.display_name} 的状态更新"
|
||||
|
|
|
@ -2,8 +2,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: bookwyrm\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-01-17 19:26+0000\n"
|
||||
"PO-Revision-Date: 2022-01-17 19:57\n"
|
||||
"POT-Creation-Date: 2022-01-24 17:25+0000\n"
|
||||
"PO-Revision-Date: 2022-01-24 18:54\n"
|
||||
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
|
||||
"Language-Team: Chinese Traditional\n"
|
||||
"Language: zh\n"
|
||||
|
@ -56,11 +56,11 @@ msgstr "書名"
|
|||
|
||||
#: bookwyrm/forms.py:485 bookwyrm/templates/shelf/shelf.html:155
|
||||
#: bookwyrm/templates/shelf/shelf.html:187
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:33
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:32
|
||||
msgid "Rating"
|
||||
msgstr "評價"
|
||||
|
||||
#: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:134
|
||||
#: bookwyrm/forms.py:487 bookwyrm/templates/lists/list.html:135
|
||||
msgid "Sort By"
|
||||
msgstr "排序方式"
|
||||
|
||||
|
@ -224,69 +224,69 @@ msgstr ""
|
|||
msgid "Everything else"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/settings.py:121
|
||||
#: bookwyrm/settings.py:173
|
||||
msgid "Home Timeline"
|
||||
msgstr "主頁時間線"
|
||||
|
||||
#: bookwyrm/settings.py:121
|
||||
#: bookwyrm/settings.py:173
|
||||
msgid "Home"
|
||||
msgstr "主頁"
|
||||
|
||||
#: bookwyrm/settings.py:122
|
||||
#: bookwyrm/settings.py:174
|
||||
msgid "Books Timeline"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/settings.py:122 bookwyrm/templates/search/layout.html:21
|
||||
#: bookwyrm/settings.py:174 bookwyrm/templates/search/layout.html:21
|
||||
#: bookwyrm/templates/search/layout.html:42
|
||||
#: bookwyrm/templates/user/layout.html:91
|
||||
msgid "Books"
|
||||
msgstr "書目"
|
||||
|
||||
#: bookwyrm/settings.py:196
|
||||
#: bookwyrm/settings.py:248
|
||||
msgid "English"
|
||||
msgstr "English(英語)"
|
||||
|
||||
#: bookwyrm/settings.py:197
|
||||
#: bookwyrm/settings.py:249
|
||||
msgid "Deutsch (German)"
|
||||
msgstr "Deutsch(德語)"
|
||||
|
||||
#: bookwyrm/settings.py:198
|
||||
#: bookwyrm/settings.py:250
|
||||
msgid "Español (Spanish)"
|
||||
msgstr "Español(西班牙語)"
|
||||
|
||||
#: bookwyrm/settings.py:199
|
||||
#: bookwyrm/settings.py:251
|
||||
msgid "Galego (Galician)"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/settings.py:200
|
||||
#: bookwyrm/settings.py:252
|
||||
msgid "Italiano (Italian)"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/settings.py:201
|
||||
#: bookwyrm/settings.py:253
|
||||
msgid "Français (French)"
|
||||
msgstr "Français(法語)"
|
||||
|
||||
#: bookwyrm/settings.py:202
|
||||
#: bookwyrm/settings.py:254
|
||||
msgid "Lietuvių (Lithuanian)"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/settings.py:203
|
||||
#: bookwyrm/settings.py:255
|
||||
msgid "Norsk (Norwegian)"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/settings.py:204
|
||||
#: bookwyrm/settings.py:256
|
||||
msgid "Português do Brasil (Brazilian Portuguese)"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/settings.py:205
|
||||
#: bookwyrm/settings.py:257
|
||||
msgid "Português Europeu (European Portuguese)"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/settings.py:206
|
||||
#: bookwyrm/settings.py:258
|
||||
msgid "简体中文 (Simplified Chinese)"
|
||||
msgstr "簡體中文"
|
||||
|
||||
#: bookwyrm/settings.py:207
|
||||
#: bookwyrm/settings.py:259
|
||||
msgid "繁體中文 (Traditional Chinese)"
|
||||
msgstr "繁體中文"
|
||||
|
||||
|
@ -315,56 +315,54 @@ msgstr "某些東西出錯了!抱歉。"
|
|||
msgid "About"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/about/about.html:18
|
||||
#: bookwyrm/templates/about/about.html:19
|
||||
#: bookwyrm/templates/get_started/layout.html:20
|
||||
#, python-format
|
||||
msgid "Welcome to %(site_name)s!"
|
||||
msgstr "歡迎來到 %(site_name)s!"
|
||||
|
||||
#: bookwyrm/templates/about/about.html:22
|
||||
#: bookwyrm/templates/about/about.html:23
|
||||
#, 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."
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/about/about.html:39
|
||||
#: bookwyrm/templates/about/about.html:40
|
||||
#, 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."
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/about/about.html:58
|
||||
#: bookwyrm/templates/about/about.html:59
|
||||
#, 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."
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/about/about.html:77
|
||||
#: bookwyrm/templates/about/about.html:78
|
||||
#, 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."
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/about/about.html:95
|
||||
#: bookwyrm/templates/about/about.html:96
|
||||
msgid "Meet your admins"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/about/about.html:98
|
||||
#: bookwyrm/templates/about/about.html:99
|
||||
#, python-format
|
||||
msgid "\n"
|
||||
" %(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"
|
||||
" "
|
||||
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 ""
|
||||
|
||||
#: bookwyrm/templates/about/about.html:112
|
||||
#: bookwyrm/templates/about/about.html:113
|
||||
msgid "Moderator"
|
||||
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"
|
||||
msgstr "管理員"
|
||||
|
||||
#: bookwyrm/templates/about/about.html:130
|
||||
#: bookwyrm/templates/about/about.html:131
|
||||
#: bookwyrm/templates/settings/users/user_moderation_actions.html:14
|
||||
#: bookwyrm/templates/snippets/status/status_options.html:35
|
||||
#: bookwyrm/templates/snippets/user_options.html:13
|
||||
|
@ -426,7 +424,7 @@ msgid "Copy address"
|
|||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/annual_summary/layout.html:68
|
||||
#: bookwyrm/templates/lists/list.html:230
|
||||
#: bookwyrm/templates/lists/list.html:231
|
||||
msgid "Copied!"
|
||||
msgstr ""
|
||||
|
||||
|
@ -493,7 +491,7 @@ msgstr ""
|
|||
#: bookwyrm/templates/annual_summary/layout.html:245
|
||||
#: bookwyrm/templates/book/book.html:47
|
||||
#: bookwyrm/templates/discover/large-book.html:22
|
||||
#: bookwyrm/templates/landing/large-book.html:25
|
||||
#: bookwyrm/templates/landing/large-book.html:26
|
||||
#: bookwyrm/templates/landing/small-book.html:18
|
||||
msgid "by"
|
||||
msgstr "作者"
|
||||
|
@ -727,9 +725,9 @@ msgstr ""
|
|||
#: bookwyrm/templates/author/sync_modal.html:22
|
||||
#: bookwyrm/templates/book/edit/edit_book.html:108
|
||||
#: bookwyrm/templates/book/sync_modal.html:22
|
||||
#: bookwyrm/templates/groups/members.html:30
|
||||
#: bookwyrm/templates/groups/members.html:29
|
||||
#: bookwyrm/templates/landing/password_reset.html:42
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:16
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:17
|
||||
msgid "Confirm"
|
||||
msgstr "確認"
|
||||
|
||||
|
@ -812,8 +810,8 @@ msgid "Places"
|
|||
msgstr "地點"
|
||||
|
||||
#: bookwyrm/templates/book/book.html:348
|
||||
#: bookwyrm/templates/groups/group.html:20 bookwyrm/templates/layout.html:74
|
||||
#: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:10
|
||||
#: bookwyrm/templates/groups/group.html:19 bookwyrm/templates/layout.html:74
|
||||
#: bookwyrm/templates/lists/curate.html:7 bookwyrm/templates/lists/list.html:11
|
||||
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
|
||||
#: bookwyrm/templates/search/layout.html:25
|
||||
#: bookwyrm/templates/search/layout.html:50
|
||||
|
@ -827,7 +825,7 @@ msgstr "新增到列表"
|
|||
|
||||
#: bookwyrm/templates/book/book.html:369
|
||||
#: bookwyrm/templates/book/cover_add_modal.html:31
|
||||
#: bookwyrm/templates/lists/list.html:208
|
||||
#: bookwyrm/templates/lists/list.html:209
|
||||
#: bookwyrm/templates/settings/email_blocklist/domain_form.html:24
|
||||
#: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:31
|
||||
msgid "Add"
|
||||
|
@ -929,7 +927,7 @@ msgid "Back"
|
|||
msgstr "返回"
|
||||
|
||||
#: bookwyrm/templates/book/edit/edit_book_form.html:21
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:16
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:15
|
||||
msgid "Title:"
|
||||
msgstr "標題:"
|
||||
|
||||
|
@ -1642,7 +1640,7 @@ msgid "What are you reading?"
|
|||
msgstr "你在閱讀什麼?"
|
||||
|
||||
#: bookwyrm/templates/get_started/books.html:9
|
||||
#: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:162
|
||||
#: bookwyrm/templates/layout.html:47 bookwyrm/templates/lists/list.html:163
|
||||
msgid "Search for a book"
|
||||
msgstr "搜尋書目"
|
||||
|
||||
|
@ -1660,9 +1658,9 @@ msgstr "你可以在開始使用 %(site_name)s 後新增書目。"
|
|||
#: bookwyrm/templates/get_started/books.html:17
|
||||
#: bookwyrm/templates/get_started/users.html:18
|
||||
#: bookwyrm/templates/get_started/users.html:19
|
||||
#: bookwyrm/templates/groups/members.html:16
|
||||
#: bookwyrm/templates/groups/members.html:17 bookwyrm/templates/layout.html:53
|
||||
#: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:166
|
||||
#: bookwyrm/templates/groups/members.html:15
|
||||
#: bookwyrm/templates/groups/members.html:16 bookwyrm/templates/layout.html:53
|
||||
#: bookwyrm/templates/layout.html:54 bookwyrm/templates/lists/list.html:167
|
||||
#: bookwyrm/templates/search/layout.html:4
|
||||
#: bookwyrm/templates/search/layout.html:9
|
||||
msgid "Search"
|
||||
|
@ -1678,7 +1676,7 @@ msgid "Popular on %(site_name)s"
|
|||
msgstr "%(site_name)s 上的熱門"
|
||||
|
||||
#: bookwyrm/templates/get_started/books.html:58
|
||||
#: bookwyrm/templates/lists/list.html:179
|
||||
#: bookwyrm/templates/lists/list.html:180
|
||||
msgid "No books found"
|
||||
msgstr "沒有找到書目"
|
||||
|
||||
|
@ -1783,7 +1781,7 @@ msgstr ""
|
|||
#: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:49
|
||||
#: bookwyrm/templates/settings/ip_blocklist/ip_blocklist.html:36
|
||||
#: bookwyrm/templates/snippets/follow_request_buttons.html:12
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:13
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:14
|
||||
msgid "Delete"
|
||||
msgstr "刪除"
|
||||
|
||||
|
@ -1803,17 +1801,17 @@ msgstr ""
|
|||
msgid "Delete group"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/groups/group.html:22
|
||||
#: bookwyrm/templates/groups/group.html:21
|
||||
msgid "Members of this group can create group-curated lists."
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/groups/group.html:27
|
||||
#: bookwyrm/templates/groups/group.html:26
|
||||
#: bookwyrm/templates/lists/create_form.html:5
|
||||
#: bookwyrm/templates/lists/lists.html:20
|
||||
msgid "Create List"
|
||||
msgstr "建立列表"
|
||||
|
||||
#: bookwyrm/templates/groups/group.html:40
|
||||
#: bookwyrm/templates/groups/group.html:39
|
||||
msgid "This group has no lists"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1821,15 +1819,15 @@ msgstr ""
|
|||
msgid "Edit group"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/groups/members.html:12
|
||||
#: bookwyrm/templates/groups/members.html:11
|
||||
msgid "Search to add a user"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/groups/members.html:33
|
||||
#: bookwyrm/templates/groups/members.html:32
|
||||
msgid "Leave group"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/groups/members.html:55
|
||||
#: bookwyrm/templates/groups/members.html:54
|
||||
#: bookwyrm/templates/groups/suggested_users.html:35
|
||||
#: bookwyrm/templates/snippets/suggested_users.html:31
|
||||
#: bookwyrm/templates/user/user_preview.html:36
|
||||
|
@ -2282,18 +2280,18 @@ msgstr ""
|
|||
msgid "Edit List"
|
||||
msgstr "編輯列表"
|
||||
|
||||
#: bookwyrm/templates/lists/embed-list.html:7
|
||||
#: bookwyrm/templates/lists/embed-list.html:8
|
||||
#, python-format
|
||||
msgid "%(list_name)s, a list by %(owner)s"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/lists/embed-list.html:17
|
||||
#: bookwyrm/templates/lists/embed-list.html:18
|
||||
#, python-format
|
||||
msgid "on <a href=\"/\">%(site_name)s</a>"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/lists/embed-list.html:26
|
||||
#: bookwyrm/templates/lists/list.html:42
|
||||
#: bookwyrm/templates/lists/embed-list.html:27
|
||||
#: bookwyrm/templates/lists/list.html:43
|
||||
msgid "This list is currently empty"
|
||||
msgstr "此列表當前是空的"
|
||||
|
||||
|
@ -2354,76 +2352,76 @@ msgstr ""
|
|||
msgid "Delete list"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:34
|
||||
#: bookwyrm/templates/lists/list.html:35
|
||||
msgid "You successfully suggested a book for this list!"
|
||||
msgstr "你成功!向該列表推薦了一本書"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:36
|
||||
#: bookwyrm/templates/lists/list.html:37
|
||||
msgid "You successfully added a book to this list!"
|
||||
msgstr "你成功在此列表新增了一本書!"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:80
|
||||
#: bookwyrm/templates/lists/list.html:81
|
||||
#, python-format
|
||||
msgid "Added by <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"
|
||||
msgstr "列表位置:"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:101
|
||||
#: bookwyrm/templates/lists/list.html:102
|
||||
#: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:21
|
||||
msgid "Set"
|
||||
msgstr "設定"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:116
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:19
|
||||
#: bookwyrm/templates/lists/list.html:117
|
||||
#: bookwyrm/templates/snippets/remove_from_group_button.html:20
|
||||
msgid "Remove"
|
||||
msgstr "移除"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:130
|
||||
#: bookwyrm/templates/lists/list.html:147
|
||||
#: bookwyrm/templates/lists/list.html:131
|
||||
#: bookwyrm/templates/lists/list.html:148
|
||||
msgid "Sort List"
|
||||
msgstr "排序列表"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:140
|
||||
#: bookwyrm/templates/lists/list.html:141
|
||||
msgid "Direction"
|
||||
msgstr "方向"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:154
|
||||
#: bookwyrm/templates/lists/list.html:155
|
||||
msgid "Add Books"
|
||||
msgstr "新增書目"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:156
|
||||
#: bookwyrm/templates/lists/list.html:157
|
||||
msgid "Suggest Books"
|
||||
msgstr "推薦書目"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:167
|
||||
#: bookwyrm/templates/lists/list.html:168
|
||||
msgid "search"
|
||||
msgstr "搜尋"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:173
|
||||
#: bookwyrm/templates/lists/list.html:174
|
||||
msgid "Clear search"
|
||||
msgstr "清除搜尋"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:178
|
||||
#: bookwyrm/templates/lists/list.html:179
|
||||
#, python-format
|
||||
msgid "No books found matching the query \"%(query)s\""
|
||||
msgstr "沒有符合 \"%(query)s\" 請求的書目"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:210
|
||||
#: bookwyrm/templates/lists/list.html:211
|
||||
msgid "Suggest"
|
||||
msgstr "推薦"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:221
|
||||
#: bookwyrm/templates/lists/list.html:222
|
||||
msgid "Embed this list on a website"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:229
|
||||
#: bookwyrm/templates/lists/list.html:230
|
||||
msgid "Copy embed code"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:231
|
||||
#: bookwyrm/templates/lists/list.html:232
|
||||
#, python-format
|
||||
msgid "%(list_name)s, a list by %(owner)s on %(site_name)s"
|
||||
msgstr ""
|
||||
|
@ -3894,15 +3892,15 @@ msgstr "完成時間"
|
|||
msgid "This shelf is empty."
|
||||
msgstr "此書架是空的。"
|
||||
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:15
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:16
|
||||
msgid "Invite"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:24
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:25
|
||||
msgid "Uninvite"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:28
|
||||
#: bookwyrm/templates/snippets/add_to_group_button.html:29
|
||||
#, python-format
|
||||
msgid "Remove @%(username)s"
|
||||
msgstr ""
|
||||
|
@ -3989,7 +3987,7 @@ msgstr "前有劇透!"
|
|||
msgid "Include spoiler alert"
|
||||
msgstr "加入劇透警告"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/layout.html:48
|
||||
#: bookwyrm/templates/snippets/create_status/layout.html:47
|
||||
#: bookwyrm/templates/snippets/reading_modals/form.html:7
|
||||
msgid "Comment:"
|
||||
msgstr "評論:"
|
||||
|
@ -3998,33 +3996,33 @@ msgstr "評論:"
|
|||
msgid "Post"
|
||||
msgstr "釋出"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:17
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:16
|
||||
msgid "Quote:"
|
||||
msgstr "引用:"
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:25
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:24
|
||||
#, python-format
|
||||
msgid "An excerpt from '%(book_title)s'"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:32
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:31
|
||||
msgid "Position:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:45
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:44
|
||||
msgid "On page:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:51
|
||||
#: bookwyrm/templates/snippets/create_status/quotation.html:50
|
||||
msgid "At percent:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:25
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:24
|
||||
#, python-format
|
||||
msgid "Your review of '%(book_title)s'"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:40
|
||||
#: bookwyrm/templates/snippets/create_status/review.html:39
|
||||
msgid "Review:"
|
||||
msgstr "書評:"
|
||||
|
||||
|
@ -4078,7 +4076,7 @@ msgid "Unfollow"
|
|||
msgstr "取消關注"
|
||||
|
||||
#: bookwyrm/templates/snippets/follow_request_buttons.html:7
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:8
|
||||
#: bookwyrm/templates/snippets/join_invitation_buttons.html:9
|
||||
msgid "Accept"
|
||||
msgstr "接受"
|
||||
|
||||
|
@ -4114,13 +4112,13 @@ msgstr[0] ""
|
|||
|
||||
#: bookwyrm/templates/snippets/generated_status/review_pure_name.html:4
|
||||
#, python-format
|
||||
msgid "Review of \"<a href='%(book_path)s'>%(book_title)s</a>\" (%(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 "Review of \"%(book_title)s\" (%(display_rating)s star): %(review_title)s"
|
||||
msgid_plural "Review of \"%(book_title)s\" (%(display_rating)s stars): %(review_title)s"
|
||||
msgstr[0] ""
|
||||
|
||||
#: bookwyrm/templates/snippets/generated_status/review_pure_name.html:12
|
||||
#, 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 ""
|
||||
|
||||
#: bookwyrm/templates/snippets/goal_form.html:4
|
||||
|
@ -4191,11 +4189,11 @@ msgstr "僅關注者"
|
|||
msgid "Post privacy"
|
||||
msgstr "發文隱私"
|
||||
|
||||
#: bookwyrm/templates/snippets/rate_action.html:4
|
||||
#: bookwyrm/templates/snippets/rate_action.html:5
|
||||
msgid "Leave a rating"
|
||||
msgstr "留下評價"
|
||||
|
||||
#: bookwyrm/templates/snippets/rate_action.html:19
|
||||
#: bookwyrm/templates/snippets/rate_action.html:20
|
||||
msgid "Rate"
|
||||
msgstr "評價"
|
||||
|
||||
|
@ -4289,29 +4287,29 @@ msgstr "從 %(name)s 移除"
|
|||
msgid "Finish reading"
|
||||
msgstr "完成閱讀"
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:72
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:73
|
||||
msgid "Content warning"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:79
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:80
|
||||
msgid "Show status"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:101
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:102
|
||||
#, python-format
|
||||
msgid "(Page %(page)s)"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:103
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:104
|
||||
#, python-format
|
||||
msgid "(%(percent)s%%)"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:125
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:126
|
||||
msgid "Open image in new window"
|
||||
msgstr "在新視窗中開啟圖片"
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:144
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:145
|
||||
msgid "Hide status"
|
||||
msgstr ""
|
||||
|
||||
|
@ -4602,7 +4600,7 @@ msgstr "沒有找到使用該郵箱的使用者。"
|
|||
msgid "A password reset link was sent to {email}"
|
||||
msgstr "密碼重置連結已傳送給 {email}"
|
||||
|
||||
#: bookwyrm/views/rss_feed.py:35
|
||||
#: bookwyrm/views/rss_feed.py:34
|
||||
#, python-brace-format
|
||||
msgid "Status updates from {obj.display_name}"
|
||||
msgstr ""
|
||||
|
|
Loading…
Reference in a new issue