mirror of
https://github.com/bookwyrm-social/bookwyrm.git
synced 2024-12-04 07:16:36 +00:00
Merge branch 'main' into production
This commit is contained in:
commit
7e3627f787
57 changed files with 1278 additions and 925 deletions
|
@ -13,16 +13,10 @@ DEFAULT_LANGUAGE="English"
|
|||
## Leave unset to allow all hosts
|
||||
# ALLOWED_HOSTS="localhost,127.0.0.1,[::1]"
|
||||
|
||||
OL_URL=https://openlibrary.org
|
||||
|
||||
## Database backend to use.
|
||||
## Default is postgres, sqlite is for dev quickstart only (NOT production!!!)
|
||||
BOOKWYRM_DATABASE_BACKEND=postgres
|
||||
|
||||
MEDIA_ROOT=images/
|
||||
|
||||
POSTGRES_PORT=5432
|
||||
POSTGRES_PASSWORD=securedbpassword123
|
||||
POSTGRES_PASSWORD=securedbypassword123
|
||||
POSTGRES_USER=fedireads
|
||||
POSTGRES_DB=fedireads
|
||||
POSTGRES_HOST=db
|
||||
|
@ -47,6 +41,3 @@ EMAIL_HOST_USER=mail@your.domain.here
|
|||
EMAIL_HOST_PASSWORD=emailpassword123
|
||||
EMAIL_USE_TLS=true
|
||||
EMAIL_USE_SSL=false
|
||||
|
||||
# Set this to true when initializing certbot for domain, false when not
|
||||
CERTBOT_INIT=false
|
||||
|
|
|
@ -13,16 +13,10 @@ DEFAULT_LANGUAGE="English"
|
|||
## Leave unset to allow all hosts
|
||||
# ALLOWED_HOSTS="localhost,127.0.0.1,[::1]"
|
||||
|
||||
OL_URL=https://openlibrary.org
|
||||
|
||||
## Database backend to use.
|
||||
## Default is postgres, sqlite is for dev quickstart only (NOT production!!!)
|
||||
BOOKWYRM_DATABASE_BACKEND=postgres
|
||||
|
||||
MEDIA_ROOT=images/
|
||||
|
||||
POSTGRES_PORT=5432
|
||||
POSTGRES_PASSWORD=securedbpassword123
|
||||
POSTGRES_PASSWORD=securedbypassword123
|
||||
POSTGRES_USER=fedireads
|
||||
POSTGRES_DB=fedireads
|
||||
POSTGRES_HOST=db
|
||||
|
|
1
.github/workflows/django-tests.yml
vendored
1
.github/workflows/django-tests.yml
vendored
|
@ -50,7 +50,6 @@ jobs:
|
|||
SECRET_KEY: beepbeep
|
||||
DEBUG: true
|
||||
DOMAIN: your.domain.here
|
||||
OL_URL: https://openlibrary.org
|
||||
BOOKWYRM_DATABASE_BACKEND: postgres
|
||||
MEDIA_ROOT: images/
|
||||
POSTGRES_PASSWORD: hunter2
|
||||
|
|
|
@ -150,6 +150,12 @@ class LimitedEditUserForm(CustomForm):
|
|||
help_texts = {f: None for f in fields}
|
||||
|
||||
|
||||
class DeleteUserForm(CustomForm):
|
||||
class Meta:
|
||||
model = models.User
|
||||
fields = ["password"]
|
||||
|
||||
|
||||
class UserGroupForm(CustomForm):
|
||||
class Meta:
|
||||
model = models.User
|
||||
|
|
|
@ -75,7 +75,12 @@ class ImportItem(models.Model):
|
|||
|
||||
def resolve(self):
|
||||
"""try various ways to lookup a book"""
|
||||
self.book = self.get_book_from_isbn() or self.get_book_from_title_author()
|
||||
if self.isbn:
|
||||
self.book = self.get_book_from_isbn()
|
||||
else:
|
||||
# don't fall back on title/author search is isbn is present.
|
||||
# you're too likely to mismatch
|
||||
self.get_book_from_title_author()
|
||||
|
||||
def get_book_from_isbn(self):
|
||||
"""search by isbn"""
|
||||
|
|
|
@ -52,7 +52,6 @@ SECRET_KEY = env("SECRET_KEY")
|
|||
DEBUG = env.bool("DEBUG", True)
|
||||
|
||||
ALLOWED_HOSTS = env.list("ALLOWED_HOSTS", ["*"])
|
||||
OL_URL = env("OL_URL")
|
||||
|
||||
# Application definition
|
||||
|
||||
|
@ -114,10 +113,8 @@ STREAMS = ["home", "local", "federated"]
|
|||
# Database
|
||||
# https://docs.djangoproject.com/en/3.2/ref/settings/#databases
|
||||
|
||||
BOOKWYRM_DATABASE_BACKEND = env("BOOKWYRM_DATABASE_BACKEND", "postgres")
|
||||
|
||||
BOOKWYRM_DBS = {
|
||||
"postgres": {
|
||||
DATABASES = {
|
||||
"default": {
|
||||
"ENGINE": "django.db.backends.postgresql_psycopg2",
|
||||
"NAME": env("POSTGRES_DB", "fedireads"),
|
||||
"USER": env("POSTGRES_USER", "fedireads"),
|
||||
|
@ -127,8 +124,6 @@ BOOKWYRM_DBS = {
|
|||
},
|
||||
}
|
||||
|
||||
DATABASES = {"default": BOOKWYRM_DBS[BOOKWYRM_DATABASE_BACKEND]}
|
||||
|
||||
|
||||
LOGIN_URL = "/login/"
|
||||
AUTH_USER_MODEL = "bookwyrm.User"
|
||||
|
@ -136,6 +131,7 @@ AUTH_USER_MODEL = "bookwyrm.User"
|
|||
# Password validation
|
||||
# https://docs.djangoproject.com/en/3.2/ref/settings/#auth-password-validators
|
||||
|
||||
# pylint: disable=line-too-long
|
||||
AUTH_PASSWORD_VALIDATORS = [
|
||||
{
|
||||
"NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator",
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
let BookWyrm = new class {
|
||||
constructor() {
|
||||
this.MAX_FILE_SIZE_BYTES = 10 * 1000000
|
||||
this.MAX_FILE_SIZE_BYTES = 10 * 1000000;
|
||||
this.initOnDOMLoaded();
|
||||
this.initReccuringTasks();
|
||||
this.initEventListeners();
|
||||
|
@ -45,14 +45,14 @@ let BookWyrm = new class {
|
|||
* Execute code once the DOM is loaded.
|
||||
*/
|
||||
initOnDOMLoaded() {
|
||||
const bookwyrm = this
|
||||
const bookwyrm = this;
|
||||
|
||||
window.addEventListener('DOMContentLoaded', function() {
|
||||
document.querySelectorAll('.tab-group')
|
||||
.forEach(tabs => new TabGroup(tabs));
|
||||
document.querySelectorAll('input[type="file"]').forEach(
|
||||
bookwyrm.disableIfTooLarge.bind(bookwyrm)
|
||||
)
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -138,6 +138,7 @@ let BookWyrm = new class {
|
|||
* @return {undefined}
|
||||
*/
|
||||
toggleAction(event) {
|
||||
event.preventDefault();
|
||||
let trigger = event.currentTarget;
|
||||
let pressed = trigger.getAttribute('aria-pressed') === 'false';
|
||||
let targetId = trigger.dataset.controls;
|
||||
|
@ -182,6 +183,8 @@ let BookWyrm = new class {
|
|||
if (focus) {
|
||||
this.toggleFocus(focus);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -298,25 +301,25 @@ let BookWyrm = new class {
|
|||
}
|
||||
|
||||
disableIfTooLarge(eventOrElement) {
|
||||
const { addRemoveClass, MAX_FILE_SIZE_BYTES } = this
|
||||
const element = eventOrElement.currentTarget || eventOrElement
|
||||
const { addRemoveClass, MAX_FILE_SIZE_BYTES } = this;
|
||||
const element = eventOrElement.currentTarget || eventOrElement;
|
||||
|
||||
const submits = element.form.querySelectorAll('[type="submit"]')
|
||||
const warns = element.parentElement.querySelectorAll('.file-too-big')
|
||||
const submits = element.form.querySelectorAll('[type="submit"]');
|
||||
const warns = element.parentElement.querySelectorAll('.file-too-big');
|
||||
const isTooBig = element.files &&
|
||||
element.files[0] &&
|
||||
element.files[0].size > MAX_FILE_SIZE_BYTES
|
||||
element.files[0].size > MAX_FILE_SIZE_BYTES;
|
||||
|
||||
if (isTooBig) {
|
||||
submits.forEach(submitter => submitter.disabled = true)
|
||||
submits.forEach(submitter => submitter.disabled = true);
|
||||
warns.forEach(
|
||||
sib => addRemoveClass(sib, 'is-hidden', false)
|
||||
)
|
||||
);
|
||||
} else {
|
||||
submits.forEach(submitter => submitter.disabled = false)
|
||||
submits.forEach(submitter => submitter.disabled = false);
|
||||
warns.forEach(
|
||||
sib => addRemoveClass(sib, 'is-hidden', true)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}();
|
||||
|
|
|
@ -17,7 +17,7 @@ let LocalStorageTools = new class {
|
|||
* @return {undefined}
|
||||
*/
|
||||
updateDisplay(event) {
|
||||
// used in set reading goal
|
||||
// Used in set reading goal
|
||||
let key = event.target.dataset.id;
|
||||
let value = event.target.dataset.value;
|
||||
|
||||
|
@ -34,10 +34,10 @@ let LocalStorageTools = new class {
|
|||
* @return {undefined}
|
||||
*/
|
||||
setDisplay(node) {
|
||||
// used in set reading goal
|
||||
// Used in set reading goal
|
||||
let key = node.dataset.hide;
|
||||
let value = window.localStorage.getItem(key);
|
||||
|
||||
BookWyrm.addRemoveClass(node, 'is-hidden', value);
|
||||
}
|
||||
}
|
||||
}();
|
||||
|
|
|
@ -20,8 +20,7 @@
|
|||
<meta itemprop="volumeNumber" content="{{ book.series_number }}">
|
||||
|
||||
<small class="has-text-grey-dark">
|
||||
({{ book.series }}
|
||||
{% if book.series_number %} #{{ book.series_number }}{% endif %})
|
||||
({{ book.series }}{% if book.series_number %} #{{ book.series_number }}{% endif %})
|
||||
</small>
|
||||
<br>
|
||||
{% endif %}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{% load i18n %}
|
||||
<div
|
||||
role="dialog"
|
||||
class="modal is-hidden"
|
||||
class="modal {% if active %}is-active{% else %}is-hidden{% endif %}"
|
||||
id="{{ controls_text }}-{{ controls_uid }}"
|
||||
aria-labelledby="modal-card-title-{{ controls_text }}-{{ controls_uid }}"
|
||||
aria-modal="true"
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
{% block content %}{% spaceless %}
|
||||
<div class="block">
|
||||
<h1 class="title">{% trans "Import Status" %}</h1>
|
||||
<a href="{% url 'import' %}" class="has-text-weight-normal help subtitle is-link">{% trans "Back to imports" %}</a>
|
||||
|
||||
<dl>
|
||||
<div class="is-flex">
|
||||
|
@ -106,7 +107,11 @@
|
|||
{% endif %}
|
||||
|
||||
<div class="block">
|
||||
{% if job.complete %}
|
||||
<h2 class="title is-4">{% trans "Successfully imported" %}</h2>
|
||||
{% else %}
|
||||
<h2 class="title is-4">{% trans "Import Progress" %}</h2>
|
||||
{% endif %}
|
||||
<table class="table">
|
||||
<tr>
|
||||
<th>
|
||||
|
|
|
@ -203,7 +203,7 @@
|
|||
<div class="columns">
|
||||
<div class="column is-one-fifth">
|
||||
<p>
|
||||
<a href="{% url 'about' %}">{% trans "About this server" %}</a>
|
||||
<a href="{% url 'about' %}">{% trans "About this instance" %}</a>
|
||||
</p>
|
||||
{% if site.admin_email %}
|
||||
<p>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
{% block title %}
|
||||
{% if server %}
|
||||
{% blocktrans with server_name=server.server_name %}Reports: {{ server_name }}{% endblocktrans %}
|
||||
{% blocktrans with instance_name=server.server_name %}Reports: {{ instance_name }}{% endblocktrans %}
|
||||
{% else %}
|
||||
{% trans "Reports" %}
|
||||
{% endif %}
|
||||
|
@ -11,7 +11,7 @@
|
|||
|
||||
{% block header %}
|
||||
{% if server %}
|
||||
{% blocktrans with server_name=server.server_name %}Reports: <small>{{ server_name }}</small>{% endblocktrans %}
|
||||
{% blocktrans with instance_name=server.server_name %}Reports: <small>{{ instance_name }}</small>{% endblocktrans %}
|
||||
<a href="{% url 'settings-reports' %}" class="help has-text-weight-normal">Clear filters</a>
|
||||
{% else %}
|
||||
{% trans "Reports" %}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{% extends 'preferences/preferences_layout.html' %}
|
||||
{% extends 'preferences/layout.html' %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block title %}{% trans "Blocked Users" %}{{ author.name }}{% endblock %}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{% extends 'preferences/preferences_layout.html' %}
|
||||
{% extends 'preferences/layout.html' %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block title %}{% trans "Change Password" %}{% endblock %}
|
||||
|
|
30
bookwyrm/templates/preferences/delete_user.html
Normal file
30
bookwyrm/templates/preferences/delete_user.html
Normal file
|
@ -0,0 +1,30 @@
|
|||
{% extends 'preferences/layout.html' %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block title %}{% trans "Delete Account" %}{% endblock %}
|
||||
|
||||
{% block header %}
|
||||
{% trans "Delete Account" %}
|
||||
{% endblock %}
|
||||
|
||||
{% block panel %}
|
||||
<div class="block">
|
||||
<h2 class="title is-4">{% trans "Permanently delete account" %}</h2>
|
||||
<p class="notification is-danger is-light">
|
||||
{% trans "Deleting your account cannot be undone. The username will not be available to register in the future." %}
|
||||
</p>
|
||||
|
||||
<form name="delete-user" action="{% url 'prefs-delete' %}" method="post">
|
||||
{% csrf_token %}
|
||||
<div class="field">
|
||||
<label class="label" for="id_password">{% trans "Confirm password:" %}</label>
|
||||
<input class="input {% if form.password.errors %}is-danger{% endif %}" type="password" name="password" id="id_password" required>
|
||||
{% for error in form.password.errors %}
|
||||
<p class="help is-danger">{{ error | escape }}</p>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<button type="submit" class="button is-danger">{% trans "Delete Account" %}</button>
|
||||
</form>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
{% extends 'preferences/preferences_layout.html' %}
|
||||
{% extends 'preferences/layout.html' %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block title %}{% trans "Edit Profile" %}{% endblock %}
|
||||
|
|
|
@ -18,6 +18,10 @@
|
|||
{% url 'prefs-password' as url %}
|
||||
<a href="{{ url }}"{% if url in request.path %} class="is-active" aria-selected="true"{% endif %}>{% trans "Change Password" %}</a>
|
||||
</li>
|
||||
<li>
|
||||
{% url 'prefs-delete' as url %}
|
||||
<a href="{{ url }}"{% if url in request.path %} class="is-active" aria-selected="true"{% endif %}>{% trans "Delete Account" %}</a>
|
||||
</li>
|
||||
</ul>
|
||||
<h2 class="menu-label">{% trans "Relationships" %}</h2>
|
||||
<ul class="menu-list">
|
14
bookwyrm/templates/reading_progress/finish.html
Normal file
14
bookwyrm/templates/reading_progress/finish.html
Normal file
|
@ -0,0 +1,14 @@
|
|||
{% extends 'layout.html' %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block title %}
|
||||
{% blocktrans trimmed with book_title=book.title %}
|
||||
Finish "{{ book_title }}"
|
||||
{% endblocktrans %}
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
{% include "snippets/shelve_button/finish_reading_modal.html" with book=book active=True %}
|
||||
|
||||
{% endblock %}
|
14
bookwyrm/templates/reading_progress/start.html
Normal file
14
bookwyrm/templates/reading_progress/start.html
Normal file
|
@ -0,0 +1,14 @@
|
|||
{% extends 'layout.html' %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block title %}
|
||||
{% blocktrans trimmed with book_title=book.title %}
|
||||
Start "{{ book_title }}"
|
||||
{% endblocktrans %}
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
{% include "snippets/shelve_button/start_reading_modal.html" with book=book active=True %}
|
||||
|
||||
{% endblock %}
|
14
bookwyrm/templates/reading_progress/want.html
Normal file
14
bookwyrm/templates/reading_progress/want.html
Normal file
|
@ -0,0 +1,14 @@
|
|||
{% extends 'layout.html' %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block title %}
|
||||
{% blocktrans trimmed with book_title=book.title %}
|
||||
Want to Read "{{ book_title }}"
|
||||
{% endblocktrans %}
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
{% include "snippets/shelve_button/want_to_read_modal.html" with book=book active=True no_body=True %}
|
||||
|
||||
{% endblock %}
|
|
@ -36,7 +36,7 @@
|
|||
</li>
|
||||
<li>
|
||||
{% url 'settings-federation' as url %}
|
||||
<a href="{{ url }}"{% if url in request.path %} class="is-active" aria-selected="true"{% endif %}>{% trans "Federated Servers" %}</a>
|
||||
<a href="{{ url }}"{% if url in request.path %} class="is-active" aria-selected="true"{% endif %}>{% trans "Federated Instances" %}</a>
|
||||
</li>
|
||||
</ul>
|
||||
{% endif %}
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
{% extends 'settings/admin_layout.html' %}
|
||||
{% load i18n %}
|
||||
{% block title %}{% trans "Add server" %}{% endblock %}
|
||||
{% block title %}{% trans "Add instance" %}{% endblock %}
|
||||
|
||||
{% block header %}
|
||||
{% trans "Add server" %}
|
||||
<a href="{% url 'settings-federation' %}" class="has-text-weight-normal help">{% trans "Back to server list" %}</a>
|
||||
{% trans "Add instance" %}
|
||||
<a href="{% url 'settings-federation' %}" class="has-text-weight-normal help">{% trans "Back to instance list" %}</a>
|
||||
{% endblock %}
|
||||
|
||||
{% block panel %}
|
||||
|
@ -17,7 +17,7 @@
|
|||
</li>
|
||||
{% url 'settings-add-federated-server' as url %}
|
||||
<li {% if url in request.path %}class="is-active" aria-current="page"{% endif %}>
|
||||
<a href="{{ url }}">{% trans "Add server" %}</a>
|
||||
<a href="{{ url }}">{% trans "Add instance" %}</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
{% extends 'settings/admin_layout.html' %}
|
||||
{% load i18n %}
|
||||
{% block title %}{% trans "Federated Servers" %}{% endblock %}
|
||||
{% block title %}{% trans "Federated Instances" %}{% endblock %}
|
||||
|
||||
{% block header %}{% trans "Federated Servers" %}{% endblock %}
|
||||
{% block header %}{% trans "Federated Instances" %}{% endblock %}
|
||||
|
||||
{% block edit-button %}
|
||||
<a href="{% url 'settings-import-blocklist' %}">
|
||||
<span class="icon icon-plus" title="{% trans 'Add server' %}" aria-hidden="True"></span>
|
||||
<span>{% trans "Add server" %}</span>
|
||||
<span class="icon icon-plus" title="{% trans 'Add instance' %}" aria-hidden="True"></span>
|
||||
<span>{% trans "Add instance" %}</span>
|
||||
</a>
|
||||
{% endblock %}
|
||||
|
||||
|
@ -16,7 +16,7 @@
|
|||
<tr>
|
||||
{% url 'settings-federation' as url %}
|
||||
<th>
|
||||
{% trans "Server name" as text %}
|
||||
{% trans "Instance name" as text %}
|
||||
{% include 'snippets/table-sort-header.html' with field="server_name" sort=sort text=text %}
|
||||
</th>
|
||||
<th>
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
{% extends 'settings/admin_layout.html' %}
|
||||
{% load i18n %}
|
||||
{% block title %}{% trans "Add server" %}{% endblock %}
|
||||
{% block title %}{% trans "Add instance" %}{% endblock %}
|
||||
|
||||
{% block header %}
|
||||
{% trans "Import Blocklist" %}
|
||||
<a href="{% url 'settings-federation' %}" class="has-text-weight-normal help">{% trans "Back to server list" %}</a>
|
||||
<a href="{% url 'settings-federation' %}" class="has-text-weight-normal help">{% trans "Back to instance list" %}</a>
|
||||
{% endblock %}
|
||||
|
||||
{% block panel %}
|
||||
|
@ -17,7 +17,7 @@
|
|||
</li>
|
||||
{% url 'settings-add-federated-server' as url %}
|
||||
<li {% if url in request.path %}class="is-active" aria-current="page"{% endif %}>
|
||||
<a href="{{ url }}">{% trans "Add server" %}</a>
|
||||
<a href="{{ url }}">{% trans "Add instance" %}</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
@ -51,7 +51,7 @@
|
|||
<pre>
|
||||
[
|
||||
{
|
||||
"instance": "example.server.com",
|
||||
"instance": "example.instance.com",
|
||||
"url": "https://link.to.more/info"
|
||||
},
|
||||
...
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
|
||||
{% block modal-form-open %}
|
||||
<form name="finish-reading" action="/finish-reading/{{ book.id }}" method="post">
|
||||
<form name="finish-reading" action="{% url 'reading-status' 'finish' book.id %}" method="post">
|
||||
{% endblock %}
|
||||
|
||||
{% block modal-body %}
|
||||
|
|
|
@ -7,16 +7,25 @@
|
|||
{% if dropdown %}<li role="menuitem" class="dropdown-item p-0">{% endif %}
|
||||
<div class="{% if not dropdown and active_shelf.shelf.identifier|next_shelf != shelf.identifier %}is-hidden{% endif %}">
|
||||
{% if shelf.identifier == 'reading' %}{% if not dropdown or active_shelf.shelf.identifier|next_shelf != shelf.identifier %}
|
||||
|
||||
{% trans "Start reading" as button_text %}
|
||||
{% include 'snippets/toggle/toggle_button.html' with class=class text=button_text controls_text="start-reading" controls_uid=button_uuid focus="modal-title-start-reading" disabled=is_current %}
|
||||
{% url 'reading-status' 'start' book.id as fallback_url %}
|
||||
{% include 'snippets/toggle/toggle_button.html' with class=class text=button_text controls_text="start-reading" controls_uid=button_uuid focus="modal-title-start-reading" disabled=is_current fallback_url=fallback_url %}
|
||||
|
||||
{% endif %}{% elif shelf.identifier == 'read' and active_shelf.shelf.identifier == 'read' %}{% if not dropdown or active_shelf.shelf.identifier|next_shelf != shelf.identifier %}
|
||||
<button type="button" class="button {{ class }}" disabled><span>{% trans "Read" %}</span>
|
||||
{% endif %}{% elif shelf.identifier == 'read' %}{% if not dropdown or active_shelf.shelf.identifier|next_shelf != shelf.identifier %}
|
||||
|
||||
{% trans "Finish reading" as button_text %}
|
||||
{% include 'snippets/toggle/toggle_button.html' with class=class text=button_text controls_text="finish-reading" controls_uid=button_uuid focus="modal-title-finish-reading" disabled=is_current %}
|
||||
{% url 'reading-status' 'finish' book.id as fallback_url %}
|
||||
{% include 'snippets/toggle/toggle_button.html' with class=class text=button_text controls_text="finish-reading" controls_uid=button_uuid focus="modal-title-finish-reading" disabled=is_current fallback_url=fallback_url %}
|
||||
|
||||
{% endif %}{% elif shelf.identifier == 'to-read' %}{% if not dropdown or active_shelf.shelf.identifier|next_shelf != shelf.identifier %}
|
||||
|
||||
{% trans "Want to read" as button_text %}
|
||||
{% include 'snippets/toggle/toggle_button.html' with class=class text=button_text controls_text="want-to-read" controls_uid=button_uuid focus="modal-title-want-to-read" disabled=is_current %}
|
||||
{% url 'reading-status' 'want' book.id as fallback_url %}
|
||||
{% include 'snippets/toggle/toggle_button.html' with class=class text=button_text controls_text="want-to-read" controls_uid=button_uuid focus="modal-title-want-to-read" disabled=is_current fallback_url=fallback_url %}
|
||||
|
||||
{% endif %}{% elif shelf.editable %}
|
||||
<form name="shelve" action="/shelve/" method="post">
|
||||
{% csrf_token %}
|
||||
|
@ -44,7 +53,9 @@
|
|||
{% csrf_token %}
|
||||
<input type="hidden" name="book" value="{{ active_shelf.book.id }}">
|
||||
<input type="hidden" name="shelf" value="{{ active_shelf.shelf.id }}">
|
||||
<button class="button is-fullwidth is-small{% if dropdown %} is-radiusless{% endif %} is-danger is-light" type="submit">{% blocktrans with name=active_shelf.shelf.name %}Remove from {{ name }}{% endblocktrans %}</button>
|
||||
<button class="button is-fullwidth is-small{% if dropdown %} is-radiusless{% endif %} is-danger is-light" type="submit">
|
||||
{% blocktrans with name=active_shelf.shelf.name %}Remove from {{ name }}{% endblocktrans %}
|
||||
</button>
|
||||
</form>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
|
|
@ -2,11 +2,13 @@
|
|||
{% load i18n %}
|
||||
|
||||
{% block modal-title %}
|
||||
{% blocktrans with book_title=book.title %}Start "<em>{{ book_title }}</em>"{% endblocktrans %}
|
||||
{% blocktrans trimmed with book_title=book.title %}
|
||||
Start "<em>{{ book_title }}</em>"
|
||||
{% endblocktrans %}
|
||||
{% endblock %}
|
||||
|
||||
{% block modal-form-open %}
|
||||
<form name="start-reading" action="/start-reading/{{ book.id }}" method="post">
|
||||
<form name="start-reading" action="{% url 'reading-status' 'start' book.id %}" method="post">
|
||||
{% endblock %}
|
||||
|
||||
{% block modal-body %}
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
{% endblock %}
|
||||
|
||||
{% block modal-form-open %}
|
||||
<form name="shelve" action="/shelve/" method="post">
|
||||
<form name="shelve" action="{% url 'reading-status' 'want' book.id %}" method="post">
|
||||
{% csrf_token %}
|
||||
<input type="hidden" name="book" value="{{ active_shelf.book.id }}">
|
||||
<input type="hidden" name="shelf" value="to-read">
|
||||
|
|
|
@ -1,5 +1,12 @@
|
|||
{% if fallback_url %}
|
||||
<form name="fallback-form-{{ controls_uuid}}" method="GET" action="{{ fallback_url }}">
|
||||
{% endif %}
|
||||
<button
|
||||
type="button"
|
||||
{% if not fallback_url %}
|
||||
type="button"
|
||||
{% else %}
|
||||
type="submit"
|
||||
{% endif %}
|
||||
class="{% if not nonbutton %}button {% endif %}{{ class }}{% if button_type %} {{ button_type }}{% endif %}"
|
||||
data-controls="{{ controls_text }}{% if controls_uid %}-{{ controls_uid }}{% endif %}"
|
||||
{% if focus %}data-focus-target="{{ focus }}{% if controls_uid %}-{{ controls_uid }}{% endif %}"{% endif %}
|
||||
|
@ -20,3 +27,6 @@
|
|||
<span>{{ text }}</span>
|
||||
{% endif %}
|
||||
</button>
|
||||
{% if fallback_url %}
|
||||
</form>
|
||||
{% endif %}
|
||||
|
|
|
@ -2,6 +2,6 @@
|
|||
{% load i18n %}
|
||||
|
||||
{% block filter %}
|
||||
<label class="label" for="id_server">{% trans "Server name" %}</label>
|
||||
<label class="label" for="id_server">{% trans "Instance name" %}</label>
|
||||
<input type="text" class="input" name="server" value="{{ request.GET.server|default:'' }}" id="id_server" placeholder="example.server.com">
|
||||
{% endblock %}
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
{% block header %}
|
||||
{% if server %}
|
||||
{% blocktrans with server_name=server.server_name %}Users: <small>{{ server_name }}</small>{% endblocktrans %}
|
||||
{% blocktrans with instance_name=server.server_name %}Users: <small>{{ instance_name }}</small>{% endblocktrans %}
|
||||
<a href="{% url 'settings-users' %}" class="help has-text-weight-normal">Clear filters</a>
|
||||
{% else %}
|
||||
{% trans "Users" %}
|
||||
|
@ -35,7 +35,7 @@
|
|||
{% include 'snippets/table-sort-header.html' with field="is_active" sort=sort text=text %}
|
||||
</th>
|
||||
<th>
|
||||
{% trans "Remote server" as text %}
|
||||
{% trans "Remote instance" as text %}
|
||||
{% include 'snippets/table-sort-header.html' with field="federated_server__server_name" sort=sort text=text %}
|
||||
</th>
|
||||
</tr>
|
||||
|
|
|
@ -1,6 +1,12 @@
|
|||
{% load i18n %}
|
||||
<div class="block content">
|
||||
{% if not user.is_active and user.deactivation_reason == "self_deletion" %}
|
||||
<div class="notification is-danger">
|
||||
{% trans "Permanently deleted" %}
|
||||
</div>
|
||||
{% else %}
|
||||
<h3>{% trans "Actions" %}</h3>
|
||||
|
||||
<div class="is-flex">
|
||||
<p class="mr-1">
|
||||
<a class="button" href="{% url 'direct-messages-user' user.username %}">{% trans "Send direct message" %}</a>
|
||||
|
@ -14,6 +20,7 @@
|
|||
{% endif %}
|
||||
</form>
|
||||
</div>
|
||||
|
||||
{% if user.local %}
|
||||
<div>
|
||||
<form name="permission" method="post" action="{% url 'settings-user' user.id %}">
|
||||
|
@ -39,4 +46,6 @@
|
|||
</form>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% endif %}
|
||||
</div>
|
||||
|
|
150
bookwyrm/tests/views/test_edit_user.py
Normal file
150
bookwyrm/tests/views/test_edit_user.py
Normal file
|
@ -0,0 +1,150 @@
|
|||
""" test for app action functionality """
|
||||
import json
|
||||
import pathlib
|
||||
from unittest.mock import patch
|
||||
from PIL import Image
|
||||
|
||||
from django.contrib.auth.models import AnonymousUser
|
||||
from django.contrib.sessions.middleware import SessionMiddleware
|
||||
from django.core.files.base import ContentFile
|
||||
from django.core.files.uploadedfile import SimpleUploadedFile
|
||||
from django.template.response import TemplateResponse
|
||||
from django.test import TestCase
|
||||
from django.test.client import RequestFactory
|
||||
|
||||
from bookwyrm import forms, models, views
|
||||
|
||||
|
||||
class EditUserViews(TestCase):
|
||||
"""view user and edit profile"""
|
||||
|
||||
def setUp(self):
|
||||
"""we need basic test data and mocks"""
|
||||
self.factory = RequestFactory()
|
||||
self.local_user = models.User.objects.create_user(
|
||||
"mouse@local.com",
|
||||
"mouse@mouse.mouse",
|
||||
"password",
|
||||
local=True,
|
||||
localname="mouse",
|
||||
)
|
||||
self.rat = models.User.objects.create_user(
|
||||
"rat@local.com", "rat@rat.rat", "password", local=True, localname="rat"
|
||||
)
|
||||
self.book = models.Edition.objects.create(title="test")
|
||||
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"):
|
||||
models.ShelfBook.objects.create(
|
||||
book=self.book,
|
||||
user=self.local_user,
|
||||
shelf=self.local_user.shelf_set.first(),
|
||||
)
|
||||
|
||||
models.SiteSettings.objects.create()
|
||||
self.anonymous_user = AnonymousUser
|
||||
self.anonymous_user.is_authenticated = False
|
||||
|
||||
def test_edit_user_page(self):
|
||||
"""there are so many views, this just makes sure it LOADS"""
|
||||
view = views.EditUser.as_view()
|
||||
request = self.factory.get("")
|
||||
request.user = self.local_user
|
||||
result = view(request)
|
||||
self.assertIsInstance(result, TemplateResponse)
|
||||
result.render()
|
||||
self.assertEqual(result.status_code, 200)
|
||||
|
||||
def test_edit_user(self):
|
||||
"""use a form to update a user"""
|
||||
view = views.EditUser.as_view()
|
||||
form = forms.EditUserForm(instance=self.local_user)
|
||||
form.data["name"] = "New Name"
|
||||
form.data["email"] = "wow@email.com"
|
||||
form.data["preferred_timezone"] = "UTC"
|
||||
request = self.factory.post("", form.data)
|
||||
request.user = self.local_user
|
||||
|
||||
self.assertIsNone(self.local_user.name)
|
||||
with patch(
|
||||
"bookwyrm.models.activitypub_mixin.broadcast_task.delay"
|
||||
) as delay_mock:
|
||||
view(request)
|
||||
self.assertEqual(delay_mock.call_count, 1)
|
||||
self.assertEqual(self.local_user.name, "New Name")
|
||||
self.assertEqual(self.local_user.email, "wow@email.com")
|
||||
|
||||
def test_edit_user_avatar(self):
|
||||
"""use a form to update a user"""
|
||||
view = views.EditUser.as_view()
|
||||
form = forms.EditUserForm(instance=self.local_user)
|
||||
form.data["name"] = "New Name"
|
||||
form.data["email"] = "wow@email.com"
|
||||
form.data["preferred_timezone"] = "UTC"
|
||||
image_file = pathlib.Path(__file__).parent.joinpath(
|
||||
"../../static/images/no_cover.jpg"
|
||||
)
|
||||
form.data["avatar"] = SimpleUploadedFile(
|
||||
image_file, open(image_file, "rb").read(), content_type="image/jpeg"
|
||||
)
|
||||
request = self.factory.post("", form.data)
|
||||
request.user = self.local_user
|
||||
|
||||
with patch(
|
||||
"bookwyrm.models.activitypub_mixin.broadcast_task.delay"
|
||||
) as delay_mock:
|
||||
view(request)
|
||||
self.assertEqual(delay_mock.call_count, 1)
|
||||
self.assertEqual(self.local_user.name, "New Name")
|
||||
self.assertEqual(self.local_user.email, "wow@email.com")
|
||||
self.assertIsNotNone(self.local_user.avatar)
|
||||
self.assertEqual(self.local_user.avatar.width, 120)
|
||||
self.assertEqual(self.local_user.avatar.height, 120)
|
||||
|
||||
def test_crop_avatar(self):
|
||||
"""reduce that image size"""
|
||||
image_file = pathlib.Path(__file__).parent.joinpath(
|
||||
"../../static/images/no_cover.jpg"
|
||||
)
|
||||
image = Image.open(image_file)
|
||||
|
||||
result = views.edit_user.crop_avatar(image)
|
||||
self.assertIsInstance(result, ContentFile)
|
||||
image_result = Image.open(result)
|
||||
self.assertEqual(image_result.size, (120, 120))
|
||||
|
||||
def test_delete_user_page(self):
|
||||
"""there are so many views, this just makes sure it LOADS"""
|
||||
view = views.DeleteUser.as_view()
|
||||
request = self.factory.get("")
|
||||
request.user = self.local_user
|
||||
result = view(request)
|
||||
self.assertIsInstance(result, TemplateResponse)
|
||||
result.render()
|
||||
self.assertEqual(result.status_code, 200)
|
||||
|
||||
def test_delete_user(self):
|
||||
"""use a form to update a user"""
|
||||
view = views.DeleteUser.as_view()
|
||||
form = forms.DeleteUserForm()
|
||||
form.data["password"] = "password"
|
||||
request = self.factory.post("", form.data)
|
||||
request.user = self.local_user
|
||||
middleware = SessionMiddleware()
|
||||
middleware.process_request(request)
|
||||
request.session.save()
|
||||
|
||||
self.assertIsNone(self.local_user.name)
|
||||
with patch(
|
||||
"bookwyrm.models.activitypub_mixin.broadcast_task.delay"
|
||||
) as delay_mock:
|
||||
view(request)
|
||||
self.assertEqual(delay_mock.call_count, 1)
|
||||
activity = json.loads(delay_mock.call_args[0][1])
|
||||
self.assertEqual(activity["type"], "Delete")
|
||||
self.assertEqual(activity["actor"], self.local_user.remote_id)
|
||||
self.assertEqual(
|
||||
activity["cc"][0], "https://www.w3.org/ns/activitystreams#Public"
|
||||
)
|
||||
|
||||
self.local_user.refresh_from_db()
|
||||
self.assertFalse(self.local_user.is_active)
|
||||
self.assertEqual(self.local_user.deactivation_reason, "self_deletion")
|
|
@ -56,7 +56,7 @@ class ReadingViews(TestCase):
|
|||
)
|
||||
request.user = self.local_user
|
||||
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"):
|
||||
views.start_reading(request, self.book.id)
|
||||
views.ReadingStatus.as_view()(request, "start", self.book.id)
|
||||
|
||||
self.assertEqual(shelf.books.get(), self.book)
|
||||
|
||||
|
@ -86,7 +86,7 @@ class ReadingViews(TestCase):
|
|||
request = self.factory.post("")
|
||||
request.user = self.local_user
|
||||
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"):
|
||||
views.start_reading(request, self.book.id)
|
||||
views.ReadingStatus.as_view()(request, "start", self.book.id)
|
||||
|
||||
self.assertFalse(to_read_shelf.books.exists())
|
||||
self.assertEqual(shelf.books.get(), self.book)
|
||||
|
@ -112,7 +112,7 @@ class ReadingViews(TestCase):
|
|||
request.user = self.local_user
|
||||
|
||||
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"):
|
||||
views.finish_reading(request, self.book.id)
|
||||
views.ReadingStatus.as_view()(request, "finish", self.book.id)
|
||||
|
||||
self.assertEqual(shelf.books.get(), self.book)
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@ class ReadThrough(TestCase):
|
|||
self.assertEqual(self.edition.readthrough_set.count(), 0)
|
||||
|
||||
self.client.post(
|
||||
"/start-reading/{}".format(self.edition.id),
|
||||
"/reading-status/start/{}".format(self.edition.id),
|
||||
{
|
||||
"start_date": "2020-11-27",
|
||||
},
|
||||
|
@ -54,10 +54,9 @@ class ReadThrough(TestCase):
|
|||
self.assertEqual(self.edition.readthrough_set.count(), 0)
|
||||
|
||||
self.client.post(
|
||||
"/start-reading/{}".format(self.edition.id),
|
||||
"/reading-status/start/{}".format(self.edition.id),
|
||||
{
|
||||
"start_date": "2020-11-27",
|
||||
"progress": 50,
|
||||
},
|
||||
)
|
||||
|
||||
|
@ -66,15 +65,8 @@ class ReadThrough(TestCase):
|
|||
self.assertEqual(
|
||||
readthroughs[0].start_date, datetime(2020, 11, 27, tzinfo=timezone.utc)
|
||||
)
|
||||
self.assertEqual(readthroughs[0].progress, 50)
|
||||
self.assertEqual(readthroughs[0].finish_date, None)
|
||||
|
||||
progress_updates = readthroughs[0].progressupdate_set.all()
|
||||
self.assertEqual(len(progress_updates), 1)
|
||||
self.assertEqual(progress_updates[0].mode, models.ProgressMode.PAGE)
|
||||
self.assertEqual(progress_updates[0].progress, 50)
|
||||
self.assertEqual(delay_mock.call_count, 1)
|
||||
|
||||
# Update progress
|
||||
self.client.post(
|
||||
"/edit-readthrough",
|
||||
|
@ -87,9 +79,9 @@ class ReadThrough(TestCase):
|
|||
progress_updates = (
|
||||
readthroughs[0].progressupdate_set.order_by("updated_date").all()
|
||||
)
|
||||
self.assertEqual(len(progress_updates), 2)
|
||||
self.assertEqual(progress_updates[1].mode, models.ProgressMode.PAGE)
|
||||
self.assertEqual(progress_updates[1].progress, 100)
|
||||
self.assertEqual(len(progress_updates), 1)
|
||||
self.assertEqual(progress_updates[0].mode, models.ProgressMode.PAGE)
|
||||
self.assertEqual(progress_updates[0].progress, 100)
|
||||
|
||||
# Edit doesn't publish anything
|
||||
self.assertEqual(delay_mock.call_count, 1)
|
||||
|
|
|
@ -1,17 +1,13 @@
|
|||
""" test for app action functionality """
|
||||
import pathlib
|
||||
from unittest.mock import patch
|
||||
from PIL import Image
|
||||
|
||||
from django.contrib.auth.models import AnonymousUser
|
||||
from django.core.files.base import ContentFile
|
||||
from django.core.files.uploadedfile import SimpleUploadedFile
|
||||
from django.http.response import Http404
|
||||
from django.template.response import TemplateResponse
|
||||
from django.test import TestCase
|
||||
from django.test.client import RequestFactory
|
||||
|
||||
from bookwyrm import forms, models, views
|
||||
from bookwyrm import models, views
|
||||
from bookwyrm.activitypub import ActivitypubResponse
|
||||
|
||||
|
||||
|
@ -137,71 +133,3 @@ class UserViews(TestCase):
|
|||
is_api.return_value = False
|
||||
with self.assertRaises(Http404):
|
||||
view(request, "rat")
|
||||
|
||||
def test_edit_user_page(self):
|
||||
"""there are so many views, this just makes sure it LOADS"""
|
||||
view = views.EditUser.as_view()
|
||||
request = self.factory.get("")
|
||||
request.user = self.local_user
|
||||
result = view(request)
|
||||
self.assertIsInstance(result, TemplateResponse)
|
||||
result.render()
|
||||
self.assertEqual(result.status_code, 200)
|
||||
|
||||
def test_edit_user(self):
|
||||
"""use a form to update a user"""
|
||||
view = views.EditUser.as_view()
|
||||
form = forms.EditUserForm(instance=self.local_user)
|
||||
form.data["name"] = "New Name"
|
||||
form.data["email"] = "wow@email.com"
|
||||
form.data["preferred_timezone"] = "UTC"
|
||||
request = self.factory.post("", form.data)
|
||||
request.user = self.local_user
|
||||
|
||||
self.assertIsNone(self.local_user.name)
|
||||
with patch(
|
||||
"bookwyrm.models.activitypub_mixin.broadcast_task.delay"
|
||||
) as delay_mock:
|
||||
view(request)
|
||||
self.assertEqual(delay_mock.call_count, 1)
|
||||
self.assertEqual(self.local_user.name, "New Name")
|
||||
self.assertEqual(self.local_user.email, "wow@email.com")
|
||||
|
||||
def test_edit_user_avatar(self):
|
||||
"""use a form to update a user"""
|
||||
view = views.EditUser.as_view()
|
||||
form = forms.EditUserForm(instance=self.local_user)
|
||||
form.data["name"] = "New Name"
|
||||
form.data["email"] = "wow@email.com"
|
||||
form.data["preferred_timezone"] = "UTC"
|
||||
image_file = pathlib.Path(__file__).parent.joinpath(
|
||||
"../../static/images/no_cover.jpg"
|
||||
)
|
||||
form.data["avatar"] = SimpleUploadedFile(
|
||||
image_file, open(image_file, "rb").read(), content_type="image/jpeg"
|
||||
)
|
||||
request = self.factory.post("", form.data)
|
||||
request.user = self.local_user
|
||||
|
||||
with patch(
|
||||
"bookwyrm.models.activitypub_mixin.broadcast_task.delay"
|
||||
) as delay_mock:
|
||||
view(request)
|
||||
self.assertEqual(delay_mock.call_count, 1)
|
||||
self.assertEqual(self.local_user.name, "New Name")
|
||||
self.assertEqual(self.local_user.email, "wow@email.com")
|
||||
self.assertIsNotNone(self.local_user.avatar)
|
||||
self.assertEqual(self.local_user.avatar.width, 120)
|
||||
self.assertEqual(self.local_user.avatar.height, 120)
|
||||
|
||||
def test_crop_avatar(self):
|
||||
"""reduce that image size"""
|
||||
image_file = pathlib.Path(__file__).parent.joinpath(
|
||||
"../../static/images/no_cover.jpg"
|
||||
)
|
||||
image = Image.open(image_file)
|
||||
|
||||
result = views.user.crop_avatar(image)
|
||||
self.assertIsInstance(result, ContentFile)
|
||||
image_result = Image.open(result)
|
||||
self.assertEqual(image_result.size, (120, 120))
|
||||
|
|
|
@ -223,7 +223,7 @@ urlpatterns = [
|
|||
re_path(
|
||||
r"^list/(?P<list_id>\d+)/curate/?$", views.Curate.as_view(), name="list-curate"
|
||||
),
|
||||
# Uyser books
|
||||
# User books
|
||||
re_path(r"%s/books/?$" % user_path, views.Shelf.as_view(), name="user-shelves"),
|
||||
re_path(
|
||||
r"^%s/(helf|books)/(?P<shelf_identifier>[\w-]+)(.json)?/?$" % user_path,
|
||||
|
@ -253,6 +253,7 @@ urlpatterns = [
|
|||
views.ChangePassword.as_view(),
|
||||
name="prefs-password",
|
||||
),
|
||||
re_path(r"^preferences/delete/?$", views.DeleteUser.as_view(), name="prefs-delete"),
|
||||
re_path(r"^preferences/block/?$", views.Block.as_view(), name="prefs-block"),
|
||||
re_path(r"^block/(?P<user_id>\d+)/?$", views.Block.as_view()),
|
||||
re_path(r"^unblock/(?P<user_id>\d+)/?$", views.unblock),
|
||||
|
@ -315,8 +316,12 @@ urlpatterns = [
|
|||
re_path(r"^delete-readthrough/?$", views.delete_readthrough),
|
||||
re_path(r"^create-readthrough/?$", views.create_readthrough),
|
||||
re_path(r"^delete-progressupdate/?$", views.delete_progressupdate),
|
||||
re_path(r"^start-reading/(?P<book_id>\d+)/?$", views.start_reading),
|
||||
re_path(r"^finish-reading/(?P<book_id>\d+)/?$", views.finish_reading),
|
||||
# shelve actions
|
||||
re_path(
|
||||
r"^reading-status/(?P<status>want|start|finish)/(?P<book_id>\d+)/?$",
|
||||
views.ReadingStatus.as_view(),
|
||||
name="reading-status",
|
||||
),
|
||||
# following
|
||||
re_path(r"^follow/?$", views.follow, name="follow"),
|
||||
re_path(r"^unfollow/?$", views.unfollow, name="unfollow"),
|
||||
|
|
|
@ -6,6 +6,7 @@ from .block import Block, unblock
|
|||
from .books import Book, EditBook, ConfirmEditBook, Editions
|
||||
from .books import upload_cover, add_description, switch_edition, resolve_book
|
||||
from .directory import Directory
|
||||
from .edit_user import EditUser, DeleteUser
|
||||
from .federation import Federation, FederatedServer
|
||||
from .federation import AddFederatedServer, ImportServerBlocklist
|
||||
from .federation import block_server, unblock_server
|
||||
|
@ -24,8 +25,9 @@ from .landing import About, Home, Discover
|
|||
from .list import Lists, List, Curate, UserLists
|
||||
from .notifications import Notifications
|
||||
from .outbox import Outbox
|
||||
from .reading import edit_readthrough, create_readthrough, delete_readthrough
|
||||
from .reading import start_reading, finish_reading, delete_progressupdate
|
||||
from .reading import edit_readthrough, create_readthrough
|
||||
from .reading import delete_readthrough, delete_progressupdate
|
||||
from .reading import ReadingStatus
|
||||
from .reports import Report, Reports, make_report, resolve_report, suspend_user
|
||||
from .rss_feed import RssFeed
|
||||
from .password import PasswordResetRequest, PasswordReset, ChangePassword
|
||||
|
@ -36,6 +38,6 @@ from .shelf import shelve, unshelve
|
|||
from .site import Site
|
||||
from .status import CreateStatus, DeleteStatus, DeleteAndRedraft
|
||||
from .updates import get_notification_count, get_unread_status_count
|
||||
from .user import User, EditUser, Followers, Following
|
||||
from .user import User, Followers, Following
|
||||
from .user_admin import UserAdmin, UserAdminList
|
||||
from .wellknown import *
|
||||
|
|
113
bookwyrm/views/edit_user.py
Normal file
113
bookwyrm/views/edit_user.py
Normal file
|
@ -0,0 +1,113 @@
|
|||
""" edit or delete ones own account"""
|
||||
from io import BytesIO
|
||||
from uuid import uuid4
|
||||
from PIL import Image
|
||||
|
||||
from django.contrib.auth import logout
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.core.files.base import ContentFile
|
||||
from django.shortcuts import redirect
|
||||
from django.template.response import TemplateResponse
|
||||
from django.utils.decorators import method_decorator
|
||||
from django.views import View
|
||||
|
||||
from bookwyrm import forms, models
|
||||
|
||||
|
||||
# pylint: disable=no-self-use
|
||||
@method_decorator(login_required, name="dispatch")
|
||||
class EditUser(View):
|
||||
"""edit user view"""
|
||||
|
||||
def get(self, request):
|
||||
"""edit profile page for a user"""
|
||||
data = {
|
||||
"form": forms.EditUserForm(instance=request.user),
|
||||
"user": request.user,
|
||||
}
|
||||
return TemplateResponse(request, "preferences/edit_user.html", data)
|
||||
|
||||
def post(self, request):
|
||||
"""les get fancy with images"""
|
||||
form = forms.EditUserForm(request.POST, request.FILES, instance=request.user)
|
||||
if not form.is_valid():
|
||||
data = {"form": form, "user": request.user}
|
||||
return TemplateResponse(request, "preferences/edit_user.html", data)
|
||||
|
||||
user = save_user_form(form)
|
||||
|
||||
return redirect(user.local_path)
|
||||
|
||||
|
||||
# pylint: disable=no-self-use
|
||||
@method_decorator(login_required, name="dispatch")
|
||||
class DeleteUser(View):
|
||||
"""delete user view"""
|
||||
|
||||
def get(self, request):
|
||||
"""delete page for a user"""
|
||||
data = {
|
||||
"form": forms.DeleteUserForm(),
|
||||
"user": request.user,
|
||||
}
|
||||
return TemplateResponse(request, "preferences/delete_user.html", data)
|
||||
|
||||
def post(self, request):
|
||||
"""les get fancy with images"""
|
||||
form = forms.DeleteUserForm(request.POST, instance=request.user)
|
||||
form.is_valid()
|
||||
# idk why but I couldn't get check_password to work on request.user
|
||||
user = models.User.objects.get(id=request.user.id)
|
||||
if form.is_valid() and user.check_password(form.cleaned_data["password"]):
|
||||
user.deactivation_reason = "self_deletion"
|
||||
user.delete()
|
||||
logout(request)
|
||||
return redirect("/")
|
||||
|
||||
form.errors["password"] = ["Invalid password"]
|
||||
data = {"form": form, "user": request.user}
|
||||
return TemplateResponse(request, "preferences/delete_user.html", data)
|
||||
|
||||
|
||||
def save_user_form(form):
|
||||
"""special handling for the user form"""
|
||||
user = form.save(commit=False)
|
||||
|
||||
if "avatar" in form.files:
|
||||
# crop and resize avatar upload
|
||||
image = Image.open(form.files["avatar"])
|
||||
image = crop_avatar(image)
|
||||
|
||||
# set the name to a hash
|
||||
extension = form.files["avatar"].name.split(".")[-1]
|
||||
filename = "%s.%s" % (uuid4(), extension)
|
||||
user.avatar.save(filename, image, save=False)
|
||||
user.save()
|
||||
return user
|
||||
|
||||
|
||||
def crop_avatar(image):
|
||||
"""reduce the size and make an avatar square"""
|
||||
target_size = 120
|
||||
width, height = image.size
|
||||
thumbnail_scale = (
|
||||
height / (width / target_size)
|
||||
if height > width
|
||||
else width / (height / target_size)
|
||||
)
|
||||
image.thumbnail([thumbnail_scale, thumbnail_scale])
|
||||
width, height = image.size
|
||||
|
||||
width_diff = width - target_size
|
||||
height_diff = height - target_size
|
||||
cropped = image.crop(
|
||||
(
|
||||
int(width_diff / 2),
|
||||
int(height_diff / 2),
|
||||
int(width - (width_diff / 2)),
|
||||
int(height - (height_diff / 2)),
|
||||
)
|
||||
)
|
||||
output = BytesIO()
|
||||
cropped.save(output, format=image.format)
|
||||
return ContentFile(output.getvalue())
|
|
@ -14,7 +14,7 @@ from django.views import View
|
|||
from bookwyrm import forms, models
|
||||
from bookwyrm.connectors import connector_manager
|
||||
from .helpers import get_suggested_users
|
||||
from .user import save_user_form
|
||||
from .edit_user import save_user_form
|
||||
|
||||
|
||||
# pylint: disable= no-self-use
|
||||
|
|
|
@ -78,13 +78,15 @@ class ImportStatus(View):
|
|||
|
||||
def get(self, request, job_id):
|
||||
"""status of an import job"""
|
||||
job = models.ImportJob.objects.get(id=job_id)
|
||||
job = get_object_or_404(models.ImportJob, id=job_id)
|
||||
if job.user != request.user:
|
||||
raise PermissionDenied
|
||||
|
||||
try:
|
||||
task = app.AsyncResult(job.task_id)
|
||||
except ValueError:
|
||||
task = None
|
||||
|
||||
items = job.items.order_by("index").all()
|
||||
failed_items = [i for i in items if i.fail_reason]
|
||||
items = [i for i in items if not i.fail_reason]
|
||||
|
|
|
@ -7,95 +7,79 @@ from dateutil.parser import ParserError
|
|||
from django.contrib.auth.decorators import login_required
|
||||
from django.http import HttpResponseBadRequest, HttpResponseNotFound
|
||||
from django.shortcuts import get_object_or_404, redirect
|
||||
from django.template.response import TemplateResponse
|
||||
from django.utils.decorators import method_decorator
|
||||
from django.views import View
|
||||
from django.views.decorators.http import require_POST
|
||||
|
||||
from bookwyrm import models
|
||||
from .helpers import get_edition, handle_reading_status
|
||||
from .shelf import handle_unshelve
|
||||
|
||||
|
||||
# pylint: disable= no-self-use
|
||||
@login_required
|
||||
@require_POST
|
||||
def start_reading(request, book_id):
|
||||
"""begin reading a book"""
|
||||
book = get_edition(book_id)
|
||||
reading_shelf = models.Shelf.objects.filter(
|
||||
identifier=models.Shelf.READING, user=request.user
|
||||
).first()
|
||||
@method_decorator(login_required, name="dispatch")
|
||||
# pylint: disable=no-self-use
|
||||
class ReadingStatus(View):
|
||||
"""consider reading a book"""
|
||||
|
||||
# create a readthrough
|
||||
readthrough = update_readthrough(request, book=book)
|
||||
if readthrough:
|
||||
readthrough.save()
|
||||
def get(self, request, status, book_id):
|
||||
"""modal page"""
|
||||
book = get_edition(book_id)
|
||||
template = {
|
||||
"want": "want.html",
|
||||
"start": "start.html",
|
||||
"finish": "finish.html",
|
||||
}.get(status)
|
||||
if not template:
|
||||
return HttpResponseNotFound()
|
||||
return TemplateResponse(request, f"reading_progress/{template}", {"book": book})
|
||||
|
||||
# create a progress update if we have a page
|
||||
readthrough.create_update()
|
||||
def post(self, request, status, book_id):
|
||||
"""desire a book"""
|
||||
identifier = {
|
||||
"want": models.Shelf.TO_READ,
|
||||
"start": models.Shelf.READING,
|
||||
"finish": models.Shelf.READ_FINISHED,
|
||||
}.get(status)
|
||||
if not identifier:
|
||||
return HttpResponseBadRequest()
|
||||
|
||||
current_status_shelfbook = (
|
||||
models.ShelfBook.objects.select_related("shelf")
|
||||
.filter(
|
||||
shelf__identifier__in=models.Shelf.READ_STATUS_IDENTIFIERS,
|
||||
user=request.user,
|
||||
book=book,
|
||||
desired_shelf = models.Shelf.objects.filter(
|
||||
identifier=identifier, user=request.user
|
||||
).first()
|
||||
|
||||
book = get_edition(book_id)
|
||||
|
||||
current_status_shelfbook = (
|
||||
models.ShelfBook.objects.select_related("shelf")
|
||||
.filter(
|
||||
shelf__identifier__in=models.Shelf.READ_STATUS_IDENTIFIERS,
|
||||
user=request.user,
|
||||
book=book,
|
||||
)
|
||||
.first()
|
||||
)
|
||||
.first()
|
||||
)
|
||||
if current_status_shelfbook is not None:
|
||||
if current_status_shelfbook.shelf.identifier != models.Shelf.READING:
|
||||
handle_unshelve(book, current_status_shelfbook.shelf)
|
||||
else: # It already was on the shelf
|
||||
return redirect(request.headers.get("Referer", "/"))
|
||||
if current_status_shelfbook is not None:
|
||||
if current_status_shelfbook.shelf.identifier != desired_shelf.identifier:
|
||||
current_status_shelfbook.delete()
|
||||
else: # It already was on the shelf
|
||||
return redirect(request.headers.get("Referer", "/"))
|
||||
|
||||
models.ShelfBook.objects.create(book=book, shelf=reading_shelf, user=request.user)
|
||||
|
||||
# post about it (if you want)
|
||||
if request.POST.get("post-status"):
|
||||
privacy = request.POST.get("privacy")
|
||||
handle_reading_status(request.user, reading_shelf, book, privacy)
|
||||
|
||||
return redirect(request.headers.get("Referer", "/"))
|
||||
|
||||
|
||||
@login_required
|
||||
@require_POST
|
||||
def finish_reading(request, book_id):
|
||||
"""a user completed a book, yay"""
|
||||
book = get_edition(book_id)
|
||||
finished_read_shelf = models.Shelf.objects.filter(
|
||||
identifier=models.Shelf.READ_FINISHED, user=request.user
|
||||
).first()
|
||||
|
||||
# update or create a readthrough
|
||||
readthrough = update_readthrough(request, book=book)
|
||||
if readthrough:
|
||||
readthrough.save()
|
||||
|
||||
current_status_shelfbook = (
|
||||
models.ShelfBook.objects.select_related("shelf")
|
||||
.filter(
|
||||
shelf__identifier__in=models.Shelf.READ_STATUS_IDENTIFIERS,
|
||||
user=request.user,
|
||||
book=book,
|
||||
models.ShelfBook.objects.create(
|
||||
book=book, shelf=desired_shelf, user=request.user
|
||||
)
|
||||
.first()
|
||||
)
|
||||
if current_status_shelfbook is not None:
|
||||
if current_status_shelfbook.shelf.identifier != models.Shelf.READ_FINISHED:
|
||||
handle_unshelve(book, current_status_shelfbook.shelf)
|
||||
else: # It already was on the shelf
|
||||
return redirect(request.headers.get("Referer", "/"))
|
||||
|
||||
models.ShelfBook.objects.create(
|
||||
book=book, shelf=finished_read_shelf, user=request.user
|
||||
)
|
||||
if desired_shelf.identifier != models.Shelf.TO_READ:
|
||||
# update or create a readthrough
|
||||
readthrough = update_readthrough(request, book=book)
|
||||
if readthrough:
|
||||
readthrough.save()
|
||||
|
||||
# post about it (if you want)
|
||||
if request.POST.get("post-status"):
|
||||
privacy = request.POST.get("privacy")
|
||||
handle_reading_status(request.user, finished_read_shelf, book, privacy)
|
||||
# post about it (if you want)
|
||||
if request.POST.get("post-status"):
|
||||
privacy = request.POST.get("privacy")
|
||||
handle_reading_status(request.user, desired_shelf, book, privacy)
|
||||
|
||||
return redirect(request.headers.get("Referer", "/"))
|
||||
return redirect(request.headers.get("Referer", "/"))
|
||||
|
||||
|
||||
@login_required
|
||||
|
|
|
@ -20,7 +20,7 @@ from .helpers import is_api_request, get_edition, get_user_from_username
|
|||
from .helpers import handle_reading_status, privacy_filter
|
||||
|
||||
|
||||
# pylint: disable= no-self-use
|
||||
# pylint: disable=no-self-use
|
||||
class Shelf(View):
|
||||
"""shelf page"""
|
||||
|
||||
|
@ -178,11 +178,6 @@ def shelve(request):
|
|||
models.ShelfBook.objects.create(
|
||||
book=book, shelf=desired_shelf, user=request.user
|
||||
)
|
||||
if desired_shelf.identifier == models.Shelf.TO_READ and request.POST.get(
|
||||
"post-status"
|
||||
):
|
||||
privacy = request.POST.get("privacy") or desired_shelf.privacy
|
||||
handle_reading_status(request.user, desired_shelf, book, privacy=privacy)
|
||||
else:
|
||||
try:
|
||||
models.ShelfBook.objects.create(
|
||||
|
@ -206,7 +201,6 @@ def unshelve(request):
|
|||
return redirect(request.headers.get("Referer", "/"))
|
||||
|
||||
|
||||
# pylint: disable=unused-argument
|
||||
def handle_unshelve(book, shelf):
|
||||
"""unshelve a book"""
|
||||
row = models.ShelfBook.objects.get(book=book, shelf=shelf)
|
||||
|
|
|
@ -1,25 +1,17 @@
|
|||
""" non-interactive pages """
|
||||
from io import BytesIO
|
||||
from uuid import uuid4
|
||||
from PIL import Image
|
||||
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.core.files.base import ContentFile
|
||||
from django.core.paginator import Paginator
|
||||
from django.shortcuts import redirect
|
||||
from django.template.response import TemplateResponse
|
||||
from django.utils import timezone
|
||||
from django.utils.decorators import method_decorator
|
||||
from django.views import View
|
||||
|
||||
from bookwyrm import forms, models
|
||||
from bookwyrm import models
|
||||
from bookwyrm.activitypub import ActivitypubResponse
|
||||
from bookwyrm.settings import PAGE_LENGTH
|
||||
from .helpers import get_user_from_username, is_api_request
|
||||
from .helpers import privacy_filter
|
||||
|
||||
|
||||
# pylint: disable= no-self-use
|
||||
# pylint: disable=no-self-use
|
||||
class User(View):
|
||||
"""user profile page"""
|
||||
|
||||
|
@ -122,71 +114,3 @@ class Following(View):
|
|||
"follow_list": paginated.get_page(request.GET.get("page")),
|
||||
}
|
||||
return TemplateResponse(request, "user/relationships/following.html", data)
|
||||
|
||||
|
||||
@method_decorator(login_required, name="dispatch")
|
||||
class EditUser(View):
|
||||
"""edit user view"""
|
||||
|
||||
def get(self, request):
|
||||
"""edit profile page for a user"""
|
||||
data = {
|
||||
"form": forms.EditUserForm(instance=request.user),
|
||||
"user": request.user,
|
||||
}
|
||||
return TemplateResponse(request, "preferences/edit_user.html", data)
|
||||
|
||||
def post(self, request):
|
||||
"""les get fancy with images"""
|
||||
form = forms.EditUserForm(request.POST, request.FILES, instance=request.user)
|
||||
if not form.is_valid():
|
||||
data = {"form": form, "user": request.user}
|
||||
return TemplateResponse(request, "preferences/edit_user.html", data)
|
||||
|
||||
user = save_user_form(form)
|
||||
|
||||
return redirect(user.local_path)
|
||||
|
||||
|
||||
def save_user_form(form):
|
||||
"""special handling for the user form"""
|
||||
user = form.save(commit=False)
|
||||
|
||||
if "avatar" in form.files:
|
||||
# crop and resize avatar upload
|
||||
image = Image.open(form.files["avatar"])
|
||||
image = crop_avatar(image)
|
||||
|
||||
# set the name to a hash
|
||||
extension = form.files["avatar"].name.split(".")[-1]
|
||||
filename = "%s.%s" % (uuid4(), extension)
|
||||
user.avatar.save(filename, image, save=False)
|
||||
user.save()
|
||||
return user
|
||||
|
||||
|
||||
def crop_avatar(image):
|
||||
"""reduce the size and make an avatar square"""
|
||||
target_size = 120
|
||||
width, height = image.size
|
||||
thumbnail_scale = (
|
||||
height / (width / target_size)
|
||||
if height > width
|
||||
else width / (height / target_size)
|
||||
)
|
||||
image.thumbnail([thumbnail_scale, thumbnail_scale])
|
||||
width, height = image.size
|
||||
|
||||
width_diff = width - target_size
|
||||
height_diff = height - target_size
|
||||
cropped = image.crop(
|
||||
(
|
||||
int(width_diff / 2),
|
||||
int(height_diff / 2),
|
||||
int(width - (width_diff / 2)),
|
||||
int(height - (height_diff / 2)),
|
||||
)
|
||||
)
|
||||
output = BytesIO()
|
||||
cropped.save(output, format=image.format)
|
||||
return ContentFile(output.getvalue())
|
||||
|
|
5
bw-dev
5
bw-dev
|
@ -47,9 +47,6 @@ case "$CMD" in
|
|||
initdb)
|
||||
initdb
|
||||
;;
|
||||
makemigrations)
|
||||
runweb python manage.py makemigrations "$@"
|
||||
;;
|
||||
migrate)
|
||||
runweb python manage.py migrate "$@"
|
||||
;;
|
||||
|
@ -82,6 +79,6 @@ case "$CMD" in
|
|||
runweb python manage.py populate_streams
|
||||
;;
|
||||
*)
|
||||
echo "Unrecognised command. Try: build, up, initdb, makemigrations, migrate, bash, shell, dbshell, restart_celery, update, populate_feeds"
|
||||
echo "Unrecognised command. Try: build, up, initdb, migrate, bash, shell, dbshell, restart_celery, update, populate_feeds"
|
||||
;;
|
||||
esac
|
||||
|
|
Binary file not shown.
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: 0.0.1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-05-20 14:40-0700\n"
|
||||
"POT-Creation-Date: 2021-06-06 20:52+0000\n"
|
||||
"PO-Revision-Date: 2021-03-02 17:19-0800\n"
|
||||
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
|
||||
"Language-Team: English <LL@li.org>\n"
|
||||
|
@ -62,12 +62,12 @@ msgid "Book Title"
|
|||
msgstr "Titel"
|
||||
|
||||
#: bookwyrm/forms.py:301 bookwyrm/templates/snippets/create_status_form.html:34
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:84
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:115
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:85
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:116
|
||||
msgid "Rating"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/forms.py:303 bookwyrm/templates/lists/list.html:101
|
||||
#: bookwyrm/forms.py:303 bookwyrm/templates/lists/list.html:107
|
||||
msgid "Sort By"
|
||||
msgstr ""
|
||||
|
||||
|
@ -83,41 +83,41 @@ msgstr "Zu lesen angefangen"
|
|||
msgid "Descending"
|
||||
msgstr "Zu lesen angefangen"
|
||||
|
||||
#: bookwyrm/models/fields.py:24
|
||||
#: bookwyrm/models/fields.py:25
|
||||
#, python-format
|
||||
msgid "%(value)s is not a valid remote_id"
|
||||
msgstr "%(value)s ist keine gültige remote_id"
|
||||
|
||||
#: bookwyrm/models/fields.py:33 bookwyrm/models/fields.py:42
|
||||
#: bookwyrm/models/fields.py:34 bookwyrm/models/fields.py:43
|
||||
#, python-format
|
||||
msgid "%(value)s is not a valid username"
|
||||
msgstr "%(value)s ist kein gültiger Username"
|
||||
|
||||
#: bookwyrm/models/fields.py:165 bookwyrm/templates/layout.html:155
|
||||
#: bookwyrm/models/fields.py:166 bookwyrm/templates/layout.html:152
|
||||
msgid "username"
|
||||
msgstr "Username"
|
||||
|
||||
#: bookwyrm/models/fields.py:170
|
||||
#: bookwyrm/models/fields.py:171
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "Dieser Benutzename ist bereits vergeben."
|
||||
|
||||
#: bookwyrm/settings.py:155
|
||||
#: bookwyrm/settings.py:156
|
||||
msgid "English"
|
||||
msgstr "Englisch"
|
||||
|
||||
#: bookwyrm/settings.py:156
|
||||
#: bookwyrm/settings.py:157
|
||||
msgid "German"
|
||||
msgstr "Deutsch"
|
||||
|
||||
#: bookwyrm/settings.py:157
|
||||
#: bookwyrm/settings.py:158
|
||||
msgid "Spanish"
|
||||
msgstr "Spanisch"
|
||||
|
||||
#: bookwyrm/settings.py:158
|
||||
#: bookwyrm/settings.py:159
|
||||
msgid "French"
|
||||
msgstr "Französisch"
|
||||
|
||||
#: bookwyrm/settings.py:159
|
||||
#: bookwyrm/settings.py:160
|
||||
msgid "Simplified Chinese"
|
||||
msgstr "Vereinfachtes Chinesisch"
|
||||
|
||||
|
@ -266,7 +266,7 @@ msgstr ""
|
|||
#: bookwyrm/templates/book/edit_book.html:263
|
||||
#: bookwyrm/templates/lists/form.html:42
|
||||
#: bookwyrm/templates/preferences/edit_user.html:70
|
||||
#: bookwyrm/templates/settings/announcement_form.html:65
|
||||
#: bookwyrm/templates/settings/announcement_form.html:69
|
||||
#: bookwyrm/templates/settings/edit_server.html:68
|
||||
#: bookwyrm/templates/settings/federated_server.html:98
|
||||
#: bookwyrm/templates/settings/site.html:97
|
||||
|
@ -398,7 +398,7 @@ msgstr "Themen"
|
|||
msgid "Places"
|
||||
msgstr "Orte"
|
||||
|
||||
#: bookwyrm/templates/book/book.html:276 bookwyrm/templates/layout.html:64
|
||||
#: bookwyrm/templates/book/book.html:276 bookwyrm/templates/layout.html:61
|
||||
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
|
||||
#: bookwyrm/templates/search/layout.html:25
|
||||
#: bookwyrm/templates/search/layout.html:50
|
||||
|
@ -414,7 +414,7 @@ msgstr "Zur Liste"
|
|||
|
||||
#: bookwyrm/templates/book/book.html:297
|
||||
#: bookwyrm/templates/book/cover_modal.html:31
|
||||
#: bookwyrm/templates/lists/list.html:164
|
||||
#: bookwyrm/templates/lists/list.html:179
|
||||
msgid "Add"
|
||||
msgstr "Hinzufügen"
|
||||
|
||||
|
@ -559,7 +559,7 @@ msgid "John Doe, Jane Smith"
|
|||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:183
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:77
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:78
|
||||
msgid "Cover"
|
||||
msgstr ""
|
||||
|
||||
|
@ -688,7 +688,7 @@ msgstr "Föderiert"
|
|||
|
||||
#: bookwyrm/templates/directory/directory.html:4
|
||||
#: bookwyrm/templates/directory/directory.html:9
|
||||
#: bookwyrm/templates/layout.html:92
|
||||
#: bookwyrm/templates/layout.html:64
|
||||
msgid "Directory"
|
||||
msgstr ""
|
||||
|
||||
|
@ -902,7 +902,7 @@ msgid "Direct Messages with <a href=\"%(path)s\">%(username)s</a>"
|
|||
msgstr "Direktnachrichten mit <a href=\"%(path)s\">%(username)s</a>"
|
||||
|
||||
#: bookwyrm/templates/feed/direct_messages.html:10
|
||||
#: bookwyrm/templates/layout.html:87
|
||||
#: bookwyrm/templates/layout.html:92
|
||||
msgid "Direct Messages"
|
||||
msgstr "Direktnachrichten"
|
||||
|
||||
|
@ -960,7 +960,6 @@ msgid "Updates"
|
|||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/feed/feed_layout.html:10
|
||||
#: bookwyrm/templates/layout.html:58
|
||||
#: bookwyrm/templates/user/shelf/books_header.html:3
|
||||
msgid "Your books"
|
||||
msgstr "Deine Bücher"
|
||||
|
@ -1022,7 +1021,7 @@ msgid "What are you reading?"
|
|||
msgstr "Zu lesen angefangen"
|
||||
|
||||
#: bookwyrm/templates/get_started/books.html:9
|
||||
#: bookwyrm/templates/lists/list.html:120
|
||||
#: bookwyrm/templates/lists/list.html:135
|
||||
msgid "Search for a book"
|
||||
msgstr "Nach einem Buch suchen"
|
||||
|
||||
|
@ -1042,7 +1041,7 @@ msgstr ""
|
|||
#: bookwyrm/templates/get_started/users.html:18
|
||||
#: bookwyrm/templates/get_started/users.html:19
|
||||
#: bookwyrm/templates/layout.html:37 bookwyrm/templates/layout.html:38
|
||||
#: bookwyrm/templates/lists/list.html:124
|
||||
#: bookwyrm/templates/lists/list.html:139
|
||||
#: bookwyrm/templates/search/layout.html:4
|
||||
#: bookwyrm/templates/search/layout.html:9
|
||||
msgid "Search"
|
||||
|
@ -1061,7 +1060,7 @@ msgid "Popular on %(site_name)s"
|
|||
msgstr "Über %(site_name)s"
|
||||
|
||||
#: bookwyrm/templates/get_started/books.html:58
|
||||
#: bookwyrm/templates/lists/list.html:137
|
||||
#: bookwyrm/templates/lists/list.html:152
|
||||
msgid "No books found"
|
||||
msgstr "Keine Bücher gefunden"
|
||||
|
||||
|
@ -1184,7 +1183,7 @@ msgid "%(username)s's %(year)s Books"
|
|||
msgstr "%(username)ss %(year)s Bücher"
|
||||
|
||||
#: bookwyrm/templates/import.html:5 bookwyrm/templates/import.html:9
|
||||
#: bookwyrm/templates/layout.html:97
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:40
|
||||
msgid "Import Books"
|
||||
msgstr "Bücher importieren"
|
||||
|
||||
|
@ -1271,14 +1270,14 @@ msgstr "Buch"
|
|||
|
||||
#: bookwyrm/templates/import_status.html:114
|
||||
#: bookwyrm/templates/snippets/create_status_form.html:13
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:78
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:98
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:79
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:99
|
||||
msgid "Title"
|
||||
msgstr "Titel"
|
||||
|
||||
#: bookwyrm/templates/import_status.html:117
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:79
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:101
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:80
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:102
|
||||
msgid "Author"
|
||||
msgstr "Autor*in"
|
||||
|
||||
|
@ -1320,15 +1319,21 @@ msgstr "Suche nach Buch oder Benutzer*in"
|
|||
msgid "Main navigation menu"
|
||||
msgstr "Navigationshauptmenü"
|
||||
|
||||
#: bookwyrm/templates/layout.html:61
|
||||
#: bookwyrm/templates/layout.html:58
|
||||
msgid "Feed"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/layout.html:102
|
||||
#: bookwyrm/templates/layout.html:87
|
||||
#, fuzzy
|
||||
#| msgid "Your books"
|
||||
msgid "Your Books"
|
||||
msgstr "Deine Bücher"
|
||||
|
||||
#: bookwyrm/templates/layout.html:97
|
||||
msgid "Settings"
|
||||
msgstr "Einstellungen"
|
||||
|
||||
#: bookwyrm/templates/layout.html:111
|
||||
#: bookwyrm/templates/layout.html:106
|
||||
#: bookwyrm/templates/settings/admin_layout.html:31
|
||||
#: bookwyrm/templates/settings/manage_invite_requests.html:15
|
||||
#: bookwyrm/templates/settings/manage_invites.html:3
|
||||
|
@ -1336,45 +1341,47 @@ msgstr "Einstellungen"
|
|||
msgid "Invites"
|
||||
msgstr "Einladungen"
|
||||
|
||||
#: bookwyrm/templates/layout.html:118
|
||||
#: bookwyrm/templates/layout.html:113
|
||||
msgid "Admin"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/layout.html:125
|
||||
#: bookwyrm/templates/layout.html:120
|
||||
msgid "Log out"
|
||||
msgstr "Abmelden"
|
||||
|
||||
#: bookwyrm/templates/layout.html:133 bookwyrm/templates/layout.html:134
|
||||
#: bookwyrm/templates/layout.html:128 bookwyrm/templates/layout.html:129
|
||||
#: bookwyrm/templates/notifications.html:6
|
||||
#: bookwyrm/templates/notifications.html:11
|
||||
msgid "Notifications"
|
||||
msgstr "Benachrichtigungen"
|
||||
|
||||
#: bookwyrm/templates/layout.html:154 bookwyrm/templates/layout.html:158
|
||||
#: bookwyrm/templates/layout.html:151 bookwyrm/templates/layout.html:155
|
||||
#: bookwyrm/templates/login.html:17
|
||||
#: bookwyrm/templates/snippets/register_form.html:4
|
||||
msgid "Username:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/layout.html:159
|
||||
#: bookwyrm/templates/layout.html:156
|
||||
msgid "password"
|
||||
msgstr "Passwort"
|
||||
|
||||
#: bookwyrm/templates/layout.html:160 bookwyrm/templates/login.html:36
|
||||
#: bookwyrm/templates/layout.html:157 bookwyrm/templates/login.html:36
|
||||
msgid "Forgot your password?"
|
||||
msgstr "Passwort vergessen?"
|
||||
|
||||
#: bookwyrm/templates/layout.html:163 bookwyrm/templates/login.html:10
|
||||
#: bookwyrm/templates/layout.html:160 bookwyrm/templates/login.html:10
|
||||
#: bookwyrm/templates/login.html:33
|
||||
msgid "Log in"
|
||||
msgstr "Anmelden"
|
||||
|
||||
#: bookwyrm/templates/layout.html:171
|
||||
#: bookwyrm/templates/layout.html:168
|
||||
msgid "Join"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/layout.html:206
|
||||
msgid "About this server"
|
||||
#, fuzzy
|
||||
#| msgid "About this server"
|
||||
msgid "About this instance"
|
||||
msgstr "Über diesen Server"
|
||||
|
||||
#: bookwyrm/templates/layout.html:210
|
||||
|
@ -1438,7 +1445,7 @@ msgid "Discard"
|
|||
msgstr "Ablehnen"
|
||||
|
||||
#: bookwyrm/templates/lists/edit_form.html:5
|
||||
#: bookwyrm/templates/lists/list_layout.html:17
|
||||
#: bookwyrm/templates/lists/list_layout.html:16
|
||||
msgid "Edit List"
|
||||
msgstr "Liste bearbeiten"
|
||||
|
||||
|
@ -1487,63 +1494,64 @@ msgstr "Alle können Bücher hinzufügen"
|
|||
msgid "This list is currently empty"
|
||||
msgstr "Diese Liste ist momentan leer"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:65
|
||||
#: bookwyrm/templates/lists/list.html:66
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Direct Messages with <a href=\"%(path)s\">%(username)s</a>"
|
||||
msgid "Added by <a href=\"%(user_path)s\">%(username)s</a>"
|
||||
msgstr "Direktnachrichten mit <a href=\"%(path)s\">%(username)s</a>"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:77
|
||||
#, fuzzy
|
||||
#| msgid "Started"
|
||||
msgid "Set"
|
||||
msgstr "Gestartet"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:80
|
||||
#: bookwyrm/templates/lists/list.html:74
|
||||
#, fuzzy
|
||||
#| msgid "List curation:"
|
||||
msgid "List position"
|
||||
msgstr "Listenkuratierung:"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:86
|
||||
#: bookwyrm/templates/lists/list.html:81
|
||||
#, fuzzy
|
||||
#| msgid "Started"
|
||||
msgid "Set"
|
||||
msgstr "Gestartet"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:89
|
||||
#: bookwyrm/templates/snippets/shelf_selector.html:26
|
||||
msgid "Remove"
|
||||
msgstr "Entfernen"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:99 bookwyrm/templates/lists/list.html:111
|
||||
#: bookwyrm/templates/lists/list.html:103
|
||||
#: bookwyrm/templates/lists/list.html:120
|
||||
#, fuzzy
|
||||
#| msgid "Your Lists"
|
||||
msgid "Sort List"
|
||||
msgstr "Deine Listen"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:105
|
||||
#: bookwyrm/templates/lists/list.html:113
|
||||
#, fuzzy
|
||||
#| msgid "List curation:"
|
||||
msgid "Direction"
|
||||
msgstr "Listenkuratierung:"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:116
|
||||
#: bookwyrm/templates/lists/list.html:127
|
||||
msgid "Add Books"
|
||||
msgstr "Bücher hinzufügen"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:116
|
||||
#: bookwyrm/templates/lists/list.html:129
|
||||
msgid "Suggest Books"
|
||||
msgstr "Bücher vorschlagen"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:125
|
||||
#: bookwyrm/templates/lists/list.html:140
|
||||
msgid "search"
|
||||
msgstr "suchen"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:131
|
||||
#: bookwyrm/templates/lists/list.html:146
|
||||
msgid "Clear search"
|
||||
msgstr "Suche leeren"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:136
|
||||
#: bookwyrm/templates/lists/list.html:151
|
||||
#, python-format
|
||||
msgid "No books found matching the query \"%(query)s\""
|
||||
msgstr "Keine passenden Bücher zu \"%(query)s\" gefunden"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:164
|
||||
#: bookwyrm/templates/lists/list.html:179
|
||||
msgid "Suggest"
|
||||
msgstr "Vorschlagen"
|
||||
|
||||
|
@ -1643,7 +1651,7 @@ msgstr "Lösen"
|
|||
#: bookwyrm/templates/moderation/reports.html:6
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Lists: %(username)s"
|
||||
msgid "Reports: %(server_name)s"
|
||||
msgid "Reports: %(instance_name)s"
|
||||
msgstr "Listen: %(username)s"
|
||||
|
||||
#: bookwyrm/templates/moderation/reports.html:8
|
||||
|
@ -1657,7 +1665,7 @@ msgstr "Aktuelle Importe"
|
|||
#: bookwyrm/templates/moderation/reports.html:14
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Lists: %(username)s"
|
||||
msgid "Reports: <small>%(server_name)s</small>"
|
||||
msgid "Reports: <small>%(instance_name)s</small>"
|
||||
msgstr "Listen: %(username)s"
|
||||
|
||||
#: bookwyrm/templates/moderation/reports.html:28
|
||||
|
@ -1863,6 +1871,26 @@ msgstr "Profil"
|
|||
msgid "Relationships"
|
||||
msgstr "Beziehungen"
|
||||
|
||||
#: bookwyrm/templates/rss/title.html:5
|
||||
#: bookwyrm/templates/snippets/status/status_header.html:35
|
||||
msgid "rated"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/rss/title.html:7
|
||||
#: bookwyrm/templates/snippets/status/status_header.html:37
|
||||
msgid "reviewed"
|
||||
msgstr "bewertete"
|
||||
|
||||
#: bookwyrm/templates/rss/title.html:9
|
||||
#: bookwyrm/templates/snippets/status/status_header.html:39
|
||||
msgid "commented on"
|
||||
msgstr "kommentierte"
|
||||
|
||||
#: bookwyrm/templates/rss/title.html:11
|
||||
#: bookwyrm/templates/snippets/status/status_header.html:41
|
||||
msgid "quoted"
|
||||
msgstr "zitierte"
|
||||
|
||||
#: bookwyrm/templates/search/book.html:64
|
||||
#, fuzzy
|
||||
#| msgid "Show results from other catalogues"
|
||||
|
@ -1922,7 +1950,9 @@ msgstr "Nutzer*innen verwalten"
|
|||
#: bookwyrm/templates/settings/admin_layout.html:39
|
||||
#: bookwyrm/templates/settings/federation.html:3
|
||||
#: bookwyrm/templates/settings/federation.html:5
|
||||
msgid "Federated Servers"
|
||||
#, fuzzy
|
||||
#| msgid "Federated Servers"
|
||||
msgid "Federated Instances"
|
||||
msgstr "Föderierende Server"
|
||||
|
||||
#: bookwyrm/templates/settings/admin_layout.html:44
|
||||
|
@ -1976,6 +2006,7 @@ msgid "Back to list"
|
|||
msgstr "Zurück zu den Meldungen"
|
||||
|
||||
#: bookwyrm/templates/settings/announcement.html:11
|
||||
#: bookwyrm/templates/settings/announcement_form.html:6
|
||||
#, fuzzy
|
||||
#| msgid "Announcements"
|
||||
msgid "Edit Announcement"
|
||||
|
@ -2017,7 +2048,7 @@ msgstr "Geburtsdatum:"
|
|||
msgid "Active:"
|
||||
msgstr "Aktivität"
|
||||
|
||||
#: bookwyrm/templates/settings/announcement_form.html:5
|
||||
#: bookwyrm/templates/settings/announcement_form.html:8
|
||||
#: bookwyrm/templates/settings/announcements.html:8
|
||||
#, fuzzy
|
||||
#| msgid "Announcements"
|
||||
|
@ -2076,15 +2107,15 @@ msgstr "Aktivität"
|
|||
#: bookwyrm/templates/settings/server_blocklist.html:3
|
||||
#: bookwyrm/templates/settings/server_blocklist.html:20
|
||||
#, fuzzy
|
||||
#| msgid "Add cover"
|
||||
msgid "Add server"
|
||||
msgstr "Cover hinzufügen"
|
||||
#| msgid "Instance Name:"
|
||||
msgid "Add instance"
|
||||
msgstr "Instanzname"
|
||||
|
||||
#: bookwyrm/templates/settings/edit_server.html:7
|
||||
#: bookwyrm/templates/settings/server_blocklist.html:7
|
||||
#, fuzzy
|
||||
#| msgid "Back to reports"
|
||||
msgid "Back to server list"
|
||||
msgid "Back to instance list"
|
||||
msgstr "Zurück zu den Meldungen"
|
||||
|
||||
#: bookwyrm/templates/settings/edit_server.html:16
|
||||
|
@ -2213,8 +2244,10 @@ msgstr ""
|
|||
|
||||
#: bookwyrm/templates/settings/federation.html:19
|
||||
#: bookwyrm/templates/user_admin/server_filter.html:5
|
||||
msgid "Server name"
|
||||
msgstr "Servername"
|
||||
#, fuzzy
|
||||
#| msgid "Instance Name:"
|
||||
msgid "Instance name"
|
||||
msgstr "Instanzname"
|
||||
|
||||
#: bookwyrm/templates/settings/federation.html:23
|
||||
#, fuzzy
|
||||
|
@ -2353,7 +2386,7 @@ msgid "Import Blocklist"
|
|||
msgstr "Bücher importieren"
|
||||
|
||||
#: bookwyrm/templates/settings/server_blocklist.html:26
|
||||
#: bookwyrm/templates/snippets/goal_progress.html:5
|
||||
#: bookwyrm/templates/snippets/goal_progress.html:7
|
||||
msgid "Success!"
|
||||
msgstr "Erfolg!"
|
||||
|
||||
|
@ -2446,15 +2479,15 @@ msgstr "Cover hinzufügen"
|
|||
msgid "<a href=\"%(path)s\">%(title)s</a> by "
|
||||
msgstr "<a href=\"%(path)s\">%(title)s</a> von "
|
||||
|
||||
#: bookwyrm/templates/snippets/boost_button.html:9
|
||||
#: bookwyrm/templates/snippets/boost_button.html:10
|
||||
#: bookwyrm/templates/snippets/boost_button.html:20
|
||||
#: bookwyrm/templates/snippets/boost_button.html:21
|
||||
#, fuzzy
|
||||
#| msgid "boosted"
|
||||
msgid "Boost"
|
||||
msgstr "teilt"
|
||||
|
||||
#: bookwyrm/templates/snippets/boost_button.html:16
|
||||
#: bookwyrm/templates/snippets/boost_button.html:17
|
||||
#: bookwyrm/templates/snippets/boost_button.html:33
|
||||
#: bookwyrm/templates/snippets/boost_button.html:34
|
||||
#, fuzzy
|
||||
#| msgid "Un-boost status"
|
||||
msgid "Un-boost"
|
||||
|
@ -2554,13 +2587,13 @@ msgstr "Diese Lesedaten löschen?"
|
|||
msgid "You are deleting this readthrough and its %(count)s associated progress updates."
|
||||
msgstr "Du löscht diesen Leseforschritt und %(count)s zugehörige Fortschrittsupdates."
|
||||
|
||||
#: bookwyrm/templates/snippets/fav_button.html:9
|
||||
#: bookwyrm/templates/snippets/fav_button.html:11
|
||||
#: bookwyrm/templates/snippets/fav_button.html:10
|
||||
#: bookwyrm/templates/snippets/fav_button.html:12
|
||||
msgid "Like"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/snippets/fav_button.html:17
|
||||
#: bookwyrm/templates/snippets/fav_button.html:18
|
||||
#: bookwyrm/templates/snippets/fav_button.html:19
|
||||
#, fuzzy
|
||||
#| msgid "Un-like status"
|
||||
msgid "Un-like"
|
||||
|
@ -2609,6 +2642,14 @@ msgstr "Annehmen"
|
|||
msgid "No rating"
|
||||
msgstr "Kein Rating"
|
||||
|
||||
#: bookwyrm/templates/snippets/form_rate_stars.html:44
|
||||
#: bookwyrm/templates/snippets/stars.html:7
|
||||
#, python-format
|
||||
msgid "%(rating)s star"
|
||||
msgid_plural "%(rating)s stars"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: bookwyrm/templates/snippets/generated_status/goal.html:1
|
||||
#, python-format
|
||||
msgid "set a goal to read %(counter)s book in %(year)s"
|
||||
|
@ -2664,17 +2705,17 @@ msgstr "Posten"
|
|||
msgid "Set goal"
|
||||
msgstr "Ziel setzen"
|
||||
|
||||
#: bookwyrm/templates/snippets/goal_progress.html:7
|
||||
#: bookwyrm/templates/snippets/goal_progress.html:9
|
||||
#, python-format
|
||||
msgid "%(percent)s%% complete!"
|
||||
msgstr "%(percent)s%% komplett!"
|
||||
|
||||
#: bookwyrm/templates/snippets/goal_progress.html:10
|
||||
#: bookwyrm/templates/snippets/goal_progress.html:12
|
||||
#, python-format
|
||||
msgid "You've read <a href=\"%(path)s\">%(read_count)s of %(goal_count)s books</a>."
|
||||
msgstr "Du hast <a href=\"%(path)s\">%(read_count)s von %(goal_count)s Büchern</a> gelesen."
|
||||
|
||||
#: bookwyrm/templates/snippets/goal_progress.html:12
|
||||
#: bookwyrm/templates/snippets/goal_progress.html:14
|
||||
#, python-format
|
||||
msgid "%(username)s has read <a href=\"%(path)s\">%(read_count)s of %(goal_count)s books</a>."
|
||||
msgstr "%(username)s hat <a href=\"%(path)s\">%(read_count)s von %(goal_count)s Büchern</a> gelesen."
|
||||
|
@ -2787,26 +2828,6 @@ msgstr "Registrieren"
|
|||
msgid "Report"
|
||||
msgstr "Importieren"
|
||||
|
||||
#: bookwyrm/templates/snippets/rss_title.html:5
|
||||
#: bookwyrm/templates/snippets/status/status_header.html:35
|
||||
msgid "rated"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/snippets/rss_title.html:7
|
||||
#: bookwyrm/templates/snippets/status/status_header.html:37
|
||||
msgid "reviewed"
|
||||
msgstr "bewertete"
|
||||
|
||||
#: bookwyrm/templates/snippets/rss_title.html:9
|
||||
#: bookwyrm/templates/snippets/status/status_header.html:39
|
||||
msgid "commented on"
|
||||
msgstr "kommentierte"
|
||||
|
||||
#: bookwyrm/templates/snippets/rss_title.html:11
|
||||
#: bookwyrm/templates/snippets/status/status_header.html:41
|
||||
msgid "quoted"
|
||||
msgstr "zitierte"
|
||||
|
||||
#: bookwyrm/templates/snippets/search_result_text.html:36
|
||||
msgid "Import book"
|
||||
msgstr "Buch importieren"
|
||||
|
@ -2989,7 +3010,7 @@ msgstr "Regal bearbeiten"
|
|||
msgid "Update shelf"
|
||||
msgstr "Regal aktualisieren"
|
||||
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:25 bookwyrm/views/shelf.py:51
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:25 bookwyrm/views/shelf.py:56
|
||||
#, fuzzy
|
||||
#| msgid "books"
|
||||
msgid "All books"
|
||||
|
@ -2999,30 +3020,30 @@ msgstr "Bücher"
|
|||
msgid "Create shelf"
|
||||
msgstr "Regal erstellen"
|
||||
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:61
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:62
|
||||
msgid "Edit shelf"
|
||||
msgstr "Regal bearbeiten"
|
||||
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:80
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:104
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:81
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:105
|
||||
msgid "Shelved"
|
||||
msgstr "Ins Regal gestellt"
|
||||
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:81
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:108
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:82
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:109
|
||||
msgid "Started"
|
||||
msgstr "Gestartet"
|
||||
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:82
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:111
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:83
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:112
|
||||
msgid "Finished"
|
||||
msgstr "Abgeschlossen"
|
||||
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:137
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:138
|
||||
msgid "This shelf is empty."
|
||||
msgstr "Dieses Regal ist leer."
|
||||
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:143
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:144
|
||||
msgid "Delete shelf"
|
||||
msgstr "Regal löschen"
|
||||
|
||||
|
@ -3084,9 +3105,10 @@ msgid "Back to users"
|
|||
msgstr "Zurück zu den Meldungen"
|
||||
|
||||
#: bookwyrm/templates/user_admin/user_admin.html:7
|
||||
#, python-format
|
||||
msgid "Users: <small>%(server_name)s</small>"
|
||||
msgstr ""
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Lists: %(username)s"
|
||||
msgid "Users: <small>%(instance_name)s</small>"
|
||||
msgstr "Listen: %(username)s"
|
||||
|
||||
#: bookwyrm/templates/user_admin/user_admin.html:22
|
||||
#: bookwyrm/templates/user_admin/username_filter.html:5
|
||||
|
@ -3107,9 +3129,9 @@ msgstr ""
|
|||
|
||||
#: bookwyrm/templates/user_admin/user_admin.html:38
|
||||
#, fuzzy
|
||||
#| msgid "Remove"
|
||||
msgid "Remote server"
|
||||
msgstr "Entfernen"
|
||||
#| msgid "Instance Name:"
|
||||
msgid "Remote instance"
|
||||
msgstr "Instanzname"
|
||||
|
||||
#: bookwyrm/templates/user_admin/user_admin.html:47
|
||||
#, fuzzy
|
||||
|
@ -3158,6 +3180,10 @@ msgstr ""
|
|||
msgid "Access level:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/widgets/clearable_file_input_with_warning.html:3
|
||||
msgid "File exceeds maximum size: 10MB"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/views/import_data.py:67
|
||||
#, fuzzy
|
||||
#| msgid "Email address:"
|
||||
|
@ -3175,6 +3201,27 @@ msgstr "Dieser Benutzename ist bereits vergeben."
|
|||
msgid "A password reset link sent to %s"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Lists: %(username)s"
|
||||
#~ msgid "Reports: <small>%(server_name)s</small>"
|
||||
#~ msgstr "Listen: %(username)s"
|
||||
|
||||
#~ msgid "Federated Servers"
|
||||
#~ msgstr "Föderierende Server"
|
||||
|
||||
#~ msgid "Server name"
|
||||
#~ msgstr "Servername"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Add cover"
|
||||
#~ msgid "Add server"
|
||||
#~ msgstr "Cover hinzufügen"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Remove"
|
||||
#~ msgid "Remote server"
|
||||
#~ msgstr "Entfernen"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Book"
|
||||
#~ msgid "BookWyrm\\"
|
||||
|
@ -3225,12 +3272,12 @@ msgstr ""
|
|||
#~ msgid "Enter a number."
|
||||
#~ msgstr "Seriennummer:"
|
||||
|
||||
#, fuzzy, python-format
|
||||
#, fuzzy
|
||||
#~| msgid "A user with that username already exists."
|
||||
#~ msgid "%(model_name)s with this %(field_labels)s already exists."
|
||||
#~ msgstr "Dieser Benutzename ist bereits vergeben."
|
||||
|
||||
#, fuzzy, python-format
|
||||
#, fuzzy
|
||||
#~| msgid "%(value)s is not a valid remote_id"
|
||||
#~ msgid "Value %(value)r is not a valid choice."
|
||||
#~ msgstr "%(value)s ist keine gültige remote_id"
|
||||
|
@ -3240,7 +3287,7 @@ msgstr ""
|
|||
#~ msgid "This field cannot be null."
|
||||
#~ msgstr "Dieses Regal ist leer."
|
||||
|
||||
#, fuzzy, python-format
|
||||
#, fuzzy
|
||||
#~| msgid "A user with that username already exists."
|
||||
#~ msgid "%(model_name)s with this %(field_label)s already exists."
|
||||
#~ msgstr "Dieser Benutzename ist bereits vergeben."
|
||||
|
@ -3250,7 +3297,7 @@ msgstr ""
|
|||
#~ msgid "Comma-separated integers"
|
||||
#~ msgstr "Keine aktiven Einladungen"
|
||||
|
||||
#, fuzzy, python-format
|
||||
#, fuzzy
|
||||
#~| msgid "%(value)s is not a valid username"
|
||||
#~ msgid "“%(value)s” value must be a decimal number."
|
||||
#~ msgstr "%(value)s ist kein gültiger Username"
|
||||
|
@ -3270,7 +3317,7 @@ msgstr ""
|
|||
#~ msgid "Email address"
|
||||
#~ msgstr "E-Mail Adresse"
|
||||
|
||||
#, fuzzy, python-format
|
||||
#, fuzzy
|
||||
#~| msgid "%(value)s is not a valid username"
|
||||
#~ msgid "“%(value)s” value must be a float."
|
||||
#~ msgstr "%(value)s ist kein gültiger Username"
|
||||
|
@ -3300,7 +3347,7 @@ msgstr ""
|
|||
#~ msgid "Positive small integer"
|
||||
#~ msgstr "Keine aktiven Einladungen"
|
||||
|
||||
#, fuzzy, python-format
|
||||
#, fuzzy
|
||||
#~| msgid "%(value)s is not a valid username"
|
||||
#~ msgid "“%(value)s” is not a valid UUID."
|
||||
#~ msgstr "%(value)s ist kein gültiger Username"
|
||||
|
@ -3315,12 +3362,12 @@ msgstr ""
|
|||
#~ msgid "One-to-one relationship"
|
||||
#~ msgstr "Beziehungen"
|
||||
|
||||
#, fuzzy, python-format
|
||||
#, fuzzy
|
||||
#~| msgid "Relationships"
|
||||
#~ msgid "%(from)s-%(to)s relationship"
|
||||
#~ msgstr "Beziehungen"
|
||||
|
||||
#, fuzzy, python-format
|
||||
#, fuzzy
|
||||
#~| msgid "Relationships"
|
||||
#~ msgid "%(from)s-%(to)s relationships"
|
||||
#~ msgstr "Beziehungen"
|
||||
|
@ -3375,7 +3422,7 @@ msgstr ""
|
|||
#~ msgid "Enter a valid UUID."
|
||||
#~ msgstr "E-Mail Adresse"
|
||||
|
||||
#, fuzzy, python-format
|
||||
#, fuzzy
|
||||
#~| msgid "%(value)s is not a valid username"
|
||||
#~ msgid "“%(pk)s” is not a valid value."
|
||||
#~ msgstr "%(value)s ist kein gültiger Username"
|
||||
|
@ -3439,12 +3486,12 @@ msgstr ""
|
|||
#~ msgid "This is not a valid IPv6 address."
|
||||
#~ msgstr "E-Mail Adresse"
|
||||
|
||||
#, fuzzy, python-format
|
||||
#, fuzzy
|
||||
#~| msgid "No books found matching the query \"%(query)s\""
|
||||
#~ msgid "No %(verbose_name)s found matching the query"
|
||||
#~ msgstr "Keine passenden Bücher zu \"%(query)s\" gefunden"
|
||||
|
||||
#, fuzzy, python-format
|
||||
#, fuzzy
|
||||
#~| msgid "%(value)s is not a valid username"
|
||||
#~ msgid "“%(path)s” does not exist"
|
||||
#~ msgstr "%(value)s ist kein gültiger Username"
|
||||
|
@ -3463,11 +3510,9 @@ msgstr ""
|
|||
#~ msgid "Matching Users"
|
||||
#~ msgstr "Passende Nutzer*innen"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Set a reading goal for %(year)s"
|
||||
#~ msgstr "Leseziel für %(year)s setzen"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "by %(author)s"
|
||||
#~ msgstr "von %(author)s"
|
||||
|
||||
|
@ -3477,17 +3522,17 @@ msgstr ""
|
|||
#~ msgid "Reactivate user"
|
||||
#~ msgstr "Nutzer:in reaktivieren"
|
||||
|
||||
#, fuzzy, python-format
|
||||
#, fuzzy
|
||||
#~| msgid "Direct Messages with <a href=\"%(path)s\">%(username)s</a>"
|
||||
#~ msgid "replied to <a href=\"%(user_path)s\">%(username)s's</a> <a href=\"%(status_path)s\">review</a>"
|
||||
#~ msgstr "Direktnachrichten mit <a href=\"%(path)s\">%(username)s</a>"
|
||||
|
||||
#, fuzzy, python-format
|
||||
#, fuzzy
|
||||
#~| msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">status</a>"
|
||||
#~ msgid "replied to <a href=\"%(user_path)s\">%(username)s's</a> <a href=\"%(status_path)s\">comment</a>"
|
||||
#~ msgstr "hat auf deinen <a href=\"%(parent_path)s\">Status</a> geantwortet</a>"
|
||||
|
||||
#, fuzzy, python-format
|
||||
#, fuzzy
|
||||
#~| msgid "<a href=\"%(related_path)s\">replied</a> to your <a href=\"%(parent_path)s\">status</a>"
|
||||
#~ msgid "replied to <a href=\"%(user_path)s\">%(username)s's</a> <a href=\"%(status_path)s\">quote</a>"
|
||||
#~ msgstr "hat auf deinen <a href=\"%(parent_path)s\">Status</a> <a href=\"%(related_path)s\">geantwortet</a>"
|
||||
|
@ -3498,7 +3543,6 @@ msgstr ""
|
|||
#~ msgid "Add tag"
|
||||
#~ msgstr "Tag hinzufügen"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Books tagged \"%(tag.name)s\""
|
||||
#~ msgstr "Mit \"%(tag.name)s\" markierte Bücher"
|
||||
|
||||
|
@ -3507,7 +3551,7 @@ msgstr ""
|
|||
#~ msgid "Getting Started"
|
||||
#~ msgstr "Gestartet"
|
||||
|
||||
#, fuzzy, python-format
|
||||
#, fuzzy
|
||||
#~| msgid "No users found for \"%(query)s\""
|
||||
#~ msgid "No users were found for \"%(query)s\""
|
||||
#~ msgstr "Keine Nutzer*innen für \"%(query)s\" gefunden"
|
||||
|
@ -3515,7 +3559,7 @@ msgstr ""
|
|||
#~ msgid "Your lists"
|
||||
#~ msgstr "Deine Listen"
|
||||
|
||||
#, fuzzy, python-format
|
||||
#, fuzzy
|
||||
#~| msgid "See all %(size)s"
|
||||
#~ msgid "See all %(size)s lists"
|
||||
#~ msgstr "Alle %(size)s anzeigen"
|
||||
|
@ -3538,14 +3582,12 @@ msgstr ""
|
|||
#~ msgid "Your Shelves"
|
||||
#~ msgstr "Deine Regale"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "%(username)s: Shelves"
|
||||
#~ msgstr "%(username)s: Regale"
|
||||
|
||||
#~ msgid "Shelves"
|
||||
#~ msgstr "Regale"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "See all %(shelf_count)s shelves"
|
||||
#~ msgstr "Alle %(shelf_count)s Regale anzeigen"
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: 0.0.1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-05-20 14:40-0700\n"
|
||||
"POT-Creation-Date: 2021-06-06 20:52+0000\n"
|
||||
"PO-Revision-Date: 2021-02-28 17:19-0800\n"
|
||||
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
|
||||
"Language-Team: English <LL@li.org>\n"
|
||||
|
@ -56,12 +56,12 @@ msgid "Book Title"
|
|||
msgstr ""
|
||||
|
||||
#: bookwyrm/forms.py:301 bookwyrm/templates/snippets/create_status_form.html:34
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:84
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:115
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:85
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:116
|
||||
msgid "Rating"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/forms.py:303 bookwyrm/templates/lists/list.html:101
|
||||
#: bookwyrm/forms.py:303 bookwyrm/templates/lists/list.html:107
|
||||
msgid "Sort By"
|
||||
msgstr ""
|
||||
|
||||
|
@ -73,41 +73,41 @@ msgstr ""
|
|||
msgid "Descending"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/models/fields.py:24
|
||||
#: bookwyrm/models/fields.py:25
|
||||
#, python-format
|
||||
msgid "%(value)s is not a valid remote_id"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/models/fields.py:33 bookwyrm/models/fields.py:42
|
||||
#: bookwyrm/models/fields.py:34 bookwyrm/models/fields.py:43
|
||||
#, python-format
|
||||
msgid "%(value)s is not a valid username"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/models/fields.py:165 bookwyrm/templates/layout.html:155
|
||||
#: bookwyrm/models/fields.py:166 bookwyrm/templates/layout.html:152
|
||||
msgid "username"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/models/fields.py:170
|
||||
#: bookwyrm/models/fields.py:171
|
||||
msgid "A user with that username already exists."
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/settings.py:155
|
||||
#: bookwyrm/settings.py:156
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/settings.py:156
|
||||
#: bookwyrm/settings.py:157
|
||||
msgid "German"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/settings.py:157
|
||||
#: bookwyrm/settings.py:158
|
||||
msgid "Spanish"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/settings.py:158
|
||||
#: bookwyrm/settings.py:159
|
||||
msgid "French"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/settings.py:159
|
||||
#: bookwyrm/settings.py:160
|
||||
msgid "Simplified Chinese"
|
||||
msgstr ""
|
||||
|
||||
|
@ -248,7 +248,7 @@ msgstr ""
|
|||
#: bookwyrm/templates/book/edit_book.html:263
|
||||
#: bookwyrm/templates/lists/form.html:42
|
||||
#: bookwyrm/templates/preferences/edit_user.html:70
|
||||
#: bookwyrm/templates/settings/announcement_form.html:65
|
||||
#: bookwyrm/templates/settings/announcement_form.html:69
|
||||
#: bookwyrm/templates/settings/edit_server.html:68
|
||||
#: bookwyrm/templates/settings/federated_server.html:98
|
||||
#: bookwyrm/templates/settings/site.html:97
|
||||
|
@ -367,7 +367,7 @@ msgstr ""
|
|||
msgid "Places"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/book.html:276 bookwyrm/templates/layout.html:64
|
||||
#: bookwyrm/templates/book/book.html:276 bookwyrm/templates/layout.html:61
|
||||
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
|
||||
#: bookwyrm/templates/search/layout.html:25
|
||||
#: bookwyrm/templates/search/layout.html:50
|
||||
|
@ -381,7 +381,7 @@ msgstr ""
|
|||
|
||||
#: bookwyrm/templates/book/book.html:297
|
||||
#: bookwyrm/templates/book/cover_modal.html:31
|
||||
#: bookwyrm/templates/lists/list.html:164
|
||||
#: bookwyrm/templates/lists/list.html:179
|
||||
msgid "Add"
|
||||
msgstr ""
|
||||
|
||||
|
@ -511,7 +511,7 @@ msgid "John Doe, Jane Smith"
|
|||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:183
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:77
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:78
|
||||
msgid "Cover"
|
||||
msgstr ""
|
||||
|
||||
|
@ -630,7 +630,7 @@ msgstr ""
|
|||
|
||||
#: bookwyrm/templates/directory/directory.html:4
|
||||
#: bookwyrm/templates/directory/directory.html:9
|
||||
#: bookwyrm/templates/layout.html:92
|
||||
#: bookwyrm/templates/layout.html:64
|
||||
msgid "Directory"
|
||||
msgstr ""
|
||||
|
||||
|
@ -831,7 +831,7 @@ msgid "Direct Messages with <a href=\"%(path)s\">%(username)s</a>"
|
|||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/feed/direct_messages.html:10
|
||||
#: bookwyrm/templates/layout.html:87
|
||||
#: bookwyrm/templates/layout.html:92
|
||||
msgid "Direct Messages"
|
||||
msgstr ""
|
||||
|
||||
|
@ -887,7 +887,6 @@ msgid "Updates"
|
|||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/feed/feed_layout.html:10
|
||||
#: bookwyrm/templates/layout.html:58
|
||||
#: bookwyrm/templates/user/shelf/books_header.html:3
|
||||
msgid "Your books"
|
||||
msgstr ""
|
||||
|
@ -942,7 +941,7 @@ msgid "What are you reading?"
|
|||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/get_started/books.html:9
|
||||
#: bookwyrm/templates/lists/list.html:120
|
||||
#: bookwyrm/templates/lists/list.html:135
|
||||
msgid "Search for a book"
|
||||
msgstr ""
|
||||
|
||||
|
@ -962,7 +961,7 @@ msgstr ""
|
|||
#: bookwyrm/templates/get_started/users.html:18
|
||||
#: bookwyrm/templates/get_started/users.html:19
|
||||
#: bookwyrm/templates/layout.html:37 bookwyrm/templates/layout.html:38
|
||||
#: bookwyrm/templates/lists/list.html:124
|
||||
#: bookwyrm/templates/lists/list.html:139
|
||||
#: bookwyrm/templates/search/layout.html:4
|
||||
#: bookwyrm/templates/search/layout.html:9
|
||||
msgid "Search"
|
||||
|
@ -978,7 +977,7 @@ msgid "Popular on %(site_name)s"
|
|||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/get_started/books.html:58
|
||||
#: bookwyrm/templates/lists/list.html:137
|
||||
#: bookwyrm/templates/lists/list.html:152
|
||||
msgid "No books found"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1090,7 +1089,7 @@ msgid "%(username)s's %(year)s Books"
|
|||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/import.html:5 bookwyrm/templates/import.html:9
|
||||
#: bookwyrm/templates/layout.html:97
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:40
|
||||
msgid "Import Books"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1175,14 +1174,14 @@ msgstr ""
|
|||
|
||||
#: bookwyrm/templates/import_status.html:114
|
||||
#: bookwyrm/templates/snippets/create_status_form.html:13
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:78
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:98
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:79
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:99
|
||||
msgid "Title"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/import_status.html:117
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:79
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:101
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:80
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:102
|
||||
msgid "Author"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1224,15 +1223,19 @@ msgstr ""
|
|||
msgid "Main navigation menu"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/layout.html:61
|
||||
#: bookwyrm/templates/layout.html:58
|
||||
msgid "Feed"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/layout.html:102
|
||||
#: bookwyrm/templates/layout.html:87
|
||||
msgid "Your Books"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/layout.html:97
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/layout.html:111
|
||||
#: bookwyrm/templates/layout.html:106
|
||||
#: bookwyrm/templates/settings/admin_layout.html:31
|
||||
#: bookwyrm/templates/settings/manage_invite_requests.html:15
|
||||
#: bookwyrm/templates/settings/manage_invites.html:3
|
||||
|
@ -1240,45 +1243,45 @@ msgstr ""
|
|||
msgid "Invites"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/layout.html:118
|
||||
#: bookwyrm/templates/layout.html:113
|
||||
msgid "Admin"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/layout.html:125
|
||||
#: bookwyrm/templates/layout.html:120
|
||||
msgid "Log out"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/layout.html:133 bookwyrm/templates/layout.html:134
|
||||
#: bookwyrm/templates/layout.html:128 bookwyrm/templates/layout.html:129
|
||||
#: bookwyrm/templates/notifications.html:6
|
||||
#: bookwyrm/templates/notifications.html:11
|
||||
msgid "Notifications"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/layout.html:154 bookwyrm/templates/layout.html:158
|
||||
#: bookwyrm/templates/layout.html:151 bookwyrm/templates/layout.html:155
|
||||
#: bookwyrm/templates/login.html:17
|
||||
#: bookwyrm/templates/snippets/register_form.html:4
|
||||
msgid "Username:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/layout.html:159
|
||||
#: bookwyrm/templates/layout.html:156
|
||||
msgid "password"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/layout.html:160 bookwyrm/templates/login.html:36
|
||||
#: bookwyrm/templates/layout.html:157 bookwyrm/templates/login.html:36
|
||||
msgid "Forgot your password?"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/layout.html:163 bookwyrm/templates/login.html:10
|
||||
#: bookwyrm/templates/layout.html:160 bookwyrm/templates/login.html:10
|
||||
#: bookwyrm/templates/login.html:33
|
||||
msgid "Log in"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/layout.html:171
|
||||
#: bookwyrm/templates/layout.html:168
|
||||
msgid "Join"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/layout.html:206
|
||||
msgid "About this server"
|
||||
msgid "About this instance"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/layout.html:210
|
||||
|
@ -1338,7 +1341,7 @@ msgid "Discard"
|
|||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/lists/edit_form.html:5
|
||||
#: bookwyrm/templates/lists/list_layout.html:17
|
||||
#: bookwyrm/templates/lists/list_layout.html:16
|
||||
msgid "Edit List"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1385,54 +1388,55 @@ msgstr ""
|
|||
msgid "This list is currently empty"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:65
|
||||
#: bookwyrm/templates/lists/list.html:66
|
||||
#, python-format
|
||||
msgid "Added by <a href=\"%(user_path)s\">%(username)s</a>"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:77
|
||||
msgid "Set"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:80
|
||||
#: bookwyrm/templates/lists/list.html:74
|
||||
msgid "List position"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:86
|
||||
#: bookwyrm/templates/lists/list.html:81
|
||||
msgid "Set"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:89
|
||||
#: bookwyrm/templates/snippets/shelf_selector.html:26
|
||||
msgid "Remove"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:99 bookwyrm/templates/lists/list.html:111
|
||||
#: bookwyrm/templates/lists/list.html:103
|
||||
#: bookwyrm/templates/lists/list.html:120
|
||||
msgid "Sort List"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:105
|
||||
#: bookwyrm/templates/lists/list.html:113
|
||||
msgid "Direction"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:116
|
||||
#: bookwyrm/templates/lists/list.html:127
|
||||
msgid "Add Books"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:116
|
||||
#: bookwyrm/templates/lists/list.html:129
|
||||
msgid "Suggest Books"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:125
|
||||
#: bookwyrm/templates/lists/list.html:140
|
||||
msgid "search"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:131
|
||||
#: bookwyrm/templates/lists/list.html:146
|
||||
msgid "Clear search"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:136
|
||||
#: bookwyrm/templates/lists/list.html:151
|
||||
#, python-format
|
||||
msgid "No books found matching the query \"%(query)s\""
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:164
|
||||
#: bookwyrm/templates/lists/list.html:179
|
||||
msgid "Suggest"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1523,7 +1527,7 @@ msgstr ""
|
|||
|
||||
#: bookwyrm/templates/moderation/reports.html:6
|
||||
#, python-format
|
||||
msgid "Reports: %(server_name)s"
|
||||
msgid "Reports: %(instance_name)s"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/moderation/reports.html:8
|
||||
|
@ -1534,7 +1538,7 @@ msgstr ""
|
|||
|
||||
#: bookwyrm/templates/moderation/reports.html:14
|
||||
#, python-format
|
||||
msgid "Reports: <small>%(server_name)s</small>"
|
||||
msgid "Reports: <small>%(instance_name)s</small>"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/moderation/reports.html:28
|
||||
|
@ -1733,6 +1737,26 @@ msgstr ""
|
|||
msgid "Relationships"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/rss/title.html:5
|
||||
#: bookwyrm/templates/snippets/status/status_header.html:35
|
||||
msgid "rated"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/rss/title.html:7
|
||||
#: bookwyrm/templates/snippets/status/status_header.html:37
|
||||
msgid "reviewed"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/rss/title.html:9
|
||||
#: bookwyrm/templates/snippets/status/status_header.html:39
|
||||
msgid "commented on"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/rss/title.html:11
|
||||
#: bookwyrm/templates/snippets/status/status_header.html:41
|
||||
msgid "quoted"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/search/book.html:64
|
||||
msgid "Load results from other catalogues"
|
||||
msgstr ""
|
||||
|
@ -1783,7 +1807,7 @@ msgstr ""
|
|||
#: bookwyrm/templates/settings/admin_layout.html:39
|
||||
#: bookwyrm/templates/settings/federation.html:3
|
||||
#: bookwyrm/templates/settings/federation.html:5
|
||||
msgid "Federated Servers"
|
||||
msgid "Federated Instances"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/admin_layout.html:44
|
||||
|
@ -1833,6 +1857,7 @@ msgid "Back to list"
|
|||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/announcement.html:11
|
||||
#: bookwyrm/templates/settings/announcement_form.html:6
|
||||
msgid "Edit Announcement"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1866,7 +1891,7 @@ msgstr ""
|
|||
msgid "Active:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/announcement_form.html:5
|
||||
#: bookwyrm/templates/settings/announcement_form.html:8
|
||||
#: bookwyrm/templates/settings/announcements.html:8
|
||||
msgid "Create Announcement"
|
||||
msgstr ""
|
||||
|
@ -1910,12 +1935,12 @@ msgstr ""
|
|||
#: bookwyrm/templates/settings/federation.html:10
|
||||
#: bookwyrm/templates/settings/server_blocklist.html:3
|
||||
#: bookwyrm/templates/settings/server_blocklist.html:20
|
||||
msgid "Add server"
|
||||
msgid "Add instance"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/edit_server.html:7
|
||||
#: bookwyrm/templates/settings/server_blocklist.html:7
|
||||
msgid "Back to server list"
|
||||
msgid "Back to instance list"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/edit_server.html:16
|
||||
|
@ -2022,7 +2047,7 @@ msgstr ""
|
|||
|
||||
#: bookwyrm/templates/settings/federation.html:19
|
||||
#: bookwyrm/templates/user_admin/server_filter.html:5
|
||||
msgid "Server name"
|
||||
msgid "Instance name"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/federation.html:23
|
||||
|
@ -2144,7 +2169,7 @@ msgid "Import Blocklist"
|
|||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/server_blocklist.html:26
|
||||
#: bookwyrm/templates/snippets/goal_progress.html:5
|
||||
#: bookwyrm/templates/snippets/goal_progress.html:7
|
||||
msgid "Success!"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2230,13 +2255,13 @@ msgstr ""
|
|||
msgid "<a href=\"%(path)s\">%(title)s</a> by "
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/snippets/boost_button.html:9
|
||||
#: bookwyrm/templates/snippets/boost_button.html:10
|
||||
#: bookwyrm/templates/snippets/boost_button.html:20
|
||||
#: bookwyrm/templates/snippets/boost_button.html:21
|
||||
msgid "Boost"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/snippets/boost_button.html:16
|
||||
#: bookwyrm/templates/snippets/boost_button.html:17
|
||||
#: bookwyrm/templates/snippets/boost_button.html:33
|
||||
#: bookwyrm/templates/snippets/boost_button.html:34
|
||||
msgid "Un-boost"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2326,13 +2351,13 @@ msgstr ""
|
|||
msgid "You are deleting this readthrough and its %(count)s associated progress updates."
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/snippets/fav_button.html:9
|
||||
#: bookwyrm/templates/snippets/fav_button.html:11
|
||||
#: bookwyrm/templates/snippets/fav_button.html:10
|
||||
#: bookwyrm/templates/snippets/fav_button.html:12
|
||||
msgid "Like"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/snippets/fav_button.html:17
|
||||
#: bookwyrm/templates/snippets/fav_button.html:18
|
||||
#: bookwyrm/templates/snippets/fav_button.html:19
|
||||
msgid "Un-like"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2373,6 +2398,14 @@ msgstr ""
|
|||
msgid "No rating"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/snippets/form_rate_stars.html:44
|
||||
#: bookwyrm/templates/snippets/stars.html:7
|
||||
#, python-format
|
||||
msgid "%(rating)s star"
|
||||
msgid_plural "%(rating)s stars"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: bookwyrm/templates/snippets/generated_status/goal.html:1
|
||||
#, python-format
|
||||
msgid "set a goal to read %(counter)s book in %(year)s"
|
||||
|
@ -2427,17 +2460,17 @@ msgstr ""
|
|||
msgid "Set goal"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/snippets/goal_progress.html:7
|
||||
#: bookwyrm/templates/snippets/goal_progress.html:9
|
||||
#, python-format
|
||||
msgid "%(percent)s%% complete!"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/snippets/goal_progress.html:10
|
||||
#: bookwyrm/templates/snippets/goal_progress.html:12
|
||||
#, python-format
|
||||
msgid "You've read <a href=\"%(path)s\">%(read_count)s of %(goal_count)s books</a>."
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/snippets/goal_progress.html:12
|
||||
#: bookwyrm/templates/snippets/goal_progress.html:14
|
||||
#, python-format
|
||||
msgid "%(username)s has read <a href=\"%(path)s\">%(read_count)s of %(goal_count)s books</a>."
|
||||
msgstr ""
|
||||
|
@ -2546,26 +2579,6 @@ msgstr ""
|
|||
msgid "Report"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/snippets/rss_title.html:5
|
||||
#: bookwyrm/templates/snippets/status/status_header.html:35
|
||||
msgid "rated"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/snippets/rss_title.html:7
|
||||
#: bookwyrm/templates/snippets/status/status_header.html:37
|
||||
msgid "reviewed"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/snippets/rss_title.html:9
|
||||
#: bookwyrm/templates/snippets/status/status_header.html:39
|
||||
msgid "commented on"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/snippets/rss_title.html:11
|
||||
#: bookwyrm/templates/snippets/status/status_header.html:41
|
||||
msgid "quoted"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/snippets/search_result_text.html:36
|
||||
msgid "Import book"
|
||||
msgstr ""
|
||||
|
@ -2735,7 +2748,7 @@ msgstr ""
|
|||
msgid "Update shelf"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:25 bookwyrm/views/shelf.py:51
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:25 bookwyrm/views/shelf.py:56
|
||||
msgid "All books"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2743,30 +2756,30 @@ msgstr ""
|
|||
msgid "Create shelf"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:61
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:62
|
||||
msgid "Edit shelf"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:80
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:104
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:81
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:105
|
||||
msgid "Shelved"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:81
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:108
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:82
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:109
|
||||
msgid "Started"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:82
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:111
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:83
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:112
|
||||
msgid "Finished"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:137
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:138
|
||||
msgid "This shelf is empty."
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:143
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:144
|
||||
msgid "Delete shelf"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2825,7 +2838,7 @@ msgstr ""
|
|||
|
||||
#: bookwyrm/templates/user_admin/user_admin.html:7
|
||||
#, python-format
|
||||
msgid "Users: <small>%(server_name)s</small>"
|
||||
msgid "Users: <small>%(instance_name)s</small>"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/user_admin/user_admin.html:22
|
||||
|
@ -2842,7 +2855,7 @@ msgid "Last Active"
|
|||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/user_admin/user_admin.html:38
|
||||
msgid "Remote server"
|
||||
msgid "Remote instance"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/user_admin/user_admin.html:47
|
||||
|
@ -2886,6 +2899,10 @@ msgstr ""
|
|||
msgid "Access level:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/widgets/clearable_file_input_with_warning.html:3
|
||||
msgid "File exceeds maximum size: 10MB"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/views/import_data.py:67
|
||||
msgid "Not a valid csv file"
|
||||
msgstr ""
|
||||
|
|
Binary file not shown.
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: 0.0.1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-05-25 01:44+0000\n"
|
||||
"POT-Creation-Date: 2021-06-06 20:52+0000\n"
|
||||
"PO-Revision-Date: 2021-03-19 11:49+0800\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -73,41 +73,41 @@ msgstr "Ascendente"
|
|||
msgid "Descending"
|
||||
msgstr "Descendente"
|
||||
|
||||
#: bookwyrm/models/fields.py:24
|
||||
#: bookwyrm/models/fields.py:25
|
||||
#, python-format
|
||||
msgid "%(value)s is not a valid remote_id"
|
||||
msgstr "%(value)s no es un remote_id válido"
|
||||
|
||||
#: bookwyrm/models/fields.py:33 bookwyrm/models/fields.py:42
|
||||
#: bookwyrm/models/fields.py:34 bookwyrm/models/fields.py:43
|
||||
#, python-format
|
||||
msgid "%(value)s is not a valid username"
|
||||
msgstr "%(value)s no es un usuario válido"
|
||||
|
||||
#: bookwyrm/models/fields.py:165 bookwyrm/templates/layout.html:152
|
||||
#: bookwyrm/models/fields.py:166 bookwyrm/templates/layout.html:152
|
||||
msgid "username"
|
||||
msgstr "nombre de usuario"
|
||||
|
||||
#: bookwyrm/models/fields.py:170
|
||||
#: bookwyrm/models/fields.py:171
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "Ya existe un usuario con ese nombre."
|
||||
|
||||
#: bookwyrm/settings.py:155
|
||||
#: bookwyrm/settings.py:156
|
||||
msgid "English"
|
||||
msgstr "Inglés"
|
||||
|
||||
#: bookwyrm/settings.py:156
|
||||
#: bookwyrm/settings.py:157
|
||||
msgid "German"
|
||||
msgstr "Aléman"
|
||||
|
||||
#: bookwyrm/settings.py:157
|
||||
#: bookwyrm/settings.py:158
|
||||
msgid "Spanish"
|
||||
msgstr "Español"
|
||||
|
||||
#: bookwyrm/settings.py:158
|
||||
#: bookwyrm/settings.py:159
|
||||
msgid "French"
|
||||
msgstr "Francés"
|
||||
|
||||
#: bookwyrm/settings.py:159
|
||||
#: bookwyrm/settings.py:160
|
||||
msgid "Simplified Chinese"
|
||||
msgstr "Chino simplificado"
|
||||
|
||||
|
@ -1281,7 +1281,9 @@ msgid "Join"
|
|||
msgstr "Unirse"
|
||||
|
||||
#: bookwyrm/templates/layout.html:206
|
||||
msgid "About this server"
|
||||
#, fuzzy
|
||||
#| msgid "About this server"
|
||||
msgid "About this instance"
|
||||
msgstr "Sobre este servidor"
|
||||
|
||||
#: bookwyrm/templates/layout.html:210
|
||||
|
@ -1527,8 +1529,8 @@ msgstr "Resolver"
|
|||
|
||||
#: bookwyrm/templates/moderation/reports.html:6
|
||||
#, python-format
|
||||
msgid "Reports: %(server_name)s"
|
||||
msgstr "Informes: %(server_name)s"
|
||||
msgid "Reports: %(instance_name)s"
|
||||
msgstr "Informes: %(instance_name)s"
|
||||
|
||||
#: bookwyrm/templates/moderation/reports.html:8
|
||||
#: bookwyrm/templates/moderation/reports.html:17
|
||||
|
@ -1538,8 +1540,8 @@ msgstr "Informes"
|
|||
|
||||
#: bookwyrm/templates/moderation/reports.html:14
|
||||
#, python-format
|
||||
msgid "Reports: <small>%(server_name)s</small>"
|
||||
msgstr "Informes: <small>%(server_name)s</small>"
|
||||
msgid "Reports: <small>%(instance_name)s</small>"
|
||||
msgstr "Informes: <small>%(instance_name)s</small>"
|
||||
|
||||
#: bookwyrm/templates/moderation/reports.html:28
|
||||
msgid "Resolved"
|
||||
|
@ -1660,6 +1662,7 @@ msgid " suggested adding <em><a href=\"%(book_path)s\">%(book_title)s</a></em> t
|
|||
msgstr " sugirió agregar <em><a href=\"%(book_path)s\">%(book_title)s</a></em> a tu lista \"<a href=\"%(list_path)s/curate\">%(list_name)s</a>\""
|
||||
|
||||
#: bookwyrm/templates/notifications.html:128
|
||||
#, python-format
|
||||
msgid "Your <a href=\"%(url)s\">import</a> completed."
|
||||
msgstr "Tu <a href=\"%(url)s\">importación</a> ha terminado."
|
||||
|
||||
|
@ -1791,6 +1794,7 @@ msgid "Users"
|
|||
msgstr "Usuarios"
|
||||
|
||||
#: bookwyrm/templates/search/layout.html:58
|
||||
#, python-format
|
||||
msgid "No results found for \"%(query)s\""
|
||||
msgstr "No se encontró ningún resultado correspondiente a \"%(query)s\""
|
||||
|
||||
|
@ -1805,7 +1809,9 @@ msgstr "Administrar usuarios"
|
|||
#: bookwyrm/templates/settings/admin_layout.html:39
|
||||
#: bookwyrm/templates/settings/federation.html:3
|
||||
#: bookwyrm/templates/settings/federation.html:5
|
||||
msgid "Federated Servers"
|
||||
#, fuzzy
|
||||
#| msgid "Federated Servers"
|
||||
msgid "Federated Instances"
|
||||
msgstr "Servidores federalizados"
|
||||
|
||||
#: bookwyrm/templates/settings/admin_layout.html:44
|
||||
|
@ -1933,12 +1939,16 @@ msgstr "inactivo"
|
|||
#: bookwyrm/templates/settings/federation.html:10
|
||||
#: bookwyrm/templates/settings/server_blocklist.html:3
|
||||
#: bookwyrm/templates/settings/server_blocklist.html:20
|
||||
msgid "Add server"
|
||||
msgstr "Agregar servidor"
|
||||
#, fuzzy
|
||||
#| msgid "View instance"
|
||||
msgid "Add instance"
|
||||
msgstr "Ver instancia"
|
||||
|
||||
#: bookwyrm/templates/settings/edit_server.html:7
|
||||
#: bookwyrm/templates/settings/server_blocklist.html:7
|
||||
msgid "Back to server list"
|
||||
#, fuzzy
|
||||
#| msgid "Back to server list"
|
||||
msgid "Back to instance list"
|
||||
msgstr "Volver a la lista de servidores"
|
||||
|
||||
#: bookwyrm/templates/settings/edit_server.html:16
|
||||
|
@ -2045,8 +2055,10 @@ msgstr "Todos los usuarios en esta instancia serán re-activados."
|
|||
|
||||
#: bookwyrm/templates/settings/federation.html:19
|
||||
#: bookwyrm/templates/user_admin/server_filter.html:5
|
||||
msgid "Server name"
|
||||
msgstr "Nombre de servidor"
|
||||
#, fuzzy
|
||||
#| msgid "Instance Name:"
|
||||
msgid "Instance name"
|
||||
msgstr "Nombre de instancia:"
|
||||
|
||||
#: bookwyrm/templates/settings/federation.html:23
|
||||
msgid "Date federated"
|
||||
|
@ -2240,6 +2252,7 @@ msgid "Registration closed text:"
|
|||
msgstr "Texto de registración cerrada:"
|
||||
|
||||
#: bookwyrm/templates/snippets/announcement.html:31
|
||||
#, python-format
|
||||
msgid "Posted by <a href=\"%(user_path)s\">%(username)s</a>"
|
||||
msgstr "Publicado por <a href=\"%(user_path)s\">%(username)s</a>"
|
||||
|
||||
|
@ -2478,6 +2491,8 @@ msgid "page %(page)s of %(total_pages)s"
|
|||
msgstr "página %(page)s de %(total_pages)s"
|
||||
|
||||
#: bookwyrm/templates/snippets/page_text.html:6
|
||||
#, fuzzy, python-format
|
||||
#| msgid "page %(page)s"
|
||||
msgid "page %(page)s"
|
||||
msgstr "página %(pages)s"
|
||||
|
||||
|
@ -2822,6 +2837,7 @@ msgid "%(counter)s following"
|
|||
msgstr "%(counter)s siguiendo"
|
||||
|
||||
#: bookwyrm/templates/user/user_preview.html:26
|
||||
#, python-format
|
||||
msgid "%(mutuals_display)s follower you follow"
|
||||
msgid_plural "%(mutuals_display)s followers you follow"
|
||||
msgstr[0] "%(mutuals_display)s seguidor que sigues"
|
||||
|
@ -2833,8 +2849,8 @@ msgstr "Volver a usuarios"
|
|||
|
||||
#: bookwyrm/templates/user_admin/user_admin.html:7
|
||||
#, python-format
|
||||
msgid "Users: <small>%(server_name)s</small>"
|
||||
msgstr "Usuarios <small>%(server_name)s</small>"
|
||||
msgid "Users: <small>%(instance_name)s</small>"
|
||||
msgstr "Usuarios <small>%(instance_name)s</small>"
|
||||
|
||||
#: bookwyrm/templates/user_admin/user_admin.html:22
|
||||
#: bookwyrm/templates/user_admin/username_filter.html:5
|
||||
|
@ -2850,8 +2866,10 @@ msgid "Last Active"
|
|||
msgstr "Actividad reciente"
|
||||
|
||||
#: bookwyrm/templates/user_admin/user_admin.html:38
|
||||
msgid "Remote server"
|
||||
msgstr "Quitar servidor"
|
||||
#, fuzzy
|
||||
#| msgid "View instance"
|
||||
msgid "Remote instance"
|
||||
msgstr "Ver instancia"
|
||||
|
||||
#: bookwyrm/templates/user_admin/user_admin.html:47
|
||||
msgid "Active"
|
||||
|
@ -2894,6 +2912,10 @@ msgstr "Des-suspender usuario"
|
|||
msgid "Access level:"
|
||||
msgstr "Nivel de acceso:"
|
||||
|
||||
#: bookwyrm/templates/widgets/clearable_file_input_with_warning.html:3
|
||||
msgid "File exceeds maximum size: 10MB"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/views/import_data.py:67
|
||||
msgid "Not a valid csv file"
|
||||
msgstr "No un archivo csv válido"
|
||||
|
@ -2907,6 +2929,18 @@ msgstr "No se pudo encontrar un usuario con esa dirección de correo electrónic
|
|||
msgid "A password reset link sent to %s"
|
||||
msgstr "Un enlace para reestablecer tu contraseña se enviará a %s"
|
||||
|
||||
#~ msgid "Federated Servers"
|
||||
#~ msgstr "Servidores federalizados"
|
||||
|
||||
#~ msgid "Server name"
|
||||
#~ msgstr "Nombre de servidor"
|
||||
|
||||
#~ msgid "Add server"
|
||||
#~ msgstr "Agregar servidor"
|
||||
|
||||
#~ msgid "Remote server"
|
||||
#~ msgstr "Quitar servidor"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "BookWyrm users"
|
||||
#~ msgid "BookWyrm\\"
|
||||
|
|
Binary file not shown.
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: 0.1.1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-05-23 10:45+0000\n"
|
||||
"POT-Creation-Date: 2021-06-07 14:09+0000\n"
|
||||
"PO-Revision-Date: 2021-04-05 12:44+0100\n"
|
||||
"Last-Translator: Fabien Basmaison <contact@arkhi.org>\n"
|
||||
"Language-Team: Mouse Reeve <LL@li.org>\n"
|
||||
|
@ -56,12 +56,12 @@ msgid "Book Title"
|
|||
msgstr "Titre du livre"
|
||||
|
||||
#: bookwyrm/forms.py:301 bookwyrm/templates/snippets/create_status_form.html:34
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:84
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:115
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:85
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:116
|
||||
msgid "Rating"
|
||||
msgstr "Note"
|
||||
|
||||
#: bookwyrm/forms.py:303 bookwyrm/templates/lists/list.html:101
|
||||
#: bookwyrm/forms.py:303 bookwyrm/templates/lists/list.html:107
|
||||
msgid "Sort By"
|
||||
msgstr "Trier par"
|
||||
|
||||
|
@ -73,41 +73,41 @@ msgstr "Ordre croissant"
|
|||
msgid "Descending"
|
||||
msgstr "Ordre décroissant"
|
||||
|
||||
#: bookwyrm/models/fields.py:24
|
||||
#: bookwyrm/models/fields.py:25
|
||||
#, python-format
|
||||
msgid "%(value)s is not a valid remote_id"
|
||||
msgstr "%(value)s n’est pas une remote_id valide."
|
||||
|
||||
#: bookwyrm/models/fields.py:33 bookwyrm/models/fields.py:42
|
||||
#: bookwyrm/models/fields.py:34 bookwyrm/models/fields.py:43
|
||||
#, python-format
|
||||
msgid "%(value)s is not a valid username"
|
||||
msgstr "%(value)s n’est pas un nom de compte valide."
|
||||
|
||||
#: bookwyrm/models/fields.py:165 bookwyrm/templates/layout.html:157
|
||||
#: bookwyrm/models/fields.py:166 bookwyrm/templates/layout.html:152
|
||||
msgid "username"
|
||||
msgstr "nom du compte :"
|
||||
|
||||
#: bookwyrm/models/fields.py:170
|
||||
#: bookwyrm/models/fields.py:171
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "Ce nom est déjà associé à un compte."
|
||||
|
||||
#: bookwyrm/settings.py:155
|
||||
#: bookwyrm/settings.py:160
|
||||
msgid "English"
|
||||
msgstr "English"
|
||||
|
||||
#: bookwyrm/settings.py:156
|
||||
#: bookwyrm/settings.py:161
|
||||
msgid "German"
|
||||
msgstr "Deutsch"
|
||||
|
||||
#: bookwyrm/settings.py:157
|
||||
#: bookwyrm/settings.py:162
|
||||
msgid "Spanish"
|
||||
msgstr "Español"
|
||||
|
||||
#: bookwyrm/settings.py:158
|
||||
#: bookwyrm/settings.py:163
|
||||
msgid "French"
|
||||
msgstr "Français"
|
||||
|
||||
#: bookwyrm/settings.py:159
|
||||
#: bookwyrm/settings.py:164
|
||||
msgid "Simplified Chinese"
|
||||
msgstr "简化字"
|
||||
|
||||
|
@ -136,34 +136,42 @@ msgstr "Une erreur s’est produite ; désolé !"
|
|||
msgid "Edit Author"
|
||||
msgstr "Modifier l’auteur ou autrice"
|
||||
|
||||
#: bookwyrm/templates/author/author.html:32
|
||||
#: bookwyrm/templates/author/edit_author.html:38
|
||||
#: bookwyrm/templates/author/author.html:34
|
||||
#: bookwyrm/templates/author/edit_author.html:41
|
||||
msgid "Aliases:"
|
||||
msgstr "Pseudonymes :"
|
||||
|
||||
#: bookwyrm/templates/author/author.html:38
|
||||
#: bookwyrm/templates/author/author.html:45
|
||||
msgid "Born:"
|
||||
msgstr "Naissance :"
|
||||
|
||||
#: bookwyrm/templates/author/author.html:44
|
||||
#: bookwyrm/templates/author/author.html:52
|
||||
msgid "Died:"
|
||||
msgstr "Décès :"
|
||||
|
||||
#: bookwyrm/templates/author/author.html:51
|
||||
#: bookwyrm/templates/author/author.html:61
|
||||
msgid "Wikipedia"
|
||||
msgstr "Wikipedia"
|
||||
|
||||
#: bookwyrm/templates/author/author.html:55
|
||||
#: bookwyrm/templates/author/author.html:69
|
||||
#: bookwyrm/templates/book/book.html:78
|
||||
msgid "View on OpenLibrary"
|
||||
msgstr "Voir sur OpenLibrary"
|
||||
|
||||
#: bookwyrm/templates/author/author.html:60
|
||||
#: bookwyrm/templates/author/author.html:77
|
||||
#: bookwyrm/templates/book/book.html:81
|
||||
msgid "View on Inventaire"
|
||||
msgstr "Voir sur Inventaire"
|
||||
|
||||
#: bookwyrm/templates/author/author.html:74
|
||||
#: bookwyrm/templates/author/author.html:85
|
||||
msgid "View on LibraryThing"
|
||||
msgstr "Voir sur LibraryThing"
|
||||
|
||||
#: bookwyrm/templates/author/author.html:93
|
||||
msgid "View on Goodreads"
|
||||
msgstr "Voir sur Goodreads"
|
||||
|
||||
#: bookwyrm/templates/author/author.html:108
|
||||
#, python-format
|
||||
msgid "Books by %(name)s"
|
||||
msgstr "Livres par %(name)s"
|
||||
|
@ -173,85 +181,85 @@ msgid "Edit Author:"
|
|||
msgstr "Modifier l’auteur ou l’autrice :"
|
||||
|
||||
#: bookwyrm/templates/author/edit_author.html:13
|
||||
#: bookwyrm/templates/book/edit_book.html:18
|
||||
#: bookwyrm/templates/book/edit_book.html:19
|
||||
msgid "Added:"
|
||||
msgstr "AJouté :"
|
||||
msgstr "Ajouté :"
|
||||
|
||||
#: bookwyrm/templates/author/edit_author.html:14
|
||||
#: bookwyrm/templates/book/edit_book.html:19
|
||||
#: bookwyrm/templates/book/edit_book.html:24
|
||||
msgid "Updated:"
|
||||
msgstr "Mis à jour :"
|
||||
|
||||
#: bookwyrm/templates/author/edit_author.html:15
|
||||
#: bookwyrm/templates/book/edit_book.html:20
|
||||
#: bookwyrm/templates/book/edit_book.html:30
|
||||
msgid "Last edited by:"
|
||||
msgstr "Dernière modification par :"
|
||||
|
||||
#: bookwyrm/templates/author/edit_author.html:31
|
||||
#: bookwyrm/templates/book/edit_book.html:90
|
||||
#: bookwyrm/templates/book/edit_book.html:117
|
||||
msgid "Metadata"
|
||||
msgstr "Métadonnées"
|
||||
|
||||
#: bookwyrm/templates/author/edit_author.html:32
|
||||
#: bookwyrm/templates/author/edit_author.html:33
|
||||
#: bookwyrm/templates/lists/form.html:8
|
||||
#: bookwyrm/templates/user/shelf/create_shelf_form.html:13
|
||||
#: bookwyrm/templates/user/shelf/edit_shelf_form.html:14
|
||||
msgid "Name:"
|
||||
msgstr "Nom :"
|
||||
|
||||
#: bookwyrm/templates/author/edit_author.html:40
|
||||
#: bookwyrm/templates/book/edit_book.html:132
|
||||
#: bookwyrm/templates/book/edit_book.html:141
|
||||
#: bookwyrm/templates/book/edit_book.html:178
|
||||
#: bookwyrm/templates/author/edit_author.html:43
|
||||
#: bookwyrm/templates/book/edit_book.html:162
|
||||
#: bookwyrm/templates/book/edit_book.html:171
|
||||
#: bookwyrm/templates/book/edit_book.html:214
|
||||
msgid "Separate multiple values with commas."
|
||||
msgstr "Séparez plusieurs valeurs par une virgule."
|
||||
|
||||
#: bookwyrm/templates/author/edit_author.html:46
|
||||
#: bookwyrm/templates/author/edit_author.html:50
|
||||
msgid "Bio:"
|
||||
msgstr "Bio :"
|
||||
|
||||
#: bookwyrm/templates/author/edit_author.html:51
|
||||
#: bookwyrm/templates/author/edit_author.html:57
|
||||
msgid "Wikipedia link:"
|
||||
msgstr "Wikipedia :"
|
||||
|
||||
#: bookwyrm/templates/author/edit_author.html:57
|
||||
#: bookwyrm/templates/author/edit_author.html:63
|
||||
msgid "Birth date:"
|
||||
msgstr "Date de naissance :"
|
||||
|
||||
#: bookwyrm/templates/author/edit_author.html:65
|
||||
#: bookwyrm/templates/author/edit_author.html:71
|
||||
msgid "Death date:"
|
||||
msgstr "Date de décès :"
|
||||
|
||||
#: bookwyrm/templates/author/edit_author.html:73
|
||||
#: bookwyrm/templates/author/edit_author.html:79
|
||||
msgid "Author Identifiers"
|
||||
msgstr "Identifiants de l’auteur ou autrice"
|
||||
|
||||
#: bookwyrm/templates/author/edit_author.html:74
|
||||
#: bookwyrm/templates/author/edit_author.html:81
|
||||
msgid "Openlibrary key:"
|
||||
msgstr "Clé Openlibrary :"
|
||||
|
||||
#: bookwyrm/templates/author/edit_author.html:79
|
||||
#: bookwyrm/templates/book/edit_book.html:243
|
||||
#: bookwyrm/templates/author/edit_author.html:89
|
||||
#: bookwyrm/templates/book/edit_book.html:293
|
||||
msgid "Inventaire ID:"
|
||||
msgstr "Identifiant Inventaire :"
|
||||
|
||||
#: bookwyrm/templates/author/edit_author.html:84
|
||||
#: bookwyrm/templates/author/edit_author.html:97
|
||||
msgid "Librarything key:"
|
||||
msgstr "Clé Librarything :"
|
||||
|
||||
#: bookwyrm/templates/author/edit_author.html:89
|
||||
#: bookwyrm/templates/author/edit_author.html:105
|
||||
msgid "Goodreads key:"
|
||||
msgstr "Clé Goodreads :"
|
||||
|
||||
#: bookwyrm/templates/author/edit_author.html:98
|
||||
#: bookwyrm/templates/author/edit_author.html:116
|
||||
#: bookwyrm/templates/book/book.html:124
|
||||
#: bookwyrm/templates/book/edit_book.html:263
|
||||
#: bookwyrm/templates/book/edit_book.html:321
|
||||
#: bookwyrm/templates/lists/form.html:42
|
||||
#: bookwyrm/templates/preferences/edit_user.html:70
|
||||
#: bookwyrm/templates/settings/announcement_form.html:69
|
||||
#: bookwyrm/templates/settings/edit_server.html:68
|
||||
#: bookwyrm/templates/settings/federated_server.html:98
|
||||
#: bookwyrm/templates/settings/site.html:97
|
||||
#: bookwyrm/templates/settings/site.html:101
|
||||
#: bookwyrm/templates/snippets/readthrough.html:77
|
||||
#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:42
|
||||
#: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:42
|
||||
|
@ -260,10 +268,10 @@ msgstr "Clé Goodreads :"
|
|||
msgid "Save"
|
||||
msgstr "Enregistrer"
|
||||
|
||||
#: bookwyrm/templates/author/edit_author.html:99
|
||||
#: bookwyrm/templates/author/edit_author.html:117
|
||||
#: bookwyrm/templates/book/book.html:125 bookwyrm/templates/book/book.html:174
|
||||
#: bookwyrm/templates/book/cover_modal.html:32
|
||||
#: bookwyrm/templates/book/edit_book.html:264
|
||||
#: bookwyrm/templates/book/edit_book.html:322
|
||||
#: bookwyrm/templates/moderation/report_modal.html:34
|
||||
#: bookwyrm/templates/settings/federated_server.html:99
|
||||
#: bookwyrm/templates/snippets/delete_readthrough_modal.html:17
|
||||
|
@ -307,7 +315,7 @@ msgid "Add Description"
|
|||
msgstr "Ajouter une description"
|
||||
|
||||
#: bookwyrm/templates/book/book.html:120
|
||||
#: bookwyrm/templates/book/edit_book.html:108
|
||||
#: bookwyrm/templates/book/edit_book.html:136
|
||||
#: bookwyrm/templates/lists/form.html:12
|
||||
msgid "Description:"
|
||||
msgstr "Description :"
|
||||
|
@ -367,7 +375,7 @@ msgstr "Sujets"
|
|||
msgid "Places"
|
||||
msgstr "Lieux"
|
||||
|
||||
#: bookwyrm/templates/book/book.html:276 bookwyrm/templates/layout.html:64
|
||||
#: bookwyrm/templates/book/book.html:276 bookwyrm/templates/layout.html:61
|
||||
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
|
||||
#: bookwyrm/templates/search/layout.html:25
|
||||
#: bookwyrm/templates/search/layout.html:50
|
||||
|
@ -381,7 +389,7 @@ msgstr "Ajouter à la liste"
|
|||
|
||||
#: bookwyrm/templates/book/book.html:297
|
||||
#: bookwyrm/templates/book/cover_modal.html:31
|
||||
#: bookwyrm/templates/lists/list.html:164
|
||||
#: bookwyrm/templates/lists/list.html:179
|
||||
msgid "Add"
|
||||
msgstr "Ajouter"
|
||||
|
||||
|
@ -390,22 +398,22 @@ msgid "ISBN:"
|
|||
msgstr "ISBN :"
|
||||
|
||||
#: bookwyrm/templates/book/book_identifiers.html:14
|
||||
#: bookwyrm/templates/book/edit_book.html:248
|
||||
#: bookwyrm/templates/book/edit_book.html:301
|
||||
msgid "OCLC Number:"
|
||||
msgstr "Numéro OCLC :"
|
||||
|
||||
#: bookwyrm/templates/book/book_identifiers.html:21
|
||||
#: bookwyrm/templates/book/edit_book.html:253
|
||||
#: bookwyrm/templates/book/edit_book.html:309
|
||||
msgid "ASIN:"
|
||||
msgstr "ASIN :"
|
||||
|
||||
#: bookwyrm/templates/book/cover_modal.html:17
|
||||
#: bookwyrm/templates/book/edit_book.html:192
|
||||
#: bookwyrm/templates/book/edit_book.html:229
|
||||
msgid "Upload cover:"
|
||||
msgstr "Charger une couverture :"
|
||||
|
||||
#: bookwyrm/templates/book/cover_modal.html:23
|
||||
#: bookwyrm/templates/book/edit_book.html:198
|
||||
#: bookwyrm/templates/book/edit_book.html:235
|
||||
msgid "Load cover from url:"
|
||||
msgstr "Charger la couverture depuis une URL :"
|
||||
|
||||
|
@ -420,127 +428,132 @@ msgstr "Modifier « %(book_title)s »"
|
|||
msgid "Add Book"
|
||||
msgstr "Ajouter un livre"
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:40
|
||||
#: bookwyrm/templates/book/edit_book.html:54
|
||||
msgid "Confirm Book Info"
|
||||
msgstr "Confirmer les informations de ce livre"
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:47
|
||||
#: bookwyrm/templates/book/edit_book.html:62
|
||||
#, python-format
|
||||
msgid "Is \"%(name)s\" an existing author?"
|
||||
msgstr "Est‑ce que l’auteur ou l’autrice « %(name)s » existe déjà ?"
|
||||
msgstr "Est‑ce que l’auteur/autrice « %(name)s » existe déjà ?"
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:52
|
||||
#: bookwyrm/templates/book/edit_book.html:71
|
||||
#, python-format
|
||||
msgid "Author of <em>%(book_title)s</em>"
|
||||
msgstr "Commencer « <em>%(book_title)s</em> »"
|
||||
msgstr "Auteur/autrice de <em>%(book_title)s</em>"
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:55
|
||||
#: bookwyrm/templates/book/edit_book.html:75
|
||||
msgid "This is a new author"
|
||||
msgstr "Il s’agit d’un nouvel auteur ou d’une nouvelle autrice."
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:61
|
||||
#: bookwyrm/templates/book/edit_book.html:82
|
||||
#, python-format
|
||||
msgid "Creating a new author: %(name)s"
|
||||
msgstr "Création d’un nouvel auteur ou d’une nouvelle autrice : %(name)s"
|
||||
msgstr "Création d’un nouvel auteur/autrice : %(name)s"
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:67
|
||||
#: bookwyrm/templates/book/edit_book.html:89
|
||||
msgid "Is this an edition of an existing work?"
|
||||
msgstr "Est‑ce l’édition d’un ouvrage existant ?"
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:71
|
||||
#: bookwyrm/templates/book/edit_book.html:97
|
||||
msgid "This is a new work"
|
||||
msgstr "Il s’agit d’un nouvel ouvrage."
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:77
|
||||
#: bookwyrm/templates/book/edit_book.html:104
|
||||
#: bookwyrm/templates/password_reset.html:30
|
||||
msgid "Confirm"
|
||||
msgstr "Confirmer"
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:79
|
||||
#: bookwyrm/templates/book/edit_book.html:106
|
||||
#: bookwyrm/templates/feed/status.html:8
|
||||
msgid "Back"
|
||||
msgstr "Retour"
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:93
|
||||
#: bookwyrm/templates/book/edit_book.html:120
|
||||
msgid "Title:"
|
||||
msgstr "Titre :"
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:101
|
||||
#: bookwyrm/templates/book/edit_book.html:128
|
||||
msgid "Subtitle:"
|
||||
msgstr "Sous‑titre :"
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:114
|
||||
#: bookwyrm/templates/book/edit_book.html:144
|
||||
msgid "Series:"
|
||||
msgstr "Série :"
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:122
|
||||
#: bookwyrm/templates/book/edit_book.html:152
|
||||
msgid "Series number:"
|
||||
msgstr "Numéro dans la série :"
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:130
|
||||
#: bookwyrm/templates/book/edit_book.html:160
|
||||
msgid "Languages:"
|
||||
msgstr "Langues :"
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:139
|
||||
#: bookwyrm/templates/book/edit_book.html:169
|
||||
msgid "Publisher:"
|
||||
msgstr "Éditeur :"
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:148
|
||||
#: bookwyrm/templates/book/edit_book.html:178
|
||||
msgid "First published date:"
|
||||
msgstr "Première date de publication :"
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:156
|
||||
#: bookwyrm/templates/book/edit_book.html:186
|
||||
msgid "Published date:"
|
||||
msgstr "Date de publication :"
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:165
|
||||
#: bookwyrm/templates/book/edit_book.html:195
|
||||
msgid "Authors"
|
||||
msgstr "Auteurs ou autrices"
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:171
|
||||
#: bookwyrm/templates/book/edit_book.html:202
|
||||
#, python-format
|
||||
msgid "Remove <a href=\"%(path)s\">%(name)s</a>"
|
||||
msgstr "Supprimer <a href=\"%(path)s\">%(name)s</a>"
|
||||
msgid "Remove %(name)s"
|
||||
msgstr "Retirer %(name)s"
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:176
|
||||
#: bookwyrm/templates/book/edit_book.html:205
|
||||
#, python-format
|
||||
msgid "Author page for %(name)s"
|
||||
msgstr "Page de %(name)s"
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:212
|
||||
msgid "Add Authors:"
|
||||
msgstr "Ajouter des auteurs ou autrices :"
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:177
|
||||
#: bookwyrm/templates/book/edit_book.html:213
|
||||
msgid "John Doe, Jane Smith"
|
||||
msgstr "Claude Dupont, Dominique Durand"
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:183
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:77
|
||||
#: bookwyrm/templates/book/edit_book.html:220
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:78
|
||||
msgid "Cover"
|
||||
msgstr "Couverture"
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:211
|
||||
#: bookwyrm/templates/book/edit_book.html:248
|
||||
msgid "Physical Properties"
|
||||
msgstr "Propriétés physiques"
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:212
|
||||
#: bookwyrm/templates/book/edit_book.html:250
|
||||
#: bookwyrm/templates/book/format_filter.html:5
|
||||
msgid "Format:"
|
||||
msgstr "Format :"
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:220
|
||||
#: bookwyrm/templates/book/edit_book.html:258
|
||||
msgid "Pages:"
|
||||
msgstr "Pages :"
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:227
|
||||
#: bookwyrm/templates/book/edit_book.html:267
|
||||
msgid "Book Identifiers"
|
||||
msgstr "Identifiants du livre"
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:228
|
||||
#: bookwyrm/templates/book/edit_book.html:269
|
||||
msgid "ISBN 13:"
|
||||
msgstr "ISBN 13 :"
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:233
|
||||
#: bookwyrm/templates/book/edit_book.html:277
|
||||
msgid "ISBN 10:"
|
||||
msgstr "ISBN 10 :"
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:238
|
||||
#: bookwyrm/templates/book/edit_book.html:285
|
||||
msgid "Openlibrary ID:"
|
||||
msgstr "Identifiant Openlibrary :"
|
||||
|
||||
|
@ -630,7 +643,7 @@ msgstr "Communauté fédérée"
|
|||
|
||||
#: bookwyrm/templates/directory/directory.html:4
|
||||
#: bookwyrm/templates/directory/directory.html:9
|
||||
#: bookwyrm/templates/layout.html:92
|
||||
#: bookwyrm/templates/layout.html:64
|
||||
msgid "Directory"
|
||||
msgstr "Répertoire"
|
||||
|
||||
|
@ -831,7 +844,7 @@ msgid "Direct Messages with <a href=\"%(path)s\">%(username)s</a>"
|
|||
msgstr "Messages directs avec <a href=\"%(path)s\">%(username)s</a>"
|
||||
|
||||
#: bookwyrm/templates/feed/direct_messages.html:10
|
||||
#: bookwyrm/templates/layout.html:87
|
||||
#: bookwyrm/templates/layout.html:92
|
||||
msgid "Direct Messages"
|
||||
msgstr "Messages directs"
|
||||
|
||||
|
@ -887,7 +900,6 @@ msgid "Updates"
|
|||
msgstr "Mises à jour"
|
||||
|
||||
#: bookwyrm/templates/feed/feed_layout.html:10
|
||||
#: bookwyrm/templates/layout.html:58
|
||||
#: bookwyrm/templates/user/shelf/books_header.html:3
|
||||
msgid "Your books"
|
||||
msgstr "Vos livres"
|
||||
|
@ -942,7 +954,7 @@ msgid "What are you reading?"
|
|||
msgstr "Que lisez‑vous ?"
|
||||
|
||||
#: bookwyrm/templates/get_started/books.html:9
|
||||
#: bookwyrm/templates/lists/list.html:120
|
||||
#: bookwyrm/templates/lists/list.html:135
|
||||
msgid "Search for a book"
|
||||
msgstr "Chercher un livre"
|
||||
|
||||
|
@ -962,7 +974,7 @@ msgstr "Vous pourrez ajouter des livres lorsque vous commencerez à utiliser %(s
|
|||
#: bookwyrm/templates/get_started/users.html:18
|
||||
#: bookwyrm/templates/get_started/users.html:19
|
||||
#: bookwyrm/templates/layout.html:37 bookwyrm/templates/layout.html:38
|
||||
#: bookwyrm/templates/lists/list.html:124
|
||||
#: bookwyrm/templates/lists/list.html:139
|
||||
#: bookwyrm/templates/search/layout.html:4
|
||||
#: bookwyrm/templates/search/layout.html:9
|
||||
msgid "Search"
|
||||
|
@ -978,7 +990,7 @@ msgid "Popular on %(site_name)s"
|
|||
msgstr "Populaire sur %(site_name)s"
|
||||
|
||||
#: bookwyrm/templates/get_started/books.html:58
|
||||
#: bookwyrm/templates/lists/list.html:137
|
||||
#: bookwyrm/templates/lists/list.html:152
|
||||
msgid "No books found"
|
||||
msgstr "Aucun livre trouvé"
|
||||
|
||||
|
@ -1090,7 +1102,7 @@ msgid "%(username)s's %(year)s Books"
|
|||
msgstr "Livres de %(username)s en %(year)s"
|
||||
|
||||
#: bookwyrm/templates/import.html:5 bookwyrm/templates/import.html:9
|
||||
#: bookwyrm/templates/layout.html:97
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:40
|
||||
msgid "Import Books"
|
||||
msgstr "Importer des livres"
|
||||
|
||||
|
@ -1128,65 +1140,70 @@ msgstr "Aucune importation récente"
|
|||
msgid "Import Status"
|
||||
msgstr "Statut de l’importation"
|
||||
|
||||
#: bookwyrm/templates/import_status.html:12
|
||||
#: bookwyrm/templates/import_status.html:13
|
||||
msgid "Import started:"
|
||||
msgstr "Importation en cours :"
|
||||
msgstr "Début de l’importation :"
|
||||
|
||||
#: bookwyrm/templates/import_status.html:16
|
||||
#: bookwyrm/templates/import_status.html:18
|
||||
msgid "Import completed:"
|
||||
msgstr "Importation terminé :"
|
||||
msgstr "Fin de l’importation :"
|
||||
|
||||
#: bookwyrm/templates/import_status.html:19
|
||||
#: bookwyrm/templates/import_status.html:23
|
||||
msgid "TASK FAILED"
|
||||
msgstr "la tâche a échoué"
|
||||
|
||||
#: bookwyrm/templates/import_status.html:25
|
||||
#: bookwyrm/templates/import_status.html:30
|
||||
msgid "Import still in progress."
|
||||
msgstr "L’importation est toujours en cours"
|
||||
|
||||
#: bookwyrm/templates/import_status.html:27
|
||||
#: bookwyrm/templates/import_status.html:32
|
||||
msgid "(Hit reload to update!)"
|
||||
msgstr "(Rechargez la page pour mettre à jour !"
|
||||
msgstr "(Rechargez la page pour la mettre à jour !)"
|
||||
|
||||
#: bookwyrm/templates/import_status.html:34
|
||||
#: bookwyrm/templates/import_status.html:39
|
||||
msgid "Failed to load"
|
||||
msgstr "Items non importés"
|
||||
msgstr "Éléments non importés"
|
||||
|
||||
#: bookwyrm/templates/import_status.html:43
|
||||
#: bookwyrm/templates/import_status.html:48
|
||||
#, python-format
|
||||
msgid "Jump to the bottom of the list to select the %(failed_count)s items which failed to import."
|
||||
msgstr "Sauter en bas de liste pour sélectionner les %(failed_count)s items n’ayant pu être importés."
|
||||
|
||||
#: bookwyrm/templates/import_status.html:78
|
||||
#: bookwyrm/templates/import_status.html:60
|
||||
#, python-format
|
||||
msgid "Line %(index)s: <strong>%(title)s</strong> by %(author)s"
|
||||
msgstr "Ligne %(index)s : <strong>%(title)s</strong> par %(author)s"
|
||||
|
||||
#: bookwyrm/templates/import_status.html:80
|
||||
msgid "Select all"
|
||||
msgstr "Tout sélectionner"
|
||||
|
||||
#: bookwyrm/templates/import_status.html:81
|
||||
#: bookwyrm/templates/import_status.html:83
|
||||
msgid "Retry items"
|
||||
msgstr "Essayer d’importer les items sélectionnés de nouveau"
|
||||
msgstr "Réessayer l’importation de ces éléments"
|
||||
|
||||
#: bookwyrm/templates/import_status.html:107
|
||||
#: bookwyrm/templates/import_status.html:109
|
||||
msgid "Successfully imported"
|
||||
msgstr "Importation réussie"
|
||||
|
||||
#: bookwyrm/templates/import_status.html:111
|
||||
#: bookwyrm/templates/import_status.html:113
|
||||
msgid "Book"
|
||||
msgstr "Livre"
|
||||
|
||||
#: bookwyrm/templates/import_status.html:114
|
||||
#: bookwyrm/templates/import_status.html:116
|
||||
#: bookwyrm/templates/snippets/create_status_form.html:13
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:78
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:98
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:79
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:99
|
||||
msgid "Title"
|
||||
msgstr "Titre"
|
||||
|
||||
#: bookwyrm/templates/import_status.html:117
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:79
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:101
|
||||
#: bookwyrm/templates/import_status.html:119
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:80
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:102
|
||||
msgid "Author"
|
||||
msgstr "Auteur ou autrice"
|
||||
msgstr "Auteur/autrice"
|
||||
|
||||
#: bookwyrm/templates/import_status.html:140
|
||||
#: bookwyrm/templates/import_status.html:142
|
||||
msgid "Imported"
|
||||
msgstr "Importé"
|
||||
|
||||
|
@ -1224,15 +1241,19 @@ msgstr "Chercher un livre ou un compte"
|
|||
msgid "Main navigation menu"
|
||||
msgstr "Menu de navigation principal "
|
||||
|
||||
#: bookwyrm/templates/layout.html:61
|
||||
#: bookwyrm/templates/layout.html:58
|
||||
msgid "Feed"
|
||||
msgstr "Fil d’actualité"
|
||||
|
||||
#: bookwyrm/templates/layout.html:102
|
||||
#: bookwyrm/templates/layout.html:87
|
||||
msgid "Your Books"
|
||||
msgstr "Vos Livres"
|
||||
|
||||
#: bookwyrm/templates/layout.html:97
|
||||
msgid "Settings"
|
||||
msgstr "Paramètres"
|
||||
|
||||
#: bookwyrm/templates/layout.html:111
|
||||
#: bookwyrm/templates/layout.html:106
|
||||
#: bookwyrm/templates/settings/admin_layout.html:31
|
||||
#: bookwyrm/templates/settings/manage_invite_requests.html:15
|
||||
#: bookwyrm/templates/settings/manage_invites.html:3
|
||||
|
@ -1240,61 +1261,61 @@ msgstr "Paramètres"
|
|||
msgid "Invites"
|
||||
msgstr "Invitations"
|
||||
|
||||
#: bookwyrm/templates/layout.html:118
|
||||
#: bookwyrm/templates/layout.html:113
|
||||
msgid "Admin"
|
||||
msgstr "Admin"
|
||||
|
||||
#: bookwyrm/templates/layout.html:125
|
||||
#: bookwyrm/templates/layout.html:120
|
||||
msgid "Log out"
|
||||
msgstr "Se déconnecter"
|
||||
|
||||
#: bookwyrm/templates/layout.html:133 bookwyrm/templates/layout.html:134
|
||||
#: bookwyrm/templates/layout.html:128 bookwyrm/templates/layout.html:129
|
||||
#: bookwyrm/templates/notifications.html:6
|
||||
#: bookwyrm/templates/notifications.html:11
|
||||
msgid "Notifications"
|
||||
msgstr "Notifications"
|
||||
|
||||
#: bookwyrm/templates/layout.html:156 bookwyrm/templates/layout.html:160
|
||||
#: bookwyrm/templates/layout.html:151 bookwyrm/templates/layout.html:155
|
||||
#: bookwyrm/templates/login.html:17
|
||||
#: bookwyrm/templates/snippets/register_form.html:4
|
||||
msgid "Username:"
|
||||
msgstr "Nom du compte :"
|
||||
|
||||
#: bookwyrm/templates/layout.html:161
|
||||
#: bookwyrm/templates/layout.html:156
|
||||
msgid "password"
|
||||
msgstr "Mot de passe"
|
||||
|
||||
#: bookwyrm/templates/layout.html:162 bookwyrm/templates/login.html:36
|
||||
#: bookwyrm/templates/layout.html:157 bookwyrm/templates/login.html:36
|
||||
msgid "Forgot your password?"
|
||||
msgstr "Mot de passe oublié ?"
|
||||
|
||||
#: bookwyrm/templates/layout.html:165 bookwyrm/templates/login.html:10
|
||||
#: bookwyrm/templates/layout.html:160 bookwyrm/templates/login.html:10
|
||||
#: bookwyrm/templates/login.html:33
|
||||
msgid "Log in"
|
||||
msgstr "Se connecter"
|
||||
|
||||
#: bookwyrm/templates/layout.html:173
|
||||
#: bookwyrm/templates/layout.html:168
|
||||
msgid "Join"
|
||||
msgstr "Rejoindre"
|
||||
|
||||
#: bookwyrm/templates/layout.html:211
|
||||
msgid "About this server"
|
||||
msgstr "À propos de ce serveur"
|
||||
#: bookwyrm/templates/layout.html:206
|
||||
msgid "About this instance"
|
||||
msgstr "À propos de cette instance"
|
||||
|
||||
#: bookwyrm/templates/layout.html:215
|
||||
#: bookwyrm/templates/layout.html:210
|
||||
msgid "Contact site admin"
|
||||
msgstr "Contacter l’administrateur du site"
|
||||
|
||||
#: bookwyrm/templates/layout.html:219
|
||||
#: bookwyrm/templates/layout.html:214
|
||||
msgid "Documentation"
|
||||
msgstr "Documentation"
|
||||
|
||||
#: bookwyrm/templates/layout.html:226
|
||||
#: bookwyrm/templates/layout.html:221
|
||||
#, python-format
|
||||
msgid "Support %(site_name)s on <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>"
|
||||
msgstr "Soutenez %(site_name)s avec <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>"
|
||||
|
||||
#: bookwyrm/templates/layout.html:230
|
||||
#: bookwyrm/templates/layout.html:225
|
||||
msgid "BookWyrm's source code is freely available. You can contribute or report issues on <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>."
|
||||
msgstr "BookWyrm est un logiciel libre. Vous pouvez contribuer ou faire des rapports de bogues via <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>."
|
||||
|
||||
|
@ -1338,7 +1359,7 @@ msgid "Discard"
|
|||
msgstr "Rejeter"
|
||||
|
||||
#: bookwyrm/templates/lists/edit_form.html:5
|
||||
#: bookwyrm/templates/lists/list_layout.html:17
|
||||
#: bookwyrm/templates/lists/list_layout.html:16
|
||||
msgid "Edit List"
|
||||
msgstr "Modifier la liste"
|
||||
|
||||
|
@ -1385,54 +1406,55 @@ msgstr "Vous avez ajouté un livre à cette liste !"
|
|||
msgid "This list is currently empty"
|
||||
msgstr "Cette liste est actuellement vide"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:65
|
||||
#: bookwyrm/templates/lists/list.html:66
|
||||
#, python-format
|
||||
msgid "Added by <a href=\"%(user_path)s\">%(username)s</a>"
|
||||
msgstr "Ajouté par <a href=\"%(user_path)s\">%(username)s</a>"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:77
|
||||
msgid "Set"
|
||||
msgstr "Appliquer"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:80
|
||||
#: bookwyrm/templates/lists/list.html:74
|
||||
msgid "List position"
|
||||
msgstr "Position"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:86
|
||||
#: bookwyrm/templates/lists/list.html:81
|
||||
msgid "Set"
|
||||
msgstr "Appliquer"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:89
|
||||
#: bookwyrm/templates/snippets/shelf_selector.html:26
|
||||
msgid "Remove"
|
||||
msgstr "Retirer"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:99 bookwyrm/templates/lists/list.html:111
|
||||
#: bookwyrm/templates/lists/list.html:103
|
||||
#: bookwyrm/templates/lists/list.html:120
|
||||
msgid "Sort List"
|
||||
msgstr "Trier la liste"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:105
|
||||
#: bookwyrm/templates/lists/list.html:113
|
||||
msgid "Direction"
|
||||
msgstr "Direction"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:116
|
||||
#: bookwyrm/templates/lists/list.html:127
|
||||
msgid "Add Books"
|
||||
msgstr "Ajouter des livres"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:116
|
||||
#: bookwyrm/templates/lists/list.html:129
|
||||
msgid "Suggest Books"
|
||||
msgstr "Suggérer des livres"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:125
|
||||
#: bookwyrm/templates/lists/list.html:140
|
||||
msgid "search"
|
||||
msgstr "chercher"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:131
|
||||
#: bookwyrm/templates/lists/list.html:146
|
||||
msgid "Clear search"
|
||||
msgstr "Vider la requête"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:136
|
||||
#: bookwyrm/templates/lists/list.html:151
|
||||
#, python-format
|
||||
msgid "No books found matching the query \"%(query)s\""
|
||||
msgstr "Aucun livre trouvé pour la requête « %(query)s »"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:164
|
||||
#: bookwyrm/templates/lists/list.html:179
|
||||
msgid "Suggest"
|
||||
msgstr "Suggérer"
|
||||
|
||||
|
@ -1523,8 +1545,8 @@ msgstr "Résoudre"
|
|||
|
||||
#: bookwyrm/templates/moderation/reports.html:6
|
||||
#, python-format
|
||||
msgid "Reports: %(server_name)s"
|
||||
msgstr "Signalements : %(server_name)s"
|
||||
msgid "Reports: %(instance_name)s"
|
||||
msgstr "Signalements : %(instance_name)s"
|
||||
|
||||
#: bookwyrm/templates/moderation/reports.html:8
|
||||
#: bookwyrm/templates/moderation/reports.html:17
|
||||
|
@ -1534,8 +1556,8 @@ msgstr "Signalements"
|
|||
|
||||
#: bookwyrm/templates/moderation/reports.html:14
|
||||
#, python-format
|
||||
msgid "Reports: <small>%(server_name)s</small>"
|
||||
msgstr "Signalements: <small>%(server_name)s</small>"
|
||||
msgid "Reports: <small>%(instance_name)s</small>"
|
||||
msgstr "Signalements : <small>%(instance_name)s</small>"
|
||||
|
||||
#: bookwyrm/templates/moderation/reports.html:28
|
||||
msgid "Resolved"
|
||||
|
@ -1803,8 +1825,8 @@ msgstr "Gérer les comptes"
|
|||
#: bookwyrm/templates/settings/admin_layout.html:39
|
||||
#: bookwyrm/templates/settings/federation.html:3
|
||||
#: bookwyrm/templates/settings/federation.html:5
|
||||
msgid "Federated Servers"
|
||||
msgstr "Serveurs fédérés"
|
||||
msgid "Federated Instances"
|
||||
msgstr "Instances fédérées"
|
||||
|
||||
#: bookwyrm/templates/settings/admin_layout.html:44
|
||||
msgid "Instance Settings"
|
||||
|
@ -1840,7 +1862,7 @@ msgstr "Contenu du pied de page"
|
|||
#: bookwyrm/templates/settings/admin_layout.html:58
|
||||
#: bookwyrm/templates/settings/site.html:81
|
||||
msgid "Registration"
|
||||
msgstr "Enregistrement"
|
||||
msgstr "Inscription"
|
||||
|
||||
#: bookwyrm/templates/settings/announcement.html:3
|
||||
#: bookwyrm/templates/settings/announcement.html:6
|
||||
|
@ -1931,13 +1953,13 @@ msgstr "inactive"
|
|||
#: bookwyrm/templates/settings/federation.html:10
|
||||
#: bookwyrm/templates/settings/server_blocklist.html:3
|
||||
#: bookwyrm/templates/settings/server_blocklist.html:20
|
||||
msgid "Add server"
|
||||
msgstr "Ajouter un serveur"
|
||||
msgid "Add instance"
|
||||
msgstr "Ajouter une instance"
|
||||
|
||||
#: bookwyrm/templates/settings/edit_server.html:7
|
||||
#: bookwyrm/templates/settings/server_blocklist.html:7
|
||||
msgid "Back to server list"
|
||||
msgstr "Retour à la liste des serveurs"
|
||||
msgid "Back to instance list"
|
||||
msgstr "Retour à la liste des instances"
|
||||
|
||||
#: bookwyrm/templates/settings/edit_server.html:16
|
||||
#: bookwyrm/templates/settings/server_blocklist.html:16
|
||||
|
@ -2043,8 +2065,8 @@ msgstr "Tous les comptes de cette instance seront réactivés."
|
|||
|
||||
#: bookwyrm/templates/settings/federation.html:19
|
||||
#: bookwyrm/templates/user_admin/server_filter.html:5
|
||||
msgid "Server name"
|
||||
msgstr "Nom du serveur"
|
||||
msgid "Instance name"
|
||||
msgstr "Nom de l’instance"
|
||||
|
||||
#: bookwyrm/templates/settings/federation.html:23
|
||||
msgid "Date federated"
|
||||
|
@ -2059,7 +2081,7 @@ msgstr "Logiciel"
|
|||
#: bookwyrm/templates/settings/manage_invite_requests.html:25
|
||||
#: bookwyrm/templates/settings/manage_invites.html:11
|
||||
msgid "Invite Requests"
|
||||
msgstr "Invitations"
|
||||
msgstr "Demandes d’invitation"
|
||||
|
||||
#: bookwyrm/templates/settings/manage_invite_requests.html:23
|
||||
msgid "Ignored Invite Requests"
|
||||
|
@ -2225,17 +2247,17 @@ msgstr "Email de l’administrateur :"
|
|||
msgid "Additional info:"
|
||||
msgstr "Infos supplémentaires :"
|
||||
|
||||
#: bookwyrm/templates/settings/site.html:83
|
||||
msgid "Allow registration:"
|
||||
msgstr "Autoriser l’enregistrement :"
|
||||
|
||||
#: bookwyrm/templates/settings/site.html:87
|
||||
msgid "Allow invite requests:"
|
||||
msgstr "Autoriser les demandes d’invitation :"
|
||||
#: bookwyrm/templates/settings/site.html:85
|
||||
msgid "Allow registration"
|
||||
msgstr "Autoriser les inscriptions"
|
||||
|
||||
#: bookwyrm/templates/settings/site.html:91
|
||||
msgid "Allow invite requests"
|
||||
msgstr "Autoriser les demandes d’invitation"
|
||||
|
||||
#: bookwyrm/templates/settings/site.html:95
|
||||
msgid "Registration closed text:"
|
||||
msgstr "Texte affiché lorsque les enregistrements sont clos :"
|
||||
msgstr "Texte affiché lorsque les inscriptions sont closes :"
|
||||
|
||||
#: bookwyrm/templates/snippets/announcement.html:31
|
||||
#, python-format
|
||||
|
@ -2623,7 +2645,7 @@ msgstr "Commencer « <em>%(book_title)s</em> »"
|
|||
#: bookwyrm/templates/snippets/shelve_button/want_to_read_modal.html:5
|
||||
#, python-format
|
||||
msgid "Want to Read \"<em>%(book_title)s</em>\""
|
||||
msgstr "A envie de lire « <em>%(book_title)s</em> »"
|
||||
msgstr "Ajouter « <em>%(book_title)s</em> » aux envies de lecture"
|
||||
|
||||
#: bookwyrm/templates/snippets/status/content_status.html:71
|
||||
#: bookwyrm/templates/snippets/trimmed_text.html:15
|
||||
|
@ -2752,30 +2774,30 @@ msgstr "Tous les livres"
|
|||
msgid "Create shelf"
|
||||
msgstr "Créer une étagère"
|
||||
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:61
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:62
|
||||
msgid "Edit shelf"
|
||||
msgstr "Modifier l’étagère"
|
||||
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:80
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:104
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:81
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:105
|
||||
msgid "Shelved"
|
||||
msgstr "Date d’ajout"
|
||||
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:81
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:108
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:82
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:109
|
||||
msgid "Started"
|
||||
msgstr "Commencé"
|
||||
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:82
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:111
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:83
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:112
|
||||
msgid "Finished"
|
||||
msgstr "Terminé"
|
||||
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:137
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:138
|
||||
msgid "This shelf is empty."
|
||||
msgstr "Cette étagère est vide"
|
||||
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:143
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:144
|
||||
msgid "Delete shelf"
|
||||
msgstr "Supprimer l’étagère"
|
||||
|
||||
|
@ -2834,8 +2856,8 @@ msgstr "Retour aux comptes"
|
|||
|
||||
#: bookwyrm/templates/user_admin/user_admin.html:7
|
||||
#, python-format
|
||||
msgid "Users: <small>%(server_name)s</small>"
|
||||
msgstr "Comptes : <small>%(server_name)s</small>"
|
||||
msgid "Users: <small>%(instance_name)s</small>"
|
||||
msgstr "Comptes : <small>%(instance_name)s</small>"
|
||||
|
||||
#: bookwyrm/templates/user_admin/user_admin.html:22
|
||||
#: bookwyrm/templates/user_admin/username_filter.html:5
|
||||
|
@ -2851,8 +2873,8 @@ msgid "Last Active"
|
|||
msgstr "Dernière activité"
|
||||
|
||||
#: bookwyrm/templates/user_admin/user_admin.html:38
|
||||
msgid "Remote server"
|
||||
msgstr "Serveur distant"
|
||||
msgid "Remote instance"
|
||||
msgstr "Instance distante"
|
||||
|
||||
#: bookwyrm/templates/user_admin/user_admin.html:47
|
||||
msgid "Active"
|
||||
|
@ -2895,6 +2917,10 @@ msgstr "Rétablir le compte"
|
|||
msgid "Access level:"
|
||||
msgstr "Niveau d’accès :"
|
||||
|
||||
#: bookwyrm/templates/widgets/clearable_file_input_with_warning.html:22
|
||||
msgid "File exceeds maximum size: 10MB"
|
||||
msgstr "Ce fichier dépasse la taille limite : 10 Mo"
|
||||
|
||||
#: bookwyrm/views/import_data.py:67
|
||||
msgid "Not a valid csv file"
|
||||
msgstr "Fichier CSV non valide"
|
||||
|
|
Binary file not shown.
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: 0.1.1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-05-20 14:40-0700\n"
|
||||
"POT-Creation-Date: 2021-06-06 20:52+0000\n"
|
||||
"PO-Revision-Date: 2021-03-20 00:56+0000\n"
|
||||
"Last-Translator: Kana <gudzpoz@live.com>\n"
|
||||
"Language-Team: Mouse Reeve <LL@li.org>\n"
|
||||
|
@ -58,12 +58,12 @@ msgid "Book Title"
|
|||
msgstr "标题"
|
||||
|
||||
#: bookwyrm/forms.py:301 bookwyrm/templates/snippets/create_status_form.html:34
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:84
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:115
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:85
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:116
|
||||
msgid "Rating"
|
||||
msgstr "评价"
|
||||
|
||||
#: bookwyrm/forms.py:303 bookwyrm/templates/lists/list.html:101
|
||||
#: bookwyrm/forms.py:303 bookwyrm/templates/lists/list.html:107
|
||||
msgid "Sort By"
|
||||
msgstr ""
|
||||
|
||||
|
@ -79,41 +79,41 @@ msgstr "升序排序"
|
|||
msgid "Descending"
|
||||
msgstr "升序排序"
|
||||
|
||||
#: bookwyrm/models/fields.py:24
|
||||
#: bookwyrm/models/fields.py:25
|
||||
#, python-format
|
||||
msgid "%(value)s is not a valid remote_id"
|
||||
msgstr "%(value)s 不是有效的 remote_id"
|
||||
|
||||
#: bookwyrm/models/fields.py:33 bookwyrm/models/fields.py:42
|
||||
#: bookwyrm/models/fields.py:34 bookwyrm/models/fields.py:43
|
||||
#, python-format
|
||||
msgid "%(value)s is not a valid username"
|
||||
msgstr "%(value)s 不是有效的用户名"
|
||||
|
||||
#: bookwyrm/models/fields.py:165 bookwyrm/templates/layout.html:155
|
||||
#: bookwyrm/models/fields.py:166 bookwyrm/templates/layout.html:152
|
||||
msgid "username"
|
||||
msgstr "用户名"
|
||||
|
||||
#: bookwyrm/models/fields.py:170
|
||||
#: bookwyrm/models/fields.py:171
|
||||
msgid "A user with that username already exists."
|
||||
msgstr "已经存在使用该用户名的用户。"
|
||||
|
||||
#: bookwyrm/settings.py:155
|
||||
#: bookwyrm/settings.py:156
|
||||
msgid "English"
|
||||
msgstr "English(英语)"
|
||||
|
||||
#: bookwyrm/settings.py:156
|
||||
#: bookwyrm/settings.py:157
|
||||
msgid "German"
|
||||
msgstr "Deutsch(德语)"
|
||||
|
||||
#: bookwyrm/settings.py:157
|
||||
#: bookwyrm/settings.py:158
|
||||
msgid "Spanish"
|
||||
msgstr "Español(西班牙语)"
|
||||
|
||||
#: bookwyrm/settings.py:158
|
||||
#: bookwyrm/settings.py:159
|
||||
msgid "French"
|
||||
msgstr "Français(法语)"
|
||||
|
||||
#: bookwyrm/settings.py:159
|
||||
#: bookwyrm/settings.py:160
|
||||
msgid "Simplified Chinese"
|
||||
msgstr "简体中文"
|
||||
|
||||
|
@ -260,7 +260,7 @@ msgstr "Goodreads key:"
|
|||
#: bookwyrm/templates/book/edit_book.html:263
|
||||
#: bookwyrm/templates/lists/form.html:42
|
||||
#: bookwyrm/templates/preferences/edit_user.html:70
|
||||
#: bookwyrm/templates/settings/announcement_form.html:65
|
||||
#: bookwyrm/templates/settings/announcement_form.html:69
|
||||
#: bookwyrm/templates/settings/edit_server.html:68
|
||||
#: bookwyrm/templates/settings/federated_server.html:98
|
||||
#: bookwyrm/templates/settings/site.html:97
|
||||
|
@ -386,7 +386,7 @@ msgstr "主题"
|
|||
msgid "Places"
|
||||
msgstr "地点"
|
||||
|
||||
#: bookwyrm/templates/book/book.html:276 bookwyrm/templates/layout.html:64
|
||||
#: bookwyrm/templates/book/book.html:276 bookwyrm/templates/layout.html:61
|
||||
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
|
||||
#: bookwyrm/templates/search/layout.html:25
|
||||
#: bookwyrm/templates/search/layout.html:50
|
||||
|
@ -400,7 +400,7 @@ msgstr "添加到列表"
|
|||
|
||||
#: bookwyrm/templates/book/book.html:297
|
||||
#: bookwyrm/templates/book/cover_modal.html:31
|
||||
#: bookwyrm/templates/lists/list.html:164
|
||||
#: bookwyrm/templates/lists/list.html:179
|
||||
msgid "Add"
|
||||
msgstr "添加"
|
||||
|
||||
|
@ -532,7 +532,7 @@ msgid "John Doe, Jane Smith"
|
|||
msgstr "张三, 李四"
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:183
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:77
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:78
|
||||
msgid "Cover"
|
||||
msgstr "封面"
|
||||
|
||||
|
@ -655,7 +655,7 @@ msgstr "跨站社区"
|
|||
|
||||
#: bookwyrm/templates/directory/directory.html:4
|
||||
#: bookwyrm/templates/directory/directory.html:9
|
||||
#: bookwyrm/templates/layout.html:92
|
||||
#: bookwyrm/templates/layout.html:64
|
||||
msgid "Directory"
|
||||
msgstr "目录"
|
||||
|
||||
|
@ -854,7 +854,7 @@ msgid "Direct Messages with <a href=\"%(path)s\">%(username)s</a>"
|
|||
msgstr "与 <a href=\"%(path)s\">%(username)s</a> 私信"
|
||||
|
||||
#: bookwyrm/templates/feed/direct_messages.html:10
|
||||
#: bookwyrm/templates/layout.html:87
|
||||
#: bookwyrm/templates/layout.html:92
|
||||
msgid "Direct Messages"
|
||||
msgstr "私信"
|
||||
|
||||
|
@ -910,7 +910,6 @@ msgid "Updates"
|
|||
msgstr "更新"
|
||||
|
||||
#: bookwyrm/templates/feed/feed_layout.html:10
|
||||
#: bookwyrm/templates/layout.html:58
|
||||
#: bookwyrm/templates/user/shelf/books_header.html:3
|
||||
msgid "Your books"
|
||||
msgstr "你的书目"
|
||||
|
@ -963,7 +962,7 @@ msgid "What are you reading?"
|
|||
msgstr "你在阅读什么?"
|
||||
|
||||
#: bookwyrm/templates/get_started/books.html:9
|
||||
#: bookwyrm/templates/lists/list.html:120
|
||||
#: bookwyrm/templates/lists/list.html:135
|
||||
msgid "Search for a book"
|
||||
msgstr "搜索书目"
|
||||
|
||||
|
@ -983,7 +982,7 @@ msgstr "你可以在开始使用 %(site_name)s 后添加书目。"
|
|||
#: bookwyrm/templates/get_started/users.html:18
|
||||
#: bookwyrm/templates/get_started/users.html:19
|
||||
#: bookwyrm/templates/layout.html:37 bookwyrm/templates/layout.html:38
|
||||
#: bookwyrm/templates/lists/list.html:124
|
||||
#: bookwyrm/templates/lists/list.html:139
|
||||
#: bookwyrm/templates/search/layout.html:4
|
||||
#: bookwyrm/templates/search/layout.html:9
|
||||
msgid "Search"
|
||||
|
@ -999,7 +998,7 @@ msgid "Popular on %(site_name)s"
|
|||
msgstr "%(site_name)s 上的热门"
|
||||
|
||||
#: bookwyrm/templates/get_started/books.html:58
|
||||
#: bookwyrm/templates/lists/list.html:137
|
||||
#: bookwyrm/templates/lists/list.html:152
|
||||
msgid "No books found"
|
||||
msgstr "没有找到书目"
|
||||
|
||||
|
@ -1111,7 +1110,7 @@ msgid "%(username)s's %(year)s Books"
|
|||
msgstr "%(username)s 在 %(year)s 的书目"
|
||||
|
||||
#: bookwyrm/templates/import.html:5 bookwyrm/templates/import.html:9
|
||||
#: bookwyrm/templates/layout.html:97
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:40
|
||||
msgid "Import Books"
|
||||
msgstr "导入书目"
|
||||
|
||||
|
@ -1196,14 +1195,14 @@ msgstr "书目"
|
|||
|
||||
#: bookwyrm/templates/import_status.html:114
|
||||
#: bookwyrm/templates/snippets/create_status_form.html:13
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:78
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:98
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:79
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:99
|
||||
msgid "Title"
|
||||
msgstr "标题"
|
||||
|
||||
#: bookwyrm/templates/import_status.html:117
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:79
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:101
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:80
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:102
|
||||
msgid "Author"
|
||||
msgstr "作者"
|
||||
|
||||
|
@ -1245,15 +1244,21 @@ msgstr "搜索书目或用户"
|
|||
msgid "Main navigation menu"
|
||||
msgstr "主导航菜单"
|
||||
|
||||
#: bookwyrm/templates/layout.html:61
|
||||
#: bookwyrm/templates/layout.html:58
|
||||
msgid "Feed"
|
||||
msgstr "动态"
|
||||
|
||||
#: bookwyrm/templates/layout.html:102
|
||||
#: bookwyrm/templates/layout.html:87
|
||||
#, fuzzy
|
||||
#| msgid "Your books"
|
||||
msgid "Your Books"
|
||||
msgstr "你的书目"
|
||||
|
||||
#: bookwyrm/templates/layout.html:97
|
||||
msgid "Settings"
|
||||
msgstr "设置"
|
||||
|
||||
#: bookwyrm/templates/layout.html:111
|
||||
#: bookwyrm/templates/layout.html:106
|
||||
#: bookwyrm/templates/settings/admin_layout.html:31
|
||||
#: bookwyrm/templates/settings/manage_invite_requests.html:15
|
||||
#: bookwyrm/templates/settings/manage_invites.html:3
|
||||
|
@ -1261,45 +1266,47 @@ msgstr "设置"
|
|||
msgid "Invites"
|
||||
msgstr "邀请"
|
||||
|
||||
#: bookwyrm/templates/layout.html:118
|
||||
#: bookwyrm/templates/layout.html:113
|
||||
msgid "Admin"
|
||||
msgstr "管理员"
|
||||
|
||||
#: bookwyrm/templates/layout.html:125
|
||||
#: bookwyrm/templates/layout.html:120
|
||||
msgid "Log out"
|
||||
msgstr "登出"
|
||||
|
||||
#: bookwyrm/templates/layout.html:133 bookwyrm/templates/layout.html:134
|
||||
#: bookwyrm/templates/layout.html:128 bookwyrm/templates/layout.html:129
|
||||
#: bookwyrm/templates/notifications.html:6
|
||||
#: bookwyrm/templates/notifications.html:11
|
||||
msgid "Notifications"
|
||||
msgstr "通知"
|
||||
|
||||
#: bookwyrm/templates/layout.html:154 bookwyrm/templates/layout.html:158
|
||||
#: bookwyrm/templates/layout.html:151 bookwyrm/templates/layout.html:155
|
||||
#: bookwyrm/templates/login.html:17
|
||||
#: bookwyrm/templates/snippets/register_form.html:4
|
||||
msgid "Username:"
|
||||
msgstr "用户名:"
|
||||
|
||||
#: bookwyrm/templates/layout.html:159
|
||||
#: bookwyrm/templates/layout.html:156
|
||||
msgid "password"
|
||||
msgstr "密码"
|
||||
|
||||
#: bookwyrm/templates/layout.html:160 bookwyrm/templates/login.html:36
|
||||
#: bookwyrm/templates/layout.html:157 bookwyrm/templates/login.html:36
|
||||
msgid "Forgot your password?"
|
||||
msgstr "忘记了密码?"
|
||||
|
||||
#: bookwyrm/templates/layout.html:163 bookwyrm/templates/login.html:10
|
||||
#: bookwyrm/templates/layout.html:160 bookwyrm/templates/login.html:10
|
||||
#: bookwyrm/templates/login.html:33
|
||||
msgid "Log in"
|
||||
msgstr "登录"
|
||||
|
||||
#: bookwyrm/templates/layout.html:171
|
||||
#: bookwyrm/templates/layout.html:168
|
||||
msgid "Join"
|
||||
msgstr "加入"
|
||||
|
||||
#: bookwyrm/templates/layout.html:206
|
||||
msgid "About this server"
|
||||
#, fuzzy
|
||||
#| msgid "About this server"
|
||||
msgid "About this instance"
|
||||
msgstr "关于本服务器"
|
||||
|
||||
#: bookwyrm/templates/layout.html:210
|
||||
|
@ -1361,7 +1368,7 @@ msgid "Discard"
|
|||
msgstr "削除"
|
||||
|
||||
#: bookwyrm/templates/lists/edit_form.html:5
|
||||
#: bookwyrm/templates/lists/list_layout.html:17
|
||||
#: bookwyrm/templates/lists/list_layout.html:16
|
||||
msgid "Edit List"
|
||||
msgstr "编辑列表"
|
||||
|
||||
|
@ -1410,62 +1417,63 @@ msgstr "任何人都可以向此列表中添加书目"
|
|||
msgid "This list is currently empty"
|
||||
msgstr "此列表当前是空的"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:65
|
||||
#: bookwyrm/templates/lists/list.html:66
|
||||
#, python-format
|
||||
msgid "Added by <a href=\"%(user_path)s\">%(username)s</a>"
|
||||
msgstr "由 <a href=\"%(user_path)s\">%(username)s</a> 添加"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:77
|
||||
#, fuzzy
|
||||
#| msgid "Sent"
|
||||
msgid "Set"
|
||||
msgstr "已发送"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:80
|
||||
#: bookwyrm/templates/lists/list.html:74
|
||||
#, fuzzy
|
||||
#| msgid "List curation:"
|
||||
msgid "List position"
|
||||
msgstr "列表策展:"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:86
|
||||
#: bookwyrm/templates/lists/list.html:81
|
||||
#, fuzzy
|
||||
#| msgid "Sent"
|
||||
msgid "Set"
|
||||
msgstr "已发送"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:89
|
||||
#: bookwyrm/templates/snippets/shelf_selector.html:26
|
||||
msgid "Remove"
|
||||
msgstr "移除"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:99 bookwyrm/templates/lists/list.html:111
|
||||
#: bookwyrm/templates/lists/list.html:103
|
||||
#: bookwyrm/templates/lists/list.html:120
|
||||
#, fuzzy
|
||||
#| msgid "Your Lists"
|
||||
msgid "Sort List"
|
||||
msgstr "你的列表"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:105
|
||||
#: bookwyrm/templates/lists/list.html:113
|
||||
#, fuzzy
|
||||
#| msgid "Directory"
|
||||
msgid "Direction"
|
||||
msgstr "目录"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:116
|
||||
#: bookwyrm/templates/lists/list.html:127
|
||||
msgid "Add Books"
|
||||
msgstr "添加书目"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:116
|
||||
#: bookwyrm/templates/lists/list.html:129
|
||||
msgid "Suggest Books"
|
||||
msgstr "推荐书目"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:125
|
||||
#: bookwyrm/templates/lists/list.html:140
|
||||
msgid "search"
|
||||
msgstr "搜索"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:131
|
||||
#: bookwyrm/templates/lists/list.html:146
|
||||
msgid "Clear search"
|
||||
msgstr "清除搜索"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:136
|
||||
#: bookwyrm/templates/lists/list.html:151
|
||||
#, python-format
|
||||
msgid "No books found matching the query \"%(query)s\""
|
||||
msgstr "没有符合 \"%(query)s\" 请求的书目"
|
||||
|
||||
#: bookwyrm/templates/lists/list.html:164
|
||||
#: bookwyrm/templates/lists/list.html:179
|
||||
msgid "Suggest"
|
||||
msgstr "推荐"
|
||||
|
||||
|
@ -1558,8 +1566,8 @@ msgstr "已解决"
|
|||
|
||||
#: bookwyrm/templates/moderation/reports.html:6
|
||||
#, python-format
|
||||
msgid "Reports: %(server_name)s"
|
||||
msgstr "报告: %(server_name)s"
|
||||
msgid "Reports: %(instance_name)s"
|
||||
msgstr "报告: %(instance_name)s"
|
||||
|
||||
#: bookwyrm/templates/moderation/reports.html:8
|
||||
#: bookwyrm/templates/moderation/reports.html:17
|
||||
|
@ -1569,8 +1577,8 @@ msgstr "报告"
|
|||
|
||||
#: bookwyrm/templates/moderation/reports.html:14
|
||||
#, python-format
|
||||
msgid "Reports: <small>%(server_name)s</small>"
|
||||
msgstr "报告: <small>%(server_name)s</small>"
|
||||
msgid "Reports: <small>%(instance_name)s</small>"
|
||||
msgstr "报告: <small>%(instance_name)s</small>"
|
||||
|
||||
#: bookwyrm/templates/moderation/reports.html:28
|
||||
msgid "Resolved"
|
||||
|
@ -1771,6 +1779,26 @@ msgstr "个人资料"
|
|||
msgid "Relationships"
|
||||
msgstr "关系"
|
||||
|
||||
#: bookwyrm/templates/rss/title.html:5
|
||||
#: bookwyrm/templates/snippets/status/status_header.html:35
|
||||
msgid "rated"
|
||||
msgstr "评价了"
|
||||
|
||||
#: bookwyrm/templates/rss/title.html:7
|
||||
#: bookwyrm/templates/snippets/status/status_header.html:37
|
||||
msgid "reviewed"
|
||||
msgstr "写了书评给"
|
||||
|
||||
#: bookwyrm/templates/rss/title.html:9
|
||||
#: bookwyrm/templates/snippets/status/status_header.html:39
|
||||
msgid "commented on"
|
||||
msgstr "评论了"
|
||||
|
||||
#: bookwyrm/templates/rss/title.html:11
|
||||
#: bookwyrm/templates/snippets/status/status_header.html:41
|
||||
msgid "quoted"
|
||||
msgstr "引用了"
|
||||
|
||||
#: bookwyrm/templates/search/book.html:64
|
||||
#, fuzzy
|
||||
#| msgid "Show results from other catalogues"
|
||||
|
@ -1828,7 +1856,9 @@ msgstr "管理用户"
|
|||
#: bookwyrm/templates/settings/admin_layout.html:39
|
||||
#: bookwyrm/templates/settings/federation.html:3
|
||||
#: bookwyrm/templates/settings/federation.html:5
|
||||
msgid "Federated Servers"
|
||||
#, fuzzy
|
||||
#| msgid "Federated Servers"
|
||||
msgid "Federated Instances"
|
||||
msgstr "互联的服务器"
|
||||
|
||||
#: bookwyrm/templates/settings/admin_layout.html:44
|
||||
|
@ -1882,6 +1912,7 @@ msgid "Back to list"
|
|||
msgstr "回到服务器列表"
|
||||
|
||||
#: bookwyrm/templates/settings/announcement.html:11
|
||||
#: bookwyrm/templates/settings/announcement_form.html:6
|
||||
#, fuzzy
|
||||
#| msgid "Announcements"
|
||||
msgid "Edit Announcement"
|
||||
|
@ -1923,7 +1954,7 @@ msgstr "出生日期:"
|
|||
msgid "Active:"
|
||||
msgstr "活跃"
|
||||
|
||||
#: bookwyrm/templates/settings/announcement_form.html:5
|
||||
#: bookwyrm/templates/settings/announcement_form.html:8
|
||||
#: bookwyrm/templates/settings/announcements.html:8
|
||||
#, fuzzy
|
||||
#| msgid "Announcements"
|
||||
|
@ -1982,13 +2013,15 @@ msgstr "停用"
|
|||
#: bookwyrm/templates/settings/server_blocklist.html:3
|
||||
#: bookwyrm/templates/settings/server_blocklist.html:20
|
||||
#, fuzzy
|
||||
#| msgid "Add cover"
|
||||
msgid "Add server"
|
||||
msgstr "添加封面"
|
||||
#| msgid "Instance Name:"
|
||||
msgid "Add instance"
|
||||
msgstr "实例名称"
|
||||
|
||||
#: bookwyrm/templates/settings/edit_server.html:7
|
||||
#: bookwyrm/templates/settings/server_blocklist.html:7
|
||||
msgid "Back to server list"
|
||||
#, fuzzy
|
||||
#| msgid "Back to server list"
|
||||
msgid "Back to instance list"
|
||||
msgstr "回到服务器列表"
|
||||
|
||||
#: bookwyrm/templates/settings/edit_server.html:16
|
||||
|
@ -2103,8 +2136,10 @@ msgstr ""
|
|||
|
||||
#: bookwyrm/templates/settings/federation.html:19
|
||||
#: bookwyrm/templates/user_admin/server_filter.html:5
|
||||
msgid "Server name"
|
||||
msgstr "服务器名称"
|
||||
#, fuzzy
|
||||
#| msgid "Instance Name:"
|
||||
msgid "Instance name"
|
||||
msgstr "实例名称"
|
||||
|
||||
#: bookwyrm/templates/settings/federation.html:23
|
||||
msgid "Date federated"
|
||||
|
@ -2231,7 +2266,7 @@ msgid "Import Blocklist"
|
|||
msgstr "导入书目"
|
||||
|
||||
#: bookwyrm/templates/settings/server_blocklist.html:26
|
||||
#: bookwyrm/templates/snippets/goal_progress.html:5
|
||||
#: bookwyrm/templates/snippets/goal_progress.html:7
|
||||
msgid "Success!"
|
||||
msgstr "成功!"
|
||||
|
||||
|
@ -2320,15 +2355,15 @@ msgstr "没有封面"
|
|||
msgid "<a href=\"%(path)s\">%(title)s</a> by "
|
||||
msgstr "<a href=\"%(path)s\">%(title)s</a> 来自"
|
||||
|
||||
#: bookwyrm/templates/snippets/boost_button.html:9
|
||||
#: bookwyrm/templates/snippets/boost_button.html:10
|
||||
#: bookwyrm/templates/snippets/boost_button.html:20
|
||||
#: bookwyrm/templates/snippets/boost_button.html:21
|
||||
#, fuzzy
|
||||
#| msgid "boosted"
|
||||
msgid "Boost"
|
||||
msgstr "转发了"
|
||||
|
||||
#: bookwyrm/templates/snippets/boost_button.html:16
|
||||
#: bookwyrm/templates/snippets/boost_button.html:17
|
||||
#: bookwyrm/templates/snippets/boost_button.html:33
|
||||
#: bookwyrm/templates/snippets/boost_button.html:34
|
||||
#, fuzzy
|
||||
#| msgid "Un-boost status"
|
||||
msgid "Un-boost"
|
||||
|
@ -2422,13 +2457,13 @@ msgstr "删除这些阅读日期吗?"
|
|||
msgid "You are deleting this readthrough and its %(count)s associated progress updates."
|
||||
msgstr "你正要删除这篇阅读经过以及与之相关的 %(count)s 次进度更新。"
|
||||
|
||||
#: bookwyrm/templates/snippets/fav_button.html:9
|
||||
#: bookwyrm/templates/snippets/fav_button.html:11
|
||||
#: bookwyrm/templates/snippets/fav_button.html:10
|
||||
#: bookwyrm/templates/snippets/fav_button.html:12
|
||||
msgid "Like"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/snippets/fav_button.html:17
|
||||
#: bookwyrm/templates/snippets/fav_button.html:18
|
||||
#: bookwyrm/templates/snippets/fav_button.html:19
|
||||
#, fuzzy
|
||||
#| msgid "Un-like status"
|
||||
msgid "Un-like"
|
||||
|
@ -2471,6 +2506,13 @@ msgstr "接受"
|
|||
msgid "No rating"
|
||||
msgstr "没有评价"
|
||||
|
||||
#: bookwyrm/templates/snippets/form_rate_stars.html:44
|
||||
#: bookwyrm/templates/snippets/stars.html:7
|
||||
#, python-format
|
||||
msgid "%(rating)s star"
|
||||
msgid_plural "%(rating)s stars"
|
||||
msgstr[0] ""
|
||||
|
||||
#: bookwyrm/templates/snippets/generated_status/goal.html:1
|
||||
#, python-format
|
||||
msgid "set a goal to read %(counter)s book in %(year)s"
|
||||
|
@ -2522,17 +2564,17 @@ msgstr "发布到消息流中"
|
|||
msgid "Set goal"
|
||||
msgstr "设置目标"
|
||||
|
||||
#: bookwyrm/templates/snippets/goal_progress.html:7
|
||||
#: bookwyrm/templates/snippets/goal_progress.html:9
|
||||
#, python-format
|
||||
msgid "%(percent)s%% complete!"
|
||||
msgstr "完成了 %(percent)s%% !"
|
||||
|
||||
#: bookwyrm/templates/snippets/goal_progress.html:10
|
||||
#: bookwyrm/templates/snippets/goal_progress.html:12
|
||||
#, python-format
|
||||
msgid "You've read <a href=\"%(path)s\">%(read_count)s of %(goal_count)s books</a>."
|
||||
msgstr "你已经阅读了 <a href=\"%(path)s\">%(goal_count)s 本书中的 %(read_count)s 本</a>。"
|
||||
|
||||
#: bookwyrm/templates/snippets/goal_progress.html:12
|
||||
#: bookwyrm/templates/snippets/goal_progress.html:14
|
||||
#, python-format
|
||||
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>。"
|
||||
|
@ -2641,26 +2683,6 @@ msgstr "注册"
|
|||
msgid "Report"
|
||||
msgstr "报告"
|
||||
|
||||
#: bookwyrm/templates/snippets/rss_title.html:5
|
||||
#: bookwyrm/templates/snippets/status/status_header.html:35
|
||||
msgid "rated"
|
||||
msgstr "评价了"
|
||||
|
||||
#: bookwyrm/templates/snippets/rss_title.html:7
|
||||
#: bookwyrm/templates/snippets/status/status_header.html:37
|
||||
msgid "reviewed"
|
||||
msgstr "写了书评给"
|
||||
|
||||
#: bookwyrm/templates/snippets/rss_title.html:9
|
||||
#: bookwyrm/templates/snippets/status/status_header.html:39
|
||||
msgid "commented on"
|
||||
msgstr "评论了"
|
||||
|
||||
#: bookwyrm/templates/snippets/rss_title.html:11
|
||||
#: bookwyrm/templates/snippets/status/status_header.html:41
|
||||
msgid "quoted"
|
||||
msgstr "引用了"
|
||||
|
||||
#: bookwyrm/templates/snippets/search_result_text.html:36
|
||||
msgid "Import book"
|
||||
msgstr "导入书目"
|
||||
|
@ -2832,7 +2854,7 @@ msgstr "编辑书架"
|
|||
msgid "Update shelf"
|
||||
msgstr "更新书架"
|
||||
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:25 bookwyrm/views/shelf.py:51
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:25 bookwyrm/views/shelf.py:56
|
||||
msgid "All books"
|
||||
msgstr "所有书目"
|
||||
|
||||
|
@ -2840,30 +2862,30 @@ msgstr "所有书目"
|
|||
msgid "Create shelf"
|
||||
msgstr "创建书架"
|
||||
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:61
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:62
|
||||
msgid "Edit shelf"
|
||||
msgstr "编辑书架"
|
||||
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:80
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:104
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:81
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:105
|
||||
msgid "Shelved"
|
||||
msgstr "上架时间"
|
||||
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:81
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:108
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:82
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:109
|
||||
msgid "Started"
|
||||
msgstr "开始时间"
|
||||
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:82
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:111
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:83
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:112
|
||||
msgid "Finished"
|
||||
msgstr "完成时间"
|
||||
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:137
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:138
|
||||
msgid "This shelf is empty."
|
||||
msgstr "此书架是空的。"
|
||||
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:143
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:144
|
||||
msgid "Delete shelf"
|
||||
msgstr "删除书架"
|
||||
|
||||
|
@ -2924,8 +2946,8 @@ msgstr "回到报告"
|
|||
|
||||
#: bookwyrm/templates/user_admin/user_admin.html:7
|
||||
#, python-format
|
||||
msgid "Users: <small>%(server_name)s</small>"
|
||||
msgstr "用户: <small>%(server_name)s</small>"
|
||||
msgid "Users: <small>%(instance_name)s</small>"
|
||||
msgstr "用户: <small>%(instance_name)s</small>"
|
||||
|
||||
#: bookwyrm/templates/user_admin/user_admin.html:22
|
||||
#: bookwyrm/templates/user_admin/username_filter.html:5
|
||||
|
@ -2941,7 +2963,7 @@ msgid "Last Active"
|
|||
msgstr "最后或缺"
|
||||
|
||||
#: bookwyrm/templates/user_admin/user_admin.html:38
|
||||
msgid "Remote server"
|
||||
msgid "Remote instance"
|
||||
msgstr "移除服务器"
|
||||
|
||||
#: bookwyrm/templates/user_admin/user_admin.html:47
|
||||
|
@ -2989,6 +3011,10 @@ msgstr ""
|
|||
msgid "Access level:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/widgets/clearable_file_input_with_warning.html:3
|
||||
msgid "File exceeds maximum size: 10MB"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/views/import_data.py:67
|
||||
#, fuzzy
|
||||
#| msgid "Email address:"
|
||||
|
@ -3004,6 +3030,23 @@ msgstr "没有找到使用该邮箱的用户。"
|
|||
msgid "A password reset link sent to %s"
|
||||
msgstr "密码重置连接已发送给 %s"
|
||||
|
||||
#~ msgid "Reports: <small>%(server_name)s</small>"
|
||||
#~ msgstr "报告: <small>%(server_name)s</small>"
|
||||
|
||||
#~ msgid "Federated Servers"
|
||||
#~ msgstr "互联的服务器"
|
||||
|
||||
#~ msgid "Server name"
|
||||
#~ msgstr "服务器名称"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Add cover"
|
||||
#~ msgid "Add server"
|
||||
#~ msgstr "添加封面"
|
||||
|
||||
#~ msgid "Remote server"
|
||||
#~ msgstr "移除服务器"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "BookWyrm users"
|
||||
#~ msgid "BookWyrm\\"
|
||||
|
@ -3054,12 +3097,12 @@ msgstr "密码重置连接已发送给 %s"
|
|||
#~ msgid "Enter a number."
|
||||
#~ msgstr "系列编号:"
|
||||
|
||||
#, fuzzy, python-format
|
||||
#, fuzzy
|
||||
#~| msgid "A user with this email already exists."
|
||||
#~ msgid "%(model_name)s with this %(field_labels)s already exists."
|
||||
#~ msgstr "已经存在使用该邮箱的用户。"
|
||||
|
||||
#, fuzzy, python-format
|
||||
#, fuzzy
|
||||
#~| msgid "%(value)s is not a valid remote_id"
|
||||
#~ msgid "Value %(value)r is not a valid choice."
|
||||
#~ msgstr "%(value)s 不是有效的 remote_id"
|
||||
|
@ -3069,7 +3112,7 @@ msgstr "密码重置连接已发送给 %s"
|
|||
#~ msgid "This field cannot be null."
|
||||
#~ msgstr "此书架是空的。"
|
||||
|
||||
#, fuzzy, python-format
|
||||
#, fuzzy
|
||||
#~| msgid "A user with this email already exists."
|
||||
#~ msgid "%(model_name)s with this %(field_label)s already exists."
|
||||
#~ msgstr "已经存在使用该邮箱的用户。"
|
||||
|
@ -3119,7 +3162,7 @@ msgstr "密码重置连接已发送给 %s"
|
|||
#~ msgid "Positive small integer"
|
||||
#~ msgstr "无有效的邀请"
|
||||
|
||||
#, fuzzy, python-format
|
||||
#, fuzzy
|
||||
#~| msgid "%(value)s is not a valid username"
|
||||
#~ msgid "“%(value)s” is not a valid UUID."
|
||||
#~ msgstr "%(value)s 不是有效的用户名"
|
||||
|
@ -3134,12 +3177,12 @@ msgstr "密码重置连接已发送给 %s"
|
|||
#~ msgid "One-to-one relationship"
|
||||
#~ msgstr "关系"
|
||||
|
||||
#, fuzzy, python-format
|
||||
#, fuzzy
|
||||
#~| msgid "Relationships"
|
||||
#~ msgid "%(from)s-%(to)s relationship"
|
||||
#~ msgstr "关系"
|
||||
|
||||
#, fuzzy, python-format
|
||||
#, fuzzy
|
||||
#~| msgid "Relationships"
|
||||
#~ msgid "%(from)s-%(to)s relationships"
|
||||
#~ msgstr "关系"
|
||||
|
@ -3199,7 +3242,7 @@ msgstr "密码重置连接已发送给 %s"
|
|||
#~ msgid "Order"
|
||||
#~ msgstr "排列顺序"
|
||||
|
||||
#, fuzzy, python-format
|
||||
#, fuzzy
|
||||
#~| msgid "%(value)s is not a valid username"
|
||||
#~ msgid "“%(pk)s” is not a valid value."
|
||||
#~ msgstr "%(value)s 不是有效的用户名"
|
||||
|
@ -3263,7 +3306,7 @@ msgstr "密码重置连接已发送给 %s"
|
|||
#~ msgid "This is not a valid IPv6 address."
|
||||
#~ msgstr "邮箱地址:"
|
||||
|
||||
#, fuzzy, python-format
|
||||
#, fuzzy
|
||||
#~| msgid "No books found matching the query \"%(query)s\""
|
||||
#~ msgid "No %(verbose_name)s found matching the query"
|
||||
#~ msgstr "没有符合 \"%(query)s\" 请求的书目"
|
||||
|
@ -3282,11 +3325,9 @@ msgstr "密码重置连接已发送给 %s"
|
|||
#~ msgid "Matching Users"
|
||||
#~ msgstr "匹配的用户"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Set a reading goal for %(year)s"
|
||||
#~ msgstr "设定 %(year)s 的阅读目标"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "by %(author)s"
|
||||
#~ msgstr "由 %(author)s 所著"
|
||||
|
||||
|
@ -3299,15 +3340,12 @@ msgstr "密码重置连接已发送给 %s"
|
|||
#~ msgid "Date"
|
||||
#~ msgstr "日期"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "replied to <a href=\"%(user_path)s\">%(username)s's</a> <a href=\"%(status_path)s\">review</a>"
|
||||
#~ msgstr "回复了 <a href=\"%(user_path)s\">%(username)s</a> 的 <a href=\"%(status_path)s\">书评</a>"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "replied to <a href=\"%(user_path)s\">%(username)s's</a> <a href=\"%(status_path)s\">comment</a>"
|
||||
#~ msgstr "恢复了 <a href=\"%(user_path)s\">%(username)s</a> 的 <a href=\"%(status_path)s\">评论</a>"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "replied to <a href=\"%(user_path)s\">%(username)s's</a> <a href=\"%(status_path)s\">quote</a>"
|
||||
#~ msgstr "回复了 <a href=\"%(user_path)s\">%(username)s</a> 的 <a href=\"%(status_path)s\">引用</a>"
|
||||
|
||||
|
@ -3317,7 +3355,6 @@ msgstr "密码重置连接已发送给 %s"
|
|||
#~ msgid "Add tag"
|
||||
#~ msgstr "添加标签"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Books tagged \"%(tag.name)s\""
|
||||
#~ msgstr "标有 \"%(tag.name)s\" 标签的书"
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
celery==4.4.2
|
||||
Django==3.2.1
|
||||
Django==3.2.4
|
||||
django-model-utils==4.0.0
|
||||
environs==7.2.0
|
||||
flower==0.9.4
|
||||
|
|
|
@ -2042,9 +2042,9 @@ to-regex-range@^5.0.1:
|
|||
is-number "^7.0.0"
|
||||
|
||||
trim-newlines@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.0.tgz#79726304a6a898aa8373427298d54c2ee8b1cb30"
|
||||
integrity sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA==
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144"
|
||||
integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==
|
||||
|
||||
trough@^1.0.0:
|
||||
version "1.0.5"
|
||||
|
|
Loading…
Reference in a new issue