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