forked from mirrors/bookwyrm
Merge branch 'main' into bookwyrm-groups
There are database migrations in main ahead of this branch so they need to be merged in to the branch before we can merge back into main.
This commit is contained in:
commit
6e5c0cc4c3
90 changed files with 2446 additions and 92814 deletions
|
@ -35,6 +35,7 @@ class Note(ActivityObject):
|
||||||
tag: List[Link] = field(default_factory=lambda: [])
|
tag: List[Link] = field(default_factory=lambda: [])
|
||||||
attachment: List[Document] = field(default_factory=lambda: [])
|
attachment: List[Document] = field(default_factory=lambda: [])
|
||||||
sensitive: bool = False
|
sensitive: bool = False
|
||||||
|
updated: str = None
|
||||||
type: str = "Note"
|
type: str = "Note"
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -69,8 +69,9 @@ class Update(Verb):
|
||||||
|
|
||||||
def action(self):
|
def action(self):
|
||||||
"""update a model instance from the dataclass"""
|
"""update a model instance from the dataclass"""
|
||||||
if self.object:
|
if not self.object:
|
||||||
self.object.to_model(allow_create=False)
|
return
|
||||||
|
self.object.to_model(allow_create=False)
|
||||||
|
|
||||||
|
|
||||||
@dataclass(init=False)
|
@dataclass(init=False)
|
||||||
|
|
|
@ -3,10 +3,10 @@ from . import Importer
|
||||||
|
|
||||||
|
|
||||||
class GoodreadsImporter(Importer):
|
class GoodreadsImporter(Importer):
|
||||||
"""GoodReads is the default importer, thus Importer follows its structure.
|
"""Goodreads is the default importer, thus Importer follows its structure.
|
||||||
For a more complete example of overriding see librarything_import.py"""
|
For a more complete example of overriding see librarything_import.py"""
|
||||||
|
|
||||||
service = "GoodReads"
|
service = "Goodreads"
|
||||||
|
|
||||||
def parse_fields(self, entry):
|
def parse_fields(self, entry):
|
||||||
"""handle the specific fields in goodreads csvs"""
|
"""handle the specific fields in goodreads csvs"""
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
""" handle reading a csv from an external service, defaults are from GoodReads """
|
""" handle reading a csv from an external service, defaults are from Goodreads """
|
||||||
import csv
|
import csv
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
|
|
31
bookwyrm/migrations/0107_alter_user_preferred_language.py
Normal file
31
bookwyrm/migrations/0107_alter_user_preferred_language.py
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
# Generated by Django 3.2.5 on 2021-10-11 16:22
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
("bookwyrm", "0106_user_preferred_language"),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name="user",
|
||||||
|
name="preferred_language",
|
||||||
|
field=models.CharField(
|
||||||
|
blank=True,
|
||||||
|
choices=[
|
||||||
|
("en-us", "English"),
|
||||||
|
("de-de", "Deutsch (German)"),
|
||||||
|
("es", "Español (Spanish)"),
|
||||||
|
("fr-fr", "Français (French)"),
|
||||||
|
("pt-br", "Português - Brasil (Brazilian Portugues)"),
|
||||||
|
("zh-hans", "简体中文 (Simplified Chinese)"),
|
||||||
|
("zh-hant", "繁體中文 (Traditional Chinese)"),
|
||||||
|
],
|
||||||
|
max_length=255,
|
||||||
|
null=True,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]
|
31
bookwyrm/migrations/0108_alter_user_preferred_language.py
Normal file
31
bookwyrm/migrations/0108_alter_user_preferred_language.py
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
# Generated by Django 3.2.5 on 2021-10-11 17:38
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
("bookwyrm", "0107_alter_user_preferred_language"),
|
||||||
|
]
|
||||||
|
|
||||||
|
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)"),
|
||||||
|
("fr-fr", "Français (French)"),
|
||||||
|
("pt-br", "Português - Brasil (Brazilian Portuguese)"),
|
||||||
|
("zh-hans", "简体中文 (Simplified Chinese)"),
|
||||||
|
("zh-hant", "繁體中文 (Traditional Chinese)"),
|
||||||
|
],
|
||||||
|
max_length=255,
|
||||||
|
null=True,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]
|
19
bookwyrm/migrations/0109_status_edited_date.py
Normal file
19
bookwyrm/migrations/0109_status_edited_date.py
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
# Generated by Django 3.2.5 on 2021-10-15 15:54
|
||||||
|
|
||||||
|
import bookwyrm.models.fields
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
("bookwyrm", "0108_alter_user_preferred_language"),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name="status",
|
||||||
|
name="edited_date",
|
||||||
|
field=bookwyrm.models.fields.DateTimeField(blank=True, null=True),
|
||||||
|
),
|
||||||
|
]
|
23
bookwyrm/migrations/0110_auto_20211015_1734.py
Normal file
23
bookwyrm/migrations/0110_auto_20211015_1734.py
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
# Generated by Django 3.2.5 on 2021-10-15 17:34
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
("bookwyrm", "0109_status_edited_date"),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name="quotation",
|
||||||
|
name="raw_quote",
|
||||||
|
field=models.TextField(blank=True, null=True),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name="status",
|
||||||
|
name="raw_content",
|
||||||
|
field=models.TextField(blank=True, null=True),
|
||||||
|
),
|
||||||
|
]
|
|
@ -67,16 +67,15 @@ class BookWyrmModel(models.Model):
|
||||||
return
|
return
|
||||||
|
|
||||||
# you can see the followers only posts of people you follow
|
# you can see the followers only posts of people you follow
|
||||||
if (
|
if self.privacy == "followers" and (
|
||||||
self.privacy == "followers"
|
self.user.followers.filter(id=viewer.id).first()
|
||||||
and self.user.followers.filter(id=viewer.id).first()
|
|
||||||
):
|
):
|
||||||
return
|
return
|
||||||
|
|
||||||
# you can see dms you are tagged in
|
# you can see dms you are tagged in
|
||||||
if hasattr(self, "mention_users"):
|
if hasattr(self, "mention_users"):
|
||||||
if (
|
if (
|
||||||
self.privacy == "direct"
|
self.privacy in ["direct", "followers"]
|
||||||
and self.mention_users.filter(id=viewer.id).first()
|
and self.mention_users.filter(id=viewer.id).first()
|
||||||
):
|
):
|
||||||
|
|
||||||
|
|
|
@ -31,6 +31,7 @@ class Status(OrderedCollectionPageMixin, BookWyrmModel):
|
||||||
"User", on_delete=models.PROTECT, activitypub_field="attributedTo"
|
"User", on_delete=models.PROTECT, activitypub_field="attributedTo"
|
||||||
)
|
)
|
||||||
content = fields.HtmlField(blank=True, null=True)
|
content = fields.HtmlField(blank=True, null=True)
|
||||||
|
raw_content = models.TextField(blank=True, null=True)
|
||||||
mention_users = fields.TagField("User", related_name="mention_user")
|
mention_users = fields.TagField("User", related_name="mention_user")
|
||||||
mention_books = fields.TagField("Edition", related_name="mention_book")
|
mention_books = fields.TagField("Edition", related_name="mention_book")
|
||||||
local = models.BooleanField(default=True)
|
local = models.BooleanField(default=True)
|
||||||
|
@ -43,6 +44,9 @@ class Status(OrderedCollectionPageMixin, BookWyrmModel):
|
||||||
published_date = fields.DateTimeField(
|
published_date = fields.DateTimeField(
|
||||||
default=timezone.now, activitypub_field="published"
|
default=timezone.now, activitypub_field="published"
|
||||||
)
|
)
|
||||||
|
edited_date = fields.DateTimeField(
|
||||||
|
blank=True, null=True, activitypub_field="updated"
|
||||||
|
)
|
||||||
deleted = models.BooleanField(default=False)
|
deleted = models.BooleanField(default=False)
|
||||||
deleted_date = models.DateTimeField(blank=True, null=True)
|
deleted_date = models.DateTimeField(blank=True, null=True)
|
||||||
favorites = models.ManyToManyField(
|
favorites = models.ManyToManyField(
|
||||||
|
@ -220,6 +224,16 @@ class Status(OrderedCollectionPageMixin, BookWyrmModel):
|
||||||
~Q(Q(user=viewer) | Q(mention_users=viewer)), privacy="direct"
|
~Q(Q(user=viewer) | Q(mention_users=viewer)), privacy="direct"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def followers_filter(cls, queryset, viewer):
|
||||||
|
"""Override-able filter for "followers" privacy level"""
|
||||||
|
return queryset.exclude(
|
||||||
|
~Q( # not yourself, a follower, or someone who is tagged
|
||||||
|
Q(user__followers=viewer) | Q(user=viewer) | Q(mention_users=viewer)
|
||||||
|
),
|
||||||
|
privacy="followers", # and the status is followers only
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class GeneratedNote(Status):
|
class GeneratedNote(Status):
|
||||||
"""these are app-generated messages about user activity"""
|
"""these are app-generated messages about user activity"""
|
||||||
|
@ -292,6 +306,7 @@ class Quotation(BookStatus):
|
||||||
"""like a review but without a rating and transient"""
|
"""like a review but without a rating and transient"""
|
||||||
|
|
||||||
quote = fields.HtmlField()
|
quote = fields.HtmlField()
|
||||||
|
raw_quote = models.TextField(blank=True, null=True)
|
||||||
position = models.IntegerField(
|
position = models.IntegerField(
|
||||||
validators=[MinValueValidator(0)], null=True, blank=True
|
validators=[MinValueValidator(0)], null=True, blank=True
|
||||||
)
|
)
|
||||||
|
|
|
@ -7,13 +7,14 @@ from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
|
||||||
env = Env()
|
env = Env()
|
||||||
|
env.read_env()
|
||||||
DOMAIN = env("DOMAIN")
|
DOMAIN = env("DOMAIN")
|
||||||
VERSION = "0.0.1"
|
VERSION = "0.1.0"
|
||||||
|
|
||||||
PAGE_LENGTH = env("PAGE_LENGTH", 15)
|
PAGE_LENGTH = env("PAGE_LENGTH", 15)
|
||||||
DEFAULT_LANGUAGE = env("DEFAULT_LANGUAGE", "English")
|
DEFAULT_LANGUAGE = env("DEFAULT_LANGUAGE", "English")
|
||||||
|
|
||||||
JS_CACHE = "c02929b1"
|
JS_CACHE = "3eb4edb1"
|
||||||
|
|
||||||
# email
|
# email
|
||||||
EMAIL_BACKEND = env("EMAIL_BACKEND", "django.core.mail.backends.smtp.EmailBackend")
|
EMAIL_BACKEND = env("EMAIL_BACKEND", "django.core.mail.backends.smtp.EmailBackend")
|
||||||
|
@ -162,11 +163,12 @@ AUTH_PASSWORD_VALIDATORS = [
|
||||||
LANGUAGE_CODE = "en-us"
|
LANGUAGE_CODE = "en-us"
|
||||||
LANGUAGES = [
|
LANGUAGES = [
|
||||||
("en-us", _("English")),
|
("en-us", _("English")),
|
||||||
("de-de", _("Deutsch (German)")), # German
|
("de-de", _("Deutsch (German)")),
|
||||||
("es", _("Español (Spanish)")), # Spanish
|
("es-es", _("Español (Spanish)")),
|
||||||
("fr-fr", _("Français (French)")), # French
|
("fr-fr", _("Français (French)")),
|
||||||
("zh-hans", _("简体中文 (Simplified Chinese)")), # Simplified Chinese
|
("pt-br", _("Português - Brasil (Brazilian Portuguese)")),
|
||||||
("zh-hant", _("繁體中文 (Traditional Chinese)")), # Traditional Chinese
|
("zh-hans", _("简体中文 (Simplified Chinese)")),
|
||||||
|
("zh-hant", _("繁體中文 (Traditional Chinese)")),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -509,6 +509,20 @@ ol.ordered-list li::before {
|
||||||
border-left: 2px solid #e0e0e0;
|
border-left: 2px solid #e0e0e0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Breadcrumbs
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
.breadcrumb li:first-child * {
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.breadcrumb li > * {
|
||||||
|
align-items: center;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
padding: 0 0.75em;
|
||||||
|
}
|
||||||
|
|
||||||
/* Dimensions
|
/* Dimensions
|
||||||
* @todo These could be in rem.
|
* @todo These could be in rem.
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
|
@ -12,7 +12,9 @@
|
||||||
<div>
|
<div>
|
||||||
<p>{% trans "Added:" %} {{ author.created_date | naturaltime }}</p>
|
<p>{% trans "Added:" %} {{ author.created_date | naturaltime }}</p>
|
||||||
<p>{% trans "Updated:" %} {{ author.updated_date | naturaltime }}</p>
|
<p>{% trans "Updated:" %} {{ author.updated_date | naturaltime }}</p>
|
||||||
|
{% if author.last_edited_by %}
|
||||||
<p>{% trans "Last edited by:" %} <a href="{{ author.last_edited_by.remote_id }}">{{ author.last_edited_by.display_name }}</a></p>
|
<p>{% trans "Last edited by:" %} <a href="{{ author.last_edited_by.remote_id }}">{{ author.last_edited_by.display_name }}</a></p>
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{% spaceless %}
|
{% spaceless %}
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
|
|
||||||
{% if book.isbn13 or book.oclc_number or book.asin %}
|
{% if book.isbn_13 or book.oclc_number or book.asin %}
|
||||||
<dl>
|
<dl>
|
||||||
{% if book.isbn_13 %}
|
{% if book.isbn_13 %}
|
||||||
<div class="is-flex">
|
<div class="is-flex">
|
||||||
|
|
|
@ -108,7 +108,13 @@
|
||||||
{% if not confirm_mode %}
|
{% if not confirm_mode %}
|
||||||
<div class="block">
|
<div class="block">
|
||||||
<button class="button is-primary" type="submit">{% trans "Save" %}</button>
|
<button class="button is-primary" type="submit">{% trans "Save" %}</button>
|
||||||
|
{% if book %}
|
||||||
<a class="button" href="{{ book.local_path }}">{% trans "Cancel" %}</a>
|
<a class="button" href="{{ book.local_path }}">{% trans "Cancel" %}</a>
|
||||||
|
{% else %}
|
||||||
|
<a href="/" class="button" data-back>
|
||||||
|
<span>{% trans "Cancel" %}</span>
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</form>
|
</form>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% load humanize %}
|
{% load humanize %}
|
||||||
|
|
||||||
{% firstof book.physical_format_detail book.physical_format as format %}
|
{% firstof book.physical_format_detail book.get_physical_format_display as format %}
|
||||||
{% firstof book.physical_format book.physical_format_detail as format_property %}
|
{% firstof book.physical_format book.physical_format_detail as format_property %}
|
||||||
{% with pages=book.pages %}
|
{% with pages=book.pages %}
|
||||||
{% if format or pages %}
|
{% if format or pages %}
|
||||||
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
{% if format and not pages %}
|
{% if format and not pages %}
|
||||||
{% blocktrans %}{{ format }}{% endblocktrans %}
|
{{ format }}
|
||||||
{% elif format and pages %}
|
{% elif format and pages %}
|
||||||
{% blocktrans %}{{ format }}, {{ pages }} pages{% endblocktrans %}
|
{% blocktrans %}{{ format }}, {{ pages }} pages{% endblocktrans %}
|
||||||
{% elif pages %}
|
{% elif pages %}
|
||||||
|
|
|
@ -2,10 +2,10 @@
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% load utilities %}
|
{% load utilities %}
|
||||||
|
|
||||||
{% block title %}{% trans "Compose status" %}{% endblock %}
|
{% block title %}{% trans "Edit status" %}{% endblock %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<header class="block content">
|
<header class="block content">
|
||||||
<h1>{% trans "Compose status" %}</h1>
|
<h1>{% trans "Edit status" %}</h1>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
{% with 0|uuid as uuid %}
|
{% with 0|uuid as uuid %}
|
||||||
|
@ -22,6 +22,10 @@
|
||||||
<div class="column">
|
<div class="column">
|
||||||
{% if draft.reply_parent %}
|
{% if draft.reply_parent %}
|
||||||
{% include 'snippets/status/status.html' with status=draft.reply_parent no_interact=True %}
|
{% include 'snippets/status/status.html' with status=draft.reply_parent no_interact=True %}
|
||||||
|
{% else %}
|
||||||
|
<div class="block">
|
||||||
|
{% include "snippets/status/header.html" with status=draft %}
|
||||||
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if not draft %}
|
{% if not draft %}
|
||||||
|
|
26
bookwyrm/templates/discover/card-header.html
Normal file
26
bookwyrm/templates/discover/card-header.html
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
{% load i18n %}
|
||||||
|
{% load utilities %}
|
||||||
|
|
||||||
|
{% with user_path=status.user.local_path username=status.user.display_name book_path=status.book.local_poth book_title=book|book_title %}
|
||||||
|
|
||||||
|
{% if status.status_type == 'GeneratedNote' %}
|
||||||
|
{{ status.content|safe }}
|
||||||
|
{% elif status.status_type == 'Rating' %}
|
||||||
|
{% blocktrans trimmed %}
|
||||||
|
<a href="{{ user_path}}">{{ username }}</a> rated <a href="{{ book_path }}">{{ book_title }}</a>
|
||||||
|
{% endblocktrans %}
|
||||||
|
{% elif status.status_type == 'Review' %}
|
||||||
|
{% blocktrans trimmed %}
|
||||||
|
<a href="{{ user_path}}">{{ username }}</a> reviewed <a href="{{ book_path }}">{{ book_title }}</a>
|
||||||
|
{% endblocktrans %}
|
||||||
|
{% elif status.status_type == 'Comment' %}
|
||||||
|
{% blocktrans trimmed %}
|
||||||
|
<a href="{{ user_path}}">{{ username }}</a> commented on <a href="{{ book_path }}">{{ book_title }}</a>
|
||||||
|
{% endblocktrans %}
|
||||||
|
{% elif status.status_type == 'Quotation' %}
|
||||||
|
{% blocktrans trimmed %}
|
||||||
|
<a href="{{ user_path}}">{{ username }}</a> quoted <a href="{{ book_path }}">{{ book_title }}</a>
|
||||||
|
{% endblocktrans %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% endwith %}
|
|
@ -36,23 +36,7 @@
|
||||||
</figure>
|
</figure>
|
||||||
<div class="media-content">
|
<div class="media-content">
|
||||||
<h3 class="title is-6">
|
<h3 class="title is-6">
|
||||||
<a href="{{ status.user.local_path }}">
|
{% include "discover/card-header.html" %}
|
||||||
<span>{{ status.user.display_name }}</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
{% if status.status_type == 'GeneratedNote' %}
|
|
||||||
{{ status.content|safe }}
|
|
||||||
{% elif status.status_type == 'Rating' %}
|
|
||||||
{% trans "rated" %}
|
|
||||||
{% elif status.status_type == 'Review' %}
|
|
||||||
{% trans "reviewed" %}
|
|
||||||
{% elif status.status_type == 'Comment' %}
|
|
||||||
{% trans "commented on" %}
|
|
||||||
{% elif status.status_type == 'Quotation' %}
|
|
||||||
{% trans "quoted" %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
<a href="{{ book.local_path }}">{{ book.title }}</a>
|
|
||||||
</h3>
|
</h3>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -22,23 +22,7 @@
|
||||||
|
|
||||||
<div class="media-content">
|
<div class="media-content">
|
||||||
<h3 class="title is-6">
|
<h3 class="title is-6">
|
||||||
<a href="{{ status.user.local_path }}">
|
{% include "discover/card-header.html" %}
|
||||||
<span>{{ status.user.display_name }}</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
{% if status.status_type == 'GeneratedNote' %}
|
|
||||||
{{ status.content|safe }}
|
|
||||||
{% elif status.status_type == 'Rating' %}
|
|
||||||
{% trans "rated" %}
|
|
||||||
{% elif status.status_type == 'Review' %}
|
|
||||||
{% trans "reviewed" %}
|
|
||||||
{% elif status.status_type == 'Comment' %}
|
|
||||||
{% trans "commented on" %}
|
|
||||||
{% elif status.status_type == 'Quotation' %}
|
|
||||||
{% trans "quoted" %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
<a href="{{ book.local_path }}">{{ book.title }}</a>
|
|
||||||
</h3>
|
</h3>
|
||||||
{% if status.rating %}
|
{% if status.rating %}
|
||||||
<p class="subtitle is-6">
|
<p class="subtitle is-6">
|
||||||
|
|
|
@ -12,6 +12,6 @@
|
||||||
<p>
|
<p>
|
||||||
{% url 'code-of-conduct' as coc_path %}
|
{% url 'code-of-conduct' as coc_path %}
|
||||||
{% url 'about' as about_path %}
|
{% url 'about' as about_path %}
|
||||||
{% blocktrans %}Learn more <a href="https://{{ domain }}{{ about_path }}">about this instance</a>.{% endblocktrans %}
|
{% blocktrans %}Learn more <a href="https://{{ domain }}{{ about_path }}">about {{ site_name }}</a>.{% endblocktrans %}
|
||||||
</p>
|
</p>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -5,6 +5,6 @@
|
||||||
|
|
||||||
{{ invite_link }}
|
{{ invite_link }}
|
||||||
|
|
||||||
{% trans "Learn more about this instance:" %} https://{{ domain }}{% url 'about' %}
|
{% blocktrans %}Learn more about {{ site_name }}:{% endblocktrans %} https://{{ domain }}{% url 'about' %}
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -22,8 +22,8 @@
|
||||||
|
|
||||||
<div class="select block">
|
<div class="select block">
|
||||||
<select name="source" id="source">
|
<select name="source" id="source">
|
||||||
<option value="GoodReads" {% if current == 'GoodReads' %}selected{% endif %}>
|
<option value="Goodreads" {% if current == 'Goodreads' %}selected{% endif %}>
|
||||||
GoodReads (CSV)
|
Goodreads (CSV)
|
||||||
</option>
|
</option>
|
||||||
<option value="Storygraph" {% if current == 'Storygraph' %}selected{% endif %}>
|
<option value="Storygraph" {% if current == 'Storygraph' %}selected{% endif %}>
|
||||||
Storygraph (CSV)
|
Storygraph (CSV)
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
|
|
||||||
{% block tooltip_content %}
|
{% block tooltip_content %}
|
||||||
|
|
||||||
{% trans 'You can download your GoodReads data from the <a href="https://www.goodreads.com/review/import" target="_blank" rel="noopener">Import/Export page</a> of your GoodReads account.' %}
|
{% trans 'You can download your Goodreads data from the <a href="https://www.goodreads.com/review/import" target="_blank" rel="noopener">Import/Export page</a> of your Goodreads account.' %}
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -227,7 +227,7 @@
|
||||||
<div class="columns">
|
<div class="columns">
|
||||||
<div class="column is-one-fifth">
|
<div class="column is-one-fifth">
|
||||||
<p>
|
<p>
|
||||||
<a href="{% url 'about' %}">{% trans "About this instance" %}</a>
|
<a href="{% url 'about' %}">{% blocktrans with site_name=site.name %}About {{ site_name }}{% endblocktrans %}</a>
|
||||||
</p>
|
</p>
|
||||||
{% if site.admin_email %}
|
{% if site.admin_email %}
|
||||||
<p>
|
<p>
|
||||||
|
|
|
@ -18,25 +18,25 @@
|
||||||
{% if related_status.status_type == 'Review' %}
|
{% if related_status.status_type == 'Review' %}
|
||||||
{% blocktrans trimmed %}
|
{% blocktrans trimmed %}
|
||||||
|
|
||||||
favorited your <a href="{{ related_path }}">review of <em>{{ book_title }}</em></a>
|
liked your <a href="{{ related_path }}">review of <em>{{ book_title }}</em></a>
|
||||||
|
|
||||||
{% endblocktrans %}
|
{% endblocktrans %}
|
||||||
{% elif related_status.status_type == 'Comment' %}
|
{% elif related_status.status_type == 'Comment' %}
|
||||||
{% blocktrans trimmed %}
|
{% blocktrans trimmed %}
|
||||||
|
|
||||||
favorited your <a href="{{ related_path }}">comment on<em>{{ book_title }}</em></a>
|
liked your <a href="{{ related_path }}">comment on<em>{{ book_title }}</em></a>
|
||||||
|
|
||||||
{% endblocktrans %}
|
{% endblocktrans %}
|
||||||
{% elif related_status.status_type == 'Quotation' %}
|
{% elif related_status.status_type == 'Quotation' %}
|
||||||
{% blocktrans trimmed %}
|
{% blocktrans trimmed %}
|
||||||
|
|
||||||
favorited your <a href="{{ related_path }}">quote from <em>{{ book_title }}</em></a>
|
liked your <a href="{{ related_path }}">quote from <em>{{ book_title }}</em></a>
|
||||||
|
|
||||||
{% endblocktrans %}
|
{% endblocktrans %}
|
||||||
{% else %}
|
{% else %}
|
||||||
{% blocktrans trimmed %}
|
{% blocktrans trimmed %}
|
||||||
|
|
||||||
favorited your <a href="{{ related_path }}">status</a>
|
liked your <a href="{{ related_path }}">status</a>
|
||||||
|
|
||||||
{% endblocktrans %}
|
{% endblocktrans %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<label class="label mb-0" for="id_short_description">{% trans "Short description:" %}</label>
|
<label class="label mb-0" for="id_short_description">{% trans "Short description:" %}</label>
|
||||||
<p class="help">{% trans "Used when the instance is previewed on joinbookwyrm.com. Does not support html or markdown." %}</p>
|
<p class="help">{% trans "Used when the instance is previewed on joinbookwyrm.com. Does not support HTML or Markdown." %}</p>
|
||||||
{{ site_form.instance_short_description }}
|
{{ site_form.instance_short_description }}
|
||||||
</div>
|
</div>
|
||||||
<div class="field">
|
<div class="field">
|
||||||
|
|
|
@ -124,14 +124,16 @@
|
||||||
<table class="table is-striped is-fullwidth is-mobile">
|
<table class="table is-striped is-fullwidth is-mobile">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>{% trans "Cover" %}</th>
|
<th>{% trans "Cover"%}</th>
|
||||||
<th>{% trans "Title" %}</th>
|
<th>{% trans "Title" as text %}{% include 'snippets/table-sort-header.html' with field="title" sort=sort text=text %}</th>
|
||||||
<th>{% trans "Author" %}</th>
|
<th>{% trans "Author" as text %}{% include 'snippets/table-sort-header.html' with field="author" sort=sort text=text %}</th>
|
||||||
<th>{% trans "Shelved" %}</th>
|
|
||||||
<th>{% trans "Started" %}</th>
|
|
||||||
<th>{% trans "Finished" %}</th>
|
|
||||||
{% if request.user.is_authenticated %}
|
{% if request.user.is_authenticated %}
|
||||||
<th>{% trans "Rating" %}</th>
|
{% if is_self %}
|
||||||
|
<th>{% trans "Shelved" as text %}{% include 'snippets/table-sort-header.html' with field="shelved_date" sort=sort text=text %}</th>
|
||||||
|
<th>{% trans "Started" as text %}{% include 'snippets/table-sort-header.html' with field="start_date" sort=sort text=text %}</th>
|
||||||
|
<th>{% trans "Finished" as text %}{% include 'snippets/table-sort-header.html' with field="finish_date" sort=sort text=text %}</th>
|
||||||
|
{% endif %}
|
||||||
|
<th>{% trans "Rating" as text %}{% include 'snippets/table-sort-header.html' with field="rating" sort=sort text=text %}</th>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if shelf.user == request.user %}
|
{% if shelf.user == request.user %}
|
||||||
<th aria-hidden="true"></th>
|
<th aria-hidden="true"></th>
|
||||||
|
@ -151,17 +153,18 @@
|
||||||
<td data-title="{% trans "Author" %}">
|
<td data-title="{% trans "Author" %}">
|
||||||
{% include 'snippets/authors.html' %}
|
{% include 'snippets/authors.html' %}
|
||||||
</td>
|
</td>
|
||||||
|
{% if request.user.is_authenticated %}
|
||||||
|
{% if is_self %}
|
||||||
<td data-title="{% trans "Shelved" %}">
|
<td data-title="{% trans "Shelved" %}">
|
||||||
{{ book.shelved_date|naturalday }}
|
{{ book.shelved_date|naturalday }}
|
||||||
</td>
|
</td>
|
||||||
{% latest_read_through book user as read_through %}
|
|
||||||
<td data-title="{% trans "Started" %}">
|
<td data-title="{% trans "Started" %}">
|
||||||
{{ read_through.start_date|naturalday|default_if_none:""}}
|
{{ book.start_date|naturalday|default_if_none:""}}
|
||||||
</td>
|
</td>
|
||||||
<td data-title="{% trans "Finished" %}">
|
<td data-title="{% trans "Finished" %}">
|
||||||
{{ read_through.finish_date|naturalday|default_if_none:""}}
|
{{ book.finish_date|naturalday|default_if_none:""}}
|
||||||
</td>
|
</td>
|
||||||
{% if request.user.is_authenticated %}
|
{% endif %}
|
||||||
<td data-title="{% trans "Rating" %}">
|
<td data-title="{% trans "Rating" %}">
|
||||||
{% include 'snippets/stars.html' with rating=book.rating %}
|
{% include 'snippets/stars.html' with rating=book.rating %}
|
||||||
</td>
|
</td>
|
||||||
|
|
|
@ -15,6 +15,7 @@ uuid: a unique identifier used to make html "id" attributes unique and clarify j
|
||||||
{% trans "Some thoughts on the book" as placeholder %}
|
{% trans "Some thoughts on the book" as placeholder %}
|
||||||
|
|
||||||
{% block post_content_additions %}
|
{% block post_content_additions %}
|
||||||
|
{% if not draft.reading_status %}
|
||||||
{# Supplemental fields #}
|
{# Supplemental fields #}
|
||||||
<div>
|
<div>
|
||||||
{% active_shelf book as active_shelf %}
|
{% active_shelf book as active_shelf %}
|
||||||
|
@ -35,7 +36,7 @@ uuid: a unique identifier used to make html "id" attributes unique and clarify j
|
||||||
size="3"
|
size="3"
|
||||||
value="{% firstof draft.progress readthrough.progress '' %}"
|
value="{% firstof draft.progress readthrough.progress '' %}"
|
||||||
id="progress_{{ uuid }}"
|
id="progress_{{ uuid }}"
|
||||||
data-cache-draft="id_progress_comment_{{ book.id }}"
|
{% if not draft %}data-cache-draft="id_progress_comment_{{ book.id }}"{% endif %}
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
<div class="control">
|
<div class="control">
|
||||||
|
@ -43,7 +44,7 @@ uuid: a unique identifier used to make html "id" attributes unique and clarify j
|
||||||
<select
|
<select
|
||||||
name="progress_mode"
|
name="progress_mode"
|
||||||
aria-label="Progress mode"
|
aria-label="Progress mode"
|
||||||
data-cache-draft="id_progress_mode_comment_{{ book.id }}"
|
{% if not draft %}data-cache-draft="id_progress_mode_comment_{{ book.id }}"{% endif %}
|
||||||
>
|
>
|
||||||
<option
|
<option
|
||||||
value="PG"
|
value="PG"
|
||||||
|
@ -68,6 +69,7 @@ uuid: a unique identifier used to make html "id" attributes unique and clarify j
|
||||||
{% endwith %}
|
{% endwith %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% endwith %}
|
{% endwith %}
|
||||||
|
|
|
@ -11,10 +11,10 @@ draft: an existing Status object that is providing default values for input fiel
|
||||||
<textarea
|
<textarea
|
||||||
name="content"
|
name="content"
|
||||||
class="textarea save-draft"
|
class="textarea save-draft"
|
||||||
data-cache-draft="id_content_{{ type }}_{{ book.id }}{{ reply_parent.id }}"
|
{% if not draft %}data-cache-draft="id_content_{{ type }}_{{ book.id }}{{ reply_parent.id }}"{% endif %}
|
||||||
id="id_content_{{ type }}_{{ book.id }}{{ reply_parent.id }}{{ uuid }}"
|
id="id_content_{{ type }}_{{ book.id }}{{ reply_parent.id }}{{ uuid }}"
|
||||||
placeholder="{{ placeholder }}"
|
placeholder="{{ placeholder }}"
|
||||||
aria-label="{% if reply_parent %}{% trans 'Reply' %}{% else %}{% trans 'Content' %}{% endif %}"
|
aria-label="{% if reply_parent %}{% trans 'Reply' %}{% else %}{% trans 'Content' %}{% endif %}"
|
||||||
{% if not optional and type != "quotation" and type != "review" %}required{% endif %}
|
{% if not optional and type != "quotation" and type != "review" %}required{% endif %}
|
||||||
>{% if reply_parent %}{{ reply_parent|mentions:request.user }}{% endif %}{% if mention %}@{{ mention|username }} {% endif %}{{ draft.content|default:'' }}</textarea>
|
>{% if reply_parent %}{{ reply_parent|mentions:request.user }}{% endif %}{% if mention %}@{{ mention|username }} {% endif %}{% firstof draft.raw_content draft.content '' %}</textarea>
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,6 @@
|
||||||
id="id_content_warning_{{ uuid }}{{ local_uuid }}"
|
id="id_content_warning_{{ uuid }}{{ local_uuid }}"
|
||||||
placeholder="{% trans 'Spoilers ahead!' %}"
|
placeholder="{% trans 'Spoilers ahead!' %}"
|
||||||
value="{% firstof draft.content_warning reply_parent.content_warning '' %}"
|
value="{% firstof draft.content_warning reply_parent.content_warning '' %}"
|
||||||
data-cache-draft="id_content_warning_{{ book.id }}_{{ type }}"
|
{% if not draft %}data-cache-draft="id_content_warning_{{ book.id }}_{{ type }}"{% endif %}
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
id="id_show_spoilers_{{ uuid }}{{ local_uuid }}"
|
id="id_show_spoilers_{{ uuid }}{{ local_uuid }}"
|
||||||
{% if draft.content_warning or status.content_warning %}checked{% endif %}
|
{% if draft.content_warning or status.content_warning %}checked{% endif %}
|
||||||
aria-hidden="true"
|
aria-hidden="true"
|
||||||
data-cache-draft="id_sensitive_{{ book.id }}_{{ type }}{{ reply_parent.id }}"
|
{% if not draft %}data-cache-draft="id_sensitive_{{ book.id }}_{{ type }}{{ reply_parent.id }}"{% endif %}
|
||||||
>
|
>
|
||||||
{% trans "Include spoiler alert" as button_text %}
|
{% trans "Include spoiler alert" as button_text %}
|
||||||
{% firstof draft.content_warning status.content_warning as pressed %}
|
{% firstof draft.content_warning status.content_warning as pressed %}
|
||||||
|
|
|
@ -17,7 +17,11 @@ reply_parent: the Status object this post will be in reply to, if applicable
|
||||||
<form
|
<form
|
||||||
class="is-flex-grow-1{% if not no_script %} submit-status{% endif %}"
|
class="is-flex-grow-1{% if not no_script %} submit-status{% endif %}"
|
||||||
name="{{ type }}"
|
name="{{ type }}"
|
||||||
action="/post/{{ type }}"
|
{% if draft %}
|
||||||
|
action="{% url 'create-status' type draft.id %}"
|
||||||
|
{% else %}
|
||||||
|
action="{% url 'create-status' type %}"
|
||||||
|
{% endif %}
|
||||||
method="post"
|
method="post"
|
||||||
id="form_{{ type }}_{{ book.id }}{{ reply_parent.id }}"
|
id="form_{{ type }}_{{ book.id }}{{ reply_parent.id }}"
|
||||||
>
|
>
|
||||||
|
@ -29,6 +33,9 @@ reply_parent: the Status object this post will be in reply to, if applicable
|
||||||
<input type="hidden" name="book" value="{{ book.id }}">
|
<input type="hidden" name="book" value="{{ book.id }}">
|
||||||
<input type="hidden" name="user" value="{{ request.user.id }}">
|
<input type="hidden" name="user" value="{{ request.user.id }}">
|
||||||
<input type="hidden" name="reply_parent" value="{% firstof draft.reply_parent.id reply_parent.id %}">
|
<input type="hidden" name="reply_parent" value="{% firstof draft.reply_parent.id reply_parent.id %}">
|
||||||
|
{% if draft %}
|
||||||
|
<input type="hidden" name="reading_status" value="{{ draft.reading_status|default:'' }}">
|
||||||
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% include "snippets/create_status/content_warning_field.html" %}
|
{% include "snippets/create_status/content_warning_field.html" %}
|
||||||
|
|
|
@ -24,8 +24,8 @@ uuid: a unique identifier used to make html "id" attributes unique and clarify j
|
||||||
id="id_quote_{{ book.id }}_{{ type }}"
|
id="id_quote_{{ book.id }}_{{ type }}"
|
||||||
placeholder="{% blocktrans with book_title=book.title %}An excerpt from '{{ book_title }}'{% endblocktrans %}"
|
placeholder="{% blocktrans with book_title=book.title %}An excerpt from '{{ book_title }}'{% endblocktrans %}"
|
||||||
required
|
required
|
||||||
data-cache-draft="id_quote_{{ book.id }}_{{ type }}"
|
{% if not draft %}data-cache-draft="id_quote_{{ book.id }}_{{ type }}"{% endif %}
|
||||||
>{{ draft.quote|default:'' }}</textarea>
|
>{% firstof draft.raw_quote draft.quote '' %}</textarea>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="field">
|
<div class="field">
|
||||||
|
@ -36,7 +36,7 @@ uuid: a unique identifier used to make html "id" attributes unique and clarify j
|
||||||
<select
|
<select
|
||||||
name="position_mode"
|
name="position_mode"
|
||||||
aria-label="Position mode"
|
aria-label="Position mode"
|
||||||
data-cache-draft="id_position_mode_{{ book.id }}_{{ type }}"
|
{% if not draft %}data-cache-draft="id_position_mode_{{ book.id }}_{{ type }}"{% endif %}
|
||||||
>
|
>
|
||||||
<option
|
<option
|
||||||
value="PG"
|
value="PG"
|
||||||
|
@ -63,7 +63,7 @@ uuid: a unique identifier used to make html "id" attributes unique and clarify j
|
||||||
size="3"
|
size="3"
|
||||||
value="{% firstof draft.position '' %}"
|
value="{% firstof draft.position '' %}"
|
||||||
id="position_{{ uuid }}"
|
id="position_{{ uuid }}"
|
||||||
data-cache-draft="id_position_{{ book.id }}_{{ type }}"
|
{% if not draft %}data-cache-draft="id_position_{{ book.id }}_{{ type }}"{% endif %}
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -24,7 +24,7 @@ uuid: a unique identifier used to make html "id" attributes unique and clarify j
|
||||||
id="id_name_{{ book.id }}"
|
id="id_name_{{ book.id }}"
|
||||||
placeholder="{% blocktrans with book_title=book.title %}Your review of '{{ book_title }}'{% endblocktrans %}"
|
placeholder="{% blocktrans with book_title=book.title %}Your review of '{{ book_title }}'{% endblocktrans %}"
|
||||||
value="{% firstof draft.name ''%}"
|
value="{% firstof draft.name ''%}"
|
||||||
data-cache-draft="id_name_{{ book.id }}_{{ type }}"
|
{% if not draft %}data-cache-draft="id_name_{{ book.id }}_{{ type }}"{% endif %}
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,7 +1,19 @@
|
||||||
|
{% spaceless %}
|
||||||
|
|
||||||
{% load humanize %}
|
{% load humanize %}
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
|
|
||||||
{% if total_pages %}
|
{% if total_pages %}
|
||||||
{% blocktrans with page=page|intcomma total_pages=total_pages|intcomma %}page {{ page }} of {{ total_pages }}{% endblocktrans %}
|
|
||||||
|
{% blocktrans trimmed with page=page|intcomma total_pages=total_pages|intcomma %}
|
||||||
|
page {{ page }} of {{ total_pages }}
|
||||||
|
{% endblocktrans %}
|
||||||
|
|
||||||
{% else %}
|
{% else %}
|
||||||
{% blocktrans with page=page|intcomma %}page {{ page }}{% endblocktrans %}
|
|
||||||
|
{% blocktrans trimmed with page=page|intcomma %}
|
||||||
|
page {{ page }}
|
||||||
|
{% endblocktrans %}
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% endspaceless %}
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
{% if request.user.is_authenticated %}
|
{% if request.user.is_authenticated %}
|
||||||
<span class="is-sr-only">{% trans "Leave a rating" %}</span>
|
<span class="is-sr-only">{% trans "Leave a rating" %}</span>
|
||||||
<div class="block">
|
<div class="block">
|
||||||
<form class="hidden-form" name="rate" action="/post/rating" method="POST">
|
<form class="hidden-form" name="rate" action="{% url 'create-status' 'rating' %}" method="POST">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<input type="hidden" name="user" value="{{ request.user.id }}">
|
<input type="hidden" name="user" value="{{ request.user.id }}">
|
||||||
<input type="hidden" name="book" value="{{ book.id }}">
|
<input type="hidden" name="book" value="{{ book.id }}">
|
||||||
|
|
|
@ -31,18 +31,38 @@
|
||||||
|
|
||||||
{% include "snippets/status/header_content.html" %}
|
{% include "snippets/status/header_content.html" %}
|
||||||
</h3>
|
</h3>
|
||||||
<p class="is-size-7 is-flex is-align-items-center">
|
<div class="breadcrumb has-dot-separator is-small">
|
||||||
<a href="{{ status.remote_id }}{% if status.user.local %}#anchor-{{ status.id }}{% endif %}">{{ status.published_date|published_date }}</a>
|
<ul class="is-flex is-align-items-center">
|
||||||
{% if status.progress %}
|
<li>
|
||||||
<span class="ml-1">
|
<a href="{{ status.remote_id }}{% if status.user.local %}#anchor-{{ status.id }}{% endif %}">
|
||||||
{% if status.progress_mode == 'PG' %}
|
{{ status.published_date|published_date }}
|
||||||
({% include 'snippets/page_text.html' with page=status.progress total_pages=status.book.pages %})
|
</a>
|
||||||
{% else %}
|
</li>
|
||||||
({{ status.progress }}%)
|
|
||||||
{% endif %}
|
{% if status.edited_date %}
|
||||||
</span>
|
<li>
|
||||||
{% endif %}
|
<span>
|
||||||
{% include 'snippets/privacy-icons.html' with item=status %}
|
{% blocktrans with date=status.edited_date|published_date %}edited {{ date }}{% endblocktrans %}
|
||||||
</p>
|
</span>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if status.progress %}
|
||||||
|
<li class="ml-1">
|
||||||
|
<span>
|
||||||
|
{% if status.progress_mode == 'PG' %}
|
||||||
|
{% include 'snippets/page_text.html' with page=status.progress total_pages=status.book.pages %}
|
||||||
|
{% else %}
|
||||||
|
{{ status.progress }}%
|
||||||
|
{% endif %}
|
||||||
|
</span>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<li>
|
||||||
|
{% include 'snippets/privacy-icons.html' with item=status %}
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -67,7 +67,7 @@
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block card-bonus %}
|
{% block card-bonus %}
|
||||||
{% if request.user.is_authenticated and not moderation_mode %}
|
{% if request.user.is_authenticated and not moderation_mode and not no_interact %}
|
||||||
{% with status.id|uuid as uuid %}
|
{% with status.id|uuid as uuid %}
|
||||||
<section class="reply-panel is-hidden" id="show_comment_{{ status.id }}">
|
<section class="reply-panel is-hidden" id="show_comment_{{ status.id }}">
|
||||||
<div class="card-footer">
|
<div class="card-footer">
|
||||||
|
|
|
@ -20,12 +20,9 @@
|
||||||
</li>
|
</li>
|
||||||
{% if status.status_type != 'GeneratedNote' and status.status_type != 'Rating' %}
|
{% if status.status_type != 'GeneratedNote' and status.status_type != 'Rating' %}
|
||||||
<li role="menuitem" class="dropdown-item p-0">
|
<li role="menuitem" class="dropdown-item p-0">
|
||||||
<form class="" name="delete-{{ status.id }}" action="{% url 'redraft' status.id %}" method="post">
|
<a href="{% url 'edit-status' status.id %}" class="button is-radiusless is-fullwidth is-small" type="submit">
|
||||||
{% csrf_token %}
|
{% trans "Edit" %}
|
||||||
<button class="button is-radiusless is-danger is-light is-fullwidth is-small" type="submit">
|
</a>
|
||||||
{% trans "Delete & re-draft" %}
|
|
||||||
</button>
|
|
||||||
</form>
|
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% else %}
|
{% else %}
|
||||||
|
|
|
@ -3,11 +3,13 @@ from unittest.mock import patch
|
||||||
from io import BytesIO
|
from io import BytesIO
|
||||||
import pathlib
|
import pathlib
|
||||||
|
|
||||||
from PIL import Image
|
from django.http import Http404
|
||||||
from django.core.files.base import ContentFile
|
from django.core.files.base import ContentFile
|
||||||
from django.db import IntegrityError
|
from django.db import IntegrityError
|
||||||
|
from django.contrib.auth.models import AnonymousUser
|
||||||
from django.test import TestCase
|
from django.test import TestCase
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
|
from PIL import Image
|
||||||
import responses
|
import responses
|
||||||
|
|
||||||
from bookwyrm import activitypub, models, settings
|
from bookwyrm import activitypub, models, settings
|
||||||
|
@ -50,6 +52,9 @@ class Status(TestCase):
|
||||||
image.save(output, format=image.format)
|
image.save(output, format=image.format)
|
||||||
self.book.cover.save("test.jpg", ContentFile(output.getvalue()))
|
self.book.cover.save("test.jpg", ContentFile(output.getvalue()))
|
||||||
|
|
||||||
|
self.anonymous_user = AnonymousUser
|
||||||
|
self.anonymous_user.is_authenticated = False
|
||||||
|
|
||||||
def test_status_generated_fields(self, *_):
|
def test_status_generated_fields(self, *_):
|
||||||
"""setting remote id"""
|
"""setting remote id"""
|
||||||
status = models.Status.objects.create(content="bleh", user=self.local_user)
|
status = models.Status.objects.create(content="bleh", user=self.local_user)
|
||||||
|
@ -460,3 +465,60 @@ class Status(TestCase):
|
||||||
responses.add(responses.GET, "http://fish.com/nothing", status=404)
|
responses.add(responses.GET, "http://fish.com/nothing", status=404)
|
||||||
|
|
||||||
self.assertTrue(models.Status.ignore_activity(activity))
|
self.assertTrue(models.Status.ignore_activity(activity))
|
||||||
|
|
||||||
|
def test_raise_visible_to_user_public(self, *_):
|
||||||
|
"""privacy settings"""
|
||||||
|
status = models.Status.objects.create(
|
||||||
|
content="bleh", user=self.local_user, privacy="public"
|
||||||
|
)
|
||||||
|
self.assertIsNone(status.raise_visible_to_user(self.remote_user))
|
||||||
|
self.assertIsNone(status.raise_visible_to_user(self.local_user))
|
||||||
|
self.assertIsNone(status.raise_visible_to_user(self.anonymous_user))
|
||||||
|
|
||||||
|
def test_raise_visible_to_user_unlisted(self, *_):
|
||||||
|
"""privacy settings"""
|
||||||
|
status = models.Status.objects.create(
|
||||||
|
content="bleh", user=self.local_user, privacy="unlisted"
|
||||||
|
)
|
||||||
|
self.assertIsNone(status.raise_visible_to_user(self.remote_user))
|
||||||
|
self.assertIsNone(status.raise_visible_to_user(self.local_user))
|
||||||
|
self.assertIsNone(status.raise_visible_to_user(self.anonymous_user))
|
||||||
|
|
||||||
|
@patch("bookwyrm.suggested_users.rerank_suggestions_task.delay")
|
||||||
|
def test_raise_visible_to_user_followers(self, *_):
|
||||||
|
"""privacy settings"""
|
||||||
|
status = models.Status.objects.create(
|
||||||
|
content="bleh", user=self.local_user, privacy="followers"
|
||||||
|
)
|
||||||
|
status.raise_visible_to_user(self.local_user)
|
||||||
|
with self.assertRaises(Http404):
|
||||||
|
status.raise_visible_to_user(self.remote_user)
|
||||||
|
with self.assertRaises(Http404):
|
||||||
|
status.raise_visible_to_user(self.anonymous_user)
|
||||||
|
|
||||||
|
self.local_user.followers.add(self.remote_user)
|
||||||
|
self.assertIsNone(status.raise_visible_to_user(self.remote_user))
|
||||||
|
|
||||||
|
def test_raise_visible_to_user_followers_mentioned(self, *_):
|
||||||
|
"""privacy settings"""
|
||||||
|
status = models.Status.objects.create(
|
||||||
|
content="bleh", user=self.local_user, privacy="followers"
|
||||||
|
)
|
||||||
|
status.mention_users.set([self.remote_user])
|
||||||
|
self.assertIsNone(status.raise_visible_to_user(self.remote_user))
|
||||||
|
|
||||||
|
@patch("bookwyrm.suggested_users.rerank_suggestions_task.delay")
|
||||||
|
def test_raise_visible_to_user_direct(self, *_):
|
||||||
|
"""privacy settings"""
|
||||||
|
status = models.Status.objects.create(
|
||||||
|
content="bleh", user=self.local_user, privacy="direct"
|
||||||
|
)
|
||||||
|
status.raise_visible_to_user(self.local_user)
|
||||||
|
with self.assertRaises(Http404):
|
||||||
|
status.raise_visible_to_user(self.remote_user)
|
||||||
|
with self.assertRaises(Http404):
|
||||||
|
status.raise_visible_to_user(self.anonymous_user)
|
||||||
|
|
||||||
|
# mentioned user
|
||||||
|
status.mention_users.set([self.remote_user])
|
||||||
|
self.assertIsNone(status.raise_visible_to_user(self.remote_user))
|
||||||
|
|
|
@ -58,6 +58,17 @@ class EditBookViews(TestCase):
|
||||||
validate_html(result.render())
|
validate_html(result.render())
|
||||||
self.assertEqual(result.status_code, 200)
|
self.assertEqual(result.status_code, 200)
|
||||||
|
|
||||||
|
def test_edit_book_create_page(self):
|
||||||
|
"""there are so many views, this just makes sure it LOADS"""
|
||||||
|
view = views.EditBook.as_view()
|
||||||
|
request = self.factory.get("")
|
||||||
|
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)
|
||||||
|
|
||||||
def test_edit_book(self):
|
def test_edit_book(self):
|
||||||
"""lets a user edit a book"""
|
"""lets a user edit a book"""
|
||||||
view = views.EditBook.as_view()
|
view = views.EditBook.as_view()
|
||||||
|
|
|
@ -37,9 +37,9 @@ class InboxUpdate(TestCase):
|
||||||
outbox="https://example.com/users/rat/outbox",
|
outbox="https://example.com/users/rat/outbox",
|
||||||
)
|
)
|
||||||
|
|
||||||
self.create_json = {
|
self.update_json = {
|
||||||
"id": "hi",
|
"id": "hi",
|
||||||
"type": "Create",
|
"type": "Update",
|
||||||
"actor": "hi",
|
"actor": "hi",
|
||||||
"to": ["https://www.w3.org/ns/activitystreams#public"],
|
"to": ["https://www.w3.org/ns/activitystreams#public"],
|
||||||
"cc": ["https://example.com/user/mouse/followers"],
|
"cc": ["https://example.com/user/mouse/followers"],
|
||||||
|
@ -54,26 +54,20 @@ class InboxUpdate(TestCase):
|
||||||
book_list = models.List.objects.create(
|
book_list = models.List.objects.create(
|
||||||
name="hi", remote_id="https://example.com/list/22", user=self.local_user
|
name="hi", remote_id="https://example.com/list/22", user=self.local_user
|
||||||
)
|
)
|
||||||
activity = {
|
activity = self.update_json
|
||||||
"type": "Update",
|
activity["object"] = {
|
||||||
"to": [],
|
"id": "https://example.com/list/22",
|
||||||
"cc": [],
|
"type": "BookList",
|
||||||
"actor": "hi",
|
"totalItems": 1,
|
||||||
"id": "sdkjf",
|
"first": "https://example.com/list/22?page=1",
|
||||||
"object": {
|
"last": "https://example.com/list/22?page=1",
|
||||||
"id": "https://example.com/list/22",
|
"name": "Test List",
|
||||||
"type": "BookList",
|
"owner": "https://example.com/user/mouse",
|
||||||
"totalItems": 1,
|
"to": ["https://www.w3.org/ns/activitystreams#Public"],
|
||||||
"first": "https://example.com/list/22?page=1",
|
"cc": ["https://example.com/user/mouse/followers"],
|
||||||
"last": "https://example.com/list/22?page=1",
|
"summary": "summary text",
|
||||||
"name": "Test List",
|
"curation": "curated",
|
||||||
"owner": "https://example.com/user/mouse",
|
"@context": "https://www.w3.org/ns/activitystreams",
|
||||||
"to": ["https://www.w3.org/ns/activitystreams#Public"],
|
|
||||||
"cc": ["https://example.com/user/mouse/followers"],
|
|
||||||
"summary": "summary text",
|
|
||||||
"curation": "curated",
|
|
||||||
"@context": "https://www.w3.org/ns/activitystreams",
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
views.inbox.activity_task(activity)
|
views.inbox.activity_task(activity)
|
||||||
book_list.refresh_from_db()
|
book_list.refresh_from_db()
|
||||||
|
@ -176,3 +170,26 @@ class InboxUpdate(TestCase):
|
||||||
)
|
)
|
||||||
book = models.Work.objects.get(id=book.id)
|
book = models.Work.objects.get(id=book.id)
|
||||||
self.assertEqual(book.title, "Piranesi")
|
self.assertEqual(book.title, "Piranesi")
|
||||||
|
|
||||||
|
@patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay")
|
||||||
|
@patch("bookwyrm.activitystreams.add_status_task.delay")
|
||||||
|
def test_update_status(self, *_):
|
||||||
|
"""edit a status"""
|
||||||
|
status = models.Status.objects.create(user=self.remote_user, content="hi")
|
||||||
|
|
||||||
|
datafile = pathlib.Path(__file__).parent.joinpath("../../data/ap_note.json")
|
||||||
|
status_data = json.loads(datafile.read_bytes())
|
||||||
|
status_data["id"] = status.remote_id
|
||||||
|
status_data["updated"] = "2021-12-13T05:09:29Z"
|
||||||
|
|
||||||
|
activity = self.update_json
|
||||||
|
activity["object"] = status_data
|
||||||
|
|
||||||
|
with patch("bookwyrm.activitypub.base_activity.set_related_field.delay"):
|
||||||
|
views.inbox.activity_task(activity)
|
||||||
|
|
||||||
|
status.refresh_from_db()
|
||||||
|
self.assertEqual(status.content, "test content in note")
|
||||||
|
self.assertEqual(status.edited_date.year, 2021)
|
||||||
|
self.assertEqual(status.edited_date.month, 12)
|
||||||
|
self.assertEqual(status.edited_date.day, 13)
|
||||||
|
|
|
@ -9,6 +9,7 @@ from django.test.client import RequestFactory
|
||||||
|
|
||||||
from bookwyrm import forms, models, views
|
from bookwyrm import forms, models, views
|
||||||
from bookwyrm.activitypub import ActivitypubResponse
|
from bookwyrm.activitypub import ActivitypubResponse
|
||||||
|
from bookwyrm.tests.validate_html import validate_html
|
||||||
|
|
||||||
|
|
||||||
class AuthorViews(TestCase):
|
class AuthorViews(TestCase):
|
||||||
|
@ -54,7 +55,7 @@ class AuthorViews(TestCase):
|
||||||
is_api.return_value = False
|
is_api.return_value = False
|
||||||
result = view(request, author.id)
|
result = view(request, author.id)
|
||||||
self.assertIsInstance(result, TemplateResponse)
|
self.assertIsInstance(result, TemplateResponse)
|
||||||
result.render()
|
validate_html(result.render())
|
||||||
self.assertEqual(result.status_code, 200)
|
self.assertEqual(result.status_code, 200)
|
||||||
self.assertEqual(result.status_code, 200)
|
self.assertEqual(result.status_code, 200)
|
||||||
|
|
||||||
|
@ -75,7 +76,7 @@ class AuthorViews(TestCase):
|
||||||
|
|
||||||
result = view(request, author.id)
|
result = view(request, author.id)
|
||||||
self.assertIsInstance(result, TemplateResponse)
|
self.assertIsInstance(result, TemplateResponse)
|
||||||
result.render()
|
validate_html(result.render())
|
||||||
self.assertEqual(result.status_code, 200)
|
self.assertEqual(result.status_code, 200)
|
||||||
self.assertEqual(result.status_code, 200)
|
self.assertEqual(result.status_code, 200)
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,7 @@ from django.test.client import RequestFactory
|
||||||
|
|
||||||
from bookwyrm import forms, models, views
|
from bookwyrm import forms, models, views
|
||||||
from bookwyrm.settings import DOMAIN
|
from bookwyrm.settings import DOMAIN
|
||||||
|
from bookwyrm.tests.validate_html import validate_html
|
||||||
|
|
||||||
|
|
||||||
# pylint: disable=invalid-name
|
# pylint: disable=invalid-name
|
||||||
|
@ -50,7 +51,7 @@ class StatusViews(TestCase):
|
||||||
)
|
)
|
||||||
models.SiteSettings.objects.create()
|
models.SiteSettings.objects.create()
|
||||||
|
|
||||||
def test_handle_status(self, *_):
|
def test_create_status_comment(self, *_):
|
||||||
"""create a status"""
|
"""create a status"""
|
||||||
view = views.CreateStatus.as_view()
|
view = views.CreateStatus.as_view()
|
||||||
form = forms.CommentForm(
|
form = forms.CommentForm(
|
||||||
|
@ -67,11 +68,13 @@ class StatusViews(TestCase):
|
||||||
view(request, "comment")
|
view(request, "comment")
|
||||||
|
|
||||||
status = models.Comment.objects.get()
|
status = models.Comment.objects.get()
|
||||||
|
self.assertEqual(status.raw_content, "hi")
|
||||||
self.assertEqual(status.content, "<p>hi</p>")
|
self.assertEqual(status.content, "<p>hi</p>")
|
||||||
self.assertEqual(status.user, self.local_user)
|
self.assertEqual(status.user, self.local_user)
|
||||||
self.assertEqual(status.book, self.book)
|
self.assertEqual(status.book, self.book)
|
||||||
|
self.assertIsNone(status.edited_date)
|
||||||
|
|
||||||
def test_handle_status_reply(self, *_):
|
def test_create_status_reply(self, *_):
|
||||||
"""create a status in reply to an existing status"""
|
"""create a status in reply to an existing status"""
|
||||||
view = views.CreateStatus.as_view()
|
view = views.CreateStatus.as_view()
|
||||||
user = models.User.objects.create_user(
|
user = models.User.objects.create_user(
|
||||||
|
@ -98,7 +101,7 @@ class StatusViews(TestCase):
|
||||||
self.assertEqual(status.user, user)
|
self.assertEqual(status.user, user)
|
||||||
self.assertEqual(models.Notification.objects.get().user, self.local_user)
|
self.assertEqual(models.Notification.objects.get().user, self.local_user)
|
||||||
|
|
||||||
def test_handle_status_mentions(self, *_):
|
def test_create_status_mentions(self, *_):
|
||||||
"""@mention a user in a post"""
|
"""@mention a user in a post"""
|
||||||
view = views.CreateStatus.as_view()
|
view = views.CreateStatus.as_view()
|
||||||
user = models.User.objects.create_user(
|
user = models.User.objects.create_user(
|
||||||
|
@ -128,7 +131,7 @@ class StatusViews(TestCase):
|
||||||
status.content, f'<p>hi <a href="{user.remote_id}">@rat</a></p>'
|
status.content, f'<p>hi <a href="{user.remote_id}">@rat</a></p>'
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_handle_status_reply_with_mentions(self, *_):
|
def test_create_status_reply_with_mentions(self, *_):
|
||||||
"""reply to a post with an @mention'ed user"""
|
"""reply to a post with an @mention'ed user"""
|
||||||
view = views.CreateStatus.as_view()
|
view = views.CreateStatus.as_view()
|
||||||
user = models.User.objects.create_user(
|
user = models.User.objects.create_user(
|
||||||
|
@ -168,60 +171,6 @@ class StatusViews(TestCase):
|
||||||
self.assertFalse(self.remote_user in reply.mention_users.all())
|
self.assertFalse(self.remote_user in reply.mention_users.all())
|
||||||
self.assertTrue(self.local_user in reply.mention_users.all())
|
self.assertTrue(self.local_user in reply.mention_users.all())
|
||||||
|
|
||||||
def test_delete_and_redraft(self, *_):
|
|
||||||
"""delete and re-draft a status"""
|
|
||||||
view = views.DeleteAndRedraft.as_view()
|
|
||||||
request = self.factory.post("")
|
|
||||||
request.user = self.local_user
|
|
||||||
status = models.Comment.objects.create(
|
|
||||||
content="hi", book=self.book, user=self.local_user
|
|
||||||
)
|
|
||||||
|
|
||||||
with patch("bookwyrm.activitystreams.remove_status_task.delay") as mock:
|
|
||||||
result = view(request, status.id)
|
|
||||||
self.assertTrue(mock.called)
|
|
||||||
result.render()
|
|
||||||
|
|
||||||
# make sure it was deleted
|
|
||||||
status.refresh_from_db()
|
|
||||||
self.assertTrue(status.deleted)
|
|
||||||
|
|
||||||
def test_delete_and_redraft_invalid_status_type_rating(self, *_):
|
|
||||||
"""you can't redraft generated statuses"""
|
|
||||||
view = views.DeleteAndRedraft.as_view()
|
|
||||||
request = self.factory.post("")
|
|
||||||
request.user = self.local_user
|
|
||||||
with patch("bookwyrm.activitystreams.add_status_task.delay"):
|
|
||||||
status = models.ReviewRating.objects.create(
|
|
||||||
book=self.book, rating=2.0, user=self.local_user
|
|
||||||
)
|
|
||||||
|
|
||||||
with patch("bookwyrm.activitystreams.remove_status_task.delay") as mock:
|
|
||||||
with self.assertRaises(PermissionDenied):
|
|
||||||
view(request, status.id)
|
|
||||||
self.assertFalse(mock.called)
|
|
||||||
|
|
||||||
status.refresh_from_db()
|
|
||||||
self.assertFalse(status.deleted)
|
|
||||||
|
|
||||||
def test_delete_and_redraft_invalid_status_type_generated_note(self, *_):
|
|
||||||
"""you can't redraft generated statuses"""
|
|
||||||
view = views.DeleteAndRedraft.as_view()
|
|
||||||
request = self.factory.post("")
|
|
||||||
request.user = self.local_user
|
|
||||||
with patch("bookwyrm.activitystreams.add_status_task.delay"):
|
|
||||||
status = models.GeneratedNote.objects.create(
|
|
||||||
content="hi", user=self.local_user
|
|
||||||
)
|
|
||||||
|
|
||||||
with patch("bookwyrm.activitystreams.remove_status_task.delay") as mock:
|
|
||||||
with self.assertRaises(PermissionDenied):
|
|
||||||
view(request, status.id)
|
|
||||||
self.assertFalse(mock.called)
|
|
||||||
|
|
||||||
status.refresh_from_db()
|
|
||||||
self.assertFalse(status.deleted)
|
|
||||||
|
|
||||||
def test_find_mentions(self, *_):
|
def test_find_mentions(self, *_):
|
||||||
"""detect and look up @ mentions of users"""
|
"""detect and look up @ mentions of users"""
|
||||||
user = models.User.objects.create_user(
|
user = models.User.objects.create_user(
|
||||||
|
@ -349,7 +298,7 @@ http://www.fish.com/"""
|
||||||
result = views.status.to_markdown(text)
|
result = views.status.to_markdown(text)
|
||||||
self.assertEqual(result, '<p><a href="http://fish.com">hi</a> ' "is rad</p>")
|
self.assertEqual(result, '<p><a href="http://fish.com">hi</a> ' "is rad</p>")
|
||||||
|
|
||||||
def test_handle_delete_status(self, mock, *_):
|
def test_delete_status(self, mock, *_):
|
||||||
"""marks a status as deleted"""
|
"""marks a status as deleted"""
|
||||||
view = views.DeleteStatus.as_view()
|
view = views.DeleteStatus.as_view()
|
||||||
with patch("bookwyrm.activitystreams.add_status_task.delay"):
|
with patch("bookwyrm.activitystreams.add_status_task.delay"):
|
||||||
|
@ -367,7 +316,7 @@ http://www.fish.com/"""
|
||||||
status.refresh_from_db()
|
status.refresh_from_db()
|
||||||
self.assertTrue(status.deleted)
|
self.assertTrue(status.deleted)
|
||||||
|
|
||||||
def test_handle_delete_status_permission_denied(self, *_):
|
def test_delete_status_permission_denied(self, *_):
|
||||||
"""marks a status as deleted"""
|
"""marks a status as deleted"""
|
||||||
view = views.DeleteStatus.as_view()
|
view = views.DeleteStatus.as_view()
|
||||||
with patch("bookwyrm.activitystreams.add_status_task.delay"):
|
with patch("bookwyrm.activitystreams.add_status_task.delay"):
|
||||||
|
@ -382,7 +331,7 @@ http://www.fish.com/"""
|
||||||
status.refresh_from_db()
|
status.refresh_from_db()
|
||||||
self.assertFalse(status.deleted)
|
self.assertFalse(status.deleted)
|
||||||
|
|
||||||
def test_handle_delete_status_moderator(self, mock, *_):
|
def test_delete_status_moderator(self, mock, *_):
|
||||||
"""marks a status as deleted"""
|
"""marks a status as deleted"""
|
||||||
view = views.DeleteStatus.as_view()
|
view = views.DeleteStatus.as_view()
|
||||||
with patch("bookwyrm.activitystreams.add_status_task.delay"):
|
with patch("bookwyrm.activitystreams.add_status_task.delay"):
|
||||||
|
@ -400,3 +349,75 @@ http://www.fish.com/"""
|
||||||
self.assertEqual(activity["object"]["type"], "Tombstone")
|
self.assertEqual(activity["object"]["type"], "Tombstone")
|
||||||
status.refresh_from_db()
|
status.refresh_from_db()
|
||||||
self.assertTrue(status.deleted)
|
self.assertTrue(status.deleted)
|
||||||
|
|
||||||
|
def test_edit_status_get(self, *_):
|
||||||
|
"""load the edit status view"""
|
||||||
|
view = views.EditStatus.as_view()
|
||||||
|
status = models.Comment.objects.create(
|
||||||
|
content="status", user=self.local_user, book=self.book
|
||||||
|
)
|
||||||
|
|
||||||
|
request = self.factory.get("")
|
||||||
|
request.user = self.local_user
|
||||||
|
result = view(request, status.id)
|
||||||
|
validate_html(result.render())
|
||||||
|
self.assertEqual(result.status_code, 200)
|
||||||
|
|
||||||
|
def test_edit_status_get_reply(self, *_):
|
||||||
|
"""load the edit status view"""
|
||||||
|
view = views.EditStatus.as_view()
|
||||||
|
parent = models.Comment.objects.create(
|
||||||
|
content="parent status", user=self.local_user, book=self.book
|
||||||
|
)
|
||||||
|
status = models.Status.objects.create(
|
||||||
|
content="reply", user=self.local_user, reply_parent=parent
|
||||||
|
)
|
||||||
|
|
||||||
|
request = self.factory.get("")
|
||||||
|
request.user = self.local_user
|
||||||
|
result = view(request, status.id)
|
||||||
|
validate_html(result.render())
|
||||||
|
self.assertEqual(result.status_code, 200)
|
||||||
|
|
||||||
|
def test_edit_status_success(self, mock, *_):
|
||||||
|
"""update an existing status"""
|
||||||
|
status = models.Status.objects.create(content="status", user=self.local_user)
|
||||||
|
self.assertIsNone(status.edited_date)
|
||||||
|
view = views.CreateStatus.as_view()
|
||||||
|
form = forms.CommentForm(
|
||||||
|
{
|
||||||
|
"content": "hi",
|
||||||
|
"user": self.local_user.id,
|
||||||
|
"book": self.book.id,
|
||||||
|
"privacy": "public",
|
||||||
|
}
|
||||||
|
)
|
||||||
|
request = self.factory.post("", form.data)
|
||||||
|
request.user = self.local_user
|
||||||
|
|
||||||
|
view(request, "comment", existing_status_id=status.id)
|
||||||
|
activity = json.loads(mock.call_args_list[1][0][1])
|
||||||
|
self.assertEqual(activity["type"], "Update")
|
||||||
|
self.assertEqual(activity["object"]["id"], status.remote_id)
|
||||||
|
|
||||||
|
status.refresh_from_db()
|
||||||
|
self.assertEqual(status.content, "<p>hi</p>")
|
||||||
|
self.assertIsNotNone(status.edited_date)
|
||||||
|
|
||||||
|
def test_edit_status_permission_denied(self, *_):
|
||||||
|
"""update an existing status"""
|
||||||
|
status = models.Status.objects.create(content="status", user=self.local_user)
|
||||||
|
view = views.CreateStatus.as_view()
|
||||||
|
form = forms.CommentForm(
|
||||||
|
{
|
||||||
|
"content": "hi",
|
||||||
|
"user": self.local_user.id,
|
||||||
|
"book": self.book.id,
|
||||||
|
"privacy": "public",
|
||||||
|
}
|
||||||
|
)
|
||||||
|
request = self.factory.post("", form.data)
|
||||||
|
request.user = self.remote_user
|
||||||
|
|
||||||
|
with self.assertRaises(PermissionDenied):
|
||||||
|
view(request, "comment", existing_status_id=status.id)
|
||||||
|
|
|
@ -342,6 +342,9 @@ urlpatterns = [
|
||||||
re_path(
|
re_path(
|
||||||
rf"{STATUS_PATH}/replies(.json)?/?$", views.Replies.as_view(), name="replies"
|
rf"{STATUS_PATH}/replies(.json)?/?$", views.Replies.as_view(), name="replies"
|
||||||
),
|
),
|
||||||
|
re_path(
|
||||||
|
r"^edit/(?P<status_id>\d+)/?$", views.EditStatus.as_view(), name="edit-status"
|
||||||
|
),
|
||||||
re_path(
|
re_path(
|
||||||
r"^post/?$",
|
r"^post/?$",
|
||||||
views.CreateStatus.as_view(),
|
views.CreateStatus.as_view(),
|
||||||
|
@ -352,16 +355,16 @@ urlpatterns = [
|
||||||
views.CreateStatus.as_view(),
|
views.CreateStatus.as_view(),
|
||||||
name="create-status",
|
name="create-status",
|
||||||
),
|
),
|
||||||
|
re_path(
|
||||||
|
r"^post/(?P<status_type>\w+)/(?P<existing_status_id>\d+)/?$",
|
||||||
|
views.CreateStatus.as_view(),
|
||||||
|
name="create-status",
|
||||||
|
),
|
||||||
re_path(
|
re_path(
|
||||||
r"^delete-status/(?P<status_id>\d+)/?$",
|
r"^delete-status/(?P<status_id>\d+)/?$",
|
||||||
views.DeleteStatus.as_view(),
|
views.DeleteStatus.as_view(),
|
||||||
name="delete-status",
|
name="delete-status",
|
||||||
),
|
),
|
||||||
re_path(
|
|
||||||
r"^redraft-status/(?P<status_id>\d+)/?$",
|
|
||||||
views.DeleteAndRedraft.as_view(),
|
|
||||||
name="redraft",
|
|
||||||
),
|
|
||||||
# interact
|
# interact
|
||||||
re_path(r"^favorite/(?P<status_id>\d+)/?$", views.Favorite.as_view(), name="fav"),
|
re_path(r"^favorite/(?P<status_id>\d+)/?$", views.Favorite.as_view(), name="fav"),
|
||||||
re_path(
|
re_path(
|
||||||
|
|
|
@ -70,7 +70,7 @@ from .search import Search
|
||||||
from .shelf import Shelf
|
from .shelf import Shelf
|
||||||
from .shelf import create_shelf, delete_shelf
|
from .shelf import create_shelf, delete_shelf
|
||||||
from .shelf import shelve, unshelve
|
from .shelf import shelve, unshelve
|
||||||
from .status import CreateStatus, DeleteStatus, DeleteAndRedraft, update_progress
|
from .status import CreateStatus, EditStatus, DeleteStatus, update_progress
|
||||||
from .status import edit_readthrough
|
from .status import edit_readthrough
|
||||||
from .updates import get_notification_count, get_unread_status_count
|
from .updates import get_notification_count, get_unread_status_count
|
||||||
from .user import User, Followers, Following, hide_suggestions
|
from .user import User, Followers, Following, hide_suggestions
|
||||||
|
|
|
@ -51,7 +51,7 @@ class Import(View):
|
||||||
elif source == "Storygraph":
|
elif source == "Storygraph":
|
||||||
importer = StorygraphImporter()
|
importer = StorygraphImporter()
|
||||||
else:
|
else:
|
||||||
# Default : GoodReads
|
# Default : Goodreads
|
||||||
importer = GoodreadsImporter()
|
importer = GoodreadsImporter()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -68,16 +68,30 @@ class Shelf(View):
|
||||||
deleted=False,
|
deleted=False,
|
||||||
).order_by("-published_date")
|
).order_by("-published_date")
|
||||||
|
|
||||||
|
reading = models.ReadThrough.objects
|
||||||
|
|
||||||
|
reading = reading.filter(user=user, book__id=OuterRef("id")).order_by(
|
||||||
|
"start_date"
|
||||||
|
)
|
||||||
|
|
||||||
books = books.annotate(
|
books = books.annotate(
|
||||||
rating=Subquery(reviews.values("rating")[:1]),
|
rating=Subquery(reviews.values("rating")[:1]),
|
||||||
shelved_date=F("shelfbook__shelved_date"),
|
shelved_date=F("shelfbook__shelved_date"),
|
||||||
|
start_date=Subquery(reading.values("start_date")[:1]),
|
||||||
|
finish_date=Subquery(reading.values("finish_date")[:1]),
|
||||||
|
author=Subquery(
|
||||||
|
models.Book.objects.filter(id=OuterRef("id")).values("authors__name")[
|
||||||
|
:1
|
||||||
|
]
|
||||||
|
),
|
||||||
).prefetch_related("authors")
|
).prefetch_related("authors")
|
||||||
|
|
||||||
|
books = sort_books(books, request.GET.get("sort"))
|
||||||
|
|
||||||
paginated = Paginator(
|
paginated = Paginator(
|
||||||
books.order_by("-shelfbook__updated_date"),
|
books,
|
||||||
PAGE_LENGTH,
|
PAGE_LENGTH,
|
||||||
)
|
)
|
||||||
|
|
||||||
page = paginated.get_page(request.GET.get("page"))
|
page = paginated.get_page(request.GET.get("page"))
|
||||||
data = {
|
data = {
|
||||||
"user": user,
|
"user": user,
|
||||||
|
@ -87,6 +101,7 @@ class Shelf(View):
|
||||||
"books": page,
|
"books": page,
|
||||||
"edit_form": forms.ShelfForm(instance=shelf if shelf_identifier else None),
|
"edit_form": forms.ShelfForm(instance=shelf if shelf_identifier else None),
|
||||||
"create_form": forms.ShelfForm(),
|
"create_form": forms.ShelfForm(),
|
||||||
|
"sort": request.GET.get("sort"),
|
||||||
"page_range": paginated.get_elided_page_range(
|
"page_range": paginated.get_elided_page_range(
|
||||||
page.number, on_each_side=2, on_ends=1
|
page.number, on_each_side=2, on_ends=1
|
||||||
),
|
),
|
||||||
|
@ -207,3 +222,23 @@ def unshelve(request):
|
||||||
|
|
||||||
shelf_book.delete()
|
shelf_book.delete()
|
||||||
return redirect(request.headers.get("Referer", "/"))
|
return redirect(request.headers.get("Referer", "/"))
|
||||||
|
|
||||||
|
|
||||||
|
def sort_books(books, sort):
|
||||||
|
"""Books in shelf sorting"""
|
||||||
|
sort_fields = [
|
||||||
|
"title",
|
||||||
|
"author",
|
||||||
|
"shelved_date",
|
||||||
|
"start_date",
|
||||||
|
"finish_date",
|
||||||
|
"rating",
|
||||||
|
]
|
||||||
|
|
||||||
|
if sort in sort_fields:
|
||||||
|
books = books.order_by(sort)
|
||||||
|
elif sort and sort[1:] in sort_fields:
|
||||||
|
books = books.order_by(F(sort[1:]).desc(nulls_last=True))
|
||||||
|
else:
|
||||||
|
books = books.order_by("-shelved_date")
|
||||||
|
return books
|
||||||
|
|
|
@ -8,6 +8,7 @@ from django.core.exceptions import ValidationError
|
||||||
from django.http import HttpResponse, HttpResponseBadRequest, Http404
|
from django.http import HttpResponse, HttpResponseBadRequest, Http404
|
||||||
from django.shortcuts import get_object_or_404, redirect
|
from django.shortcuts import get_object_or_404, redirect
|
||||||
from django.template.response import TemplateResponse
|
from django.template.response import TemplateResponse
|
||||||
|
from django.utils import timezone
|
||||||
from django.utils.decorators import method_decorator
|
from django.utils.decorators import method_decorator
|
||||||
from django.views import View
|
from django.views import View
|
||||||
from django.views.decorators.http import require_POST
|
from django.views.decorators.http import require_POST
|
||||||
|
@ -21,23 +22,55 @@ from .helpers import handle_remote_webfinger, is_api_request
|
||||||
from .helpers import load_date_in_user_tz_as_utc
|
from .helpers import load_date_in_user_tz_as_utc
|
||||||
|
|
||||||
|
|
||||||
|
# pylint: disable= no-self-use
|
||||||
|
@method_decorator(login_required, name="dispatch")
|
||||||
|
class EditStatus(View):
|
||||||
|
"""the view for *posting*"""
|
||||||
|
|
||||||
|
def get(self, request, status_id): # pylint: disable=unused-argument
|
||||||
|
"""load the edit panel"""
|
||||||
|
status = get_object_or_404(
|
||||||
|
models.Status.objects.select_subclasses(), id=status_id
|
||||||
|
)
|
||||||
|
status.raise_not_editable(request.user)
|
||||||
|
|
||||||
|
status_type = "reply" if status.reply_parent else status.status_type.lower()
|
||||||
|
data = {
|
||||||
|
"type": status_type,
|
||||||
|
"book": getattr(status, "book", None),
|
||||||
|
"draft": status,
|
||||||
|
}
|
||||||
|
return TemplateResponse(request, "compose.html", data)
|
||||||
|
|
||||||
|
|
||||||
# pylint: disable= no-self-use
|
# pylint: disable= no-self-use
|
||||||
@method_decorator(login_required, name="dispatch")
|
@method_decorator(login_required, name="dispatch")
|
||||||
class CreateStatus(View):
|
class CreateStatus(View):
|
||||||
"""the view for *posting*"""
|
"""the view for *posting*"""
|
||||||
|
|
||||||
def get(self, request, status_type): # pylint: disable=unused-argument
|
def get(self, request, status_type): # pylint: disable=unused-argument
|
||||||
"""compose view (used for delete-and-redraft)"""
|
"""compose view (...not used?)"""
|
||||||
book = get_object_or_404(models.Edition, id=request.GET.get("book"))
|
book = get_object_or_404(models.Edition, id=request.GET.get("book"))
|
||||||
data = {"book": book}
|
data = {"book": book}
|
||||||
return TemplateResponse(request, "compose.html", data)
|
return TemplateResponse(request, "compose.html", data)
|
||||||
|
|
||||||
def post(self, request, status_type):
|
def post(self, request, status_type, existing_status_id=None):
|
||||||
"""create status of whatever type"""
|
"""create status of whatever type"""
|
||||||
|
created = not existing_status_id
|
||||||
|
existing_status = None
|
||||||
|
if existing_status_id:
|
||||||
|
existing_status = get_object_or_404(
|
||||||
|
models.Status.objects.select_subclasses(), id=existing_status_id
|
||||||
|
)
|
||||||
|
existing_status.raise_not_editable(request.user)
|
||||||
|
existing_status.edited_date = timezone.now()
|
||||||
|
|
||||||
status_type = status_type[0].upper() + status_type[1:]
|
status_type = status_type[0].upper() + status_type[1:]
|
||||||
|
|
||||||
try:
|
try:
|
||||||
form = getattr(forms, f"{status_type}Form")(request.POST)
|
form = getattr(forms, f"{status_type}Form")(
|
||||||
|
request.POST, instance=existing_status
|
||||||
|
)
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
return HttpResponseBadRequest()
|
return HttpResponseBadRequest()
|
||||||
if not form.is_valid():
|
if not form.is_valid():
|
||||||
|
@ -46,6 +79,11 @@ class CreateStatus(View):
|
||||||
return redirect(request.headers.get("Referer", "/"))
|
return redirect(request.headers.get("Referer", "/"))
|
||||||
|
|
||||||
status = form.save(commit=False)
|
status = form.save(commit=False)
|
||||||
|
# save the plain, unformatted version of the status for future editing
|
||||||
|
status.raw_content = status.content
|
||||||
|
if hasattr(status, "quote"):
|
||||||
|
status.raw_quote = status.quote
|
||||||
|
|
||||||
if not status.sensitive and status.content_warning:
|
if not status.sensitive and status.content_warning:
|
||||||
# the cw text field remains populated when you click "remove"
|
# the cw text field remains populated when you click "remove"
|
||||||
status.content_warning = None
|
status.content_warning = None
|
||||||
|
@ -77,7 +115,7 @@ class CreateStatus(View):
|
||||||
if hasattr(status, "quote"):
|
if hasattr(status, "quote"):
|
||||||
status.quote = to_markdown(status.quote)
|
status.quote = to_markdown(status.quote)
|
||||||
|
|
||||||
status.save(created=True)
|
status.save(created=created)
|
||||||
|
|
||||||
# update a readthorugh, if needed
|
# update a readthorugh, if needed
|
||||||
try:
|
try:
|
||||||
|
@ -106,36 +144,6 @@ class DeleteStatus(View):
|
||||||
return redirect(request.headers.get("Referer", "/"))
|
return redirect(request.headers.get("Referer", "/"))
|
||||||
|
|
||||||
|
|
||||||
@method_decorator(login_required, name="dispatch")
|
|
||||||
class DeleteAndRedraft(View):
|
|
||||||
"""delete a status but let the user re-create it"""
|
|
||||||
|
|
||||||
def post(self, request, status_id):
|
|
||||||
"""delete and tombstone a status"""
|
|
||||||
status = get_object_or_404(
|
|
||||||
models.Status.objects.select_subclasses(), id=status_id
|
|
||||||
)
|
|
||||||
# don't let people redraft other people's statuses
|
|
||||||
status.raise_not_editable(request.user)
|
|
||||||
|
|
||||||
status_type = status.status_type.lower()
|
|
||||||
if status.reply_parent:
|
|
||||||
status_type = "reply"
|
|
||||||
|
|
||||||
data = {
|
|
||||||
"draft": status,
|
|
||||||
"type": status_type,
|
|
||||||
}
|
|
||||||
if hasattr(status, "book"):
|
|
||||||
data["book"] = status.book
|
|
||||||
elif status.mention_books:
|
|
||||||
data["book"] = status.mention_books.first()
|
|
||||||
|
|
||||||
# perform deletion
|
|
||||||
status.delete()
|
|
||||||
return TemplateResponse(request, "compose.html", data)
|
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@require_POST
|
@require_POST
|
||||||
def update_progress(request, book_id): # pylint: disable=unused-argument
|
def update_progress(request, book_id): # pylint: disable=unused-argument
|
||||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: 0.0.1\n"
|
"Project-Id-Version: 0.0.1\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-10-06 23:57+0000\n"
|
"POT-Creation-Date: 2021-10-15 22:03+0000\n"
|
||||||
"PO-Revision-Date: 2021-02-28 17:19-0800\n"
|
"PO-Revision-Date: 2021-02-28 17:19-0800\n"
|
||||||
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
|
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
|
||||||
"Language-Team: English <LL@li.org>\n"
|
"Language-Team: English <LL@li.org>\n"
|
||||||
|
@ -55,8 +55,8 @@ msgstr ""
|
||||||
msgid "Book Title"
|
msgid "Book Title"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/forms.py:328 bookwyrm/templates/shelf/shelf.html:134
|
#: bookwyrm/forms.py:328 bookwyrm/templates/shelf/shelf.html:136
|
||||||
#: bookwyrm/templates/shelf/shelf.html:165
|
#: bookwyrm/templates/shelf/shelf.html:168
|
||||||
#: bookwyrm/templates/snippets/create_status/review.html:33
|
#: bookwyrm/templates/snippets/create_status/review.html:33
|
||||||
msgid "Rating"
|
msgid "Rating"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -152,45 +152,49 @@ msgstr ""
|
||||||
msgid "A user with that username already exists."
|
msgid "A user with that username already exists."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/settings.py:117
|
#: bookwyrm/settings.py:118
|
||||||
msgid "Home Timeline"
|
msgid "Home Timeline"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/settings.py:117
|
#: bookwyrm/settings.py:118
|
||||||
msgid "Home"
|
msgid "Home"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/settings.py:118
|
#: bookwyrm/settings.py:119
|
||||||
msgid "Books Timeline"
|
msgid "Books Timeline"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/settings.py:118 bookwyrm/templates/search/layout.html:21
|
#: bookwyrm/settings.py:119 bookwyrm/templates/search/layout.html:21
|
||||||
#: bookwyrm/templates/search/layout.html:42
|
#: bookwyrm/templates/search/layout.html:42
|
||||||
#: bookwyrm/templates/user/layout.html:81
|
#: bookwyrm/templates/user/layout.html:81
|
||||||
msgid "Books"
|
msgid "Books"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/settings.py:164
|
#: bookwyrm/settings.py:165
|
||||||
msgid "English"
|
msgid "English"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/settings.py:165
|
#: bookwyrm/settings.py:166
|
||||||
msgid "Deutsch (German)"
|
msgid "Deutsch (German)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/settings.py:166
|
#: bookwyrm/settings.py:167
|
||||||
msgid "Español (Spanish)"
|
msgid "Español (Spanish)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/settings.py:167
|
#: bookwyrm/settings.py:168
|
||||||
msgid "Français (French)"
|
msgid "Français (French)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/settings.py:168
|
#: bookwyrm/settings.py:169
|
||||||
|
msgid "Português - Brasil (Brazilian Portuguese)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: bookwyrm/settings.py:170
|
||||||
msgid "简体中文 (Simplified Chinese)"
|
msgid "简体中文 (Simplified Chinese)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/settings.py:169
|
#: bookwyrm/settings.py:171
|
||||||
msgid "繁體中文 (Traditional Chinese)"
|
msgid "繁體中文 (Traditional Chinese)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -670,11 +674,6 @@ msgstr ""
|
||||||
msgid "Search editions"
|
msgid "Search editions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/publisher_info.html:21
|
|
||||||
#, python-format
|
|
||||||
msgid "%(format)s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: bookwyrm/templates/book/publisher_info.html:23
|
#: bookwyrm/templates/book/publisher_info.html:23
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(format)s, %(pages)s pages"
|
msgid "%(format)s, %(pages)s pages"
|
||||||
|
@ -754,7 +753,7 @@ msgid "Help"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/compose.html:5 bookwyrm/templates/compose.html:8
|
#: bookwyrm/templates/compose.html:5 bookwyrm/templates/compose.html:8
|
||||||
msgid "Compose status"
|
msgid "Edit status"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/confirm_email/confirm_email.html:4
|
#: bookwyrm/templates/confirm_email/confirm_email.html:4
|
||||||
|
@ -889,6 +888,26 @@ msgstr ""
|
||||||
msgid "All known users"
|
msgid "All known users"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: bookwyrm/templates/discover/card-header.html:9
|
||||||
|
#, python-format
|
||||||
|
msgid "<a href=\"%(user_path)s\">%(username)s</a> rated <a href=\"%(book_path)s\">%(book_title)s</a>"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: bookwyrm/templates/discover/card-header.html:13
|
||||||
|
#, python-format
|
||||||
|
msgid "<a href=\"%(user_path)s\">%(username)s</a> reviewed <a href=\"%(book_path)s\">%(book_title)s</a>"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: bookwyrm/templates/discover/card-header.html:17
|
||||||
|
#, python-format
|
||||||
|
msgid "<a href=\"%(user_path)s\">%(username)s</a> commented on <a href=\"%(book_path)s\">%(book_title)s</a>"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: bookwyrm/templates/discover/card-header.html:21
|
||||||
|
#, python-format
|
||||||
|
msgid "<a href=\"%(user_path)s\">%(username)s</a> quoted <a href=\"%(book_path)s\">%(book_title)s</a>"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/discover/discover.html:4
|
#: bookwyrm/templates/discover/discover.html:4
|
||||||
#: bookwyrm/templates/discover/discover.html:10
|
#: bookwyrm/templates/discover/discover.html:10
|
||||||
#: bookwyrm/templates/layout.html:78
|
#: bookwyrm/templates/layout.html:78
|
||||||
|
@ -900,28 +919,8 @@ msgstr ""
|
||||||
msgid "See what's new in the local %(site_name)s community"
|
msgid "See what's new in the local %(site_name)s community"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/discover/large-book.html:46
|
|
||||||
#: bookwyrm/templates/discover/small-book.html:32
|
|
||||||
msgid "rated"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: bookwyrm/templates/discover/large-book.html:48
|
|
||||||
#: bookwyrm/templates/discover/small-book.html:34
|
|
||||||
msgid "reviewed"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: bookwyrm/templates/discover/large-book.html:50
|
|
||||||
#: bookwyrm/templates/discover/small-book.html:36
|
|
||||||
msgid "commented on"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: bookwyrm/templates/discover/large-book.html:52
|
#: bookwyrm/templates/discover/large-book.html:52
|
||||||
#: bookwyrm/templates/discover/small-book.html:38
|
#: bookwyrm/templates/discover/small-book.html:36
|
||||||
msgid "quoted"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: bookwyrm/templates/discover/large-book.html:68
|
|
||||||
#: bookwyrm/templates/discover/small-book.html:52
|
|
||||||
msgid "View status"
|
msgid "View status"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -975,7 +974,7 @@ msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/email/invite/html_content.html:15
|
#: bookwyrm/templates/email/invite/html_content.html:15
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Learn more <a href=\"https://%(domain)s%(about_path)s\">about this instance</a>."
|
msgid "Learn more <a href=\"https://%(domain)s%(about_path)s\">about %(site_name)s</a>."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/email/invite/text_content.html:4
|
#: bookwyrm/templates/email/invite/text_content.html:4
|
||||||
|
@ -984,7 +983,8 @@ msgid "You're invited to join %(site_name)s! Click the link below to create an a
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/email/invite/text_content.html:8
|
#: bookwyrm/templates/email/invite/text_content.html:8
|
||||||
msgid "Learn more about this instance:"
|
#, python-format
|
||||||
|
msgid "Learn more about %(site_name)s:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/email/password_reset/html_content.html:6
|
#: bookwyrm/templates/email/password_reset/html_content.html:6
|
||||||
|
@ -1324,13 +1324,13 @@ msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/import/import_status.html:122
|
#: bookwyrm/templates/import/import_status.html:122
|
||||||
#: bookwyrm/templates/shelf/shelf.html:128
|
#: bookwyrm/templates/shelf/shelf.html:128
|
||||||
#: bookwyrm/templates/shelf/shelf.html:148
|
#: bookwyrm/templates/shelf/shelf.html:150
|
||||||
msgid "Title"
|
msgid "Title"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/import/import_status.html:125
|
#: bookwyrm/templates/import/import_status.html:125
|
||||||
#: bookwyrm/templates/shelf/shelf.html:129
|
#: bookwyrm/templates/shelf/shelf.html:129
|
||||||
#: bookwyrm/templates/shelf/shelf.html:151
|
#: bookwyrm/templates/shelf/shelf.html:153
|
||||||
msgid "Author"
|
msgid "Author"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -1339,7 +1339,7 @@ msgid "Imported"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/import/tooltip.html:6
|
#: bookwyrm/templates/import/tooltip.html:6
|
||||||
msgid "You can download your GoodReads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener\">Import/Export page</a> of your GoodReads account."
|
msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener\">Import/Export page</a> of your Goodreads account."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/invite.html:4 bookwyrm/templates/invite.html:8
|
#: bookwyrm/templates/invite.html:4 bookwyrm/templates/invite.html:8
|
||||||
|
@ -1355,7 +1355,7 @@ msgstr ""
|
||||||
msgid "Sorry! This invite code is no longer valid."
|
msgid "Sorry! This invite code is no longer valid."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/landing/about.html:7
|
#: bookwyrm/templates/landing/about.html:7 bookwyrm/templates/layout.html:230
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "About %(site_name)s"
|
msgid "About %(site_name)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -1486,10 +1486,6 @@ msgstr ""
|
||||||
msgid "Error posting status"
|
msgid "Error posting status"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/layout.html:230
|
|
||||||
msgid "About this instance"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: bookwyrm/templates/layout.html:234
|
#: bookwyrm/templates/layout.html:234
|
||||||
msgid "Contact site admin"
|
msgid "Contact site admin"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -1734,22 +1730,22 @@ msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/notifications/items/fav.html:19
|
#: bookwyrm/templates/notifications/items/fav.html:19
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "favorited your <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>"
|
msgid "liked your <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/notifications/items/fav.html:25
|
#: bookwyrm/templates/notifications/items/fav.html:25
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "favorited your <a href=\"%(related_path)s\">comment on<em>%(book_title)s</em></a>"
|
msgid "liked your <a href=\"%(related_path)s\">comment on<em>%(book_title)s</em></a>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/notifications/items/fav.html:31
|
#: bookwyrm/templates/notifications/items/fav.html:31
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "favorited your <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>"
|
msgid "liked your <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/notifications/items/fav.html:37
|
#: bookwyrm/templates/notifications/items/fav.html:37
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "favorited your <a href=\"%(related_path)s\">status</a>"
|
msgid "liked your <a href=\"%(related_path)s\">status</a>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/notifications/items/follow.html:15
|
#: bookwyrm/templates/notifications/items/follow.html:15
|
||||||
|
@ -2298,6 +2294,7 @@ msgid "Notes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/federation/instance.html:75
|
#: bookwyrm/templates/settings/federation/instance.html:75
|
||||||
|
#: bookwyrm/templates/snippets/status/status_options.html:24
|
||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -2637,7 +2634,7 @@ msgid "Short description:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/site.html:37
|
#: bookwyrm/templates/settings/site.html:37
|
||||||
msgid "Used when the instance is previewed on joinbookwyrm.com. Does not support html or markdown."
|
msgid "Used when the instance is previewed on joinbookwyrm.com. Does not support HTML or Markdown."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/site.html:41
|
#: bookwyrm/templates/settings/site.html:41
|
||||||
|
@ -2812,7 +2809,7 @@ msgid "Permanently deleted"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/users/user_moderation_actions.html:13
|
#: bookwyrm/templates/settings/users/user_moderation_actions.html:13
|
||||||
#: bookwyrm/templates/snippets/status/status_options.html:35
|
#: bookwyrm/templates/snippets/status/status_options.html:32
|
||||||
#: bookwyrm/templates/snippets/user_options.html:13
|
#: bookwyrm/templates/snippets/user_options.html:13
|
||||||
msgid "Send direct message"
|
msgid "Send direct message"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -2865,22 +2862,22 @@ msgstr ""
|
||||||
msgid "Delete shelf"
|
msgid "Delete shelf"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/shelf/shelf.html:130
|
#: bookwyrm/templates/shelf/shelf.html:132
|
||||||
#: bookwyrm/templates/shelf/shelf.html:154
|
#: bookwyrm/templates/shelf/shelf.html:158
|
||||||
msgid "Shelved"
|
msgid "Shelved"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/shelf/shelf.html:131
|
#: bookwyrm/templates/shelf/shelf.html:133
|
||||||
#: bookwyrm/templates/shelf/shelf.html:158
|
#: bookwyrm/templates/shelf/shelf.html:161
|
||||||
msgid "Started"
|
msgid "Started"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/shelf/shelf.html:132
|
#: bookwyrm/templates/shelf/shelf.html:134
|
||||||
#: bookwyrm/templates/shelf/shelf.html:161
|
#: bookwyrm/templates/shelf/shelf.html:164
|
||||||
msgid "Finished"
|
msgid "Finished"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/shelf/shelf.html:187
|
#: bookwyrm/templates/shelf/shelf.html:190
|
||||||
msgid "This shelf is empty."
|
msgid "This shelf is empty."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -2927,22 +2924,22 @@ msgstr ""
|
||||||
msgid "Some thoughts on the book"
|
msgid "Some thoughts on the book"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/create_status/comment.html:26
|
#: bookwyrm/templates/snippets/create_status/comment.html:27
|
||||||
#: bookwyrm/templates/snippets/reading_modals/progress_update_modal.html:15
|
#: bookwyrm/templates/snippets/reading_modals/progress_update_modal.html:15
|
||||||
msgid "Progress:"
|
msgid "Progress:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/create_status/comment.html:52
|
#: bookwyrm/templates/snippets/create_status/comment.html:53
|
||||||
#: bookwyrm/templates/snippets/progress_field.html:18
|
#: bookwyrm/templates/snippets/progress_field.html:18
|
||||||
msgid "pages"
|
msgid "pages"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/create_status/comment.html:58
|
#: bookwyrm/templates/snippets/create_status/comment.html:59
|
||||||
#: bookwyrm/templates/snippets/progress_field.html:23
|
#: bookwyrm/templates/snippets/progress_field.html:23
|
||||||
msgid "percent"
|
msgid "percent"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/create_status/comment.html:65
|
#: bookwyrm/templates/snippets/create_status/comment.html:66
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "of %(pages)s pages"
|
msgid "of %(pages)s pages"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -2970,7 +2967,7 @@ msgstr ""
|
||||||
msgid "Include spoiler alert"
|
msgid "Include spoiler alert"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/create_status/layout.html:41
|
#: bookwyrm/templates/snippets/create_status/layout.html:48
|
||||||
#: bookwyrm/templates/snippets/reading_modals/form.html:7
|
#: bookwyrm/templates/snippets/reading_modals/form.html:7
|
||||||
msgid "Comment:"
|
msgid "Comment:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -3164,12 +3161,12 @@ msgstr ""
|
||||||
msgid "%(username)s has read <a href=\"%(path)s\">%(read_count)s of %(goal_count)s books</a>."
|
msgid "%(username)s has read <a href=\"%(path)s\">%(read_count)s of %(goal_count)s books</a>."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/page_text.html:4
|
#: bookwyrm/templates/snippets/page_text.html:8
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "page %(page)s of %(total_pages)s"
|
msgid "page %(page)s of %(total_pages)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/page_text.html:6
|
#: bookwyrm/templates/snippets/page_text.html:14
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "page %(page)s"
|
msgid "page %(page)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -3330,6 +3327,11 @@ msgstr ""
|
||||||
msgid "Hide status"
|
msgid "Hide status"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: bookwyrm/templates/snippets/status/header.html:45
|
||||||
|
#, python-format
|
||||||
|
msgid "edited %(date)s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/status/headers/comment.html:2
|
#: bookwyrm/templates/snippets/status/headers/comment.html:2
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "commented on <a href=\"%(book_path)s\">%(book)s</a>"
|
msgid "commented on <a href=\"%(book_path)s\">%(book)s</a>"
|
||||||
|
@ -3394,10 +3396,6 @@ msgstr ""
|
||||||
msgid "More options"
|
msgid "More options"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/status/status_options.html:26
|
|
||||||
msgid "Delete & re-draft"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/suggested_users.html:16
|
#: bookwyrm/templates/snippets/suggested_users.html:16
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(mutuals)s follower you follow"
|
msgid "%(mutuals)s follower you follow"
|
||||||
|
|
Binary file not shown.
File diff suppressed because it is too large
Load diff
BIN
locale/es_ES/LC_MESSAGES/django.mo
Normal file
BIN
locale/es_ES/LC_MESSAGES/django.mo
Normal file
Binary file not shown.
|
@ -2,7 +2,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: bookwyrm\n"
|
"Project-Id-Version: bookwyrm\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-10-06 23:57+0000\n"
|
"POT-Creation-Date: 2021-10-15 22:03+0000\n"
|
||||||
"PO-Revision-Date: 2021-10-08 00:04\n"
|
"PO-Revision-Date: 2021-10-08 00:04\n"
|
||||||
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
|
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
|
||||||
"Language-Team: Spanish\n"
|
"Language-Team: Spanish\n"
|
||||||
|
@ -54,8 +54,8 @@ msgstr "Orden de la lista"
|
||||||
msgid "Book Title"
|
msgid "Book Title"
|
||||||
msgstr "Título"
|
msgstr "Título"
|
||||||
|
|
||||||
#: bookwyrm/forms.py:328 bookwyrm/templates/shelf/shelf.html:134
|
#: bookwyrm/forms.py:328 bookwyrm/templates/shelf/shelf.html:136
|
||||||
#: bookwyrm/templates/shelf/shelf.html:165
|
#: bookwyrm/templates/shelf/shelf.html:168
|
||||||
#: bookwyrm/templates/snippets/create_status/review.html:33
|
#: bookwyrm/templates/snippets/create_status/review.html:33
|
||||||
msgid "Rating"
|
msgid "Rating"
|
||||||
msgstr "Calificación"
|
msgstr "Calificación"
|
||||||
|
@ -151,45 +151,49 @@ msgstr "nombre de usuario"
|
||||||
msgid "A user with that username already exists."
|
msgid "A user with that username already exists."
|
||||||
msgstr "Ya existe un usuario con ese nombre."
|
msgstr "Ya existe un usuario con ese nombre."
|
||||||
|
|
||||||
#: bookwyrm/settings.py:117
|
#: bookwyrm/settings.py:118
|
||||||
msgid "Home Timeline"
|
msgid "Home Timeline"
|
||||||
msgstr "Línea temporal de hogar"
|
msgstr "Línea temporal de hogar"
|
||||||
|
|
||||||
#: bookwyrm/settings.py:117
|
#: bookwyrm/settings.py:118
|
||||||
msgid "Home"
|
msgid "Home"
|
||||||
msgstr "Hogar"
|
msgstr "Hogar"
|
||||||
|
|
||||||
#: bookwyrm/settings.py:118
|
#: bookwyrm/settings.py:119
|
||||||
msgid "Books Timeline"
|
msgid "Books Timeline"
|
||||||
msgstr "Línea temporal de libros"
|
msgstr "Línea temporal de libros"
|
||||||
|
|
||||||
#: bookwyrm/settings.py:118 bookwyrm/templates/search/layout.html:21
|
#: bookwyrm/settings.py:119 bookwyrm/templates/search/layout.html:21
|
||||||
#: bookwyrm/templates/search/layout.html:42
|
#: bookwyrm/templates/search/layout.html:42
|
||||||
#: bookwyrm/templates/user/layout.html:81
|
#: bookwyrm/templates/user/layout.html:81
|
||||||
msgid "Books"
|
msgid "Books"
|
||||||
msgstr "Libros"
|
msgstr "Libros"
|
||||||
|
|
||||||
#: bookwyrm/settings.py:164
|
#: bookwyrm/settings.py:165
|
||||||
msgid "English"
|
msgid "English"
|
||||||
msgstr "Inglés"
|
msgstr "Inglés"
|
||||||
|
|
||||||
#: bookwyrm/settings.py:165
|
#: bookwyrm/settings.py:166
|
||||||
msgid "Deutsch (German)"
|
msgid "Deutsch (German)"
|
||||||
msgstr "Deutsch (Alemán)"
|
msgstr "Deutsch (Alemán)"
|
||||||
|
|
||||||
#: bookwyrm/settings.py:166
|
#: bookwyrm/settings.py:167
|
||||||
msgid "Español (Spanish)"
|
msgid "Español (Spanish)"
|
||||||
msgstr "Español"
|
msgstr "Español"
|
||||||
|
|
||||||
#: bookwyrm/settings.py:167
|
#: bookwyrm/settings.py:168
|
||||||
msgid "Français (French)"
|
msgid "Français (French)"
|
||||||
msgstr "Français (Francés)"
|
msgstr "Français (Francés)"
|
||||||
|
|
||||||
#: bookwyrm/settings.py:168
|
#: bookwyrm/settings.py:169
|
||||||
|
msgid "Português - Brasil (Brazilian Portuguese)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: bookwyrm/settings.py:170
|
||||||
msgid "简体中文 (Simplified Chinese)"
|
msgid "简体中文 (Simplified Chinese)"
|
||||||
msgstr "简体中文 (Chino simplificado)"
|
msgstr "简体中文 (Chino simplificado)"
|
||||||
|
|
||||||
#: bookwyrm/settings.py:169
|
#: bookwyrm/settings.py:171
|
||||||
msgid "繁體中文 (Traditional Chinese)"
|
msgid "繁體中文 (Traditional Chinese)"
|
||||||
msgstr "繁體中文 (Chino tradicional)"
|
msgstr "繁體中文 (Chino tradicional)"
|
||||||
|
|
||||||
|
@ -669,11 +673,6 @@ msgstr "Idioma:"
|
||||||
msgid "Search editions"
|
msgid "Search editions"
|
||||||
msgstr "Buscar ediciones"
|
msgstr "Buscar ediciones"
|
||||||
|
|
||||||
#: bookwyrm/templates/book/publisher_info.html:21
|
|
||||||
#, python-format
|
|
||||||
msgid "%(format)s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: bookwyrm/templates/book/publisher_info.html:23
|
#: bookwyrm/templates/book/publisher_info.html:23
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(format)s, %(pages)s pages"
|
msgid "%(format)s, %(pages)s pages"
|
||||||
|
@ -753,8 +752,10 @@ msgid "Help"
|
||||||
msgstr "Ayuda"
|
msgstr "Ayuda"
|
||||||
|
|
||||||
#: bookwyrm/templates/compose.html:5 bookwyrm/templates/compose.html:8
|
#: bookwyrm/templates/compose.html:5 bookwyrm/templates/compose.html:8
|
||||||
msgid "Compose status"
|
#, fuzzy
|
||||||
msgstr "Componer status"
|
#| msgid "View status"
|
||||||
|
msgid "Edit status"
|
||||||
|
msgstr "Ver status"
|
||||||
|
|
||||||
#: bookwyrm/templates/confirm_email/confirm_email.html:4
|
#: bookwyrm/templates/confirm_email/confirm_email.html:4
|
||||||
msgid "Confirm email"
|
msgid "Confirm email"
|
||||||
|
@ -888,6 +889,30 @@ msgstr "Usuarios de BookWyrm"
|
||||||
msgid "All known users"
|
msgid "All known users"
|
||||||
msgstr "Todos los usuarios conocidos"
|
msgstr "Todos los usuarios conocidos"
|
||||||
|
|
||||||
|
#: bookwyrm/templates/discover/card-header.html:9
|
||||||
|
#, fuzzy, python-format
|
||||||
|
#| msgid "<a href=\"%(user_path)s\">%(username)s</a> wants to read <a href=\"%(book_path)s\">%(book)s</a>"
|
||||||
|
msgid "<a href=\"%(user_path)s\">%(username)s</a> rated <a href=\"%(book_path)s\">%(book_title)s</a>"
|
||||||
|
msgstr "<a href=\"%(user_path)s\">%(username)s</a> quiere leer <a href=\"%(book_path)s\">%(book)s</a>"
|
||||||
|
|
||||||
|
#: bookwyrm/templates/discover/card-header.html:13
|
||||||
|
#, fuzzy, python-format
|
||||||
|
#| msgid "<a href=\"%(user_path)s\">%(username)s</a> wants to read <a href=\"%(book_path)s\">%(book)s</a>"
|
||||||
|
msgid "<a href=\"%(user_path)s\">%(username)s</a> reviewed <a href=\"%(book_path)s\">%(book_title)s</a>"
|
||||||
|
msgstr "<a href=\"%(user_path)s\">%(username)s</a> quiere leer <a href=\"%(book_path)s\">%(book)s</a>"
|
||||||
|
|
||||||
|
#: bookwyrm/templates/discover/card-header.html:17
|
||||||
|
#, fuzzy, python-format
|
||||||
|
#| msgid "<a href=\"%(user_path)s\">%(username)s</a> wants to read <a href=\"%(book_path)s\">%(book)s</a>"
|
||||||
|
msgid "<a href=\"%(user_path)s\">%(username)s</a> commented on <a href=\"%(book_path)s\">%(book_title)s</a>"
|
||||||
|
msgstr "<a href=\"%(user_path)s\">%(username)s</a> quiere leer <a href=\"%(book_path)s\">%(book)s</a>"
|
||||||
|
|
||||||
|
#: bookwyrm/templates/discover/card-header.html:21
|
||||||
|
#, fuzzy, python-format
|
||||||
|
#| msgid "<a href=\"%(user_path)s\">%(username)s</a> wants to read <a href=\"%(book_path)s\">%(book)s</a>"
|
||||||
|
msgid "<a href=\"%(user_path)s\">%(username)s</a> quoted <a href=\"%(book_path)s\">%(book_title)s</a>"
|
||||||
|
msgstr "<a href=\"%(user_path)s\">%(username)s</a> quiere leer <a href=\"%(book_path)s\">%(book)s</a>"
|
||||||
|
|
||||||
#: bookwyrm/templates/discover/discover.html:4
|
#: bookwyrm/templates/discover/discover.html:4
|
||||||
#: bookwyrm/templates/discover/discover.html:10
|
#: bookwyrm/templates/discover/discover.html:10
|
||||||
#: bookwyrm/templates/layout.html:78
|
#: bookwyrm/templates/layout.html:78
|
||||||
|
@ -899,28 +924,8 @@ msgstr "Descubrir"
|
||||||
msgid "See what's new in the local %(site_name)s community"
|
msgid "See what's new in the local %(site_name)s community"
|
||||||
msgstr "Ver que es nuevo en la comunidad local de %(site_name)s"
|
msgstr "Ver que es nuevo en la comunidad local de %(site_name)s"
|
||||||
|
|
||||||
#: bookwyrm/templates/discover/large-book.html:46
|
|
||||||
#: bookwyrm/templates/discover/small-book.html:32
|
|
||||||
msgid "rated"
|
|
||||||
msgstr "calificó"
|
|
||||||
|
|
||||||
#: bookwyrm/templates/discover/large-book.html:48
|
|
||||||
#: bookwyrm/templates/discover/small-book.html:34
|
|
||||||
msgid "reviewed"
|
|
||||||
msgstr "reseñó"
|
|
||||||
|
|
||||||
#: bookwyrm/templates/discover/large-book.html:50
|
|
||||||
#: bookwyrm/templates/discover/small-book.html:36
|
|
||||||
msgid "commented on"
|
|
||||||
msgstr "comentó en"
|
|
||||||
|
|
||||||
#: bookwyrm/templates/discover/large-book.html:52
|
#: bookwyrm/templates/discover/large-book.html:52
|
||||||
#: bookwyrm/templates/discover/small-book.html:38
|
#: bookwyrm/templates/discover/small-book.html:36
|
||||||
msgid "quoted"
|
|
||||||
msgstr "citó"
|
|
||||||
|
|
||||||
#: bookwyrm/templates/discover/large-book.html:68
|
|
||||||
#: bookwyrm/templates/discover/small-book.html:52
|
|
||||||
msgid "View status"
|
msgid "View status"
|
||||||
msgstr "Ver status"
|
msgstr "Ver status"
|
||||||
|
|
||||||
|
@ -973,8 +978,9 @@ msgid "Join Now"
|
||||||
msgstr "Únete ahora"
|
msgstr "Únete ahora"
|
||||||
|
|
||||||
#: bookwyrm/templates/email/invite/html_content.html:15
|
#: bookwyrm/templates/email/invite/html_content.html:15
|
||||||
#, python-format
|
#, fuzzy, python-format
|
||||||
msgid "Learn more <a href=\"https://%(domain)s%(about_path)s\">about this instance</a>."
|
#| msgid "Learn more <a href=\"https://%(domain)s%(about_path)s\">about this instance</a>."
|
||||||
|
msgid "Learn more <a href=\"https://%(domain)s%(about_path)s\">about %(site_name)s</a>."
|
||||||
msgstr "Aprenda más <a href=\"https://%(domain)s%(about_path)s\">sobre esta instancia</a>."
|
msgstr "Aprenda más <a href=\"https://%(domain)s%(about_path)s\">sobre esta instancia</a>."
|
||||||
|
|
||||||
#: bookwyrm/templates/email/invite/text_content.html:4
|
#: bookwyrm/templates/email/invite/text_content.html:4
|
||||||
|
@ -983,7 +989,9 @@ msgid "You're invited to join %(site_name)s! Click the link below to create an a
|
||||||
msgstr "Estás invitado a unirte con %(site_name)s! Haz clic en el enlace a continuación para crear una cuenta."
|
msgstr "Estás invitado a unirte con %(site_name)s! Haz clic en el enlace a continuación para crear una cuenta."
|
||||||
|
|
||||||
#: bookwyrm/templates/email/invite/text_content.html:8
|
#: bookwyrm/templates/email/invite/text_content.html:8
|
||||||
msgid "Learn more about this instance:"
|
#, fuzzy, python-format
|
||||||
|
#| msgid "Learn more about this instance:"
|
||||||
|
msgid "Learn more about %(site_name)s:"
|
||||||
msgstr "Aprende más sobre esta intancia:"
|
msgstr "Aprende más sobre esta intancia:"
|
||||||
|
|
||||||
#: bookwyrm/templates/email/password_reset/html_content.html:6
|
#: bookwyrm/templates/email/password_reset/html_content.html:6
|
||||||
|
@ -1323,13 +1331,13 @@ msgstr "Libro"
|
||||||
|
|
||||||
#: bookwyrm/templates/import/import_status.html:122
|
#: bookwyrm/templates/import/import_status.html:122
|
||||||
#: bookwyrm/templates/shelf/shelf.html:128
|
#: bookwyrm/templates/shelf/shelf.html:128
|
||||||
#: bookwyrm/templates/shelf/shelf.html:148
|
#: bookwyrm/templates/shelf/shelf.html:150
|
||||||
msgid "Title"
|
msgid "Title"
|
||||||
msgstr "Título"
|
msgstr "Título"
|
||||||
|
|
||||||
#: bookwyrm/templates/import/import_status.html:125
|
#: bookwyrm/templates/import/import_status.html:125
|
||||||
#: bookwyrm/templates/shelf/shelf.html:129
|
#: bookwyrm/templates/shelf/shelf.html:129
|
||||||
#: bookwyrm/templates/shelf/shelf.html:151
|
#: bookwyrm/templates/shelf/shelf.html:153
|
||||||
msgid "Author"
|
msgid "Author"
|
||||||
msgstr "Autor/Autora"
|
msgstr "Autor/Autora"
|
||||||
|
|
||||||
|
@ -1338,7 +1346,9 @@ msgid "Imported"
|
||||||
msgstr "Importado"
|
msgstr "Importado"
|
||||||
|
|
||||||
#: bookwyrm/templates/import/tooltip.html:6
|
#: bookwyrm/templates/import/tooltip.html:6
|
||||||
msgid "You can download your GoodReads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener\">Import/Export page</a> of your GoodReads account."
|
#, fuzzy
|
||||||
|
#| msgid "You can download your GoodReads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener\">Import/Export page</a> of your GoodReads account."
|
||||||
|
msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener\">Import/Export page</a> of your Goodreads account."
|
||||||
msgstr "Puedes descargar tus datos de GoodReads de la <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener\">Página de Exportación/Importación</a> de tu cuenta de GoodReads."
|
msgstr "Puedes descargar tus datos de GoodReads de la <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener\">Página de Exportación/Importación</a> de tu cuenta de GoodReads."
|
||||||
|
|
||||||
#: bookwyrm/templates/invite.html:4 bookwyrm/templates/invite.html:8
|
#: bookwyrm/templates/invite.html:4 bookwyrm/templates/invite.html:8
|
||||||
|
@ -1354,7 +1364,7 @@ msgstr "Permiso denegado"
|
||||||
msgid "Sorry! This invite code is no longer valid."
|
msgid "Sorry! This invite code is no longer valid."
|
||||||
msgstr "¡Disculpa! Este código de invitación no queda válido."
|
msgstr "¡Disculpa! Este código de invitación no queda válido."
|
||||||
|
|
||||||
#: bookwyrm/templates/landing/about.html:7
|
#: bookwyrm/templates/landing/about.html:7 bookwyrm/templates/layout.html:230
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "About %(site_name)s"
|
msgid "About %(site_name)s"
|
||||||
msgstr "Sobre %(site_name)s"
|
msgstr "Sobre %(site_name)s"
|
||||||
|
@ -1485,10 +1495,6 @@ msgstr "Status publicado exitosamente"
|
||||||
msgid "Error posting status"
|
msgid "Error posting status"
|
||||||
msgstr "Error en publicar status"
|
msgstr "Error en publicar status"
|
||||||
|
|
||||||
#: bookwyrm/templates/layout.html:230
|
|
||||||
msgid "About this instance"
|
|
||||||
msgstr "Sobre esta instancia"
|
|
||||||
|
|
||||||
#: bookwyrm/templates/layout.html:234
|
#: bookwyrm/templates/layout.html:234
|
||||||
msgid "Contact site admin"
|
msgid "Contact site admin"
|
||||||
msgstr "Contactarse con administradores del sitio"
|
msgstr "Contactarse con administradores del sitio"
|
||||||
|
@ -1732,23 +1738,27 @@ msgid "boosted your <a href=\"%(related_path)s\">status</a>"
|
||||||
msgstr "respaldó tu <a href=\"%(related_path)s\">status</a>"
|
msgstr "respaldó tu <a href=\"%(related_path)s\">status</a>"
|
||||||
|
|
||||||
#: bookwyrm/templates/notifications/items/fav.html:19
|
#: bookwyrm/templates/notifications/items/fav.html:19
|
||||||
#, python-format
|
#, fuzzy, python-format
|
||||||
msgid "favorited your <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>"
|
#| msgid "favorited your <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>"
|
||||||
|
msgid "liked your <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>"
|
||||||
msgstr "le gustó tu <a href=\"%(related_path)s\">reseña de <em>%(book_title)s</em></a>"
|
msgstr "le gustó tu <a href=\"%(related_path)s\">reseña de <em>%(book_title)s</em></a>"
|
||||||
|
|
||||||
#: bookwyrm/templates/notifications/items/fav.html:25
|
#: bookwyrm/templates/notifications/items/fav.html:25
|
||||||
#, python-format
|
#, fuzzy, python-format
|
||||||
msgid "favorited your <a href=\"%(related_path)s\">comment on<em>%(book_title)s</em></a>"
|
#| msgid "boosted your <a href=\"%(related_path)s\">comment on<em>%(book_title)s</em></a>"
|
||||||
msgstr ""
|
msgid "liked your <a href=\"%(related_path)s\">comment on<em>%(book_title)s</em></a>"
|
||||||
|
msgstr "respaldó tu <a href=\"%(related_path)s\">comentario en<em>%(book_title)s</em></a>"
|
||||||
|
|
||||||
#: bookwyrm/templates/notifications/items/fav.html:31
|
#: bookwyrm/templates/notifications/items/fav.html:31
|
||||||
#, python-format
|
#, fuzzy, python-format
|
||||||
msgid "favorited your <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>"
|
#| msgid "favorited your <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>"
|
||||||
|
msgid "liked your <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>"
|
||||||
msgstr "le gustó tu <a href=\"%(related_path)s\">cita de <em>%(book_title)s</em></a>"
|
msgstr "le gustó tu <a href=\"%(related_path)s\">cita de <em>%(book_title)s</em></a>"
|
||||||
|
|
||||||
#: bookwyrm/templates/notifications/items/fav.html:37
|
#: bookwyrm/templates/notifications/items/fav.html:37
|
||||||
#, python-format
|
#, fuzzy, python-format
|
||||||
msgid "favorited your <a href=\"%(related_path)s\">status</a>"
|
#| msgid "favorited your <a href=\"%(related_path)s\">status</a>"
|
||||||
|
msgid "liked your <a href=\"%(related_path)s\">status</a>"
|
||||||
msgstr "le gustó tu <a href=\"%(related_path)s\">status</a>"
|
msgstr "le gustó tu <a href=\"%(related_path)s\">status</a>"
|
||||||
|
|
||||||
#: bookwyrm/templates/notifications/items/follow.html:15
|
#: bookwyrm/templates/notifications/items/follow.html:15
|
||||||
|
@ -2297,6 +2307,7 @@ msgid "Notes"
|
||||||
msgstr "Notas"
|
msgstr "Notas"
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/federation/instance.html:75
|
#: bookwyrm/templates/settings/federation/instance.html:75
|
||||||
|
#: bookwyrm/templates/snippets/status/status_options.html:24
|
||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr "Editar"
|
msgstr "Editar"
|
||||||
|
|
||||||
|
@ -2636,7 +2647,9 @@ msgid "Short description:"
|
||||||
msgstr "Descripción corta:"
|
msgstr "Descripción corta:"
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/site.html:37
|
#: bookwyrm/templates/settings/site.html:37
|
||||||
msgid "Used when the instance is previewed on joinbookwyrm.com. Does not support html or markdown."
|
#, fuzzy
|
||||||
|
#| msgid "Used when the instance is previewed on joinbookwyrm.com. Does not support html or markdown."
|
||||||
|
msgid "Used when the instance is previewed on joinbookwyrm.com. Does not support HTML or Markdown."
|
||||||
msgstr "Utilizado cuando la instancia se ve de una vista previa en joinbookwyrm.com. No es compatible con html o markdown."
|
msgstr "Utilizado cuando la instancia se ve de una vista previa en joinbookwyrm.com. No es compatible con html o markdown."
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/site.html:41
|
#: bookwyrm/templates/settings/site.html:41
|
||||||
|
@ -2811,7 +2824,7 @@ msgid "Permanently deleted"
|
||||||
msgstr "Eliminado permanentemente"
|
msgstr "Eliminado permanentemente"
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/users/user_moderation_actions.html:13
|
#: bookwyrm/templates/settings/users/user_moderation_actions.html:13
|
||||||
#: bookwyrm/templates/snippets/status/status_options.html:35
|
#: bookwyrm/templates/snippets/status/status_options.html:32
|
||||||
#: bookwyrm/templates/snippets/user_options.html:13
|
#: bookwyrm/templates/snippets/user_options.html:13
|
||||||
msgid "Send direct message"
|
msgid "Send direct message"
|
||||||
msgstr "Enviar mensaje directo"
|
msgstr "Enviar mensaje directo"
|
||||||
|
@ -2864,22 +2877,22 @@ msgstr "Editar estante"
|
||||||
msgid "Delete shelf"
|
msgid "Delete shelf"
|
||||||
msgstr "Eliminar estante"
|
msgstr "Eliminar estante"
|
||||||
|
|
||||||
#: bookwyrm/templates/shelf/shelf.html:130
|
#: bookwyrm/templates/shelf/shelf.html:132
|
||||||
#: bookwyrm/templates/shelf/shelf.html:154
|
#: bookwyrm/templates/shelf/shelf.html:158
|
||||||
msgid "Shelved"
|
msgid "Shelved"
|
||||||
msgstr "Archivado"
|
msgstr "Archivado"
|
||||||
|
|
||||||
#: bookwyrm/templates/shelf/shelf.html:131
|
#: bookwyrm/templates/shelf/shelf.html:133
|
||||||
#: bookwyrm/templates/shelf/shelf.html:158
|
#: bookwyrm/templates/shelf/shelf.html:161
|
||||||
msgid "Started"
|
msgid "Started"
|
||||||
msgstr "Empezado"
|
msgstr "Empezado"
|
||||||
|
|
||||||
#: bookwyrm/templates/shelf/shelf.html:132
|
#: bookwyrm/templates/shelf/shelf.html:134
|
||||||
#: bookwyrm/templates/shelf/shelf.html:161
|
#: bookwyrm/templates/shelf/shelf.html:164
|
||||||
msgid "Finished"
|
msgid "Finished"
|
||||||
msgstr "Terminado"
|
msgstr "Terminado"
|
||||||
|
|
||||||
#: bookwyrm/templates/shelf/shelf.html:187
|
#: bookwyrm/templates/shelf/shelf.html:190
|
||||||
msgid "This shelf is empty."
|
msgid "This shelf is empty."
|
||||||
msgstr "Este estante está vacio."
|
msgstr "Este estante está vacio."
|
||||||
|
|
||||||
|
@ -2926,22 +2939,22 @@ msgstr "Cita"
|
||||||
msgid "Some thoughts on the book"
|
msgid "Some thoughts on the book"
|
||||||
msgstr "Algunos pensamientos sobre el libro"
|
msgstr "Algunos pensamientos sobre el libro"
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/create_status/comment.html:26
|
#: bookwyrm/templates/snippets/create_status/comment.html:27
|
||||||
#: bookwyrm/templates/snippets/reading_modals/progress_update_modal.html:15
|
#: bookwyrm/templates/snippets/reading_modals/progress_update_modal.html:15
|
||||||
msgid "Progress:"
|
msgid "Progress:"
|
||||||
msgstr "Progreso:"
|
msgstr "Progreso:"
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/create_status/comment.html:52
|
#: bookwyrm/templates/snippets/create_status/comment.html:53
|
||||||
#: bookwyrm/templates/snippets/progress_field.html:18
|
#: bookwyrm/templates/snippets/progress_field.html:18
|
||||||
msgid "pages"
|
msgid "pages"
|
||||||
msgstr "páginas"
|
msgstr "páginas"
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/create_status/comment.html:58
|
#: bookwyrm/templates/snippets/create_status/comment.html:59
|
||||||
#: bookwyrm/templates/snippets/progress_field.html:23
|
#: bookwyrm/templates/snippets/progress_field.html:23
|
||||||
msgid "percent"
|
msgid "percent"
|
||||||
msgstr "por ciento"
|
msgstr "por ciento"
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/create_status/comment.html:65
|
#: bookwyrm/templates/snippets/create_status/comment.html:66
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "of %(pages)s pages"
|
msgid "of %(pages)s pages"
|
||||||
msgstr "de %(pages)s páginas"
|
msgstr "de %(pages)s páginas"
|
||||||
|
@ -2969,7 +2982,7 @@ msgstr "¡Advertencia, ya vienen spoilers!"
|
||||||
msgid "Include spoiler alert"
|
msgid "Include spoiler alert"
|
||||||
msgstr "Incluir alerta de spoiler"
|
msgstr "Incluir alerta de spoiler"
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/create_status/layout.html:41
|
#: bookwyrm/templates/snippets/create_status/layout.html:48
|
||||||
#: bookwyrm/templates/snippets/reading_modals/form.html:7
|
#: bookwyrm/templates/snippets/reading_modals/form.html:7
|
||||||
msgid "Comment:"
|
msgid "Comment:"
|
||||||
msgstr "Comentario:"
|
msgstr "Comentario:"
|
||||||
|
@ -3163,12 +3176,12 @@ msgstr "Has leído <a href=\"%(path)s\">%(read_count)s de %(goal_count)s libros<
|
||||||
msgid "%(username)s has read <a href=\"%(path)s\">%(read_count)s of %(goal_count)s books</a>."
|
msgid "%(username)s has read <a href=\"%(path)s\">%(read_count)s of %(goal_count)s books</a>."
|
||||||
msgstr "%(username)s ha leído <a href=\"%(path)s\">%(read_count)s de %(goal_count)s libros</a>."
|
msgstr "%(username)s ha leído <a href=\"%(path)s\">%(read_count)s de %(goal_count)s libros</a>."
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/page_text.html:4
|
#: bookwyrm/templates/snippets/page_text.html:8
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "page %(page)s of %(total_pages)s"
|
msgid "page %(page)s of %(total_pages)s"
|
||||||
msgstr "página %(page)s de %(total_pages)s"
|
msgstr "página %(page)s de %(total_pages)s"
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/page_text.html:6
|
#: bookwyrm/templates/snippets/page_text.html:14
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "page %(page)s"
|
msgid "page %(page)s"
|
||||||
msgstr "página %(page)s"
|
msgstr "página %(page)s"
|
||||||
|
@ -3329,6 +3342,12 @@ msgstr "Abrir imagen en una nueva ventana"
|
||||||
msgid "Hide status"
|
msgid "Hide status"
|
||||||
msgstr "Ocultar status"
|
msgstr "Ocultar status"
|
||||||
|
|
||||||
|
#: bookwyrm/templates/snippets/status/header.html:45
|
||||||
|
#, fuzzy, python-format
|
||||||
|
#| msgid "Joined %(date)s"
|
||||||
|
msgid "edited %(date)s"
|
||||||
|
msgstr "Unido %(date)s"
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/status/headers/comment.html:2
|
#: bookwyrm/templates/snippets/status/headers/comment.html:2
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "commented on <a href=\"%(book_path)s\">%(book)s</a>"
|
msgid "commented on <a href=\"%(book_path)s\">%(book)s</a>"
|
||||||
|
@ -3393,10 +3412,6 @@ msgstr "respaldó"
|
||||||
msgid "More options"
|
msgid "More options"
|
||||||
msgstr "Más opciones"
|
msgstr "Más opciones"
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/status/status_options.html:26
|
|
||||||
msgid "Delete & re-draft"
|
|
||||||
msgstr "Eliminar y recomponer"
|
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/suggested_users.html:16
|
#: bookwyrm/templates/snippets/suggested_users.html:16
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(mutuals)s follower you follow"
|
msgid "%(mutuals)s follower you follow"
|
||||||
|
@ -3585,3 +3600,23 @@ msgstr "Un enlace para reestablecer tu contraseña se envió a {email}"
|
||||||
msgid "Status updates from {obj.display_name}"
|
msgid "Status updates from {obj.display_name}"
|
||||||
msgstr "Actualizaciones de status de {obj.display_name}"
|
msgstr "Actualizaciones de status de {obj.display_name}"
|
||||||
|
|
||||||
|
#~ msgid "Compose status"
|
||||||
|
#~ msgstr "Componer status"
|
||||||
|
|
||||||
|
#~ msgid "rated"
|
||||||
|
#~ msgstr "calificó"
|
||||||
|
|
||||||
|
#~ msgid "reviewed"
|
||||||
|
#~ msgstr "reseñó"
|
||||||
|
|
||||||
|
#~ msgid "commented on"
|
||||||
|
#~ msgstr "comentó en"
|
||||||
|
|
||||||
|
#~ msgid "quoted"
|
||||||
|
#~ msgstr "citó"
|
||||||
|
|
||||||
|
#~ msgid "About this instance"
|
||||||
|
#~ msgstr "Sobre esta instancia"
|
||||||
|
|
||||||
|
#~ msgid "Delete & re-draft"
|
||||||
|
#~ msgstr "Eliminar y recomponer"
|
||||||
|
|
File diff suppressed because it is too large
Load diff
Binary file not shown.
|
@ -2,8 +2,8 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: bookwyrm\n"
|
"Project-Id-Version: bookwyrm\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-10-06 23:57+0000\n"
|
"POT-Creation-Date: 2021-10-15 22:03+0000\n"
|
||||||
"PO-Revision-Date: 2021-10-08 00:03\n"
|
"PO-Revision-Date: 2021-10-08 10:19\n"
|
||||||
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
|
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
|
||||||
"Language-Team: French\n"
|
"Language-Team: French\n"
|
||||||
"Language: fr\n"
|
"Language: fr\n"
|
||||||
|
@ -54,8 +54,8 @@ msgstr "Ordre de la liste"
|
||||||
msgid "Book Title"
|
msgid "Book Title"
|
||||||
msgstr "Titre du livre"
|
msgstr "Titre du livre"
|
||||||
|
|
||||||
#: bookwyrm/forms.py:328 bookwyrm/templates/shelf/shelf.html:134
|
#: bookwyrm/forms.py:328 bookwyrm/templates/shelf/shelf.html:136
|
||||||
#: bookwyrm/templates/shelf/shelf.html:165
|
#: bookwyrm/templates/shelf/shelf.html:168
|
||||||
#: bookwyrm/templates/snippets/create_status/review.html:33
|
#: bookwyrm/templates/snippets/create_status/review.html:33
|
||||||
msgid "Rating"
|
msgid "Rating"
|
||||||
msgstr "Note"
|
msgstr "Note"
|
||||||
|
@ -74,27 +74,27 @@ msgstr "Ordre décroissant"
|
||||||
|
|
||||||
#: bookwyrm/importers/importer.py:75
|
#: bookwyrm/importers/importer.py:75
|
||||||
msgid "Error loading book"
|
msgid "Error loading book"
|
||||||
msgstr ""
|
msgstr "Erreur lors du chargement du livre"
|
||||||
|
|
||||||
#: bookwyrm/importers/importer.py:88
|
#: bookwyrm/importers/importer.py:88
|
||||||
msgid "Could not find a match for book"
|
msgid "Could not find a match for book"
|
||||||
msgstr ""
|
msgstr "Impossible de trouver une correspondance pour le livre"
|
||||||
|
|
||||||
#: bookwyrm/models/base_model.py:17
|
#: bookwyrm/models/base_model.py:17
|
||||||
msgid "Pending"
|
msgid "Pending"
|
||||||
msgstr ""
|
msgstr "En attente"
|
||||||
|
|
||||||
#: bookwyrm/models/base_model.py:18
|
#: bookwyrm/models/base_model.py:18
|
||||||
msgid "Self deletion"
|
msgid "Self deletion"
|
||||||
msgstr ""
|
msgstr "Auto-suppression"
|
||||||
|
|
||||||
#: bookwyrm/models/base_model.py:19
|
#: bookwyrm/models/base_model.py:19
|
||||||
msgid "Moderator suspension"
|
msgid "Moderator suspension"
|
||||||
msgstr ""
|
msgstr "Suspension du modérateur"
|
||||||
|
|
||||||
#: bookwyrm/models/base_model.py:20
|
#: bookwyrm/models/base_model.py:20
|
||||||
msgid "Moderator deletion"
|
msgid "Moderator deletion"
|
||||||
msgstr ""
|
msgstr "Suppression du modérateur"
|
||||||
|
|
||||||
#: bookwyrm/models/base_model.py:21
|
#: bookwyrm/models/base_model.py:21
|
||||||
msgid "Domain block"
|
msgid "Domain block"
|
||||||
|
@ -102,19 +102,19 @@ msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/models/book.py:232
|
#: bookwyrm/models/book.py:232
|
||||||
msgid "Audiobook"
|
msgid "Audiobook"
|
||||||
msgstr ""
|
msgstr "Livre audio"
|
||||||
|
|
||||||
#: bookwyrm/models/book.py:233
|
#: bookwyrm/models/book.py:233
|
||||||
msgid "eBook"
|
msgid "eBook"
|
||||||
msgstr ""
|
msgstr "eBook"
|
||||||
|
|
||||||
#: bookwyrm/models/book.py:234
|
#: bookwyrm/models/book.py:234
|
||||||
msgid "Graphic novel"
|
msgid "Graphic novel"
|
||||||
msgstr ""
|
msgstr "Roman Graphique"
|
||||||
|
|
||||||
#: bookwyrm/models/book.py:235
|
#: bookwyrm/models/book.py:235
|
||||||
msgid "Hardcover"
|
msgid "Hardcover"
|
||||||
msgstr ""
|
msgstr "Couverture rigide"
|
||||||
|
|
||||||
#: bookwyrm/models/book.py:236
|
#: bookwyrm/models/book.py:236
|
||||||
msgid "Paperback"
|
msgid "Paperback"
|
||||||
|
@ -151,45 +151,49 @@ msgstr "nom du compte :"
|
||||||
msgid "A user with that username already exists."
|
msgid "A user with that username already exists."
|
||||||
msgstr "Ce nom est déjà associé à un compte."
|
msgstr "Ce nom est déjà associé à un compte."
|
||||||
|
|
||||||
#: bookwyrm/settings.py:117
|
#: bookwyrm/settings.py:118
|
||||||
msgid "Home Timeline"
|
msgid "Home Timeline"
|
||||||
msgstr "Mon fil d’actualité"
|
msgstr "Mon fil d’actualité"
|
||||||
|
|
||||||
#: bookwyrm/settings.py:117
|
#: bookwyrm/settings.py:118
|
||||||
msgid "Home"
|
msgid "Home"
|
||||||
msgstr "Accueil"
|
msgstr "Accueil"
|
||||||
|
|
||||||
#: bookwyrm/settings.py:118
|
#: bookwyrm/settings.py:119
|
||||||
msgid "Books Timeline"
|
msgid "Books Timeline"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/settings.py:118 bookwyrm/templates/search/layout.html:21
|
#: bookwyrm/settings.py:119 bookwyrm/templates/search/layout.html:21
|
||||||
#: bookwyrm/templates/search/layout.html:42
|
#: bookwyrm/templates/search/layout.html:42
|
||||||
#: bookwyrm/templates/user/layout.html:81
|
#: bookwyrm/templates/user/layout.html:81
|
||||||
msgid "Books"
|
msgid "Books"
|
||||||
msgstr "Livres"
|
msgstr "Livres"
|
||||||
|
|
||||||
#: bookwyrm/settings.py:164
|
#: bookwyrm/settings.py:165
|
||||||
msgid "English"
|
msgid "English"
|
||||||
msgstr "English"
|
msgstr "English"
|
||||||
|
|
||||||
#: bookwyrm/settings.py:165
|
#: bookwyrm/settings.py:166
|
||||||
msgid "Deutsch (German)"
|
msgid "Deutsch (German)"
|
||||||
msgstr "Deutsch"
|
msgstr "Deutsch"
|
||||||
|
|
||||||
#: bookwyrm/settings.py:166
|
#: bookwyrm/settings.py:167
|
||||||
msgid "Español (Spanish)"
|
msgid "Español (Spanish)"
|
||||||
msgstr "Español"
|
msgstr "Español"
|
||||||
|
|
||||||
#: bookwyrm/settings.py:167
|
#: bookwyrm/settings.py:168
|
||||||
msgid "Français (French)"
|
msgid "Français (French)"
|
||||||
msgstr "Français"
|
msgstr "Français"
|
||||||
|
|
||||||
#: bookwyrm/settings.py:168
|
#: bookwyrm/settings.py:169
|
||||||
|
msgid "Português - Brasil (Brazilian Portuguese)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: bookwyrm/settings.py:170
|
||||||
msgid "简体中文 (Simplified Chinese)"
|
msgid "简体中文 (Simplified Chinese)"
|
||||||
msgstr "简化字"
|
msgstr "简化字"
|
||||||
|
|
||||||
#: bookwyrm/settings.py:169
|
#: bookwyrm/settings.py:171
|
||||||
msgid "繁體中文 (Traditional Chinese)"
|
msgid "繁體中文 (Traditional Chinese)"
|
||||||
msgstr "Infos supplémentaires :"
|
msgstr "Infos supplémentaires :"
|
||||||
|
|
||||||
|
@ -571,7 +575,7 @@ msgstr "Langues :"
|
||||||
|
|
||||||
#: bookwyrm/templates/book/edit/edit_book_form.html:74
|
#: bookwyrm/templates/book/edit/edit_book_form.html:74
|
||||||
msgid "Publication"
|
msgid "Publication"
|
||||||
msgstr ""
|
msgstr "Publication"
|
||||||
|
|
||||||
#: bookwyrm/templates/book/edit/edit_book_form.html:77
|
#: bookwyrm/templates/book/edit/edit_book_form.html:77
|
||||||
msgid "Publisher:"
|
msgid "Publisher:"
|
||||||
|
@ -623,7 +627,7 @@ msgstr "Format :"
|
||||||
|
|
||||||
#: bookwyrm/templates/book/edit/edit_book_form.html:177
|
#: bookwyrm/templates/book/edit/edit_book_form.html:177
|
||||||
msgid "Format details:"
|
msgid "Format details:"
|
||||||
msgstr ""
|
msgstr "Détails du format :"
|
||||||
|
|
||||||
#: bookwyrm/templates/book/edit/edit_book_form.html:187
|
#: bookwyrm/templates/book/edit/edit_book_form.html:187
|
||||||
msgid "Pages:"
|
msgid "Pages:"
|
||||||
|
@ -667,12 +671,7 @@ msgstr "Langue :"
|
||||||
|
|
||||||
#: bookwyrm/templates/book/editions/search_filter.html:5
|
#: bookwyrm/templates/book/editions/search_filter.html:5
|
||||||
msgid "Search editions"
|
msgid "Search editions"
|
||||||
msgstr ""
|
msgstr "Rechercher des éditions"
|
||||||
|
|
||||||
#: bookwyrm/templates/book/publisher_info.html:21
|
|
||||||
#, python-format
|
|
||||||
msgid "%(format)s"
|
|
||||||
msgstr "%(format)s"
|
|
||||||
|
|
||||||
#: bookwyrm/templates/book/publisher_info.html:23
|
#: bookwyrm/templates/book/publisher_info.html:23
|
||||||
#, python-format
|
#, python-format
|
||||||
|
@ -750,11 +749,13 @@ msgstr "Fermer"
|
||||||
|
|
||||||
#: bookwyrm/templates/components/tooltip.html:3
|
#: bookwyrm/templates/components/tooltip.html:3
|
||||||
msgid "Help"
|
msgid "Help"
|
||||||
msgstr ""
|
msgstr "Aide"
|
||||||
|
|
||||||
#: bookwyrm/templates/compose.html:5 bookwyrm/templates/compose.html:8
|
#: bookwyrm/templates/compose.html:5 bookwyrm/templates/compose.html:8
|
||||||
msgid "Compose status"
|
#, fuzzy
|
||||||
msgstr "Rédiger un statut"
|
#| msgid "View status"
|
||||||
|
msgid "Edit status"
|
||||||
|
msgstr "Afficher tous les status"
|
||||||
|
|
||||||
#: bookwyrm/templates/confirm_email/confirm_email.html:4
|
#: bookwyrm/templates/confirm_email/confirm_email.html:4
|
||||||
msgid "Confirm email"
|
msgid "Confirm email"
|
||||||
|
@ -854,7 +855,7 @@ msgstr "Suggéré"
|
||||||
#: bookwyrm/templates/user/user_preview.html:16
|
#: bookwyrm/templates/user/user_preview.html:16
|
||||||
#: bookwyrm/templates/user/user_preview.html:17
|
#: bookwyrm/templates/user/user_preview.html:17
|
||||||
msgid "Locked account"
|
msgid "Locked account"
|
||||||
msgstr ""
|
msgstr "Compte verrouillé"
|
||||||
|
|
||||||
#: bookwyrm/templates/directory/user_card.html:40
|
#: bookwyrm/templates/directory/user_card.html:40
|
||||||
msgid "follower you follow"
|
msgid "follower you follow"
|
||||||
|
@ -888,41 +889,45 @@ msgstr "Comptes BookWyrm"
|
||||||
msgid "All known users"
|
msgid "All known users"
|
||||||
msgstr "Tous les comptes connus"
|
msgstr "Tous les comptes connus"
|
||||||
|
|
||||||
|
#: bookwyrm/templates/discover/card-header.html:9
|
||||||
|
#, fuzzy, python-format
|
||||||
|
#| msgid "replied to <a href=\"%(user_path)s\">%(username)s</a>'s <a href=\"%(status_path)s\">status</a>"
|
||||||
|
msgid "<a href=\"%(user_path)s\">%(username)s</a> rated <a href=\"%(book_path)s\">%(book_title)s</a>"
|
||||||
|
msgstr "a répondu au <a href=\"%(status_path)s\">statut</a> de <a href=\"%(user_path)s\">%(username)s</a>"
|
||||||
|
|
||||||
|
#: bookwyrm/templates/discover/card-header.html:13
|
||||||
|
#, fuzzy, python-format
|
||||||
|
#| msgid "replied to <a href=\"%(user_path)s\">%(username)s</a>'s <a href=\"%(status_path)s\">status</a>"
|
||||||
|
msgid "<a href=\"%(user_path)s\">%(username)s</a> reviewed <a href=\"%(book_path)s\">%(book_title)s</a>"
|
||||||
|
msgstr "a répondu au <a href=\"%(status_path)s\">statut</a> de <a href=\"%(user_path)s\">%(username)s</a>"
|
||||||
|
|
||||||
|
#: bookwyrm/templates/discover/card-header.html:17
|
||||||
|
#, fuzzy, python-format
|
||||||
|
#| msgid "replied to <a href=\"%(user_path)s\">%(username)s</a>'s <a href=\"%(status_path)s\">status</a>"
|
||||||
|
msgid "<a href=\"%(user_path)s\">%(username)s</a> commented on <a href=\"%(book_path)s\">%(book_title)s</a>"
|
||||||
|
msgstr "a répondu au <a href=\"%(status_path)s\">statut</a> de <a href=\"%(user_path)s\">%(username)s</a>"
|
||||||
|
|
||||||
|
#: bookwyrm/templates/discover/card-header.html:21
|
||||||
|
#, fuzzy, python-format
|
||||||
|
#| msgid "replied to <a href=\"%(user_path)s\">%(username)s</a>'s <a href=\"%(status_path)s\">status</a>"
|
||||||
|
msgid "<a href=\"%(user_path)s\">%(username)s</a> quoted <a href=\"%(book_path)s\">%(book_title)s</a>"
|
||||||
|
msgstr "a répondu au <a href=\"%(status_path)s\">statut</a> de <a href=\"%(user_path)s\">%(username)s</a>"
|
||||||
|
|
||||||
#: bookwyrm/templates/discover/discover.html:4
|
#: bookwyrm/templates/discover/discover.html:4
|
||||||
#: bookwyrm/templates/discover/discover.html:10
|
#: bookwyrm/templates/discover/discover.html:10
|
||||||
#: bookwyrm/templates/layout.html:78
|
#: bookwyrm/templates/layout.html:78
|
||||||
msgid "Discover"
|
msgid "Discover"
|
||||||
msgstr ""
|
msgstr "Découvrir"
|
||||||
|
|
||||||
#: bookwyrm/templates/discover/discover.html:12
|
#: bookwyrm/templates/discover/discover.html:12
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "See what's new in the local %(site_name)s community"
|
msgid "See what's new in the local %(site_name)s community"
|
||||||
msgstr ""
|
msgstr "Voir les nouveautés de la communauté locale %(site_name)s"
|
||||||
|
|
||||||
#: bookwyrm/templates/discover/large-book.html:46
|
|
||||||
#: bookwyrm/templates/discover/small-book.html:32
|
|
||||||
msgid "rated"
|
|
||||||
msgstr "a noté"
|
|
||||||
|
|
||||||
#: bookwyrm/templates/discover/large-book.html:48
|
|
||||||
#: bookwyrm/templates/discover/small-book.html:34
|
|
||||||
msgid "reviewed"
|
|
||||||
msgstr "a écrit une critique de"
|
|
||||||
|
|
||||||
#: bookwyrm/templates/discover/large-book.html:50
|
|
||||||
#: bookwyrm/templates/discover/small-book.html:36
|
|
||||||
msgid "commented on"
|
|
||||||
msgstr "a commenté"
|
|
||||||
|
|
||||||
#: bookwyrm/templates/discover/large-book.html:52
|
#: bookwyrm/templates/discover/large-book.html:52
|
||||||
#: bookwyrm/templates/discover/small-book.html:38
|
#: bookwyrm/templates/discover/small-book.html:36
|
||||||
msgid "quoted"
|
|
||||||
msgstr "a cité"
|
|
||||||
|
|
||||||
#: bookwyrm/templates/discover/large-book.html:68
|
|
||||||
#: bookwyrm/templates/discover/small-book.html:52
|
|
||||||
msgid "View status"
|
msgid "View status"
|
||||||
msgstr ""
|
msgstr "Afficher tous les status"
|
||||||
|
|
||||||
#: bookwyrm/templates/email/confirm/html_content.html:6
|
#: bookwyrm/templates/email/confirm/html_content.html:6
|
||||||
#: bookwyrm/templates/email/confirm/text_content.html:4
|
#: bookwyrm/templates/email/confirm/text_content.html:4
|
||||||
|
@ -937,7 +942,7 @@ msgstr "Confirmation de l’email"
|
||||||
#: bookwyrm/templates/email/confirm/html_content.html:15
|
#: bookwyrm/templates/email/confirm/html_content.html:15
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Or enter the code \"<code>%(confirmation_code)s</code>\" at login."
|
msgid "Or enter the code \"<code>%(confirmation_code)s</code>\" at login."
|
||||||
msgstr ""
|
msgstr "Ou entrez le code \"<code>%(confirmation_code)s</code>\" à la connexion."
|
||||||
|
|
||||||
#: bookwyrm/templates/email/confirm/subject.html:2
|
#: bookwyrm/templates/email/confirm/subject.html:2
|
||||||
msgid "Please confirm your email"
|
msgid "Please confirm your email"
|
||||||
|
@ -946,7 +951,7 @@ msgstr "Veuillez confirmer votre adresse email"
|
||||||
#: bookwyrm/templates/email/confirm/text_content.html:10
|
#: bookwyrm/templates/email/confirm/text_content.html:10
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Or enter the code \"%(confirmation_code)s\" at login."
|
msgid "Or enter the code \"%(confirmation_code)s\" at login."
|
||||||
msgstr ""
|
msgstr "Ou entrez le code \"%(confirmation_code)s\" à la connexion."
|
||||||
|
|
||||||
#: bookwyrm/templates/email/html_layout.html:15
|
#: bookwyrm/templates/email/html_layout.html:15
|
||||||
#: bookwyrm/templates/email/text_layout.html:2
|
#: bookwyrm/templates/email/text_layout.html:2
|
||||||
|
@ -973,8 +978,9 @@ msgid "Join Now"
|
||||||
msgstr "S’enregistrer maintenant"
|
msgstr "S’enregistrer maintenant"
|
||||||
|
|
||||||
#: bookwyrm/templates/email/invite/html_content.html:15
|
#: bookwyrm/templates/email/invite/html_content.html:15
|
||||||
#, python-format
|
#, fuzzy, python-format
|
||||||
msgid "Learn more <a href=\"https://%(domain)s%(about_path)s\">about this instance</a>."
|
#| msgid "Learn more <a href=\"https://%(domain)s%(about_path)s\">about this instance</a>."
|
||||||
|
msgid "Learn more <a href=\"https://%(domain)s%(about_path)s\">about %(site_name)s</a>."
|
||||||
msgstr "En savoir plus sur <a href=\"https://%(domain)s%(about_path)s\">cette instance</a>."
|
msgstr "En savoir plus sur <a href=\"https://%(domain)s%(about_path)s\">cette instance</a>."
|
||||||
|
|
||||||
#: bookwyrm/templates/email/invite/text_content.html:4
|
#: bookwyrm/templates/email/invite/text_content.html:4
|
||||||
|
@ -983,7 +989,9 @@ msgid "You're invited to join %(site_name)s! Click the link below to create an a
|
||||||
msgstr "Vous avez reçu une invitation à rejoindre %(site_name)s ! Cliquez le lien suivant pour créer un compte."
|
msgstr "Vous avez reçu une invitation à rejoindre %(site_name)s ! Cliquez le lien suivant pour créer un compte."
|
||||||
|
|
||||||
#: bookwyrm/templates/email/invite/text_content.html:8
|
#: bookwyrm/templates/email/invite/text_content.html:8
|
||||||
msgid "Learn more about this instance:"
|
#, fuzzy, python-format
|
||||||
|
#| msgid "Learn more about this instance:"
|
||||||
|
msgid "Learn more about %(site_name)s:"
|
||||||
msgstr "En savoir plus sur cete instance :"
|
msgstr "En savoir plus sur cete instance :"
|
||||||
|
|
||||||
#: bookwyrm/templates/email/password_reset/html_content.html:6
|
#: bookwyrm/templates/email/password_reset/html_content.html:6
|
||||||
|
@ -1031,7 +1039,7 @@ msgstr "Vous n’avez aucun message pour l’instant."
|
||||||
#: bookwyrm/templates/feed/feed.html:22
|
#: bookwyrm/templates/feed/feed.html:22
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "load <span data-poll=\"stream/%(tab_key)s\">0</span> unread status(es)"
|
msgid "load <span data-poll=\"stream/%(tab_key)s\">0</span> unread status(es)"
|
||||||
msgstr ""
|
msgstr "charger <span data-poll=\"stream/%(tab_key)s\">0</span> statut(s) non lus"
|
||||||
|
|
||||||
#: bookwyrm/templates/feed/feed.html:38
|
#: bookwyrm/templates/feed/feed.html:38
|
||||||
msgid "There aren't any activities right now! Try following a user to get started"
|
msgid "There aren't any activities right now! Try following a user to get started"
|
||||||
|
@ -1086,11 +1094,11 @@ msgstr "À qui s’abonner"
|
||||||
|
|
||||||
#: bookwyrm/templates/feed/suggested_users.html:9
|
#: bookwyrm/templates/feed/suggested_users.html:9
|
||||||
msgid "Don't show suggested users"
|
msgid "Don't show suggested users"
|
||||||
msgstr ""
|
msgstr "Ne pas afficher les utilisateurs suggérés"
|
||||||
|
|
||||||
#: bookwyrm/templates/feed/suggested_users.html:14
|
#: bookwyrm/templates/feed/suggested_users.html:14
|
||||||
msgid "View directory"
|
msgid "View directory"
|
||||||
msgstr ""
|
msgstr "Voir le répertoire"
|
||||||
|
|
||||||
#: bookwyrm/templates/get_started/book_preview.html:6
|
#: bookwyrm/templates/get_started/book_preview.html:6
|
||||||
#, python-format
|
#, python-format
|
||||||
|
@ -1265,7 +1273,7 @@ msgstr "Statut de l’importation"
|
||||||
|
|
||||||
#: bookwyrm/templates/import/import_status.html:11
|
#: bookwyrm/templates/import/import_status.html:11
|
||||||
msgid "Back to imports"
|
msgid "Back to imports"
|
||||||
msgstr ""
|
msgstr "Retourner à l’importation"
|
||||||
|
|
||||||
#: bookwyrm/templates/import/import_status.html:15
|
#: bookwyrm/templates/import/import_status.html:15
|
||||||
msgid "Import started:"
|
msgid "Import started:"
|
||||||
|
@ -1315,7 +1323,7 @@ msgstr "Importation réussie"
|
||||||
|
|
||||||
#: bookwyrm/templates/import/import_status.html:114
|
#: bookwyrm/templates/import/import_status.html:114
|
||||||
msgid "Import Progress"
|
msgid "Import Progress"
|
||||||
msgstr ""
|
msgstr "Importation en cours"
|
||||||
|
|
||||||
#: bookwyrm/templates/import/import_status.html:119
|
#: bookwyrm/templates/import/import_status.html:119
|
||||||
msgid "Book"
|
msgid "Book"
|
||||||
|
@ -1323,13 +1331,13 @@ msgstr "Livre"
|
||||||
|
|
||||||
#: bookwyrm/templates/import/import_status.html:122
|
#: bookwyrm/templates/import/import_status.html:122
|
||||||
#: bookwyrm/templates/shelf/shelf.html:128
|
#: bookwyrm/templates/shelf/shelf.html:128
|
||||||
#: bookwyrm/templates/shelf/shelf.html:148
|
#: bookwyrm/templates/shelf/shelf.html:150
|
||||||
msgid "Title"
|
msgid "Title"
|
||||||
msgstr "Titre"
|
msgstr "Titre"
|
||||||
|
|
||||||
#: bookwyrm/templates/import/import_status.html:125
|
#: bookwyrm/templates/import/import_status.html:125
|
||||||
#: bookwyrm/templates/shelf/shelf.html:129
|
#: bookwyrm/templates/shelf/shelf.html:129
|
||||||
#: bookwyrm/templates/shelf/shelf.html:151
|
#: bookwyrm/templates/shelf/shelf.html:153
|
||||||
msgid "Author"
|
msgid "Author"
|
||||||
msgstr "Auteur/autrice"
|
msgstr "Auteur/autrice"
|
||||||
|
|
||||||
|
@ -1338,8 +1346,10 @@ msgid "Imported"
|
||||||
msgstr "Importé"
|
msgstr "Importé"
|
||||||
|
|
||||||
#: bookwyrm/templates/import/tooltip.html:6
|
#: bookwyrm/templates/import/tooltip.html:6
|
||||||
msgid "You can download your GoodReads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener\">Import/Export page</a> of your GoodReads account."
|
#, fuzzy
|
||||||
msgstr ""
|
#| msgid "You can download your GoodReads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener\">Import/Export page</a> of your GoodReads account."
|
||||||
|
msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener\">Import/Export page</a> of your Goodreads account."
|
||||||
|
msgstr "Vous pouvez télécharger vos données GoodReads depuis la page <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener\">Importation/Exportation</a> de votre compte GoodRead."
|
||||||
|
|
||||||
#: bookwyrm/templates/invite.html:4 bookwyrm/templates/invite.html:8
|
#: bookwyrm/templates/invite.html:4 bookwyrm/templates/invite.html:8
|
||||||
#: bookwyrm/templates/login.html:49
|
#: bookwyrm/templates/login.html:49
|
||||||
|
@ -1354,7 +1364,7 @@ msgstr "Autorisation refusée"
|
||||||
msgid "Sorry! This invite code is no longer valid."
|
msgid "Sorry! This invite code is no longer valid."
|
||||||
msgstr "Cette invitation n’est plus valide ; désolé !"
|
msgstr "Cette invitation n’est plus valide ; désolé !"
|
||||||
|
|
||||||
#: bookwyrm/templates/landing/about.html:7
|
#: bookwyrm/templates/landing/about.html:7 bookwyrm/templates/layout.html:230
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "About %(site_name)s"
|
msgid "About %(site_name)s"
|
||||||
msgstr "À propos de %(site_name)s"
|
msgstr "À propos de %(site_name)s"
|
||||||
|
@ -1397,7 +1407,7 @@ msgstr "Demander une invitation"
|
||||||
#: bookwyrm/templates/landing/layout.html:49
|
#: bookwyrm/templates/landing/layout.html:49
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(name)s registration is closed"
|
msgid "%(name)s registration is closed"
|
||||||
msgstr ""
|
msgstr "L'inscription à %(name)s est fermée"
|
||||||
|
|
||||||
#: bookwyrm/templates/landing/layout.html:60
|
#: bookwyrm/templates/landing/layout.html:60
|
||||||
msgid "Thank you! Your request has been received."
|
msgid "Thank you! Your request has been received."
|
||||||
|
@ -1410,11 +1420,11 @@ msgstr "Votre compte"
|
||||||
#: bookwyrm/templates/layout.html:13
|
#: bookwyrm/templates/layout.html:13
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(site_name)s search"
|
msgid "%(site_name)s search"
|
||||||
msgstr ""
|
msgstr "Recherche %(site_name)s"
|
||||||
|
|
||||||
#: bookwyrm/templates/layout.html:43
|
#: bookwyrm/templates/layout.html:43
|
||||||
msgid "Search for a book, user, or list"
|
msgid "Search for a book, user, or list"
|
||||||
msgstr ""
|
msgstr "Rechercher un livre, un utilisateur ou une liste"
|
||||||
|
|
||||||
#: bookwyrm/templates/layout.html:61 bookwyrm/templates/layout.html:62
|
#: bookwyrm/templates/layout.html:61 bookwyrm/templates/layout.html:62
|
||||||
msgid "Main navigation menu"
|
msgid "Main navigation menu"
|
||||||
|
@ -1479,15 +1489,11 @@ msgstr "Rejoindre"
|
||||||
|
|
||||||
#: bookwyrm/templates/layout.html:221
|
#: bookwyrm/templates/layout.html:221
|
||||||
msgid "Successfully posted status"
|
msgid "Successfully posted status"
|
||||||
msgstr ""
|
msgstr "Publié !"
|
||||||
|
|
||||||
#: bookwyrm/templates/layout.html:222
|
#: bookwyrm/templates/layout.html:222
|
||||||
msgid "Error posting status"
|
msgid "Error posting status"
|
||||||
msgstr ""
|
msgstr "Erreur lors de la publication"
|
||||||
|
|
||||||
#: bookwyrm/templates/layout.html:230
|
|
||||||
msgid "About this instance"
|
|
||||||
msgstr "À propos de cette instance"
|
|
||||||
|
|
||||||
#: bookwyrm/templates/layout.html:234
|
#: bookwyrm/templates/layout.html:234
|
||||||
msgid "Contact site admin"
|
msgid "Contact site admin"
|
||||||
|
@ -1508,7 +1514,7 @@ msgstr "BookWyrm est un logiciel libre. Vous pouvez contribuer ou faire des rapp
|
||||||
|
|
||||||
#: bookwyrm/templates/lists/bookmark_button.html:30
|
#: bookwyrm/templates/lists/bookmark_button.html:30
|
||||||
msgid "Un-save"
|
msgid "Un-save"
|
||||||
msgstr ""
|
msgstr "Annuler la sauvegarde"
|
||||||
|
|
||||||
#: bookwyrm/templates/lists/create_form.html:5
|
#: bookwyrm/templates/lists/create_form.html:5
|
||||||
#: bookwyrm/templates/lists/lists.html:20
|
#: bookwyrm/templates/lists/lists.html:20
|
||||||
|
@ -1551,11 +1557,11 @@ msgstr "Rejeter"
|
||||||
|
|
||||||
#: bookwyrm/templates/lists/delete_list_modal.html:4
|
#: bookwyrm/templates/lists/delete_list_modal.html:4
|
||||||
msgid "Delete this list?"
|
msgid "Delete this list?"
|
||||||
msgstr ""
|
msgstr "Supprimer cette liste ?"
|
||||||
|
|
||||||
#: bookwyrm/templates/lists/delete_list_modal.html:7
|
#: bookwyrm/templates/lists/delete_list_modal.html:7
|
||||||
msgid "This action cannot be un-done"
|
msgid "This action cannot be un-done"
|
||||||
msgstr ""
|
msgstr "Cette action ne peut pas être annulée"
|
||||||
|
|
||||||
#: bookwyrm/templates/lists/delete_list_modal.html:15
|
#: bookwyrm/templates/lists/delete_list_modal.html:15
|
||||||
#: bookwyrm/templates/settings/announcements/announcement.html:20
|
#: bookwyrm/templates/settings/announcements/announcement.html:20
|
||||||
|
@ -1594,7 +1600,7 @@ msgstr "N’importe qui peut suggérer des livres, soumis à votre approbation"
|
||||||
#: bookwyrm/templates/lists/form.html:31
|
#: bookwyrm/templates/lists/form.html:31
|
||||||
msgctxt "curation type"
|
msgctxt "curation type"
|
||||||
msgid "Open"
|
msgid "Open"
|
||||||
msgstr ""
|
msgstr "Ouvrir"
|
||||||
|
|
||||||
#: bookwyrm/templates/lists/form.html:32
|
#: bookwyrm/templates/lists/form.html:32
|
||||||
msgid "Anyone can add books to this list"
|
msgid "Anyone can add books to this list"
|
||||||
|
@ -1602,7 +1608,7 @@ msgstr "N’importe qui peut suggérer des livres"
|
||||||
|
|
||||||
#: bookwyrm/templates/lists/form.html:50
|
#: bookwyrm/templates/lists/form.html:50
|
||||||
msgid "Delete list"
|
msgid "Delete list"
|
||||||
msgstr ""
|
msgstr "Supprimer la liste"
|
||||||
|
|
||||||
#: bookwyrm/templates/lists/list.html:20
|
#: bookwyrm/templates/lists/list.html:20
|
||||||
msgid "You successfully suggested a book for this list!"
|
msgid "You successfully suggested a book for this list!"
|
||||||
|
@ -1670,7 +1676,7 @@ msgstr "Suggérer"
|
||||||
|
|
||||||
#: bookwyrm/templates/lists/list_items.html:15
|
#: bookwyrm/templates/lists/list_items.html:15
|
||||||
msgid "Saved"
|
msgid "Saved"
|
||||||
msgstr ""
|
msgstr "Sauvegardé"
|
||||||
|
|
||||||
#: bookwyrm/templates/lists/lists.html:14 bookwyrm/templates/user/lists.html:9
|
#: bookwyrm/templates/lists/lists.html:14 bookwyrm/templates/user/lists.html:9
|
||||||
msgid "Your Lists"
|
msgid "Your Lists"
|
||||||
|
@ -1678,11 +1684,11 @@ msgstr "Vos listes"
|
||||||
|
|
||||||
#: bookwyrm/templates/lists/lists.html:35
|
#: bookwyrm/templates/lists/lists.html:35
|
||||||
msgid "All Lists"
|
msgid "All Lists"
|
||||||
msgstr ""
|
msgstr "Toutes les listes"
|
||||||
|
|
||||||
#: bookwyrm/templates/lists/lists.html:39
|
#: bookwyrm/templates/lists/lists.html:39
|
||||||
msgid "Saved Lists"
|
msgid "Saved Lists"
|
||||||
msgstr ""
|
msgstr "Listes sauvegardées"
|
||||||
|
|
||||||
#: bookwyrm/templates/login.html:4
|
#: bookwyrm/templates/login.html:4
|
||||||
msgid "Login"
|
msgid "Login"
|
||||||
|
@ -1704,12 +1710,12 @@ msgstr "En savoir plus sur ce site"
|
||||||
#: bookwyrm/templates/notifications/items/add.html:24
|
#: bookwyrm/templates/notifications/items/add.html:24
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "added <em><a href=\"%(book_path)s\">%(book_title)s</a></em> to your list \"<a href=\"%(list_path)s\">%(list_name)s</a>\""
|
msgid "added <em><a href=\"%(book_path)s\">%(book_title)s</a></em> to your list \"<a href=\"%(list_path)s\">%(list_name)s</a>\""
|
||||||
msgstr ""
|
msgstr "a ajouté <em><a href=\"%(book_path)s\">%(book_title)s</a></em> à votre liste \"<a href=\"%(list_path)s\">%(list_name)s</a>\""
|
||||||
|
|
||||||
#: bookwyrm/templates/notifications/items/add.html:31
|
#: bookwyrm/templates/notifications/items/add.html:31
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "suggested adding <em><a href=\"%(book_path)s\">%(book_title)s</a></em> to your list \"<a href=\"%(list_path)s\">%(list_name)s</a>\""
|
msgid "suggested adding <em><a href=\"%(book_path)s\">%(book_title)s</a></em> to your list \"<a href=\"%(list_path)s\">%(list_name)s</a>\""
|
||||||
msgstr ""
|
msgstr "a suggéré d'ajouter <em><a href=\"%(book_path)s\">%(book_title)s</a></em> à votre liste \"<a href=\"%(list_path)s\">%(list_name)s</a>\""
|
||||||
|
|
||||||
#: bookwyrm/templates/notifications/items/boost.html:19
|
#: bookwyrm/templates/notifications/items/boost.html:19
|
||||||
#, python-format
|
#, python-format
|
||||||
|
@ -1732,23 +1738,27 @@ msgid "boosted your <a href=\"%(related_path)s\">status</a>"
|
||||||
msgstr "a partagé votre <a href=\"%(related_path)s\">statut</a>"
|
msgstr "a partagé votre <a href=\"%(related_path)s\">statut</a>"
|
||||||
|
|
||||||
#: bookwyrm/templates/notifications/items/fav.html:19
|
#: bookwyrm/templates/notifications/items/fav.html:19
|
||||||
#, python-format
|
#, fuzzy, python-format
|
||||||
msgid "favorited your <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>"
|
#| msgid "favorited your <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>"
|
||||||
|
msgid "liked your <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>"
|
||||||
msgstr "a ajouté votre <a href=\"%(related_path)s\">critique de <em>%(book_title)s</em></a> à ses favoris"
|
msgstr "a ajouté votre <a href=\"%(related_path)s\">critique de <em>%(book_title)s</em></a> à ses favoris"
|
||||||
|
|
||||||
#: bookwyrm/templates/notifications/items/fav.html:25
|
#: bookwyrm/templates/notifications/items/fav.html:25
|
||||||
#, python-format
|
#, fuzzy, python-format
|
||||||
msgid "favorited your <a href=\"%(related_path)s\">comment on<em>%(book_title)s</em></a>"
|
#| msgid "boosted your <a href=\"%(related_path)s\">comment on<em>%(book_title)s</em></a>"
|
||||||
msgstr ""
|
msgid "liked your <a href=\"%(related_path)s\">comment on<em>%(book_title)s</em></a>"
|
||||||
|
msgstr "a partagé votre <a href=\"%(related_path)s\">commentaire sur <em>%(book_title)s</em></a>"
|
||||||
|
|
||||||
#: bookwyrm/templates/notifications/items/fav.html:31
|
#: bookwyrm/templates/notifications/items/fav.html:31
|
||||||
#, python-format
|
#, fuzzy, python-format
|
||||||
msgid "favorited your <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>"
|
#| msgid "favorited your <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>"
|
||||||
|
msgid "liked your <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>"
|
||||||
msgstr "a ajouté votre <a href=\"%(related_path)s\">citation de <em>%(book_title)s</em></a> à ses favoris"
|
msgstr "a ajouté votre <a href=\"%(related_path)s\">citation de <em>%(book_title)s</em></a> à ses favoris"
|
||||||
|
|
||||||
#: bookwyrm/templates/notifications/items/fav.html:37
|
#: bookwyrm/templates/notifications/items/fav.html:37
|
||||||
#, python-format
|
#, fuzzy, python-format
|
||||||
msgid "favorited your <a href=\"%(related_path)s\">status</a>"
|
#| msgid "favorited your <a href=\"%(related_path)s\">status</a>"
|
||||||
|
msgid "liked your <a href=\"%(related_path)s\">status</a>"
|
||||||
msgstr "a ajouté votre <a href=\"%(related_path)s\">statut</a> à ses favoris"
|
msgstr "a ajouté votre <a href=\"%(related_path)s\">statut</a> à ses favoris"
|
||||||
|
|
||||||
#: bookwyrm/templates/notifications/items/follow.html:15
|
#: bookwyrm/templates/notifications/items/follow.html:15
|
||||||
|
@ -1866,15 +1876,15 @@ msgstr "Nouveau mot de passe :"
|
||||||
#: bookwyrm/templates/preferences/layout.html:24
|
#: bookwyrm/templates/preferences/layout.html:24
|
||||||
#: bookwyrm/templates/settings/users/delete_user_form.html:23
|
#: bookwyrm/templates/settings/users/delete_user_form.html:23
|
||||||
msgid "Delete Account"
|
msgid "Delete Account"
|
||||||
msgstr ""
|
msgstr "Supprimer le compte"
|
||||||
|
|
||||||
#: bookwyrm/templates/preferences/delete_user.html:12
|
#: bookwyrm/templates/preferences/delete_user.html:12
|
||||||
msgid "Permanently delete account"
|
msgid "Permanently delete account"
|
||||||
msgstr ""
|
msgstr "Supprimer définitivement le compte"
|
||||||
|
|
||||||
#: bookwyrm/templates/preferences/delete_user.html:14
|
#: bookwyrm/templates/preferences/delete_user.html:14
|
||||||
msgid "Deleting your account cannot be undone. The username will not be available to register in the future."
|
msgid "Deleting your account cannot be undone. The username will not be available to register in the future."
|
||||||
msgstr ""
|
msgstr "La suppression de votre compte ne peut pas être annulée. Le nom d'utilisateur ne sera plus disponible pour vous enregistrer dans le futur."
|
||||||
|
|
||||||
#: bookwyrm/templates/preferences/edit_user.html:4
|
#: bookwyrm/templates/preferences/edit_user.html:4
|
||||||
#: bookwyrm/templates/preferences/edit_user.html:7
|
#: bookwyrm/templates/preferences/edit_user.html:7
|
||||||
|
@ -1891,12 +1901,12 @@ msgstr "Profil"
|
||||||
#: bookwyrm/templates/preferences/edit_user.html:13
|
#: bookwyrm/templates/preferences/edit_user.html:13
|
||||||
#: bookwyrm/templates/preferences/edit_user.html:68
|
#: bookwyrm/templates/preferences/edit_user.html:68
|
||||||
msgid "Display preferences"
|
msgid "Display preferences"
|
||||||
msgstr ""
|
msgstr "Paramètres d'affichage"
|
||||||
|
|
||||||
#: bookwyrm/templates/preferences/edit_user.html:14
|
#: bookwyrm/templates/preferences/edit_user.html:14
|
||||||
#: bookwyrm/templates/preferences/edit_user.html:106
|
#: bookwyrm/templates/preferences/edit_user.html:106
|
||||||
msgid "Privacy"
|
msgid "Privacy"
|
||||||
msgstr ""
|
msgstr "Confidentialité"
|
||||||
|
|
||||||
#: bookwyrm/templates/preferences/edit_user.html:72
|
#: bookwyrm/templates/preferences/edit_user.html:72
|
||||||
msgid "Show reading goal prompt in feed:"
|
msgid "Show reading goal prompt in feed:"
|
||||||
|
@ -2297,6 +2307,7 @@ msgid "Notes"
|
||||||
msgstr "Remarques"
|
msgstr "Remarques"
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/federation/instance.html:75
|
#: bookwyrm/templates/settings/federation/instance.html:75
|
||||||
|
#: bookwyrm/templates/snippets/status/status_options.html:24
|
||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr "Modifier"
|
msgstr "Modifier"
|
||||||
|
|
||||||
|
@ -2514,7 +2525,7 @@ msgstr "Gérer les comptes"
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/layout.html:51
|
#: bookwyrm/templates/settings/layout.html:51
|
||||||
msgid "Moderation"
|
msgid "Moderation"
|
||||||
msgstr ""
|
msgstr "Modération"
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/layout.html:55
|
#: bookwyrm/templates/settings/layout.html:55
|
||||||
#: bookwyrm/templates/settings/reports/reports.html:8
|
#: bookwyrm/templates/settings/reports/reports.html:8
|
||||||
|
@ -2633,11 +2644,13 @@ msgstr "Description de l’instance :"
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/site.html:36
|
#: bookwyrm/templates/settings/site.html:36
|
||||||
msgid "Short description:"
|
msgid "Short description:"
|
||||||
msgstr ""
|
msgstr "Description courte :"
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/site.html:37
|
#: bookwyrm/templates/settings/site.html:37
|
||||||
msgid "Used when the instance is previewed on joinbookwyrm.com. Does not support html or markdown."
|
#, fuzzy
|
||||||
msgstr ""
|
#| msgid "Used when the instance is previewed on joinbookwyrm.com. Does not support html or markdown."
|
||||||
|
msgid "Used when the instance is previewed on joinbookwyrm.com. Does not support HTML or Markdown."
|
||||||
|
msgstr "Utilisé lorsque l'instance est prévisualisée sur joinbookwyrm.com. Ne supporte pas html ou markdown."
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/site.html:41
|
#: bookwyrm/templates/settings/site.html:41
|
||||||
msgid "Code of conduct:"
|
msgid "Code of conduct:"
|
||||||
|
@ -2697,21 +2710,21 @@ msgstr "Texte affiché lorsque les inscriptions sont closes :"
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/site.html:124
|
#: bookwyrm/templates/settings/site.html:124
|
||||||
msgid "Invite request text:"
|
msgid "Invite request text:"
|
||||||
msgstr ""
|
msgstr "Texte de la demande d'invitation :"
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/users/delete_user_form.html:5
|
#: bookwyrm/templates/settings/users/delete_user_form.html:5
|
||||||
#: bookwyrm/templates/settings/users/user_moderation_actions.html:31
|
#: bookwyrm/templates/settings/users/user_moderation_actions.html:31
|
||||||
msgid "Permanently delete user"
|
msgid "Permanently delete user"
|
||||||
msgstr ""
|
msgstr "Supprimer définitivement l'utilisateur"
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/users/delete_user_form.html:12
|
#: bookwyrm/templates/settings/users/delete_user_form.html:12
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Are you sure you want to delete <strong>%(username)s</strong>'s account? This action cannot be undone. To proceed, please enter your password to confirm deletion."
|
msgid "Are you sure you want to delete <strong>%(username)s</strong>'s account? This action cannot be undone. To proceed, please enter your password to confirm deletion."
|
||||||
msgstr ""
|
msgstr "Êtes-vous sûr de vouloir supprimer le compte de <strong>%(username)s</strong>? Cette action ne peut pas être annulée. Pour continuer, veuillez entrer votre mot de passe pour confirmer la suppression."
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/users/delete_user_form.html:17
|
#: bookwyrm/templates/settings/users/delete_user_form.html:17
|
||||||
msgid "Your password:"
|
msgid "Your password:"
|
||||||
msgstr ""
|
msgstr "Votre mot de passe:"
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/users/user.html:7
|
#: bookwyrm/templates/settings/users/user.html:7
|
||||||
msgid "Back to users"
|
msgid "Back to users"
|
||||||
|
@ -2772,23 +2785,23 @@ msgstr "Détails du compte"
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/users/user_info.html:51
|
#: bookwyrm/templates/settings/users/user_info.html:51
|
||||||
msgid "Email:"
|
msgid "Email:"
|
||||||
msgstr ""
|
msgstr "Email:"
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/users/user_info.html:61
|
#: bookwyrm/templates/settings/users/user_info.html:61
|
||||||
msgid "(View reports)"
|
msgid "(View reports)"
|
||||||
msgstr ""
|
msgstr "(Voir les rapports)"
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/users/user_info.html:67
|
#: bookwyrm/templates/settings/users/user_info.html:67
|
||||||
msgid "Blocked by count:"
|
msgid "Blocked by count:"
|
||||||
msgstr ""
|
msgstr "Bloqué par compte:"
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/users/user_info.html:70
|
#: bookwyrm/templates/settings/users/user_info.html:70
|
||||||
msgid "Last active date:"
|
msgid "Last active date:"
|
||||||
msgstr ""
|
msgstr "Dernière date d'activité :"
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/users/user_info.html:73
|
#: bookwyrm/templates/settings/users/user_info.html:73
|
||||||
msgid "Manually approved followers:"
|
msgid "Manually approved followers:"
|
||||||
msgstr ""
|
msgstr "Abonné(e)s approuvés manuellement :"
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/users/user_info.html:76
|
#: bookwyrm/templates/settings/users/user_info.html:76
|
||||||
msgid "Discoverable:"
|
msgid "Discoverable:"
|
||||||
|
@ -2796,7 +2809,7 @@ msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/users/user_info.html:80
|
#: bookwyrm/templates/settings/users/user_info.html:80
|
||||||
msgid "Deactivation reason:"
|
msgid "Deactivation reason:"
|
||||||
msgstr ""
|
msgstr "Raison de la désactivation :"
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/users/user_info.html:95
|
#: bookwyrm/templates/settings/users/user_info.html:95
|
||||||
msgid "Instance details"
|
msgid "Instance details"
|
||||||
|
@ -2808,10 +2821,10 @@ msgstr "Voir l’instance"
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/users/user_moderation_actions.html:5
|
#: bookwyrm/templates/settings/users/user_moderation_actions.html:5
|
||||||
msgid "Permanently deleted"
|
msgid "Permanently deleted"
|
||||||
msgstr ""
|
msgstr "Supprimé définitivement"
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/users/user_moderation_actions.html:13
|
#: bookwyrm/templates/settings/users/user_moderation_actions.html:13
|
||||||
#: bookwyrm/templates/snippets/status/status_options.html:35
|
#: bookwyrm/templates/snippets/status/status_options.html:32
|
||||||
#: bookwyrm/templates/snippets/user_options.html:13
|
#: bookwyrm/templates/snippets/user_options.html:13
|
||||||
msgid "Send direct message"
|
msgid "Send direct message"
|
||||||
msgstr "Envoyer un message direct"
|
msgstr "Envoyer un message direct"
|
||||||
|
@ -2848,8 +2861,8 @@ msgstr "Créer une étagère"
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(formatted_count)s book"
|
msgid "%(formatted_count)s book"
|
||||||
msgid_plural "%(formatted_count)s books"
|
msgid_plural "%(formatted_count)s books"
|
||||||
msgstr[0] ""
|
msgstr[0] "%(formatted_count)s livre"
|
||||||
msgstr[1] ""
|
msgstr[1] "%(formatted_count)s livres"
|
||||||
|
|
||||||
#: bookwyrm/templates/shelf/shelf.html:84
|
#: bookwyrm/templates/shelf/shelf.html:84
|
||||||
#, python-format
|
#, python-format
|
||||||
|
@ -2864,22 +2877,22 @@ msgstr "Modifier l’étagère"
|
||||||
msgid "Delete shelf"
|
msgid "Delete shelf"
|
||||||
msgstr "Supprimer l’étagère"
|
msgstr "Supprimer l’étagère"
|
||||||
|
|
||||||
#: bookwyrm/templates/shelf/shelf.html:130
|
#: bookwyrm/templates/shelf/shelf.html:132
|
||||||
#: bookwyrm/templates/shelf/shelf.html:154
|
#: bookwyrm/templates/shelf/shelf.html:158
|
||||||
msgid "Shelved"
|
msgid "Shelved"
|
||||||
msgstr "Date d’ajout"
|
msgstr "Date d’ajout"
|
||||||
|
|
||||||
#: bookwyrm/templates/shelf/shelf.html:131
|
#: bookwyrm/templates/shelf/shelf.html:133
|
||||||
#: bookwyrm/templates/shelf/shelf.html:158
|
#: bookwyrm/templates/shelf/shelf.html:161
|
||||||
msgid "Started"
|
msgid "Started"
|
||||||
msgstr "Commencé"
|
msgstr "Commencé"
|
||||||
|
|
||||||
#: bookwyrm/templates/shelf/shelf.html:132
|
#: bookwyrm/templates/shelf/shelf.html:134
|
||||||
#: bookwyrm/templates/shelf/shelf.html:161
|
#: bookwyrm/templates/shelf/shelf.html:164
|
||||||
msgid "Finished"
|
msgid "Finished"
|
||||||
msgstr "Terminé"
|
msgstr "Terminé"
|
||||||
|
|
||||||
#: bookwyrm/templates/shelf/shelf.html:187
|
#: bookwyrm/templates/shelf/shelf.html:190
|
||||||
msgid "This shelf is empty."
|
msgid "This shelf is empty."
|
||||||
msgstr "Cette étagère est vide"
|
msgstr "Cette étagère est vide"
|
||||||
|
|
||||||
|
@ -2926,22 +2939,22 @@ msgstr "Citation"
|
||||||
msgid "Some thoughts on the book"
|
msgid "Some thoughts on the book"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/create_status/comment.html:26
|
#: bookwyrm/templates/snippets/create_status/comment.html:27
|
||||||
#: bookwyrm/templates/snippets/reading_modals/progress_update_modal.html:15
|
#: bookwyrm/templates/snippets/reading_modals/progress_update_modal.html:15
|
||||||
msgid "Progress:"
|
msgid "Progress:"
|
||||||
msgstr "Progression :"
|
msgstr "Progression :"
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/create_status/comment.html:52
|
#: bookwyrm/templates/snippets/create_status/comment.html:53
|
||||||
#: bookwyrm/templates/snippets/progress_field.html:18
|
#: bookwyrm/templates/snippets/progress_field.html:18
|
||||||
msgid "pages"
|
msgid "pages"
|
||||||
msgstr "pages"
|
msgstr "pages"
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/create_status/comment.html:58
|
#: bookwyrm/templates/snippets/create_status/comment.html:59
|
||||||
#: bookwyrm/templates/snippets/progress_field.html:23
|
#: bookwyrm/templates/snippets/progress_field.html:23
|
||||||
msgid "percent"
|
msgid "percent"
|
||||||
msgstr "pourcent"
|
msgstr "pourcent"
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/create_status/comment.html:65
|
#: bookwyrm/templates/snippets/create_status/comment.html:66
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "of %(pages)s pages"
|
msgid "of %(pages)s pages"
|
||||||
msgstr "sur %(pages)s pages"
|
msgstr "sur %(pages)s pages"
|
||||||
|
@ -2969,7 +2982,7 @@ msgstr "Attention spoilers !"
|
||||||
msgid "Include spoiler alert"
|
msgid "Include spoiler alert"
|
||||||
msgstr "Afficher une alerte spoiler"
|
msgstr "Afficher une alerte spoiler"
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/create_status/layout.html:41
|
#: bookwyrm/templates/snippets/create_status/layout.html:48
|
||||||
#: bookwyrm/templates/snippets/reading_modals/form.html:7
|
#: bookwyrm/templates/snippets/reading_modals/form.html:7
|
||||||
msgid "Comment:"
|
msgid "Comment:"
|
||||||
msgstr "Commentaire :"
|
msgstr "Commentaire :"
|
||||||
|
@ -3163,12 +3176,12 @@ msgstr "Vous avez lu <a href=\"%(path)s\">%(read_count)s sur %(goal_count)s livr
|
||||||
msgid "%(username)s has read <a href=\"%(path)s\">%(read_count)s of %(goal_count)s books</a>."
|
msgid "%(username)s has read <a href=\"%(path)s\">%(read_count)s of %(goal_count)s books</a>."
|
||||||
msgstr "%(username)s a lu <a href=\"%(path)s\">%(read_count)s sur %(goal_count)s livres</a>."
|
msgstr "%(username)s a lu <a href=\"%(path)s\">%(read_count)s sur %(goal_count)s livres</a>."
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/page_text.html:4
|
#: bookwyrm/templates/snippets/page_text.html:8
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "page %(page)s of %(total_pages)s"
|
msgid "page %(page)s of %(total_pages)s"
|
||||||
msgstr "page %(page)s sur %(total_pages)s pages"
|
msgstr "page %(page)s sur %(total_pages)s pages"
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/page_text.html:6
|
#: bookwyrm/templates/snippets/page_text.html:14
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "page %(page)s"
|
msgid "page %(page)s"
|
||||||
msgstr "page %(page)s"
|
msgstr "page %(page)s"
|
||||||
|
@ -3329,6 +3342,12 @@ msgstr "Ouvrir l’image dans une nouvelle fenêtre"
|
||||||
msgid "Hide status"
|
msgid "Hide status"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: bookwyrm/templates/snippets/status/header.html:45
|
||||||
|
#, fuzzy, python-format
|
||||||
|
#| msgid "Joined %(date)s"
|
||||||
|
msgid "edited %(date)s"
|
||||||
|
msgstr "A rejoint ce serveur %(date)s"
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/status/headers/comment.html:2
|
#: bookwyrm/templates/snippets/status/headers/comment.html:2
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "commented on <a href=\"%(book_path)s\">%(book)s</a>"
|
msgid "commented on <a href=\"%(book_path)s\">%(book)s</a>"
|
||||||
|
@ -3393,10 +3412,6 @@ msgstr "a partagé"
|
||||||
msgid "More options"
|
msgid "More options"
|
||||||
msgstr "Plus d’options"
|
msgstr "Plus d’options"
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/status/status_options.html:26
|
|
||||||
msgid "Delete & re-draft"
|
|
||||||
msgstr "Supprimer & recommencer la rédaction"
|
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/suggested_users.html:16
|
#: bookwyrm/templates/snippets/suggested_users.html:16
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(mutuals)s follower you follow"
|
msgid "%(mutuals)s follower you follow"
|
||||||
|
@ -3585,3 +3600,26 @@ msgstr "Un lien de réinitialisation a été envoyé à {email}."
|
||||||
msgid "Status updates from {obj.display_name}"
|
msgid "Status updates from {obj.display_name}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#~ msgid "Compose status"
|
||||||
|
#~ msgstr "Rédiger un statut"
|
||||||
|
|
||||||
|
#~ msgid "%(format)s"
|
||||||
|
#~ msgstr "%(format)s"
|
||||||
|
|
||||||
|
#~ msgid "rated"
|
||||||
|
#~ msgstr "a noté"
|
||||||
|
|
||||||
|
#~ msgid "reviewed"
|
||||||
|
#~ msgstr "a écrit une critique de"
|
||||||
|
|
||||||
|
#~ msgid "commented on"
|
||||||
|
#~ msgstr "a commenté"
|
||||||
|
|
||||||
|
#~ msgid "quoted"
|
||||||
|
#~ msgstr "a cité"
|
||||||
|
|
||||||
|
#~ msgid "About this instance"
|
||||||
|
#~ msgstr "À propos de cette instance"
|
||||||
|
|
||||||
|
#~ msgid "Delete & re-draft"
|
||||||
|
#~ msgstr "Supprimer & recommencer la rédaction"
|
||||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
BIN
locale/pt_BR/LC_MESSAGES/django.mo
Normal file
BIN
locale/pt_BR/LC_MESSAGES/django.mo
Normal file
Binary file not shown.
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
Binary file not shown.
|
@ -2,7 +2,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: bookwyrm\n"
|
"Project-Id-Version: bookwyrm\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-10-06 23:57+0000\n"
|
"POT-Creation-Date: 2021-10-15 22:03+0000\n"
|
||||||
"PO-Revision-Date: 2021-10-08 00:03\n"
|
"PO-Revision-Date: 2021-10-08 00:03\n"
|
||||||
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
|
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
|
||||||
"Language-Team: Chinese Simplified\n"
|
"Language-Team: Chinese Simplified\n"
|
||||||
|
@ -54,8 +54,8 @@ msgstr "列表顺序"
|
||||||
msgid "Book Title"
|
msgid "Book Title"
|
||||||
msgstr "书名"
|
msgstr "书名"
|
||||||
|
|
||||||
#: bookwyrm/forms.py:328 bookwyrm/templates/shelf/shelf.html:134
|
#: bookwyrm/forms.py:328 bookwyrm/templates/shelf/shelf.html:136
|
||||||
#: bookwyrm/templates/shelf/shelf.html:165
|
#: bookwyrm/templates/shelf/shelf.html:168
|
||||||
#: bookwyrm/templates/snippets/create_status/review.html:33
|
#: bookwyrm/templates/snippets/create_status/review.html:33
|
||||||
msgid "Rating"
|
msgid "Rating"
|
||||||
msgstr "评价"
|
msgstr "评价"
|
||||||
|
@ -151,45 +151,49 @@ msgstr "用户名"
|
||||||
msgid "A user with that username already exists."
|
msgid "A user with that username already exists."
|
||||||
msgstr "已经存在使用该用户名的用户。"
|
msgstr "已经存在使用该用户名的用户。"
|
||||||
|
|
||||||
#: bookwyrm/settings.py:117
|
#: bookwyrm/settings.py:118
|
||||||
msgid "Home Timeline"
|
msgid "Home Timeline"
|
||||||
msgstr "主页时间线"
|
msgstr "主页时间线"
|
||||||
|
|
||||||
#: bookwyrm/settings.py:117
|
#: bookwyrm/settings.py:118
|
||||||
msgid "Home"
|
msgid "Home"
|
||||||
msgstr "主页"
|
msgstr "主页"
|
||||||
|
|
||||||
#: bookwyrm/settings.py:118
|
#: bookwyrm/settings.py:119
|
||||||
msgid "Books Timeline"
|
msgid "Books Timeline"
|
||||||
msgstr "书目时间线"
|
msgstr "书目时间线"
|
||||||
|
|
||||||
#: bookwyrm/settings.py:118 bookwyrm/templates/search/layout.html:21
|
#: bookwyrm/settings.py:119 bookwyrm/templates/search/layout.html:21
|
||||||
#: bookwyrm/templates/search/layout.html:42
|
#: bookwyrm/templates/search/layout.html:42
|
||||||
#: bookwyrm/templates/user/layout.html:81
|
#: bookwyrm/templates/user/layout.html:81
|
||||||
msgid "Books"
|
msgid "Books"
|
||||||
msgstr "书目"
|
msgstr "书目"
|
||||||
|
|
||||||
#: bookwyrm/settings.py:164
|
#: bookwyrm/settings.py:165
|
||||||
msgid "English"
|
msgid "English"
|
||||||
msgstr "English(英语)"
|
msgstr "English(英语)"
|
||||||
|
|
||||||
#: bookwyrm/settings.py:165
|
#: bookwyrm/settings.py:166
|
||||||
msgid "Deutsch (German)"
|
msgid "Deutsch (German)"
|
||||||
msgstr "Deutsch(德语)"
|
msgstr "Deutsch(德语)"
|
||||||
|
|
||||||
#: bookwyrm/settings.py:166
|
#: bookwyrm/settings.py:167
|
||||||
msgid "Español (Spanish)"
|
msgid "Español (Spanish)"
|
||||||
msgstr "Español(西班牙语)"
|
msgstr "Español(西班牙语)"
|
||||||
|
|
||||||
#: bookwyrm/settings.py:167
|
#: bookwyrm/settings.py:168
|
||||||
msgid "Français (French)"
|
msgid "Français (French)"
|
||||||
msgstr "Français(法语)"
|
msgstr "Français(法语)"
|
||||||
|
|
||||||
#: bookwyrm/settings.py:168
|
#: bookwyrm/settings.py:169
|
||||||
|
msgid "Português - Brasil (Brazilian Portuguese)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: bookwyrm/settings.py:170
|
||||||
msgid "简体中文 (Simplified Chinese)"
|
msgid "简体中文 (Simplified Chinese)"
|
||||||
msgstr "简体中文"
|
msgstr "简体中文"
|
||||||
|
|
||||||
#: bookwyrm/settings.py:169
|
#: bookwyrm/settings.py:171
|
||||||
msgid "繁體中文 (Traditional Chinese)"
|
msgid "繁體中文 (Traditional Chinese)"
|
||||||
msgstr "繁體中文(繁体中文)"
|
msgstr "繁體中文(繁体中文)"
|
||||||
|
|
||||||
|
@ -668,11 +672,6 @@ msgstr "语言:"
|
||||||
msgid "Search editions"
|
msgid "Search editions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/publisher_info.html:21
|
|
||||||
#, python-format
|
|
||||||
msgid "%(format)s"
|
|
||||||
msgstr "%(format)s"
|
|
||||||
|
|
||||||
#: bookwyrm/templates/book/publisher_info.html:23
|
#: bookwyrm/templates/book/publisher_info.html:23
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(format)s, %(pages)s pages"
|
msgid "%(format)s, %(pages)s pages"
|
||||||
|
@ -752,8 +751,10 @@ msgid "Help"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/compose.html:5 bookwyrm/templates/compose.html:8
|
#: bookwyrm/templates/compose.html:5 bookwyrm/templates/compose.html:8
|
||||||
msgid "Compose status"
|
#, fuzzy
|
||||||
msgstr "撰写状态"
|
#| msgid "View status"
|
||||||
|
msgid "Edit status"
|
||||||
|
msgstr "浏览状态"
|
||||||
|
|
||||||
#: bookwyrm/templates/confirm_email/confirm_email.html:4
|
#: bookwyrm/templates/confirm_email/confirm_email.html:4
|
||||||
msgid "Confirm email"
|
msgid "Confirm email"
|
||||||
|
@ -885,6 +886,30 @@ msgstr "BookWyrm 用户"
|
||||||
msgid "All known users"
|
msgid "All known users"
|
||||||
msgstr "所有已知用户"
|
msgstr "所有已知用户"
|
||||||
|
|
||||||
|
#: bookwyrm/templates/discover/card-header.html:9
|
||||||
|
#, fuzzy, python-format
|
||||||
|
#| msgid "<a href=\"%(user_path)s\">%(username)s</a> wants to read <a href=\"%(book_path)s\">%(book)s</a>"
|
||||||
|
msgid "<a href=\"%(user_path)s\">%(username)s</a> rated <a href=\"%(book_path)s\">%(book_title)s</a>"
|
||||||
|
msgstr "<a href=\"%(user_path)s\">%(username)s</a> 想要阅读 <a href=\"%(book_path)s\">%(book)s</a>"
|
||||||
|
|
||||||
|
#: bookwyrm/templates/discover/card-header.html:13
|
||||||
|
#, fuzzy, python-format
|
||||||
|
#| msgid "<a href=\"%(user_path)s\">%(username)s</a> wants to read <a href=\"%(book_path)s\">%(book)s</a>"
|
||||||
|
msgid "<a href=\"%(user_path)s\">%(username)s</a> reviewed <a href=\"%(book_path)s\">%(book_title)s</a>"
|
||||||
|
msgstr "<a href=\"%(user_path)s\">%(username)s</a> 想要阅读 <a href=\"%(book_path)s\">%(book)s</a>"
|
||||||
|
|
||||||
|
#: bookwyrm/templates/discover/card-header.html:17
|
||||||
|
#, fuzzy, python-format
|
||||||
|
#| msgid "<a href=\"%(user_path)s\">%(username)s</a> wants to read <a href=\"%(book_path)s\">%(book)s</a>"
|
||||||
|
msgid "<a href=\"%(user_path)s\">%(username)s</a> commented on <a href=\"%(book_path)s\">%(book_title)s</a>"
|
||||||
|
msgstr "<a href=\"%(user_path)s\">%(username)s</a> 想要阅读 <a href=\"%(book_path)s\">%(book)s</a>"
|
||||||
|
|
||||||
|
#: bookwyrm/templates/discover/card-header.html:21
|
||||||
|
#, fuzzy, python-format
|
||||||
|
#| msgid "<a href=\"%(user_path)s\">%(username)s</a> wants to read <a href=\"%(book_path)s\">%(book)s</a>"
|
||||||
|
msgid "<a href=\"%(user_path)s\">%(username)s</a> quoted <a href=\"%(book_path)s\">%(book_title)s</a>"
|
||||||
|
msgstr "<a href=\"%(user_path)s\">%(username)s</a> 想要阅读 <a href=\"%(book_path)s\">%(book)s</a>"
|
||||||
|
|
||||||
#: bookwyrm/templates/discover/discover.html:4
|
#: bookwyrm/templates/discover/discover.html:4
|
||||||
#: bookwyrm/templates/discover/discover.html:10
|
#: bookwyrm/templates/discover/discover.html:10
|
||||||
#: bookwyrm/templates/layout.html:78
|
#: bookwyrm/templates/layout.html:78
|
||||||
|
@ -896,28 +921,8 @@ msgstr "发现"
|
||||||
msgid "See what's new in the local %(site_name)s community"
|
msgid "See what's new in the local %(site_name)s community"
|
||||||
msgstr "看看本地 %(site_name)s 社区的新消息"
|
msgstr "看看本地 %(site_name)s 社区的新消息"
|
||||||
|
|
||||||
#: bookwyrm/templates/discover/large-book.html:46
|
|
||||||
#: bookwyrm/templates/discover/small-book.html:32
|
|
||||||
msgid "rated"
|
|
||||||
msgstr "评价了"
|
|
||||||
|
|
||||||
#: bookwyrm/templates/discover/large-book.html:48
|
|
||||||
#: bookwyrm/templates/discover/small-book.html:34
|
|
||||||
msgid "reviewed"
|
|
||||||
msgstr "写了书评给"
|
|
||||||
|
|
||||||
#: bookwyrm/templates/discover/large-book.html:50
|
|
||||||
#: bookwyrm/templates/discover/small-book.html:36
|
|
||||||
msgid "commented on"
|
|
||||||
msgstr "评论了"
|
|
||||||
|
|
||||||
#: bookwyrm/templates/discover/large-book.html:52
|
#: bookwyrm/templates/discover/large-book.html:52
|
||||||
#: bookwyrm/templates/discover/small-book.html:38
|
#: bookwyrm/templates/discover/small-book.html:36
|
||||||
msgid "quoted"
|
|
||||||
msgstr "引用了"
|
|
||||||
|
|
||||||
#: bookwyrm/templates/discover/large-book.html:68
|
|
||||||
#: bookwyrm/templates/discover/small-book.html:52
|
|
||||||
msgid "View status"
|
msgid "View status"
|
||||||
msgstr "浏览状态"
|
msgstr "浏览状态"
|
||||||
|
|
||||||
|
@ -970,8 +975,9 @@ msgid "Join Now"
|
||||||
msgstr "立即加入"
|
msgstr "立即加入"
|
||||||
|
|
||||||
#: bookwyrm/templates/email/invite/html_content.html:15
|
#: bookwyrm/templates/email/invite/html_content.html:15
|
||||||
#, python-format
|
#, fuzzy, python-format
|
||||||
msgid "Learn more <a href=\"https://%(domain)s%(about_path)s\">about this instance</a>."
|
#| msgid "Learn more <a href=\"https://%(domain)s%(about_path)s\">about this instance</a>."
|
||||||
|
msgid "Learn more <a href=\"https://%(domain)s%(about_path)s\">about %(site_name)s</a>."
|
||||||
msgstr "了解更多 <a href=\"https://%(domain)s%(about_path)s\">有关本实例的信息</a>。"
|
msgstr "了解更多 <a href=\"https://%(domain)s%(about_path)s\">有关本实例的信息</a>。"
|
||||||
|
|
||||||
#: bookwyrm/templates/email/invite/text_content.html:4
|
#: bookwyrm/templates/email/invite/text_content.html:4
|
||||||
|
@ -980,7 +986,9 @@ msgid "You're invited to join %(site_name)s! Click the link below to create an a
|
||||||
msgstr "你受邀请加入 %(site_name)s!点击下面的连接来创建帐号。"
|
msgstr "你受邀请加入 %(site_name)s!点击下面的连接来创建帐号。"
|
||||||
|
|
||||||
#: bookwyrm/templates/email/invite/text_content.html:8
|
#: bookwyrm/templates/email/invite/text_content.html:8
|
||||||
msgid "Learn more about this instance:"
|
#, fuzzy, python-format
|
||||||
|
#| msgid "Learn more about this instance:"
|
||||||
|
msgid "Learn more about %(site_name)s:"
|
||||||
msgstr "了解更多有关本实例的信息:"
|
msgstr "了解更多有关本实例的信息:"
|
||||||
|
|
||||||
#: bookwyrm/templates/email/password_reset/html_content.html:6
|
#: bookwyrm/templates/email/password_reset/html_content.html:6
|
||||||
|
@ -1320,13 +1328,13 @@ msgstr "书目"
|
||||||
|
|
||||||
#: bookwyrm/templates/import/import_status.html:122
|
#: bookwyrm/templates/import/import_status.html:122
|
||||||
#: bookwyrm/templates/shelf/shelf.html:128
|
#: bookwyrm/templates/shelf/shelf.html:128
|
||||||
#: bookwyrm/templates/shelf/shelf.html:148
|
#: bookwyrm/templates/shelf/shelf.html:150
|
||||||
msgid "Title"
|
msgid "Title"
|
||||||
msgstr "标题"
|
msgstr "标题"
|
||||||
|
|
||||||
#: bookwyrm/templates/import/import_status.html:125
|
#: bookwyrm/templates/import/import_status.html:125
|
||||||
#: bookwyrm/templates/shelf/shelf.html:129
|
#: bookwyrm/templates/shelf/shelf.html:129
|
||||||
#: bookwyrm/templates/shelf/shelf.html:151
|
#: bookwyrm/templates/shelf/shelf.html:153
|
||||||
msgid "Author"
|
msgid "Author"
|
||||||
msgstr "作者"
|
msgstr "作者"
|
||||||
|
|
||||||
|
@ -1335,7 +1343,7 @@ msgid "Imported"
|
||||||
msgstr "已导入"
|
msgstr "已导入"
|
||||||
|
|
||||||
#: bookwyrm/templates/import/tooltip.html:6
|
#: bookwyrm/templates/import/tooltip.html:6
|
||||||
msgid "You can download your GoodReads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener\">Import/Export page</a> of your GoodReads account."
|
msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener\">Import/Export page</a> of your Goodreads account."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/invite.html:4 bookwyrm/templates/invite.html:8
|
#: bookwyrm/templates/invite.html:4 bookwyrm/templates/invite.html:8
|
||||||
|
@ -1351,7 +1359,7 @@ msgstr "没有权限"
|
||||||
msgid "Sorry! This invite code is no longer valid."
|
msgid "Sorry! This invite code is no longer valid."
|
||||||
msgstr "抱歉!此邀请码已不再有效。"
|
msgstr "抱歉!此邀请码已不再有效。"
|
||||||
|
|
||||||
#: bookwyrm/templates/landing/about.html:7
|
#: bookwyrm/templates/landing/about.html:7 bookwyrm/templates/layout.html:230
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "About %(site_name)s"
|
msgid "About %(site_name)s"
|
||||||
msgstr "关于 %(site_name)s"
|
msgstr "关于 %(site_name)s"
|
||||||
|
@ -1482,10 +1490,6 @@ msgstr ""
|
||||||
msgid "Error posting status"
|
msgid "Error posting status"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/layout.html:230
|
|
||||||
msgid "About this instance"
|
|
||||||
msgstr "关于本实例"
|
|
||||||
|
|
||||||
#: bookwyrm/templates/layout.html:234
|
#: bookwyrm/templates/layout.html:234
|
||||||
msgid "Contact site admin"
|
msgid "Contact site admin"
|
||||||
msgstr "联系站点管理员"
|
msgstr "联系站点管理员"
|
||||||
|
@ -1729,23 +1733,27 @@ msgid "boosted your <a href=\"%(related_path)s\">status</a>"
|
||||||
msgstr "转发了你的 <a href=\"%(related_path)s\">状态</a>"
|
msgstr "转发了你的 <a href=\"%(related_path)s\">状态</a>"
|
||||||
|
|
||||||
#: bookwyrm/templates/notifications/items/fav.html:19
|
#: bookwyrm/templates/notifications/items/fav.html:19
|
||||||
#, python-format
|
#, fuzzy, python-format
|
||||||
msgid "favorited your <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>"
|
#| msgid "favorited your <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>"
|
||||||
|
msgid "liked your <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>"
|
||||||
msgstr "喜欢了你 <a href=\"%(related_path)s\">对 <em>%(book_title)s</em> 的书评</a>"
|
msgstr "喜欢了你 <a href=\"%(related_path)s\">对 <em>%(book_title)s</em> 的书评</a>"
|
||||||
|
|
||||||
#: bookwyrm/templates/notifications/items/fav.html:25
|
#: bookwyrm/templates/notifications/items/fav.html:25
|
||||||
#, python-format
|
#, fuzzy, python-format
|
||||||
msgid "favorited your <a href=\"%(related_path)s\">comment on<em>%(book_title)s</em></a>"
|
#| msgid "boosted your <a href=\"%(related_path)s\">comment on<em>%(book_title)s</em></a>"
|
||||||
msgstr ""
|
msgid "liked your <a href=\"%(related_path)s\">comment on<em>%(book_title)s</em></a>"
|
||||||
|
msgstr "转发了你的 <a href=\"%(related_path)s\">对 <em>%(book_title)s</em> 的评论</a>"
|
||||||
|
|
||||||
#: bookwyrm/templates/notifications/items/fav.html:31
|
#: bookwyrm/templates/notifications/items/fav.html:31
|
||||||
#, python-format
|
#, fuzzy, python-format
|
||||||
msgid "favorited your <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>"
|
#| msgid "favorited your <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>"
|
||||||
|
msgid "liked your <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>"
|
||||||
msgstr "喜欢了你 <a href=\"%(related_path)s\">来自 <em>%(book_title)s</em> 的引用</a>"
|
msgstr "喜欢了你 <a href=\"%(related_path)s\">来自 <em>%(book_title)s</em> 的引用</a>"
|
||||||
|
|
||||||
#: bookwyrm/templates/notifications/items/fav.html:37
|
#: bookwyrm/templates/notifications/items/fav.html:37
|
||||||
#, python-format
|
#, fuzzy, python-format
|
||||||
msgid "favorited your <a href=\"%(related_path)s\">status</a>"
|
#| msgid "favorited your <a href=\"%(related_path)s\">status</a>"
|
||||||
|
msgid "liked your <a href=\"%(related_path)s\">status</a>"
|
||||||
msgstr "喜欢了你的 <a href=\"%(related_path)s\">状态</a>"
|
msgstr "喜欢了你的 <a href=\"%(related_path)s\">状态</a>"
|
||||||
|
|
||||||
#: bookwyrm/templates/notifications/items/follow.html:15
|
#: bookwyrm/templates/notifications/items/follow.html:15
|
||||||
|
@ -2291,6 +2299,7 @@ msgid "Notes"
|
||||||
msgstr "备注"
|
msgstr "备注"
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/federation/instance.html:75
|
#: bookwyrm/templates/settings/federation/instance.html:75
|
||||||
|
#: bookwyrm/templates/snippets/status/status_options.html:24
|
||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr "编辑"
|
msgstr "编辑"
|
||||||
|
|
||||||
|
@ -2630,7 +2639,7 @@ msgid "Short description:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/site.html:37
|
#: bookwyrm/templates/settings/site.html:37
|
||||||
msgid "Used when the instance is previewed on joinbookwyrm.com. Does not support html or markdown."
|
msgid "Used when the instance is previewed on joinbookwyrm.com. Does not support HTML or Markdown."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/site.html:41
|
#: bookwyrm/templates/settings/site.html:41
|
||||||
|
@ -2805,7 +2814,7 @@ msgid "Permanently deleted"
|
||||||
msgstr "已永久删除"
|
msgstr "已永久删除"
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/users/user_moderation_actions.html:13
|
#: bookwyrm/templates/settings/users/user_moderation_actions.html:13
|
||||||
#: bookwyrm/templates/snippets/status/status_options.html:35
|
#: bookwyrm/templates/snippets/status/status_options.html:32
|
||||||
#: bookwyrm/templates/snippets/user_options.html:13
|
#: bookwyrm/templates/snippets/user_options.html:13
|
||||||
msgid "Send direct message"
|
msgid "Send direct message"
|
||||||
msgstr "发送私信"
|
msgstr "发送私信"
|
||||||
|
@ -2857,22 +2866,22 @@ msgstr "编辑书架"
|
||||||
msgid "Delete shelf"
|
msgid "Delete shelf"
|
||||||
msgstr "删除书架"
|
msgstr "删除书架"
|
||||||
|
|
||||||
#: bookwyrm/templates/shelf/shelf.html:130
|
#: bookwyrm/templates/shelf/shelf.html:132
|
||||||
#: bookwyrm/templates/shelf/shelf.html:154
|
#: bookwyrm/templates/shelf/shelf.html:158
|
||||||
msgid "Shelved"
|
msgid "Shelved"
|
||||||
msgstr "上架时间"
|
msgstr "上架时间"
|
||||||
|
|
||||||
#: bookwyrm/templates/shelf/shelf.html:131
|
#: bookwyrm/templates/shelf/shelf.html:133
|
||||||
#: bookwyrm/templates/shelf/shelf.html:158
|
#: bookwyrm/templates/shelf/shelf.html:161
|
||||||
msgid "Started"
|
msgid "Started"
|
||||||
msgstr "开始时间"
|
msgstr "开始时间"
|
||||||
|
|
||||||
#: bookwyrm/templates/shelf/shelf.html:132
|
#: bookwyrm/templates/shelf/shelf.html:134
|
||||||
#: bookwyrm/templates/shelf/shelf.html:161
|
#: bookwyrm/templates/shelf/shelf.html:164
|
||||||
msgid "Finished"
|
msgid "Finished"
|
||||||
msgstr "完成时间"
|
msgstr "完成时间"
|
||||||
|
|
||||||
#: bookwyrm/templates/shelf/shelf.html:187
|
#: bookwyrm/templates/shelf/shelf.html:190
|
||||||
msgid "This shelf is empty."
|
msgid "This shelf is empty."
|
||||||
msgstr "此书架是空的。"
|
msgstr "此书架是空的。"
|
||||||
|
|
||||||
|
@ -2918,22 +2927,22 @@ msgstr "引用"
|
||||||
msgid "Some thoughts on the book"
|
msgid "Some thoughts on the book"
|
||||||
msgstr "对书的一些看法"
|
msgstr "对书的一些看法"
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/create_status/comment.html:26
|
#: bookwyrm/templates/snippets/create_status/comment.html:27
|
||||||
#: bookwyrm/templates/snippets/reading_modals/progress_update_modal.html:15
|
#: bookwyrm/templates/snippets/reading_modals/progress_update_modal.html:15
|
||||||
msgid "Progress:"
|
msgid "Progress:"
|
||||||
msgstr "进度:"
|
msgstr "进度:"
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/create_status/comment.html:52
|
#: bookwyrm/templates/snippets/create_status/comment.html:53
|
||||||
#: bookwyrm/templates/snippets/progress_field.html:18
|
#: bookwyrm/templates/snippets/progress_field.html:18
|
||||||
msgid "pages"
|
msgid "pages"
|
||||||
msgstr "页数"
|
msgstr "页数"
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/create_status/comment.html:58
|
#: bookwyrm/templates/snippets/create_status/comment.html:59
|
||||||
#: bookwyrm/templates/snippets/progress_field.html:23
|
#: bookwyrm/templates/snippets/progress_field.html:23
|
||||||
msgid "percent"
|
msgid "percent"
|
||||||
msgstr "百分比"
|
msgstr "百分比"
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/create_status/comment.html:65
|
#: bookwyrm/templates/snippets/create_status/comment.html:66
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "of %(pages)s pages"
|
msgid "of %(pages)s pages"
|
||||||
msgstr "全书 %(pages)s 页"
|
msgstr "全书 %(pages)s 页"
|
||||||
|
@ -2961,7 +2970,7 @@ msgstr "前有剧透!"
|
||||||
msgid "Include spoiler alert"
|
msgid "Include spoiler alert"
|
||||||
msgstr "加入剧透警告"
|
msgstr "加入剧透警告"
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/create_status/layout.html:41
|
#: bookwyrm/templates/snippets/create_status/layout.html:48
|
||||||
#: bookwyrm/templates/snippets/reading_modals/form.html:7
|
#: bookwyrm/templates/snippets/reading_modals/form.html:7
|
||||||
msgid "Comment:"
|
msgid "Comment:"
|
||||||
msgstr "评论:"
|
msgstr "评论:"
|
||||||
|
@ -3150,12 +3159,12 @@ msgstr "你已经阅读了 <a href=\"%(path)s\">%(goal_count)s 本书中的 %(re
|
||||||
msgid "%(username)s has read <a href=\"%(path)s\">%(read_count)s of %(goal_count)s books</a>."
|
msgid "%(username)s has read <a href=\"%(path)s\">%(read_count)s of %(goal_count)s books</a>."
|
||||||
msgstr "%(username)s 已经阅读了 <a href=\"%(path)s\">%(goal_count)s 本书中的 %(read_count)s 本</a>。"
|
msgstr "%(username)s 已经阅读了 <a href=\"%(path)s\">%(goal_count)s 本书中的 %(read_count)s 本</a>。"
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/page_text.html:4
|
#: bookwyrm/templates/snippets/page_text.html:8
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "page %(page)s of %(total_pages)s"
|
msgid "page %(page)s of %(total_pages)s"
|
||||||
msgstr "%(total_pages)s 页中的第 %(page)s 页"
|
msgstr "%(total_pages)s 页中的第 %(page)s 页"
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/page_text.html:6
|
#: bookwyrm/templates/snippets/page_text.html:14
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "page %(page)s"
|
msgid "page %(page)s"
|
||||||
msgstr "第 %(page)s 页"
|
msgstr "第 %(page)s 页"
|
||||||
|
@ -3316,6 +3325,12 @@ msgstr "在新窗口中打开图像"
|
||||||
msgid "Hide status"
|
msgid "Hide status"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: bookwyrm/templates/snippets/status/header.html:45
|
||||||
|
#, fuzzy, python-format
|
||||||
|
#| msgid "Joined %(date)s"
|
||||||
|
msgid "edited %(date)s"
|
||||||
|
msgstr "在 %(date)s 加入"
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/status/headers/comment.html:2
|
#: bookwyrm/templates/snippets/status/headers/comment.html:2
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "commented on <a href=\"%(book_path)s\">%(book)s</a>"
|
msgid "commented on <a href=\"%(book_path)s\">%(book)s</a>"
|
||||||
|
@ -3380,10 +3395,6 @@ msgstr "转发了"
|
||||||
msgid "More options"
|
msgid "More options"
|
||||||
msgstr "更多选项"
|
msgstr "更多选项"
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/status/status_options.html:26
|
|
||||||
msgid "Delete & re-draft"
|
|
||||||
msgstr "删除并重新起草"
|
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/suggested_users.html:16
|
#: bookwyrm/templates/snippets/suggested_users.html:16
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(mutuals)s follower you follow"
|
msgid "%(mutuals)s follower you follow"
|
||||||
|
@ -3568,3 +3579,26 @@ msgstr "密码重置连接已发送给 {email}"
|
||||||
msgid "Status updates from {obj.display_name}"
|
msgid "Status updates from {obj.display_name}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#~ msgid "Compose status"
|
||||||
|
#~ msgstr "撰写状态"
|
||||||
|
|
||||||
|
#~ msgid "%(format)s"
|
||||||
|
#~ msgstr "%(format)s"
|
||||||
|
|
||||||
|
#~ msgid "rated"
|
||||||
|
#~ msgstr "评价了"
|
||||||
|
|
||||||
|
#~ msgid "reviewed"
|
||||||
|
#~ msgstr "写了书评给"
|
||||||
|
|
||||||
|
#~ msgid "commented on"
|
||||||
|
#~ msgstr "评论了"
|
||||||
|
|
||||||
|
#~ msgid "quoted"
|
||||||
|
#~ msgstr "引用了"
|
||||||
|
|
||||||
|
#~ msgid "About this instance"
|
||||||
|
#~ msgstr "关于本实例"
|
||||||
|
|
||||||
|
#~ msgid "Delete & re-draft"
|
||||||
|
#~ msgstr "删除并重新起草"
|
||||||
|
|
Binary file not shown.
|
@ -2,7 +2,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: bookwyrm\n"
|
"Project-Id-Version: bookwyrm\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-10-06 23:57+0000\n"
|
"POT-Creation-Date: 2021-10-15 22:03+0000\n"
|
||||||
"PO-Revision-Date: 2021-10-08 00:03\n"
|
"PO-Revision-Date: 2021-10-08 00:03\n"
|
||||||
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
|
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
|
||||||
"Language-Team: Chinese Traditional\n"
|
"Language-Team: Chinese Traditional\n"
|
||||||
|
@ -54,8 +54,8 @@ msgstr "列表順序"
|
||||||
msgid "Book Title"
|
msgid "Book Title"
|
||||||
msgstr "書名"
|
msgstr "書名"
|
||||||
|
|
||||||
#: bookwyrm/forms.py:328 bookwyrm/templates/shelf/shelf.html:134
|
#: bookwyrm/forms.py:328 bookwyrm/templates/shelf/shelf.html:136
|
||||||
#: bookwyrm/templates/shelf/shelf.html:165
|
#: bookwyrm/templates/shelf/shelf.html:168
|
||||||
#: bookwyrm/templates/snippets/create_status/review.html:33
|
#: bookwyrm/templates/snippets/create_status/review.html:33
|
||||||
msgid "Rating"
|
msgid "Rating"
|
||||||
msgstr "評價"
|
msgstr "評價"
|
||||||
|
@ -151,45 +151,49 @@ msgstr "使用者名稱"
|
||||||
msgid "A user with that username already exists."
|
msgid "A user with that username already exists."
|
||||||
msgstr "已經存在使用該名稱的使用者。"
|
msgstr "已經存在使用該名稱的使用者。"
|
||||||
|
|
||||||
#: bookwyrm/settings.py:117
|
#: bookwyrm/settings.py:118
|
||||||
msgid "Home Timeline"
|
msgid "Home Timeline"
|
||||||
msgstr "主頁時間線"
|
msgstr "主頁時間線"
|
||||||
|
|
||||||
#: bookwyrm/settings.py:117
|
#: bookwyrm/settings.py:118
|
||||||
msgid "Home"
|
msgid "Home"
|
||||||
msgstr "主頁"
|
msgstr "主頁"
|
||||||
|
|
||||||
#: bookwyrm/settings.py:118
|
#: bookwyrm/settings.py:119
|
||||||
msgid "Books Timeline"
|
msgid "Books Timeline"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/settings.py:118 bookwyrm/templates/search/layout.html:21
|
#: bookwyrm/settings.py:119 bookwyrm/templates/search/layout.html:21
|
||||||
#: bookwyrm/templates/search/layout.html:42
|
#: bookwyrm/templates/search/layout.html:42
|
||||||
#: bookwyrm/templates/user/layout.html:81
|
#: bookwyrm/templates/user/layout.html:81
|
||||||
msgid "Books"
|
msgid "Books"
|
||||||
msgstr "書目"
|
msgstr "書目"
|
||||||
|
|
||||||
#: bookwyrm/settings.py:164
|
#: bookwyrm/settings.py:165
|
||||||
msgid "English"
|
msgid "English"
|
||||||
msgstr "English(英語)"
|
msgstr "English(英語)"
|
||||||
|
|
||||||
#: bookwyrm/settings.py:165
|
#: bookwyrm/settings.py:166
|
||||||
msgid "Deutsch (German)"
|
msgid "Deutsch (German)"
|
||||||
msgstr "Deutsch(德語)"
|
msgstr "Deutsch(德語)"
|
||||||
|
|
||||||
#: bookwyrm/settings.py:166
|
#: bookwyrm/settings.py:167
|
||||||
msgid "Español (Spanish)"
|
msgid "Español (Spanish)"
|
||||||
msgstr "Español(西班牙語)"
|
msgstr "Español(西班牙語)"
|
||||||
|
|
||||||
#: bookwyrm/settings.py:167
|
#: bookwyrm/settings.py:168
|
||||||
msgid "Français (French)"
|
msgid "Français (French)"
|
||||||
msgstr "Français(法語)"
|
msgstr "Français(法語)"
|
||||||
|
|
||||||
#: bookwyrm/settings.py:168
|
#: bookwyrm/settings.py:169
|
||||||
|
msgid "Português - Brasil (Brazilian Portuguese)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: bookwyrm/settings.py:170
|
||||||
msgid "简体中文 (Simplified Chinese)"
|
msgid "简体中文 (Simplified Chinese)"
|
||||||
msgstr "簡體中文"
|
msgstr "簡體中文"
|
||||||
|
|
||||||
#: bookwyrm/settings.py:169
|
#: bookwyrm/settings.py:171
|
||||||
msgid "繁體中文 (Traditional Chinese)"
|
msgid "繁體中文 (Traditional Chinese)"
|
||||||
msgstr "繁體中文"
|
msgstr "繁體中文"
|
||||||
|
|
||||||
|
@ -668,11 +672,6 @@ msgstr "語言:"
|
||||||
msgid "Search editions"
|
msgid "Search editions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/book/publisher_info.html:21
|
|
||||||
#, python-format
|
|
||||||
msgid "%(format)s"
|
|
||||||
msgstr "%(format)s"
|
|
||||||
|
|
||||||
#: bookwyrm/templates/book/publisher_info.html:23
|
#: bookwyrm/templates/book/publisher_info.html:23
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(format)s, %(pages)s pages"
|
msgid "%(format)s, %(pages)s pages"
|
||||||
|
@ -752,8 +751,10 @@ msgid "Help"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/compose.html:5 bookwyrm/templates/compose.html:8
|
#: bookwyrm/templates/compose.html:5 bookwyrm/templates/compose.html:8
|
||||||
msgid "Compose status"
|
#, fuzzy
|
||||||
msgstr "撰寫狀態"
|
#| msgid "Like status"
|
||||||
|
msgid "Edit status"
|
||||||
|
msgstr "喜歡狀態"
|
||||||
|
|
||||||
#: bookwyrm/templates/confirm_email/confirm_email.html:4
|
#: bookwyrm/templates/confirm_email/confirm_email.html:4
|
||||||
msgid "Confirm email"
|
msgid "Confirm email"
|
||||||
|
@ -885,6 +886,30 @@ msgstr "BookWyrm 使用者"
|
||||||
msgid "All known users"
|
msgid "All known users"
|
||||||
msgstr "所有已知使用者"
|
msgstr "所有已知使用者"
|
||||||
|
|
||||||
|
#: bookwyrm/templates/discover/card-header.html:9
|
||||||
|
#, fuzzy, python-format
|
||||||
|
#| msgid "replied to <a href=\"%(user_path)s\">%(username)s</a>'s <a href=\"%(status_path)s\">status</a>"
|
||||||
|
msgid "<a href=\"%(user_path)s\">%(username)s</a> rated <a href=\"%(book_path)s\">%(book_title)s</a>"
|
||||||
|
msgstr "回覆了 <a href=\"%(user_path)s\">%(username)s</a> 的 <a href=\"%(status_path)s\">狀態</a>"
|
||||||
|
|
||||||
|
#: bookwyrm/templates/discover/card-header.html:13
|
||||||
|
#, fuzzy, python-format
|
||||||
|
#| msgid "replied to <a href=\"%(user_path)s\">%(username)s</a>'s <a href=\"%(status_path)s\">status</a>"
|
||||||
|
msgid "<a href=\"%(user_path)s\">%(username)s</a> reviewed <a href=\"%(book_path)s\">%(book_title)s</a>"
|
||||||
|
msgstr "回覆了 <a href=\"%(user_path)s\">%(username)s</a> 的 <a href=\"%(status_path)s\">狀態</a>"
|
||||||
|
|
||||||
|
#: bookwyrm/templates/discover/card-header.html:17
|
||||||
|
#, fuzzy, python-format
|
||||||
|
#| msgid "replied to <a href=\"%(user_path)s\">%(username)s</a>'s <a href=\"%(status_path)s\">status</a>"
|
||||||
|
msgid "<a href=\"%(user_path)s\">%(username)s</a> commented on <a href=\"%(book_path)s\">%(book_title)s</a>"
|
||||||
|
msgstr "回覆了 <a href=\"%(user_path)s\">%(username)s</a> 的 <a href=\"%(status_path)s\">狀態</a>"
|
||||||
|
|
||||||
|
#: bookwyrm/templates/discover/card-header.html:21
|
||||||
|
#, fuzzy, python-format
|
||||||
|
#| msgid "replied to <a href=\"%(user_path)s\">%(username)s</a>'s <a href=\"%(status_path)s\">status</a>"
|
||||||
|
msgid "<a href=\"%(user_path)s\">%(username)s</a> quoted <a href=\"%(book_path)s\">%(book_title)s</a>"
|
||||||
|
msgstr "回覆了 <a href=\"%(user_path)s\">%(username)s</a> 的 <a href=\"%(status_path)s\">狀態</a>"
|
||||||
|
|
||||||
#: bookwyrm/templates/discover/discover.html:4
|
#: bookwyrm/templates/discover/discover.html:4
|
||||||
#: bookwyrm/templates/discover/discover.html:10
|
#: bookwyrm/templates/discover/discover.html:10
|
||||||
#: bookwyrm/templates/layout.html:78
|
#: bookwyrm/templates/layout.html:78
|
||||||
|
@ -896,28 +921,8 @@ msgstr ""
|
||||||
msgid "See what's new in the local %(site_name)s community"
|
msgid "See what's new in the local %(site_name)s community"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/discover/large-book.html:46
|
|
||||||
#: bookwyrm/templates/discover/small-book.html:32
|
|
||||||
msgid "rated"
|
|
||||||
msgstr "評價了"
|
|
||||||
|
|
||||||
#: bookwyrm/templates/discover/large-book.html:48
|
|
||||||
#: bookwyrm/templates/discover/small-book.html:34
|
|
||||||
msgid "reviewed"
|
|
||||||
msgstr "寫了書評給"
|
|
||||||
|
|
||||||
#: bookwyrm/templates/discover/large-book.html:50
|
|
||||||
#: bookwyrm/templates/discover/small-book.html:36
|
|
||||||
msgid "commented on"
|
|
||||||
msgstr "評論了"
|
|
||||||
|
|
||||||
#: bookwyrm/templates/discover/large-book.html:52
|
#: bookwyrm/templates/discover/large-book.html:52
|
||||||
#: bookwyrm/templates/discover/small-book.html:38
|
#: bookwyrm/templates/discover/small-book.html:36
|
||||||
msgid "quoted"
|
|
||||||
msgstr "引用了"
|
|
||||||
|
|
||||||
#: bookwyrm/templates/discover/large-book.html:68
|
|
||||||
#: bookwyrm/templates/discover/small-book.html:52
|
|
||||||
msgid "View status"
|
msgid "View status"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -970,8 +975,9 @@ msgid "Join Now"
|
||||||
msgstr "立即加入"
|
msgstr "立即加入"
|
||||||
|
|
||||||
#: bookwyrm/templates/email/invite/html_content.html:15
|
#: bookwyrm/templates/email/invite/html_content.html:15
|
||||||
#, python-format
|
#, fuzzy, python-format
|
||||||
msgid "Learn more <a href=\"https://%(domain)s%(about_path)s\">about this instance</a>."
|
#| msgid "Learn more <a href=\"https://%(domain)s%(about_path)s\">about this instance</a>."
|
||||||
|
msgid "Learn more <a href=\"https://%(domain)s%(about_path)s\">about %(site_name)s</a>."
|
||||||
msgstr "瞭解更多 <a href=\"https://%(domain)s%(about_path)s\">有關本實例的資訊</a>。"
|
msgstr "瞭解更多 <a href=\"https://%(domain)s%(about_path)s\">有關本實例的資訊</a>。"
|
||||||
|
|
||||||
#: bookwyrm/templates/email/invite/text_content.html:4
|
#: bookwyrm/templates/email/invite/text_content.html:4
|
||||||
|
@ -980,7 +986,9 @@ msgid "You're invited to join %(site_name)s! Click the link below to create an a
|
||||||
msgstr "你受邀請加入 %(site_name)s!點選下面的連結來建立帳號。"
|
msgstr "你受邀請加入 %(site_name)s!點選下面的連結來建立帳號。"
|
||||||
|
|
||||||
#: bookwyrm/templates/email/invite/text_content.html:8
|
#: bookwyrm/templates/email/invite/text_content.html:8
|
||||||
msgid "Learn more about this instance:"
|
#, fuzzy, python-format
|
||||||
|
#| msgid "Learn more about this instance:"
|
||||||
|
msgid "Learn more about %(site_name)s:"
|
||||||
msgstr "瞭解更多有關本實例的資訊:"
|
msgstr "瞭解更多有關本實例的資訊:"
|
||||||
|
|
||||||
#: bookwyrm/templates/email/password_reset/html_content.html:6
|
#: bookwyrm/templates/email/password_reset/html_content.html:6
|
||||||
|
@ -1320,13 +1328,13 @@ msgstr "書目"
|
||||||
|
|
||||||
#: bookwyrm/templates/import/import_status.html:122
|
#: bookwyrm/templates/import/import_status.html:122
|
||||||
#: bookwyrm/templates/shelf/shelf.html:128
|
#: bookwyrm/templates/shelf/shelf.html:128
|
||||||
#: bookwyrm/templates/shelf/shelf.html:148
|
#: bookwyrm/templates/shelf/shelf.html:150
|
||||||
msgid "Title"
|
msgid "Title"
|
||||||
msgstr "標題"
|
msgstr "標題"
|
||||||
|
|
||||||
#: bookwyrm/templates/import/import_status.html:125
|
#: bookwyrm/templates/import/import_status.html:125
|
||||||
#: bookwyrm/templates/shelf/shelf.html:129
|
#: bookwyrm/templates/shelf/shelf.html:129
|
||||||
#: bookwyrm/templates/shelf/shelf.html:151
|
#: bookwyrm/templates/shelf/shelf.html:153
|
||||||
msgid "Author"
|
msgid "Author"
|
||||||
msgstr "作者"
|
msgstr "作者"
|
||||||
|
|
||||||
|
@ -1335,7 +1343,7 @@ msgid "Imported"
|
||||||
msgstr "已匯入"
|
msgstr "已匯入"
|
||||||
|
|
||||||
#: bookwyrm/templates/import/tooltip.html:6
|
#: bookwyrm/templates/import/tooltip.html:6
|
||||||
msgid "You can download your GoodReads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener\">Import/Export page</a> of your GoodReads account."
|
msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener\">Import/Export page</a> of your Goodreads account."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/invite.html:4 bookwyrm/templates/invite.html:8
|
#: bookwyrm/templates/invite.html:4 bookwyrm/templates/invite.html:8
|
||||||
|
@ -1351,7 +1359,7 @@ msgstr "沒有權限"
|
||||||
msgid "Sorry! This invite code is no longer valid."
|
msgid "Sorry! This invite code is no longer valid."
|
||||||
msgstr "抱歉!此邀請碼已不再有效。"
|
msgstr "抱歉!此邀請碼已不再有效。"
|
||||||
|
|
||||||
#: bookwyrm/templates/landing/about.html:7
|
#: bookwyrm/templates/landing/about.html:7 bookwyrm/templates/layout.html:230
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "About %(site_name)s"
|
msgid "About %(site_name)s"
|
||||||
msgstr "關於 %(site_name)s"
|
msgstr "關於 %(site_name)s"
|
||||||
|
@ -1482,10 +1490,6 @@ msgstr ""
|
||||||
msgid "Error posting status"
|
msgid "Error posting status"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/layout.html:230
|
|
||||||
msgid "About this instance"
|
|
||||||
msgstr "關於本實例"
|
|
||||||
|
|
||||||
#: bookwyrm/templates/layout.html:234
|
#: bookwyrm/templates/layout.html:234
|
||||||
msgid "Contact site admin"
|
msgid "Contact site admin"
|
||||||
msgstr "聯絡網站管理員"
|
msgstr "聯絡網站管理員"
|
||||||
|
@ -1729,23 +1733,27 @@ msgid "boosted your <a href=\"%(related_path)s\">status</a>"
|
||||||
msgstr "轉發了你的 <a href=\"%(related_path)s\">狀態</a>"
|
msgstr "轉發了你的 <a href=\"%(related_path)s\">狀態</a>"
|
||||||
|
|
||||||
#: bookwyrm/templates/notifications/items/fav.html:19
|
#: bookwyrm/templates/notifications/items/fav.html:19
|
||||||
#, python-format
|
#, fuzzy, python-format
|
||||||
msgid "favorited your <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>"
|
#| msgid "favorited your <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>"
|
||||||
|
msgid "liked your <a href=\"%(related_path)s\">review of <em>%(book_title)s</em></a>"
|
||||||
msgstr "喜歡了你 <a href=\"%(related_path)s\">對 <em>%(book_title)s</em> 的書評</a>"
|
msgstr "喜歡了你 <a href=\"%(related_path)s\">對 <em>%(book_title)s</em> 的書評</a>"
|
||||||
|
|
||||||
#: bookwyrm/templates/notifications/items/fav.html:25
|
#: bookwyrm/templates/notifications/items/fav.html:25
|
||||||
#, python-format
|
#, fuzzy, python-format
|
||||||
msgid "favorited your <a href=\"%(related_path)s\">comment on<em>%(book_title)s</em></a>"
|
#| msgid "boosted your <a href=\"%(related_path)s\">comment on<em>%(book_title)s</em></a>"
|
||||||
msgstr ""
|
msgid "liked your <a href=\"%(related_path)s\">comment on<em>%(book_title)s</em></a>"
|
||||||
|
msgstr "轉發了你的 <a href=\"%(related_path)s\">對 <em>%(book_title)s</em> 的評論</a>"
|
||||||
|
|
||||||
#: bookwyrm/templates/notifications/items/fav.html:31
|
#: bookwyrm/templates/notifications/items/fav.html:31
|
||||||
#, python-format
|
#, fuzzy, python-format
|
||||||
msgid "favorited your <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>"
|
#| msgid "favorited your <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>"
|
||||||
|
msgid "liked your <a href=\"%(related_path)s\">quote from <em>%(book_title)s</em></a>"
|
||||||
msgstr "喜歡了你 <a href=\"%(related_path)s\">來自 <em>%(book_title)s</em> 的引用</a>"
|
msgstr "喜歡了你 <a href=\"%(related_path)s\">來自 <em>%(book_title)s</em> 的引用</a>"
|
||||||
|
|
||||||
#: bookwyrm/templates/notifications/items/fav.html:37
|
#: bookwyrm/templates/notifications/items/fav.html:37
|
||||||
#, python-format
|
#, fuzzy, python-format
|
||||||
msgid "favorited your <a href=\"%(related_path)s\">status</a>"
|
#| msgid "favorited your <a href=\"%(related_path)s\">status</a>"
|
||||||
|
msgid "liked your <a href=\"%(related_path)s\">status</a>"
|
||||||
msgstr "喜歡了你的 <a href=\"%(related_path)s\">狀態</a>"
|
msgstr "喜歡了你的 <a href=\"%(related_path)s\">狀態</a>"
|
||||||
|
|
||||||
#: bookwyrm/templates/notifications/items/follow.html:15
|
#: bookwyrm/templates/notifications/items/follow.html:15
|
||||||
|
@ -2291,6 +2299,7 @@ msgid "Notes"
|
||||||
msgstr "備註"
|
msgstr "備註"
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/federation/instance.html:75
|
#: bookwyrm/templates/settings/federation/instance.html:75
|
||||||
|
#: bookwyrm/templates/snippets/status/status_options.html:24
|
||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr "編輯"
|
msgstr "編輯"
|
||||||
|
|
||||||
|
@ -2630,7 +2639,7 @@ msgid "Short description:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/site.html:37
|
#: bookwyrm/templates/settings/site.html:37
|
||||||
msgid "Used when the instance is previewed on joinbookwyrm.com. Does not support html or markdown."
|
msgid "Used when the instance is previewed on joinbookwyrm.com. Does not support HTML or Markdown."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/site.html:41
|
#: bookwyrm/templates/settings/site.html:41
|
||||||
|
@ -2805,7 +2814,7 @@ msgid "Permanently deleted"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/settings/users/user_moderation_actions.html:13
|
#: bookwyrm/templates/settings/users/user_moderation_actions.html:13
|
||||||
#: bookwyrm/templates/snippets/status/status_options.html:35
|
#: bookwyrm/templates/snippets/status/status_options.html:32
|
||||||
#: bookwyrm/templates/snippets/user_options.html:13
|
#: bookwyrm/templates/snippets/user_options.html:13
|
||||||
msgid "Send direct message"
|
msgid "Send direct message"
|
||||||
msgstr "發送私信"
|
msgstr "發送私信"
|
||||||
|
@ -2857,22 +2866,22 @@ msgstr "編輯書架"
|
||||||
msgid "Delete shelf"
|
msgid "Delete shelf"
|
||||||
msgstr "刪除書架"
|
msgstr "刪除書架"
|
||||||
|
|
||||||
#: bookwyrm/templates/shelf/shelf.html:130
|
#: bookwyrm/templates/shelf/shelf.html:132
|
||||||
#: bookwyrm/templates/shelf/shelf.html:154
|
#: bookwyrm/templates/shelf/shelf.html:158
|
||||||
msgid "Shelved"
|
msgid "Shelved"
|
||||||
msgstr "上架時間"
|
msgstr "上架時間"
|
||||||
|
|
||||||
#: bookwyrm/templates/shelf/shelf.html:131
|
#: bookwyrm/templates/shelf/shelf.html:133
|
||||||
#: bookwyrm/templates/shelf/shelf.html:158
|
#: bookwyrm/templates/shelf/shelf.html:161
|
||||||
msgid "Started"
|
msgid "Started"
|
||||||
msgstr "開始時間"
|
msgstr "開始時間"
|
||||||
|
|
||||||
#: bookwyrm/templates/shelf/shelf.html:132
|
#: bookwyrm/templates/shelf/shelf.html:134
|
||||||
#: bookwyrm/templates/shelf/shelf.html:161
|
#: bookwyrm/templates/shelf/shelf.html:164
|
||||||
msgid "Finished"
|
msgid "Finished"
|
||||||
msgstr "完成時間"
|
msgstr "完成時間"
|
||||||
|
|
||||||
#: bookwyrm/templates/shelf/shelf.html:187
|
#: bookwyrm/templates/shelf/shelf.html:190
|
||||||
msgid "This shelf is empty."
|
msgid "This shelf is empty."
|
||||||
msgstr "此書架是空的。"
|
msgstr "此書架是空的。"
|
||||||
|
|
||||||
|
@ -2918,22 +2927,22 @@ msgstr "引用"
|
||||||
msgid "Some thoughts on the book"
|
msgid "Some thoughts on the book"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/create_status/comment.html:26
|
#: bookwyrm/templates/snippets/create_status/comment.html:27
|
||||||
#: bookwyrm/templates/snippets/reading_modals/progress_update_modal.html:15
|
#: bookwyrm/templates/snippets/reading_modals/progress_update_modal.html:15
|
||||||
msgid "Progress:"
|
msgid "Progress:"
|
||||||
msgstr "進度:"
|
msgstr "進度:"
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/create_status/comment.html:52
|
#: bookwyrm/templates/snippets/create_status/comment.html:53
|
||||||
#: bookwyrm/templates/snippets/progress_field.html:18
|
#: bookwyrm/templates/snippets/progress_field.html:18
|
||||||
msgid "pages"
|
msgid "pages"
|
||||||
msgstr "頁數"
|
msgstr "頁數"
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/create_status/comment.html:58
|
#: bookwyrm/templates/snippets/create_status/comment.html:59
|
||||||
#: bookwyrm/templates/snippets/progress_field.html:23
|
#: bookwyrm/templates/snippets/progress_field.html:23
|
||||||
msgid "percent"
|
msgid "percent"
|
||||||
msgstr "百分比"
|
msgstr "百分比"
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/create_status/comment.html:65
|
#: bookwyrm/templates/snippets/create_status/comment.html:66
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "of %(pages)s pages"
|
msgid "of %(pages)s pages"
|
||||||
msgstr "全書 %(pages)s 頁"
|
msgstr "全書 %(pages)s 頁"
|
||||||
|
@ -2961,7 +2970,7 @@ msgstr "前有劇透!"
|
||||||
msgid "Include spoiler alert"
|
msgid "Include spoiler alert"
|
||||||
msgstr "加入劇透警告"
|
msgstr "加入劇透警告"
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/create_status/layout.html:41
|
#: bookwyrm/templates/snippets/create_status/layout.html:48
|
||||||
#: bookwyrm/templates/snippets/reading_modals/form.html:7
|
#: bookwyrm/templates/snippets/reading_modals/form.html:7
|
||||||
msgid "Comment:"
|
msgid "Comment:"
|
||||||
msgstr "評論:"
|
msgstr "評論:"
|
||||||
|
@ -3150,12 +3159,12 @@ msgstr "你已經閱讀了 <a href=\"%(path)s\">%(goal_count)s 本書中的 %(re
|
||||||
msgid "%(username)s has read <a href=\"%(path)s\">%(read_count)s of %(goal_count)s books</a>."
|
msgid "%(username)s has read <a href=\"%(path)s\">%(read_count)s of %(goal_count)s books</a>."
|
||||||
msgstr "%(username)s 已經閱讀了 <a href=\"%(path)s\">%(goal_count)s 本書中的 %(read_count)s 本</a>。"
|
msgstr "%(username)s 已經閱讀了 <a href=\"%(path)s\">%(goal_count)s 本書中的 %(read_count)s 本</a>。"
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/page_text.html:4
|
#: bookwyrm/templates/snippets/page_text.html:8
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "page %(page)s of %(total_pages)s"
|
msgid "page %(page)s of %(total_pages)s"
|
||||||
msgstr "%(total_pages)s 頁中的第 %(page)s 頁"
|
msgstr "%(total_pages)s 頁中的第 %(page)s 頁"
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/page_text.html:6
|
#: bookwyrm/templates/snippets/page_text.html:14
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "page %(page)s"
|
msgid "page %(page)s"
|
||||||
msgstr "第 %(page)s 頁"
|
msgstr "第 %(page)s 頁"
|
||||||
|
@ -3316,6 +3325,12 @@ msgstr "在新視窗中開啟圖片"
|
||||||
msgid "Hide status"
|
msgid "Hide status"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: bookwyrm/templates/snippets/status/header.html:45
|
||||||
|
#, fuzzy, python-format
|
||||||
|
#| msgid "Joined %(date)s"
|
||||||
|
msgid "edited %(date)s"
|
||||||
|
msgstr "在 %(date)s 加入"
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/status/headers/comment.html:2
|
#: bookwyrm/templates/snippets/status/headers/comment.html:2
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "commented on <a href=\"%(book_path)s\">%(book)s</a>"
|
msgid "commented on <a href=\"%(book_path)s\">%(book)s</a>"
|
||||||
|
@ -3380,10 +3395,6 @@ msgstr "轉發了"
|
||||||
msgid "More options"
|
msgid "More options"
|
||||||
msgstr "更多選項"
|
msgstr "更多選項"
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/status/status_options.html:26
|
|
||||||
msgid "Delete & re-draft"
|
|
||||||
msgstr "刪除並重新起草"
|
|
||||||
|
|
||||||
#: bookwyrm/templates/snippets/suggested_users.html:16
|
#: bookwyrm/templates/snippets/suggested_users.html:16
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(mutuals)s follower you follow"
|
msgid "%(mutuals)s follower you follow"
|
||||||
|
@ -3568,3 +3579,26 @@ msgstr "密碼重置連結已傳送給 {email}"
|
||||||
msgid "Status updates from {obj.display_name}"
|
msgid "Status updates from {obj.display_name}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#~ msgid "Compose status"
|
||||||
|
#~ msgstr "撰寫狀態"
|
||||||
|
|
||||||
|
#~ msgid "%(format)s"
|
||||||
|
#~ msgstr "%(format)s"
|
||||||
|
|
||||||
|
#~ msgid "rated"
|
||||||
|
#~ msgstr "評價了"
|
||||||
|
|
||||||
|
#~ msgid "reviewed"
|
||||||
|
#~ msgstr "寫了書評給"
|
||||||
|
|
||||||
|
#~ msgid "commented on"
|
||||||
|
#~ msgstr "評論了"
|
||||||
|
|
||||||
|
#~ msgid "quoted"
|
||||||
|
#~ msgstr "引用了"
|
||||||
|
|
||||||
|
#~ msgid "About this instance"
|
||||||
|
#~ msgstr "關於本實例"
|
||||||
|
|
||||||
|
#~ msgid "Delete & re-draft"
|
||||||
|
#~ msgstr "刪除並重新起草"
|
||||||
|
|
|
@ -7,6 +7,7 @@ markers =
|
||||||
|
|
||||||
env =
|
env =
|
||||||
DEBUG = false
|
DEBUG = false
|
||||||
|
USE_HTTPS=true
|
||||||
DOMAIN = your.domain.here
|
DOMAIN = your.domain.here
|
||||||
BOOKWYRM_DATABASE_BACKEND = postgres
|
BOOKWYRM_DATABASE_BACKEND = postgres
|
||||||
MEDIA_ROOT = images/
|
MEDIA_ROOT = images/
|
||||||
|
|
Loading…
Reference in a new issue